SSD架构,你不来看看么?
程序员文章站
2022-05-30 13:22:58
...
SSD
前言总结
SSD骨架网络结构
- VGG16部分作为特征提取
SSD特征提取网络结构
- SD300 也叫 VGG16Extractor300
- 提取了6个特征张量
锚点框Anchor Boxes和选框预测
Anchor Box 为了实现特征图上的一个点能预测多个物体!
- Anchor Box的基础大小有7个
- 选框可有
两个正方形
,高宽2:1,1:2, 3:1 1:3 ⇒最多六个
,最少4个
SSD骨架网络结构
- 结构采用VGG16的conv4和conv5
图引用自 《深入浅出PyTorch 从模型到源码》
SSD特征提取网络结构
- 和VGG输入大小不一样,这次是输入,VGG16是输入
- 最后的输出特征空间大小为,有256张,也就是
图引用自 《深入浅出PyTorch 从模型到源码》
- VGG16Extractor300
提取了六个特征层
conv4_3
conv7
conv8_2
conv9_2
conv10_2
conv11_2
锚点框Anchor Boxes和选框预测
- 六张特征图
-
七个Anchor Box 基础尺寸
- 30, 60, 111, 162, 213, 265, 315
- 特征相对于原图的步长
- 8, 16, 32, 64, 100, 300
如何根据特征图中的点计算原图中的坐标?
假设$(i,j)$为整数,也就是格子图中的左上角坐标
, 那么原图中为
那知道了原图中对应的中心点坐标,如何知道对应原输入图像中的宽高呢?
????
如此计算,也解释了为什么有7个基础尺寸!就是为了一个大正方形!
我们求到了输入原始图像中,真实框的大小和坐标(x,y,w,h), 然后和神经网络预测的框直接求误差?
不是的!我们要求误差!!但是是一个变换!!!
图引用自 《深入浅出PyTorch 从模型到源码》
其中 是神经网络预测的框
物体选框和锚点框的匹配
我们知道,COCO数据集的标签框是 即左上角左边和宽高。
因此第一步:
- 坐标转换成两种:
- 第一种坐标:即中心坐标化
- 第二种坐标:即左上角和右下角坐标
匹配物体框和锚点框:
一个锚点框能且只能匹配一个目标框(IOU最大者)
一个目标框却可以匹配多个锚点框,然后计算, 并分配标签。
损失函数
F.smooth_l1_loss
避免异常值影响
Huber Estimator
它其实就是k=1情况下的Huber Estimator!!
推荐阅读