树莓派(8):树莓派搭建MNN


在这里插入图片描述
MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。

最近在树莓派上部署了一下,跑神经网络能够达到非常不错的效果。关于MNN的资料非常多,相信大家可以轻松找到,比如语雀这里就有很详细的资料,其github也是有更为直接的资料。

在此只记录一下树莓派搭建MNN的过程,包括安装界面以及遇到的一些坑,以便下次有需求时能顺利搭建,同时也供大家参考。

0.环境

0.1硬件环境

我用的是树莓派4B(4G版本),应该是各种树莓派型号都可以。

0.2软件环境

我用的是树莓派镜像buster版本,另外,MNN对于cmake、protobuf、gcc的版本是有一定要求的——

  • cmake (version >=3.10 is recommended)
  • protobuf (version >= 3.0 is required)
  • gcc (version >= 4.9 is required)

这个比较简单,更新到最新版本就OK了。

1.获取MNN

git clone https://github.com/alibaba/MNN.git
此方法要慎重,MNN版本不对会很麻烦。比如出现下面这种状况——
在这里插入图片描述
我当时是直接git clone得到的,但这个版本在make时会出错,根据提示的错误尝试解决最后也没成功。
给大家推荐0.2.1.5版本,亲测这个版本是可行的。

在这里插入图片描述
后面有很多版本,甚至还有1.0.0版本,暂时没有时间去测试了,如果大家测试可行,麻烦在评论区告知一下。

2.编译选项

在这里插入图片描述
这个根据各自的需求来设置就好了,我记得没有进行修改

3.Build on RaspberryPi

3.1准备

cd /path/to/MNN
./schema/generate.sh
在这里插入图片描述
在这里插入图片描述

至于接下来的一步./tools/script/get_model.sh是可选的,我没有做这一步。

3.2 编译

mkdir build && cd build && cmake .. && make -j4
为了保险,我没有使用多核编译,不过速度也很快,十五分钟搞定。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. End & Share

最终,得到MNN library(libMNN.so)文件。

这个文件共享给大家,百度云链接:https://pan.baidu.com/s/1zAS1Y6WkJqBLQOG7hLEs9Q 提取码:56f4
(PS:不保证能在你的Pi上正常运行)

另外,在使用MNN时,发现之前介绍的树莓派安装opencv的方法树莓派(4):树莓派python3安装opencv只适合python,在C里面向调用还是老老实实编译一遍吧,可以参考这篇文章

有问题多交流,可留言可发邮件,我的邮箱是zhaodongyu艾特pku(这里换成点)edu.cn。