mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用

参考:
https://github.com/mindspore-lab/mindyolo

使用案例:
https://github.com/mindspore-lab/mindyolo/blob/master/GETTING_STARTED.md

安装:

pip install mindyolo

特别注意opencv-python、opencv-python-headless版本问题,不然会遇到ImportError: libGL.so.1: cannot open shared object file: No such file or directory等问题
mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第1张图片

推理代码

1)下载项目

git clone https://github.com/mindspore-lab/mindyolo

2)运行测试
模型权重下载:https://github.com/mindspore-lab/mindyolo/blob/master/MODEL_ZOO.md
mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第2张图片

测试这种命令形式用华为昇腾npu推理速度不算快

cd mindyolo

# Run with Ascend (By default)华为昇腾npu推理
python demo/predict.py --config ./configs/yolov7/yolov7.yaml --weight=/path_to_ckpt/WEIGHT.ckpt --image_path /path_to_image/IMAGE.jpg

# Run with GPU
python demo/predict.py --config ./configs/yolov7/yolov7.yaml --weight=/path_to_ckpt/WEIGHT.ckpt --image_path /path_to_image/IMAGE.jpg --device_target=GPU

## 我这里用的yolov7-tiny测试
python demo/predict.py --config ./configs/yolov7/yolov7-tiny.yaml --weight=../yolov7-tiny_300e_mAP375-d8972c94.ckpt --image_path  ../17people.jpg --device_target=CPU

mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第3张图片

推理图片结果保存在runs_infer/*/detect_results下

训练代码

参考:https://github.com/mindspore-lab/mindyolo/blob/master/GETTING_STARTED.md

1)下载项目

git clone https://github.com/mindspore-lab/mindyolo

2)数据集制作或者下载第三方,制作数据集对应yaml;mindyolo暂时只支持yolo数据集格式,voc、coco暂时不大支持

数据下载:https://universe.roboflow.com/hero-d6kgf/yolov5-fall-detection/dataset/1

mindyolo yaml格式参考:

data:
    dataset_name: gesture
    train_set: /hom***/yolo/Rock_paper_scissor_test/train/images
    val_set: /home/***/yolo/Rock_paper_scissor_test/valid/images
    test_set: /home/***/yolo/Rock_paper_scissor_test/test/images

    nc: 3
    names: ['Paper', 'Rock', 'Scissor']

yolov8n1.yaml

__BASE__: [
  '/home/***/yolo/Rock_paper_scissor_test/data.yaml',
  './hyp.scratch.low.yaml',
  './yolov8-base.yaml'
]

network:
  depth_multiple: 0.33  # scales module repeats
  width_multiple: 0.25  # scales convolution channels
  max_channels: 1024

其他定义参数可以yolov8-base.yaml、hyp.scratch.low.yaml里更改,比如nc、names 训练的目标分类数量,或者训练train.py 传入

逐级覆盖,所有可配置参数满足,命令行直接传入 > yolov8n.yaml > yolov8-base.yaml > hyp.yaml > coco.yaml

mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第4张图片

3)训练

#单卡 也可以是on 1 NPU/GPU/CPU:
python train.py --config ./configs/yolov8/yolov8n1.yaml --device_target Ascend

##多卡
mpirun --allow-run-as-root -n 2 python train.py --config ./configs/yolov7/yolov7.yaml  --is_parallel True

mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第5张图片

mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第6张图片

训练报错:

解决方法:
mindyolo/data/dataset.py Line 198 self.imgIds =
[int(Path(im_file).stem) for im_file in self.img_files]
由于采用自定义数据集,图片并非按照 int value.jpg 的格式保存,故改为 self.imgIds = [index for
index in range(len(self.img_files))]

mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第7张图片

5)训练好的模型预测:

python demo/predict.py --config ./configs/yolov8/yolov8n1.yaml --weight ./runs/2023.11.14-18.58.18/weights/yolov8n1-100_82.ckpt  --image_path ../1a.jpeg 

预测结果在runs_infer/下
mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第8张图片

mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第9张图片

华为OBS文件传输使用

下载客服端然后上传桶内:
mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第10张图片

然后拷贝桶内内容到云服务器里:
参考:https://support.huaweicloud.com/moxing-devg-modelarts/modelarts_11_0005.html#section5
mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第11张图片
mindspore mindyolo目标检测华为昇腾上推理使用、训练;华为OBS文件传输使用_第12张图片

你可能感兴趣的:(图像CV,目标检测,人工智能,计算机视觉)