Bootstrap

ncnn模型部署——ncnn编译和安装

欢迎学习ncnn系列相关文章,从训练、模型转换、精度分析,评估到部署Android端,推荐好资源:

一、YoloV5训练自己数据集并测试
二、ncnn编译和安装
三、onnx模型转ncnn模型并推理可执行程序(resnet18例子)
四、yolov5-6.0Pyotorch模型转onxx模型再转ncnn模型部署
五、训练自己YOLOv5模型转ncnn模型并部署到Android手机端


在这里插入图片描述

一、ncnn

ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架。它是由腾讯开发的,专为移动设备和嵌入式系统设计,旨在提供快速、低功耗、小型的深度学习推理解决方案。

1.1 ncnn特点

高性能:无第三方依赖,跨平台,手机端 CPU 的速度快于目前所有已知的开源框架。

易于部署:基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP。

广泛应用:ncnn 目前已在腾讯多款应用中使用,如:QQ,Qzone,微信,天天 P 图等。

二、ncnn源码下载

ncnn官网地址为:ncnn

ncnn超多部署例子:ncnn例子

2.1 官网直接下载

在这里插入图片描述

2.2 git下载

2.2.1 ncnn源码

我更推荐使用git下载,上面方法也行。
在这里插入图片描述

在终端cd到要存放ncnn源码包的路径下,运行下面命令下载ncnn源码包:

git clone https://github.com/Tencent/ncnn.git

2.2.2 第三方依赖库下载

上面ncnn源码下载好后,通过下面命令安装依赖的第三方库。

cd ncnn 
git submodule update --init

三、相关库下载与安装

相关库的下载使用下面命令:

sudo apt install build-essential git cmake libprotobuf-dev protobuf-compiler libvulkan-dev vulkan-utils libopencv-dev

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、ncnn编译及安装

4.1 创建build文件夹

在ncnn包根目录下新建一个build文件夹,如下:

在这里插入图片描述

4.2 CMakeLists.txt文件

在VSCode编译器中打开ncnn源码包,如下:

在这里插入图片描述

开启CMakeLists.txt文件中的BENCHMARK和VULKAN(打印每次耗时和开启vulkan加速打开),命令见下:

cmake .. -DNCNN_BENCHMARK=ON -DNCNN_VULKAN=ON

4.3 编译

编译使用下面命令:

make -j8

在这里插入图片描述

4.4 安装

成功编译后,对编译后的库进行安装,默认会在build目录下新建一个install文件夹来安装,安装命令见下:

sudo make install 

在这里插入图片描述
在这里插入图片描述

4.4.1 解析安装后的build目录

在这里插入图片描述

下面是bin目录下的文件,bin目录下存放模型转换工具,里面的每一个工具都是有tools文件夹中的每个文件对应生成的
,包含了很多模型之间相互转换的工具:

在这里插入图片描述

五、验证是否编译成功

进入到ncnn/example目录下执行命令:

../build/examples/squeezenet ../images/256-ncnn.png

上面命令中第一个参数为需要执行的程序,第二个参数为测试图像路径。
在这里插入图片描述
运行上面命令后,如果输出类似下面的内容,说明编译成功。

在这里插入图片描述
在这里插入图片描述

六、总结

以上就是ncnn编译和安装过程,此教程是在Ubuntu系统上操作的,其它系统的参考编译和安装。

总结不易,多多支持,谢谢!

感谢您阅读到最后!关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

;