SSD算法是在YOLO的基础上改进的单阶段方法,他给予一个前向传播的神经网络,最主要的优点是能在兼顾速度的同时确保高精度,而且由于采用了END-TO-END的训练方法,及时处理的分辨率比较低的照片,分类结果也很准确。
SSD 网络结构分为4个部分:基础网络+附加特征层+预测 +非极大值抑制
其中,基础网络是VGG-16的前4层网络,主要选取其中的Conv4_3 作为第一个特征层用于目标检测,并将VGG16中的FC7改成了卷积层Conv7。
附加特征层是在 VGG-16基础网络上添加的特征图逐渐变小的特征提取层,分别为Conv8_2、Conv9_2、Conv10 2、Conv11 2层。它们和VGG中的Conv4 3、Conv7共同组成了6层的金字塔网络。金字塔网络是 SSD的设计核心,能通过不同尺度的特征图来预测目标分类与位置,进而提高检测精度。对于每一层特征图,SSD 网络会对每个像素点预测多个边界框,(假设每个像素点预测4个边界框),然后使用不同尺寸边界框的特征进行预测,这样模拟了类似人眼从远到近观察事物的特点,较大尺寸的特征图适合于对较大物体的预测,而较小尺寸的特征图适合于对较小物体的预测。
预测层(detection layer)需要对边界框中目标的类别进行预测,同时还需要对边界框的实际位置进行预测。预测层分成 cls 分支和 1oc 分支,每个分支中包含6个(因为有6个特征层)卷积层 conv,conv 的输出尺寸和输人尺寸相同。cls 分支预测每个边界框所有分类的得分;loc 分支预测4个对于边界框的位置偏移量。以SSD300 网络为例,最终可以得到8732个边界框的预测结果。
非极大值抑制(Non-Maximum Suppression,NMS)将根据设置的置信度阙值对预测层输出的预测结果进行排序和筛选,删除不符合要求的边界框,保留与真实结果匹配度较高的预测结果。
上面四层完成了 SSD 网络的整个检测流程。在训练过程中SSD 网络使用多框损失函数(MultiBoxLoss)优化网络。多框损失函数包括类别损失和位置损失两个部分。
下式中、入是通过NMS 匹配到真实结果的边界框数量;Leonr(x,c)为类别损失,是典型的softmax损失;L(,g)为位置损失,是采用Smooth L1的回归损失;a参数用于调整类别损失和位置损失之间的比例,默认 a=1。
L(x,c,l,g)=一(Lonr(x,c)+aLoc(x,l,g))
此外,SSD网络的训练过程中还使用了数据加强、匹配策略(matching strategy)、难分样本挖掘(hardnegative mining)等技术提高准确率。最终SSD网络在性能上取得了展示了SSD网络在PASCALVOC2012数据集上同其他模型的对比数据。
-
SSD
+关注
关注
20文章
2851浏览量
117198 -
AI
+关注
关注
87文章
30084浏览量
268348 -
人工智能
+关注
关注
1791文章
46830浏览量
237474 -
目标检测
+关注
关注
0文章
204浏览量
15589
发布评论请先 登录
相关推荐
评论