mmdetection修改源码来进行backbone结构改进

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 1、找到mmdet中的backbone相关的模型源码
  • 2、修改backbone源码
  • 3、修改对应的config代码
  • 总结

本文以mobilenet作为backbone举例

1、找到mmdet中的backbone相关的模型源码

首先要找到你安装在虚拟环境中的mmdet库的路径,mmdet中的源码文件如下图所示:
mmdetection修改源码来进行backbone结构改进_第1张图片
在mmdet->models->backbones文件夹下就都是各种特征提取的backbone源码了
mmdetection修改源码来进行backbone结构改进_第2张图片

2、修改backbone源码

我们打开mobilenetv2的代码,可以看到如下所示:
mmdetection修改源码来进行backbone结构改进_第3张图片
对比论文中的模型结构
mmdetection修改源码来进行backbone结构改进_第4张图片
我们可以发现,源码的二维数组就是对应的每一个module的配置,以[1,16,1,1]为例,就是第0个bottleneck的配置,t=1,c=16,n=1,s=1。t表示扩张系数,c为输出通道数,n为该层重复的次数,s为步长。通过修改这些可以轻易地改变模型的深度(重复层数)和宽度(卷积通道数)。

3、修改对应的config代码

这里以faster-rcnn作为检测器,Mobilenet_v2作为backbone为例。
mmdetection修改源码来进行backbone结构改进_第5张图片
mmdetection修改源码来进行backbone结构改进_第6张图片

上图是用FPN将mobilenet的四个不同尺寸的特征做融合,这边选择的是1,2,4,7层的特征,一定要记得这边要跟源码里的通道数对应,最后输出通道数32一定要与后续的rpn neck对应上
mmdetection修改源码来进行backbone结构改进_第7张图片
其他的模块也可以根据自己的需求去做不同的配置,很方便的。

总结

以上就是最近使用到的一些自己配置mmdet的东西,mmdet的配置是可以很灵活的,有需要还可以自己写backbone或者损失函数然后放到注册信息里就可以。大家有兴趣的话可以一键三连一下支持一下博主。

你可能感兴趣的:(深度学习,大数据比赛,深度学习,目标检测,计算机视觉)