Algorithm 什么是当前被认为是;“最佳”;二维点匹配算法?

Algorithm 什么是当前被认为是;“最佳”;二维点匹配算法?,algorithm,computer-science,2d,pattern-matching,Algorithm,Computer Science,2d,Pattern Matching,我有两个包含x-y坐标(恒星坐标)的列表。我还可以将星等(亮度)附加到每颗恒星上。现在,每颗恒星都有随机的位置抖动,并且在每张图像中可能会有一些额外的或缺失的点。我的问题是,“对于这样的数据集,什么是最好的2D点匹配算法?”我想对于简单的线性(平移、旋转、缩放)和非线性(例如,坐标中的n次多项式)都是这样。在点匹配领域的行话中,我正在寻找在2D点匹配程序与噪声和伪点之间的冲突中获胜的算法。可能会有不同的“赢家”,这取决于是否使用了标签信息(数量级)和/或转换被限制为线性 我知道,在每个类中有很多

我有两个包含x-y坐标(恒星坐标)的列表。我还可以将星等(亮度)附加到每颗恒星上。现在,每颗恒星都有随机的位置抖动,并且在每张图像中可能会有一些额外的或缺失的点。我的问题是,“对于这样的数据集,什么是最好的2D点匹配算法?”我想对于简单的线性(平移、旋转、缩放)和非线性(例如,坐标中的n次多项式)都是这样。在点匹配领域的行话中,我正在寻找在2D点匹配程序与噪声和伪点之间的冲突中获胜的算法。可能会有不同的“赢家”,这取决于是否使用了标签信息(数量级)和/或转换被限制为线性

我知道,在每个类中有很多类的2D点匹配算法和许多算法(字面上大概有几百个),但是我不知道,如果有的话,是计算机视觉领域中的人们所说的“最好”或“最标准”。可悲的是,许多我想读的文章都没有在线版本,我只能读摘要。在我决定采用一种特定的算法来实现之前,最好听取一些专家的意见,把小麦和谷壳分开


我有一个使用三角形的工作匹配程序,但它经常失败(约5%的时间),因此解决方案转换有明显的扭曲,但没有明显的原因。这个程序不是我写的,它来自一篇大约20年前的论文。我想编写一个执行最稳健的新实现。我假设(希望)在这一领域已经取得了一些进展,这使得这一点成为可能。

我不久前在电视上看到一个节目,内容是研究人员如何拍摄鲸鱼的照片,并利用鲸鱼身上的斑点(每头鲸都有独特的斑点)来识别每头鲸鱼。它利用了斑点之间的角度。通过使用角度,图像是否被旋转、缩放或平移并不重要。这听起来很像你对三角形所做的。

我认为“最好的”(最技术的)方法是对原始图像和新的线性修改图像进行傅里叶变换。通过做一些简单的过滤,就可以很容易地计算出你的图像相对于旧图像的方向和比例。这里有一个关于二维傅里叶变换的描述。

没有一个“最佳”算法。有很多不同的技术,每种技术在特定的数据集和数据类型上都比其他技术更有效


我推荐的一件事是阅读ITK的教程,它支持多种类型的图像注册(这听起来像是您正在尝试的),并且在许多情况下都非常健壮。他们的大多数用户都在医疗领域,所以你必须通过大量的医学术语,但是算法和代码与任何类型的图像(包括1,2,3,和N维图像,不同类型等)一起工作。

< P>你可以考虑只在最亮的星星上应用你的算法,然后逐步包含其他搜索结果以优化结果,同时缩小搜索范围


使用对额外点的鲁棒性也是很常见的。

如果您对星号匹配感兴趣,请查看和。他们使用四点四边形来解决Flickr夜空图片中的恒星配置问题。退房。

我不确定它是否有效,但值得一试:

对于每颗恒星,对所有其他恒星进行以其为中心的圆周时间射线傅里叶变换(注意:这不是标准的傅里叶变换,即线乘以线)。
圆乘以射线的相空间是整数乘以直线,但是由于我们只有有限的精度,你只需要得到一个矩阵;矩阵的尺寸取决于精度。现在试着将矩阵配对(例如,使用L_2范数)

海报上说的是将点列表与随机位移进行匹配。这不是一个简单的参数图像配准。你也可以对数值数据进行2d FFT。它在1和0上运行得非常好。如果两幅图像因整体变换(如位移、缩放和旋转)而不同,则+1 Ribond是正确的。在逐星匹配之前,这将是一个很好的第一步。我也对这一步感兴趣。这个问题对于即将到来的比赛来说是完美的。所以,如果你想有这样一个问题的地方,请继续,并帮助这个建议起飞!这是一个有趣的项目。我一定会去看看,看看它能提供什么。+1张非常有趣和酷的幻灯片。对于这个问题来说,可能有点过头了。