训练前的准备
- 训练数据的导入
将自己的COCO数据集放入到下载的mmdetection的源码里,(如果没有data文件夹需要新建)data -> COCO -> 你的COCO数据集
文件格式如下:
mmdetection
├── mmdet
├── tools
├── configs
├── data
│ ├── coco
│ │ ├── annotations
│ │ ├── train2017
│ │ ├── val2017
- 配置的修改
configs/_base_/datasets
- coco_detection.py
- coco_instace.py
- coco_instace_semantic.py
修改里面的img_scale=(,):输入图片的最大长度和最小长度(GPU显存不够可以适量改动,上述的三个.py文件都要改)
configs/你选择的算法/选择的配置文件
选择你需要的模型对应的配置文件进行修改
修改的内容为:num_classes=**
,修改为你自己训练时候的数据集的种类的个数(分类的个数)。- 修改自己的COCO数据集的类别
mmdet/core/evaluation/classnames.py
def coco_classes():
替换为自己的数据分类ID
mmdet/datasets/coco.py
class CoCoDataset(CustomDataset):
替换为自己数据分类ID
准备训练
- 进入
tools/train.py
进行训练
使用语句运行代码python tools/train.py configs/你选择的算法/你训练前的准备的第2步修改的配置文件 --gpus 1 --work-dir demo1_test
- 一旦开始立即停止训练
进入刚刚设置的工作空间进入新生成的配置文件,与你上一步使用的配置文件的名称一致
找到log_config=dict(interval=50,hooks=....)
interval=50:含义为每50此输出一次日志,不便于分析模型的训练情况,建议改小一些 - 进行训练此时使用自己的配置文件
使用语句运行代码python tools/train.py 你准备训练的第2步修改的配置文件 --gpus 1 --work-dir demo1_test
tools/analyze_logs.py
运行代码可以将日志转化为折线图
python tools/analysis_tools/analyze_logs.py plot_curve 日志的路径 --key loss_cls loss_bbox loss_mask
还可以加上--out
的配置,输出为jpg或者pdf
测试模型
tools/test.py
执行语句python tools/test.py 你的配置文件 指定模型的配置文件
此时展示出来的是ID而不是名字
展示出名字的修改
- 找到
base.py
- 找到
show = Flase
在下面插入
real_names = ['data1', 'data2',.......]
- 找到
class_names=self.CLASSES,
修改为class_name=real_names,