AI大模型介绍yolo
AI大模型介绍yolo
- 1. 概述
- 1.1 YOLO的基本特点
- 1.2 YOLO发展历程
- 2 模型介绍
- 2.1 模型原理
- 2.2 模型结构
- 3. 版本发展历史
1. 概述
1.1 YOLO的基本特点
- 速度快
- 准确率高
- 可解释性强
- 适用性广
1.2 YOLO发展历程
2015 : YOLOV1
2016: YOLO9000v2
2018: YOLOV3
2020: Scaled YOLOV4, PP-YOLO, YOLOV5,YOLOV6
2021: YOLOX,YOLOR,PP-YOLOV2
2022: DAMO YOLO, PP-YOLOE, YOLOV7, YOLOV6
2023: YOLOV8
2 模型介绍
2.1 模型原理
rcnn使用区域建议方法,首先在一张图像中产生可能的边界框。分类后,利用后处理对边界框进行细化,消除重复检测,并根据场景中的其他对象边界框进行重新扫描,这些复杂的流水线很慢。并且因为每个独立的部分都需要被分开训练,所以很难优化。
yolo模型原理:将目标检测重新定义为一个单一的检测问题,从图像像素直接到边界框坐标和类别概率。使用过一个卷积神经网络同时预测多个边界框和这些框类别概率。模型在完整的图像上训练,并直接优化检测性能。这个统一的模型相比较于传统检测模型有很多优点。YOLO设计可以实现端到端训练和实时的速度,同时保持较高的平均精度。
- 将输入图像分成S*S的网格,如果一个目标的中心落入一个网格单元中,该网络单元负责检测目标
- 每个网格单元预测这些盒子的B个边界框和置信度分数
- 置信度分数反映了该模型对盒子是否包含目标的置信度,以及它预测盒子的准确程度
Yolo的输出包含两部分:
(1)边界框(Bounding Boxes)参数:每个边界框包含5个预测:x,y,w,h和confidence(置信度)。(x,y)坐标表示边界框相对于网格单元边界框的中心。宽w和高h是整张图像相对长度预测。还有一个置信度,计算公式如下:
c
o
n
f
i
d
e
n
c
e
=
P
r
(
O
b
j
e
c
t
)
∗
I
O
U
confidence = Pr(Object)*IOU
confidence=Pr(Object)∗IOU
(2)类别概率(class probabilites)参数:每个网格单元还预测C个条件类别概率
Pr(Classi|Object)。这些概率是在网格单元上包含物体置信度的概率
在实际测试的时候,通常需要计算另外一个参数class_specific_confidence,即每个边界框中对象的最终类别置信度,计算公式如下:
c
l
a
s
s
_
s
p
e
c
i
f
i
c
_
c
o
n
f
i
d
e
n
c
e
=
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
class\_specific\_confidence=Pr(class_i|Object)*Pr(Object)*IOU^{truth}_{pred}=Pr(Class_i)*IOU^{truth}_{pred}
class_specific_confidence=Pr(classi∣Object)∗Pr(Object)∗IOUpredtruth=Pr(Classi)∗IOUpredtruth
S=7,B=2,在49个小区域上,每个区域预测2个边框,每张图上有98个边界框和框类别。这些框最终通过nms过滤掉
nms的思想是在多个重叠候选框中,只保留置信度最高的那个候选框,而将其他重叠度超过一定阈值的候选框抑制掉。
nms步骤:
- 获取候选框及置信度:目标检测模型会输出一系列候选框及其对应的置信度分数。
- 排序:根据置信度分数对所有候选框进行降序排序,置信度最高的候选框排在最前面
- 选择并抑制:从排序后的候选框列表中选取置信度信息最高的候选框。删除所有与当前最优候选框重叠度超过预设阈值的候选框
- 重复处理:重复上述步骤,从剩余的候选框中继续选取置信度最高的候选框,直到所有候选框被处理完毕或达到预设的数量限制
2.2 模型结构
YOLO模型是基于深度卷积神经网络进行训练和设计的,网络有24个卷积层和最后2个全连接层。YOLO模型将输入图像划分为多个网格(7*7),每个网格负责预测该区域内目标的存在性,类别和位置,这使得YOLO网络能够同时检测多个目标,并有效处理目标之间的重叠和遮挡问题
3. 版本发展历史
2016 YOLOV2
(1)引入批量归一化,高精度分类器,anchor boxes, 维度聚类,多尺度训练和测试等技术,显著提高了模型的精度和鲁棒性
(2)模型架构:使用darknet-19作为基础网络,减少了计算量和参数数量
2018 YOLOv3
(1)多尺度检测:借鉴FPN思想,通过不同尺度的特征图上进行预测,增强了模型对不同大小目标的检测能力
(2)多尺度锚点:引入了三种不同尺度的anchor box,分别对应于输入图像的1/32,1/16和1/8尺度的特征图,这种设计能够更好地检测不同尺寸的物体,尤其是小物体
(3)模型架构:darknet-53
2020 YOLOv4
(1)引入新技术:使用了多种数据增强方法(Mosaic,cutmix)和多种优化方法(CmBN,DropBlock等),以及多种检测技巧(CIOU,SPP,SAM,PAN,DIOU-NMS)
(2)模型架构:采用了cspdarknet52,通过跨阶段部分连接提高了特征提取能力
2020 YOLOV5
(1)anchor 优化:基于训练数据自动学习anchor,使得模型可以更好的适应不同数据集和目标大小变化
(2)数据增强:自适应训练策略,根据模型在不同数据集上的表现自动调整训练参数
(3)cspdarknet53基础上对网络结构的一些部分进行了优化
2022 YOLOv6
(1)模型架构:引入了RepVgg style结构,这种结构在训练时具有多分支拓扑能力,能够有效利用计算密集型硬件的计算能力
(2)多平台支持
(3)灵活性和高效性,支持多种输入尺寸和batch
2022 YOLOV7
(1)网络结构:YOLOV4基础上进行了改进,backbone中引入了ELAN等新的结构,增强特征提取和融合能力,合并了neck和head,使得网络更加紧凑
(2)速度精度优化
2023 YOLOV8
(1)网络结构:csparknet53作为骨干网络,引入panet模块,用于不同尺度上聚合特征图,提升模型对不同尺寸目标的检测能力
(2)训练策略优化:旋转,翻转,缩放,采用动态学习率调度策略,有助于加速收敛和提高模型性能
(3)损失函数优化:CIOU损失函数,DFL Loss和CIOUloss作为回归损失,更好地处理正负样本不平衡问题