网络结构
骨干网络采用VGG-16模型,将经过卷积得到的特征层中的Conv4_3, Conv7, Conv8_2, Conv9_2, Conv10_2, Conv11_2这一共6个特征层作为预测层,分别通过Predictor进行卷积获得8732个default box的category score和shape offset to default box coordinates,将预测结果经过筛选和非极大值抑制NMS得到最终预测结果。
知识点
DefaultBox
SSD网络会对不同的特征图层进行不同尺寸的DefaultBox的预测
Predictor
Predictor由两个部分组成,分别是Detector和Classifier,Detector输出defaultbox的坐标偏移,Classifier输出各类别得分(包括背景),Predictor用卷积实现,通道数为Num of DefaultBox * (Num of Classes+ 4)
损失函数
类别损失
定位损失
训练方法
在目标检测任务中,通常会生成大量的先验框,网络对于所有的先验框会生成对应的坐标偏移,那么网络在计算定位误差的时候,必须要知道每个先验框所对应的真实框。
匹配条件1,对于每个真实框,找到与之IOU最大的先验框,保证每个真实框都有一个先验框来负责检测它。正常来说,网络生成的先验框的数量是远远大于真实框的数量的,如果只根据策略1来进行匹配,大量的未与真实框相匹配的先验框,它们的标签都为背景,那么这将导致类别严重失衡。
这个时候,还需要第2个条件,对于剩余的未被匹配的先验框,如果有某个真实框与它的IOU大于某个阈值(一般取0.5),也将该真实框与之匹配。正常情况下,每个真实框都会同时与多个先验框进行匹配,而每个先验框只能匹配一个真实框。匹配过程需先满足第一个条件,然后满足第二个条件。
即便每个真实框可与多个先验框同时匹配,但背景先验框的数量还是要明显大于物体先验框的数量。因此,论文中还使用了Hard negative mining的策略,按照先验框的类别置信度误差从高到低排序,只选择前top_k个先验框作为训练的背景先验框(背景先验框的采样),最终正负样本的比例约为1:3。