【Object Detection史上最详细YOLOv1-v5详解】YOLO:You Only Look Once

系列文章目录



Introduction

在这里插入图片描述

在现有的目标检测方法出现之前,人们还是用极为朴素的思想来实现检测:比如将分类模型和不同尺寸的滑动窗口相结合(deformable parts models,DPM)。R-CNN将滑动窗口改进为了先验框,模型先生成一些潜在的候选框,接着对这些候选框做分类,最后对其进行后处理以减少重复检测。由于分为了两阶段,这些模型不仅耗时,且需要分开单独训练而难以优化。

在这里插入图片描述

YOLO将目标检测视作回归问题,使用卷积网络直接从图像像素预测包围盒(bounding box)及其类别,由于它是一个单一的网络(single network),因此可以端到端训练。它有一下优点:

  1. YOLO很快,可以达到实时的处理速度。
  2. YOLO使用图像的全局信息进行推理,它可以隐式地编码关于类别及其外观的上下文信息。
  3. YOLO学习物体的泛化表示,它对全新的输入也有一定的泛化能力。

Unified Detection

在这里插入图片描述

YOLO将图像分成 S ∗ S S*S SS的网格,如果某个物体的中心落到了网格里,那么这个网格就用来检测该物体。

每个网格被设置为可以预测 B B B个包围框 ( x , y , w , h ) (x,y,w,h) (x,y,w,h),其中 ( x , y ) (x,y) (x,y)是中心点坐标,数值为网格单元位置的偏移量; ( w , h ) (w,h) (w,h)是框的尺寸,用图像的尺寸进行归一化,这样 ( x , y , w , h ) (x,y,w,h) (x,y,w,h)都是 [ 0 , 1 ] [0,1] [0,1]之间的数,并为包围框的置信度打分: P r ( O b j e c t ) ∗ I O U p r e d t r u t h Pr(Object)*IOU_{pred}^{truth} Pr(Object)IOUpredtruth,以衡量包围框内是否有物体以及包围框的准确度。如果框内没有物体,则置信度为 0 0 0,否则置信度等于预测框与真实框之间的 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),尽管之前提到网格可以预测 B B B个包围框,但它只能预测出一个类别结果。

这些置信度打分和条件类别概率不是随便设计的,数学上,如果把这两个相乘:
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就得到了每个包围盒中特定类别的置信度打分,这个分数包含了框中出现物体的类别概率和预测框的好坏信息,理论上,这也就是我们完成检测所需要的全部信息。通过卷积神经网络经过一个全连接层,我们便得到了 S ∗ S ∗ ( B ∗ 5 + C ) S*S*(B*5+C) SS(B5+C)维度的向量,对应了所有网格及其两种数值的输出。

在这里插入图片描述

网络架构参考了 G o o g L e N e t GoogLeNet GoogLeNet实现,在训练和推断时使用了 D a r k n e t Darknet Darknet框架,包含 24 24 24个卷积层和 2 2 2个全连接层。在 I m a g e N e t ImageNet ImageNet分类任务的 224 ∗ 224 224*224 224224图像上预训练前 20 20 20个卷积层,并将分辨率加倍后加上额外的 4 4 4个卷积层和 2 2 2个全连接层用于检测。

在这里插入图片描述

使用简单的平方和误差来优化模型参数,尽管这和MAP的目标并不十分一致,因为它将定位误差和分类误差同等对待。当网格内没有物体时,置信度打分为 0 0 0,会产生比正常网格还要大的梯度,这种模型的不稳定性可能导致训练初期的发散。除此之外,平方和误差对大型框和小型框也一视同仁,但小型框的错误无疑比大型框的更加关键。为了解决这些问题,首先通过加权,增加包围盒坐标预测的损失,减少不包含对象的包围盒的置信度预测的损失;其次通过预测包围盒尺寸的平方根来减轻小型框的问题。

对于较大的物体而言,它可能占据了多个网格,非极大值抑制可以用来减少这样的检测错误。

尽管如此,YOLO还是有很多的局限性:由于模型设计上的限制,网格中物体数量是有上限的,这意味着成群出现的小物体可能不会全部检测出来。由于大型包围框和小型包围框在误差上的不等,小型框的小错误也会造成很大影响。YOLO出错的主要来源在于定位的不准确。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

容嬷嬷当年一枝花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值