yolo11目标检测
该测试程序会推理 yolo11 模型实现目标检测, 结果仅以打印的形式输出。
下载预编译好的 cvimodel
git clone https://github.com/zwyzwm/yolo11-obiect-dection.git
pc端交叉编译YOLO程序
可以使用yolov8的程序。
Duo256M yolov8 代码位置:sample_yolov8.cpp
编译方法
参考上一章节简介中的方法编译示例程序
编译完成后,会在sample/cvi_yolo/
目录下生成我们需要的sample_yolov8
程序
模型编译
如果已经下载了yolov8的仓库,git pull
即可。
导出 yolo11.onnx 模型
- 下载 yolo11 官方仓库代码,地址如下: https://github.com/ultralytics
git clone https://github.com/ultralytics
- 下载对应的 yolo11 模型文件
以 yolo11n 为例
下载之后,将其复制到 ultralytics 目录下。
- 导出 yolo11n.onnx 的模型
下载 anacanda 最新版本,可参考:https://docs.anaconda.com/miniconda/
下载 Python 版本在3.8以上, PyTorch 版本在2.0.1以上,最好使用最新版本
激活(例如Python 3.8,torch2.0.1):
conda create -n py3.8 python==3.8.2
conda activate py3.8
python -m venv .venv
source .venv/bin/activate
pip3 install --upgrade pip
pip3 install torch==2.0.1
注意:在 ultralytics 目录下执行。
将 yolo_export/yolov8_export.py 代码复制到 yolo11 仓库,yolo11 可兼容 yolov8 。
python3 yolov8_export.py --weights ./yolo11n.pt --img-size 640 640
提示:运行此命令时,出现类似ModuleNotFoundError: No module named 'x'
错误,只需pip install x
。
在当前目录下生成 yolo11n.onnx 。
参数解释
--weights pytorch 模型路径
--img-size 图片输入大小
TPU-MLIR 转换模型
请参考TPU-MLIR 文档 配置好 TPU-MLIR 工作环境,参数解析请参考 TPU-MLIR 文档。
配置好工作环境后,在与本项目同级目录下创建一个model_yolo11n目录,将模型和图片文件放入其中。
mkdir model_yolo11n && cd model_yolo11n
cp ${REGRESSION_PATH}/yolo11n.onnx .
cp -rf ${REGRESSION_PATH}/dataset/COCO2017 .
cp -rf ${REGRESSION_PATH}/image .
操作如下:
具体实现步骤分三步:
- model_transform.py 将 onnx 模型转化成 mlir 中间格式模型
onnx -> model_transform.py -> mlir
- run_calibration.py 生成 int8 量化校准表
calibration_set -> run_calibration.py -> calibration_table
- model_deploy.py 将 mlir 配合 int8 量化表生成用于 TPU 推理的 cvimodel
mlir + calibration_table ->model_deploy.py -> cvimodel