原始的量化转换工具,需要按照文档在终端输入各种命令以完成模型量化转换,同时可能还需要修改部分代码才能查看推理效果,门槛较高,稍有不慎就是满屏报错,小白使用起来只能说头皮发麻! 为此,我们开发了新一代模型量化转换工具,具有简洁的UI界面,操作简单,最短只需五分钟即可完成模型量化转换!同时,工具包含数据标注功能以及模型训练功能,进一步降低深度学习的使用门槛,小白也可快速上手!

1. 环境配置(请严格按照以下顺序进行)
1.1 docker 下载安装
1. 在PC端下载安装Docker,具体教程请访问官网链接
2. 安装完成后需要打开Docker Desktop,并且确保Docker Desktop能够正常使用。打开Docker若出现windows hypervisor is not present,参考该链接
#在打开Docker Desktop后,打开PowerShell,输入以下命令,若没有报错信息,说明docker能够正常使用
docker image list

1.2 镜像下载与容器创建
1.2.1 Window
下载镜像并创建启动容器(可选择运行exe程序或运行脚本,exe程序见文末附件,请确保C盘下至少有8G磁盘空间用于下载临时文件)
注意:启动程序或运行脚本前请确保步骤1.1已完成,需要打开Docker并且可正常使用,否则程序会运行失败!!!!!!
Powershell脚本
//获取镜像 (7G左右的压缩包)
Invoke-WebRequest -Uri ftp://vrftp.horizon.ai/AIoT/convert_toolchain_1.0.tar.gz -OutFile convert_toolchain_1.0.tar.gz
//文件校验(eae49600ddc78572e9aecdac425553ed)
Get-FileHash -Path convert_toolchain_1.0.tar.gz -Algorithm MD5
//加载镜像(会比较久)
docker load -i convert_toolchain_1.0.tar.gz
//创建并启动容器
docker run --name convert_toolchain_v1 -p 8080:5000 -p 8081:5001 -it --entrypoint="/usr/local/bin/start_convert_toolchain.sh" convert_toolchain:v1.0
//启动容器
docker start convert_toolchain_v1
//关闭容器
docker stop convert_toolchain_v1
1.2.2 Linux
shell脚本
##确保docker能够正常使用,输入后打印类似信息(Docker version 24.0.7, build afdd53b)
docker --version
##下载镜像(md5sum:eae49600ddc78572e9aecdac425553ed)
wget -c ftp://vrftp.horizon.ai/AIoT/convert_toolchain_1.0.tar.gz
##加载docker镜像
docker load -i convert_toolchain_1.0.tar.gz(在convert_toolchain_.tar.gz的存放路径下执行,此步骤时间较长,请耐心等待)
##创建并启动容器(容器未创建)
docker run --name convert_toolchain_v1 -p 8080:5000 -p 8081:5001 -it --entrypoint="/usr/local/bin/start_convert_toolchain.sh" convert_toolchain:v1.0
##启动容器(容器已创建)
docker start convert_toolchain_v1
##关闭容器
docker stop convert_toolchain_v1
1.3 启动AI工具链
打开Docker Desktop,选择Containers,运行容器(convert_toolchain_v1)即可,关闭同理

若没有Docker界面,可在终端运行以下命令
//启动容器
docker start convert_toolchain_v1
//关闭容器
docker stop convert_toolchain_v1
启动容器之后打开浏览器访问http://localhost:8081,即可使用AI工具链
2.量化转换工具链使用(已有模型)
接下来就可以体验我们新一代的量化转换工具链啦!量化转换过程只有三步,分别是模型选择,模型量化以及模型推理,简单易上手
2.1 模型选择
设置已有模型,然后仅需要选择模型类型(目前支持Resnet18(赛道检测)与YOLOv5s两种模型),配置模型大小以及格式,并提供模型文件和校准图片
操作流程及页面如下:


2.2 模型量化
设置量化转换参数,一键即可完成模型量化转换,同时提供默认的量化转换参数,可直接使用! 一键转换功能包括:模型检查->校准数据准备->模型编译

2.3 模型推理
上传图片检验模型量化的效果,并提供模型下载功能。再也不用手动修改代码了!
- 模型检测:使用指定模型进行推理,并把推理结果输出到页面
- 下载bin模型:将bin模型下载到本地,bin文件可部署到RDK X3上用于推理(文末附件提供bin模型)
- 下载所有模型:将量化过程中生成所有的模型下载到本地(包括onnx和bin)
- 清除所有缓存文件:将之前包括本次上传的文件以及量化过程中产生的文件全部清除,避免占用过多的内存

3. 量化转换工具链使用(没有模型)
3.1 数据标注
该工具提供数据标注功能,可通过点击页面的数据标注平台跳转,也可在浏览器访问http://localhost:8080/。本标注功能基于Label Studio开源项目开发,支持各类形式的标注,同时支持Resnet18(赛道检测)、YOLOv5的数据集格式导出,导出数据集可直接用于训练!
3.1.1 创建项目

3.1.2项目配置
1. 配置项目名称,项目描述等

2.导入图片数据(文末附件提供图片数据集)

3.选择任务类型(赛道检测任务选择KeyPoint Labeling,yolov5选择Object Detection with Bounding Boxes)

4.选择任务类型之后,将原来的label清除,Add labe names配置标注信息,配置完成之后点击保存

3.1.3 数据标注
1. 数据类型选择为img,可以看到每张图片

2. 点击Label All Tasks后进入标注页面,若点击后出现Before you can annotate the data, set up labeling configuration,说明创建任务的时候没有进行labeling setup,此时点击Go to setup进行设置

3. 点击Browse Templates后选择任务类型以及配置标注信息

4. 点击race_center标签后标注,标注完成后需点击提交按钮

3.1.4 导出数据集
所有数据标注完成之后,点击导出按钮,选择格式(赛道检测选择Resnet18 Race,障碍物检测选择YOLOV5),导出后的数据集可直接用于训练过程

也可自行使用熟悉的标注工具进行标注,但注意最后用于训练的数据集有一定的格式要求!
3.2 模型训练
该工具还提供模型训练的功能!首先,在模型选择阶段设置没有模型,然后选择模型类型,配置模型参数与训练参数后即可进行模型训练,右侧黑框会实时打印相关log。目前仅支持使用CPU进行训练,虽然速度慢,但用起来非常简单!不过也鼓励大家自己搭建环境使用GPU训练!具体可参考《YOLOV5 在地平线RDK X3的高效部署》
操作流程及页面如下:


3.3 模型量化+模型推理
模型训练完成后,其余步骤与已有模型的操作相同,具体请参考2.2模型量化与2.3模型推理
load_web_windows.EXE image_dataset.rar race_track_detection.rar