本篇主要分享树莓派5B+AI_KIT基于hailo模块转换重新训练的yolov8、yolov10模型(也即pt格式的模型转为hef格式的模型)过程中存在的坑和需要用到的步骤,关于训练和部署部分不做详细展开
hailo模块一般只能在Linux系统进行,本篇主要以Ubuntu22.04的系统展开。
这里需要选择两种路线,第一种是虚拟机,第二种是双系统。
虚拟机的配置参考以下博客:
windows下有nvidia-gpu服务的虚拟机wsl配置参考以下视频:
[人工智能加速]Windows下linux虚拟机gpu显卡虚拟化_哔哩哔哩_bilibili
双系统的配置参考以下视频系列:
有nvidia显卡且选用双系统配置的伙伴可以参考我的另外一篇博客配置nvidia服务:Ubuntu22.04安装cuda、cudnn、pytorch、tensorflow一条龙操作-CSDN博客
没有nvidia显卡或者选用虚拟机(虚拟机很难设置GPU连接,一般不考虑,可以连接gpu服务的wsl虚拟机除外)的伙伴直接安装cpu版本的pytorch和tensorflow即可。
参考我的另外一篇博客:YOLO简单实用-CSDN博客
值得注意的是,从onnx格式转为hef格式需要onnx的版本为1.14.0,因此在训练模型的环境下运行以下命令:
在完成训练以后,使用以下命令将yolo模型转为onnx格式:
其中imgsz为自己训练时的图像输入大小,通常为640,如果训练时更改了这里也要随之更改。
进入hailo官网进行注册:
注册登陆以后选择Software Download
下载dataflow
下载model_zoo
将下载得到的两个whl文件传到ubuntu系统中。
由于下载过程在没有设置代理的情况下会比较慢,也可以通过我的百度网盘分享获得:
通过网盘分享的文件:hailo_packages
链接: https://pan.baidu.com/s/198HN2xndwyymhEOqveADhA 提取码: evhk
--来自百度网盘超级会员v5的分享
在ubuntu系统中完成步骤一后,复制已有pytorch和tensorflow的main环境并创建新的环境:
激活环境:
安装之前要提前安装会报错的库:
安装dataflow和model_zoo:
验证安装:
在ubuntu系统中获取hailo_model_zoo的github文件:
将hailo_model_zoo/hailo_model_zoo复制到python环境的site-packages文件夹下(一般在~/.conda/envs/hailo/lib/python3.10/site-packages或者~/anaconda3/envs/hailo/lib/python3.10/site-packages),选择合并与替换所有重复的文件和文件夹
按照simple_YOLO完成标签标注和训练的小伙伴可以运行步骤二下载的simple_YOLO项目中的程序,从voc(xml)格式的标签开始构建转换hailo所需要用到的coco数据格式:
其中mytrain为训练时输入的文件名,如果训练时更改了这里也要随之更改。
此时在训练文件夹下会生成class.json,作为后续使用hailo8l的detection程序需要用到的json文件。
如果只有yolo官方的txt标签格式的小伙伴,可以按以下目录放置数据集:
随后运行以下程序:
其中class.yaml为类别顺序对应文件,参考yolo官方给出的格式,/path/to改为class.yaml文件所在路径:
等待程序运行完毕以后在data/datasets文件夹下会有models_files文件夹。
将这个文件夹按以下命令移动到hailo默认数据位置。(如果是使用其他机器进行训练和运行转换程序的,要先将models_files文件夹传到执行模型转换的ubuntu系统中)
其中/path/to改为models_files文件夹原来所在的路径
此时coco_make文件夹会生成class.json,作为后续使用hailo8l的detection程序需要用到的json文件。
为了能将yolov8和yolov10的模型转换为hef格式,需要对一些库的版本进行调整:
输入以下命令进行转换:
- yolov8n :模型训练的参照,可以改为yolov10n
- --ckpt=best.onnx :你自己的best.pt转化的.onnx模型
- --hw-arch hailo8l :你购买的ai_kit硬件型号
- --classes 30 :模型检测类别的数量
- 这里可以添加参数--calib-path weights/test/images/ :校准的图像路径,但是前文已经做出对应的数据集并放到默认的路径,这里不需要额外指定
模型参照有以下模型可以选择:
这个过程需要时间较长请耐心等待。值得注意的是,前面制作数据集的时候如果图片数量小于1024张,则转换过程中不会根据数据集对模型进行优化。
由此得到了需要的HEF模型文件。
参考树莓派官方:AI Kit - Raspberry Pi Documentation
这里做简要翻译
安装系统需要的库:
用 sudo reboot 重启树莓派
安装hailo需要的库:
用 sudo reboot 重启树莓派
检查安装是否完成:
步骤与hailo官方资料一样:
hailo-rpi5-examples/doc/basic-pipelines.md at main · hailo-ai/hailo-rpi5-examples
这里做简要翻译
在树莓派5B上克隆代码库:
进入项目路径:
激活环境:
安装依赖:
其中rapidjson-dev库一般不会自动安装,若未安装请用以下命令安装:
下载资源:
编译程序:
将步骤三得到的class.json和hef模型文件传到树莓派,激活环境后运行检测程序: