SSM网络模型之PriorBox算子

PriorBox算子

ssd网络一大特点是,为了提高检测准确率,在不同尺度的特征图上进行预测,这种预测就需要prior box layer。

prior box 是干嘛的呢?其实非常类似于Faster R-CNN中的Anchors,就是候选框,这种候选框的选取不需要像R-CNN那样通过复杂处理产生。在ssd中,priorbox层只需要bottom层feature map的大小,就可以给出候选框。假设输入的feature map大小是W×H,生成的prior box中心就有W×H个,均匀分布在整张图上。在每个中心上,可以生成多个不同长宽比的prior box,如[1/3, 1/2, 1, 2, 3],每个点就可以生成length_of_aspect_ratio个框,所以在一个feature map上可以生成的prior box总数是W×H×length_of_aspect_ratio。

 

 如上图b)所示,在8x8的feature map上,每个中心点生成了4个预选框。(c)是4x4的feature map,假设(c)是(b)后面的层,prior box参数相同,那么显然,从(b)中提取的预选框更有利于小尺度对象的检出,而从(c)中提取的预选框更有利于大尺度对象的检出(4x4的feature map 只有8x8 feature map长宽的1/2,相同参数的prior box圈出的面积相同,但是两个feature map对应于相同的原图,因此4x4 feature map上相同面积映射回原图相当于圈出了更大的面积,是8x8面积的4倍)。

如上所述,SSD提取了不同尺度的feature map来做检测,大尺度特征图(较靠前的特征图)可以用来检测小物体,而小尺度特征图(较靠后的特征图)用来检测大物体。从下图可以看出,ssd网络会从6层feature map中提取特征,priorbox相应也会跟在这6层后面。

 

 计算思路:以feature map上每个点的中点为中心(offset=0.5),生成一些列同心的prior box(然后中心点的坐标会乘以step,相当于从feature map位置映射回原图位置),最后会归一化处理

正方形prior box最小边长为min_size,最大边长为

扫描二维码关注公众号,回复: 8755220 查看本文章

  每在prototxt设置一个aspect ratio,会生成2个长方形,长宽为:

 和

 

猜你喜欢

转载自www.cnblogs.com/wanggangtao/p/12221872.html