用于 colmap 重建的 SURF 特征

问题描述 投票:0回答:1

我正在使用以下函数检测和计算 python 数据集上的冲浪特征:

keypoints, descriptors = cv2.detectAndCompute(images, None)
。然后我使用
cv2.DescriptorMatcher_BRUTEFORCE
匹配器来匹配它们。目标是将这些特征和匹配导入到 colmap 以重建 3D 场景。

我将冲浪功能扩展至 128b。问题是 colmap 期望特征采用某种格式:https://colmap.github.io/tutorial.html。然而,我用 python 提取的冲浪特征的 X Y SCALE 和 ORIENTATION 值非常小。另外,有些尺度是负数,这会导致 colmap 出现错误。另外,X 和 Y 应该介于 0 和像素数之间,但它们都是非常接近 0 的小数字。在将特征导入到 colmap 之前,所有其他值都故意设置为 0。

有没有办法将 python surf 描述符转换为 colmap 格式,或者我的描述符有问题吗?

我用 python 可视化了这些功能,它们似乎很好。下面是一个示例文件,其中包含其中一张图像的冲浪描述符。

感谢您的帮助!

surf descriptors example

python surf
1个回答
0
投票

Colmap 期望描述符值在 0 到 255 之间。对于 SIFT 特征描述符,colmap 有一个逻辑将小浮点值转换为 uint8 值。 https://github.com/colmap/colmap/blob/7180b62380e35fea330dde9a325d0c61f0d5111c/src/feature/utils.cc#L65

对于 SURF,您应该进行类似的转换。

© www.soinside.com 2019 - 2024. All rights reserved.