mmsegmentaion训练自己数据集
1. 准备VOC数据集
就按照deeplabv3的转换
2. 如何训练
2.1 选择模型【配置文件,用什么模型】
- 以deeplabv3为例, 配置文件名包含所用的数据集类型,选择VOC,不要带aug增强数据集的,带aug的后面还需要转换数据集。
- 可以看到voc格式的文件名,都带aug,那么,先选择一个VOC的配置文件,复制一份,重命名,删除文件名中的aug
- 打开刚才复制的配置文件,可以看到里面导入的dataset也是带aug的,找到这个文件的位置
可以看到上面这个voc数据集文件是不带增强
所以,复制pascal_voc12.py使用,重命名成想使用的名字
修改模型配置文件中,为刚刚重命名的那个
2.2 修改数据集根目录和num_classes
2.2.1 修改模型需要使用的configs/base/datasets/XXX_pascal_voc12.py文件里的数据集根目录
注意:data是在tools文件夹下的
2.2.2 修改模型需要使用的configs/base/models/XXX.py文件里的2处num_classes
**注意:如果配置文件里面有num_classes也要改,子孙文件会覆盖前面继承的文件参数
2.3 class_names.py中修改两处
2.4 修改mmseg/datasets/voc.py中数据集属性类中的class和palette
2.5 为什么要改mmseg/datasets/voc.py这个文件?如何找到这个文件?
因为使用的数据集格式不同,修改的文件也不相同,在最开始使用的配置文件中,改根目录前一行代码,就确定了
3. 官网下载预训练权重
https://github.com/open-mmlab/mmcv/tree/master/mmcv/model_zoo
4. 修改训练次数和权重
5. 总结
要改哪些地方
- 选定的configs文件中,base/models
- base/datastes
- schedule
6. QA
1. 当发现修改过的代码没生效时
- 查查代码有没有上传服务器
- 修改完代码有没有pip install -e.
2. 加载预训练模型的命令行
不是直接load_from,是–cfg-options load_from=“/.pth”
3. 模型不匹配时
去官网看看,是不是下载错了预训练模型,因为很多模型不支持voc的数据集格式
7.环境
代码版本是V1.2.2