序论艳照门事件完整视频
一、YOLO算法的中枢念念想
1. YOLO系列算法的要害
2. Backbone、Neck和Head
二、YOLO系列的算法
1. YOLOv1(2016)
1.1 模子先容
1.2 网罗结构
1.3 已毕细节
1.4 性能认识
2. YOLOv2(2016)
2.1 纠正部分
2.2 网罗结构
2.3 性能认识
3. YOLOv3 (2018)
3.1 模子先容
3.2 网罗结构
3.3 纠正部分
3.4 性能认识
4. YOLOv4(2020)
4.1 模子先容
4.2 网罗结构
4.3 纠正部分
4.4 性能认识
5. YOLOv5(2020)
5.1 模子先容
5.2 网罗结构
5.3 纠正部分
5.4 性能认识
6. YOLOX(2021)
6.1 模子先容
6.2 网罗结构
6.3 纠正部分
6.4 性能认识
7. YOLOv6(2022)
7.1 模子先容
7.2 网罗结构
7.3 纠正部分
7.4 性能认识
8. YOLOv7(2022)
8.1 模子先容
8.2 网罗结构
8.3 纠正部分
8.4 性能认识
9. YOLOv8(2023)
9.1 模子先容
9.2 网罗结构
9.3 纠正部分
9.4 性能认识
10. YOLOv9(2024)
10.1 模子先容
10.2 网罗结构
10.3 主要孝顺
10.4 性能认识
序论本文详确先容了从YOLOv1-YOLOv9的网罗结构,以及各个版块之间的迭代。
图片
YOLOv1-YOLOv8之间的对比如下表所示:
ModelAnchorInputBackboneNeckPredict/ TrainYOLOv1锚框(7*7grids,2 anchors)resize(448*448*3):
检修是224*224,测试是448*448;
GoogLeNet(24*Conv+2*FC+reshape;Dropout正经过拟合;终末一层使用线性激活函数,其余层都使用ReLU激活函数);无IOU_Loss、nms;一个网格只预计了2个框,何况都属于并吞类;全结合层平直预计bbox的坐标值;
YOLOv2锚框(13*13grids,5 anchors:通过k-means采选先验框)resize(416*416*3):416/32=13,终末得到的是奇数值有执行的中心点;在原检修的基础上又加上了(10个epoch)的448x448高分辨率样本进行微调;Darknet-19(19*Conv+5*MaxPool+AvgPool+Softmax;莫得FC层,每一个卷积后都使用BN和ReLU正经过拟合(断念dropout);提议passthrough层:把高分辨率特征拆分叠加大到低分辨率特征中,进行特征交融,成心于小标的的检测);无IOU_Loss、nms;一个网罗预计5个框,每个框都不错属于不同类;预计相干于anchor box的偏移量;多圭臬检修(检修模子经过一定迭代后,输入图像尺寸变换)、合伙检修机制;YOLOv3锚框(13*13grids,9 anchors:三种圭臬*三种宽高比)resize(608*608*3)Darknet-53(53*Conv,每一个卷积层后都使用BN和Leaky ReLU正经过拟合,残差结合);FPN(多圭臬检测,特征交融)IOU_Loss、nms;多标签预计(softmax分类函数改变为logistic分类器);YOLOv4锚框resize(608*608*3)、Mosaic数据增强、SAT自对抗检修数据增强CSPDarknet53(CSP模块:更丰富的梯度组合,同期减少计较量、跨小批量圭表化(CmBN)和Mish激活、DropBlock正则化(就地删除一大块神经元)、继承纠正SAM注观点机制:在空间位置上添加权重);SPP(通过最大池化将不同尺寸的输入图像变得尺寸一致)、PANnet(修改PAN,add替换成concat)
CIOU_Loss、DIOU_nms;自对抗检修SAT:在原始图像的基础上,添加杂音并成立权重阈值让神经网罗对本人进行对抗性报复检修;类标签平滑:将饱胀化标签进行平滑(如:[0,1]→[0.05,0.95]),即分类收尾具有一定的疲塌化,使得网罗的抗过拟合才略增强;YOLOv5锚框resize(608*608*3)、Mosaic数据增强、自适合锚框计较、自适合图片缩放CSPDarknet53(CSP模块,每一个卷积层后都使用BN和Leaky ReLU正经过拟合,Focus模块);SPP、PANGIOU_Loss、DIOU_Nms;跨网格匹配(现时网格的上、下、左、右的四个网格中找到离标的中心点最近的两个网格,再加上现时网格共三个网格进行匹配);
YOLOX无锚框resize(608*608*3)Darknet-53SPP、FPNCIOU_Loss、DIOU_Nms、Decoupled Head、SimOTA标签分拨计策;
YOLOv6无锚框resize(640*640*3)EfficientRep Backbone(Rep算子)SPP、Rep-PAN NeckSIOU_Loss、DIOU_Nms、Efficient Decoupled Head、SimOTA标签分拨计策;YOLOv7锚框resize(640*640*3)Darknet-53(CSP模块替换了ELAN模块;下采样变成MP2层;每一个卷积层后都使用BN和SiLU正经过拟合);SPP、PANCIOU_Loss、DIOU_Nms、SimOTA标签分拨计策、带辅助头的检修(通过加多检修资本,进步精度,同期不影响推理的时间);YOLOv8无锚框resize(640*640*3)
Darknet-53(C3模块换成了C2F模块)SPP、PANCIOU_Loss、DFL_Loss、DIOU_Nms、TAL标签分拨计策、Decoupled Head; 一、YOLO算法的中枢念念想YOLO系列的中枢念念想即是把标的检测转机为一个追想问题,利用整张图片算作网罗的输入,通过神经网罗,得到界限框的位置尽头所属的类别。
1. YOLO系列算法的要害(1)分袂图像:YOLO将输入图像分袂为一个固定大小的网格。
(2)预计界限框和类别:关于每个网格,YOLO预计出固定数目(时常为5个或3个)
的界限框。每个界限框由5个主要属性形色:界限框的位置(中心坐标和宽高)和界限框包含的标的的置信度(confidence)。此外,每个界限框还预计标的的类别。
(3)单次前向传递:YOLO通过一个卷积神经网罗(CNN)进行单次前向传递,同期预计总共界限框的位置和类别。比较于其他标的检测算法,如基于滑动窗口或区域提议的步伐,YOLO具有更快的速率,因为它只需要一次前向传递即可完成预计。
(4)亏蚀函数:YOLO使用多任务亏蚀函数来检修网罗。该亏蚀函数包括位置亏蚀、置信度损构怨类别亏蚀。位置亏蚀计算预计界限框和委果界限框之间的位置互异。置信度亏蚀计算界限框是否正确地预计了标的,并处分配景框的置信度。类别亏蚀计算标的类别的预计准确性。
(5)非最大禁绝(Non-Maximum Suppression):在预计的界限框中,可能存在多个互相重复的框,代表并吞个标的。为了放手冗余的界限框,YOLO使用非最大禁绝算法,凭据置信度和重复进程筛选出最好的界限框。
2. Backbone、Neck和Head物体检测器的结构动手被形色为三个部分:Backbone, Neck和Head。下图深入了一个高线索的Backbone, Neck 和 Head图。
图片
Backbone厚爱从输入图像中索取有用的特征。它时常是一个卷积神经网罗(CNN),在大界限的图像分类任务中检修,如IamgeNet。骨干网罗在不同圭臬上捕捉线索化的特征,在较早的层中索取低线索的特征(如边际和纹理),在较深的层中索取高线索的特征(如物体部分和语义信息)。
Neck是结合Backbone和Head的一个中间部件。它皆集并细化骨干网索取的特征,时常侧重于加强不同圭臬的空间和语义信息。颈部可能包括额外的卷积层、特征金字塔(FPN)或其他机制,以提高特征的代表性。
Head是物体检测器的终末构成部分。它厚爱凭据Backbone和Neck提供的特征进行预计。它时常由一个或多个特定任务的子网罗构成,实施分类、定位,以及最近的实例分割和姿势揣度。头部处理颈部提供的特征,为每个候选物产生预计。终末,一个后处理要害,如非极大值禁绝(NMS),过滤掉重复的预计,只保留置信度最高的检测。
二、YOLO系列的算法 1. YOLOv1(2016)(论文地址:https://arxiv.org/pdf/1506.02640.pdf)
1.1 模子先容在YOLOv1提议之前,R-CNN系列算法在标的检测领域中独占鳌头。R-CNN系列检测精度高,但是由于其网罗结构是双阶段(two-stage)的特色,使得它的检测速率不成餍足及时性,饱受诟病。为了唐突这一僵局,波及一种速率更快的标的检测器是势在必行。
2016年,Joseph Redmon、Santosh Divvala、Ross Girshick等东谈主提议了一种单阶段(one-stage)的标的检测网罗。它的检测速率相当快,每秒不错处理45帧图片,唐突松驰地及时运行。由于其速率之快和其使用的特殊步伐,作家将其取名为:You Only Look Once(也即是咱们常说的YOLO的全称),并将该效果发表在了CVPR2016上,从而引起了日常地和蔼。
YOLO的中枢念念想即是把标的检测转机成一个追想问题,利用整张图算作网罗的输入,只是经过一个神经网罗,得到bounding box(界限框)的位置尽头所属的类别。
1.2 网罗结构图片
面前看来,YOLOv1的网罗结构十分知晓,是一种传统的one-stage的卷积神经网罗:
网罗输入:448*448*3的彩色图片中间层:由几许卷积层和最大池化层构成,用于索取图片的抽象特征全结合层:由两个全结合层构成,用来预计标的的位置和类别的概率值网罗输出:7*7*30的预计收尾 1.3 已毕细节(1)检测计策
YOLOv1继承的是“分而治之”的计策,将一张图片平平分红7x7个网格,每个网格分别厚爱预计中心点落在该网格内的标的。在Faster R-CNN中,是通过一个RPN来取得标的的感深嗜区域,这种步伐精度高,但是需要额外再检修一个RPN网罗,这无疑加多了检修的职责。在YOLOv1中,通过分袂得到了7x7个网格,这49个网格就极度于是标的的感深嗜区域。通过这种相貌,咱们就不需要再额外想象一个RPN网罗,这恰是YOLOv1算作单阶段网罗的毛糙快捷之处。
图片
具体已毕流程如下:
①. 将一副图像分红
图片
个网格(grid cell),要是某个object的中心落在这个网格中,则这个网罗就厚爱预计这个object。②. 每个网格都要预计B个bounding box,每个bounding box要预计
图片
和confidence共5个值。③. 每个网格还要预计一个类别信息,记为C个类。
④. 总的来说,
图片
个网格,每个网格要预计B个bounding box,还要预计C个类。网罗输出即是一个图片
的张量。图片
在执行流程中,YOLOv1把一张图片分袂为了7x7个网格,何况每个网格预计2个Box(Box1和Box2),20个类别。是以执行上,S=7,B=2,C=20。那么网罗输出的shape也即是:
图片
。(2)标的亏蚀函数
图片
亏蚀由三部分构成,分别是:坐标预计亏蚀、置信度预计亏蚀、类别预计亏蚀。
使用的是差方和过失。需要扫视的是,w和h在进行过失计较的时候取得是它们的平方根,原因是对不同大小的bounding box预计中,比较于大bounding box预计偏极少,小box预计偏极少更不成隐忍。而差方和过失函数中对相似的偏移loss是一样。为了闲散这个问题,作家用了一个比较取巧的办法,即是将bounding box的w和h取平方根代替正本的w和h。定位过失比分类过失更大,是以加多对定位过失的处分,使图片
。在每个图像中,许多网格单位不包含任何标的值。检修时就会把这些网格里的框的“置信度”分数推到零,这常常高出了包含标的的框的梯度。从而可能导致模子不相识,检修早期发散。因此要减少了不包含标的的框的置信度预计的亏蚀,使图片
。 1.4 性能认识(1)优点
YOLO检测速率相当快。圭表版块的YOLO不错每秒处理45张图像;YOLO的极速版块每秒不错处理150帧图像。这就意味着YOLO不错小于25毫秒蔓延,及时地处理视频。关于欠及时系统,在准确率保证的情况下,YOLO速率快于其他步伐。YOLO及时检测的平均精度是其他及时监测系统的两倍。搬动才略强,能欺诈到其他新的领域(比如艺术品标的检测)。(2)局限性
YOLO对互相采集的物体,以及很小的群体检测效果不好,这是因为一个网格只预计了2个框,何况都只属于并吞类。由于亏蚀函数的问题,定位过失是影响检测效果的主要原因,尤其是大小物体的处理上,还有待加强。(因为关于小的bounding boxes,small error影响更大)。YOLO对不常见的角度的标的泛化性性能偏弱。 2. YOLOv2(2016)(论文地址:https://arxiv.org/pdf/1612.08242.pdf#page=4.24)
2.1 纠正部分YOLOv2Joseph Redmon和Ali Farhadi发表在CVPR 2017。它包括了对原始YOLO的一些纠正,保抓疏浚的速率,也更刚劲,唐突检测9000个类别,这些纠正有以下几点:
(1)在总共卷积层上的批量归一化改善了管制性,并算作一个正则器来减少过拟合;
(2)高分辨率分类器,和YOLOv1一样,他们在ImageNet以224x224的分辨率对模子进行了预检修。可是,这一次,他们在分辨率为448x448的ImageNet上对模子进行了10次微调,提高了网罗在高分辨率输入下的性能;
(3)完全卷积。它们去掉了密集层,继承了全卷积架构。
(4)使用Anchor来预计界限盒。他们使用一组先验框Anchor,这些Anchor具有预界说的口头,用于匹配物体的原型口头艳照门事件完整视频,如图6所示,每个网格单位都界说了多个Anchor,系统预计每个Anchor的坐标和类别。网罗输出的大小与每个网格单位的Anchor数目成正比。
(5)维度聚类。挑选好的Anchor有助于网罗学习预计更准确的界限盒。作家对检修中的界限盒进行了k-means聚类,以找到更好的先验。他们采选了五个Anchor,在调回率和模子复杂性之间进行了精采的衡量。
(6)平直预计位置。与其他预计偏移量的步伐不同,YOLOv2死守相似的理念,预计了相干于网格单位的位置坐标,网罗为每个单位预计了五个bounding box,每个bounding box有五个值
图片
,其中图片
极度于YOLOv1的Pc,最终得到的bounding box坐标如图7所示。(7)细粒度的特征。与YOLOv1比较,YOLOv2去掉了一个池化层,关于416x416的输入图像,得到13x13的特征图。
(8)多圭臬检修。由于YOLOv2不使用全结合层,输入不错是不同的尺寸。为了使YOLOv2对不同的输入尺寸具有鲁棒性,作家就地检修模子,每10改削变尺寸(从320x320到608x608)。
图片
图片
2.2 网罗结构YOLOv2 继承 Darknet-19 算作特征索取网罗,其举座结构如下:
图片
纠正后的YOLOv2:Darknet-19,总结如下:
①. 与VGG相似,使用了许多3x3卷积核;何况每一次池化后,下一层经过卷积之后的通谈数=池化输出的通谈 x 2。
②. 在每一层卷积后,都加多了BN层进行预处理。
③. 继承了降维的念念想,把1x1的卷积置于3x3之间,用来压缩特征。
④. 在网罗终末的输出上加多了一个global average pooling层。
⑤. 举座上继承了19个卷积层,5个池化层。
为了更好的说明,将Darknet-19与YOLOv1、VGG16网罗进行对比:
VGG-16:大多数检测网罗框架都是以VGG-16算作基础特征索取器,它功能刚劲,准确率高,但是计较复杂度较大,是以速率会相对较慢。因此YOLOv2的网罗结构将从这方面纠正。YOLOv1:基于GoogLeNet的自界说网罗,比VGG-16的速率快,但是精度稍不如VGG-16。Darknet-19:速率方面,处理一张图片仅需要55.8亿次运算,比较于VGG306.9亿次,速率快了近6倍。精度方面,在ImageNet上的测试精度为:top1准确率为72.9%,top5的准确率为91.2%。 2.3 性能认识在VOC2007数据集上进行测试,YOLOv2在速率为67fps时,精度不错达到76.8的mAP;在速率为40fps时,精度不错达到78.6的mAP 。不错很好的在速率和精度之间进行衡量。下图是YOLOv1在加入多样纠正步伐后,检测性能的改变。可见在经过多种纠正步伐后,YOLOv2在原基础上检测精度具有很大的进步。
图片
相干于YOLOv1而言,不及之处在于,莫得进行多圭臬特征的结合预计,传递模块(Pass-Through Module)的使用在进步细粒度特征的同期也对特征的空间,踱步产生了一定影响,以及对小标的的检测才略莫得昭彰进步。
3. YOLOv3 (2018)(论文地址:https://arxiv.org/pdf/1804.02767.pdf)
3.1 模子先容2018年,作家Redmon又在YOLOv2的基础上作念了一些纠正。特征索取部分继承Darknet-53网罗结构代替原来的Darknet-19,利用特征金字塔网罗结构已毕了多圭臬检测,分类步伐使用逻辑追想代替了softmax,在兼顾实用性的同期保证了标的检测的准确性。
从YOLOv1到YOLOv3,每一代性能的进步都与backbone(骨干网罗)的纠正密切关系。在YOLOv3中,作家不仅提供了darknet-53,还提供了轻量级的tiny-darknet。要是你想检测精度与速率兼备,不错采选darknet-53算作backbone;要是你想达到更快的检测速率,精度方面不错调解。那么tiny-darknet是你很好的采选。总之,YOLOv3的纯真性使得它在执行工程中得到许多东谈主的可爱。
3.2 网罗结构比较于 YOLOv2 的 骨干网罗,YOLOv3 进行了较大的纠正。借助残差网罗的念念想,YOLOv3 将原来的 darknet-19 纠正为darknet-53。论文中给出的举座结构如下:
图片
Darknet-53主要由1x1和3x3的卷积层构成,每个卷积层之后包含一个批量归一化层和一个Leaky ReLU,加入这两部分的方针是为了正经过拟合。卷积层、BN层以及LeakyReLU共同构成Darknet-53的基本CBL。因为在Darknet-53中共包含53个这么的CBL,是以称其为Darkent-53。
为了愈加知晓地了解Darknet-53的网罗结构,不错看底下这张图:
图片
(图片开端:jiangdabai)
为了更好的聚合此图,底下对主要单位进行说明:
CBL:一个卷积层、一个BN层和一个Leaky ReLU构成的基本卷积单位。res unit:输入通过两个CBL后,再与原输入进行add;这是一种成例的残差单位。残差单位的方针是为了让网罗不错索取到更深层的特征,同期幸免出现梯度消散或爆炸。ResX:X个残差组件。concat:将Darknet-53的中间层和背面的某一层的上采样进行张量拼接,达到多圭臬特征交融的方针。这与残差层的add操作是不一样的,拼接会推行张量的维度,而add平直相加不会导致张量维度的改变。最背面的蓝色立方体示意三种圭臬的输出。与Darknet-19比较,Darknet-53主要作念了如下纠正:
莫得继承最大池化层,转而继承步长为2的卷积层进行下采样。为了正经过拟合,在每个卷积层之后加入了一个BN层和一个Leaky ReLU。引入了残差网罗的念念想,方针是为了让网罗不错索取到更深层的特征,同期幸免出现梯度消散或爆炸。将网罗的中间层和背面某一层的上采样进行张量拼接,达到多圭臬特征交融的方针。 3.3 纠正部分(1)输入端
Mosaic数据扩增:将四张不同的检修图像就地拼接在一齐,形成一张马赛克图像。这种相貌不错匡助模子学习并适合不同的场景、标的口头和圭臬变化。自适合锚框计较:引入了自适合锚框计较的机制,旨在更好地适合多样标的的尺寸和长宽比例变化。 运转锚框界说:起初,凭据检修集的标注框,采选运转的锚框。不错使用一些聚类算法(如k-means)对标注框进行聚类,以详情一组代表性的锚框。锚框调理:关于每个检修样本,凭据该样本中的标的框与运转框的匹配进程,调理运转框的大小和长宽比例。这不错通过计较标的框与锚框的IoU(交并比)来详情匹配进程,并凭据匹配进程调理锚框的尺寸。锚框聚类:凭据经过调理的锚框,再次进行聚类,得到一组更适合现时数据集的锚框。这些聚类流程时常是迭代进行的,直到达到一定的管制条目。锚框采选:凭据聚类得到的锚框聚会,不错采选一定数目的锚框用于标的检测。时常,不错凭据聚类收尾中的锚框长宽比例的踱步情况,采选一些具有代表性的锚框。 自适合缩放:凭据标的尺寸来自动调理输入图像的大小。这么不错更好地适合不同圭臬的标的,提高标的检测的准确性。(2)骨干网罗
YOLOv3的骨干网罗Darknet-53包含卷积层(Convolutional Layer)、残差层(Residual Layer)、特征交融层(Feature Fusion Layer),网罗层数的加深提高了检测精度,大批残差网罗模块的引入减少了由网罗层数加深引起的梯度着落问题,金字塔池化模块的引入不错已毕多尺寸的输入和斡旋尺寸的输出。
(3)颈部网罗
YOLOv3的颈部网罗是FPN(多圭臬检测,特征交融),FPN(Feature Pyramid Network)是一种用于标的检测和语义分割任务的特征金字塔网罗结构。它的想象方针是惩处单圭臬特征索取网罗在处理不同圭臬标的时的繁难。
FPN的主要念念想如下:
特征索取:起初,通过卷积神经网罗(如ResNet)进行特征索取。这些特征具有不同的圭臬和语义信息。顶层池化:为了获取更高分辨率的特征,FPN使用自顶向下的顶层池化操作,将较低分辨率的特征图上采样到较高分辨率。这不错通过上采样或插值等步伐已毕。横向结合:为了交融不同线索的特征信息,FPN引入横向结合,将上一层的特征与下一层的上采样特征进行逐元素相加(Element-wise Sum)。这么不错将初级别的细节信息与高等别的语义信息相结合,产生具有多圭臬特征的金字塔结构。特征交融:为了进一步进步特征抒发才略,FPN在每个金字塔层级上引入一个额外的卷积层,进行特征交融和调理。(4)输出端
YOLOv3在输出的纠恰是多标签预计(softmax函数变为logistics分类器)。在YOLOv1中,时常使用softmax函数算作分类器的激活函数,将每个类别的输出转动为概率踱步。
可是,关于YOLOv3这么的多标签检测任务,一个标的可能属于多个类别,使用softmax函数会导致多个类别的概率之和高出1,不相宜多标签问题的要求。因此,在YOLOv3中,继承了logistic分类器算作分类器的激活函数。
logistic分类器将每个类别的输出视为颓落的二分类问题,对每个类别使用sigmoid函数进行激活。sigmoid函数将输出限制在0到1之间,示意每个类别的存在概率。
3.4 性能认识如下图所示,是多样先进的标的检测算法在COCO数据集上测试收尾。很昭彰,在餍足检测精度差不都的情况下,YOLOv3具有更快的推理速率。
图片
如下表所示,对不同的单阶段和两阶段网罗进行了测试。通过对比发现,YOLOv3达到了与现时先进检测器的相似的水平。检测精度最高的是单阶段网罗RetinaNet,但是YOLOv3的推理速率比RetinaNet快得多。
图片
4. YOLOv4(2020)(论文地址:https://arxiv.org/pdf/2004.10934.pdf)
4.1 模子先容从YOLOv3后,YOLO莫得新版块。直到2020年4月,Alexey Bochkovskiy、Chien-Yao Wang和Hong-Yuan Mark Liao在ArXiv发布了YOLOv4[50]的论文。启航点,不同的作家提议一个新的YOLO "官方 "版块让东谈主嗅觉很奇怪;可是,YOLOv4保抓了疏浚的YOLO理念——及时、开源、端到端和DarkNet框架——而且纠正相适时东谈主恬逸,社区飞速秉承了这个版块算作官方的YOLOv4。
YOLOv4的专有之处在于:
是一个高效而刚劲的标的检测网罗。它使咱们每个东谈主都不错使用GTX 1080Ti 或2080Ti的GPU来检修一个超快速和精准的标的检测器。
在论文中,考证了大批先进的手段对标的检测性能的影响。
对现时先进的标的检测步伐进行了纠正,使之更灵验,何况更适应在单GPU上检修;这些纠正包括CBN、PAN、SAM等。
4.2 网罗结构图片
(图片开端:jiangdabai)
先详确先容一下YOLOv4的基本组件:
CBM:Yolov4网罗结构中的最小组件,由Conv+Bn+Mish激活函数三者构成。CBL:由Conv+Bn+Leaky_relu激活函数三者构成。Res unit:模仿Resnet网罗中的残差结构,让网罗不错构建的更深。CSPX:模仿CSPNet网罗结构,由卷积层和X个Res unint模块Concate构成。SPP:继承1×1,5×5,9×9,13×13的最大池化的相貌,进行多圭臬交融。YOLOv4 = CSPDarknet53(骨干) + SPP附加模块(颈) + PANet旅途团聚(颈) + YOLOv3(头部)
图片
4.3 纠正部分(1)输入端
无昭彰变化。
(2)骨干网罗
极品成人故事 CSPDarknet-53骨干网罗:YOLOv4继承了称为CSPDarknet-53的新的骨干网罗结构,它基于Darknet-53,并通过使用CSP(Cross Stage Partial)模块来提高特征示意的才略。SAM(Spatial Attention Module):通过引入SAM模块,YOLOv4唐突自适合地调理特征图的通谈注观点权重。以增强对标的的感知才略。Mish激活函数:YOLOv4继承了CSPDarknet-53算作其骨干网罗,该网罗中的每个残差块(residual block)都应用了Mish激活函数。这使得网罗唐突从输入到输出的特征变换流程中引入非线性变换,并匡助网罗更好地捕捉输入数据的复杂秉性。(3)颈部网罗
PANet特征交融:YOLOv4引入了PANet(Path Aggregation Network)模块,用于在不同圭臬的特征图之间进行信息传递和交融,以获取更好的多圭臬特征示意。SPP:具体是在CSPDarknet-53网罗的背面,通过在不同大小的池化层上进行特征索取,从而捕捉到不同圭臬上的荆棘文信息。(4)输出端
在YOLOv4中,如实引入了一种新的距离度量规画,称为CIOU。
CIOU是一种纠正的标的检测亏蚀函数,用于计算预计框和委果框之间的距离。CIOU是DIoU的进一步扩展,除了商酌框的位置和口头之间的距离外,还引入了一个附加的参数用于计算框的长宽比例的一致性。
CIOU的计较公式如下:
图片
,其中,IoU示意传统的交并比(Intersection over Union),d示意预计框和委果框中心点之间的欧氏距离,c示意预计框和委果框的对角线距离。在CIOU中,α是一个参数,用于均衡框长宽比例的一致性和框位置之间的距离。v是一个辅助项,用于处分预计框和委果框之间的长宽比例互异。CIOU亏蚀是通过最小化CIOU来优化标的检测模子。它不错算作定位亏蚀函数的一部分,用于计算预计框的定位准确性。通过CIOU亏蚀的引入,YOLOv4不错更好地优化界限框的位置、口头和长宽比例,从而提高标的检测的准确性和鲁棒性。
4.4 性能认识如下图所示,在COCO标的检测数据集上,对现时多样先进的标的检测器进行了测试。不错发现,YOLOv4的检测速率比EfficientDet快两倍,性能极度。同期,将YOLOv3的AP和FPS分别提高10%和12%,吊打YOLOv3!
图片
轮廓以上分析,总结出YOLOv4带给咱们的优点有:
与其他先进的检测器比较,关于相似的精度,YOLOv4更快(FPS);关于相似的速率,YOLOv4更准(AP)。YOLOv4能在普通的GPU上检修和使用,比如GTX 1080Ti和GTX 2080Ti等。论文中总结了多样Tricks(包括多样BoF和BoS),给咱们启示,采选合适的Tricks来提高我方的检测器性能。 5. YOLOv5(2020)(代码地址:https://github.com/ultralytics/yolov5)
5.1 模子先容YOLOv5有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四个版块。文献中,这几个模子的结构基本一样,不同的是depth_multiple模子深度和width_multiple模子宽度这两个参数。就和咱们买穿着的尺码大小排序一样,YOLOv5s网罗是YOLOv5系列中深度最小、特征图的宽度最小的网罗。其他三种都是在此基础上不断加深,不断加宽。
图片
5.2 网罗结构图片
(图片开端:jiangdabai)
输入端:Mosaic数据增强、自适合锚框计较、自适合图片缩放Backbone:Focus结构,CSP结构Neck:FPN+PAN结构Head:CIOU_Loss基本组件:
Focus:基本上即是YOLOv2的passthrough。CBL:由Conv+Bn+Leaky ReLU三者3构成。CSP1_X:模仿CSPNet网罗结构,由三个卷积层和X个Res unit模块Concat构成。CSP2_X:不再用Res unit模块,而是改为CBL。SPP:继承1x1,5x5,9x9,13x13的最大池化相貌,进行多圭臬交融。 5.3 纠正部分(1)输入端
无昭彰变化。
(2)骨干网罗
Focus结构:Focus结构是YOLOv5中的一个遑急组件,用于索取高分辨率特征。它继承的是一种轻量级的卷积操作,匡助模子在保抓较高感受野的同期减少计较职责。Focus结构通过将输入特征图进行通谈分袂和空间分袂,将原始特征图调度为更小尺寸的特征图,并保留了原始特征图中的遑急信息。这么作念有助于提高模子的感知才略和对小尺寸标的的检测准确性。CSPDarknet-53结构:CSP(Cross Stage Partial)Darknet-53是YOLOv5中的骨干网罗结构。相干于YOLOv4中的Darknet-53,CSPDarknet-53引入了跨阶层部分结合的想法,通过将特征图在通谈维度上分为两个部分,将其中一部分平直连入下一阶段,以加多信息流动的旅途,提高特征的传递遵守。CSPDarknet-53结构在减少参数和计较量的同期,保抓了较高的特征示意才略,有助于提高标的检测的准确性和速率。(3)颈部网罗
无昭彰变化。
(4)输出端
无昭彰变化。
5.4 性能认识在COCO数据集上,当输入原图的尺寸是:640x640时,YOLOv5的5个不同版块的模子的检测数据如下:
图片
在COCO数据集上,当输入原图的尺寸是:1280x1280时,YOLOv5的5个不同版块的模子的检测数据如下:
图片
从上表可得知,从YOLOv5n到YOLOv5x,这五个YOLOv5模子的检测精度逐渐上涨,检测速率逐渐着落。凭据名堂要求,用户不错采选合适的模子,来已毕精度与速率的最好衡量!
6. YOLOX(2021)(论文地址:https://arxiv.org/pdf/2107.08430.pdf)
(代码地址:https://github.com/Megvii-BaseDetection/YOLOX?tab=readme-ov-file)
6.1 模子先容YOLOX在YOLO系列的基础上作念了一系列的做事,其主要孝顺在于:在YOLOv3的基础上,引入了Decoupled Head,Data Aug,Anchor Free和SimOTA样本匹配的步伐,构建了一种anchor-free的端到端标的检测框架,何况达到了一流的检测水平。
此外,本文提议的 YOLOX-L 模子在视频感知挑战赛(CVPR 2021年自动驾驶研讨会)上取得了第又名。作家还提供了扶植ONNX、TensorRT、NCNN和Openvino的部署版块
图片
为什么提议YOLOX:
标的检测分为Anchor Based和Anchor Free两种相貌。
在Yolov3、Yolov4、Yolov5中,时常都是继承 Anchor Based的相貌,来索取标的框。
Yolox 将 Anchor free 的相貌引入到Yolo系列中,使用anchor free步伐有如下平允:
裁减了计较量,不波及IoU计较,另外产生的预计框数目较少。假定feature map的圭臬为80x80,anchor based步伐在Feature Map上,每个单位格一般成立三个不同尺寸大小的锚框,因此产生3x80x80=19200个预计框。而使用anchor free的步伐,仅产生80x80=6400个预计框,裁减了计较量。
缓解了正负样本起义衡问题anchor free步伐的预计框只须anchor based步伐的1/3,而预计框中大部分是负样本,因此anchor free步伐不错减少负样本数,进一步缓解了正负样本起义衡问题。
幸免了anchor的调参anchor based步伐的anchor box的圭臬是一个超参数,不同的超参数成立会影响模子性能。anchor free步伐幸免了这极少。
6.2 网罗结构图片
(图片开端:jiangdabai)
输入端:示意输入的图片,继承的数据增强相貌:RandomHorizontalFlip、ColorJitter、多圭臬增强。Backbone:用来索取图片特征,继承Darknet53。Neck:用于特征交融,继承PAFPN。Prediction:用来收尾预计。Decoupled Head、End-to-End YOLO、Anchor-free、Multi positives。 6.3 纠正部分 无锚(Anchor-free):自YOLOv2以来,总共后续的的YOLO版块都是基于锚点的检测器。YOLOX受到CornerNet、CenterNet和FCOS等最先进的无锚物体检测器的启发,回到了一个无锚结构,简化了检修进息争码流程。与YOLOv3基线比较,无锚的AP加多了0.9;多重正样本(Multi positives):为了弥补因短少锚点而产生的浩大起义衡,作家使用了中心采样。他们将中心3x3的区域算作正例区域。这种步伐使得AP加多了2.1。解耦头(Decoupled head):分类置信度和定位精度之间可能存在错位。由于这个原因,YOLOX将这两者分离成两个头(如图2所示),一个用于分类任务,另一个用于追想任务,将AP提高了1.1分,并加速了模子管制。高等标签分拨:有商讨标明,当多个对象的bounding box重复时,ground truth标签分拨可能存在疲塌性,并将分拨圭表表述为最好传输(OT)问题。YOLOX在这项做事的启发下,提议了一个简化的版块,称为simOTA。这一变化使AP加多了2.3分。强化增强:YOLOX使用MixUP和Mosaic增强。作家发现,在使用这些增强后,ImageNet预检修不再有平允。强势增强使AP加多了2.4分。图片
6.4 性能认识YOLOX的性能越过了YOLOV5,YOLOX-X的AP值达到了51.2,高出YOLOV5-X 0.8个百分点,此外模子推理速率和参数目都具有比较大的上风。
图片
7. YOLOv6(2022)(论文地址:https://arxiv.org/pdf/2209.02976.pdf)
(代码地址:https://github.com/meituan/YOLOv6/)
7.1 模子先容YOLOv6于2022年9月由好意思团视觉东谈主工智能部发布在ArXiv。与YOLOv4和YOLOv5雷同,它为工业应用提供了多样不同尺寸的模子。跟从基于锚点的步伐的趋势,YOLOv6继承了无锚点的检测器。
YOLOv5/YOLOX 使用的 Backbone 和 Neck 都基于 CSPNet 搭建,继承了多分支的相貌和残差结构。关于 GPU 等硬件来说,这种结构会一定进程上加多延时,同期减小内存带宽利用率。因此,YOLOv6对Backbone 和 Neck 都进行了从头想象,Head层沿用了YOLOX中的Decoupled Head并稍作修改。极度于YOLOv5而言,v6对网罗模子结构进行了大批的改变。
7.2 网罗结构图片
(图片开端:cainiaoxiaoqiao)
由上图所示,从举座上看,YOLOv6的网罗结构与YOLOv4、YOLOv5是很相似的,尤其是backbone和neck部分,但是其中的已毕模块是有变化的;但最大的不同在于Head部分,继承的是YOLOX的hHead相貌,将分类和追想分为两个岔路,进行了解耦操作。
7.3 纠正部分(1)输入端
无锚框,取消了YOLOv1到YOLOv5一直沿用的锚框。
(2)骨干网罗
YOLOv6的Backbone的已毕的基本模块为RVB1_X结构,其全程为RepVGGBlock_X,示意由多个RepVGGBlock构成。
RepVGGBlock是RepVGG网罗的重复模块,由多个RepVGGConv模块构成。每个RepVGGBlock由两个RepVGGConv模块构成,第一个RepVGGConv是一个3x3卷积操作,而第二个RepVGGConv是一个1x1卷积操作。
这两个卷积模块之间使用了批归一BatchNorm)和ReLU激活函数。RepVGGConv模块是RepVGG网罗中的基本卷积模块,由一个卷积层、批归一化和ReLU激活函数构成。这么的想象使得RepVGGBlock具有较强的抒发才略,何况不错适合不同的特征索取需求。
RepVGGBlock在RepVGG网罗中被重复堆叠屡次,形成了深层的网罗结构。通过堆叠多个RepVGGBlock,不错提高网罗的示意才略和复杂度,从良友毕更准确的特征索取和标的识别。
(3)颈部网罗
PANet结构雷同更换为RepVGGBlock结构。
(4)输出端
YOLOv6对检测头进行了解耦,分开了边框与类别的分类流程。
7.4 性能认识YOLOv6 的检测精度和速率均优于以前最先进的模子,同期想象了 8 种缩放模子为不同场景中的工业应用定制不同界限的网罗模子,不错检测不同圭臬的图像从而提高检测效果,其部署毛糙、计较量较低,适用于及时检测。何况扶植在不同平台上头的部署,简化工程部署的适配做事。但检测准确率其同期期的其他先进算法比较较低。
下表为与 COCO 2017 val 上其他 YOLO 系列的比较。FPS 和蔓延是在使用 TensorRT 的 Tesla T4 上以 FP16 精准度测量的。咱们的总共模子都在莫得预检修或任何外部数据的情况下检修了 300 个epoch。在输入分辨率为 640×640 的情况下,咱们对模子的准确性和速率性能进行了评估。'‡'示意所提议的自蒸馏步伐是歪斜化的。∗"示意通过官方代码发布的模子的从头评估收尾。
图片
8. YOLOv7(2022)(论文地址:https://arxiv.org/pdf/2207.02696.pdf)
(代码地址:https://github.com/WongKinYiu/yolov7)
8.1 模子先容YOLOv7由YOLOv4和YOLOR的并吞作家于2022年7月发表在ArXiv。其时,在5 FPS到160 FPS的范围内,它的速率和准确度高出了总共已知的物体检测器。与YOLOv4一样,它只使用MS COCO数据集进行检修,莫得预检修的骨干。YOLOv7提议了一些架构上的变化和一系列的免费包,在不影响推理速率的情况下提高了准确率,只影响了检修时间。
图片
8.2 网罗结构图片
起初对输入的图片 resize 为 640x640 大小,输入到 backbone 网罗中,然后经 head 层网罗输出三层不同 size 大小的 **feature map**,经过 Rep 和 conv输出预计收尾,这里以 coco 为例子,输出为 80 个类别,然后每个输出(x ,y, w, h, o) 即坐标位置和前后配景,3 是指的 anchor 数目,因此每一层的输出为 (80+5)x3 = 255再乘上 feature map 的大小即是最终的输出了。
8.3 纠正部分(1)输入端
与YOLOv5雷同。
(2)骨干网罗
Backbone为骨干网罗由CBS、ELAN、MP-1构成。
CBS结构:特征索取和通谈调度。ELAN:通过不同的分支将特征图拼接起来,进而促进更深层网罗的灵验学习和管制。MP-1:将经过不同下采样相貌所得到的特征图进行交融,在不加多计较量的同期保留更多的特征信息。(3)颈部网罗
该网罗主要包括SPPCSPC、ELANW、UPSample三个子模块和Cat结构,其中,SPPCSPC模块用于提高特征索取的遵守和准确率;ELANW模块比较于ELAN模块加多了两个拼接操作;UPSample模块用于已毕不同线索特征的高效交融;Cat结构旨在进一步优化卷积层的效果。
(4)输出端
与YOLOv6雷同。检测头厚爱网罗最终的预计输出,针对Neck处理后的特征信息进行解耦,继承重参数化模块对Neck输出的三种不同尺寸的特征进行通谈数调理,再经过1x1的卷积操作,得出标的物体的位置、置信度和类别的预计。
8.4 性能认识YOLOv7 算法提议了基于级联的模子缩放计策从而生成不同尺寸的模子,减少参数目和计较量,不错进行及时标的检测,在大数据集进行检修检测有较高精度且举座检测性能有所进步。但是其网罗架构也相对复杂进行检修测试需要大批计较资源,且对小标的和密集场景的检测效果较差。
图片
9. YOLOv8(2023)(代码地址:https://github.com/ultralytics/ultralytics)
9.1 模子先容YOLOv8 与YOLOv5出自并吞个团队,是一款前沿、最先进(SOTA)的模子,基于先前 YOLOv5版块的收效,引入了新功能和纠正,进一步进步性能和纯真性。
YOLOv8是一种顶端的、最先进的 (SOTA) 模子,它竖立在以前收效的 YOLO 版块的基础上,并引入了新的功能和纠正,以进一步提高性能和纯真性。YOLOv8 旨在快速、准确且易于使用,这也使其成为对象检测、图像分割和图像分类任务的绝佳采选。具体翻新包括一个新的骨干网罗、一个新的 Ancher-Free 检测头和一个新的亏蚀函数,还扶植YOLO以往版块,浅近不同版块切换和性能对比。
YOLOv8 有 5 个不同模子大小的预检修模子:n、s、m、l 和 x。和蔼底下的参数个数和COCO mAP(准确率),不错看到准确率比YOLOv5有了很大的进步。极度是 l 和 x,它们是大模子尺寸,在减少参数数目的同期提高了精度。
图片
9.2 网罗结构图片
举座结构上与YOLOv5雷同: CSPDarknet(骨干) + PAN-FPN(颈) + Decoupled-Head(输出面部),但是在各模块的细节上有一些纠正,何况举座上是基于anchor-free的念念想,这与yolov5也有着执行上的不同。
9.3 纠正部分(1)输入端
与YOLOv7雷同。
(2)骨干网罗
Backbone部分继承的结构为Darknet53,其中包括基本卷积单位Conv、已毕局部特征和全局特征的Feature Map级别的交融的空间金字塔池化模块SPPF、加多网罗的深度和感受野,提高特征索取才略的C2F模块。
(3)颈部网罗
与YOLOv5雷同。
(4)输出端
在亏蚀函数计较方面,继承了Task AlignedAssigner正样天职拨计策。由分类亏蚀VFL(Varifocal Loss)和追想亏蚀CIOU(Complete-IOU)+DFL(Deep Feature Loss)两部分的三个亏蚀函数加权组合而成。
9.4 性能认识YOLOv8 的检测、分割和姿态模子在 COCO 数据集上进行预检修,而分类模子在 ImageNet 数据集上进行预检修。在初次使用时,模子会自动从最新的 Ultralytics 发布版块中下载。
YOLOv8共提供了5中不同大小的模子采选,浅近设备者在性能和精度之前进行均衡。以下以YOLOv8的标的检测模子为例:
图片
YOLOv8的分割模子也提供了5中不同大小的模子采选:
图片
从下图咱们不错看到,YOLOv8 在标的检测和实例分割任务上的性能都很好:
图片
(图片开端:YOLOv8来了!)
10. YOLOv9(2024)(论文地址:https://arxiv.org/pdf/2402.13616.pdf)
(代码地址:https://github.com/WongKinYiu/yolov9)
10.1 模子先容YOLOv9是原YOLOv7团队打造,提议了可编程梯度信息(PGI)的看法来应酬深度网罗已毕多个标的所需的多样变化。 PGI不错为标的任务计较标的函数提供好意思满的输入信息,从而取得可靠的梯度信息来更新网罗权值。此外,还想象了一种新的轻量级网罗架构——基于梯度旅途筹算的通用高效层团聚网罗(GELAN)。 GELAN的架构阐明了PGI在轻量级模子上取得了优异的收尾。
图片
10.2 网罗结构图片
下图展示了不同网罗架构的就地运转权重输出特征图的可视化收尾:(a) 输入图像,(b) PlainNet,(c) ResNet,(d) CSPNet,和 (e) 提议的GELAN。从这些可视化收尾中,咱们不错看出在不同的架构中,提供给标的函数用以计较亏蚀的信息在不同进程上有所丢失,而提议的GELAN架构唐突保留最好意思满的信息,并为计较标的函数提供最可靠的梯度信息。
具体来说,输入图像(a)是原始未处理的图像。接下来的四个图像(b-e)分别展示了当这个输入图像通过不同的网罗架构时,在网罗的某一层上的特征图。这些特征图通过网罗层的权重就地运转动得到,旨在展示网罗在处理数据时的特征索取才略。图中的心绪变化代表特征的激活进程,激活进程越高,说明网罗关于图像的某一部分特征越明锐。
图片
PlainNet (b) 深入了一个基本网罗结构的特征图,不错看到有大批的信息丢失,这意味着在执行应用中可能不会捕捉到总共有用的特征。ResNet (c) 算作一个经典的深度学习架构,展示了更好的信息保留才略,但仍有一些信息亏蚀。CSPNet (d) 通过其特殊的结构想象,进一步减少了信息的丢失。GELAN (e) 展示了该商讨提议的架构,从图中不错看出,与其他架构比较,它保留了最好意思满的信息,这标明GELAN架构能更好地保留输入数据的信息,为后续的标的函数计较提供更准确的梯度信息。 10.3 主要孝顺 咱们从可逆函数的角度表面分析了现存的深度神经网罗架构,并通过这一流程收效证明了已往难以证明的许多阵势。咱们还基于这一分析想象了PGI和辅助可逆分支,并取得了优异的收尾。咱们想象的PGI惩处了深度监督只可用于极深神经网罗架构的问题,因此允许新的轻量级架构信得过应用于日常生计中。咱们想象的GELAN仅使用传统卷积就已毕了比基于最先进工夫的深度卷积想象更高的参数利用率,同期展现了轻巧、快速和准确的浩大上风。结合所提议的PGI和GELAN,YOLOv9在MS COCO数据集上的对象检测性能在总共方面都大大高出了现存的及时对象检测器。核默算法:(具体参考:http://t.csdnimg.cn/1LWuY艳照门事件完整视频)
(1)可编程梯度信息(PGI)
为了惩处上述问题,论文提议了一种新的辅助监督框架,称为可编程梯度信息(PGI),如图3(d)所示。 PGI主要包括三个构成部分:主分支、辅助可逆分支、多级辅助信息。
图片
从图3(d)中咱们不错看出,PGI的推理流程仅使用主分支,因此不需要任何额外的推理资本。至于其他两个组件,它们仅用于检修阶段而不在推理阶段,用于惩处或减缓深度学习步伐中的几个遑急问题:
辅助可逆分支:是为了处理神经网罗加深带来的问题而想象的。网罗加深会形成信息瓶颈,导致亏蚀函数无法生成可靠的梯度。关于多级辅助信息:旨在处理深度监督带来的过失积贮问题,极度是针对多个预计分支的架构和轻量级模子。(2)GELAN
通过结合继承梯度旅途筹算想象的两种神经网罗架构CSPNet 和ELAN ,论文想象了兼顾轻量级、推理速率和准确性的广义高效层团聚网罗(GELAN)。其举座架构如图 4 所示。论文将起初仅使用卷积层堆叠的 ELAN 的功能彭胀到不错使用任何计较块的新架构。
图片
10.4 性能认识咱们基于YOLOv7和Dynamic YOLOv7分别构建了YOLOv9的通用和扩展版块。在网罗架构想象中,咱们用GELAN替换了ELAN,GELAN使用CSPNet块算作计较块,并规画继承RepConv。咱们还简化了下采样模块,并优化了无锚点的预计头。至于PGI的辅助亏蚀部分,咱们完全死守了YOLOv7的辅助头成立。
如表1所示,与轻量级和中型模子YOLO MS比较,YOLOv9的参数减少了约10%,计较量减少了5∼15%,但AP仍然有0.4∼0.6%的进步。与 YOLOv7 AF 比较,YOLOv9-C 的参数减少了 42%,计较量减少了 22%,但达到了疏浚的 AP(53%)。与YOLOv8-X比较,YOLOv9-E参数减少16%,计较量减少27%,AP昭着进步1.7%。上述对比收尾标明,论文提议的YOLOv9与现存步伐比较在各方面都有显赫纠正。
图片
参考:
https://arxiv.org/pdf/2304.00501.pdf
http://t.csdnimg.cn/pQb6X
http://t.csdnimg.cn/GfUXC
http://t.csdnimg.cn/f9x3z
http://t.csdnimg.cn/gSuBb
http://t.csdnimg.cn/eIzHw
http://t.csdnimg.cn/0e7zR
https://www.cnblogs.com/cvlinke/p/16496988.html
http://t.csdnimg.cn/CvyTo
http://t.csdnimg.cn/aKEOi
http://t.csdnimg.cn/1LWuY
本站仅提供存储服务,总共内容均由用户发布,如发现存害或侵权内容,请点击举报。