Mask rcnn代码实现_pytorch版

由于科研需求,要做一个图像分割的项目,于是开始着手跑一下 mask rcnn。本以为很简单的事情,网上代码比较多,结果尝试了一下,遇到了各种问题。

主要是由于网上的代码大多是基于 tensorflow1.x 的,我的显卡是 RTX3080,而30系列显卡的 CUDA 版本要求是 11.x ,不能在 tensorflow1.x 上运行。

尝试用tensorflow2.x 代替 tensorflow1.x,改一下 bug ,结果不一样的地方实在太多,还不好改,于是脱坑,找到了 pytorch 版本的 mask rcnn 代码,30系列显卡也可以愉快的图像分割了。

1. 本文所用的代码是 mmtetection 库,pytorch 版本的 mask rcnn 代码:

代码连接:https://github.com/open-mmlab/mmdetection

2. 本文所用开发环境

Win10 + RTX 3080

Python=3.8.13 (最新版 python 就可以)

CUDA 11.3 + cuDNN 8.2.1(只要和30系列显卡适配就行,版本无要求)

pytorch=1.12.1 + torchvision=0.13.1 (直接安装最新版就行)

labelme=5.0.1

开发环境安装方法:https://github.com/open-mmlab/mmdetection/blob/master/docs/en/get_started.md/#Installation

打不开链接的话,就按下面的流程安装进行,很简单

2.1 安装虚拟环境(推荐)

2.2 安装 mmcv

2.3 安装 mmdet

剩余的包运行时候缺什么安装什么就行,简单!

3. 数据准备

mmdetection-master 目录下新建一个 data 文件夹, 将处理好的 coco 格式数据集,按如下样式放入到 data 文件夹中。此外还要在此目录下新建 checkpoints 文件夹和 work_dirs 文件夹。

(data 文件夹下面放 coco 文件夹,coco 文件夹下放 annotations 文件夹和 train2022, val2022 以及 test2022文件夹,这三个文件夹下直接是图片。)

这里提一下,可以用自制的数据集,用 labelme 软件标注好,再转化为 coco 数据标注格式就行,数据制作方法参考:https://blog.csdn.net/wangjianwei19911218/article/details/126348135

4. 修改源代码

4.1 如果是自制的数据集,需要修改数据集的类别名称和类别数量。这里以 mmdetection-master 为根目录,主要修改两个文件:

./mmdetection-master/mmdet/datasets/coco.py
./mmdetection-master/mmdet/core/evaluation/class_name.py

目前我的数据集只有 cow 样本,一个类别要加逗号,因此直接按照我的来:


4.2 修改配置文件

首先打开文件配置文件,找到需要修改的文件路径:
./mmdetection-master/configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py

需要对这4个路径中的文件进行一一修改:

(1)修改 mask_rcnn_r50_fpn.py 文件

修改第 47 行和第 66 行的类别数,根据自己的数据集,我的是 1 类。

(2)修改 coco_instance.py 文件

data_root 路径改为 ‘ …/data/coco ', 文件路径按我的来。


(3)修改 schedule_1x.py 文件

原文中 8 个 GPU,学习率为0.02,咱们一个GPU,因此设为0.0025.

(4)修改 default_runtime.py 文件

按照如下修改就行

我们主要用 tools 文件夹下的 train.py 文件进行训练。

pycharm软件下添加文件参数:


确定,点开始就可以训练了。

不过这时候,你可能会遇到这个bug:

这是因为官方代码有 bug, 你只要把 dataset 去掉就好了。

原始代码

修改后代码:

大功告成!!

测试时,在config中加入如下代码:

../configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py E:\relate_code\mmdetection-master\tools\work_dirs\mask_rcnn_r50_fpn_1x_coco/epoch_12.pth --show --eval bbox segm

参考链接:https://blog.csdn.net/wangjianwei19911218/article/details/126362613?spm=1001.2014.3001.5502

https://blog.csdn.net/wangjianwei19911218/article/details/126348135?spm=1001.2014.3001.5502

日常学习记录,一起交流讨论吧!侵权联系~

Mask rcnn代码实现_pytorch版_适用30系列显卡相关推荐

  1. keras Mask Rcnn代码走读(九)-detect方法介绍

    keras Mask Rcnn代码走读(八)-detect方法介绍,主要用于图片实体分割的推断时调用的. 一,首先对图像进行处理,调用self.mold_inputs()函数,把原图等比例resize ...

  2. Mask rcnn 代码复现

    首先去github上下载mask-rcnn源码 GitHub - matterport/Mask_RCNN: Mask R-CNN for object detection and instance ...

  3. Mask Rcnn代码与原理相结合解析

    1:前言 文章目录 1:前言 2:图片的预处理 3:整体流程概述 4:搭建特征提取网络 4:anchors的形成 5:RPN网络的搭建 6:Proposal Layer 7:创建标签 8:ROIAli ...

  4. Mask RCNN代码

    matterport/Mask rcnn model.py是网络主要构建的文件 utils.py中的anchor产生函数部分,主要是涉及函数: RPN部分 scales:(32, 64, 128, 2 ...

  5. [detectron2 ] Mask R-CNN代码笔记

    主要代码文件路径: 总架构文件: detectron2/detectron2/modeling/meta_arch/rcnn.py 默认配置:detectron2/detectron2/config/ ...

  6. Mask R-CNN(精简注释版)

    参考博客: https://blog.csdn.net/WZZ18191171661/article/details/79453780 http://blog.leanote.com/post/afa ...

  7. anaconda 上实现Tensorflow MASK R-CNN Demo Windows (CPU版)

    本文仅仅是自己实现过程的笔记记录 方法一: 想体验以下TensorFlow GPU 加速训练,又不想安装任何工具和操作复杂的配置步骤,可以参考以下资料: 如何在免费云端运行 Python 深度学习框架 ...

  8. conda安装tensorflow-gpu简洁版_笔记本的垃圾显卡也能装Tensorflow GPU版,简明教程

    有图有真相,先看最后安装效果 首先关于硬性条件,Tensorflow要求的条件如下: CUDA® 计算能力为 3.5 或更高的 NVIDIA® GPU 卡 这是什么概念呢?在英伟达官方给出的显卡算力列 ...

  9. conda安装tensorflow-gpu简洁版_【DP系列教程02】DeePMDkit:conda安装 amp; 离线安装

    点开安装教程前,是不是已经做好了看一篇万字长文的心理准备.DP君既然可以教会大家5分钟setup一个DeePMD-kit训练,就一定要教会大家如何在5分钟内学会安装DeePMD-kit.当然了,这样高 ...

最新文章

  1. inline hook学习
  2. matlab激光散斑散射半径测量,激光散斑测量2011412225741
  3. Spring学习笔记-构造和Set方法注入Bean及集合和null值的注入
  4. java框架之Quartz-任务调度整合Spring
  5. centos6.8安装xfce+vnc
  6. Ubuntu配置FTP服务(匿名登录)
  7. ASP.NET之Response.Write说
  8. 【前端】相信你会用到的一篇笔记---CSS篇(1)
  9. 删除-驱动人生节能省电方案
  10. 堆排序算法(图解详细流程)
  11. c语言pow函数原型_C语言pow函数问题
  12. Android异常篇 Cannot access com.***...***.class
  13. java imageio 内存问题_java imageio内存泄漏
  14. FA 镜头 工作距离 焦距及视野计算和结果
  15. 微信公众号自定义分享注意事项
  16. uc浏览器视频缓存合并工具
  17. Spring boot 实战指南(二):Mybatis、动态绑定、多数据源、分页插件、Mybatis-Plus
  18. cod单页系统 wordpress 来搭建 外贸 单面系统
  19. 如何做好SEO优化排名
  20. 论文期刊一般的审稿流程

热门文章

  1. 使用STM8S003定时器的PWM功能输出PWM波
  2. 播放器地址抓取 php,PHP实现使用优酷土豆视频地址获取swf播放器分享地址
  3. 《勒索软件防护发展报告(2022年)》正式发布,助力企业高效应对勒索软件攻击
  4. vue生成助记码全部教程
  5. mac终端里新建html文件,mac命令行终端怎么创建文件 mac命令行终端创建文件教程...
  6. Android中WebView,打开第三方应用的问题
  7. 如何判断一个技术(中间件/库/工具)的靠谱程度?
  8. 爱快固件是Linux系统吗,Linux 系统下 VirtualBox 里安装爱快系统 (2.4.4)
  9. 各大短信平台接入方法
  10. Android底层和中间层共同学习系列之android键盘映射