MMdetection训练个人coco数据集
依赖
-
coco格式数据集。
coco_dataset/ ├── annotations/ # 存储标注文件(JSON格式) │ ├── instances_train2017.json # 目标检测标注(训练集) │ ├── instances_val2017.json # 目标检测标注(验证集) │ ├── instances_test2017.json # 目标检测标注(验证集) ├── train2017/ # 训练集图像文件夹 │ ├── 000000000001.jpg │ ├── 000000000002.jpg │ ├── ... ├── val2017/ # 验证集图像文件夹 │ ├── 000000000003.jpg │ ├── 000000000004.jpg │ ├── ... ├── test2017/ # 测试集图像文件夹(可选) │ ├── 000000000005.jpg │ ├── 000000000006.jpg │ ├──...
-
MMdetection版本:v3.3.0
-
MMdetection环境安装 链接
1.将代码库的coco数据集类别改为个人数据集类别
- 文件1路径:
mmdet/evaluation/functional/class_names.py
def coco_classes() -> list:
"""Class names of COCO."""
return [
'Purslane', 'Crabgrass', 'FatHen', 'other_weeds'
]
- 文件2路径:
mmdet/datasets/coco.py
class CocoDataset(BaseDetDataset):
"""Dataset for COCO."""
METAINFO = {
'classes':
('Purslane', 'Crabgrass', 'FatHen', 'other_weeds'),
# palette is a list of color tuples, which is used for visualization.
- 在当前项目根目录运行
setup.py
重新编译,加载新的coco类别python setup.py install build
2.配置训练参数
- 使用训练脚本,生成参数配置文件,指定模型与训练参数存放路径
python tools/train.py configs/conditional_detr/conditional-detr_r50_8xb2-50e_coco.py --work-dir work_dirs/co_detr
-
配置训练参数
data_root = 'data/coco/' #数据集路径 checkpoint=dict(interval=50, type='CheckpointHook'),#模型几轮一存 num_classes=4, train_cfg = dict(max_epochs=1000, type='EpochBasedTrainLoop', val_interval=10)#总训练轮数和评估频率 optimizer=dict(lr=0.001, type='AdamW', weight_decay=0.0001)#lr学习率0.001
-
训练命令,注意修改配置文件路径
python tools/train.py work_dirs/co_detr/conditional-detr_r50_8xb2-50e_coco.py --work-dir work_dirs/co_detr
3. 性能评估
3.1可视化评估命令例
python tools/test.py work_dirs/co_detr/conditional-detr_r50_8xb2-50e_coco.py work_dirs/co_detr/epoch_1000.pth --show
3.2单类别ap评估
-
修改
mmdet/evaluation/metrics/coco_metric.py
中的cocoMetric
类classwise: bool = True,
-
调整iou阈值并评估
iou_thrs = np.linspace( .5, 0.95, int(np.round((0.95 - .5) / .05)) + 1, endpoint=True) #.5改成0.3
-
再运行评估命令就会打印各个类别的ap
python tools/test.py work_dirs/co_detr/conditional-detr_r50_8xb2-50e_coco.py work_dirs/co_detr/epoch_1000.pth --out work_dirs/co_detr/eval_result/result.pkl
3.3模型复杂度评估命令 例
- 评估指标
flops
Params
python tools/analysis_tools/get_flops.py work_dirs/co_detr/conditional-detr_r50_8xb2-50e_coco.py