YOLO

本文详细介绍了YOLO(You Only Look Once)系列的目标检测模型,从YOLOv1的基础概念,如全卷积网络,到YOLOv2的改进,包括anchor锚框和多尺度训练,再到YOLOv3的跨尺度特征融合和优化。讨论了锚框匹配、损失函数计算以及非极大值抑制(NMS)在模型训练和预测中的作用,揭示了YOLOv3在处理紧密相邻物体时的局限性,并阐述了训练过程中的损失计算和优化策略。
摘要由CSDN通过智能技术生成

看的YOLO相关介绍来自
https://aistudio.baidu.com/aistudio/education/preview/667719
也有视频讲解
https://aistudio.baidu.com/aistudio/education/lessonvideo/689798

一:YOLOv1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二:YOLOv2

(从YOLOv2模型开始,YOLO已经开始使用全卷积模型【conv+batchnorm】理解输入输出是什么,分别代表什么意思就基本理解了网络结构的意思了)
1.
anchor(锚框)先验框
通过你需要检测的数据集上面通过Kmeans聚类真实框得到anchor(锚框),能有更好的检测效果
2
多尺度训练
输入的每个batch, 一个batch里有多张图,每个图的长宽都不一样,等同于将图片的宽度高度都不一样,网络在训练过程中可以学习到不同大小的图像,进而提升网络检测的效果
3
红字部分是YOLOv2/YOLOv3一直沿用的部分
在这里插入图片描述
三:YOLOv3
1.采用跨尺度特征融合
(绿框为改进点)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
2
网络输入:N----每个batch的图片数量,3-------R G B 通道,416X416图像高度宽度

在这里插入图片描述
3
YOLOv3为啥有三个分支
我们先看锚框
在这里插入图片描述
不同anchor对不同尺度真实框进行检测,大anchor(32X32感受野大)分配大的真实框,小anchor(8X8感受野小)分配小真实框,通过YOLOv3的不同anchor分别对大中小尺寸进行检测,即根据真实框的尺寸进行分工,提高效率,这就是为啥有三个输出的原因了
4
锚框到预测框
锚框只是我们先验的超参数,但我们需要的不是锚框,而是输出的预测框
在这里插入图片描述
输入图像,经过下采样最终得到4 X 4大小的图片,物理上将图片理解为H、W为4的图片
在这里插入图片描述
在这里插入图片描述
5
目标置信度(边框置信度):0表示没有,1表示有
上图一值狗,用了一个黄色边框框住,我们划分了很多网格,为了判定派出锚框去检测框网格是否包含物体,带回预测框和目标置信度。我们使用目标置信度来检测是否包含目标。
6

H、W划分网格
C通道表征预测框数量

在这里插入图片描述
7
我们需要利用在这里插入图片描述调整锚框,让预测框调整到与真实框一模一样

在这里插入图片描述
通过kmeans聚类得到锚框尺寸
中心点偏移用sigmord:对于一个全卷积网络不加限制他的输出可以是任意值,在-∞到+∞之间,但网格大小有限制,当我们期望他偏移的值在0-1之间时,我们取sigmord函数映射到-1到1之间,
H、W用exp:因为高宽只能是正值,而exp刚好是这样的
在这里插入图片描述
8

利用锚框和划分的网格,锚框取取去框每个网格,通过目标置信度判断是否包含物体得到物体真实框,要表示多少真实框就有多少真实框。

通过网格粗定位和中心点偏移精确定位出物体在图像的具体位置。
通过锚框的宽度高度拉伸表示物体真实框
在这里插入图片描述
9
深度学习的训练过程等同于模型猜答案的过程,用答案和真实值去猜测一个loss,loss再反馈给模型是大了还是小了,再重新猜测。
用锚框使得大致的区间,再通过微调即可达到更好的效果,不用从0开始漫无目的的猜测
在这里插入图片描述
10
计算loss指导训练,但真实框标注的亚子和YOLOv3输出的亚子的长得不一样需要将输入整成输出的形式才能计算loss
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
真实框标注的亚子——》YOLOv3输出的亚子
在这里插入图片描述
红框长宽为H x W,为了让真实框标注变成红框的shape进行损失计算,,接下来我们需要进行真实框匹配

在这里插入图片描述
红框被划分为H x W个网格,真实框中心落在哪个网格就由那个网格检测该真实框(上图),但中心点落到H x W的平面上时,C通道上还有三个锚框,具体和哪个锚框匹配(上图)

11

在这里插入图片描述
答:后一个真实框的信息会完全覆盖住前一个真实框的信息,导致前一个真实框的信息丢失,这是YOLOv3的缺点所在,即不能检测到靠得很近的有遮挡的两个物体

12

已经知道真实框,希望预测框与真实框一样,应该如何设置调整系数(偏移量这些),就应该由真实框推出监督信息。
在这里插入图片描述13
有真实框落到对应的锚框上,检测到有物体,有真实值=1,反之无真实值=0
分类:one-hot独热编码,是真实信息就是真实类别=1,反之不是真实类别=0
在这里插入图片描述得到监督信息之调整好真实框的shape之后,就可以进行损失函数的计算了:
在这里插入图片描述
14
真实框肯定是很少的,锚框很多,这样可能出现2种状况:1取得的样本效果清晰,2只让少数锚框回归真实框,效果可能不好.
所以YOLOv3引入一种非正非负的概念:
没有真实框落在这个锚框上,但是他的回归得到的预测框效果还不错,这个预测框和任一(某一个)真实框的IOU均大于某个阈值,先不计算他的损失,继续让他学习,反而能学习到一个不错的效果。
在这里插入图片描述15
目标概率objectness和分类score的取值是在0-1之间的,因为学习不一定精确,可能认为是目标、不是目标,是这个分类、不是这个分类,我们取sigmord取到0-1之间,再通过设置某个范围来判定是不是,

16
分类:softmax分类一个类别;YOLO用sigmord独立各通道分别计算实现多酚类任务的实现。

17

在这里插入图片描述
18

拿到YOLO的输出特征图,然后按照通道上的不同维度,做一个中心点的偏移以及拉伸,objectness通道取一个sigmord激活,计算出是否有目标的概率。

分类,取得是各类间独立,支持多分类的sigmord激活,这样可实现多分类任务

预测框评分算法:乘积是为了保障预测框内有物体并且知道是该物体的类别的概率是多少,这样才知道预测框内是这个物体的概率是多少
在这里插入图片描述
19
得到输出之后计算NMS

按class分类
按照score降序排列
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值