YOLOv9(2):YOLOv9网络结构

1. 前言

本文仅以官方提供的yolov9.yaml来进行简要讲解。

讲解之前,还是要做一些简单的铺垫。

Slice层不做任何的操作,纯粹是做一个占位层。这样一来,在parse_model时,ch[n]可表示第n层的输出通道。

Detect和DDetect主要区别还是是否使用分组卷积。

RepConv(Re-Paramterization)老生常谈了,重参化,优化推理效率。

2. 重参化(re-parameter)

在讲YOLOv9的网络结构之前,有必要引入一下"重参化(re-parameter)"技术。重参化技术并不是YOLOv9提出的,相反,已经是一个用的相当广泛的技术。细心地朋友可以发现,其实YOLOv5中已经在fuse_conv中体现了。

重参化是一种从网络推理效率和性能方面出发,优化得到的网络结构。其基本思想是在训练时使用多分支(如多个Conv层),增加梯度反馈路径。在推理时进行融合,减小计算量,提高推理效率。

以Conv+BN为例,我们都了解,卷积层(Conv)实际上是一个y = ax+b的过程。

训练阶段,基本的操作包含两个部分。

Conv:

BN:

其中,bn.mean为均值(对应nn.BatchNorm2d中的running_mean),bn.var为方差(对应nn.BatchNorm2d中的running_var),分别对应nn.BatchNorm2d中的weight和bias,对应nn.BatchNorm2d中的eps。

推理阶段,可将Conv和BN进行相应的合并计算,同时需要将参数进行重新的映射。具体如下。

如上,其中组成了新的weight,组成了新的bias。

3. ELAN

ELAN(Efficient layer aggregation network)高效层聚合网络,具体的说是一种网络结构设计策略,最早在论文Designing Network Design Strategies Through Gradient Path Analysis(https://arxiv.org/abs/2211.04800)被提出。

简单讲,在论文中,作者认为神经网络结构设计主要分为两种,分别是依据数据路径设计和依据梯度路径设计。

ELAN则是依据梯度路径设计策略进行相关的设计和优化,更具体的讲,ELAN侧重于最大化梯度源,丰富梯度路径。

当然,大家不要将这一部分过分解读,其实在以往的ResNet,CSPNet中,已经在实践这一策略了。

具体大家可以多参考其他博主的资源,如下链接就已经解释的很详细了:https://zhuanlan.zhihu.com/p/598642990?utm_id=0

4. YOLOv9中的组件

(1) RepConvN

先从forward中观察总体的流程,也即训练过程中的操作。在训练过程中的流程如下。

推理时,执行fuse_convs,此时会将conv1、conv2和进行重参化(re-parameter),转换成一个conv操作。

(2) RepNBottleneck

(3) RepNCSP

(4) RepNCSPELAN4

从名字上可以看出,该模块式一个Rep + CSP + ELAN的组合网络。Rep优化计算,CSP丰富梯度,ELAN做高效的特征聚合。

CSP:丰富组合、减少冗余、降低计算量。

需要说明的一点是,以上几张图仅仅是做一个大体的展示,在实际使用过程中会存在各种通道或分辨率上的计算。

(5) CBLinear

(6) CBFuse

CBFuse的上一级输入是CBLinear。CUFuse的每一次调用都是输入Tensor的一部分,并不是整个Tensor的聚合。

5. YOLOv9的网络架构

经过以上组件的简单介绍,YOLOv9(yolov9.yaml)就已经比较简单明了了。

相关推荐
木头左9 小时前
自适应门控循环单元GRU-O与标准LSTM在量化交易策略中的性能对比实验
深度学习·gru·lstm
哥布林学者10 小时前
吴恩达深度学习课程二: 改善深层神经网络 第三周:超参数调整,批量标准化和编程框架(三)多值预测与多分类
深度学习·ai
月下倩影时10 小时前
视觉学习篇——模型推理部署:从“炼丹”到“上桌”
人工智能·深度学习·学习
高洁0110 小时前
国内外具身智能VLA模型深度解析(2)国外典型具身智能VLA架构
深度学习·算法·aigc·transformer·知识图谱
小殊小殊10 小时前
从零手撸Mamba!
人工智能·深度学习
AndrewHZ11 小时前
【图像处理基石】图像连通域计算:原理、算法实现与应用全解析
图像处理·算法·计算机视觉·cv·算法原理·视觉算法·连通域计算
MediaTea11 小时前
Python 第三方库:cv2(OpenCV 图像处理与计算机视觉库)
开发语言·图像处理·python·opencv·计算机视觉
昨日之日200612 小时前
InfiniteTalk V2版 - 声音驱动图片生成高度逼真的说话/唱歌视频 支持50系显卡 ComfyUI+WebUI 一键整合包下载
人工智能·深度学习·音视频
minhuan13 小时前
构建AI智能体:九十六、基于YOLO的智能生活助手:食材识别、植物健康与宠物行为分析
yolo·计算机视觉·视觉大模型·大模型应用
t1987512813 小时前
基于盲源分离与贝叶斯非局部均值(BM3D)的图像降噪算法实现
算法·计算机视觉·均值算法