程序效果演示
程序运行机制
程序API概览
程序源码链接
程序环境
Ubuntu Android Studio 2023.2.1版本
ncnn 20240102 版 android_vulkan_shared预编译库+源文件
程序环境搭建(NCNN Ubuntu搭建)
下载ncnn项目到本地进行编译
git clone https://github.com/Tencent/ncnn.git #实在不行就把github改称gitee
cd ncnn
mkdir build && cd build
cmake .. #默认就行
make -j16
make install
至此如果你顺利编译完毕你会发现你当前的build文件夹内会生成一个install文件,此时你需要回到你的主目录下面进行以下操作
cd
nano .bashrc
//在.bashrc最下面输入(xxxx是你的当前用户名)
export CMAKE_PREFIX_PATH="/home/xxxx/ncnn/build/install:$CMAKE_PREFIX_PATH"
//输入完成再退出
这样你在使用CMakeLists.txt的时候找ncnn包就不会报错。
创建一个Android Studio项目
NCNN接入
选择新建一个Android studio项目点击Native C++
选择C++11
进入工作空间
直接把你下载的android_vulkan_shared预编译库丢进如图这个位置。
接下来修改CMakeLists.txt
project("xxxx")
//在project下面添加下面两行代码就行了注意这里的xxxxxx代表你下的预编译版本号
set(ncnn_DIR ${CMAKE_SOURCE_DIR}/ncnn-xxxxxx-android-vulkan-shared/${ANDROID_ABI}/lib/cmake/ncnn)
find_package(ncnn REQUIRED)
到了这一步,恭喜你已经成功接入NCNN,你就可以用c++进行模型推理了!!!!!!!
之后请参考源码吧(本人从头搭建100%能跑)毕竟这个工程很大与部分是参考的其他大佬的代码开发的,源码部分
在main的cpp文件下添加了squeezencnn_jni.cpp和squeezenet_v1.1.id.h负责模型加载模型推理
在main文件添加了assets文件放置ncnn模型和一些模型参数。
在main的java文件新添加了一个SqueezNcnn.java内部定义了有关Squeezenet接口的结构体
在main的res的layout文件下修改布局
参考链接
GitHub - nihui/ncnn-android-squeezenet: The squeezenet image classification android example