网站整体规划,西安网上注册公司流程,运营一个app大概多少钱,wordpress sqlite3模型部署#xff1a;#xff08;五#xff09;安卓端部署Yolov8关键点检测项目全流程记录0、先展示测试效果1、模型下载并测试2、使用pnnx对模型进行转换**3、构建安卓项目0、先展示测试效果
n级别检测模型CPU检测#xff1a;
n级别检测模型GPU检测#xff1a;
S级别…
模型部署五安卓端部署Yolov8关键点检测项目全流程记录0、先展示测试效果1、模型下载并测试2、使用pnnx对模型进行转换**3、构建安卓项目0、先展示测试效果
n级别检测模型CPU检测
n级别检测模型GPU检测
S级别检测模型CPU检测
S级别检测模型GPU检测 1、模型下载并测试
创建虚拟环境
conda create -n yolov8_pose python3.10ncnn不支持scatterND算子。 解决思路尝试先将模型解析为TorchScripttorchscript可以将深度学习中一些复杂的处理算子解析为由多个简单算子组合的复杂算子来完成计算然后使用pnnx转为ncnn可以解析的模型。
pip install torch2.0.0 torchvision0.15.1 torchaudio2.0.1 --default-timeout100 -i https://pypi.tuna.tsinghua.edu.cn/simplepip install ultralytics --default-timeout100 -i https://pypi.tuna.tsinghua.edu.cn/simple安装的版本是ultralytics8.3.201
或者拉取github官方项目利用源码进行安装
https://github.com/ultralytics/ultralytics/tree/v8.3.201下载到本地执行如下语句进行源码安装
pip install -e. --default-timeout100 -i https://pypi.tuna.tsinghua.edu.cn/simplepip install ncnn1.0.20250916 --default-timeout100 -i https://pypi.tuna.tsinghua.edu.cn/simple安装的版本是ncnn1.0.20250916
执行如下脚本 其会自动下载ultralytics对应版本的模型文件
from ultralytics import YOLOmodel_n YOLO(yolov8n-pose.pt) # 自动下载对应版本的预训练权重
model_s YOLO(yolov8s-pose.pt) # 自动下载对应版本的预训练权重
model_m YOLO(yolov8m-pose.pt) # 自动下载对应版本的预训练权重
model_l YOLO(yolov8l-pose.pt) # 自动下载对应版本的预训练权重
model_x YOLO(yolov8x-pose.pt) # 自动下载对应版本的预训练权重
# 模型测试
from ultralytics import YOLO# 加载模型
model YOLO(yolov8n-pose.pt)
# 对单张图片推理
results model(test.jpg, imgsz640)
# 显示结果
results[0].show()
# 保存检测后的图像
results[0].save(pose_result.jpg)
# 会下载ultralytics对应版本的模型文件
wget https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8s-seg.pt2、使用pnnx对模型进行转换**
导出NCNN模型
使用 yolo CLI
yolo export modelyolov8s-pose.pt formatncnn # export official model或者使用python脚本执行如下指令
from ultralytics import YOLO# Load a model
model YOLO(yolov8s-pose.pt) # load an official model# Export the model
model.export(formatncnn)from ultralytics import YOLO# Load a model
model YOLO(yolov8n-pose.pt) # load an official model# Export the model
model.export(formatncnn)注意 上述指令执行后其会先下载yolov8s-pose.pt模型然后再下载所需的pnnx包文件需要访问外网导致下载失败我的解决方案是复制下载链接科学上网下载然后拷贝至根目录下并在根目录下重新执行上述指令 https://github.com/pnnx/pnnx/releases/download/20250912/pnnx-20250912-linux.zip得到经过转换的相关文件 3、构建安卓项目
我的android-studio版本如下所示 android-studio-2022.2.1.19-windows
将上述转换得到的模型放置在目录D:\project\new-ncnn-android-yolov8-pose-main\app\src\main\assets目录下
按照如下步骤下载对应的ncnn与opencv-mobile相关文件并拷贝至对应的目录下 如下所示 并修改对应的CMakeLists.txt文件中ncnn与opencv-mobile的文件路径如下所示
project(yolov8ncnn)cmake_minimum_required(VERSION 3.10)# opencv4 requires c11
set(CMAKE_CXX_STANDARD 11)set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/opencv-mobile-4.6.0-android/sdk/native/jni)
find_package(OpenCV REQUIRED core imgproc)set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-20230223-android-vulkan/${ANDROID_ABI}/lib/cmake/ncnn)
find_package(ncnn REQUIRED)add_library(yolov8ncnn SHARED yolov8ncnn.cpp yolov8.cpp ndkcamera.cpp yolov8pose.cpp)target_link_libraries(yolov8ncnn ncnn ${OpenCV_LIBS} camera2ndk mediandk) 根据自己实际需求调整local.properties文件中cmake、ndk、sdk的本地路径
cmake.dirD\:\\Android_SDK\\Sdk\\cmake\\3.10.2.4988404
ndk.dirD\:\\Android_SDK\\Sdk\\ndk\\24.0.8215888
sdk.dirD\:\\Android_SDK\\Sdk重构项目然后打成apk包 在打包成apk时会出现报错信息如下
Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not opens java.io to unnamed module 56faf93f我的解决方案是更换较高版本的AGP如下所示 再次重构项目并打apk包
测试效果如下所示