《You Only Look Once:Unified,Real-Time Object Detection》

基于卷积神经网络的目标检测算法

  • 作者:Joseph Redmon,et al
  • 单位:华盛顿大学(University of Washington)
  • 发表会议及时间:2016 IEEE计算机视觉和模式识别会议论文集

论文结构

在这里插入图片描述

摘要

我们介绍一种新的物体检测方法YOLO。与先前的物体检测方法是重新设置分类器来执行检测不同,我们将物体检测方法看做一个回归问题,去预测空间分离的边界框和相关类别概率。单个神经网络从整个图片中一次性预测边界框和类别概率。由于整个检测流程是一个单一网络,所以可以进行端到端的直接对检测性能进行优化。
  我们的这种单一网络结构体系速度非常快。我们的基本YOLO模型实时处理图像速度为每秒45帧。较小的YOLO模型版本,Fast
YOLO可以实现每秒155帧的实时检测速度,同时实现mAP是其他物体检测网络的两倍左右。与当前最先进的物体检测方法相比,YOLO会出现较多的定位误差,但是从背景中检测出假阳性目标较少。最后,YOLO可以学习物体通用的特征,所以在自然图像之外的其他检测领域比如艺术品的检测中,YOLO优于包括DPM和R-CNN在内的其他检测方法。

yolo的优缺点

在这里插入图片描述

YOLO结果分析

在这里插入图片描述
结论

  • 与实时检测器相比
    fast yolo不仅速度快而且map还高。yolo的mapt比fast yolo高,而且也可以达到实时检测
  • 与速度稍慢的检测器相比
    yolo在保证不错的精度同时速度最快

在这里插入图片描述

  • correct:预测正确且IOU>0.5
  • Localizetion:预测正确定位不准,0.1<lOU<0.5
  • Similar.分类不对,但是相似,IOU>0.1
  • Other分类错误,lOU>0.1
  • Background:IOU<0.1

既然fast R-CNN精度高,YOLO背景检测率少,我们可以考虑融合这两种模型,采用不同的融合策略,达到更好的效果,作者对此进行了实验。
在这里插入图片描述
结论

  • fast r-cnn与yolo模型融合map提高最多,提高了3.2
  • 其他模型提高有限

泛化能力

在这里插入图片描述
在这里插入图片描述
由上面的对比可知,YOLO的泛化能力最好,能学习到物体的本质特征。


目标检测评价指标

在这里插入图片描述
在这里插入图片描述

交并比IoU (Intersection over Union )

在这里插入图片描述

  • AP衡量的是学习出来的模型在每个类别上的好坏
  • mAP衡量的是学出的模型在所有类别上的好坏。mAP就是取所有类别上AP的平均值。

AP计算之11点法
在这里插入图片描述
AP计算之积分法 (Area under curve AUC)
在这里插入图片描述


YOLO算法思想

yolo算法大致流程
在这里插入图片描述

  1. Resize image.将图片尺寸变为448*448
  2. Run convolutional network.输入到神经网络中
  3. Non-max suppression.使用非极大值抑制得到最后的
    结果
    Dog:0.30 Person:0.64 Horse:0.28

在这里插入图片描述
4. 将图片隐式的分为SS个网格
5. 物体的中心落在哪个网格内,哪个网格就负责预测这个物体
6. 每个网格需要预测B个框,C个类别
7. 每个框包含了位置信息和置信度
(x,y,w,h, confidence)
所以一张图预测的信息一共有:
S
S*(B*5+C)

在这里插入图片描述
在这里插入图片描述
思考???这种预测方式存在什么问题?

  1. 如果一个网格内出现了两个物体的中心
  2. 一个网格里包含了很多小物体(比如天空中的鸟群)
    以上两种情况均只能检测出一类和一个物体,所以yolo对靠的很近的物体以及小目标群体检测效果不是很好
    在这里插入图片描述

yolo网络结构

在这里插入图片描述
在这里插入图片描述


损失函数

在这里插入图片描述
对于每张图片,大多数格点单元不包含目标,其对应的置信度得分为0。目标存在与不存在框的比例失衡,将会影响最后loss的计算,从而影响包含目标的格点单元的梯度,导致模型不稳定,训练容易过早收敛甚至发散。
因此,我们增加bounding box坐标对应的loss,同时对于不包含目标的box,降低其置信度对应的loss。我们用λcoord 和λnoobj来实现这一功能,且λcoord=5,λnoobj=.5。
对不同大小的bbox预测中,相比于大bbox预测偏一点,小box预测偏一点更不能忍受。而平方误差损失(sum-squared error loss)中对同样的偏移loss是一样。作者用了一个比较取巧的办法,就是将box的width和height取平方根代替原本的height和width。因为small bbox的横轴值较小,发生偏移时,反应到y轴上的loss 比big box要大


一.预训练分类网络

训练数据集:lmageNet 1000类竞赛数据集
网络结构:yolo pre 20convs+averagepool+fully connected layer
训练结果:top-5 accuracy of 88%on ImageNet 2012 validation set
训练尺寸(分辨率):224*224

二.训练检测网络

训练数据集:PASCAL VOC2007&2012
数据集训练尺寸:448*448

  • 初始化方式
    预训练分类模型的卷积层初始化yolo的前20卷积层,其余层随机初始化
  • 超参数设置
    • btahcsize:64
    • momentum:0.9
    • decay:0.0005
    • epochs:135
    • learning rate:第一个epoch学习率从0.001逐渐增长到0.01
      2-75:0.01
      76-105:0.001
      106-135:0.0001

总结

在这里插入图片描述

  • YOLO v1优点:
  1. 速度很快并且容易优化:
    只需读取一次图像,就可进行端对端优化,将检测问题转化为回归问题,可满足实时需求
  2. 背景误识别率低:
    对全图进行卷积学习,综合考虑了全图的上下文信息,背景误检测少
  3. 泛化性能好:
    也是由于综合考虑了图片全局,因此能够更好地学习数据集的本质表达,泛化性能更好
  • 相较于Faster R-CNN,YOLOv1存在明显不足:
  1. 定位精度不够,尤其是小目标(网络较深细粒度特征及小物体特征不明显)
  2. 对密集目标的识别存在不足(因为一个gride cell只能预测一个物体)
  3. 异常宽长比的目标识别不佳(因为直接学习的框的值)
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐