首页IT科技yolov3改进的地方(【YOLOv7】主要改进点详解)

yolov3改进的地方(【YOLOv7】主要改进点详解)

时间2025-06-20 16:37:30分类IT科技浏览5723
导读:YOLOv7介绍 YOLOv7论文在上个月6号挂在了Arxiv上之后,引起了巨大轰动,短短一个月的时间,Github上就有了4.3k个Star。...

YOLOv7介绍

YOLOv7论文在上个月6号挂在了Arxiv上之后             ,引起了巨大轰动                    ,短短一个月的时间       ,Github上就有了4.3k个Star             。

从论文题目可以看出来       ,YOLOv7又是一个集大成者的杰作;从Github源码可以看出                    , 整体结构与YOLOv5极其相似              ,因此有YOLOov5基础的小伙伴可以无脑上手v7                    。

另外来看下v7的两位大牛作者       ,一作是 Chien-Yao Wang                    ,近几年一直耕耘在目标检测领域              ,尤其是YOLO系列,代表作:YOLOv7              、YOLOR                    、ScaledYOLOv4      、CSPNet等       。二作是 Alexey Bochkovskiy                    ,就是在20年Joseph Redmon宣布退出CV领域后扛起YOLO系列大旗并发布YOLOv4的那位大神       。

 

整体网络架构

YOLOv7完整网络架构以及各组件的详细解析可以移步至:【YOLOv7_0.1】网络结构与源码解析                     ,这里从另一个角度来了解YOLOov7的网络架构:

上面这张图是根据我目前的理解,对YOLOv7的整体结构进行的拆分             ,可能会有不正确的地方                     ,欢迎各位小伙伴前来交流~

可以很清楚的看到       ,YOLOv7大部分继承自YOLOv5             ,包括整体网络架构              、配置文件的设置和训练                     、推理      、验证过程等等                    ,基本上熟悉v5就可以无脑上手v7了;此外       ,v7也有不少继承自YOLOR       ,毕竟是同一个作者前后年的工作                    ,包括不同网络的设计       、超参数设置以及隐性知识学习的加入;还有就是在正样本匹配时仿照了YOLOX的SimOTA策略                    。

除了这些在已有YOLO版本中的算法之外              ,YOLOv7还包括了近几年最新的trick:高效聚合网络(目前论文还未接收)                     、重参数化卷积             、辅助头检测       、模型缩放等等       ,因此学习YOLOv7还是非常有价值的              。

 

高效聚合网络

图a和图b是之前常用的特征提取网络                    ,图c则是YOLOv7主要用到的ELAN网络              ,虽然有引文,但是并没有任何详细资料来学习                    ,对此                     ,作者是这么说的:

ELAN paper will be released after accept at the latest.

好叭,那就再等等       。图d是对ELAN的改进             ,其等效网络就是下面这个                     ,也就是两个ELAN(红框里)的Concat       ,作者的解释是:

For E-ELAN architecture, since our edge device do not support group convolution and shuffle operation, we are forced to implement it as an equivalence architecture.

重参数化卷积

重参数化的作用:在保证模型性能的条件下加速网络             ,主要是对卷积+BN层以及不同卷积进行融合                    ,合并为一个卷积模块                    。

下面给出了卷积+BN融合的公式化过程       ,红色表示卷积参数(权重和偏置)       ,蓝色是BN参数(

m

m

m是输入均值                    ,

v

v

v
是输入标准差              ,

γ

\gamma

γ

β

\beta

β
是两个可学习的参数)       ,最终经过一系列化简                    ,融合成了一个卷积:

在YOLOv7中              ,除了网络最后使用RepConv重参数化卷积之外,作者也提到了其他三处使用重参数化技巧的地方:

we perform reparameterization on conv-bn, repconv, orepa, and yolor.

对应model/yolo.py中model类的fuse函数(这里):

辅助头检测

YOLOv7中                    ,将head部分的浅层特征提取出来作为Aux head(辅助头)                     ,深层特征也就是网络的最终输出作为Lead head(引导头),如图b所示              。

在计算损失时:

图c的策略是             ,lead head和aux head分别                     、单独计算损失                     ,最终相加 图d的策略是       ,lead head单独计算损失             ,aux head将lead head匹配得到的正样本作为自己的正样本                    ,并计算损失       ,最终相加(占比不同) 图e的策略是       ,lead head单独计算损失                    ,aux head将lead head匹配得到的正样本(这里是粗匹配              ,也就是选择GT框中心点所在网格的上下左右4个邻域网络作为正样本筛选区域)作为自己的正样本       ,并计算损失                    ,最终相加(占比不同)

以training/yolov7-w6.yaml为例              ,最后detect模块的前四层为lead head,后四层为aux head                    ,在推理时                     ,只取前四层作为detect层的输出:

动态标签分配

YOLOv7的标签分配策略(正样本筛选),集成了YOLOv5和YOLOX两者的精华

YOLOv5

Step1:Autoanchor策略             ,获得数据集最佳匹配的9个anchor(可选)

Step2:根据GT框与anchor的宽高比                     ,过滤掉不合适的anchor

Step3:选择GT框的中心网格以及最邻近的2个邻域网格作为正样本筛选区域(辅助头则选择周围4个邻域网格) YOLOX

Step4:计算GT框与正样本IOU并从大到小排序       ,选取前10个值进行求和(P6前20个)             ,并取整作为当前GT框的K值

Step5:根据损失函数计算每个GT框和候选anchor的损失                    ,保留损失最小的前K个

Step6:去掉同一个anchor被分配到多个GT框的情况

总结

概括:

YOLOv7在5FPS到160FPS的范围内       ,无论是速度或是精度       ,都超过了目前已知的检测器 在V100上进行测试                    , 精度为56.8%AP的模型可达到30FPS(batch=1)以上的检测速率 目前唯一一款在如此高精度下仍能超过30FPS的检测器

不足:

代码冗余              ,版本更新问题 精度虚高(参考:如何评价AlexeyAB版的YOLOv7?) 验证时数据预处理的图像缩放异常(没有做padding操作) 验证时的NMS异常(应该是multi_label = False)

参考资料

目标检测算法——YOLOV7——详解

如何评价AlexeyAB版的YOLOv7?
声明:本站所有文章       ,如无特殊说明或标注                    ,均为本站原创发布。任何个人或组织              ,在未征得本站同意时,禁止复制             、盗用、采集                     、发布本站内容到任何网站                    、书籍等各类媒体平台                    。如若本站内容侵犯了原著者的合法权益                    ,可联系我们进行处理                     。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
搜索能力培养(搜索能力强适合做什么) 如何利用wordpress插件开发优化你的博客资源(如何利用WordPress插件开发优化你的博客)