YOLO V1(You Only Look Once: Unified, Real-Time Object Detection)深入理解

先推荐大家一篇文章:https://www.jianshu.com/p/cad68ca85e27 ,我觉得这位大佬写的通俗易懂,但是感觉不是很全,所以看了这篇文章之后我又去看了一下原文,特此记录。

目标检测领域中,目前(2016)的方法大都是检测出目标后再对其进行分类,这是一个检测分类问题。YOLO则将目标检测定义为一个回归问题:将整张图片输入一个神经网络,得出预测的边界框和相关类概率。

具体一点来说:
多数以R-CNN为代表的方法,先从图中搜索出一些可能存在对象的候选区(Selective Search),大概2000个左右,然后对每个候选区进行对象识别,之后再精调边界框的位置。因为每个部分都需要独立训练,所以运行缓慢,且很难优化。这是典型的两步法存在的困难,而YOLO则直接从输入的图片到边界框的位置与其置信度,一次便直接确定了目标的位置与类别,这便是一步法的优势。

YOLO图像处理三步骤:
在这里插入图片描述

YOLO的优势

(相较于先前以R-CNN为代表的方法)

  1. 快,基础网络可达45FPS(帧每秒)(在Titan X没有进行批处理时的表现),更快的版本达到了150FPS,
  2. YOLO基于整张图片进行推理,能较好的利用上下文信息,减少模型由于背景干扰而错判的概率。
  3. YOLO学习的是一个可概括性的表述,这有益于模型应用于其他领域。这也是为何现在YOLO在很多领域很火的原因之一。

具体方法:

首先将图片分为S X S个格子,物体的中心在那个格子,就定义该格子代表该物体。每个格子上都铺设了B个先验框(bounding box,后面简称BB),所以一共有S X S X B个BB,模型会给出每个BB的位置及其置信度。如图所示:
在这里插入图片描述
置信度反映了模型对于这个BB包含该目标的把握。计算方法是

每一个BB需要预测5个值,x, y, w, h, and confidence. (x, y)表示这个BB的中心位置, w, h表示BB的宽和高, 以及confidence。每个格子预测C种可能性,C为要分类的总数(YOLO为20种)。总计一下,即最后我们对于一个BB而言,需要预测的是5个值加上20种类别置信度,对一张图片的预测成了S X S X(B X 5+C)的张量。

网络架构:

受到GoogLeNet和inception的启发,网络由24层卷积和两个全连接层组合而成,3 X 3的卷积层后面跟了一个1 X 1的层以减少参数。如下图所示:
在这里插入图片描述
可以看到,网络输出是一个7 X 7 X 30维度的张量,对应S X S X(B X 5+C),即预先铺设的框数量S为7,每个点的先验框数量B为2. C为20.

训练细节:

训练时输入图片都分辨率更高(448 X 448),将最后得出的方框位置正则化(除以原本的宽和高),最后一层预测类别和BB,跟着一个线性激活函数,其余的网络层之后跟着leaky Relu,以增加网络非线性拟合能力。

对损失函数的修改:均方差损失将BB的定位损失和分类损失赋予同样的权重(即简单相加)。不合理之处在于很多BB的置信度为0(即有点BB中并未含有目标),这将导致模型训练时的不稳定性。为此,作者将BB的定位损失赋予了更高的权重,减少了置信度的权重(具体为10 :1)。

作者还考虑到较大与较小的BB占有同样权重是不合理的,因为同样的误差对于较大的BB的影响明显比较小的要小,所以作者的预测目标是坐标的平方根。最终,每个BB最多只负责一个目标。
在这里插入图片描述
该式中:
在这里插入图片描述
前面两项为有目标的BB的位置误差,第三项为有目标的BB的置信度误差,第四项为不含目标的BB的置信度误差,最后一个为含有目标的BB的分类误差。

作者大概训练了135个epoch,batch size为64,动量为0.9,衰减率为0.0005。前面75个epoch的学习率为0.01,中间30个为0.001,最后30个为0.0001。为了避免过拟合作者使用了dropout及数据增强等。

YOLO的限制:

  1. 每个BB只能预测一类目标,这边限制了我们预测目标类别的数量,以及对于小目标的不敏感。
  2. 网络结构中含有多个下采样层,使得模型的特征相对粗糙。
  3. 模型预先铺设的边界框使其对数据有很强的依赖性,很难将其推广到新的场景中。
  4. 最后,应该对不同大小的BB设置不同的损失函数,作者目前是直接用一个相同的损失函数,虽然用平方根进行了抑制。

下一篇,YOLO V2/ 9000.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值