这确实是一个非常有趣的问题.正如@hatboyzero指出的那样,变量的含义相当简单:
> Nm是匹配的数量(在重叠区域中,因此已经删除了明显的异常值).
> Ni是找到Ransac单应性后的内部数.
> C是两张图像匹配的信心.
匹配的背景
通过在所有图像中找到兴趣点并为它们计算描述符来完成建立全景图.开发了这些描述符,如SIFT,SURF和ORB,以便可以检测到图像的相同部分.它们只是一个中等尺寸的矢量(典型的是64或128维).通过计算L2或两个描述符之间的某个其他距离,可以找到匹配.通过术语Nm描述找到一对图像中的多少匹配.
请注意,到目前为止,匹配仅通过兴趣点周围的图像区域的外观来完成.通常,许多这些匹配都是完全错误的.这可能是因为描述符看起来相同(想想:重复对象,如多窗口建筑物上的窗台,或树上的叶子),或者因为描述符只是有点太无法提供信息.
常见的解决方案是添加几何约束:图像对是使用相同的相机从相同的位置拍摄的,因此在一个图像中接近的点也必须在另一个图像中接近.更具体地说,所有点必须经历相同的转换.在全景情况下,相机围绕相机镜头系统的节点旋转,这种转换必须是2D单应性.
Ransac是找到最佳转换的金标准算法,以及与此转换一致的所有匹配.这些一致匹配的数量称为Ni. Ransac通过在这种情况下随机选择4个匹配(参见论文第3.1节)并将单应性拟合到这四个匹配.然后,计算所有可能匹配的匹配数将与此单应性一致.重复500次(见论文),最后采用内部最多的模型.然后使用所有内点重新计算模型.该算法的名称来自RANdom SAmple Consensus:RanSaC.
信心期限
对我来说,问题是关于这种神秘的信心.我很快发现了计算的地方.
// These coeffs are from paper M. Brown and D. Lowe. "Automatic Panoramic Image Stitching
// using Invariant Features"
matches_info.confidence = matches_info.num_inliers / (8 + 0.3 * matches_info.matches.size());
// Set zero confidence to remove matches between too close images, as they don't provide
// additional information anyway. The threshold was set experimentally.
matches_info.confidence = matches_info.confidence > 3. ? 0. : matches_info.confidence;
mentioned paper
在第3.2节(“图像匹配验证的概率模型”)中有一些更详细的含义.
阅读本节,有些事情脱颖而出.
>他们的模型中有很多变量(主要是概率).这些值在论文中定义,没有任何理由.以下是关键句:
Though in practice we have chosen values for p0, p1, p(m = 0), p(m = 1) and pmin, they could in principle be learnt from the data.
所以,这只是一个理论上的练习,因为参数已经凭空剔除.注意原则上可以学习.
>论文13中的置信度计算.如果读取正确,则表示matches_info.confidence表示两个图像之间的正确匹配,如果其值大于1.>当置信度高于3时,我认为没有任何理由去除匹配(将置信度设置为0).这只意味着有很少的异常值.我认为程序员认为大量的匹配结果是异常值意味着图像重叠很多,但这并不是由此背后的算法提供的. (简单地说,匹配是基于功能的外观.)