Paper Reading:You Only Look Once:Unified,Real-Time Object Detection

在这里插入图片描述
论文链接:https://arxiv.org/abs/1506.02640

YOLO_v1阅读报告

摘要

​ 本文提出一种新的目标检测算法YOLO,不同于先前的检测算法通过重新利用分类器进行目标检测,本文提出的YOLO算法将目标检测问题看作回归问题从空间上定位边界框同时预测相应类别的概率,使用单个神经网络通过一次估计直接从整张图片预测边界框和类的概率。由于整个检测过程只使用单个神经网络,检测效果能从端到端直接进行优化。

​ 统一检测结构的检测速度非常快速。基础的YOLO模型能实时地以每秒45帧的速度处理图片。更小版本的网络Fast YOLO在保持两倍mAP于其他实时检测器的基础下做到每秒155帧处理图片的速度。与最先进的检测系统相比,YOLO产生更多的定位误差但其背景预测误差要小很多。最后,YOLO能学到检测目标非常一般的表示。在从自然图像泛化到其他领域如艺术图像,YOLO比其他方法,例如DPM,R-CNN效果都要好。

统一检测

​ YOLO网络使用来自整个图像的特征来预测每个边界框,同时也预测所有类别的所有边界框。本算法将输入图像划分成 $ S \times S$ 块网格结构,目标中心落在网格单元中。每个网格单元预测B个边界框和对应的置信度,置信度反映边界框是否包含目标以及预测的精度如何。


c o n f i d e n c e = P r ( o b j e c t ) ∗ I O U p r e d t r u t h confidence =Pr(object)*IOU_{pred}^{truth} confidence=Pr(object)IOUpredtruth
​ 每个边界框由5个预测量组成:x,y,w,h,confidence ( x , y ) (x,y) (x,y)表示边界框中心位置的坐标; w , h w,h w,h是和整幅图相关的预测量; c o n f i d e n c e confidence confidence表示预测框和真实值的 I O U IOU IOU值。

​ 每个网格单元也预测 C C C 个条件类概率, P r ( C l a s s i ∣ O b j e c t ) Pr(Class_i|Object) Pr(ClassiObject)。这些概率的计算在网格单元包含一个目标的基础上进行,只计算每个网格单元上一系列类的概率。

每个边界框中特定类的置信度计算公式:
P r ( C l a s s i ∣ O b j e c t ) ∗ P r ( o b j e c t ) ∗ I O U p r e d t r u t h = P r ( C l a s s i ) ∗ I O U p r e d t r u t h Pr(Class_i|Object)*Pr(object)*IOU_{pred}^{truth}=Pr(Class_i)*IOU_{pred}^{truth} Pr(ClassiObject)Pr(object)IOUpredtruth=Pr(Classi)IOUpredtruth
在这里插入图片描述

网络设计

​ YOLO的网络有24个卷积层紧接着2个全连接层,同时简单使用 1 × 1 1\times 1 1×1衰减层紧接着 3 × 3 3\times 3 3×3 卷积层。全部网络效果图见下图:

在这里插入图片描述
该网络的最终输出是 7 × 7 × 30 7\times 7\times 30 7×7×30 的预测张量。

训练

​ 本文所提YOLO算法在ImageNet数据集上进行预训练,接着对GoogLeNet模型进行修改来用来检测。同时联合随机初始化权重的四层全卷积网络和两层全连接层来进行预训练以提升效果。考虑到检测通常要求细粒度的视觉信息,我们将输入网络的分辨率从 224 × 224 224\times 224 224×224增加到 448 × 448 448\times 448 448×448 。网络的最后一层同时预测类概率和边界框的坐标,同时我们对边界框尺寸和坐标进行归一化处理,以便更好地进行训练。

​ 最后一层采用线性激活函数,其他层使用leaky rectified linear activation:
ϕ ( x ) = { x if  x > 0 0.1 x otherwise } \phi(x)=\left\{ \begin{array}{ll} x & \textrm{if $x>0$}\\ 0.1x & \textrm{otherwise}\\ \end{array} \right\} ϕ(x)={x0.1xif x>0otherwise}
​ 本文对模型输出的平方误差和进行优化,其具备易于优化的特点但与最大化平均精度的目标不匹配。一方面,它将定位误差和分类误差看的同等重要是不完美的;另一方面,在每幅图像中有不少网格单元不包含目标,也就是说其置信度为零,会极大地影响包含目标单元的梯度计算,导致模型稳定性变差。

​ 为解决上述问题,提出两点针对性措施:

  1. 增加边界框坐标损失并减小置信度预测损失
  2. 对边界框的宽和高进行平方根处理来突出小边界框误差的贡献能力

损失函数表达式:

在这里插入图片描述
YOLO网络要在 P A S C A L V O C 2007 和 P A C A L V O C 2012 PASCAL VOC 2007和PACAL VOC2012 PASCALVOC2007PACALVOC2012训练集和验证集上进行135 e p o c h s epochs epochs 的训练。当测试2012的测试数据时我们也在2007的测试集上进行训练,整个训练过程的批处理尺寸为64,动量为0.9,衰减系数为0.0005。为避免过拟合,网络中还进行dropout和数据增强。

推断

​ 就如训练阶段和预测阶段所描述的那样,YOLO算法只需要一次网络估计。在PASCAL VOC数据集上,网络对每张图像的98个边界框和每个边界框的类别概率进行预测。由于YOLO算法只需要进行一次网络估计,它的运行速度十分快,这正是其优于R-CNN,DPM等基于分类器的检测算法的优越性所在。

​ 网格的设计使得在边界框的预测上实现空间的划分,通常这也是清楚的当网格单元中有一个目标存在并且为每个目标对边界框进行预测。但是,有些尺寸大的目标或者正好位于网格单元边界的目标会同时被多个不同网格单元定位。这时,需要使用非极大值抑制来适应这种情况。非最大抑制对于YOLO的性能的影响不像对于R-CNN或DPM那样重要,但也能增加2−3%的mAP。

局限性

YOLO给边界框预测强加空间约束,因为每个网格单元只预测两个框和只能有一个类别。这个空间约束限制了我们的模型可以预测的邻近目标的数量,难以预测群组中出现的小物体(比如鸟群)。

由于我们的模型学习是从数据中预测边界框,因此它很难泛化到新的、不常见的长宽比或配置的目标。模型也使用相对较粗糙的特征来预测边界框,因为输入图像在神经网络中经历了多个下采样层。

最后,我们的训练基于一个逼近检测性能的损失函数,这个损失函数无差别地处理小边界框与大边界框的误差。大边界框的小误差通常是无关要紧的,但小边界框的小误差对IOU的影响要大得多。我们的主要错误来自于不正确的定位。

实验与结论

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在实验中,可以看出YOLO算法的定位误差有19%,而背景判断误差只有4.75%;R-CNN算法的背景判断误差有13.6%,而定位误差只有8.6%。综合以上表现,可以将YOLO和R-CNN进行联合运行,各自规避自身高错误率部分,提高算法性能。同时YOLO算法的实时性极好,两者结合使用的用时与单独使用R-CNN几乎一致,但精度可上升3.2%,在ImageNet竞赛的排名也能上升五位到达第四名。

在小目标识别领域,YOLO的效果不佳,但在泛化性能上YOLO要优于R-CNN和DPM算法。实验中可看出R-CNN和DPM在自然图像上表现良好但在艺术作品上性能下降明显,而YOLO算法在自然图像和艺术作品上都表现出极好的效果。

个人解读

YOLO算法表现出极好的实时性和背景识别性能,但在小的相邻目标的识别表现不佳,这一切都是由其对网格单元进行处理分析的策略决定的——每个网格单元只预测两个边界框和一个类别。考虑到上述因素,本文可以在网格划分和相关网格的处理上进行改进优化来更好地规避该缺陷。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值