位置: IT常识 - 正文

YOLOV5更换轻量级的backbone:mobilenetV2(yolov5使用)

编辑:rootadmin
YOLOV5更换轻量级的backbone:mobilenetV2

目录

简洁概要:

修改主干网络:

一:添加自己主干网络

二:在yolo.py中添加common中的两个函数

三:制作mobilenetv2的yaml配置文件

四:制作数据集VOC的yaml配置文件

五:启用训练

六:性能检测

推荐整理分享YOLOV5更换轻量级的backbone:mobilenetV2(yolov5使用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:yolov5 5.0,yolov5轻量化,yolov5商用,yolov5轻量化,yolov5轻量化,yolov5轻量化,yolov5更换backbone,yolov5轻量化,内容如对您有帮助,希望把文章链接给更多的朋友!

简洁概要:

MobileNetV2主要采用了深度可分离卷积,在MobileNetv1的基础上引用了残差模块以及Relu6的激活函数,用1*n,n*1的思想代替了n*n的矩阵,计算量会更小。

修改主干网络:一:添加自己主干网络

yolov5 6.1的版本中,在models/common中添加MobilenetV2作为backbone

class ConvBNReLU(nn.Sequential): # 该函数主要做卷积 池化 ReLU6激活操作 def __init__(self, in_planes, out_planes, kernel_size=3, stride=1, groups=1): padding = (kernel_size - 1) // 2 # 池化 = (步长-1)整除2 super(ConvBNReLU, self).__init__( # 调用ConvBNReLU父类添加模块 nn.Conv2d(in_planes, out_planes, kernel_size, stride, padding, bias=False, groups=groups), # bias默认为False nn.BatchNorm2d(out_planes), nn.ReLU6(inplace=True))class InvertedResidual(nn.Module): # 该模块主要实现了倒残差模块 def __init__(self, inp, oup, stride, expand_ratio): # inp 输入 oup 输出 stride步长 exoand_ratio 按比例扩张 super(InvertedResidual, self).__init__() self.stride = stride assert stride in [1, 2] hidden_dim = int(round(inp * expand_ratio)) # 由于有到残差模块有1*1,3*3的卷积模块,所以可以靠expand_rarton来进行升维 self.use_res_connect = self.stride == 1 and inp == oup # 残差连接的判断条件:当步长=1且输入矩阵与输出矩阵的shape相同时进行 layers = [] if expand_ratio != 1: # 如果expand_ratio不等于1,要做升维操作,对应图中的绿色模块 # pw layers.append(ConvBNReLU(inp, hidden_dim, kernel_size=1)) # 这里添加的是1*1的卷积操作 layers.extend([ # dw ConvBNReLU(hidden_dim, hidden_dim, stride=stride, groups=hidden_dim), # 这里做3*3的卷积操作,步长可能是1也可能是2,groups=hidden_dim表示这里使用了分组卷积的操作,对应图上的蓝色模块 # pw-linear nn.Conv2d(hidden_dim, oup, 1, 1, 0, bias=False), # 对应图中的黄色模块 nn.BatchNorm2d(oup), ]) self.conv = nn.Sequential(*layers) # 将layers列表中的元素解开依次传入nn.Sequential def forward(self, x): if self.use_res_connect: # 如果使用了残差连接,就会进行一个x+的操作 return x + self.conv(x) else: return self.conv(x) # 否则不做操作二:在yolo.py中添加common中的两个函数if m in (Conv, GhostConv, Bottleneck, GhostBottleneck, SPP, SPPF, DWConv, MixConv2d, Focus, CrossConv, BottleneckCSP, C3, C3TR, C3SPP, C3Ghost, nn.ConvTranspose2d, DWConvTranspose2d, C3x, ConvBNReLU, InvertedResidual): # 添加 common中新加的两个模块 ConvBNReLU和InvertedResidual三:制作mobilenetv2的yaml配置文件# Parametersnc: 1 # number of classesdepth_multiple: 1.0 # model depth multiplewidth_multiple: 1.0 # layer channel multipleanchors: - [ 10,13, 16,30, 33,23 ] # P3/8 - [ 30,61, 62,45, 59,119 ] # P4/16 - [ 116,90, 156,198, 373,326 ] # P5/32# YOLOv5 v6.0 backbonebackbone: # [from, number, module, args] [ [ -1, 1, Conv, [ 32, 3, 2 ] ], # 0-P1/2 32x320x320 [ -1, 1, InvertedResidual, [ 16, 1, 1 ] ], # 1 16x320x320 [ -1, 1, InvertedResidual, [ 24, 2, 6 ] ], # 2-P2/4 24x160x160 [ -1, 1, InvertedResidual, [ 24, 1, 6 ] ], # 3-P2/4 24x160x160 [ -1, 1, InvertedResidual, [ 32, 2, 6 ] ], # 4-P3/8 32x80x80 [ -1, 1, InvertedResidual, [ 32, 1, 6 ] ], # 5-P3/8 32x80x80 [ -1, 1, InvertedResidual, [ 32, 1, 6 ] ], # 6-P3/8 32x80x80 [ -1, 1, InvertedResidual, [ 64, 2, 6 ] ], # 7-P4/16 64x40x40 [ -1, 1, InvertedResidual, [ 64, 1, 6 ] ], # 8-P4/16 64x40x40 [ -1, 1, InvertedResidual, [ 64, 1, 6 ] ], # 9-P4/16 64x40x40 [ -1, 1, InvertedResidual, [ 64, 1, 6 ] ], # 10-P4/16 64x40x40 [ -1, 1, InvertedResidual, [ 96, 1, 6 ] ], # 11 96X40X40 [ -1, 1, InvertedResidual, [ 96, 1, 6 ] ], # 12 96X40X40 [ -1, 1, InvertedResidual, [ 96, 1, 6 ] ], # 13 96X40X40 [ -1, 1, InvertedResidual, [ 160, 2, 6 ] ], # 14-P5/32 160X20X20 [ -1, 1, InvertedResidual, [ 160, 1, 6 ] ], # 15-P5/32 160X20X20 [ -1, 1, InvertedResidual, [ 160, 1, 6 ] ], # 16-P5/32 160X20X20 [ -1, 1, InvertedResidual, [ 320, 1, 6 ] ], # 17 320X20X20 ]# YOLOv5 v6.0 headhead: [ [ -1, 1, Conv, [ 160, 1, 1 ] ], [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ], [ [ -1, 13 ], 1, Concat, [ 1 ] ], # cat backbone P4 [ -1, 1, C3, [ 160, False ] ], # 21 [ -1, 1, Conv, [ 80, 1, 1 ] ], [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ], [ [ -1, 6 ], 1, Concat, [ 1 ] ], # cat backbone P3 [ -1, 1, C3, [ 80, False ] ], # 25 (P3/8-small) [ -1, 1, Conv, [ 80, 3, 2 ] ], [ [ -1, 22 ], 1, Concat, [ 1 ] ], # cat head P4 [ -1, 1, C3, [ 160, False ] ], # 28 (P4/16-medium) [ -1, 1, Conv, [ 160, 3, 2 ] ], [ [ -1, 18 ], 1, Concat, [ 1 ] ], # cat head P5 [ -1, 1, C3, [ 320, False ] ], # 31 (P5/32-large) [ [ 25, 28, 31 ], 1, Detect, [ nc, anchors ] ], # Detect(P3, P4, P5) ]四:制作数据集VOC的yaml配置文件# YOLOv5 by Ultralytics, GPL-3.0 license# PASCAL VOC dataset ' # old img path lb_path = (lbs_path / f.name).with_suffix('.txt') # new label path f.rename(imgs_path / f.name) # move image convert_label(path, lb_path, year, id) # convert labels to YOLO format五:启用训练

由于修改了网络所以不能加载预训练模型进行

预训练模型的作用:加快模型训练初期的超参数训练时间

YOLOV5更换轻量级的backbone:mobilenetV2(yolov5使用)

weights修改为空

cfg修改为自己网络模型的配置文件

data修改为自己VOC数据集的配置文件

六:性能检测

修改val.py的参数,与上一步一致

这里分别用了V5s,V5n,以及mobilenetV2分别做了150批次训练来对比

mobilenetV2

 V5s

 V5n

对比可以发现 V5n与mobilenetV2的相差并不大,相比较于这两个模型,V5s的精度稍微高一些,但是它模型的复杂度会略微大一丢丢,推理时间略大一点。

本文链接地址:https://www.jiuchutong.com/zhishi/295870.html 转载请保留说明!

上一篇:X-Frame-Options简介(next frame)

下一篇:html表白代码(html表白代码动态)

  • 门户网站网络软文推广(门户网站安全可靠)

    门户网站网络软文推广(门户网站安全可靠)

  •  品牌必须是主角:有效的传播始于品牌(品牌必须是主体吗)

    品牌必须是主角:有效的传播始于品牌(品牌必须是主体吗)

  • realmebook多少钱(realme笔记本多少钱)

    realmebook多少钱(realme笔记本多少钱)

  • 手机爱奇艺会员和电视奇异果通用吗(手机爱奇艺会员怎么在电脑上登录)

    手机爱奇艺会员和电视奇异果通用吗(手机爱奇艺会员怎么在电脑上登录)

  • 微博如何图片评论(微博如何图片评论直接显示图片)

    微博如何图片评论(微博如何图片评论直接显示图片)

  • qq群太阳花怎么设置(qq群里的太阳花标识怎么获得)

    qq群太阳花怎么设置(qq群里的太阳花标识怎么获得)

  • 闲鱼怎么让某人看不到(闲鱼怎么让某人看不到我的主页)

    闲鱼怎么让某人看不到(闲鱼怎么让某人看不到我的主页)

  • 苹果分辨率在哪里设置(苹果分辨率在哪调整)

    苹果分辨率在哪里设置(苹果分辨率在哪调整)

  • nfc模式是什么意思啊(nfc/nfc模式是什么意思)

    nfc模式是什么意思啊(nfc/nfc模式是什么意思)

  • 闲鱼卖家不发货多久会自动取消(闲鱼卖家不发货钱会退回来吗)

    闲鱼卖家不发货多久会自动取消(闲鱼卖家不发货钱会退回来吗)

  • 快手闪电购与小黄车区别(快手闪电购小黄车滚屏出单软件)

    快手闪电购与小黄车区别(快手闪电购小黄车滚屏出单软件)

  • 苹果11发不出去短信怎么回事(苹果11发不出去短信)

    苹果11发不出去短信怎么回事(苹果11发不出去短信)

  • 华为荣耀9a怎么设置返回键(华为荣耀9a怎么投屏到电视上)

    华为荣耀9a怎么设置返回键(华为荣耀9a怎么投屏到电视上)

  • office2010找不到安装源(office2010找不到卸载程序)

    office2010找不到安装源(office2010找不到卸载程序)

  • 下载设置安装到桌面(下载设置安装到D盘)

    下载设置安装到桌面(下载设置安装到D盘)

  • 宽带接入技术有哪几种(宽带接入技术有什么重要的知识)

    宽带接入技术有哪几种(宽带接入技术有什么重要的知识)

  • 苹果手机温度低关机怎么办(苹果手机温度低会充不进去电?)

    苹果手机温度低关机怎么办(苹果手机温度低会充不进去电?)

  • 全民k歌踢榜是什么意思(全民k歌踢榜是怎么回事)

    全民k歌踢榜是什么意思(全民k歌踢榜是怎么回事)

  • oppor9s有nfc功能吗(oppor9s有nfc功能么)

    oppor9s有nfc功能吗(oppor9s有nfc功能么)

  • 荣耀9x有没有指纹解锁(荣耀9x有没有指纹锁)

    荣耀9x有没有指纹解锁(荣耀9x有没有指纹锁)

  • 修改照片尺寸的app(修改照片尺寸的微信小程序)

    修改照片尺寸的app(修改照片尺寸的微信小程序)

  • 电脑上视频怎么旋转(电脑上视频怎么原画质传到手机)

    电脑上视频怎么旋转(电脑上视频怎么原画质传到手机)

  • 怎么做电脑系统?如何解决?(自己怎么做电脑系统)

    怎么做电脑系统?如何解决?(自己怎么做电脑系统)

  • 结转和结转到的区别
  • 纳税总额和实际上缴税费总额
  • 哪些纳税人可以申请存量留抵退税
  • 材料成本差异会计
  • 半成品报废账务处理
  • 别人给的发票一直不开
  • 企业自行出版的报刊费用可否认证抵扣?
  • 免税农产品收入是否计入30万销售额
  • 其他收益是否缴纳个税
  • 纳税调整增加额和纳税调整减少额
  • 企业的其他业务收入有
  • 主营业务成本记账
  • 办理企业土地证要多少钱
  • 苹果电脑快捷键删除
  • 怎么在电脑上设置输入法
  • 设备维保费计算标准
  • 为什么电脑开机显示无信号然后黑屏
  • 外资企业采购退税流程
  • 结转本月收入类账户到本年利润
  • 跨省经营建筑企业税收政策
  • windows7中可以设置控制计算机
  • 利尼扬蒂野生动物保护区中的一只雄性豹子,博茨瓦纳 (© Karine Aigner/Tandem Stills + Motion)
  • controller 层
  • 委托加工不提供原材料会计分录
  • 税务安全证书不成功什么意思
  • 顺流交易合并抵消
  • ai绘画图片
  • 下列项目的进项税额可从销项税
  • Laravel4中的Validator验证扩展用法详解
  • 帝国cms8.0
  • 个人所得税专项附加扣除标准一览表
  • 资产处置费用是资产类会计科目吗
  • 长期股权投资内部交易抵消
  • 赔偿的费用
  • 万元版和十万元版发票图片
  • 异地预交个人所得税
  • 担保公司的风险准备金在报表中如何反应
  • 如何进行会计制度改革
  • 预缴税款计算表填0.01行吗
  • 邮电通信企业业务收入包括哪些内容?
  • 一般纳税人预收租金增值税
  • 损益类账户怎么记入总账
  • 异地成立分公司的流程和要求
  • 材料成本差异率是什么意思
  • 检测公司成本科目
  • 年末资产减值损失可以税前扣除吗
  • 实发工资有小数点是如何解决的
  • 母公司设立子公司协议
  • 用友t3固定资产反结账的操作步骤
  • 固定资产折旧如何计提
  • 咨询费开发票应该选哪一项?
  • 所有者权益变动表图片
  • 存货期末报表列示
  • 简易征收租赁税率3还是5
  • 会计账户分类是什么意思
  • 查看mysql执行sql日志内容
  • sqlserver查询数据库表名
  • 镜的镜像截图
  • windowxp宽带连接
  • CentOS上使用Squid+Stunnel搭建代理服务器教程
  • android系统应用可以禁用吗
  • u盘装系统步骤delt进入界面怎么选择
  • win10预览在哪里
  • 0x80070718配额不足
  • win7电脑连不上wifi怎么办
  • win7电脑开机提示oxcoooooe9
  • win8平板触摸键盘没反应
  • w7系统序列号怎么查
  • 系统干净启动
  • bootstrap滚动监听效果
  • svn报错禁止访问
  • 批处理文件bat
  • angular.js
  • unity meshcollider
  • 山东耕地占用税税率
  • 沈阳市地方税务局
  • 车间租金计入什么会计科目
  • 天津摇号申请查询
  • 个人可不可以申请办理租赁性质车辆登记
  • 国家发票真伪查验
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设