6

我正在尝试为大量图像缩放“matching_to_many_images.cpp”。(20K+ 图像) https://github.com/kipr/opencv/blob/master/samples/cpp/matching_to_many_images.cpp

我使用基于 FLANN 的匹配器来匹配图像(使用 SURF 关键点和描述符提取器)。我尝试遵循本文中描述的方法(“在计算集群上搜索”部分) http://www.cs.ubc.ca/research /flann/uploads/FLANN/flann_pami2014.pdf ,

我有一个训练图像集 C,总共有 n 个图像。

C={B(1)...B(n)}。

我将集合 C 分成 N 个“桶”,其中每个桶包含 (n/N) 个图像。对于每个存储桶,我分别执行“detectKeyPoints”、“computeDescriptors”和“trainMatcher”。这意味着我为每个图像桶有一个单独的“DescriptorMatcher”。总共 N 个 DescriptorMatchers。

然后对于查询图像,我执行“detectKeyPoints”、“computeDescriptors”,然后对 N 个 DescriptorMatchers 中的每一个执行“匹配”。

最后从每个 DescriptorMatcher 接收 DMatch 列表,将 local-image-bucket-indices 映射到 global-image-index 并计算每个图像的匹配描述符数量。这个数字越大最接近查询图像。

我用 N=1 运行它,它给出了正确的结果。但是当我增加 N (>1) 时,我注意到我没有得到正确的匹配结果。

我的问题是:

1)我是否根据论文执行了正确的步骤?我试图了解如何按照论文中的描述完成“减少”步骤。

2)我可以从 DMatch 对象中提取两个因素;“距离”和“每张图像的总匹配数”。如何使用这两个因素找到最接近的匹配图像?

4

0 回答 0