YoLo v1-v3、SSD
如题目,这篇专栏介绍YoLo的1代到3代的模型以及SSD。
基础概念
首先一个非常重要的概念,one-stage与two-stage
two-stage:基于区域提名的目标检测,将检测问题划分为两个阶段,首先产生候选区域,然后对其分类和位置精修。错误率低、漏识别率低但速度慢,不符合实时检测要求,以Faster-RCNN系列为代表。
one-stage:基于端到端学习的目标检测,不需要生成候选区域,直接产生物体的类别概率和位置坐标,单次检测即可直接得到最终结果,又更快的检测速度,如YoLo系列、SSD。
YoLo-v1
Yolo-v1:利用整张图作为网络输入,将目标检测作为回归问题解决,直接在输出层回归羽轩框的位置以及其所属类别。下图为Yolo-v1结构图:
将Inception-v1提取出的特征图再经过4个卷积层和2个FC层,最后生成7*7*30的输出。
7*7网格内的每个Grid(网格、格子)对应大小不同的Bounding box,
每个Bbox坐标(x,y,w,h),x与y表示Bbox中心点与该格子边界的相对值,
w与h表示预测Bbox的宽高相对整个图像比例。(x,y,w,h)会限制在[0,1]之间,与训练数据集上标定的物体真实坐标(Gx,Gy,Gw,Gh)对比训练,每个Grid负责检查中心点落在该格子的物体。
这个置信度confidence只表达Bbox里有无物体的概率,类似Faster-RCNN中RPN层的softmax预测anchor是前景还是背景的概率,并不预测Bbox内物体属于哪一类。
下面看一下针对BoundingBox的置信度confidence,每个网格有两个BoundingBox故也有两个置信度confidence,confidence公式如下:
YoLo-v1预测工作流程:
1.每一个格子得到两个Bbox
2.每个网格预测的class信息和Bbox预测的confidence信息相乘,得到了每一个Bbox预测具体物体的概率和位置重叠的概率PrIOU
3.对于每一个类别,对PrIOU进行排序,去除小于阈值的PrIOU,然后做非极大值抑制。
Yolo-v1的缺点:
1.每个网格只有两个Bbox,物体长宽比不常见的物体效果差
2.原始图片只能划分为7*7,物体靠近识别差
3.最终每个网格只对应一个类别,容易漏掉其他物体
4.对小物体识别差
SSD
接下来按照时间年份,根据YoLo-v1缺点进行改进的SSD模型出现了,主结构为VGG16。后续专栏中会详细介绍VGG16模型,先放一个结构图:
SSD结构根据VGG16改造过来,如下图:
上述模型乍一看很复杂,下面提供一个更简洁的:
看完图介绍一下SSD的特征金字塔,如下图。SSD不仅获得不同尺度的特征映射,同时在不同的特征映射上面进行预测,增加运算的同时提高检测精度。不同的卷积层会输出不同的特征图,这是由于池化层会让图片的尺寸变小,浅层卷积层得到物体边缘信息,深层网络得到更抽象更细节的信息。
Match策略
在训练时,GroundTruth boxes与prior boxes按照如下方式配对:
1.寻找每一个与GroundTruth boxes有最大IOU的prior boxes预选框,保证一一对应
2.ssd之后将剩余没有配对的prior box与任意一个GroundTruth boxes尝试配对,只要二者IOU大于阈值就认定为match(SSD300阈值=0.5)
3.配对到GroundTruth的prior box就是positive,否则为negative
一般情况下negative default box >>positive default box数量,尽量控制positive:negative=1:3
SSD结果分析:
1.数据增强(图片变形转换)对于结果的提升非常明显
2.使用更多的default box,结果会更好
3.更多的feature map可以得到更好的结果
4.使用图片边界的标注框比不使用图片边界的标注框效果更好
5.使用Atrous空洞卷积/扩张卷积提供更大的感受野,用在实时图像分割中
SSD缺点:
1.需要人工设置prior box的最大值、最小值和aspect_ratio,预选框的基础大小和形状需要手工设置,每一层特征使用的预选框大小和形状不一样,导致调试依赖经验。
2.对小目标检测依然效果不好。
YoLo-v2
针对Yolo-v1的缺点,Yolo-v2结合了SSD模型做出了6点改进:
1.首先修改训练分类网络的分辨率为448*448,在ImageNet数据集上训练10个周期(epochs)。这个过程让网络有足够的时间去适应高分辨率的输入。
2.移除全连接层以获得更多空间信息,使用anchor boxes预测Bounding box,anchor box同时预测类别和坐标。移除全连接层的具体步骤如图:
加入anchor box后,每个cell预测9个anchor。总共预测13*13*9=1521个box,而之前YoLo-v1网络预测仅为7*7*2=98个box。
3.维度聚类,利用K-means方法对GroudTruth box做聚类,找到GroudTruth box的统计规律,以聚类个数k为anchor box个数,以k个聚类中心box的宽和高作为anchor box的宽和高。
4.直接位置预测
5.同一网络可进行不同分辨率的检测任务,小尺寸图片运行更快
YoLo-v3
最后介绍的是YoLo-v3,有3种不同特征尺度的输出,分别为13*13*255,26*26*255,52*52*255,一般使用416*416大小图片作为输入,最后得到特征图13*13,再大一点特征图为26*26,再大为52*52。COCO数据集目标检测有80种类,YoLO-v3中有3个box,每个box有(x,y,w,h,confidence)五个基本参数,故有3*(5+80)=255。
对于416*416的图片,YoLo-v2的Bbox有13*13*5=845个,YoLo-v3的Bbox有3*(13*13+26*26+52*52)=10467个。
- 点赞
- 收藏
- 关注作者
评论(0)