>>戳此处立即下载电子书<<,学习全套目标检测算法&模型
YOLO
由于在R-CNN 的系列算法中都需要首先获取大量proposal,但proposal 之间有很大的重叠,会带来很多重复的工作。YOLO[5] 一改基于proposal 的预测思路,将输入图片划分成SxS 个小格子,在每个小格子中做预测,最终将结果合并,如图2-14 所示。接下来我们看一下YOLO 学习的关键步骤:
(1)YOLO 对于网络输入图片的尺寸有要求,首先需要将图片缩放到指定尺寸(448x448),再将图片划分成SxS 的小格。
(2)每个小格里面做这几个预测:该小格是否包含物体、包含物体对应的矩形框位置以及该小格对应C 个类别的分数是多少。因此,每个小格需要预测的的维度为B x(1+4)+ C,其中B 代表每个小格最多可能交叠物体的个数,1 为该小格是否包含物体的置信度,4 用来预测矩形框,C 表示任务中所有可能的类别个数(不包含背景)。因此,YOLO 网络最终特征层的大小为 S x S x( Bx5 + C),图 2-14 中特征
层大小即为 7 x 7 x ( 2 x 5 + 20)=7x7x30(Pascal VOC2012 目标检测数据集共有20 种类别)。
由于YOLO 直接将输入图片划分为SxS 个小格,不需要产生proposal 的过程,所以速度比Faster R-CNN 快很多,但是因为粒度较粗,所以精度相比Faster R-CNN 略逊一筹。YOLO 的主要贡献是为目标检测提供了另一种思路,并使实时目标检测成为可能。近几年,YOLOv2 和YOLOv3 接连推出,感兴趣的读者可以参考附录的6。
图2-14 基于Pascal VOC2012 目标检测数据集的YOLO 示意图