You Only Look Once Unified, Real-Time Object Detection

5/25/2021 YOLO

# 研究背景

目标检测和识别是计算机视觉的任务之一,其含义是从图像中找到感兴趣的目标,确定它们的位置和大小,然后识别出目标及目标的类型。一般先检测后识别,也可以检测与识别同时进行。经典的目标检测流程主要是分为三步,一是区域选择,采用滑动窗口或选择性搜索的方法,选取图像中目标可能存在的框,二是特征提取,利用SIFT或HOG等提取预选框的特征,三是分类器分类,通过训练好的SVM或Adaboost等分类器对候选框分类,接着进行非极大值抑制,得到最终的结果。

随着深度学习的发展,特别是卷积神经网络在图像识别中的应用,不少人已经试图利用卷积神经网络来进行目标检测和识别,将目标检测和识别任务统一为端到端的学习框架。最早出现基于深度学习的目标检测方法是以R-CNN为代表的系列,例如R-CNN、Fast R-CNN和Faster R-CNN。这些方法大多数是分为两步,一是候选框的提取,二是目标分类。该篇文献提出另一种目标检测和识别的思路,作者将目标检测看作回归问题,直接分析整张图像,从空间上分割边界框和预测类别的概率,仅用单个神经网络一次计算就可以从图像上得到目标的边界框和类别概率,其检测速度大大超越以往的R-CNN系列。

# 问题描述

人眼只需要看一眼,就能看到图像中的目标和类别,这使得人类能够执行复杂的任务,例如驾驶。但是目前已知的目标检测和识别算法,例如R-CNN系列,还无法做到实时和准确的分析。这是由于R-CNN系列方法,首先对图像可能存在边界框进行搜索,然后再分类,接着再不断细化边界框,消除重复检测的目标。这个过程十分缓慢,而且较难优化。

该篇文献,将目标检测和识别看作回归问题,直接从图像像素分析得到边界框坐标和类别概率,只需要在图像上看一次(YOLO),就能预测目标的位置和类别。其大致流程主要为,图像调整到合适尺寸,输入到单个卷积神经网络中,利用模型计算的置信度对所得到的检测结果进行阈值处理。

YOLO方法相比于其他目标检测方法,主要的一大优势就是速度快,基本能做到在视频上实时的目标检测;其次YOLO的背景误检率低;还有YOLO方法泛化性强,不仅能在自然图像,还能在艺术图像上进行目标检测和识别。虽然YOLO可以快速进行目标检测,但是其精度上还是低于目前最先进的检测系统。

image-20210525154803264

# 解决方案

# YOLO思想

将图像划分为S×S的格网,每个格网预测B个边界框,每个边界框包含5个预测:x,y,w,hx,y,w,h和置信度。(x,y)(x,y)表示边界框相对于网格单元边界框的中心,(w,h)(w,h)是相对于整张图像,置信度定义为Pr(Object)IOUpredtruePr(Object) * IOU_{pred}^{true},反映了边界框是否包含目标的信息和预测准确度。除外每个格网还要预测C个条件类别概率Pr⁡(Class_i |Object),每个单元格只预测一组类别概率,不管边界框B的数量。最终,预测的张量为S×S×(B∗5+C),该篇文献是在Pascal VOC数据集上,所有采用S=7,B=2,C=20,输出的预测张量维度为7×7×30。

image-20210525154958213

# YOLO原理

YOLO的预测是基于整个图像,并且它会一次性输出所有检测到的目标信息,包括位置和类别。就好像捕鱼,R-CNN是先选好哪里可能出现鱼,而YOLO是直接一个大网下去,把所有的鱼都捞出来。为便于理解,这里对YOLO预测的bounding box的5个系数的细节信息进行解释。

image-20210525155025548

首先是目标的位置信息(x,y,h,w),为了能够模型在不同大小的物体上都具有泛化性,这里让坐标位置归一化。(x,y)(x,y)的处理为(x,y)(x,y)在格网中相对于位置除以格网的宽和高;(w,h)(w,h)的处理为除以整张图像的宽和高。如上图中计算所示。

接着是置信度confidence,其计算公式是C=Pr(obj)IOUpredtrueC=Pr(obj) * IOU_{pred}^{true}。Pr⁡(obj)预测是gird有物体的概率,当gird有物体则为1,没有物体则为0,IOUpredtrueIOU_{pred}^{true}是预测的bounding box 和真实的物体位置的交并比。以右图为例,假设有9个grid,每个grid预测两个bounding box,那么在3×3的grid中,除了中间的Pr⁡(obj)=1,其他Pr⁡(obj)=0。于是其他的gird的C=0,中间的gird的C=IOUpredtrueC=IOU_{pred}^{true}

这里还需要考虑一个情况,就是如果物体很大,每个grid又很小,物体被多个grid识别出来怎么办?这就需要采用非极大值抑制,例如下图中狗狗,在B1,B2,B3,B4中都识别到狗狗,但是最终是输出应该只有一个框,其他框需要删除。这就需要用到置信度,confidence预测有多大的把握这个物体在我的框里,也就是B1,B2,B3,B4中,选择confidence最大的,把其余的都删掉,也就是保留B1。

image-20210525155213384

参考传送门:https://zhuanlan.zhihu.com/p/94986199

# 网络设计

基于YOLO的思想和原理,作者依据GoogleNet的结构,设计如下的卷积神经网络。网络包含24个卷积层和2个全连接层,只使用1×1卷积降维,后面采用3×3的卷积,最终输出的预测的7×7×30的预测张量。YOLO网络前20卷积层,先在ImageNet预训练,然后其基础上增加4个卷积层和全连接层,并随机初始化权重。在Pascal VOC 2007和2012的训练和验证数据集进行训练,使用了64的批大小,0.9的动量和0.0005的衰减,进行了大约135个迭代周期的网络训练。为了避免过拟合,使用丢弃和大量的数据增强。

image-20210525155303346

image-20210525155306688

# 损失函数

image-20210525155321825

YOLO的损失函数分为4项,前2项计算预测目标边界框的损失,第3项计算预测目标边界框的置信度损失,第4项计算预测非目标的置信度损失,第5项计算预测图像中每个gird所属目标类别的损失。

其中1ijobj1_{ij}^{obj} 代表gird是否包含目标,若包含则为1,不包含则为0。 1ijnoobj1_{ij}^{noobj}则相反,若包含则为0,不包含则为1。即当gird有存在目标时,损失函数计算1,2,3,5项,若不存在,则只计算第4项。λ_{coord}=5用于放大第1和第2项损失,λ_{noob}j 用于缩小第4项的损失,这样做的目的是为了让梯度更加稳定。如果grid中不含有物体,它对1,2,3,5项没有影响,如果调节第四项,会让含有物体的grid的confidence发生改变,这可能使其他项的梯度剧烈变化,从而带来模型上的不稳定。

# 实验分析

# 与其他实时系统的比较

下表可以看到与其他实时目标检测系统比较,例如DPM。基础版YOLO具有45 FPS和63.4% mAP,无论是在速度上,还是精度上都超过30 HzDPM。快速版YOLO速度上提高3倍,精度上只降低10%mAP,依然超越100Hz DPM。

在与非实时目标检测系统比较,例如R-CNN系列。YOLO虽然在精度上低于5%左右mAP,但是速度上是优于其他所有的方法。

image-20210525155502522

# VOC 2007的结果

为进一步检测YOLO和最先进的方法之间的差异,作者详细分析了VOC 2007的结果,将YOLO和Fast R-CNN进行比较。

从右图结果中可以看到,YOLO的背景误检率低于Fast R-CNN,但是其定位精度高于Fast R-CNN,且定位精度比其他错误源加起来都多,YOLO在定位精度上还需要再优化。

image-20210525155515196

# VOC 2012的结果

在VOC 2012测试集上,YOLO的mAP为57.9%,低于现有的最新的方法。但是Fast R-CNN + YOLO的联合模型,是评分第四的方法,比仅使用Fast R-CNN提高2.3%。目前YOLO的优势在于高速度和中等精度。

image-20210525155526868

# 泛化能力检测:艺术品中的行人检测

作者在Picasso数据集和People-Art数据集检验不同目标检测方法的泛化能力,这两个数据集用于测试艺术品中的行人检测。

所有的方法都在VOC 2007预训练,下图结果可以看到, YOLO是在VOC 2007和其他两个数据集上精度相差较小。而R-CNN虽然在VOC 2007精度与YOLO差不多,但是迁移到Picasso和People-Art数据集上精度下大幅度下降。

image-20210525155538240

image-20210525155541819

# 总结与展望

# 总结

YOLO是一个非常快速和精确的目标检测方法,它将目标检测看作是回归问题,基于对整张图像的全局预测的思想,提出一个端到端的统一的目标检测方法。目前YOLO是所有文献中能在速度和精度上都具有较好效果的方法,而且也具备一定的泛化能力,是一个快速强大的目标检测新方法。

# 展望

目前YOLO的缺陷在于其检测的精度较差,低于最新的方法,特别是在定位精度上。未来会针对该问题进行深入的研究,确保在不降低YOLO的速度基础上,提高目标检测的精度。

论文:Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real-time object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 779-788).

Last Updated: 11/22/2022, 10:02:55 PM