gpt4 book ai didi

opencv - ORB 是否取决于图像分辨率?

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:30 25 4
gpt4 key购买 nike

我正在尝试使用 OpenCV 从图像中检测和提取 ORB 特征。

但是,我得到的图像没有标准化(不同尺寸、不同分辨率等...)。

我想知道在提取 ORB 特征之前是否需要规范化我的图像以便能够跨图像匹配它们?

我知道特征检测是尺度不变的,但我不确定它对图像分辨率意味着什么(例如,2 张相同大小的图像,其中 1 个对象近,另一个对象远应该导致匹配,即使它们在图像上的比例不同,但如果图像的尺寸不同怎么办?)。

我是否应该根据图像大小调整 ORB 的 patchSize(例如,如果我有一张 800px 的图像并使用 20px 的 patchSize,我应该为 400px 的图像使用 10px 的 patchSize 吗?)。

谢谢。

更新:我用高分辨率和低分辨率图像测试了不同的算法(ORB、SURF 和 SIFT),以了解它们的表现。在此图像中,对象大小相同,但图像分辨率不同:

enter image description here

我们可以看到 SIFT 非常稳定,尽管它的功能很少。 SURF 在关键点和特征尺度方面也相当稳定。所以我的猜测是,使用 SIFT 和 SURF 在低分辨率和高分辨率图像之间进行特征匹配是可行的,但是 ORB 在低分辨率中具有更大的特征,因此描述符与高分辨率图像中的描述符不匹配。

(在高分辨率和低分辨率特征提取之间使用了相同的参数)。

所以我的猜测是,如果我们想在不同分辨率的图像之间进行匹配,那么 SIFT 或 SURF 会更好。

最佳答案

根据 OpenCV documentation , ORB 也使用金字塔来产生多尺度特征。尽管此页面上的详细信息尚不清楚。
如果我们看一下 ORB paper itself ,在第 6.1 节中提到使用了五种不同比例的图像。但是我们仍然不确定您是否需要手动计算不同比例图像的描述符,或者它已经在 OpenCV ORB 中实现。
最后,from source code (我写这个答案时的第 1063 行)我们看到为关键点/描述符提取计算了不同分辨率的图像。如果您跟踪变量,您会发现 ORB 类有一个比例因子,您可以使用 getScaleFactor 方法访问它。

简而言之,ORB 尝试自己在不同尺度上执行匹配。

关于opencv - ORB 是否取决于图像分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52689296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com