当前位置:   article > 正文

InternImage segmentation部分代码复现及训练自己的数据集(一)_internimage代码解读

internimage代码解读

所谓“复现”,不过是跑通了官方的代码,以下仅为个人的一些经验和理解,欢迎指正。

(其实仅作为个人学习使用,也欢迎交流)

首先贴出官方文献和代码:

官方文献:InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions,链接:InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions | Papers With Code官方Github代码:GitHub - OpenGVLab/InternImage: [CVPR 2023 Highlight] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions

一、代码复现

1、配置信息

        Linux系统Ubuntu 9.4.0(在Windows上跑会出现各种各样的问题,主要是包不兼容的问题),4卡,Cuda 11.1。


2、环境配置

        下载了官方代码解压,得到以下文件:

        进入   ./segmentation 文件夹下,用Notepad++软件打开README.md文件,跟据上面的内容配置环境。

3、数据集准备

        ADE20K数据集下载:

        官网下载:ADE20K dataset (mit.edu),这里的训练测试只用到 ADEChallengeData2016 数据集(MIT Scene Parsing Challenge 2016)就可以了。这里再附上百度网盘下载链接:链接:https://pan.baidu.com/s/1VWVzoeIgzDbFgo_RXcQ_Mw?pwd=mv4j 提取码:mv4j

        关于数据集的介绍请看官网,下面的训练和测试都是基于ADEChallengeData2016进行。

4、测试(test.py部分)

        将数据集上传到Linux系统,官方代码默认读取路径是 ./segmentation/data/ADEChallenge Data2016/... ,如果不想改代码的话,就在 ./segmentation 文件夹下新建一个 data 文件夹,然后把ADEChallengeData2016数据集加载到data文件夹下。数据集组织格式如下(官方代码默认):

  1. ---------------
  2. |
  3. |--ADEChallengeData2016
  4. |
  5. |--annotations
  6. | |
  7. | |--training
  8. | | |
  9. | | |--ADE_train_00000001.png
  10. | | |--ADE_train_00000002.png
  11. | | |--……
  12. | |
  13. | |--validation
  14. | | |
  15. | | |--ADE_val_00000001.png
  16. | | |--ADE_val_00000002.png
  17. | | |--……
  18. |
  19. |--images
  20. | |
  21. | |--training
  22. | | |
  23. | | |--ADE_train_00000001.png
  24. | | |--ADE_train_00000002.png
  25. | | |--……
  26. | |
  27. | |--validation
  28. | | |
  29. | | |--ADE_val_00000001.png
  30. | | |--ADE_val_00000002.png
  31. | | |--……
  32. | |

        若数据集放于其它路径下,则需要通过修改代码来进行数据集的读取,这里有两种解决办法:

        方法一:修改test.py文件代码。

        找到读取数据集的代码行:

dataset = build_dataset(cfg.data.test)   #建立数据集

        在该代码行前一行添加代码:

  1. cfg.data.test['data_root'] = 'E:/data/ADE20K/ADEChallengeData2016' #通过这个命令行改变测试集的位置,添加你的测试集路径
  2. dataset = build_dataset(cfg.data.test) #建立数据集

        这样修改之后,代码就会跟据你指明的路径读取数据,数据集的组织形式依旧如上面代码块所示。若更改组织形式,则需要指明图片所在路径和标注文件所在路径,如下面代码所示:

  1. cfg.data.test['data_root'] = 'E:/data/ADE20K/ADEChallengeData2016' #通过这个命令行改变测试集的位置,添加你的测试集路径
  2. cfg.data.test['img_dir'] = 'val/Images' #指向图片文件的路径,图片文件的完整路径为:cfg.data.test['data_root'] + cfg.data.test['img_dir']
  3. cfg.data.test['ann_dir'] = 'val/Masks' #指向标注文件的路径,标注文件的完整路径为:cfg.data.test['data_root'] + cfg.data.test['ann_dir']
  4. dataset = build_dataset(cfg.data.test) #建立数据集

       

        方法二:通过修改数据读取的底层文件实现,参考:(64条消息) mmsegmentation教程1:自定义数据集、config文件修改、训练教程_AESA相控阵的博客-CSDN博客

        模型参数(.pth文件)下载:GitHub - OpenGVLab/InternImage: [CVPR 2023 Highlight] InternImage: Exploring Large-Scale Vision Foundation Models with Deformable Convolutions

        跟据你的模型需要,下载ckpt的链接文件并保存到你的文件中(即下文代码的[your_wei ght_path])。

        做到以上准备之后,运行以下代码就可以查看模型在ADE20K数据集上的测试结果:

python test.py configs/ade20k/upernet_internimage_t_512_160k_ade20k.py [your_weight_path]/upernet_internimage_t_512_160k_ade20k.pth --eval mIoU

5、训练(train.py部分)

        与第4部分类似,需要准备数据集修改数据读取代码,模型训练不需要下载模型参数文件。准备好数据集和修改数据读取代码之后,运行以下代码(README.md)。

sh dist_train.sh configs/ade20k/upernet_internimage_t_512_160k_ade20k.py 8

        可能会出现报错,原因是 sh 命令被版本舍弃了(具体原因自己网上搜索)?将 sh 命令换为 bash 命令就可以了,即:

bash dist_train.sh configs/ade20k/upernet_internimage_t_512_160k_ade20k.py 8

        

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/93874
推荐阅读
相关标签
  

闽ICP备14008679号