YOLO、YOLOv2、YOLO9000和YOLOv3的发展过程

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变成13_13_2048,再与池化后的13_13*1024结合起来一起进行物体检测
  • v2使用不同尺寸图片同时训练网络,每10个epoch就改变输入图像的大小
  • v2采用darknet-19,采用3*3卷积核,共有19层卷积层和5个池化层

YOLO9000

YOLO9000号称可以实时检测9000种物体,主要贡献是使用检测数据集和分类数据集进行联合训练。

YOLOv3

V3在V2基础上做了如下改进:

  • 二元交叉熵损失函数,更好地支持多标签检测。主要是由于之前,检测数据可能存在一些语义上重叠地标签,但softmax函数基于一种假设,即每个检测框内的物体只存在一个类别。
  • 采用Darknet-53,包含53个卷积层,采用残差链接来解决梯度消失问题,同时还采用FPN结构,分成三个head来检测不同尺寸物体。

你可能感兴趣的:(面试,学习路线,阿里巴巴,java,java进阶,后端)