YOLOv10模型改进-Backbone改进-第58篇:YOLOv10改进策略【Backbone】| MobileNetV3 Backbone替换

📅 2026/7/2 11:47:23
YOLOv10模型改进-Backbone改进-第58篇:YOLOv10改进策略【Backbone】| MobileNetV3 Backbone替换
一、本文介绍本文记录的是利用MobileNetV3作为Backbone改进YOLOv10的特征提取部分。MobileNetV3通过深度可分离卷积和倒残差结构实现轻量级高效特征提取。二、MobileNetV3模块介绍2.1 设计出发点深度可分离卷积将标准卷积分解为深度卷积和逐点卷积大幅减少计算量。2.2 模块结构MobileNetV3块逐点卷积升维深度卷积空间特征提取SE注意力通道注意力逐点卷积降维三、MobileNetV3的实现代码importtorchimporttorch.nnasnnclassInvertedResidual(nn.Module):def__init__(self,c1,c2,k3,s1,expand_ratio6,actTrue):super().__init__()c_c1*expand_ratio self.conv1nn.Conv2d(c1,c_,1,1,biasFalse)self.bn1nn.BatchNorm2d(c_)self.conv2nn.Conv2d(c_,c_,k,s,k//2,groupsc_,biasFalse)self.bn2nn.BatchNorm2d(c_)self.senn.Sequential(nn.AdaptiveAvgPool2d(1),nn.Conv2d(c_,c1//4,1,biasFalse),nn.SiLU(),nn.Conv2d(c1//4,c_,1,biasFalse),nn.Sigmoid())self.conv3nn.Conv2d(c_,c2,1,1,biasFalse)self.bn3nn.BatchNorm2d(c2)self.actnn.SiLU()ifactisTrueelse(actifisinstance(act,nn.Module)elsenn.Identity())self.shortcuts1andc1c2defforward(self,x):outself.act(self.bn1(self.conv1(x)))outself.act(self.bn2(self.conv2(out)))outout*self.se(out)outself.bn3(self.conv3(out))returnoutxifself.shortcutelseoutclassMobileNetV3(nn.Module):def__init__(self,c13,c21024):super().__init__()self.stemnn.Sequential(nn.Conv2d(c1,16,3,2,1,biasFalse),nn.BatchNorm2d(16),nn.SiLU())cfg[{k:3,c:16,s:1,e:1},{k:3,c:24,s:2,e:4},{k:3,c:24,s:1,e:3},{k:5,c:40,s:2,e:3},{k:5,c:40,s:1,e:3},{k:5,c:40,s:1,e:3},{k:3,c:80,s:2,e:6},{k:3,c:80,s:1,e:2.5},{k:3,c:80,s:1,e:2.3},{k:3,c:80,s:1,e:2.3},{k:3,c:112,s:1,e:6},{k:3,c:112,s:1,e:6},{k:5,c:160,s:2,e:6},{k:5,c:160,s:1,e:6},{k:5,c:160,s:1,e:6},]self.blocksnn.ModuleList()c16forlayerincfg:self.blocks.append(InvertedResidual(c,layer[c],layer[k],layer[s],layer[e]))clayer[c]self.final_convnn.Conv2d(c,c2,1,biasFalse)defforward(self,x):xself.stem(x)forblockinself.blocks:xblock(x)xself.final_conv(x)returnx四、创新模块将MobileNetV3作为Backbone集成到YOLOv10中# yolov10n_mobilenetv3.yamlbackbone:-[-1,1,MobileNetV3,[3,1024]]-[-1,1,SPPF,[1024,5]]五、预期结果模型mAP0.5mAP0.5:0.95参数量YOLOv10n52.3%27.9%2.7MYOLOv10n-MobileNetV351.5%27.2%1.5M项目环境配置Python3.8.10PyTorch2.0.0CUDA11.8Ultralytics8.3.13