Project Icon

ccma

创新的2D/3D路径平滑算法

CCMA是一种创新的2D/3D路径平滑算法,解决了传统移动平均滤波器的内弯问题。这种无模型方法采用对称滤波,提供多种内核和边界处理选项。相比样条曲线,CCMA对局部变化更敏感,具有更高的稳定性和可预测性。该项目实现简单,可直接应用于numpy数组数据。

alt text

❞纯粹由数据驱动的方法的魅力。❞—ChatGPT

alt text

曲率校正移动平均(CCMA)是一种无模型通用2D/3D路径平滑算法。它解决了传统移动平均滤波器在曲线处常见的向内弯曲现象。CCMA方法采用对称滤波。然而,由于其对称性,它主要用于精确平滑而非状态估计。

该实现提供了用户友好的体验(参见最小工作示例),使得对以numpy数组表示的给定点进行滤波变得非常简单。用户可以轻松选择不同的核函数,包括截断正态分布、汉宁窗、均匀分布或复杂的帕斯卡三角核(默认)。

此外,该实现提供了不同的边界处理方式—填充、环绕、减小滤波宽度,或者完全不使用边界策略。这种适应性确保了实现可以满足广泛的场景和偏好。

虽然代码本身可能无法提供完整的理解,但可以在这篇信息丰富的文章或原始论文中找到更多细节和见解。

如果您使用CCMA,请考虑引用原始论文

@inproceedings{Steinecker23,
  title={A Simple and Model-Free Path Filtering Algorithm for Smoothing and Accuracy},
  author={Steinecker, Thomas and Wuensche, Hans-Joachim},
  booktitle={2023 IEEE Intelligent Vehicles Symposium (IV)},
  pages={1--7},
  year={2023},
  organization={IEEE}
}

快速链接

最小工作示例

import numpy as np
from ccma import CCMA

# 在单位圆上创建带噪声的点
n = 50
noise = np.random.normal(0, 0.05, (n, 2))
points = np.array([np.cos(np.linspace(0, 2*np.pi, n)),
                   np.sin(np.linspace(0, 2*np.pi, n))]).T
noisy_points = points + noise

# 创建ccma对象并使用填充(默认)和帕斯卡三角核/权重(默认)平滑点
ccma = CCMA(w_ma=5, w_cc=3)
smoothed_points = ccma.filter(noisy_points)

安装

要轻松安装CCMA,请使用以下pip命令:

pip3 install git+https://github.com/UniBwTAS/ccma.git#egg=ccma

python3 -m pip install git+https://github.com/UniBwTAS/ccma.git#egg=ccma

成功安装后,请按照以下步骤确保设置正确:

  1. 打开新的终端窗口。

  2. 启动Python shell:

    python
    
  3. 通过导入CCMA模块验证安装:

    >>> import ccma
    
  4. 确认版本号以确保安装成功:

    >>> ccma.__version__
    "1.0.0"
    

使用指南

更多信息可以在使用指南中找到。

CCMA用于路径插值

CCMA最初设计用于平滑嘈杂的路径;然而,由于其优越的特性和简单的使用方法,我们相信它可以服务于更多应用,如路径插值。在下图中,可以看出CCMA与MA相比,不仅减少了总体误差,还降低了最大误差。在提供的示例列表中,您可以找到路径插值的示例实现。

alt text

样条曲线vs. CCMA

样条曲线通常被选用于插值和平滑;然而,局部变化可能会产生全局影响,导致意外或不期望的行为。相比之下,CCMA专门设计为仅受局部变化影响,使其成为一个稳健且可预测的选项。下图说明了这一区别。在左侧,可以看到CCMA仅在异常值附近受到影响,而P样条在整个长度上发生振荡。在右侧图中,引入了另一个异常值,再次仅局部影响CCMA。相反,P样条经历了显著的全局形状变化,之前的峰值增加,后续振荡变得更加明显。

另一个值得注意的方面是可以将CCMA与B样条结合使用。这会得到一个连续函数,但输出比P样条更可预测和直观。在下图中,首先应用了CCMA,然后将结果用于B样条生成。在示例列表中也可以找到一个说明性示例。

alt text

互动示例以更好理解

学习新概念的最有效方式是通过互动。因此,我们加入了一个互动示例,您可以在其中尝试不同的核函数及其参数。此外,您可以调整路径的噪声和密度。最后,您可以缩放和移动,从而促进更深入的理解。我们希望您发现这个工具有用。

alt text

进一步研究想法

我们相信CCMA可以作为许多扩展的基础,应用于类似或意想不到的领域,因为尽管其方法简单,却已经能够展现出令人印象深刻的结果。以下我们列出了一些与CCMA相关的可能研究主题:

  • 改进的边界策略
  • 推广到高维数据点
  • 推广到表面
  • 针对时间序列数据的重构
  • 数据驱动的核函数

Star历史

Star History Chart

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号