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

系列文章目录

文章目录

Introduction

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

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

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

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

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

; Unified Detection

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

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

每个网格被设置为可以预测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}P r (O bj ec t )∗I O U p re d t r u t h ​,以衡量包围框内是否有物体以及包围框的准确度。如果框内没有物体,则置信度为0 0 0,否则置信度等于预测框与真实框之间的I O U IOU I O U。网格同时还要预测C C C个条件类别概率P r ( C l a s s i ∣ O b j e c t ) Pr(Class_i|Object)P r (Cl a s s i ​∣O bj ec t ),尽管之前提到网格可以预测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}P r (Cl a s s i ​∣O bj ec t )∗P r (O bj ec t )∗I O U p re d t r u t h ​=P r (Cl a s s i ​)∗I O U p re d t r u t h ​就得到了每个包围盒中特定类别的置信度打分,这个分数包含了框中出现物体的类别概率和预测框的好坏信息,理论上,这也就是我们完成检测所需要的全部信息。通过卷积神经网络经过一个全连接层,我们便得到了S ∗ S ∗ ( B ∗ 5 + C ) SS(B5+C)S ∗S ∗(B ∗5 +C )维度的向量,对应了所有网格及其两种数值的输出。

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

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

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

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

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

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

Original: https://blog.csdn.net/weixin_44898140/article/details/127097203
Author: 容嬷嬷当年一枝花
Title: 【Object Detection史上最详细YOLOv1-v5详解】YOLO:You Only Look Once

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/687782/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球