/*--------------------CSS部分-------------------*/ /*--------------------JS部分-------------------*/

OPenMMlab学习指导文档

一、运行环境

1.1 cuda环境

备注:cuda环境为个人学习和日常模型训练环境

1.登录环境

IP地址:10.201..

用户名:*******

密码:******

要用此用户名和密码!!

建议:自己创建自己的用户名和密码

2.登录conda环境

执行指令

conda activate open-mmlab

查看环境

pip list

则看到已安装的环境。

1.2 寒武纪环境

1.登录环境

IP地址:10.201..

用户名:*******

密码:********

2.登录openmmlab容器

打开容器

docker start openmmlab_main

进入容器

docker exec -it openmmlab_main bash

查看环境

二、初步运行MMyolo

在cuda和mlu环境中,后续所有操作一样,故不再分开单独讲解,掌握在cuda的操作,则mlu也掌握。

在**登录****账号后,默认进入到路径:

/home/workspace/extdata/share/******

然后进入到OPenMMlab的工作目录下:

cd OpenMMLab

再进入到mmyolo环境下:

cd mmyolo-main

执行训练指令:

 python ./tools/train.py ./configs/yolov5/yolov5_s-v61_fast_1xb12-40e_cat.py

当出现日志文件:

则训练成功。

在模型训练时,建议好好看看mmyolo-main\docs\zh_cn\get_started\15_minutes_object_detection.md文档

2.1 脚本讲解

在进行算法选择时,目前框架中针对各个算法有基本的配置文件,当确定选择应用的算法后,直接创建一个配置文件,然后继承即可,比如yolov5_s-v61_fast_1xb12-40e_cat.py,则是应用了yolov5算法,使用coco的数据格式,在配置文件中继承的是:base = 'yolov5_s-v61_syncbn_fast_8xb16-300e_coco.py'(此处的相对路径是相对于调用的配置文件的相对路径,即yolov5_s-v61_fast_1xb12-40e_cat.py当前所在目录的相对路径)

后续在针对某一个项目或者模型,则是一个配置文件,类似yolov5_s-v61_fast_1xb12-40e_cat.py,里面详细的记载了模型的结构、数据详情、优化策略等,当调试算法或者更改数据时,修改此配置文件即可。

1、数据配置

在实际项目中,针对局点问题,不同项目的数据集不同,而使用的检测算法项目,也许此时修改的数据目录即可,在直接在配置文件中修改:

data_root = './data/cat/'  #此处的相对路径是相对于执行程序的路径。比如是在mmyolo-main目录下执行,则是在此目录下的相对路径路径
class_name = ('cat', )
num_classes = len(class_name)

多个公共数据集,包括 COCOPascal VOCCityscapes其他更多数据集

如果想用自己的数据集,格式要遵循以上数据集标定的格式。如果想多了解点数据的详情,请看文档:mmdetection-main\docs\zh_cn\user_guides\dataset_prepare.md。注意此处是mmdetect的指导文档。如果要分析自己的数据或者转化自己的数据,工程提供了详细的公工具,具体的指导文档为:mmyolo-main\docs\zh_cn\useful_tools下的dataset_ananlysis/dataset_converters/download_dataset等等。

2、模型算法配置

在选择完算法后,继承的配置文件,数据路径同样配置完成,则是针对当前数据的一些常规的配置了。比如:

max_epochs = 40   #最大迭代次数
train_batch_size_per_gpu = 12  #batchsize
train_num_workers = 4       #线程数

load_from = './premodel/yolov5_s-v61_syncbn_fast_8xb16-300e_coco_20220918_084700-86e02187.pth'  # 预训练模型路径

model = dict(
    backbone=dict(frozen_stages=4),   #冻结模型的层数,微调
    bbox_head=dict(
        head_module=dict(num_classes=num_classes),
        prior_generator=dict(base_sizes=anchors)))
#这些一般也可不用动
train_dataloader = dict(
    batch_size=train_batch_size_per_gpu,
    num_workers=train_num_workers,
    dataset=dict(
        data_root=data_root,
        metainfo=metainfo,
        ann_file='annotations/trainval.json', #根据自己的数据集目录形式修改
        data_prefix=dict(img='images/')))

val_dataloader = dict(
    dataset=dict(
        metainfo=metainfo,
        data_root=data_root,
        ann_file='annotations/test.json',
        data_prefix=dict(img='images/')))

test_dataloader = val_dataloader

_base_.optim_wrapper.optimizer.batch_size_per_gpu = train_batch_size_per_gpu

val_evaluator = dict(ann_file=data_root + 'annotations/test.json')
test_evaluator = val_evaluator

配置文件的详情请见:mmyolo-main\docs\zh_cn\tutorials\config.md

三、实操掌握mmyolo

在掌握上面的基本操作后,进行实操加深理解。

3.1 在当前的基础上,用自己的数据进行训练

1、将自己的标定数据转化为指定格式的,比如coco、或者 Pascal VOC形式的,在tools中有数据转化脚本

2、在配置文件中修改训练、验证数据集的根目录

3、启动训练

3.2 在3.1基础上更该为yolov6/7等算法,尝试如何切换算法

1、新创建配置文件,继承yolov6/7等算法

2、修改数据集目录

3、修改常见的训练参数

3.3 指标测试或者deploy的操作

将15_minutes_object_detection.md的操作部署文档执行一遍即可。

posted @ 2023-10-23 17:32  bldong  阅读(162)  评论(0编辑  收藏  举报