Windows10下编译NCNN安卓NDK

前言

  • 在做安卓端的目标识别相关项目,用到YoloV5,原本只用OpenCV的DNN来做模型推理,但速度达不到要求,所以转向移动端推理加速库,试了mnn、PaddlePaddle,ncnn,做了对比,最终确定用ncnn做推理加速库。ncnn的各个模块的强大无须多说,特别int8量化真的超级好用。如果你没有自己添加代码或者添加自定义的层,建议直接下载ncnn的releases库直接就行。但我这里用到yolov5,要添加一个自定义的层,所以要自己编译。
  • Windows10系统,IDE是Android Studio,CMake 3.21。
  • ncnn-20210720, 要用到GPU,所以要下VulkanSDK 1.2.141.2。

一、环境安装

1.安装CMake,并把xxx\xxx\CMake\bin添加系统环境变量。
2.安装Vulkan各它的依赖库。

    • Vulkan
      https://vulkan.lunarg.com/sdk/home
      版本:VulkanSDK-1.2.141.2
      直接点击安装,把之后验证是否安装成功,运行xxx\VulkanSDK\1.2.141.2\Bin\vkcube.exe,出现下面图像代表安装成功。
      在这里插入图片描述
  • glfw
    https://www.glfw.org/
    把glfw-3.3.2.bin.WIN64复制到VulkanSDK\1.2.141.2\Third-Party

  • GLM
    https://github.com/g-truc/glm/
    把GLM复制到VulkanSDK\1.2.141.2\Third-Party

  • 添加系统环境变量
    在这里插入图片描述

二、编译NCNN

1.编译之前要下载安卓NDK,我这里用android-ndk-r21e-windows-x86_64.zip这个版本,下载之后解压,添加系统环境变量xxx\android-ndk-r21e和xxx\android-ndk-r21e\build,然后验证是否成功,在ndk根目录下打开cmd窗口,运动ndk-build,输出:
在这里插入图片描述
2.编译NCNN。

  • 打开cmd,git NCNN最新源码
git clone https://github.com/Tencent/ncnn.git
cd ncnn
git submodule update --init
  • 从下载NCNN releases 库可以看到,有四个库目录,如下图:
    在这里插入图片描述
    这些的具体作用可以看安卓关于NDK ABI的介绍。
  • 在ncnn源码的根目录下创建这四个目录,如下图:

在这里插入图片描述

cd build-android-armv7
cmake -DCMAKE_TOOLCHAIN_FILE="D:/LIB/android-ndk-r21e/build/cmake/android.toolchain.cmake"  -DANDROID_ABI="armeabi-v7a"  -DANDROID_ARM_NEON=ON -DNCNN_DISABLE_RTTI=OFF -DNCNN_DISABLE_EXCEPTION=OFF  -DANDROID_PLATFORM=android-14 ..  -G "Unix Makefiles" 

#如果要启用 Vulkan,需要android api 版本 >= android-24
cmake -DCMAKE_TOOLCHAIN_FILE="D:/LIB/android-ndk-r21e/build/cmake/android.toolchain.cmake"  -DANDROID_ABI="armeabi-v7a"  -DANDROID_ARM_NEON=ON -DNCNN_DISABLE_RTTI=OFF -DNCNN_DISABLE_EXCEPTION=OFF -DANDROID_PLATFORM=android-24  -DNCNN_VULKAN=ON..

cmake --build .
cmake --build . --target install
  • 构建aarch64 库
cd build-android-aarch64
cmake -DCMAKE_TOOLCHAIN_FILE="D:/LIB/android-ndk-r21e/build/cmake/android.toolchain.cmake" -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-21 ..  -G "Unix Makefiles" -DCMAKE_MAKE_PROGRAM="D:/LIB/ndk-r21e/prebuilt/windows-x86_64/bin/make.exe"

#如果要启用 Vulkan,需要android api 版本 >= android-24
cmake -DCMAKE_TOOLCHAIN_FILE="D:/LIB/android-ndk-r21e/build/cmake/android.toolchain.cmake"  -DANDROID_ABI="arm64-v8a"  -DANDROID_PLATFORM=android-24 -DNCNN_DISABLE_RTTI=OFF -DNCNN_DISABLE_EXCEPTION=OFF -DNCNN_VULKAN=ON ..
cmake --build .
cmake --build . --target install
  • 构建x86库
cd build-android-x86
cmake -DCMAKE_TOOLCHAIN_FILE="D:/LIB/android-ndk-r21e/build/cmake/android.toolchain.cmake" -DANDROID_ABI="x86" -DANDROID_PLATFORM=android-19 -DNCNN_DISABLE_RTTI=OFF -DNCNN_DISABLE_EXCEPTION=OFF ..  -G "Unix Makefiles" 

#如果要启用 Vulkan,需要android api 版本 >= android-24
cmake -DCMAKE_TOOLCHAIN_FILE="D:/LIB/android-ndk-r21e/build/cmake/android.toolchain.cmake" -DANDROID_ABI="x86" -DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON  -DNCNN_DISABLE_RTTI=OFF -DNCNN_DISABLE_EXCEPTION=OFF ..

cmake --build .
cmake --build . --target install
  • 构建x86_64库
cd build-android-x86_64

cmake -DCMAKE_TOOLCHAIN_FILE="D:/LIB/android-ndk-r21e/build/cmake/android.toolchain.cmake"  -DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-21 -DNCNN_DISABLE_RTTI=OFF -DNCNN_DISABLE_EXCEPTION=OFF ..  -G "Unix Makefiles" 

#如果要启用 Vulkan,需要android api 版本 >= android-24
cmake -DCMAKE_TOOLCHAIN_FILE="D:/LIB/android-ndk-r21e/build/cmake/android.toolchain.cmake"  -DANDROID_ABI="x86_64" -DANDROID_PLATFORM=android-24 -DNCNN_VULKAN=ON -DNCNN_DISABLE_RTTI=OFF -DNCNN_DISABLE_EXCEPTION=OFF ..

cmake --build .
cmake --build . --target install
  • 构建完成之后,在每个build目录下都有一个install目录,目录里面有include和lib两个目录,这就是最终要用的库。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Windows下编译安装ncnn,您可以按照以下步骤进行操作: 1. 下载和安装相关编译工具:您可以从ncnn官方GitHub页面(https://github.com/Tencent/ncnn)下载相关代码。您需要下载和安装CMake(版本3.10以上)以及Visual Studio(建议使用2019版本)。 2. 打开Visual Studio 开发人员命令提示符:在开始菜单中找到Visual Studio并右键单击,选择以管理员身份运行。这将打开一个命令提示符。 3. 配置CMake编译参数:使用cd命令切换到您下载的ncnn源码目录。然后,使用cmake命令来生成Visual Studio项目文件。例如,可以使用以下命令进行配置: ``` mkdir build cd build cmake -G "Visual Studio 16 2019" .. ``` 这将在build文件夹中生成Visual Studio项目文件。 4. 使用Visual Studio进行编译:在Visual Studio开发人员命令提示符中运行以下命令,使用Visual Studio生成ncnn库和示例程序: ``` cmake --build . --config Release ``` 这将开始编译ncnn库和示例程序,并生成相应的可执行文件。 5. 配置环境变量:在系统环境变量中添加ncnn库的路径,以便其他程序能够正常使用(例如将ncnn库目录添加到PATH变量中)。 至此,您已经成功在Windows下编译安装了ncnn。现在,您可以使用ncnn库进行深度学习任务,如目标检测、人脸识别等。请注意,根据您的配置和需求,可能还需要进行其他设置和安装依赖项,以确保ncnn能够正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知来者逆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值