【论文阅读】You Only Look Once: Unified, Real-Time Object Detection

论文简介:

YOLO是作者针对R-CNN系列等的Two-stage的目标检测算法的时间性能较低,训练、预测Pipeline分散复杂等的缺点,提出的一种更接近端到端的目标检测算法。其具有更加统一、清晰的结构,具有较高的时间性能,可以达到实时检测,但具有比Faster R-CNN较低的准确性(MAP)。

一、YOLO V1 简介

在R-CNN系列等的Two-stage的目标检测算法中,基本都遵循需要进行Region proposal的生成,再进行proposal的特征提取,proposal的分类,Bounding boxes位置回归等复杂的分步计算思路。而YOLO将目标检测问题当做一个回归问题进行求解,使用一个训练好的CNN网络,对输入图像进行一次前向传播计算,同时预测出图像中各个物体的位置及类别概率等信息,达到了一种更接近端到端的目标检测算法。

二、YOLO V1 inference

在给定一幅含有待检测目标的图像时,在YOLO实际进行推理、进行目标检测时,首先将图像resize到模型输入尺寸(448x448,因YOLO使用最后的全连接层进行预测、回归,全连接层尺寸数值确定,所以,前推后的输入尺寸确定),然后输入一个训练好的传统CNN网络(由若干卷积、池化、全连接层组成),在网络的最后一个全连接层,按照一定的规则将1维全连接层reshape到一个7x7x30的tensor,网络输出的这个7x7x30的tensor包含有网络预测到的测试图像中含有的各个目标的位置以及类别概率值,由于网络预测含有重叠预测,再进行NMS非极大值抑制处理后,得到最终的目标检测结果。

具体细节为:30维度的向量包含2个Bounding boxes的位置信息(x,y,w,h),以及2个Bounding boxes的置信度数值,以及当前grid cell进行预测的目标属于20个类的类别概率信息。使用2个置信度数值分别乘以20个类的类别概率,将得到每一个Bounding boxes(共2个)属于20个类的类别概率值,此时,整张输入图像经过处理,得到输出的7x7x2=98个Bounding boxes,每个Bounding boxes含有其位置信息(x,y,w,h)以及该Bounding boxes属于20个类的类别概率值,然后使用这些信息进行逐类别的NMS非极大值抑制处理后,得到整张图最后检测到的目标的位置信息及目标概率。

三、YOLO V1 training

YOLO 只需要训练一个CNN网络模型,网络模型的输入为448x448x3,输出为7x7x30的tensor。YOLO是一个监督学习算法,所以训练数据标签的组织形式决定了网络模型预测输出数据的含义。YOLO中,一幅图像448x448x3,与一个7x7x30的tensor的标签组成一个训练样本对。其中7x7对应到原图分为7x7的网格,每个网格对应的30维向量中包含了该网格所预测的目标(仅一个目标)属于20个类别的概率信息,2个Bounding boxes的位置信息(x,y,w,h),以及2个Bounding boxes的置信度数值,置信度定义为该Bounding boxes含有目标的概率乘以预测框与ground truth框的IOU值,在训练阶段,一个bbox不包含物体,那么这个bbox的置信度为0,如果一个bbox包含物体,置信度就是bbox和ground truth box的IOU值了。所以在预测阶段得到的置信度数值,其代表了该bbox包含物体的概率以及其预测的位置(x,y,w,h)的准确度。

在YOLO中训练标签的组织方案为,对于一个输入的已标注训练图像,将其划分为7x7的网格区域,若某个目标的标注的ground truth框的中心落在7x7网格的哪一个grid cell中,则该grid cell负责预测该目标,也即该grid cell所对应的输出的30维向量中对应该目标类别的概率值是1,其他都设为0。训练标签的30维向量中的关于两个Bounding boxes相关的标签数值是动态设置的,即,在当前初始网络参数下进行一次前向传播,得到两个bbox的预测位置,此时,检查两个bbox与当前grid cell所对应的目标的ground truth box之间的IOU值,IOU值较大的那个bbox的标签数值设置为ground truth box的位置数值,IOU值较小的那个bbox不设置标签数值,不参与loss函数的计算。

YOLO的Loss是通过ground truth和输出之间的sum-squared error进行计算的,所以相当于把分类问题也当成回归问题来计算loss。loss一共包括四个部分:位置误差,置信度误差(含有object的),置信度误差(不含object的),分类误差。不含有任何一个ground truth目标中心的grid cell只参与计算一个误差:置信度误差(不含object的),含有ground truth目标中心的grid cell会参与计算其他三个误差。

其中位置误差的标签值(x,y,w,h)中,x,y是ground truth目标中心相对其落入的grid cell网格的归一化值(0-1之间),w,h是ground truth目标框相对于图像尺寸的归一化数值(0-1之间)。这些处理都是为了使得位置参数与置信度数值都在一个相近的数值尺度范围。在实际情况中,较小的边界框的坐标误差应该比较大的边界框要更敏感。为了保证这一点,将网络的边界框的宽与高预测改为对宽、高平方根的预测(也即标签设置为宽、高平方根)。

训练中使用了drop out防止过拟合,使用了自定义学习率随着迭代次数变换,先小的学习率,再大,再小的策略,数据增强,使用了随机缩放、平移,随机调整曝光度和饱和度(HSV颜色空间)等技术。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值