YOLOv4

 输入416*416*3的的图片,然后经过普通的darknet卷积,然后resblock(残差网络结构),第一次卷积变成416*416*32,然后高和宽不端的压缩为原来的二分之一,通道数不断的扩张,最终变成1024。最后对13*13*1024进行三次的卷积操作,在进入SPP模块,利用不同大小的池化核对输入进来的特征层进行最大池化,池化后进行堆叠后再进行三次卷积。

进入加强提取特征网络,获得三次卷积后的特征层先进行一个上采样,高和宽变成原来的2倍,特征层的shape变成26*26,再和主干特征提取网络的26*26*512的特征层进行一个堆叠,就实现了一个特征融合,然后继续上采样,继续堆叠。再往下走进行下采样变成26*26的特征层,然后再和前边这个特征层进行一个堆叠,堆叠后进行5次卷积,继续下采样,到了最下边再堆叠再进行5次卷积。

最后YOLO Head会根据提取到的特征进行结果预测。

CSPDarknet53:有一张图片输入进来之后,先经过这个结构,最后获得三个有效特征层,分别是52*52*256、26*26*512,13*13*1024的特征层。

Resblock是一系列残差结构构成的大卷积块。

如下图,分为两部分,右边是残差网络的堆叠,另一部分是大残差边的处理,只经过少量的处理就直接和输出连接了。

yolov4输出将原图片划分成不同大小的网格,比如13*13的有效特征层把原图片划分成不同大小的网格,26*26的有效特征层把原图片划分成不同大小的网格,52*52的有效特征层把原图片划分成不同大小的网格。

如下图,每一个特征点会预先设定三个先验框,yolov4的预测结果只会判定这些框的内部是否包含物体以及物体的种类,并且对先验框进行调整,获得预测框,也就是下面这个黄色的框

### YOLOv8 下采样操作的实现方法与原理 #### 传统的下采样操作 在YOLOv8中,传统的下采样操作通常通过卷积层和池化层来完成。这些操作能够减少特征图的空间维度,从而降低后续处理的数据量并提高计算效率。然而,这种传统的方法可能会造成一些有用的信息丢失,并增加了模型的复杂度[^2]。 #### 使用ContextGuided进行改进 为了改善这一情况,一种新的轻量级下采样方法——ContextGuided被引入到了YOLOv8当中。该方法旨在保留更多细节的同时减轻网络负担。具体来说: - **局部上下文提取**:这种方法专注于捕捉图像中小范围内的结构信息。 - **全局上下文提取**:则着眼于整个输入区域,获取更广泛的关系模式。 - **上下文融合机制**:当两者结合时可以提供更加丰富的表征能力;而完整的`ContextGuided`模块不仅包含了上述两种特性还加入了额外的设计使得其更适合于特定的任务需求[^3]。 ```python from ultralytics.nn.modules.context_guided import ContextGuidedDownsample downsample_layer = ContextGuidedDownsample() output = downsample_layer(input_tensor) ``` #### 利用Haar小波变换(Haar Wavelet Decomposition, HWD)优化 另一种替代方案是采用基于Haar小波变换的技术来进行下采样。相比于常规做法,它能够在保持较高分辨率的情况下有效地压缩数据流,并且具有较低的时间成本。这是因为Haar小波本身具备良好的多尺度分析性质,可以在不同频率上分离信号成分而不失真太多。 ```python import torch.nn as nn from haar_wavelet_transform import HaarDownsamplingLayer class CustomYOLOv8(nn.Module): def __init__(self): super(CustomYOLOv8, self).__init__() # ...其他组件... self.downsample = HaarDownsamplingLayer() def forward(self, x): # 应用Haar小波下采样 x = self.downsample(x) return x ``` #### ADown轻量化设计 最后提到的是名为ADown的一种特别针对YOLO系列架构开发出来的高效能解决方案。此技术通过对原有框架内部结构调整以及参数精简实现了更好的资源利用率,在不影响整体表现的前提下进一步降低了功耗水平[^4]。 ```python from ultralytics.nn.other_modules.a_down import ADown adown_module = ADown(channels=...) output = adown_module(input_tensor) ``` 综上所述,YOLOv8中的下采样可以通过多种方式进行增强,每种都有各自的特点和应用场景。选择合适的策略取决于具体的任务要求和技术条件等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗紫色的乔松(-_^)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值