PyTorch模型安卓部署流程(NCNN)全流程实战(1)

在把模型部署到安卓项目之前我运行了很多pytorch的模型
(对python不熟悉)踩了很多坑。可以说是做了很多无用功。
写这个可以说是从头开始了。

**

首先,先运行官方的模型再去找自己的模型
前提安装好好Android studio以及配好环境

**

1.下载的项目:

https://github.com/nihui/ncnn-android-squeezenet
界面
里面都是英文,不懂的可以右键页面转中文下载
压缩包
下载好的样子

2.解压并且在Android studio中打开

我这是运行好的界面
我这是运行好的界面,当然你打开肯定不是这样的

3.搭建ncnn环境之文件位置

从 https://github.com/Tencent/ncnn/releases 下载NCNN压缩包
注意了,我在这里卡了很久,下错你就 卡两天
一定要下载这个

一定要下载这个,这个才是与项目匹配的环境
否则你就会出现如下等各种各样的问题。
error: no member named ‘create_gpu_instance’ in namespace ‘ncnn’
问题

然后提取压缩包内容到app/src/main/jni, 然后修改app/src/main/jni/CMakeLists.txt中的ncnn_DIR路径。

这里千万别弄错了哦 比如我的地址
我的
文件夹里的样子
文件夹
ncnn里面
在这里插入图片描述

4.搭建ncnn环境之Android studio中CMakeLists.txt配置

CMakeLists.txt中的代码

project(squeezencnn)

cmake_minimum_required(VERSION 3.10)


set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-20240410-android-vulkan/${ANDROID_ABI}/lib/cmake/ncnn)

find_package(ncnn REQUIRED)

add_library(squeezencnn SHARED squeezencnn_jni.cpp)
target_link_libraries(squeezencnn ncnn)
include_directories(${ncnn_INCLUDE_DIRS})

上面放的一样这里就可以直接复制粘贴的,逐行解析一下
看看就好啦

project(squeezencnn)

cmake_minimum_required(VERSION 3.10)
//CMake 最小版本声明,这一行指定了需要的最低 CMake 版本。在这种情况下,要求使用版本为 3.10 或更高版本的 CMake。

set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-20240410-android-vulkan/${ANDROID_ABI}/lib/cmake/ncnn)
//这里设置了变量 ncnn_DIR,指定了 ncnn 库的 CMake 配置文件路径。${CMAKE_SOURCE_DIR} 是 CMake 内置变量,表示当前项目根目录的路径。${ANDROID_ABI} 是 Android NDK 提供的变量,表示当前 Android 平台的 ABI(Application Binary Interface)类型,比如 armeabi-v7a、arm64-v8a 等。

find_package(ncnn REQUIRED)
//这一行使用 find_package 命令来查找 ncnn 库。REQUIRED 参数表示 ncnn 库是必需的,如果找不到将导致 CMake 构建失败。


add_library(squeezencnn SHARED squeezencnn_jni.cpp)
//这行代码定义了一个名为 squeezencnn 的共享库(Shared Library),并且将 squeezencnn_jni.cpp 文件作为源文件进行编译。

target_link_libraries(squeezencnn ncnn)
//这行代码指定了 squeezencnn 库需要链接 ncnn 库。这样,在编译 squeezencnn 库时,会自动链接并使用 ncnn 提供的功能。

include_directories(${ncnn_INCLUDE_DIRS})
//这行代码将 ncnn 头文件目录添加到项目中。${ncnn_INCLUDE_DIRS} 是 ncnn 库在 CMake 中预定义的变量,它包含了 ncnn 库的头文件路径。这样,你的项目可以访问 ncnn 提供的头文件,以便使用 ncnn 的功能和类。

5.运行成功

成功
自带虚拟机运行在这里插入图片描述

**

6.模拟器或安装到手机上

可以build成APK或者外接安卓手机
**
运行
我选了个老虎,这时候他就识别成功啦!

后续我会尝试部署自己的模型进去
以及本官方代码的逐行解析做笔记
小编能力有限,欢迎探讨!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值