大前提:Ubuntu20.04LTS
本人呕心沥血从无到有的摸索,自己边尝试边整理的,其实耐心多看官方文档确实能找到很多东西(下面有官方文档的链接这里就不重复粘贴了),也为了方便我自己copy语句嘻嘻~
为什么不是用Windows,作为一个小白我一开始真的想用windows,因为我懒得配双系统,但是没办法,是真的lj,安装又难,训练有诸多限制,就so sad知道吧。安装就看别的博主吧跟着别的博主so easy嘿嘿~
一、准备好自己的coco数据集
labelme标注的数据集生成json文件,使用labeleme2coco.py分别生成train,test,val的json文件。
二、修改配置文件
2.1 ./mmdet/dateset/coco.py
修改对应类别(只有一个类别时需要在第一个类别后加上,)PALETTE是调色板,设置对应CLASSES的mask颜色,只有一个颜色或者没有定义则系统自己生成mask颜色并且所有类别颜色一致。
2.2 ./mmdet/core/evaluation/class_names.py
找到对应coco_classes修改
2.3 ./configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py
按照里面的路径找到并修改配置文件
2.4 ./configs/base/models/mask_rcnn_r50_fpn.py
ctrl+f找到num_classes修改成自己的数量,不需要+1,文件里边有多少个num_classes都得改
如果需要保存最佳权重文件,则在这句上加上save_best='auto':
evaluation = dict(metric=['bbox', 'segm'], save_best='auto')
2.5 ./configs/_base_/datasets/coco_instance.py
有多处要修改,这里要修改的是指向自己数据集的路径
这里的img_scale要修改大小,CUDA memory够大可以直接改成自己数据集的图片大小,我的8+16G改成自己的(2000,2000)疯狂爆内存,只能改(800,2000)或者backbone层数少的话可以(1000,2000),这个resize是会选取自适应的,我在这里卡了超级久,气死我了,后面发现是我对resize的理解错了,后面看到文档解释才反应过来是这里的问题。一开始不想resize才改的(2000,2000),一直cuda out of memory,真的捉鸡!!!
对resize参数解读原文:https://zhuanlan.zhihu.com/p/381117525