# YOLOv5-Pytorch for ModelArts
本仓库是基于[ultralytics/yolov5](https://github.com/ultralytics/yolov5)实现的YOLOv5。你可以方便地在自己的数据集上训练模型,并将模型部署为ModelArts服务。
## 1. 环境配置
* Windows
* python 3.7
* torch>=1.7.0
运行如下命令安装所有依赖:
```bash
pip install -r requirements.txt
```
## 2. 准备工作
### 2.1 数据集
以华为云人工智能大赛数据集为例,首先下载[数据集](https://marketplace.huaweicloud.com/markets/aihub/usercenter/?activeTab=MyDownload&id=b3879ae9-dc2a-4b8c-bfaf-428ecf2f1f9e#dataset)到OBS中,然后使用obsutil将数据集下载至本地。或者可以从百度云下载[Speedstar数据集(验证码:yolo)](https://pan.baidu.com/s/1rEd5VljAcuTPE7E9QOGsjA)。
下载完成后,将数据集放置于`data/`文件夹下,并修改文件夹名称为VOC标准(`Annotations`存放`.xml`,`JPEGImages`存放`.jpg`),至此,你的目录结构应该为:
```
yolov5
├───data
│ └───Your_dataset
│ ├───Annotations
│ │ ├──1.xml
│ │ └──...
│ ├───JPEGImages
│ │ ├──1.jpg
│ │ └──...
```
接着,进行如下步骤,完成数据集的配置:
* 更新`data/dataset.yaml`配置文件中的`"path"`为数据集相对于train.py的路径,更新 `"nc"`,`"names"` 为数据集中类别总数以及类别名称。你也可以修改`"split_percent"`来修改训练集和测试集的比例。
* 划分数据集为测试集和训练集:运行`data/scripts/01_gen_img_index_file.py`,之后你会得到按照`"split_percent"`划分的数据集和测试集列表文件`data/Your_dataset/train.txt(test.txt)`。
* 将 `VOC - *.xml` 格式标签转换为 `YOLO - *.txt` 格式 (img x y w h):运行 `data/scripts/02_voc_to_yolo.py`,生成的YOLO格式标签文件保存在`data/Your_dataset/YOLOAnnos/`下。
* 为每个类别生成标签文件:运行 `data/scripts/03_gen_cls_rec.py`,生成的类别标签保存于 `your_dataset/ClassAnnos/` 中,便于计算APs时读取。
另外,若需要`COCO`格式的数据集,可以运行`voc_to_coco.py`。
### 2.2 下载权重文件
下载最新的预训练权重文件: https://github.com/ultralytics/yolov5/releases
或者运行如下命令下载模型
```
$ bash path/to/download_weights.sh
```
将权重放置于`train.py`同级目录下。
## 3. 训练
运行如下指令开始训练:
```
python -u train.py
```
查看可选参数:
```
python train.py -h
```
在训练过程中,模型的副本将会默认保存在`runs/train/exp/weights/`下,支持断点继续训练:
```
python -u train.py --weights your_backup.pth --resume
```
## 4. 模型评估
### 4.1 评估设置
训练完成后,将`best.pt`复制到`modelarts/model/weights/`文件夹下,并修改`yolov5_config.py`文件中的`"WEIGHT"`,`"IMG_SIZE"`和
`"EVAL_DATASET_PATH"`。
### 4.2 计算mAP
运行:
```
cd ./modelarts/model/
python evaluate.py
```
运行结束后会输出模型对于测试集的`mAP@0.5 / mAP@0.5:0.95`。
### 4.3 可视化预测效果
运行`predict.py`,可以一张一张查看预测效果。
![demo](https://gitee.com/junyi-duan/speedstar/raw/master/docs/predict.gif)
## 5. ModelArts部署
本地运行`customize_service.py`,如果可以正确输出`test.jpg`中的边框,说明配置正确。接着将`modelarts`文件夹整体上传至OBS中,并选择从该文件夹构建模型。
## 6. 导出ONNX模型
### 6.1 安装依赖
安装依赖,为了加快下载速度,可以使用指定国内源:
```
pip install onnx>=1.8.0 onnxruntime>=1.5.2 onnxoptimizer>=0.1.2 onnx-simplifier>=0.3.6 -i https://pypi.tuna.tsinghua.edu.cn/simple
```
### 6.2 导出
运行:
```
python export.py --weights path\to\weight.pt --img 1024 --batch 1 --dynamic --simplify
```
其中:
```
--weigths # pt文件路径,ONNX模型输出路径
--img 1024 # 模型支持的图片尺寸
--dynamic # 支持批处理
--simplify # 自动简化模型
```
### 6.3 查看模型
建议安装 [Netron Viewer](https://github.com/lutzroeder/netron/releases/) 可视化模型。
![model](https://gitee.com/junyi-duan/speedstar/raw/master/docs/onnx_model_visual.png)
## 7 迁移为MindSpore模型
### 7.1 安装依赖
```
pip install mindspore==1.3.0 mindinsight==1.3.0
```
由于模型转换程序`mindconverter`一般只支持`linux`系统,若要在`windows`下使用,需要进行如下两个操作:
* 设置环境变量 `HOME`:可以在`path\to\mindinsight\mindconverter\__init__.py`文件中添加两行:
```
import os
os.environ['HOME'] = r'C:\Users\youname'
```
* 如果出现错误:`No module named 'fcntl'`,是因为 `fcntl` 是 `linux` 环境下特有的库,可以进入相关文件,将涉及`fcntl`的语句注释掉。
安装完成后可以运行`mindconverter -h`检查是否安装成功。
### 7.2 模型迁移
运行:
```
python .\onnx2mindspore.py --weights path\to\model.onnx
```
可选参数`--weights`为待转换ONNX模型路径,`--img_size`为图片尺寸(默认为640),`--output`为输出路径(默认为原模型路径)。
转换完成后,输出目录下生成如下文件:
- 模型定义脚本(后缀为`.py`)
- 权重ckpt文件(后缀为`.ckpt`)
- 迁移前后权重映射(后缀为`.json`)
- 转换报告(后缀为`.txt`)
### 7.3 模型训练
`mindspore\`文件夹下保存了迁移得到的相关文件,可以从迁移模型开始继续训练,训练配置存放与 `opt.yaml` 文件中。注意,训练要求安装`mindspore_gpu-1.3.0`版本。
运行:
```
python train_ms.py --option ./opt.yaml
```
### 7.4 模型测试
与第4节相同,本部分也提供了两种评估手段:计算`mAP`与可视化。首先将`.ckpt`权重文件放置于`weigths\`文件夹下,修改`yolov5_config.py`中的配置。
接着运行:
```
python predict.py # 可视化
# 或者
python evaluate.py # mAP
```
### 7.5 部署
本地运行`customize_service.py`,任意指定一张图片,如果可以正确输出边框,说明配置正确。接着将`MindSpore`文件夹整体上传至OBS中,并选择从该文件夹构建模型。
没有合适的资源?快使用搜索试试~ 我知道了~
2021第三届华为云人工智能大赛 · 无人车挑战杯目标检测代码【初赛&复赛第五】.zip
共147个文件
py:79个
yaml:46个
sh:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 66 浏览量
2023-09-25
14:20:02
上传
评论
收藏 64.78MB ZIP 举报
温馨提示
2021第三届华为云人工智能大赛 · 无人车挑战杯目标检测代码【初赛&复赛第五】.zip
资源推荐
资源详情
资源评论
收起资源包目录
2021第三届华为云人工智能大赛 · 无人车挑战杯目标检测代码【初赛&复赛第五】.zip (147个子文件)
yolov5s_datav3_1024.ckpt 27.13MB
Dockerfile 821B
predict.gif 2.64MB
.gitignore 4KB
.gitignore 43B
.gitignore 31B
test.jpg 338KB
config.json 3KB
config.json 2KB
README.md 6KB
README.md 2KB
onnx_model_visual.png 62KB
yolov5s.pt 14.11MB
yolov5s_datav3_1024.pt 13.79MB
yolov5s_datav3_640.pt 13.73MB
yolov5s.py 59KB
datasets.py 39KB
datasets.py 39KB
train_verbose.py 33KB
general.py 27KB
general.py 27KB
transforms.py 27KB
train.py 22KB
yolo_dataset.py 22KB
plots.py 19KB
plots.py 19KB
loss_ms.py 18KB
wandb_utils.py 18KB
val.py 18KB
visualize.py 17KB
visualize.py 17KB
common.py 16KB
common.py 16KB
yolo.py 13KB
yolo.py 13KB
metrics.py 13KB
metrics.py 13KB
torch_utils.py 13KB
torch_utils.py 13KB
dataset.py 12KB
augmentations.py 11KB
augmentations.py 11KB
detect.py 11KB
augmentations.py 10KB
loss.py 10KB
loss.py 10KB
train_ms.py 9KB
voc_eval.py 8KB
voc_eval.py 8KB
export.py 8KB
tools.py 7KB
evaluator.py 7KB
autoanchor.py 7KB
autoanchor.py 7KB
data_augment.py 7KB
tools.py 6KB
general.py 6KB
evaluate.py 6KB
hubconf.py 6KB
04_voc_to_coco.py 5KB
customize_service.py 5KB
experimental.py 5KB
experimental.py 5KB
tools.py 5KB
customize_service.py 5KB
activations.py 4KB
activations.py 4KB
google_utils.py 3KB
google_utils.py 3KB
voc2yolo.py 2KB
02_voc_to_yolo.py 2KB
loss.py 2KB
03_gen_cls_rec.py 2KB
onnx2mindspore.py 2KB
predict.py 2KB
splitdata.py 1KB
evaluate.py 1KB
general.py 1KB
resume.py 1KB
restapi.py 1KB
predict.py 974B
01_gen_img_index_file.py 940B
sweep.py 877B
log_dataset.py 870B
yolov5_config.py 837B
data_config.py 836B
yolov5_config.py 774B
example_request.py 299B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
userdata.sh 1KB
get_coco.sh 979B
mime.sh 780B
get_coco128.sh 618B
download_weights.sh 277B
requirements.txt 703B
共 147 条
- 1
- 2
资源评论
LeapMay
- 粉丝: 2w+
- 资源: 2304
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功