上一篇文章主要讲述了滑动窗口算法。图像中主流的目标检测算法分为两类:(1 ) 两步法; (2) —步法。 一步法中有一种代表算法是YOLO,今天主要讲讲什么是YOLO算法。
1.YOLO的简介
YOLO系列检测算法属于一步类型的目标检测算法,其基本过程可用下图表示,包括YOLO v1、YOLO v2、YOLO v3。
2.YOLO v1算法
YOLO v1将输入整张待检测图像均匀分成SxS个小格子,每个小格子负责检测中心点落在其内的目标和预测B个边界框。。YOLO v1的核心概念是建立一个单一的CNN网络来预测尺寸:
式中S×S一算法中小格子数量, B一每个小格子的边界框的数量, C一训练数据的类别数量。 YOLOv1 的网络结构中有 24 个卷积层和 2 个全连接层,使用交替的 1×1 卷积层降低了来自上一层的特征空间,网络结构可以用下图表示
3.YOLO v2算法
YOLO v2出现的背景是当时为了弥救YOLO vl在检测精度上的劣势,进行许多改进。因此,设计YOLO v2以此提高准确性和处理效率。一般YOLOv2 检测器网络模型的设计原则借鉴了 VGG16 网络。常用的 VGG 骨干网络采用 3 个 3×3 卷积代替 7×7 卷积,并且采用 2 个 3×3 卷积代替 5×5 卷积,根 据模型的深度又分为 VGG16 和 VGG19。YOLOv2 使用的网络模型是 Darknet-19, 该网络模型是由 19 个卷积层和 5 个最大池化层组成,可以用下图表示。Darknet-19 网络主要在 3×3 卷积层之间使用 1×1 卷积降低了网络结构的计算量和参数,并且 通过 2×2 最大池化层对特征图的大小进行了调整。
4.YOLO v3算法
YOLOv3 算法借鉴了 FPN(Feature Pyramid Networks)网络的尺度金字塔结构,将输入的图像尺寸变为 32 的倍数,例如缩 放到 320 pixel×320 pixel,416 pixel×416 pixel,608 pixel×608 pixel 等,然后检测 模块通过上采样,使用了三个不同尺度的特征图实现了跨层检测,并且 YOLOv3 使 用的骨干网络是没有全连接层的 Darknet-53。举例说明,如下图,该检测器的跨层检测是通过上采样结合了 13 pixel×13 pixel、26 pixel×26 pixel 和 52 pixel×52 pixel 尺寸的特征图;网络结构中的 Set Conv 模块和 Yolo Layer 模块是由 1×1 和 3×3 的卷积层组成。