YOLOv11 AscendCL 应用
一、项目简介
本项目已经开源位于:gitcode.com/BB_out_snow/yolov11_acl_app
项目推理的模型为 yolo11n-pose。
未作推理效果评测。
本项目实现了YOLOv11模型在于华为CANN ACL接口上实现模型推理,减少对torch的依赖,使得部署更加轻量化。项目提供C++和Python两个版本的实现,均使用华为ACL框架进行模型推理,包含完整的预处理和后处理流程,支持批量图像处理,并集成骨架连接可视化。
二、项目基础配置
模型训练时的配置
yolo11n-pose.pt模型转换为onnx模型时的参数配置
yolo11n-pose.onnx模型转换为om模型时的参数配置
2.1 CANN环境配置
1.删除旧版本的CANN环境
2.下载新版本的CANN
3.给CANN安装程序赋权
4.运行CANN安装程序
5.配置环境变量
2.2 ACL环境配置
1. 安装ffmpeg
1.通过如下命令查询OS版本
2.根据查询结果选择安装方式
apt安装:Ubuntu 22.04及以上版本的用户建议使用此方式安装
yum安装:OpenEuler 22.03及以上的用户建议使用此方式安装
3.源码编译安装
4.为保证程序能识别动态库,请在/etc/ld.so.conf.d下添加ffmpeg.conf配置
2. 克隆本项目
1.克隆本项目
2.进入本项目的工作目录
3. ACLLite_python环境编译
1.进入python的工作目录
2.拉取ACLLite仓库,并进入其中
3.设置环境变量,其中DDK_PATH中/usr/local请替换为实际CANN包的安装路径
4.安装,编译过程中会将库文件安装到/lib目录下,所以会有sudo命令,需要输入密码
4. ACLLite_C++环境编译
1.切换为root管理员
2.安装opencv
3.环境变量配置
4.创建依赖文件夹
5.下载samples源码
6.拷贝公共文件到samples相关依赖路径中
7.下载x264
8.编译并安装acllite
2.3 运行python 推理
1.回到python工作目录
2.运行python版本的yolov11 pose
3.可以在yolov11_acl_by_python/om/check中看到检测结果
2.4 编译 c++程序并运行推理
1.进入本项目的目录
2.进入本项目的yolov11的acl编译文件夹
3.修改CMakeLists.txt里面的内容,改为实际路径
4.进行编译
5.运行yolov11的执行文件
6.查看检测结果
三、效果评测
3.1 数据集
评估数据集位于yolov11_acl_by_python/data/目录中: yolov11_acl_by_python/data/images:包含100张评估图像 yolov11_acl_by_python/data/labels:包含对应的标签文件
来源于COCO2017数据集
3.2输出结果
切换到工作目录
运行评测程序
评估结果保存在yolov11_acl_by_python/eval_outputs/目录中:
evaluation_results.json:详细的评估结果 evaluation_summary.json:评估摘要 evaluation_results.csv:CSV格式的评估结果
四、主要参考项目
- 昇腾
- 基于香橙派AI PRO的yolov10推理迁移
- AScend 昇腾万里,让智能无所不及
- 推理应用开发与部署(AscendCL)
YOLOv11 AscendCL 应用
一、项目简介
本项目已经开源位于:gitcode.com/BB_out_snow/yolov11_acl_app
项目推理的模型为 yolo11n-pose。
未作推理效果评测。
本项目实现了YOLOv11模型在于华为CANN ACL接口上实现模型推理,减少对torch的依赖,使得部署更加轻量化。项目提供C++和Python两个版本的实现,均使用华为ACL框架进行模型推理,包含完整的预处理和后处理流程,支持批量图像处理,并集成骨架连接可视化。
二、项目基础配置
模型训练时的配置
yolo11n-pose.pt模型转换为onnx模型时的参数配置
yolo11n-pose.onnx模型转换为om模型时的参数配置
2.1 CANN环境配置
1.删除旧版本的CANN环境
2.下载新版本的CANN
3.给CANN安装程序赋权
4.运行CANN安装程序
5.配置环境变量
2.2 ACL环境配置
1. 安装ffmpeg
1.通过如下命令查询OS版本
2.根据查询结果选择安装方式
apt安装:Ubuntu 22.04及以上版本的用户建议使用此方式安装
yum安装:OpenEuler 22.03及以上的用户建议使用此方式安装
3.源码编译安装
4.为保证程序能识别动态库,请在/etc/ld.so.conf.d下添加ffmpeg.conf配置
2. 克隆本项目
1.克隆本项目
2.进入本项目的工作目录
3. ACLLite_python环境编译
1.进入python的工作目录
2.拉取ACLLite仓库,并进入其中
3.设置环境变量,其中DDK_PATH中/usr/local请替换为实际CANN包的安装路径
4.安装,编译过程中会将库文件安装到/lib目录下,所以会有sudo命令,需要输入密码
4. ACLLite_C++环境编译
1.切换为root管理员
2.安装opencv
3.环境变量配置
# 设置CPU架构 export CPU_ARCH=`arch` # 设置第三方库路径 export THIRD_PART_PATH=/usr/local/Ascend/thirdpart/${CPU_ARCH} # 运行时链接库文件 export LD_LIBRARY_PATH=${THIRD_PART_PATH}/lib:$LD_LIBRARY_PATH # 设置安装目录 export INSTALL_DIR=/usr/local/Ascend/ascend-toolkit/latest4.创建依赖文件夹
mkdir -p ${THIRD_PART_PATH}5.下载samples源码
6.拷贝公共文件到samples相关依赖路径中
cp -r /usr/local/samples/common ${THIRD_PART_PATH}7.下载x264
8.编译并安装acllite
2.3 运行python 推理
1.回到python工作目录
2.运行python版本的yolov11 pose
3.可以在yolov11_acl_by_python/om/check中看到检测结果
2.4 编译 c++程序并运行推理
1.进入本项目的目录
2.进入本项目的yolov11的acl编译文件夹
3.修改CMakeLists.txt里面的内容,改为实际路径
# Copyright (c) Huawei Technologies Co., Ltd. 2019. All rights reserved. cmake_minimum_required(VERSION 3.5.1) project(sampleYOLOV8) add_compile_options(-std=c++11) add_definitions(-DENABLE_DVPP_INTERFACE) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../out") set(CMAKE_CXX_FLAGS_DEBUG "-fPIC -O0 -g -Wall") set(CMAKE_CXX_FLAGS_RELEASE "-fPIC -O2 -Wall") set(INC_PATH $ENV{DDK_PATH}) if (NOT DEFINED ENV{DDK_PATH}) set(INC_PATH "/usr/local/Ascend/ascend-toolkit/8.3.RC1") message(STATUS "set default INC_PATH: ${INC_PATH}") else() message(STATUS "set INC_PATH: ${INC_PATH}") endif () set(LIB_PATH $ENV{NPU_HOST_LIB}) if (NOT DEFINED ENV{NPU_HOST_LIB}) set(LIB_PATH "/usr/local/Ascend/ascend-toolkit/8.3.RC1/runtime/lib64") message(STATUS "set default LIB_PATH: ${LIB_PATH}") else() message(STATUS "set LIB_PATH: ${LIB_PATH}") endif () set(THIRDPART $ENV{THIRDPART_PATH}) if (NOT DEFINED ENV{THIRDPART_PATH}) set(THIRDPART "/usr/local/Ascend/thirdpart/aarch64") message(STATUS "set default THIRDPART: ${THIRDPART}") else() message(STATUS "set THIRDPART: ${THIRDPART}") endif() include_directories( ${INC_PATH}/runtime/include/ ${INC_PATH}/include/ /usr/local/include/opencv4/ ${THIRDPART}/acllite/include/ ${THIRDPART}/include/acllite/ ) link_directories( ${THIRDPART}/acllite/lib/ ${THIRDPART}/lib/ ${LIB_PATH} /usr/local/lib ) add_executable(main sampleYOLOV8.cpp) add_executable(pose_main sampleYOLOV11Pose.cpp) if(target STREQUAL "Simulator_Function") target_link_libraries(main funcsim) target_link_libraries(pose_main funcsim) else() target_link_libraries(main ascendcl acl_dvpp stdc++ acllite opencv_core opencv_imgproc opencv_imgcodecs dl rt) target_link_libraries(pose_main ascendcl acl_dvpp stdc++ acllite opencv_core opencv_imgproc opencv_imgcodecs dl rt) endif() install(TARGETS main pose_main DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})4.进行编译
5.运行yolov11的执行文件
6.查看检测结果
三、效果评测
3.1 数据集
评估数据集位于
yolov11_acl_by_python/data/目录中: yolov11_acl_by_python/data/images:包含100张评估图像 yolov11_acl_by_python/data/labels:包含对应的标签文件来源于COCO2017数据集
3.2输出结果
切换到工作目录
运行评测程序
评估结果保存在
yolov11_acl_by_python/eval_outputs/目录中:evaluation_results.json:详细的评估结果evaluation_summary.json:评估摘要evaluation_results.csv:CSV格式的评估结果四、主要参考项目