论文名:You Only Look Once:Unified, Real-Time Object Detection
论文作者:Joseph Redmon et.al.
期刊/会议名:CVPR 2016
发表时间:2016-5
论文地址:https://arxiv.org/pdf/1506.02640
1.摘要
我们提出了一种新的目标检测方法YOLO。先前的目标检测工作重新使用分类器来执行检测。相反,我们将目标检测框架为空间分离的边界框和相关类概率的回归问题。单个神经网络在一次评估中直接从完整图像中预测边界框和类别概率。由于整个检测管道是一个单一的网络,因此可以直接对检测性能进行端到端的优化。
我们的统一架构非常快。我们的基本YOLO模型以每秒45帧的速度实时处理图像。一个更小版本的网络,快速YOLO,每秒处理惊人的155帧,同时仍然达到其他实时探测器的两倍mAP。与最先进的检测系统相比,YOLO会产生更多的定位错误,但不太可能预测背景误报。最后,YOLO学习对象的非常一般的表示。当从自然图像推广到其他领域(如艺术品)时,它优于其他检测方法,包括DPM和R-CNN。
之前的方法(RCNN系列)
1.通过region proposal产生大量的可能包含待检测物体的potential bounding box。
2.再用分类器去判断每个bounding box里是否包含有物体,以及物体所属类别的probability或者 confidence。
3.最后回归预测。
YOLO
本文将检测变为一个regression problem(回归问题),YOLO 从输入的图像,仅仅经过一个神经网络,直接得到一些bounding box以及每个bounding box所属类别的概率。因为整个的检测过程仅仅有一个网络,所以它可以直接进行end-to-end的优化。
end-to-end: 端到端指的是输入原始数据,输出的是最后结果,原来输入端不是直接的原始数据,而是在原始数据中提取的特征。通过缩减人工预处理和后续处理,尽可能使模型从原始输入到最终输出,给模型更多可以根据数据自动调节的空间,增加模型的整体契合度。在CV中具体表现是,神经网络的输入为原始图片,神经网络的输出为(可以直接控制机器的)控制指令。
2.前言
传统两阶段目标检测模型 VS YOLO单阶段目标检测模型
之前的研究:
DPM: 系统为检测对象使用分类器,并在测试图像的不同位置和尺度对其进行评估
R-CNN:SS方法提取候选框+CNN+分类+回归。
YOLO处理步骤:
(1)将输入图像的大小调整为448×448,分割得到7*7网格;
(2)通过CNN提取特征和预测;
(3)利用非极大值抑制(NMS)进行筛选
YOLO的定义:
YOLO将目标检测重新定义为单个回归问题,从图像像素直接到边界框坐标和类概率。YOLO可以在一个图像来预测:哪些对象是存在的?它们在哪里?
如 Figure 1:将图像输入单独的一个 CNN 网络,就会预测出 bounding box,以及这些 bounding box 所属类别的概率。YOLO 用一整幅图像来训练,同时可以直接优化性能检测。
性能检测对比:
YOLO的优点:
(1)YOLO的速度非常快。能够达到实时的要求。在 Titan X 的 GPU 上 能够达到 45 帧每秒。
(2)YOLO在做预测时使用的是全局图像。与FastR-CNN相比,YOLO产生的背景错误数量不到一半。
(3)YOLO 学到物体更泛化的特征表示。因此当应用于新域或意外输入时,不太可能崩溃。
3.统一检测
网格单元思想:
YOLO将目标检测问题作为回归问题。我们的系统将输入图像分成S×S网格。如果一个物体的中心落在一个网格单元中,这个网格单元负责检测这个物体。一个格子只能预测一个物体,会生成两个预测框。
对于每个grid cell:
(1)预测B个边界框,每个框都有一个置信度分数(confidence score)这些框大小尺寸等等都随便,只有一个要求,就是生成框的中心点必须在grid cell里。
(2)每个边界框包含5个元素:(x,y,w,h,c)。