YOLOv1论文解读

YOLOv1论文解读

论文原文地址:

https://arxiv.org/pdf/1506.02640.pdf

论文的一个tensorflow实现版本:

https://github.com/gliese581gg/YOLO_tensorflow

一、摘要

YOLO的英文是(you only look once),之所以这样命名是相对于之前的物体检测方法提出的,YOLO是整个系列初始版本,后续改进版本用v加一个数字表示版本号,本文使用的YOLO即是YOLOv1。在YOLO以前,物体检测方法主要是通过region proposal方法来产生大量可能包含待检测物体的潜在BBox( bounding box),再通过训练好的分类器去判断每个BBox里面是否包含有物体,并给出物体的种类的概率(probability)和置信度(confidence)。YOLO的提出具有划时代意义,检测的方法发生了根本性的变化(相对于Fast R-CNN)。YOLO将目标检测任务看作回归(regression)问题,仅用单个神经网络来完成上述任务。作者还在文章中提到因为整个过程都在一个神经网络中进行,因此方便进行端到端的性能优化。

优势

  1. YOLO更快。相比于R-CNN、Fast R-CNN 以及Faster R-CNN等来说,YOLO在保持高mAP的同时检测速度仍然遥遥领先。

YOLOv1论文解读_第1张图片

  1. YOLO能更好的避免图片背景错误。之前提出的大部分方法使用的region proposal使其分类器只能得到图像的部分信息。而YOLO是以整张图像为输入,因此能够利用一张图像的全部信息进行决策,从而减少背景预测出错。作者同Fast R-CNN进行比较,得出YOLO的背景错误不到Fast R-CNN的一半。
    YOLOv1论文解读_第2张图片
  2. YOLO的泛化性能更加强大。作者发现在自然图像上进行训练,在一些艺术风格的图像上进行测试时,YOLO仍然表现出更烈的泛化性。例如下图时作者在CVPR2016做论文讲解时进行的示例:
    YOLOv1论文解读_第3张图片

不足

  1. YOLO的检测精度低于一些最新的目标检测模型。
  2. YOLO容易产生物体的定位错误。(19.0%的定位错误相比于Fast R-CNN的8.6%高出不少)
  3. YOLO对小物体的检测效果不好。
    YOLOv1论文解读_第4张图片

二、算法原理

YOLOv1论文解读_第5张图片
可以根据作者给出的示例图片总结出如下三步:

1、分格

首先,图像会被分为S x S个格子,各个格子分别大小相同,分别拥有原图的一部分。
YOLOv1论文解读_第6张图片

2、检测

包含Ground truth(GT,即正确标记的数据)物体中心的格子负责检测相应的物体。这一步中需要改变输入图像的大小并送入卷积神经网络中,通过非极大值抑制(Non-max suppression)获取预测结果.

3、结果表示

每一个格子都会给出B个检测框及其置信度,以及C个类别的概率,因此整个模型的输出为S x S x (5 x B +C)。作者的模型是基于VOC数据集进行的,在该数据集上,作者将原始图像分为7 x 7共49个格子,每个格子给出两个BBox,每个BBox由一个向量表示为[x,y,w,h,c],分别是目标物体中心点(x,y),BBox的宽高(w,h)以及c(confidence)为预测的BBox和GT box的IOU值。同时该数据集由20个分类(包括狗、自行车等),因此对于VOC数据集训练的YOLO模型而言,该模型输出的为7 x 7 x (5 x 2+20)=1470维的一个向量结果。通过设置IOU与阈值,过滤掉低分的BBox来决定是否将预测出的物体标注在图上。
YOLOv1论文解读_第7张图片

三、模型结构

模型的搭建借鉴了GoogleNet,但是通过使用1 x 1卷积层来整合多个颜色通道的信息和3 x 3卷积来进行特征提取来替代inception module。
YOLOv1论文解读_第8张图片

损失函数

目标检测的任务,就是要找准目标的位置,准确标出目标的宽高,正确给出目标的分类。因此,损失函数的应该为优化上述三个目标进行服务:
YOLOv1论文解读_第9张图片
红色框线内即对坐标预测的损失函数部分,用于判断第i个格子的第j个BBox是否负责目标的检测。绿色框线部分表示BBox含有目标的置信度。绿色框线表示BBox不含目标的置信度的预测。紫色框线部分为该格子对应的所属类别的概率。
其中出现的 λ c o o r d λ_{coord} λcoord λ n o o b j λ_{noobj} λnoobj用于调节权重。在作者的训练中希望有目标的BBox比没有目标的BBox拥有更大的权重。

四、结语

目前最新的YOLO已经有v4版本,在v2与v3版本中都对v1版本进行了改进。其中作者自己提出的现有的模型弊端有:图片的输入尺寸固定以及对小目标检测效果差等。
最主要的缺陷还是当同一个格子之中包含了多个物体时,仅仅能给出其中一个IOU最高的结果而抛弃其它的,改进方法将在后面的版本中进行讨论。

参考文献

  [1]: https://arxiv.org/pdf/1506.02640.pdf
  [2]: https://arxiv.org/pdf/1612.08242v1.pdf
  [3]: https://blog.csdn.net/hrsstudy/article/details/70305791
  [4]: https://www.bilibili.com/video/BV12x411a7Di
  [5]: https://github.com/gliese581gg/YOLO_tensorflow

你可能感兴趣的:(深度学习-目标检测,神经网络,深度学习)