是否有一种有效的算法可以将一张图像中的对象与另一张图像中的对象进行匹配?

计算科学 图像处理
2021-12-26 21:14:46

假设我有两个图像,其中包含许多相同或几乎相同的对象。具体来说,假设对象被移动和缩放,但数量不同,从一个图像到另一个图像。是否有匹配对象的有效算法?

原型示例是来自视频流的后续图像,其中不同的对象相对于相机移动了不同的量,我们想知道哪个对象去了。来自天文学,其中图像充满了点源,识别它们的一种方法是将基本图像与点扩散函数(平均点源)进行卷积,并在生成的卷积图像中寻找峰值。所以,我想应该可以移动、旋转和缩放一张图像,计算结果的内积(即乘以像素,然后将它们相加),然后在移位/旋转/缩放空间中寻找点局部最大值表示两个图像中的某些内容在该点匹配。

可以有效地完成这个或类似的事情吗?例如,定位候选对象,将它们切掉,然后进行移位/旋转/缩放空间搜索比仅对整个图像进行搜索(假设大多数对象是一个小的移位/旋转/远离他们之前的位置)?

2个回答

我猜你指的是图像之间的互相关。这是非常好的和有效的寻找转变,但不是规模和方向的变化。您可能知道,互相关同时计算一张图像的内积与另一张图像的所有可能变化,及时O(nlogn), 在哪里n是像素数。

Morgan McGuire 有一篇文章An image registration technology for recovery 旋转、缩放和平移参数,我一直想研究一段时间,但还没有完成。这做了类似的事情,但也设法捕捉到规模和旋转的变化,在这个时间基本上也是O(nlogn).

另一类非常不同的算法是特征匹配算法,它分析图像并以在许多不同类型的变化下不变的方式识别特殊点,如一般投影变换(包括旋转、平移、缩放)、亮度变化等. OpenCV 中的一些例子可以在这里找到。最著名的(虽然不是最现代的)之一称为SIFT,由 D. Lowe 在Distinctive Image Features from Scale-Invariant Keypoints中介绍。这可能比以前的方法慢得多。

免责声明:这很可能不是最有效、最有前途的方法。

当我从相似的兴趣(分析显微镜图像)中查找相同的主题时,我遇到了以下出版物,这引起了我的兴趣,因为在我的编码环境中实现它相当简单:

图像配准使用对数极坐标变换和相位相关恢复更高尺度的
模式识别研究 7 (2012) 90-105

对此进行测试,它在论文中描述的限制范围内也可以正常工作(一个不太广泛的比例因子。)我认为您的问题将很大程度上取决于您想到的应用程序,以及哪些简化、假设和限制是与之相关联。


编辑:我在名为DigitalMicrograph的科学图像/数据处理软件中使用脚本语言使用该算法进行了测试。如果有人感兴趣,我可以提供该脚本代码(只需在下面发表评论)。可以从Gatan Inc.网页下载该软件的免费版本(没有超时)。