关于YOLO8学习(五)安卓部署ncnn模型--视频检测

在这里插入图片描述

教学视频地址

B站

前文

关于YOLO8学习(一)环境搭建,官方检测模型部署到手机
关于YOLO8学习(二)数据集收集,处理
关于YOLO8学习(三)训练自定义的数据集
关于YOLO8学习(四)模型转换为ncnn

简介

本文将会讲解:
(1)使用前文生成的ncnn模型,部署到安卓端,并且实现视频中,人脸的检测

效果图

在这里插入图片描述

开发环境

win10、python 3.11、cmake、pytorch2.0.1+cu117、pycharm、ultralytics==8.0.134
要特别注意,不要升级到python312,目前onnx还没支持到312,所以转换了,会导致转换模型失效。
对于上述环境如何配置,请看我之前的文章。
安卓:as4+,ndk21+,jdk11

开发过程

ncnn是腾讯出厂的一个端到端库,通过不同的模型,最终转换为ncnn可用的格式,然后进行部署。ncnn支持安卓,苹果。而且特别对cpu做了相关的优化,所以博主选择这个模型作为部署到端的方案。

前面的文章中,已经得到了一个ncnn模型文件了,接下来,博主将会手把手,示范如何把这个模型,部署到安卓端:

下载资源

相关环境:
opencv-4.8.1-android-sdk.zip
ncnn-20240410-android-vulkan.zip

feige的demo,具体链接如下:link

下载后,解压,进入到ncnn-android-yolov8目录
在这里插入图片描述
然后把上述的环境,解压,放到安卓项目中的jni目录,完成后的目录如下(这里博主把OpenCV重命名为了OpenCV-android-sdk):
在这里插入图片描述
然后修改CMakeLists.txt文件,代码如下:

project(yolov8ncnn)

cmake_minimum_required(VERSION 3.10)
#cmake_minimum_required(VERSION 3.4.1)

set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/OpenCV-android-sdk/sdk/native/jni)
find_package(OpenCV REQUIRED core imgproc)

set(ncnn_DIR ${CMAKE_SOURCE_DIR}/${ANDROID_ABI}/lib/cmake/ncnn)
find_package(ncnn REQUIRED)

add_library(yolov8ncnn SHARED yolov8ncnn.cpp yolo.cpp ndkcamera.cpp)

target_link_libraries(yolov8ncnn ncnn ${OpenCV_LIBS} camera2ndk mediandk)

若存在编译问题,请下载对应的cmake插件,如下图,入口:tool–sdkmanager
在这里插入图片描述

完成上述步骤后,这个demo是大概率是可以跑通了,直接run试一下效果吧

接下来,将会介绍如何使用自己训练的ncnn模型,部署到这个demo中,实现人脸识别


一、替换自己的模型到assets下

博主把人脸检测的文件,命名为了face_detect,替换后,assets目录如下图:
在这里插入图片描述

二、修改strings.xml文件

在这里插入图片描述
把item替换为自己模型的名字

三、修改yolov8ncnn.cpp文件

修改modeltypes变量为自己模型的名字,target_sizes为320,具体代码如下:
在这里插入图片描述

四、修改yolo.cpp文件

(1)Yolo::load方法中,模型名字修改,代码如下图:
在这里插入图片描述
(2)Yolo::detect方法中,输入输出的名字修改。
可以使用onnx,通过网站link进行输入输出名字的查看。
具体修改代码内容如下:
在这里插入图片描述
这里修改了输入为images,输出为output0

(3)Yolo::draw方法中,修改class_names为你的类别名。这个模型中,只有一个类别,所以这里设置为face(其实这个名字可以随便起)对应好下标即可。因为模型输出的也是下标,后续通过查询这个class_names下标对应的名字,进行绘制的。对应代码如下图:
在这里插入图片描述

(4)修改yolo.cpp中的方法generate_proposals
修改num_class为你对应的类别数量,我们这里是一类,所以是1,具体代码如下:
在这里插入图片描述


完成上述步骤后,直接运行吧,按道理,可以实现检测了。

安卓demo源码:关注并回复 “yolo8检测安卓人脸demo”即可

在这里插入图片描述


  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值