2021SC@SDUSC
分析完了PaddleDetection的竞赛冠军模型。接下来分析移动端模型
PaddleDetection目前提供一系列针对移动应用进行优化的模型,主要支持以下结构:
其中大量网络应用了ssd算法 我们接下来进行对其中ssd算法的分析
链接介绍:
SSD github : https://github.com/weiliu89/caffe/tree/ssd
SSD paper : https://arxiv.org/abs/1512.02325
SSD 动态PPT: https://docs.google.com/presentation/d/1rtfeV_VmdGdZD5ObVVpPDPIODSDxKnFSU0bsN_rgZXc/pub?start=false&loop=false&delayms=3000&slide=id.g179f601b72_0_51
SSD PPT:http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf
目标检测|SSD原理与实现:https://zhuanlan.zhihu.com/p/33544892
论文阅读:SSD: Single Shot MultiBox Detector : https://blog.youkuaiyun.com/u010167269/article/details/52563573
一、SSD网络总体架构
图1 SSD网络架构(精简版)
图2 SSD网络架构(细节版)
SSD采用VGG16作为基础模型,并且做了以下修改,如图1所示
分别将VGG16的全连接层FC6和FC7转换成 3x3 的卷积层 Conv6和 1x1 的卷积层Conv7
去掉所有的Dropout层和FC8层
同时将池化层pool5由原来的 stride=2 的 2x2 变成stride=1的 3x3 (猜想是不想reduce特征图大小)
添加了Atrous算法(hole算法),目的获得更加密集的得分映射
然后在VGG16的基础上新增了卷积层来获得更多的特征图以用于检测
二、算法细节
1、多尺度特征映射
图3 单层feature map预测和多层特征金字塔预测对比
如图3所示,左边的方法针对输入的图片获取不同尺度的特征映射,但是在预测阶段仅仅使用了最后一层的特征映射;而SSD(右图)不仅获得不同尺度的特征映射,同时在不同的特征映射上面进行预测,它在增加运算量的同时可能会提高检测的精度,因为它具有更多的可能性。
图4 SSD与Faster-rcnn比较
如图4所示,对于BB(bounding boxes)的生成,Faster-rcnn和SSD有不同的策略,但是都是为了同一个目的,产生不同尺度,不同形状的BB,用来检测物体。对于Faster-rcnn而言,其在特定层的Feature map上面的每一点生成9个预定义好的BB,然后进行回归和分类操作来进行初步检测,然后进行ROI Pooling和检测获得相应的BB&