mask-rcnn,pytorch版本链接:https://github.com/open-mmlab/mmdetectionpytorch相关环境文章配置链接:https://blog.csdn.net/m0_46926492/article/details/129544634pycharm打开源码,并选择pytorch虚拟环境的python解释器pip install openmim
mim install mmcv-full
pip install mmdet

data/coco2017文件夹,将文件解压到coco2017中annotations_trainval2017/annotations文件夹剪切到与train2017,val2017同目录
train2017.zip,val2017.zip,annotations_trainval2017.zip,annotations_trainval2017,四个文件都可以删除了data整个文件放入项目的根目录

mmdetection-master/mmdet/datasets/coco.pymmdetection-master/mmdet/core/evaluation/class_name.pycoco2017数据集,所以现在不用修改
找到配置文件目录mmdetection-master/configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py

修改mask_rcnn_r50_fpn.py 文件类别数,将80改为自己的分类个数
coco2017数据集不用修改
修改coco_instance.py 文件,data_root数据集路径
coco2017这个名称可以根据自己的名称修改即可,其他的不需要动
../,因为train.py数据集在tools文件夹中,不在根目录,需要找到根目录位置
修改coco_instance.py 文件数据集路径,查看自己的文件名称,进行相应修改

修改schedule_1x.py 文件中的学习率修改自己的数值

修改default_runtime.py 文件,不知道为什么修改

添加train.py 文件参数

train.py代码 ImportError: Please run pip install future tensorboard to install the dependencies to use torch.utils.tensorboard (applicable to PyTorch 1.1 or higher) pip install future tensorboard
AttributeError: module distutils has no attribute version setuptools版本太高,采用低版本的setuptoolspip install setuptools==59.5.0

balloon数据集测试是否正常跑通
mmdetection-master/mmdet/datasets/coco.pymmdetection-master/mmdet/core/evaluation/class_name.py
找到配置文件目录mmdetection-master/configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py

修改mask_rcnn_r50_fpn.py 文件类别数,将80改为自己的分类个数,我改为1

修改coco_instance.py 文件,data_root数据集路径

修改coco_instance.py 文件数据集路径,查看自己的文件名称,进行相应修改
train.json,val.json
在训练过coco2017数据集之后修改了其他的配置,其他都不需修改
train.py代码,成功训练
batch_size=2,epoch=12balloon数据集train数据集个数为63,val数据集个数为13,批次2太小,轮次12也小 
将batch_size改为8【后期又改回来了】
电脑只有一个gpu,源码有8个gpu,所以他的samples_per_gpu=2,实际batch_size为16

我将samples_per_gpu改为16,报错显示内存溢出
改为8使用训练集测试,一个图片都没有检测出来【不知道什么问题】
batch_size太大,会影响模型的泛化能力,我的数据集比较少,可能会是这个原因改为了4,有检测出来的,但是还有没有检测出来的

所以我又改为了2,就是没修改batch_size,好浪费时间啊

将epoch改为150,改为100下面这个图片没有检测出来,又改为150了,150也不行,还是100吧,这个图片算了,我放弃了

学习率改为0.0025【网上说的使用的gpu越少,学习率就要越低】

修改打印损失迭代次数interval,train数据集有63个,一次给gpu图片个数batch_size为2,所以一个epoch总为31次,我们设置迭代4次打印一次损失 【没有什么对模型实际的影响,该不该都行,只是在终端会打印loss信息,但是也看不出来什么,看图比较明显】

测试数据
设置保存图片路径【圈出框的图片】

在test.py中加入参数
../configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py
../tools/work_dirs/mask_rcnn_r50_fpn_1x_coco/epoch_150.pth
--show
--eval
bbox
segm

使用val数据集测试,发现一个物体对应多个框

调整相关非极大值抑制参数【还没有调好,调好再更新】

查看loss,使用tensorboard
logdir为输出的日志路径tensorboard --logdir=tools/work_dirs/mask_rcnn_r50_fpn_1x_coco/


上一篇:Ajax简介