《You Only Look Once: Unified, Real-Time Object Detection》论文理解

一 概论

作者提出了一种新的物体检测方法YOLO。YOLO之前的物体检测方法主要是通过region proposal产生大量的包含待检测物体的potential bounding box,再用分类器去判断每个bounding box 中是否含有物体,所属类别等信息,之后再改善bounding boxes,消除重复目标,基于整个场景对boxes进行打分。该类方法,如R-CNN,Fast-R-CNN,Faster-R-CNN等。

YOLO不同于这些物体检测方法,它将物体检测任务当做一个regression问题来处理,使用一个神经网络,直接从一整张图像来预测出bounding box 的坐标、box中包含物体的置信度和物体的probabilities。
这里写图片描述

二 简介

1 算法流程

这里写图片描述
如图所示,使用YOLO来检测物体,其流程是非常简单明了的:
1、将图像resize到448 * 448作为神经网络的输入
2、运行神经网络,得到一些bounding box坐标、box中包含物体的置信度和class probabilities
3、进行非极大值抑制,筛选Boxes

2 YOLO优缺点的对比

YOLO的优点
1.yolo检测物体非常快
相比于一般检测物体复杂而又独立的处理过程,yolo只需要将需检测图片输入网络就可以得到检测结果。标准版的yolo可达到45FPS。更快的版本的yolo可达155FPS。而且yolo的mAP是之前其他实时检测系统的两倍以上。

2.YOLO可以很好地避免背景错误
相比于其他物体检测系统使用了滑窗或region proposal,分类器只能得到图像的局部信息。YOLO在训练和测试时都能够看到一整张图像的信息,因此YOLO在检测物体时能很好的利用上下文信息,从而不容易在背景上预测出错误的物体信息。和Fast-R-CNN相比,YOLO的背景错误不到Fast-R-CNN的一半。

3.YOLO可以学到物体的泛化特征。
当YOLO在自然图像上做训练,在艺术作品上做测试时,YOLO表现的性能比DPM、R-CNN等之前的物体检测系统要好很多。因为YOLO可以学习到高度泛化的特征,从而迁移到其他领域。

YOLO的缺点

1、YOLO的物体检测精度低于其他state-of-the-art的物体检测系统(因为网络结构存在下采样层,使得抽取特征比较粗糙)。

2、YOLO容易产生物体的定位错误(因为损失函数的问题)。

3、YOLO对小物体的检测效果不好(尤其是密集成群的小物体,因为一个栅格只能预测2个物体)。
这里写图片描述

三 YOLO检测

1 YOLO的预测信息

YOLO将输入图像划分为S*S的栅格,每个栅格负责检测中心落在该栅格中的物体,如下图所示:
这里写图片描述

每一个栅格预测B个bounding boxes,每个bounding box有5个predictions:x, y, w, h, and confidence。

1.坐标x,y代表了预测的bounding box的中心与栅格边界的相对值。

2.坐标w,h代表了预测的bounding box的width、height相对于整幅图像width,height的比例。

3.confidence就是预测的bounding box和ground truth box的IOU值。

这里写代码片

每一个栅格还要预测C个 conditional class probability(条件类别概率):Pr(Classi|Object)。即在一个栅格包含一个Object的前提下,它属于某个类的概率。
我们只为每个栅格预测一组(C个)类概率,而不考虑框B的数量。
这里写图片描述
这里写图片描述
等式左边第一项就是每个网格预测的类别信息,第二三项就是每个bounding box预测的confidence。这个乘积即encode了预测的box属于某一类的概率,也有该box准确度的信息。

注意:
conditional class probability信息是针对每个网格的。
confidence信息是针对每个bounding box的。

在测试阶段,将每个栅格的conditional class probabilities与每个 bounding box的 confidence相乘:

这样既可得到每个bounding box的具体类别的confidence score。
这乘积既包含了bounding box中预测的class的 probability信息,也反映了bounding box是否含有Object和bounding box坐标的准确度。

2 YOLO中的Bounding Box Normalization

YOLO在实现中有一个重要细节,即对bounding box的坐标(x, y, w, h)进行了normalization,以便进行回归。作者认为这是一个非常重要的细节。
这里写图片描述
这里写图片描述

四 网络

1.网络结构

YOLO的网络模型采用了GooLeNet的网络模型,不同的是,YOLO未使用inception module,而是使用1x1卷积层(此处1x1卷积层的存在是为了跨通道信息整合)+3x3卷积层简单替代,所以,采用了24个卷积层和2个全连接层,其中1*1的卷积层,减少了前一层的空间特征。
同时,训练过程中,使用了224*224的图片。在ImageNet的分类任务上预训练了前20个卷积层,然后再进行目标检测。,如图所示
这里写图片描述

2.网络的训练

首先利用ImageNet 1000-class的分类任务数据集Pretrain卷积层。使用上述网络中的前20 个卷积层,加上一个 average-pooling layer,最后加一个全连接层,作为 Pretrain 的网络。训练大约一周的时间,使得在ImageNet 2012的验证数据集Top-5的精度达到 88%,这个结果跟 GoogleNet 的效果相当。

训练过程中需要注意一下几点
1.将Pretrain的结果的前20层卷积层应用到Detection中,并加入剩下的4个卷积层及2个全连接。
2.学习率的设置为1轮0.001+75轮0.01+30轮0.001+40轮0.0001,由于梯度不稳定,在第一轮是过高的学习率会使网络发散。
3.同时为了获取更精细化的结果,将输入图像的分辨率由 224* 224 提升到 448* 448。
4.将所有的预测结果都归一化到 0~1, 除最后一层使用线性分类器外,其余层都使用 Leaky RELU 作为激活函数。
5.为了防止过拟合,在第一个全连接层后面接了一个 ratio=0.5 的 Dropout 层。
6.为了提高精度,对原始图像做数据提升。
7.在HSV颜色空间中,也会随机调整图像的曝光率和饱和度,使其达到1:5的比例

五 损失函数

损失函数的设计目标就是让坐标(x,y,w,h),confidence,classification 这个三个方面达到很好的平衡。
简单的全部采用了sum-squared error loss来做这件事会有以下不足:
a) 8维的localization error和20维的classification error同等重要显然是不合理的。
b) 如果一些栅格中没有object(一幅图中这种栅格很多),那么就会将这些栅格中的bounding box的confidence 置为0,相比于较少的有object的栅格,这些不包含物体的栅格对梯度更新的贡献会远大于包含物体的栅格对梯度更新的贡献,这会导致网络不稳定甚至发散。

这里写图片描述

解决方案如下:
1.更重视8维的坐标预测,给这些损失前面赋予更大的loss weight, 记为 λcoord ,在pascal VOC训练中取5。(上图蓝色框)
2.对没有object的bbox的confidence loss,赋予小的loss weight,记为 λnoobj ,在pascal VOC训练中取0.5。(上图橙色框)
3.有object的bbox的confidence loss (上图红色框) 和类别的loss (上图紫色框)的loss weight正常取1。
4.对不同大小的bbox预测中,相比于大bbox预测偏一点,小box预测偏相同的尺寸对IOU的影响更大。而sum-square error loss中对同样的偏移loss是一样。
5.为了缓和这个问题,作者用了一个巧妙的办法,就是将box的width和height取平方根代替原本的height和width。 如下图:small bbox的横轴值较小,发生偏移时,反应到y轴上的loss(下图绿色)比big box(下图红色)要大。

这里写图片描述

在 YOLO中,每个栅格预测多个bounding box,但在网络模型的训练中,希望每一个物体最后由一个bounding box predictor来负责预测。
因此,当前哪一个predictor预测的bounding box与ground truth box的IOU最大,这个 predictor就负责 predict object。
这会使得每个predictor可以专门的负责特定的物体检测。随着训练的进行,每一个 predictor对特定的物体尺寸、长宽比的物体的类别的预测会越来越好。

非极大值抑制
这里写图片描述
获取结果
这里写图片描述

参考
https://blog.csdn.net/hrsstudy/article/details/70305791

猜你喜欢

转载自blog.csdn.net/qq_16540387/article/details/81490110