SSD咯
SSD(Single Shot MultiBox Detector)的主干网络基于VGG16 ,是一个one-stage的目标检测方法.一共有8732检测框
多尺度
采用不同大小的特征图,低层预测小目标,高层预测大目标
设置了多种高宽比的 Default Box
以prior box 为初始bbox,将bboxes回归到正确的GT位置上去,预测出的定位信息实际上是回归后的bboxes和回归前的(prior box)的相对坐标.抛弃了rpn(需要单独的区域检测)
数据增强
- 放大操作: 随机crop,patch与任意一个目标的IOU为0.1,0.3,0.5,0.7,0.9,每个patch的大小为原图大小的[0.1,1],宽高比在1/2到2之间。能够生成更多的尺度较大的目标
- 缩小操作: 首先创建16倍原图大小的画布,然后将原图放置其中,然后随机crop,能够生成更多尺度较小的目标
VGG中使用了空洞卷积
为什用卷积代替全连接
一般分类网络最后一层是softmax,上一层是全连接层,节点个数为类别个数,再上一层也是全连接层,节点个数也为类别个数,这一层一般用来特征提取.
- 用全连接层提取特征,提取的是全图的特征.对于包含多个目标的图像,提取特征可能不准确
- 因为全连接,所以网络的输入尺寸固定
为什么conv4_3有一个Normalize操作
-
conv4_3相较于其他layers有不同的feature scale.
-
另一个解释,conv4_3作为特征比较靠前,增加一个L2 Normalize保证后面的检测层差异不是很大.L2 Normalize是对每个像素点在channel维度做归一化,BN则是在[batch_size, width, height]三个维度上做归一化。
除了BN还有哪些归一化方法
- Layer N在通道方向上,对C、H、W归一化,主要对RNN效果明显;
- Instance N在图像像素上,对H、W做归一化,用在风格化迁移;
- Group N将channel分组,然后再做归一化。
- Switchable N是将上面的综合起来,实现了归一化防范的统一。
为什么采用anchor
因为用卷积替换全连接之后,卷积输出的每一个特征点对应原图上的一个理论感受野.
通过anchor,规定一定的区域,使得对特定的大小目标响应
如何匹配anchor
找每个anchor IOU最大的GT,如果有就为正样本,如果没有就为负样本.
损失函数
SSD的实际训练样本就是所有的anchor