YOLO
yolo的基本思想是使用一个端到端的CNN直接预测目标的类别和位置,相对two-stage,yolo实时性高,但检测精度低。YOLO每个边界框只预测两个框,主体结构GoogLeNet,由24个卷积层和2个FC层组成。
YOLOv2
YOLOv2针对yolov1两个缺点:
改进:
- YOLOv2在卷积层后添加了BN,加快收敛速度,防止过拟合
- v2的卷积特征提取器在进行检测任务之前,先在高精度图片上调优10个批次,这样能使检测模型提前适应高分辨率图像
- v2采用k-means算法进行聚类获取先验框大小,聚类没有采用欧式距离,而是采用1 - IOU ,这样使其更适合于检测任务。
- v2直接在预先设定的anchor上提取特征,YOLO使用卷积神经网络作为特征提取器,v1是anchor-free,v2则借鉴Faster R-CNN思路采用anchor-based
- v2将图像 448 x 448变为416 * 416,经过32倍下采样后,图像变为13*13,长宽都是奇数,可以有效地识别出中心
- v2 将不同大小的特征图结合起来做物体检测,具体来说将最后一个池化层的输入 26 * 25 512 经过Passthrough Layer变成13132048,再与池化后的1313*1024结合起来一起进行物体检测
- v2使用不同尺寸图片同时训练网络,每10个epoch就改变输入图像的大小
- v2采用darknet-19,采用3*3卷积核,共有19层卷积层和5个池化层
YOLO9000
YOLO9000号称可以实时检测9000种物体,主要贡献是使用检测数据集和分类数据集进行联合训练。
YOLOv3
V3在V2基础上做了如下改进:
- 二元交叉熵损失函数,更好地支持多标签检测。主要是由于之前,检测数据可能存在一些语义上重叠地标签,但softmax函数基于一种假设,即每个检测框内的物体只存在一个类别。
- 采用Darknet-53,包含53个卷积层,采用残差链接来解决梯度消失问题,同时还采用FPN结构,分成三个head来检测不同尺寸物体。
|