当前位置: 首页 > news >正文

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

一、本文介绍

本文记录的是利用MobileNetV3作为Backbone改进YOLOv10的特征提取部分。MobileNetV3通过深度可分离卷积和倒残差结构,实现轻量级高效特征提取。

二、MobileNetV3模块介绍

2.1 设计出发点

深度可分离卷积将标准卷积分解为深度卷积和逐点卷积,大幅减少计算量。

2.2 模块结构

MobileNetV3块:

  1. 逐点卷积:升维
  2. 深度卷积:空间特征提取
  3. SE注意力:通道注意力
  4. 逐点卷积:降维

三、MobileNetV3的实现代码

importtorchimporttorch.nnasnnclassInvertedResidual(nn.Module):def__init__(self,c1,c2,k=3,s=1,expand_ratio=6,act=True):super().__init__()c_=c1*expand_ratio self.conv1=nn.Conv2d(c1,c_,1,1,bias=False)self.bn1=nn.BatchNorm2d(c_)self.conv2=nn.Conv2d(c_,c_,k,s,k//2,groups=c_,bias=False)self.bn2=nn.BatchNorm2d(c_)self.se=nn.Sequential(nn.AdaptiveAvgPool2d(1),nn.Conv2d(c_,c1//4,1,bias=False),nn.SiLU(),nn.Conv2d(c1//4,c_,1,bias=False),nn.Sigmoid())self.conv3=nn.Conv2d(c_,c2,1,1,bias=False)self.bn3=nn.BatchNorm2d(c2)self.act=nn.SiLU()ifactisTrueelse(actifisinstance(act,nn.Module)elsenn.Identity())self.shortcut=s==1andc1==c2defforward(self,x):out=self.act(self.bn1(self.conv1(x)))out=self.act(self.bn2(self.conv2(out)))out=out*self.se(out)out=self.bn3(self.conv3(out))returnout+xifself.shortcutelseoutclassMobileNetV3(nn.Module):def__init__(self,c1=3,c2=1024):super().__init__()self.stem=nn.Sequential(nn.Conv2d(c1,16,3,2,1,bias=False),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.blocks=nn.ModuleList()c=16forlayerincfg:self.blocks.append(InvertedResidual(c,layer['c'],layer['k'],layer['s'],layer['e']))c=layer['c']self.final_conv=nn.Conv2d(c,c2,1,bias=False)defforward(self,x):x=self.stem(x)forblockinself.blocks:x=block(x)x=self.final_conv(x)returnx

四、创新模块

将MobileNetV3作为Backbone集成到YOLOv10中:

# yolov10n_mobilenetv3.yamlbackbone:-[-1,1,MobileNetV3,[3,1024]]-[-1,1,SPPF,[1024,5]]

五、预期结果

模型mAP@0.5mAP@0.5:0.95参数量
YOLOv10n52.3%27.9%2.7M
YOLOv10n-MobileNetV351.5%27.2%1.5M

📌项目环境配置

  • Python:3.8.10+
  • PyTorch:2.0.0+
  • CUDA:11.8+
  • Ultralytics:8.3.13+
http://www.gsyq.cn/news/1620708.html

相关文章:

  • STM32与PCF8591的I2C通信与数据采集设计
  • STM32F401RE与TC78H660FTG的无刷电机驱动方案解析
  • 终极Switch游戏文件管理神器:NSC_BUILDER完整使用教程
  • 告别演讲超时:这款智能PPT计时器让你成为时间管理大师
  • STM32L152RE与TPS65263的嵌入式电源管理方案
  • longcat接入ccswitch获取余量查询
  • Android cold‑starts(冷启动)
  • 《墨香情》2026年7月官网下载:无职业束缚的六大兵器流派全解析
  • Selenium自动化测试入门:从环境搭建到框架集成的完整指南
  • 【学习记录】Week4(四):进阶栈溢出——ret2syscall、栈劫持与 ret2mprotect 实战
  • Python从入门到实战(一):初识Python与基础语法
  • 微电网控制柜主控模块七大核心功能,决定微网智能化上限
  • 华为手机地震预警全面升级,提前开启筑牢“安全防线”
  • xshell与xftp的连接教程
  • 收藏!小白程序员也能抓住的AI高薪机遇,大厂都在布局!
  • 拯救者笔记本终极控制神器:Lenovo Legion Toolkit完全指南
  • VS Code 插件市场 AI 类插件上架量暴增 6 倍:2026 年开发者工具链选型避坑指南
  • Spring Boot安全实战:防范路由暴露、SQL注入与Thymeleaf SSTI三大核心漏洞
  • AI编程工具与数据标注平台实战解析
  • Brand Mind用RAG压测100次AI态度变化
  • 3分钟终极指南:用ncmdumpGUI轻松解密网易云NCM音乐文件
  • 如何免费解锁Wand专业版:开源增强工具让你的游戏修改体验更完美
  • 计算机毕业设计之耕地资源数据管理系统
  • 基于HFish蜜罐与Python构建自动化威胁情报源实战指南
  • 3步实现游戏参数自由调整:开源增强工具全攻略
  • 终极视频字幕去除指南:5分钟学会AI自动去除硬字幕
  • 上海章动厂二代接班,如何在行业中获得认可?
  • 终极Steam创意工坊下载指南:WorkshopDL轻松获取1000+游戏模组
  • KMX63与PIC32MX795F512L实现现代HMI手势交互设计
  • KMX63与STM32L162ZE在HMI设计中的低功耗手势控制方案