本科阶段最后一次竞赛Vlog——2024年智能车大赛智慧医疗组准备全过程——4Bin模型转化过程
大家好,经过前几期的介绍,对于X3派上的Yolo模型部署,我们已经可以进行到最后一步了
今天给大家带来,转模型的关键步骤,其实也就是对于地平线社区大佬们博客的核心总结,也把有一些难理解的步骤,用最简单的话语进行概括下
1.打开环境
首先进入环境 horizon_bpu 是我的环境名字
conda activate horizon_bpu
2.模型的验证
我们先进入官方的包(这一个步骤,在上面)
yolov5s_v2.0/04_detection/03_yolov5s/mapper/
使用 hb_mapper checker
工具进行模型验证,模型验证需要利用hb_mapper checker
后面跟一堆参数来对模型进行配置。
--model-type
:我们这里模型onnx,所以填onnx
--march
:旭日3派只能填bernoulli2
--proto
:若模型为caffe,则填入caffe所需的prototxt文件。onnx模型就不用写这个参数--model
:onnx模型就是xx.onnx--input-shape
:(该参数可选,不写的话程序会自动识别参数,如果指定以指定为主)
以我们的为例子,命令如下:
hb_mapper checker \
--model-type onnx \
--march bernoulli2 \
--model best.onnx \
2.1 修改01_check_X3.sh
当然如果你按照前面的配置完成模型只需要修改01_check_X3.sh 里面的模型目录就行
2.2 运行01_check_X3.sh
运行如图就行(我这里忘记截图了,找一个别人的看看)
3. 校准模型
3.1建立图像文件夹
在如下目录建立一个fire文件存储你的图片
当然你可以直接把你的训练集放进来就行
3.2修改02_preprocess.sh
把下面的路径改到你的fire
对应到你的就是把你的图片数据集放到这个地方
3.3运行02_preprocess.sh
运行结果如下不报错就行
4.转化模型
4 编辑配置文件
按照下面内容修改模型目录和输出名字
运行03_build_X3.sh
如图这样就转化成功了
在output文件夹就有bin文件了
5.板子运行
进入官方镜像的以下目录
5.1修改coco_class_name
5.2修改test_yolov5.py
5.3修改 postprocess.py
这个地方呢,为什么是会这个数据呢,应该是与672有关
我呢还没研究到这一步,目前只是记录下我当时比赛过程中,遇到的
其实哈,我也没试试这个改成别的能用不,不过我推断就得这个数据,不然模型输出大小与后续不匹配,mat乘积应该是有问题的
后续我研究研究大佬的文章,给大家出个核心概括版
5.4 运行
6总结与未来展望
到目前为止,已经完成了对于模型的转化,然后对于官方的工具包,也进行了运行
出现5.4的结果就证明,模型的使用部署没问题
下面我将给大家带来,如何将模型应用到Websocket,并且和大家初步一起记录下我在01到手测试的障碍物识别页面展示