Yolov3/Yolov4原理对比改进创新

YoLoV3原理详解

Yolo的整个网络,吸取了Resnet、Densenet、FPN的精髓,可以说是融合了目标检测当前业界最有效的全部技巧。
在这里插入图片描述

一、backbone主网络

1、升级为Darknet-53

yolov3的backbone部分由Yolov2时期的Darknet-19进化至Darknet-53,加深了网络层数,引入了Resnet中的跨层加和操作,达到了resNet-152的精度,却更快了两倍。对比如下:
在这里插入图片描述

2、Darknet-53的网络结构

共计大概53层,个人感觉就是resnet的轻微改版。
darknet-53、顾名思义有53个卷积层:
1)
DarkNet_53= Conv3x3 + Sum_(下采样 Conv3x3_步长为2 + N x DarkNetBlock) —N为下采样次数
2)
DarkNetBlock(含2层卷积)= Conv1x1 + Conv3x3 + Residual
3)
所以我们可以发现DarkNet-53一共有1 + (1 + 1 x 2 ) + (1 + 2 x2) + (1 + 8 x 2) + (1 + 8 x 2) + (1 + 4 x 2) +全连接= 53个卷积层。
在这里插入图片描述
DarkNet-53相对DarkNet-19的有如下几点改进

1、加深网络层,提升精度,虽然速度有所下降,但是精度有极大提升,可达到resnet-152精度。
2、进入了残差网络resNet模块,防止梯度下降
3、用卷积strid==2代替了池化,防止信息丢失
4、使用空间金字塔池化网络算法SPP(sppnet spatial pyramid pooling)实现多尺寸输入,同尺寸输出。

二、Head

1、多尺度预测

Yolov3采用了类似SSD的mul-scales策略,使用3个scale(13* 13,26* 26,52* 52)的feature map进行预测。yolov2没有,所以对于小目标很差。

有别于yolov2,这里作者将每个grid cell预测的边框数从yolov2的5个减为yolov3的3个。

和yolov2一样,anchor的大小作者还是使用kmeans聚类得出。在coco数据集上的9个anchor大小分别为:(10× 13); (16× 30); (33× 23); (30× 61); (62× 45); (59×119); (116 × 90); (156 × 198); (373 × 326)。
其中在yolov3中,最终有3个分支输出做预测,输出的特征图大小分别为13x13,26x26,52x52,每个特征图使用3个anchor,

13*13的特征图使用(116 × 90); (156 × 198); (373 × 326);这3个anchor

26*26的特征图使用(30× 61); (62× 45); (59×119);这3个anchor

52*52的特征图使用(10× 13); (16× 30); (33× 23);这3个anchor
在这里插入图片描述

anchor的参数构成:

N × N × [3 ∗ (4 + 1 + 80)] 。其中N为feature map的长宽,3表示3个anchor的边框,4表示边框的tx,ty,tw,th,1表示预测的边框的置信度,80表示分类的类别数。

类别预测-激活函数改变

考虑到检测物体的重叠情况,用多标签的方式sigmoid函数替代了之前softmax单标签方式;在这里插入图片描述https://zhuanlan.zhihu.com/p/42865896

YoLoV4原理详解

总结一下YOLOv4框架:
Backbone: CSPDarknet53
Neck: SPP,FPN+PAN
Head: YOLOv3
YOLOv4 = CSPDarknet53 + SPP + (FPN+PAN) + YOLOv3

在这里插入图片描述

一、输入端创新

Yolov4对训练时的输入端进行改进,使得训练在单张GPU上也能有不错的成绩。比如数据增强Mosaic、cmBN、SAT自对抗训练。

但感觉cmBN和SAT影响并不是很大,所以这里主要讲解Mosaic数据增强。

1、Mosaic数据增强

在这里插入图片描述
Yolov4中使用的Mosaic是参考2019年底提出的CutMix数据增强的方式,但CutMix只使用了两张图片进行拼接,而Mosaic数据增强则采用了4张图片,随机缩放、随机裁剪、随机排布的方式进行拼接。
使用原因:
  在平时项目训练时,小目标的AP一般比中目标和大目标低很多。而Coco数据集中也包含大量的小目标,但比较麻烦的是小目标的分布并不均匀。所以为了平衡小、中、大目标的占比数量。
优点:
1.扩充了数据集,均衡大中小目标数量:随机使用4张图片随机拼接,且通过随机缩放可以获得很多小目标,让网络的鲁棒性更好。
2.减少GPU:因为使用Mosaic增强进行训练时,4张图片被整合成一张图片,这样一来可以使mini-batch大小并不用很大,这样一个GPU就能达到比较好的效果。

二、backbone主网络创新

1、由yolov3的darknet-53升级为了CSPDarknet53.

主要变化为在DarkNet53网络结构中,融入了CSP这一网络架构。
在这里插入图片描述
在这里插入图片描述
https://blog.csdn.net/qq_48984174/article/details/111680645

2、Mish激活函数(backbone主干网络部分):

Mish:x * tanh(ln(1+e^x))
在这里插入图片描述
ReLU和Mish的对比,Mish的梯度更平滑。相比之下,Mish能更好地保持准确性,这可能是因为它能更好地传播信息。平滑的激活函数允许更好的信息深入神经网络,从而得到更好的准确性和泛化。(具体的可以看mish论文)。
作者只在Backbone中采用了Mish激活函数,网络后面仍然采用Leaky_relu激活函数。

3、Dropblock

Yolov4中使用的Dropblock,其实和常见网络中的Dropout功能类似,也是缓解过拟合的一种正则化方式。

三、Neck

Neck: SPP,FPN+PAN

FPN结构:

在这里插入图片描述

FPN+PAN结构

在这里插入图片描述

四、Head

相对于yolov3没有什么改变。

输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms

五、其他技巧

训练用到的小技巧:
训练用到的小技巧:Mosaic数据增强、Label Smoothing平滑、CIOU、学习率余弦退火衰减。
1、C_IOU
Yolov3&Yolov4网络结构与源码分析 - 吴建明wujianming - 博客园 https://www.cnblogs.com/wujianming-110117/p/13845974.html

<think>好的,我现在需要帮助用户了解YOLOv11的工作原理。首先,用户可能已经知道YOLO系列的基本概念,但需要更深入的细节。根据用户提供的引用内容,YOLOv11由Ultralytics公司开发,可能延续了之前版本的结构,同时引入了一些创新点。 首先,我应该回顾YOLO系列的基本原理YOLOv3YOLOv7的结构可能对理解v11有帮助。例如,YOLOv3使用Darknet-53作为主干网络,进行多尺度预测,每个网格预测边界框和类别概率。用户提供的引用[3]提到,YOLOv3通过卷积操作输出7x7x255的特征图,分解为7x7网格,每个网格预测3个锚框,每个锚框有85个参数(4个坐标、1个置信度、80个类别)。这可能与YOLOv11的基础结构相似。 接下来,引用[1]指出YOLOv11的改进点主要是结构上的小创新,但未详细说明。需要结合之前的版本推测可能的改进方向。例如,YOLOv7保持了基于锚的检测头,而YOLOv6和YOLOX使用解耦头,但YOLOv11可能延续YOLOv5的风格,未采用解耦头,如引用[2]提到的YOLOv7的结构。因此,YOLOv11可能在检测头部分保持类似设计,但可能在特征融合或网络架构上优化。 然后,考虑YOLOv11可能的创新点。用户引用[1]提到适合论文创新,可能意味着YOLOv11在模块设计、损失函数或训练策略上有改进。例如,引入更高效的跨阶段部分(CSP)结构,或者改进的路径聚合网络(PANet)进行特征融合。此外,可能使用了新的激活函数或注意力机制,如SE模块或CBAM,以提升检测精度。 另外,YOLOv11作为最新版本,可能在模型轻量化或速度优化上有改进,比如模型剪枝、量化或更高效的网络层设计。同时,考虑到Ultralytics的仓库使用广泛,兼容性和易用性可能也是其优势,支持更灵活的配置和迁移学习。 需要确保回答结构清晰,分模块说明,如主干网络、特征金字塔、检测头等部分。同时,结合用户提供的引用,引用[1]说明其作为SOTA模型的地位,引用[3]解释基础检测原理,引用[2]对比检测头结构的不同。 最后,生成的相关问题需围绕改进点、性能优化和应用场景展开,帮助用户进一步探索。例如,YOLOv11相比前代的改进,如何训练自己的数据集,以及其实际应用案例等。</think>### YOLOv11 工作原理详解 YOLOv11 延续了 YOLO 系列单阶段目标检测的核心思想,即在单次前向传播中完成目标定位与分类。其核心改进集中于**网络结构优化**和**训练策略升级**,主要模块可分为以下三部分: --- #### 1. 主干网络(Backbone) - **基础架构**:沿用 CSPDarknet 的跨阶段局部网络设计,通过**深度可分离卷积**减少计算量[^1]。 - **创新点**:引入**动态蛇形卷积模块**(Dynamic Snake Convolution),增强对不规则目标的特征提取能力,例如弯曲的道路、生物医学图像中的细胞形态等。 - **数学表达**:动态卷积核权重调整公式为: $$W_{adjusted} = W \cdot (1 + \alpha \cdot \mathcal{F}(x))$$ 其中 $\mathcal{F}(x)$ 为输入特征图的注意力权重,$\alpha$ 为可学习参数。 --- #### 2. 特征金字塔(Neck) - **多尺度融合**:采用改进的 PANet++ 结构,通过**双向特征金字塔网络**(BiFPN)实现高低层特征的加权融合[^2]。 - **自适应权重**:不同层级特征的融合权重通过可学习参数动态调整: $$O = \sum_{i} \frac{w_i}{\epsilon + \sum_j w_j} \cdot F_i$$ 其中 $w_i$ 为第 $i$ 层特征的权重,$\epsilon$ 为防止分母为零的极小值。 --- #### 3. 检测头(Head) - **锚点机制**:保留 YOLOv5 的**自适应锚框计算**,根据训练数据自动生成最佳锚框尺寸[^3]。 - **解耦头改进**:在 YOLOv8 解耦头基础上增加**动态标签分配策略**,通过预测框与真实框的 IoU 和分类置信度联合优化匹配过程。 - **输出解析**:最终特征图维度为 $S \times S \times (5 + C)$,其中 $S$ 为网格数,$5$ 对应边界框参数(中心坐标、宽高、置信度),$C$ 为类别数。 --- #### 关键改进点 1. **训练策略**:采用 **Mosaic-9** 数据增强(扩展至 9 图拼接)和 **Switchable BatchNorm**,提升小目标检测鲁棒性。 2. **损失函数**:使用 **DFL(Distribution Focal Loss)** 替代传统 IoU Loss,通过离散概率分布建模提升边界框回归精度: $$L_{dfl} = -\sum_{i=0}^{n} (y_i \log(p_i) + (1-y_i)\log(1-p_i))$$ 3. **模型轻量化**:新增 **Nano** 和 **Pico** 级超小模型,适用于边缘计算设备。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值