Figure 1. YOLOv3目标检测
文章组织
1. 什么是YOLO?
2. 一个全卷积神经网络——Darknet-53
3. 解释输出
4. 锚框和预测
5. 边界框维度
6. 目标分数和类置信度
7. 不同尺度的预测
8. 输出处理(在类分数上通过一个阈值过滤)
1. 什么是YOLO
YOLO是“You Only Look Once”的简称,它虽然不是最精确的算法,但在精确度和速度之间选择的折中,效果也是相当不错。YOLOv3借鉴了YOLOv1和YOLOv2,虽然没有太多的创新点,但在保持YOLO家族速度的优势的同时,提升了检测精度,尤其对于小物体的检测能力。YOLOv3算法使用一个单独神经网络作用在图像上,将图像划分多个区域并且预测边界框和每个区域的概率。
2. 一个全卷积神经网络——Darknet-53
YOLOv3仅使用卷积层,使其成为一个全卷积网络(FCN)。文章中,作者提出一个新的特征提取网络,Darknet-53。正如其名,它包含53个卷积层,每个后面跟随着batch normalization层和leaky ReLU层。没有池化层,使用步幅为2的卷积层替代池化层进行特征图的降采样过程,这样可以有效阻止由于池化层导致的低层级特征的损失。Darknet-53网络如下图左边所示。
Figure 2. Darknet-53结构图
3. 解释输出
输入是
。输出是带有识别类的边界框列表,每个边界框由
六个参数表示。如果
表示80个类别,那么每个边界框由85个数字表示。
在YOLO中,预测过程使用一个
卷积,所以输入是一个特征图。由于使用
卷积,因此预测图正好是特征图大小(
卷积只是用于改变通道数)。在YOLOv3中,此预测图是每个cell预测固定数量的边界框。
如上图所示,预测图的深度为75,假设预测图深度为
,
表示每个