SSD目标检测网络
1、SSD目标检测网络的整体结构
SSD网络输入图片的大小为300×300×3,特征提取网络使用的是VGG16模型,提取到6个不同大小的特征层。特征层可以看做是把图片划分成不同的网格,每一个网格上对应有多个先验框。利用SSD网络的预测结果对先验框进行调整得到最后的预测框。
38×38每个网格对应4个先验框、19×19每个网格对应6个先验框、10×10每个网格对应6个先验框、5×5每个网格对应6个先验框、3×3×256每个网格对应4个先验框、1×1每个网格对应4个先验框。
2、SSD目标检测算法的特征提取网络
SSD算法的特征提取网络使用VGG16,而且增加了额外的卷积层。得到6个不同大小的特征层。对所有的特征层经过两种卷积,通道数分别为num_prior4和num_priornum_class,卷积后的结果分别表示每一个先验框对应的调整参数和每一个先验框中物体所属的类别。
3、SSD网络的预测过程(解码过程)
由于输入到网络中图片都被resize成300×300大小,为了防止图片失真,长宽比不为1的图片需要在图片上下加上灰条。
首先,取出SSD网络的预测结果:mbox_loc,variance,mbox_conf,计算出每一个先验框广澳的偏差和中心点的偏移量。通过解码得到真实框的中心和和宽高。把真实框转化成左上角和右下角坐标的格式。
利用框中物体置信度对框进一步筛选,然后经过非极大值抑制处理。最后将筛选后的框label,框的置信度和框的位置进行堆叠,筛选出得分最高的框,去掉灰条最后画在图片上。
4、SSD网络的训练过程(编码过程)
提取图片和已有的先验框。进行随机的数据增强,图片翻转或者图片翻转,进行数据预处理增加模型的鲁棒性。
编码过程的代码中首先定义一个0矩阵。矩阵中用于存放每一个先验框的调整参数和框中物体所属类别。 计算真实框和所有先验框的重合程度,判断哪些先验框可以通过调整得到真实框。计算出真实框和先验框中心点坐标和宽高的差异。将差异编码,就得到了SSD网络训练过程中应有的预测结果。计算loss值。
最后筛选正负样本。