Ubuntu和Windows使用Mmdetection训练Swin-Transformer+Mask-RCNN

最近想用各种SOTA的Swin-Transformer来试试实例分割效果,于是找了一下教程实验了一下,主要分为以下步骤:

1、安装Mmdetection

这部分的教程很多,网上搜一下就行了,但是这里出错最多。

2、下载Swin-Transformer作者(作者已经把实例分割、语义分割各种都做过了一遍)的预训练模型,链接如下:https://github.com/microsoft/Swin-Transformer,因为我用的是Mask-RCNN,所以用的红线框柱的模型。

在这里插入图片描述

3、修改configs文件,具体而言有以下2个:

1、修改__base__:
第一个地方该“data_root”即可,第二个改“num_classes”(有两个都要改,注意不加背景类),并把预训练模型路径加在第一行,如下所示:
在这里插入图片描述

第三个改不改无所谓,就是一些说模型多久训练完的,当然这里也可以在“load_from”后面加上预训练模型路径,或者直接按我上面那样直接写进去。2、修改configs下面的swin文件夹里面的画红框文件
在这里插入图片描述
这个里面改改最大的训练次数和一些其他参数,可以修改。

3、修改mmdet文件夹

因为我用的是COCO数据集的格式,这里只要把两个里面的类别都改成自己的类别名称就可以了,如下:
在这里插入图片描述
在这里插入图片描述
最后就可以训练了,运行如下命令:

python tools/train.py configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py

测试的话用下面命令(用的最后一个模型):

python demo/image_demo.py demo/52.tif configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py work_dirs/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco/latest.pth

把影像名字(52.tif)和模型(latest.pth)改掉就行了

4、易错点:
1、AssertionError: MMCV==1.3.9 is used but incompatible. Please install mmcv>=1.3.17, <=1.6.0.
mmcv和mmdet版本不对应问题,一个简单办法。不用mmcv-full,直接用mmcv,安装的时候直接用pip安装指定版本即可。
2、TypeError: MaskRCNN: SwinTransformer: init() got an unexpected keyword argument ‘embed_dim’
这个的问题还是版本的问题,不过这个是mmdet的版本问题,解决方法依旧是直接重新安装mmdet就完事,不用mim安装,用pip安装完事。

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
mmdetection swin maskrcnn是一个基于Swin Transformer的目标检测模型。你可以使用命令"python demo/image_demo.py demo/52.tif configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py work_dirs/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco/latest.pth"来进行测试。\[1\] 在配置文件中,你可以修改configs文件夹下的相关配置,例如albu_example、atss和_base_等文件夹。其中_base_文件夹是最根本的继承,包含了数据集的训练方法、数据增强、测试方法等。\[2\] 如果你使用的是自定义数据集,需要注意是否标注了mask。通常情况下,自定义数据集只会标注bbox,所以需要禁用mask-rcnn中的mask。具体操作包括: 1. 在基础模型文件cascade_mask_rcnn_swin_fpn.py中将use_mask由True改为False,并注释掉mask_roi_extractor和mask_head两个变量。 2. 在入口配置文件cascade_mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_giou_4conv1f_adamw_3x_coco.py中,将train_pipeline中的with_mask由True改为False,并在dict(type='Collect', keys=\['img', 'gt_bboxes', 'gt_labels', 'gt_masks'\])中去掉'gt_masks'。 3. 在数据集描述文件coco_instance.py中,将evaluation中的metric中去掉'segm'。\[3\] 这样配置之后,你就可以使用mmdetection swin maskrcnn进行目标检测了。 #### 引用[.reference_title] - *1* [UbuntuWindows使用Mmdetection训练Swin-Transformer+Mask-RCNN](https://blog.csdn.net/Wddym/article/details/125268262)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [利用mmdetection训练自己数据集过程error解决汇总](https://blog.csdn.net/QQ992281036/article/details/126979053)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [swing transformer中修改mmdetection训练mask-rcnn使类别数适应custom dataset](https://blog.csdn.net/zkp_987/article/details/125724107)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值