1回答

0收藏

[评测分享] 【英蓓特I.MX8M MaaxBoard开发板】试用3--ncnn深度学习框架搭建

#板卡评测 #板卡评测 5562 人阅读 | 1 人回复 | 2020-12-02


1 ncnn深度学习框架

1.1 ncnn简介
  ncnn 是腾讯优图实验室首个开源项目,为手机端极致优化的高性能神经网络前向计算框架。ncnn 从设计之初深刻考虑手机端的部署和使用。无第三方依赖,跨平台,手机端 cpu 的速度快于目前所有已知的开源框架。基于 ncnn,开发者能够将深度学习算法轻松移植到手机端高效执行,开发出人工智能 APP,将 AI 带到你的指尖。ncnn 目前已在腾讯多款应用中使用,如 QQ,Qzone,微信,天天P图等。同样的,ncnn适用于嵌入式平台,可以明显的提高深度学习算法模型在嵌入式平台上的运算速度。如图1,在手机上的识别示例。左图为使用Mobile netSSD实现目标检测;右图为人脸检测。


图1

1.2 ncnn优势
     ncnn主要有以下几个优点:
    (1)支持卷积神经网络,支持多输入和多分支结构,可计算部分分支;
    (2)除OPENCV外(即使没有ncnn,做图像处理,也必要的库),无任何第三方库依赖,不依赖 BLAS/NNPACK 等计算框架,极大的的降低了对嵌入式系统的性能要求,同时也降低了开发人员在搭建环境时的工作。
    (3)纯 C++ 实现,可以实现跨平台编程。
    (4)支持多核并行计算加速,ARM big.LITTLE cpu 调度优化。
    (5)整体库体积小于 500K,并可轻松精简到小于 300K。
    (6)可扩展的模型设计,支持 8bit 量化和半精度浮点存储。
    (7),可导入 caffe 模型,对pytorch、tensorflow模型也有很好的支持。


2 搭建ncnn深度学习框架

2.1 准备

  安装cmake。
  1. apt-get install cmake
复制代码

  安装一些依赖库。
  1. apt-get install -y gfortran
  2. apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
  3. apt-get install --no-install-recommends libboost-all-dev
  4. apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev

复制代码
下载ncnn源码(我喜欢用浏览器下载):ncnn github下载地址。放在你喜欢的目录下解压。

图2

  1. unzip ncnn-matser.zip
复制代码
没unzip的,使用:apt install unzip安装一个。

2.2 编译

在ncnn-master目录下,创建build文件夹。

  1. cd ncnn-master
  2. mkdir build
复制代码
进入build文件夹。

  1. cd build
复制代码
输入下面语句开始cmake配置。

  1. cmake ..
复制代码
结束后开始编译,等待编译好。

  1. make
  2. make install
复制代码


3 测试ncnn


在编译完成的build文件夹下,examples文件夹,里面有编译好的例子,模型在各自对应的cpp文件(ncnn-master/examples/ 文件夹下)里面都有链接,可以选择下载。tools文件夹下,有转换ncnn模型的工具(最新版只有caffer转ncnn的工具)

图3

测试mobilenetV2-ssd。识别效果还可以。测试中,识别一张图片的时间大约在200MS左右,如果再进一步优化模型,速度还可以有大幅度的提升。

图4

查看系统占用率:

图5

可以看到ncnn,可以充分的调用cpu的每个核心的资源。

至此,ncnn环境搭建完成。

分享到:
回复

使用道具 举报

回答|共 1 个

倒序浏览

沙发

电路城歪歪

发表于 2020-12-3 10:11:28 | 只看该作者

帖子内容和呈现整体很流畅,看来是拿着板子好好试用了哟,期待下期呀~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条