论文地址:You Only Look Once: Unified, Real-Time Object Detection
创新点
YOLO实现了实时处理图片,达到45FPS;Fast YOLO达到155FPS,但是检测准确率不高。
优势:
- 速度快。
- 做预测时全局了解图像,对背景预测错误出现的概率比Fast R-CNN小。
- YOLO学习目标的一般特征,具有较高通用性,应用到新领域,不太可能发生故障。
但是YOLO检测准确性不高,虽然可以快速识别图像中的对象,但是很难准确定位一些目标,尤其是小目标。
算法概述
YOLO使用整张图片的特征预测bounding box。
- 将图片分为 的网格。如果某个目标中心落在一个网格,则该网格负责检测该目标。有些目标中心点可能落在多个网格的边界,可通过nms进行筛选。
- 每个网格预测 个bounding box及其置信度。置信度反映了bounding box包含对象的信心程度,以及bounding box预测目标的准确程度。置信度定义为: 。如果不含目标,则confidence=0,如果含有目标,则confidence= 。
- 每个bounding box包括5个预测值: 及置信度。(x,y)表示bounding box中心坐标,与网格相关,训练过程将x,y,w,h进行归一化。
- 每个网格预测 个条件类别概率 。不论每个网格中bounding box有多少个,每个网格只预测一组类别概率。
- 在测试阶段,我们将条件类别概率与bounding box置信度相乘, ,得到每个bounding box属于特定类别的confidence score。
- 因此最终预测值变为 的张量。
YOLO在VOC数据集上测试,参数
,因为VOC数据集含有20类,因此设置
,最终预测值为
的张量。
算法详解
1. 网络结构
YOLO网络有24个卷积层,紧跟2个全联接层,整体网络结构如图所示。
Fast YOLO网络使用较少卷积层,只有9个。
2. 训练过程
在ImageNet数据集上使用网络前20个卷积层紧接着一个平均池化层及一个全连接层进行预训练,我们添加4个卷积层和2个全连接层,并进行初始化。为了增加细粒度信息,我们将网络输入分辨率由
提高到
网络最后一层采用线性激活函数,其他层采用pRelu(修正线性激活函数):
3. 损失函数
作者采用sum-squared error(平方和)的方式把坐标误差和分类误差整合到一起。但如果二者的权值一致,容易导致模型不稳定,训练发散。因为很多grid cell是不包含物体的,因此grid cell的confidence score为0。所以采用设置不同权重方式来解决,一方面提高坐标误差的权重,另一方面降低不包含目标的bounding box的confidence loss权值,loss权重分别是
,
。而对于包含object的box的confidence loss权值还是原来的1。损失函数如下所示:
第一项Loss表示bounding box中心坐标误差,第二项Loss表示bounding box宽与高的误差,之所以使用平方根,为了提高对小目标的检测准确性。比如大目标w=8,预测值w=10;小目标w=1,预测值w=3.不采用平方根,对于大小目标误差相同为4;而采用平方根,对于大目标误差为0.11,小目标误差为0.54.
第三项与第四项分别为该网格的bounding boxes有目标与无目标情况下的confidence Loss。
第五项表示预测类别的误差。
实验结果
1. 实时性系统比较
YOLO在实时检测方面,准确性较高,相比于Faster R-CNN等非实时检测,虽然mAP较低,但FPS较高,满足实时性要求。
2. 误差分析
- Correct: correct class and IOU > :5
- Localization: correct class, :1 < IOU < :5
- Similar: class is similar, IOU > :1
- Other: class is wrong, IOU > :1
- Background: IOU < :1 for any object
YOLO相比于Fast R-CNN,有较多定位误差,Fast R-CNN有较多背景误判。
3. Fast R-CNN与YOLO结合
提升mAP,但是耗费时间增加。
4. VOC12上测试结果
5. YOLO在其他数据集上测试
YOLO算法缺点
- 依照论文,每张图产生49个网格,98个bounding box,最多检测出49个目标,对于距离较近的成群小目标,检测效果差。
- 定位不准。Loss主要来自于定位误差,小误差对小bounding box影响远大于同等误差对大bounding box影响。
- 不擅长检测特征相似的某类物体,擅长实时检测多类物体。