你的位置:Kaiyun·官方网站 - 中国大陆体育品牌领导者 > 新闻动态 > 开云体育(中国)官方网站二、竣事设施以添加SE和CBAM模块为例-Kaiyun·官方网站 - 中国大陆体育品牌领导者

开云体育(中国)官方网站二、竣事设施以添加SE和CBAM模块为例-Kaiyun·官方网站 - 中国大陆体育品牌领导者

发布日期:2026-09-05 08:41    点击次数:186

新闻动态

YOLOv5 添加驻防力机制全经过:旨趣、竣事与代码调试 一、驻防力机制旨趣 驻防力机制的中枢是通过动态调理特征权重,使模子聚焦于重要信息。在YOLOv5中,常见驻防力机制分为三类: 通谈驻防力(Channel Attention) 旨趣:通过建模通谈间相干性,强化弥留通谈特征,扼制冗余通谈。 代表模块:SE(Squeeze-and-Excitation)、ECA(Efficient Channel Attention)。 操作经过: 压缩(Squeeze):全局平均池化生成通谈描绘符(1×1

详情

开云体育(中国)官方网站二、竣事设施以添加SE和CBAM模块为例-Kaiyun·官方网站 - 中国大陆体育品牌领导者

YOLOv5 添加驻防力机制全经过:旨趣、竣事与代码调试

一、驻防力机制旨趣

驻防力机制的中枢是通过动态调理特征权重,使模子聚焦于重要信息。在YOLOv5中,常见驻防力机制分为三类:

通谈驻防力(Channel Attention) 旨趣:通过建模通谈间相干性,强化弥留通谈特征,扼制冗余通谈。 代表模块:SE(Squeeze-and-Excitation)、ECA(Efficient Channel Attention)。 操作经过: 压缩(Squeeze):全局平均池化生成通谈描绘符(1×1×C)。 激发(Excitation):全畅达层学习通谈权重,Sigmoid激活生成0-1权重。 加权:权重与原始特征图逐通谈相乘。 空间驻防力(Spatial Attention)张开剩余85% 旨趣:聚焦于观念空间位置,增强重要区域特征。 代表模块:CBAM(Convolutional Block Attention Module)中的空间分支。 操作经过: 池化:沿通谈维度进行全局最大/平均池化,生成两个空间特征图(H×W×1)。 拼接与卷积:拼接特征图后通过卷积生成空间权重。 加权:权重与特征图逐元素相乘。 羼杂驻防力(Hybrid Attention) 旨趣:纠合通谈与空间驻防力,进步多维度特征抒发才能。 代表模块:CBAM(串联通谈与空间驻防力)。 操作经过: 通谈驻防力:先贬责通谈维度。 空间驻防力:再贬责空间维度,逐级强化特征。

二、竣事设施

以添加SE和CBAM模块为例,详确讲解竣事经过。

1. 模块界说(common.py)

在models/common.py中添加驻防力模块类:

python

import torchimport torch.nn as nn # SE模块class SEBlock(nn.Module): def __init__(self, channel, reduction=16): super().__init__() self.avg_pool = nn.AdaptiveAvgPool2d(1) self.fc = nn.Sequential( nn.Linear(channel, channel // reduction, bias=False), nn.ReLU(inplace=True), nn.Linear(channel // reduction, channel, bias=False), nn.Sigmoid() ) def forward(self, x): b, c, _, _ = x.size() y = self.avg_pool(x).view(b, c) y = self.fc(y).view(b, c, 1, 1) return x * y.expand_as(x) # CBAM模块(简化版)class ChannelAttention(nn.Module): def __init__(self, channel, reduction=16): super().__init__() self.max_pool = nn.AdaptiveMaxPool2d(1) self.avg_pool = nn.AdaptiveAvgPool2d(1) self.fc = nn.Sequential( nn.Conv2d(channel, channel // reduction, 1, bias=False), nn.ReLU(), nn.Conv2d(channel // reduction, channel, 1, bias=False) ) self.sigmoid = nn.Sigmoid() def forward(self, x): max_out = self.fc(self.max_pool(x)) avg_out = self.fc(self.avg_pool(x)) return self.sigmoid(max_out + avg_out) class SpatialAttention(nn.Module): def __init__(self, kernel_size=7): super().__init__() self.conv = nn.Conv2d(2, 1, kernel_size, padding=kernel_size//2, bias=False) self.sigmoid = nn.Sigmoid() def forward(self, x): max_out, _ = torch.max(x, dim=1, keepdim=True) avg_out = torch.mean(x, dim=1, keepdim=True) x = torch.cat([max_out, avg_out], dim=1) return self.sigmoid(self.conv(x)) class CBAM(nn.Module): def __init__(self, channel, reduction=16, kernel_size=7): super().__init__() self.ca = ChannelAttention(channel, reduction) self.sa = SpatialAttention(kernel_size) def forward(self, x): x = x * self.ca(x) return x * self.sa(x)

2. 模子确立(yaml文献)

修改models/yolov5s.yaml,在Backbone或Head中插入驻防力模块。举例,在C3模块后添加SE:

yaml

backbone: # [from, number, module, args] [[-1, 1, Conv, [64, 6, 2, 2]], # 0 [-1, 1, Conv, [128, 3, 2]], # 1 [-1, 3, C3, [128]], # 2 [-1, 1, SEBlock, [128]], # 新增SE模块 [-1, 1, Conv, [256, 3, 2]], # 3 [-1, 6, C3, [256]], # 4 [-1, 1, Conv, [512, 3, 2]], # 5 [-1, 9, C3, [512]], # 6 [-1, 1, Conv, [1024, 3, 2]], # 7 [-1, 3, C3, [1024]], # 8 [-1, 1, SPPF, [1024, 5]]] # 9

3. 模子明白(yolo.py)

在models/yolo.py的parse_model函数中注册驻防力模块:

python

def parse_model(d, ch): # 注册自界说模块 modules = { 'Conv': Conv, 'C3': C3, 'SEBlock': SEBlock, # 新增SE模块 'CBAM': CBAM # 新增CBAM模块 } # ... 原有明白逻辑 ...

4. 考试与调试

层号调理:插入模块后,后续层编号需递加。举例,原Detect层援用[17, 20, 23],插入SE后需改为[18, 21, 24]。 超参数调优:调理驻防力模块的缩放因子(如SE的reduction)或卷积核大小(如CBAM的kernel_size)。 考试考据:使用小批量数据测试模子能否普通加载,不雅察耗损弧线是否持续。

三、代码调试手段

模块注册检查:确保parse_model中注册了统共自界说模块,不然会报错ModuleNotFoundError。 层号考据:插入模块后,打印模子结构(model.model)说明层号与确立一致。 梯度检查:若考试耗损特等,检查驻防力模块的梯度是否为0(可能因Sigmoid有余导致)。 可视化器具:使用TensorBoard或Netron可视化模子结构,说明驻防力模块位置正确。

四、后果对比

驻防力机制插入位置mAP进步参数目变化推理速率变化SEBackbone(C3后)+1.2%+0.3M-5

公司地址:

新闻动态国际企业科技园4399号

关注我们:
官方网站:

www.wmhealth.vip

Powered by Kaiyun·官方网站 - 中国大陆体育品牌领导者 RSS地图 HTML地图


Kaiyun·官方网站 - 中国大陆体育品牌领导者-开云体育(中国)官方网站二、竣事设施以添加SE和CBAM模块为例-Kaiyun·官方网站 - 中国大陆体育品牌领导者