
input image:[1, 1, H, W],经过backbone net后为[1, 256, H/4, W/4]
heatmap_decoder用于检测出线段的heatmap
先看heatmap_decoder,它的结构如下
conv 3x3, s=1, p=1
pixelShuffel(2)
这个block出现2次,然后接一个conv 1x1
PixelShuffel起了重要的上采样及改变channel的作用。
backbone net出来的channel=256被两个pixelShuffel(2)变换后channel=16,再经过conv1x1,最终heatmap的channel为2,即黑白两通道,[1, 2, H, W]。
这个heatmap对dim=1求softmax, 只取channel=1通道,shape变换为[H, W]
现在已经得到了topk=300个的特征点[300, 2],线段的heatmap [H, W],现在要把它们结合起来检测图像中的线段。
1)heatmap refine
首先,要把heatmap给refine一下,为什么呢,因为有的地方值很小,会显得很弱;
要把整体的值给调整到[0, 1],当然这不是简单的归一化,直接归一化还是面临值小的地方很弱的问题。
源码中是
本文介绍了SOLD2算法如何将特征点与heatmap结合,用于检测图像中的线段。首先,通过backbone网络获取特征,然后通过heatmapDecoder生成线段heatmap。接着,对heatmap进行细化处理,选择合适的候选线段,并进行非极大抑制。最后,通过局部最大搜索匹配线段,结合平均得分和内点比例确定有效线段。
订阅专栏 解锁全文

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



