YOLOv5 目标检测
该测试程序会推理 YOLOv5 模型实现目标检测, 结果仅以打印的形式输出。
PC 端交叉编译 YOLO 程序
Duo256M YOLOv5 代码位置:sample_yolov5.cpp
编译方法
参考上一章节 简介 中的方法编译示例程序,编译完成后,会在 sample/cvi_yolo/ 目录下生成我们需要的 sample_yolov5 程序。
获取 cvimodel
你可以直接下载预编译好的 yolov5s int8 对称量化 cvimodel 模型,亦可按照模型编译手动转换模型。
下载预编译好的 cvimodel
- Duo256M
# int8 对称模型
wget https://github.com/milkv-duo/cvitek-tdl-sdk-sg200x/raw/main/cvimodel/yolov5_cv181x_int8_sym.cvimodel
模型编译
导出 yolov5s.onnx 模型
-
首先载 yolov5 官方仓库代码,地址如下: ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
git clone https://github.com/ultralytics/yolov5.git -
配置工作环境
cd yolov5
pip3 install -r requirements.txt
pip3 install onnx -
获取 yolov5 的 .pt 格式的模型,例如下载 yolov5s 模型的地址:yolov5s
wget https://github.com/ultralytics/yolov5/releases/download/v7.0/yolov5s.pt -
将 cvitek-tdl-sdk-sg200x/sample/yolo_export/yolov5_export.py 复制到 yolov5 仓库目录下
利用 yolov5_export.py 替换 forward 函数让 yolov5 的后处理由 RISC-V 来做并导出 onnx 格式模型
python3 yolov5_export.py --weights ./yolov5s.pt --img-size 640 640