Please enable JavaScript.
Coggle requires JavaScript to display documents.
YOLOv2(2016) - Coggle Diagram
YOLOv2(2016)
结构
组件
Better
高分辨率分类器
YOLOv1在224x224的分辨率下做图片分类的预训练,然后切换到448x448的目标检测,这就意味着模型需要同时切换分辨率和任务,所以这次会在中间先切换448x448的分类任务在到目标检测
Anchor Boxes
概述
使用预先选择的Anchor Boxes预测Bounding boxes
原因
相比YOLOv1学习物体相对于图片大小的高和宽,使用Anchor Boxes后则学习相对于预设大小和形状的Anchor Boxes的偏移量,使得模型更容易学习,因为Anchor Boxes大小形状固定,YOLOv1则不固定
实现
缩小网络输入
缩小网络输入为416x416,因为卷积的下采样因子为32,最后可以得出13x13的卷积图,最终的目的是让特征图有一个中心,因为很多物体都在物体的中心
去掉最后的池化层
去掉卷积层最后的池化层,提高特征图的分辨率
Anchor Boxes
详情
- 选定Anchor Boxes,有几个Anchor Box后面就有几组预测输出
- 去掉最后的全连接层,并使用anchor boxes代替,所以每个anchor box有的特征是,每个grid有两个:
- x,y,w,h四个坐标相关数值,其中,w和h是这里Anchor Box的偏移量;
- confidence:与YOLOv1中的置信度相同
- class_n:目标检测的分类
Dimension Clusters
-
原因
使用人手的方式选取Anchor Boxes会间接影响到模型的准确性,使用聚类选取的方式效果更好
实现
使用k-means聚类算法,相对于一般的欧式距离算法,这里使用IOU计算距离,因为不同大小的Anchor Boxes也能很好的体现他们的差距
-
Fine Grained Features
概述
将高分辨率的特征图和低分辨率的特征图拼接到一起,让模型能对大型和小型的物体都有检测能力
原因
因为最后的特征图是13x13的,这对检测大物体已经足够的,但是对小物体来说是不够的
实现
增加一个passthrough层,将早期的26x26x512的特征图,分拆拼接成13x13x2048的特征图,然后和最后卷积得到的13x13x1024的特征图拼接起来,得到13x13x3072的特征图,并在这特征图上做检测
Multi-Scale Training
-
原因
因为模型只有卷积层和池化层,所以模型对输入没有显示,只是输出会因输入不同而不同(如输入416x416就是13x13,608x608就是19x19)
实现
没10个迭代随机选取一种输入图片的大小,继续训练
Batch Normalization
极大的改善了收敛速度同时减少了对其它regularization方法的依赖,如dropout
Faster
Darknet-19
概述
VGGnet太慢了,在考虑性能和准确率上新开发了Darknet-19作为YOLOv2的骨干网络
-
-
优点
因为目标检测数据标注的困难性,图片分类的数据集的数据量要比目标检测的多得多,YOLOv2使用共同训练的方式同时使用分类和目标检测的数据集,使用目标检测图片学习精确的位置,使用分类图片增强了模型的词汇量和鲁棒性