目标检测之YOLO系列

YOLO系列详解:从YOLO1到YOLO5,目标检测的进化之路 目标检测是计算机视觉领域中一个重要而具有挑战性的任务,它涉及在图像或视频中识别和定位特定对象的算法。而YOLO(You Only Look Once)系列作为目标检测领域的代表之一,通过其高效、实时的特性,一直备受关注。在本文中,我们将深入探讨YOLO系列的发展历程,从YOLO1一直到最新的YOLO5,揭示了目标检测技术的不断创新和进化之路。 阅读详情

1、yolo系列发展背景

在 CV (计算机视觉)领域,目标检测任务是实际应用项目的第一步,主要包括:人脸识别、多目标检测、REID、客流统计等内容。yolov5是目标检测一个非常成熟、经典的模型,它自从提出以来,在工业、军事、科研方面有着广泛的应用。

        yolov1,v2,v3的作者是美国的Joseph Redmon,被人称为yolo之父,但是由于其反对将yolo用于军事和隐私窥探,2020年2月宣布停止更新yolo。

后来,俄罗斯的Alexey大神更新了yolov4,不久之后,yolov5也应运而生,2021年旷视科技又发布了yolox算法。

2、yolov3

目前,yolov3的论文是《Yolov3:An incremental improvement》,yolov4的论文是《yolov4:optimal speed and accuracy of object detection》,而yolov5并没有出什么官方的论文。

 上图三个蓝色方框内表示Yolov3的三个基本组件:

CBL:Yolov3网络结构中的最小组件,由Conv+Bn+Leaky_relu激活函数三者组成。
Res unit:借鉴Resnet网络中的残差结构,让网络可以构建的更深。
ResX:由一个CBL和X个残差组件构成,是Yolov3中的大组件。每个Res模块前面的CBL都起到下采样的作用,因此经过5次Res模块后,得到的特征图是608->304->152->76->38->19大小。
其他基础操作:

Concat:张量拼接,会扩充两个张量的维度,例如26*26*256和26*26*512两个张量拼接,结果是26*26*768。Concat和cfg文件中的route功能一样。
add:张量相加,张量直接相加,不会扩充维度,例如104*104*128和104*104*128相加,结果还是104*104*128。add和cfg文件中的shortcut功能一样。
Backbone中卷积层的数量:

每个ResX中包含1+2*X个卷积层,因此整个主干网络Backbone中一共包含1+(1+2*1)+(1+2*2)+(1+2*8)+(1+2*8)+(1+2*4)=52,再加上一个FC全连接层,即可以组成一个Darknet53分类网络。不过在目标检测Yolov3中,去掉FC层,不过为了方便称呼,仍然把Yolov3的主干网络叫做Darknet53结构。


Yolov3是2018年发明提出的,这成为了目标检测one-stage中非常经典的算法,包含Darknet-53网络结构、anchor锚框、FPN等非常优秀的结构

3、yolov4

Yolov4的结构图和Yolov3相比,因为多了CSP结构,PAN结构,如果单纯看可视化流程图,会觉得很绕,不过在绘制出上面的图形后,会觉得豁然开朗,其实整体架构和Yolov3是相同的,不过使用各种新的算法思想对各个子结构都进行了改进。

先整理下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的最大池化的方式,进行多尺度融合。
其他基础操作:

Concat:张量拼接,维度会扩充,和Yolov3中的解释一样,对应于cfg文件中的route操作。
add:张量相加,不会扩充维度,对应于cfg文件中的shortcut操作。
Backbone中卷积层的数量:

和Yolov3一样,再来数一下Backbone里面的卷积层数量。

每个CSPX中包含5+2*X个卷积层,因此整个主干网络Backbone中一共包含1+(5+2*1)+(5+2*2)+(5+2*8)+(5+2*8)+(5+2*4)=72。

Yolov4本质上和Yolov3相差不大,但算法创新大致分为三种方式:

第一种:面目一新的创新,比如Yolov1、Faster-RCNN、Centernet等,开创出新的算法领域,不过这种也是最难的
第二种:守正出奇的创新,比如将图像金字塔改进为特征金字塔
第三种:各种先进算法集成的创新,比如不同领域发表的最新论文的tricks,集成到自己的算法中,却发现有出乎意料的改进
Yolov4既有第二种也有第三种创新,组合尝试了大量深度学习领域最新论文的20多项研究成果,而且不得不佩服的是作者Alexey在github代码库维护的频繁程度。

目前Yolov4代码的star数量已经1万多,据我所了解,目前超过这个数量的,目标检测领域只有Facebook的Detectron(v1-v2)、和Yolo(v1-v3)官方代码库(已停止更新)。

输入端:这里指的创新主要是训练时对输入端的改进,主要包括Mosaic数据增强、cmBN、SAT自对抗训练
BackBone主干网络:将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock
Neck:目标检测网络在BackBone和最后的输出层之间往往会插入一些层,比如Yolov4中的SPP模块、FPN+PAN结构
Prediction:输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms

4、yolov5简介

Yolov5官方代码中,给出的目标检测网络中一共有4个版本,分别是Yolov5s、Yolov5m、Yolov5l、Yolov5x四个模型。下面先看一下yolov5的主体框架。

这四种结构分别对应着网络的深度不同。它们是通过depth_multiple和width_multiple两个参数,来进行控制网络的深度和宽度。其中depth_multiple控制网络的深度(BottleneckCSP数),width_multiple控制网络的宽度(卷积核数量)

接下来是四大网络结构的算法性能测试图:

Yolov5作者是在COCO数据集上进行的测试,COCO数据集的小目标占比,因此最终的四种网络结构,性能上来说各有千秋。Yolov5s网络最小,速度最少,AP精度也最低。但如果检测的以大目标为主,追求速度,倒也是个不错的选择。其他的三种网络,在此基础上,不断加深加宽网络,AP精度也不断提升,但速度的消耗也在不断增加。

 yolov5的四大结构分别为:

输入端:Mosaic数据增强、自适应锚框计算、自适应图片缩放
Backbone:Focus结构,CSP结构
Neck:FPN+PAN结构
Prediction:GIOU_Loss

5、yolov5技术详解

输入端

(1)数据增强

YOLOV5的数据增强处理方法有很多,主要的处理方式:随机缩放、随机裁剪、随机排布的方式进行拼接,对于小目标的检测效果还是很不错的

(2)自适应锚框计算

在Yolo算法中,针对不同的数据集,都会有初始设定长宽的锚框。在网络训练中,网络在初始锚框的基础上输出预测框,进而和真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络参数。因此初始锚框也是比较重要的一部分,比如Yolov5在Coco数据集上初始设定的锚框:

(3)自适应图片缩放

在常用的目标检测算法中,不同的图片长宽都不相同,因此常用的方式是将原始图片统一缩放到一个标准尺寸,再送入检测网络中。但Yolov5代码中对此进行了改进,也是Yolov5推理速度能够很快的一个不错的trick。作者认为,在项目实际使用时,很多图片的长宽比不同,因此缩放填充后,两端的黑边大小都不同,而如果填充的比较多,则存在信息冗余,影响推理速度。因此在Yolov5的代码中datasets.py的letterbox函数中进行了修改,对原始图像自适应的添加最少的黑边。

BACKBONE

(1)focus

对于focus作用,作者在issues上做了具体的解答,都是从计算量和参数量出发,虽然不知道作者改进的思想,我理解为对一层普通下采样卷积的改进,然后并行的计算,所以经过改进后参数量其实还是变少了的,也确实达到了提速的效果。

(2)CSP

在yolov5的6.0版本作者将CSP换为C3(名字不重要,看结构),C3网络结构如下:

 CSP和C3的区别就在于把红框部分去掉,CSP变C3。

 NECK

neck是放在backbone和head之间的,是为了更好的利用backbone提取的特征。采用的是FPN+PAN(自底向上的特征金字塔)的结构。这样结合操作,FPN层自顶向下传达强语义特征,而特征金字塔则自底向上传达强定位特征,两两联手,从不同的主干层对不同的检测层进行参数聚合。FPN+PAN借鉴的是18年CVPR的PANet,PAN当时主要应用于图像分割领域,但Alexey将其拆分应用到Yolov5中,进一步提高特征提取的能力.

 输出端

(1)yolov5的损失函数

 (2)Bounding box的损失函数

Yolov5中采用其中的CIOU_Loss做Bounding box的损失函数CIOU_LossBounding Box Regression的Loss的发展过程:SmoothL1−>IoULoss−>GIoULoss−>DIoULoss−>CIoULoss

各个Loss的不同点:

IOU Loss:主要考虑检测框和目标框重叠面积;

GIOU Loss:在IOU的基础上,解决边界框不重合时的问题;

DIOU Loss:在IOU和GIOU的基础上,考虑边界框中心点距离的信息;

CIOU Loss:在DIOU的基础上,考虑边界框宽高比的尺度信息。

6、总结

yolo算法一经出世,就在计算机视觉领域受到了广泛的欢迎,其中最经典的就是yolov5,它的四种网络结构能够代表各个层面的资源要求和精度需要。而且它在处理时,可以选择照片和视频的数据形式,自带wandb可视化界面。

【目标检测经典模型比较】--YOLOv1、v2、v3、v4、v5、x、v7、v8 YOLOv1、v2、v3、v4、v5、x、v7、v8。YOLO全系列图文讲解,并包含优缺点与创新点比较,最后还有yolov8模型改进方法. 阅读详情

相关推荐

YOLO的作者们

YOLO的作者们

qq_45232776的博客 2977

童心未泯的 YOLO 之父,小马哥 Joseph Redmon 笑傲 CV 江湖记

↑ 点击蓝字关注极市平台作者丨二玖编辑丨极市平台在这个六一儿童节,我们将为大家介绍一位这样的计算机视觉大牛:留着大胡子却怀揣着少女心,技术超神却依然童心未泯——他就是YOLO之父,一位或...

fengdu78的博客 3683

目标检测算法汇总:RCNN系列、YOLO系列、SSD系列

常见的目标检测算法1、传统的目标检测方法2、候选区域/窗+分类3、回归 目前,常见的目标检测(object detection)算法分为3类: 1、传统的目标检测方法:特征提取+分类器 2、候选区域/窗+分类:R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、R-FCN 3、回归:YOLO系列、SSD系列 1、传统的目标检测方法 2、候选区域/窗+分类 2.1 3、回归 参考: 1、一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD .

soohoo 8892

【Make YOLO Great Again】最终版本YOLOv1-v7全系列大解析(全网最详细汇总篇)

全网最详细YOLOv1-v7全系列大解析汇总篇

Rocky Ding相信人工智能、数据科学、商业逻辑、金融工具、终身成长以及顺应时代的潮流会赋予我们超能力。 3964

目标检测的相关模型图:YOLO系列和RCNN系列

目标检测的相关模型图:YOLO系列和RCNN系列 最近好像大家也都在写毕业论文,前段时间跟朋友聊天,突然想起自己之前写画了一些关于YOLO、Faster RCNN的图,下面share一下。有需要的同学可以评论区留邮箱,有看到就集中发。PPT里面的图可以换成自己的数据集类型的图,包括元素的设计。

xiaobaizaza_Ry的博客 1438

理解yolo系列目标检测算法

在计算机视觉任务中,如果说做的最成熟的是图像识别领域,那么紧随其后的应该就是目标检测了。笔者接触目标检测也有一段时间了,用mobilenet_ssd算法做过手机端的实时目标检测,也用faster-rcnn做过服务器端的二维码检测,尽管一直都知道yolo的效果也很不错,但没抽出时间细细研究,最近刚好闲出空来,就把yolo系列算法论文细读了一遍,在思考的过程中,也使我对之前的知识点有了新的体会,这里一...

为之则易,不为则难 9314

【目标检测】YOLO系列大合集

本文对 YOLO 系列目标检测模型的不同版本做了简要介绍,涵盖了从最早的 YOLOv1 到最新的 YOLOv11。特别适合刚接触 YOLO 模型但又想快速了解它发展历程的读者。文章简单明了地解释了每个版本的主要特点和改进,帮助你快速掌握 YOLO 系列的演变。

小白一枚~ 5823

YoloR: YOLO系列新框架 速度远远高于Yolov4 代码已开源

前言 人们通过视觉、听觉、触觉以及过去的经验“理解”世界。人类经验可以通过正常学习(我们称之为显性知识)或潜意识(我们称之为隐性知识)来学习。这些通过正常学习或潜意识习得的经验将被编码并储存在大脑中。使用这些丰富的经验作为一个庞大的数据库,人类可以有效地处理数据,即使它们是事先不可见的。 在今天分享中,研究者提出了一个统一的网络,将隐性知识和显性知识编码在一起,就像人脑可以从正常学习和潜意识学习中学习知识一样。统一网络可以生成统一的表示以同时服务于各种任务。可以在卷积神经网络中执行内核空间对齐、..

jacke121的专栏 1817

[目标检测] YOLO系列算法讲解

模型优点:YOLO检测速度非常快,标准版本的YOLO可以每秒处理45张图像,YOLO的极速版本可以每秒处理150帧图像,这就意味着该模型可以实时处理视频,在当时,准确率比它高的,速度没他快,速度比他快的,精度没他高。迁移能力强,能运用到其他新的领域。局限:1、YOLO对相互靠近的物体,以及很小的群体检测效果不好,因为只预测了98个框。假如一张图片有200个目标的话,根本检测不完。2、由于损失函数的问题,定位误差是影响检测效果的主要原因,尤其是大小物体的处理上。有待提高。

m0_74055982的博客 2694

用HFSS仿真平面线圈的电感量

平面线圈是指在平面上绕制而成的线圈,如PCB上的电感线圈、无线供电使用的金属丝绕制而成的线圈等。根据线圈的不同形状可将平面线圈分为方形线圈,六角形线圈、八角形线圈、螺旋原型线圈等。

johnboat的专栏 1万+

lumerical-环形谐振器

利用mode求解器优化得到所需的环的总长度,即环形器的半径,然后通过varFDTD得到光场分布和透过率.

m0_61776728的博客 2189

目标检测——YOLO系列(一网打尽)

YOLO系列算法1. 基本概念2. 目标检测算法分类及流程2.1 算法分类2.2 基本流程2.3 Two-stage与One-stage基本流程比较3. YOLO系列目标检测模型3.1 YOLO v13.1.1 基本思想3.1.2 网络结构3.1.3 训练过程3.1.4 优缺点参考文献 1. 基本概念 目标检测(Object Detection)是在图像中对一类或多类感兴趣的目标进行查找和分类,确定它们的类别和位置。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机

DIPDWC的博客 7601

研究生课程笔记:软件包在流行病学中的应用(三)——STATA软件

关键词:STATA软件基本操作、STATA对于流行病学研究的实现、STATA对复杂抽样设计样本量计算的实现 一、STATA软件基本操作 这部分网上教程有很多,也可以直接根据stata自带的help功能进行自学,在此只记录课程中提及的功能项。 1. 变量编辑 1.1 赋值:label type(按精度区分) 1) 整型:int(32), short(16), long(32) 2) 实型:flo...

weixin_45463530的博客 2432

YOLO系列目标检测数据集大全

YOLO系列目标检测数据集大全目标检测数据集无人机检测数据集飞鸟检测数据集人脸和口罩检测数据集安全帽检测数据集火焰检测数据集火焰和烟雾检测数据集行人检测数据集行人车辆检测数据集车辆检测数据集待更新…… 目标检测数据集 无人机检测数据集 数据集下载: 飞鸟检测数据集 人脸和口罩检测数据集 安全帽检测数据集 火焰检测数据集 火焰和烟雾检测数据集 行人检测数据集 行人车辆检测数据集 车辆检测数据集 待更新…… .....................

小秋的博客 17万+

电力电子新手必看:COT控制模式的工作原理与典型应用场景解析

本文深入解析了COT控制模式的工作原理及其在电力电子领域的典型应用。COT控制(恒定导通时间控制)通过固定导通时间机制,解决了传统滞环控制的问题,特别适用于需要快速瞬态响应和高效率的应用场景,如CPU/GPU供电和便携设备电源管理。文章详细介绍了COT控制的核心流程、技术特点及设计实践中的关键考量,帮助电力电子新手快速掌握这一技术。

weixin_30745553的博客 522

竞赛经验——挑战杯、互联网加、北斗杯、微软创新杯、计算机设计等比赛教训与经验

最近参加一些比赛,北斗杯、挑战者杯、微软创新杯等比赛,每次比赛都有不少需要总结的地方,特别是项目展示上技巧很多,总结一下。 首先最重要的是作品自身硬!自身的作品完成度不高,或者是没有创新点,就没必要参加了。 比如是出去比赛的话,我反正每次碰到最多的是智慧农场、智慧家居之类,不知道为啥这种的太多了。如果是创业型比赛,评委基本会问小米已经做得很好了很便宜了,你的优势在哪里?这些都是常见的问题提前要...

沉迷单车的追风少年 7328

YOLO系列发展历程:从YOLOv1到YOLO11,目标检测技术的革新与突破

*YOLO(You Only Look Once)**系列模型无疑是目标检测领域的一座里程碑,自2016年首次提出以来,便在目标检测领域掀起了一场革命。从YOLOv1的开创性提出,到YOLO11的不断迭代升级,该系列模型持续突破自我,引领着目标检测技术的发展潮流。总结而言,YOLO系列模型在目标检测领域不断刷新纪录,从精度到效率均取得了显著成就。尽管每一代模型都有其局限性,但它们的创新推动了整个领域的发展。

Coovally_AI的博客 1万+

腾讯音乐 QQ音乐商业化客户端开发工程师:岗位深度解析与面试攻略

腾讯音乐QQ音乐商业化客户端开发工程师岗位要求3年以上Android开发经验,熟练掌握Kotlin/Java及跨端开发技术。核心职责包括QQ音乐客户端功能开发、架构优化、性能提升及技术攻关。岗位要求计算机相关本科以上学历,具备完整项目开发经验,熟悉TCP/IP等网络协议,能独立解决复杂技术问题。面试重点考察项目经验、架构设计、性能优化及新技术研究能力,建议候选人准备具体案例,量化成果,并熟悉Flutter等跨端技术。该职位强调技术深度与产品思维的结合,需展现扎实的编程基础、问题解决能力和团队协作精神。

郑伟强dev的专栏 366

目标检测 YOLO系列算法

YOLO系列算法是一类典型的one-stage目标检测算法,其利用anchor box将分类与目标定位的回归问题结合起来,从而做到了高效、灵活和泛化性能好,所以在工业界也十分受欢迎,接下来我们介绍YOLO 系列算法。Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测,核心思想就是利用整张图作为网络的输入,直接在输出层回归 bounding box(边界框) 的位置及其所属的类别,整个系统如下图所示:首先将输入图片resize到448x448,然后送入CNN网络,最后处理网络预测结果得到检

mengxianglong123的博客 1万+

【AI Agent系列】【阿里AgentScope框架】0. 快速上手:AgentScope框架简介与你的第一个AgentScope程序

这是我们学习的第四款智能体框架了。前面我们学习了 AutoGPT、MetaGPT、LangGraph 等智能体应用开发框架,各有优缺点。今天我们开始学习AgentScope这一款多智能体开发框架。卷起来吧,多看看,多用用,没坏处。

同学小张的博客 5425

电化学-NanoStat-开源系统的使用说明

本文主要介绍了NanoStat开源系统的使用方法,从硬件打板、设备组装、软件安装3个层次进行了详细说明。整个流程根据作者提供的视频能够很好的完成,不需要太多的技术,对刚入门的新手是一个不错的练手项目。其次软件还有很大的优化空间,能够进一步提高系统的精度,对之后类似恒电位仪系统的开发也有很大的借鉴意义。

分享技术笔记,希望对大家能够有一定的帮助,同时也通过归纳总结提升自己的个人能力。 2002

目标检测模型 YOLO系列

YOLO系列 文章目录YOLO系列YOLOv1一、背景二、YOLO模型主要思想模型结构损失函数三、优缺点四、参考YOLOv2与YOLO9000YOLO9000: Better, Faster, Stronger一、简述YOLOv1 -> YOLOv2 -> YOLO9000二、从YOLOv1到YOLOv2:Better and Faster1)Batch Normolization:使收敛速度加快,可以省去其他正规化方法,如dropout。使mAP上升2.4.2)High Resolution

weixin_43931548的博客 2581

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【YOLO系列算法俯视视角下舰船目标检测】

为了提高模型的泛化能力,我们还可以采用数据增强技术,如旋转、缩放、翻转等,来扩充训练数据集。如果模型的性能不满足要求,我们可以尝试调整模型的参数或者使用更复杂的模型结构来进行优化。例如,在卫星遥感图像分析系统中,我们可以使用训练好的YOLOv6模型来实时检测舰船目标,并将检测结果用于后续的任务,如舰船跟踪、类型识别等。总的来说,如果需要较快的检测速度,尤其是在资源受限的环境下,可以考虑使用YOLOv5或YOLOv8的某些版本。对于更高的检测精度,尤其是对小目标的检测,YOLOv8可能是更好的选择。

小秋的博客 2122

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

YOLO系列目标检测模型内容汇总

YOLO系列的资源整理

TULIP的博客 802

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

目标检测 YOLO 系列模型

YOLO (You Only Look Once) 系列模型追求实时目标检测,因此会在一定程度上牺牲精度,以实现更高的检测速度。如果你对这篇文章可感兴趣,可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」,查看完整博客分类与对应链接。

lucius-liu.cn 3588

目标检测——RCNN与YOLO系列

目标检测——RCNN与YOLO系列

a264672的博客 1万+
上一篇: 神经网络压缩方法总结
下一篇: 时间序列模型分析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值