9

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

我知道有许多类的 2D 点匹配算法和每个类中的许多算法(实际上可能总共有数百个),但我不知道哪个(如果有的话)被认为是“最好的”或“最标准的”计算机视觉领域的人们。可悲的是,我想阅读的许多文章都没有在线版本,我只能阅读摘要。在我决定实施一个特定的算法之前,最好听听几位专家的意见,把小麦从谷壳中分离出来。

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

4

6 回答 6

4

如果您对星匹配感兴趣,请在此处查看Astrometry.net 盲天体测量求解器和相关论文。他们使用四点四边形来解决 Flickr 夜空图片中的星形配置。看看这个采访

于 2009-04-03T11:45:22.720 回答
1

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

我推荐的一件事是阅读Insight Toolkit教程中的图像配准介绍。 ITK 支持多种类型的图像配准(这听起来像是您正在尝试的),并且在许多情况下都非常健壮。他们的大多数用户都在医学领域,因此您必须了解很多医学术语,但算法和代码适用于任何类型的图像(包括 1、2、3 和 n 维图像,不同的类型等)。

于 2009-04-02T23:59:24.587 回答
0

我不确定它会起作用,但值得一试:

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

于 2009-04-07T12:29:01.083 回答
0

您可以考虑首先仅在 N 颗最亮的恒星上应用您的算法,然后逐步包含其他以优化结果,同时缩小搜索范围。

使用RANSAC来获得加分的鲁棒性也很常见。

于 2009-04-03T10:46:03.457 回答
-1

不久前,我在电视上看到一个节目,讲述研究人员如何拍摄鲸鱼照片并使用照片上的斑点(对于每条鲸鱼来说都是独一无二的)来识别每条鲸鱼。它使用了点之间的角度。通过使用角度,图像是否被旋转、缩放或平移并不重要。这听起来与您对三角形所做的相似。

于 2009-04-02T23:06:59.003 回答
-1

我认为“最好的”(最技术性的)方法是对原始图像和新的线性修改图像进行傅里叶变换。通过进行一些简单的过滤,应该很容易找出图像相对于旧图像的方向和比例。这里有 2d Fourier Transform 的描述。

于 2009-04-02T23:45:30.237 回答