SSD原理

目标检测系列文章
yolo v1原理:https://blog.csdn.net/cjnewstar111/article/details/94035842
yolo v2原理:https://blog.csdn.net/cjnewstar111/article/details/94037110
yolo v3原理:https://blog.csdn.net/cjnewstar111/article/details/94037828
SSD原理:https://blog.csdn.net/cjnewstar111/article/details/94038536
FoveaBox:https://blog.csdn.net/cjnewstar111/article/details/94203397
FCOS:https://blog.csdn.net/cjnewstar111/article/details/94021688
FSAF: https://blog.csdn.net/cjnewstar111/article/details/94019687

基本原理

在多个尺寸的feature map上面使用anchors预测,每个anchor对应4个坐标+1组分类概率(包含背景类别)

网络结构

SSD原理_第1张图片

实现细节

anchor生成规则:

在SSD中6层卷积层的每个特征图的每个中心点会产生2个不同大小的正方形默认框,另外每设置一个aspect_ratio则会增加两个长方形默认框,而文中代码对于6层的aspect_ratio个数分别为1、2、2、2、1、1,所以这也就是为什么会产生4、6、6、6、4、4个默认框了。举例如下:

SSD原理_第2张图片

根据以上分析,我们可以计算6层中每个特征图的每个中心点所产生的默认框的大小,分别如下:

conv4_3:

小正方形边长=min_size=30,大正方形边长=sqrt(min_size*max_size)=sprt(30*60)=42.42;

长方形的宽=sqrt(aspect_ratio)*min_size=sqrt(2)*30,高=1/sqrt(aspect_ratio)*min_size=30/sqrt(2),宽高比刚好为2:1;

将以上宽高旋转90度产生另一个长方形,宽高比变为1:2。

fc7:

小正方形边长=min_size=60,大正方形边长=sqrt(min_size*max_size)=sprt(60*111)=81.6;

第1组长方形的宽=sqrt(aspect_ratio)*min_size=sqrt(2)*60,高=1/sqrt(aspect_ratio)*min_size=60/sqrt(2),宽高比刚好为2:1;

将以上宽高旋转90度产生另一个长方形,宽高比变为1:2。

第2组长方形的宽=sqrt(aspect_ratio)*min_size=sqrt(3)*60,高=1/sqrt(aspect_ratio)*min_size=60/sqrt(3),宽高比刚好为3:1;

将以上宽高旋转90度产生另一个长方形,宽高比变为1:3。

conv6_2:

小正方形边长=min_size=111,大正方形边长=sqrt(min_size*max_size)=sprt(111*162);

第1组长方形的宽=sqrt(aspect_ratio)*min_size=sqrt(2)*111,高=1/sqrt(aspect_ratio)*min_size=111/sqrt(2),宽高比刚好为2:1;

将以上宽高旋转90度产生另一个长方形,宽高比变为1:2。

第2组长方形的宽=sqrt(aspect_ratio)*min_size=sqrt(3)*111,高=1/sqrt(aspect_ratio)*min_size=111/sqrt(3),宽高比刚好为3:1;

将以上宽高旋转90度产生另一个长方形,宽高比变为1:3。

......

位置信息(与RCNN一致)

位置信息采用(X中心,Y中心,宽,高)表示

假设anchor(default box)使用如下坐标表示

gt使用如下坐标表示

偏移使用如下公式表示:

 

损失函数

SSD原理_第3张图片

正负样例的选择

与gt的IOU最大的先验框作为正样例

剩余未匹配的先验框如果与某个gt的IOU大于阈值(0.5),也作为正样例

 

正负样例平衡

采用所谓的hard negtive mining策略。即选取背景概率最大的top k个作为负样本,使得正负样本比例为1:3

 

参考资料

《目标检测——one-stage 检测(二)》

你可能感兴趣的:(深度学习)