MMDetection 支持在 Linux,Windows 和 macOS 上运行。它需要 Python 3.7 以上,CUDA 9.2 以上和 PyTorch 1.8 及其以上。
安装流程
step1:使用 MIM 安装 MMEngine 和 MMCV
pip install -U openmim
mim install mmengine
mim install "mmcv>=2.0.0"
step2:安装 MMDetection
方案1:如果你开发并直接运行 mmdet,从源码安装它
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -v -e .
# "-v" 指详细说明,或更多的输出
# "-e" 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效,从而无需重新安装。
方案 2:如果你将 mmdet 作为依赖或第三方 Python 包,使用 MIM 安装:
mim install mmdet
训练流程
step1:将手势数据集转成coco格式
转换脚本为limbify/scripts/auto_box_label/hand_to_coco_format.py
python scripts/auto_box_label/hand_to_coco_format.py -i <data_root>
step2:修改配置文件
主要改模型检测的类别和数据路径,以yolox的配置文件为例:
#修改图片尺寸
img_scale = (640, 480) # width, height
#修改检测头检测类别数
bbox_head=dict(
type='YOLOXHead',
num_classes=2,
...)
#修改data_root和添加classes
data_root = '/home/gan/hand_data/hand_data_train/'
dataset_type = 'CocoDataset'
classes = ('L', 'R')
#修改dataset和dataloader
train_dataset = dict(
# use MultiImageMixDataset wrapper to support mosaic and mixup
type='MultiImageMixDataset',
dataset=dict(
type=dataset_type,
metainfo=dict(classes=classes),
data_root=data_root,
ann_file='/home/gan/hand_data/hand_data_train/coco_mmdet.json',
data_prefix=dict(img='/home/gan/hand_data/hand_data_train/'),
...)
val_dataloader = dict(
...
dataset=dict(
type=dataset_type,
metainfo=dict(classes=classes),
data_root=data_root,
ann_file='/home/gan/hand_data/hand_data_test/coco_mmdet.json',
data_prefix=dict(img='/home/gan/hand_data/hand_data_test/'),
test_mode=True,
pipeline=test_pipeline,
backend_args=backend_args))
val_evaluator = dict(
type='CocoMetric',
ann_file='/home/gan/hand_data/hand_data_test/coco_mmdet.json',
metric='bbox',
backend_args=backend_args)
step3:运行train.py训练模型
python tools/train.py yolox_s_8xb8-300e_coco_hand.py