android 引入ncnn框架运行onnx模型

本文介绍了如何在Android Studio项目中集成腾讯的ncnn库,用于优化噪点处理的神经网络算法。步骤包括下载ncnn库、新建原生C++项目、配置项目信息,并在build.gradle和CMakeLists.txt中设置编译参数。同时,提到了可能出现的问题,如libomp.so未找到和ncnn运行错误,这些问题通常与版本不匹配有关。解决办法是确保所有ncnn相关工具和库的版本一致性。
开发背景

利用神经网络算法优化噪点,目前是想在app上跑神经网络算法。在网上查找腾讯开源了ncnn框架。
集成步骤如下:

下载nccn库

这个也可以自己编译,简单集成下载库地址为https://github.com/Tencent/ncnn/releases,除了下载android之外还要下载window包,因为windows包有我们需要的模型转换工具和模型转为代码文件工具。

新建项目

android studio 4版本,新建native c++ 项目,新建好后,在ide菜单file->project structure->modules选择ndk版本和build工具版本。在src/main文件夹上新建jni文件夹把相关的库进去arm64-v8a/libncnn.a,armeabi-v7a/libncnn.a。

配置项目信息

首先配置build.gradle里面的信息在externalNativeBuild添加如下编译参数

externalNativeBuild {
   
   
            cmake {
   
   
                arguments "-DANDROID_TOOLCHAIN=clang"
                cFlags "-fopenmp -static-openmp -O2 -fvisibility=hidden -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -ffast-math "
                cppFlags "-fopenmp -static-openmp -O2 -fvisibility=hidden -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing -ffunction-sections -fdata-sections -ffast-math "
                arguments "-DANDROID_STL=c++_shared", "-DANDROID_CPP_FEATURES=rtti exceptions"
                cppFlags ""
                cppFlags "-std=c++11"
                cppFlags "-frtti"
                cppFlags "-fexceptions"
            }
        }
ndk{
   
   
      abiFilters 'armeabi-v7a', 'arm64-v8a' 
    }

然后再配置cmakelist.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值