当两张图片中都检测到线段之后,就要进行线段的匹配。
回想特征点匹配时,是用描述子descriptor计算距离进行匹配,
直线也是这样。
直线的descriptor是用网络得到的。

input image:[1, 1, H, W],经过backbone net后为[1, 256, H/4, W/4]
descriptor_decoder由conv3x3 (s=1, p=1) 和conv1x1组成
得到的descriptor output为[1, 128, H/4, W/4]
那检测到的线段和这个descriptor有什么对应关系呢。
一条线段上有无穷多个点,首先还是要在线段上采样,按线段长度不同每条线段采2~5个点(最小间隔8个像素,多了也只采5个,少了最少也是2个)。
采点2个和5个个数不同,都按5个进行padding。
当然还得有个flag注明哪些是采样点,哪些是padding点。
然后就要用这些点的位置来从descriptor中采样了,
先把点的坐标(h, w)归一化,然后grid_sample采样(参考链接)。
grid1
本文介绍了SOLD2算法在处理线段匹配时的策略,包括线段描述子的计算、采样点的确定、线段间的匹配得分计算以及如何处理遮挡情况。通过余弦距离计算点对之间的相似度,使用needleman-wunsch算法解决遮挡导致的匹配问题,最终找到最佳匹配线段。
订阅专栏 解锁全文
7148

被折叠的 条评论
为什么被折叠?



