Train
тренируйте свой собственный набор данных
python tools/train.py configs/xxxx.py
Файл .pth, сгенерированный после обучения,Обучите модель
Test
Протестируйте собственный набор данных
--out 带上out文件的路径,生成.pkl文件,pkl文件以数组形式保存了检测框的四个信息
--eval 需要评估的项目,包括:*proposal_fast, proposal, bbox, segm, keypoints*(debug:mAP评估error),评估的数据会展示在测试行为结束后展示在小黑窗
--show 可视化展示,包括类别和检测框
python tools/test.py configs/xxxx.py work_dirs/xxxx/epoch_xx.pth --out xxx.pkl
--show-dir xxx路径 将可视化结果保存在指定路径
python tools/test.py configs/xxxx.py work_dirs/xxxx/epoch_xx.pth --show-dir ./result
Об отображении содержимого файла .pkl: blog.CSDN.net/WeChat_3945…
многоклассное обучение
Обычно мы обучаем класс целей на платформе mmdetection.В процессе обучения мы можем проверить точность цели при порогах 0,5, 0,75 и т. д. и общий mAP. Однако, когда вы запускаете цели с несколькими классами, как вы видите точность одного класса, когда несколько целей обучаются вместе? Настройка по умолчанию для mmdetection — печать общего уровня точности при одновременном обучении нескольких классов целей.Если вы хотите просмотреть точность одного класса во время обучения и тестирования, вы можете сделать следующее (предпосылкой для следующих операций является что он был обучен, и соответствующий мультикласс. Файл конфигурации обучения мультикласса изменен):
существуетmmdetection/mmdet/datasets/coco.py
Нашел следующий код в:
def evaluate(self,
results,
metric='bbox',
logger=None,
jsonfile_prefix=None,
classwise=False,
proposal_nums=(100, 300, 1000),
iou_thrs=None,
metric_items=None):
修改classwise=False为classwise=True
, после модификации будет добавлена однотипная таблица данных AP
Определенная пороговая оценка
Однако коэффициент точности одного класса на приведенном выше рисунке не является хорошим показателем оценки.Это среднее значение, принимаемое AP на каждом этапе, а результат комплексной оценки берется в интервале от 0,5 до 0,95.Нам необходимо дополнительно ограничить его определенным значением. Это более важно при пороге, например, уровень точности, когда порог установлен на 0,5, тогда учитываются только результаты ниже порога 0,5.修改iou_thrs=None为iou_thrs=[0.5]
Тест на одном изображении
#coding=utf-8
from mmdet.apis import init_detector
from mmdet.apis import inference_detector
# 由于mmdetection版本更新导致show_result的使用方法为model.show_result
# from mmdet.apis import show_result
# 模型配置文件
config_file = '../../configs/faster_rcnn_r101_fpn_1x.py'
# 预训练模型文件
checkpoint_file = '../../models/faster_rcnn_r101_fpn_1x_20181129-d1468807.pth'
# 通过模型配置文件与预训练文件构建模型
model = init_detector(config_file, checkpoint_file, device='cuda:0')
# 测试单张图片并进行展示
img = 'test1.jpg'
result = inference_detector(model, img)
model.show_result(img, result, model.CLASSES)