概述
ssd这篇感觉很工程,主要的工作我觉得有两个:
1.从多层fm上提取bbox,相当于一个multi scale的操作。值得注意的是,首先越靠近bottom越底层的fm在细节表达上做得越好,高层的fm会学习出分类这种概括性的表达,原文中加上最高层的bbox甚至会比去掉这一层效果更差(当然可能是噪声);其次在fm上的bbox并不是严格去对应原图上的reception filed(再加上后面data augmentation工作,我的理解是目标框并不需要一个严格的标注标准比如严格相切之类),对应的关系有公式给出:
sk是第k层(原文总共有6层)提取bbox的fm与原图的尺度比例,这里smin=0.2,smax=0.9,这个定义涉及到default bbox的对应区域,是一个开放性的问题,可以根据自己的实际需求去重新定义。然后对于(aspect ratio),width计算,height计算(都要乘原图size),中心点位置,fk是第k张fm的size。这样,假设最高一层fm的size是4*4,取(i,j)=(0,0),smin=0.2,对1:1的bbox来说,512*512的原图上中心点在(64,64),长宽为102像素。
2.取消了proposal,这也是ssd速度极大提升的原因。为什么效果还这么好有待进一步探究。
还有一些值得一提的工程工作:
1.predictor for detection:在6层fm上提取bbox,对于每一层来说,要分别过一个出loc的卷积层和出conf的卷积层(conv4_3要先过norm层),然后数据排序拼接之后进入multiboxloss层
2.loss的计算
总loss,其中阿尔法交叉验证后取1
3.data augmentation:
在原图上随机取patch,大小是0.1到1原图大小,ratio是1/2到2,保留patch和gt box的overlap且gtbox中心点在这一部分中的。(这一部分解释有待再去参考代码)
4.检测小目标效果不好的情况:可以通过输入更低层fm和调整default bbox对应关系来改善。
最后
以上就是潇洒鸡为你收集整理的Detection:SSD(single shot multibox detecter)的全部内容,希望文章能够帮你解决Detection:SSD(single shot multibox detecter)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复