树莓派3b+玩转深度学习

TengineOADI/Tengine | github
Tengine 是OPEN AI LAB为嵌入式设备开发的一个轻量级、高性能并且模块化的引擎。
Tengine在嵌入式设备上支持CPU,GPU,DLA/NPU,DSP异构计算的计算框架,实现异构计算的调度器,基于ARM平台的高效的计算库实现,针对特定硬件平台的性能优化,动态规划计算图的内存使用,提供对于网络远端AI计算能力的访问支持,支持多级别并行,整个系统模块可拆卸,基于事件驱动的计算模型,吸取已有AI计算框架的优点,设计全新的计算图表示。
编译安装开源版Tengine
安装相关工具

sudo apt-get install git cmake

git 是一个版本控制系统,稍后将用来从 github 网站上下载Tengine的源码
cmake 是一个编译工具,用来产生make过程中所需要的Makefile文件
安装支持库
sudo apt-get install libprotobuf-dev protobuf-compiler libboost-all-dev libgoogle-glog-dev libopencv-dev libopenblas-dev
protobuf 是一种轻便高效的数据存储格式,这是caffe各种配置文件所使用的数据格式
boost 是一个c++的扩展程序库,稍后Tengine的编译依赖于该库
google-glog 是一个google提供的日志系统的程序库
opencv 是一个开源的计算机视觉库
openblas 是一个开源的基础线性代数子程序库
下载&编译
1.从github上下载最新的开源版Tengine源码

git clone https://github.com/OAID/Tengine.git

2.切换工作目录到Tengine
cd Tengine
3.准备好配置文件
Tengine目录下提供了配置模板 makefile.config.example 文件

cp makefile.config.example makefile.config

4.修改配置文件 makefile.config
由于开源版的Tengine不支持针对armv7的优化,所以需要用openblas替代实现;
将 CONFIG_ARCH_ARM64=y 这一行注释掉(行首加井号 #)以关闭ARM64架构的优化实现;
解除 CONFIG_ARCH_ARM32=y 这一行解除注释(删除行首的井号 #)以开启BLAS计算库的实现方式
CONFIG_ARCH_BLAS=y 这一行不需要解除注释
5.编译并安装

make -j4
make install

这里的 -j4 表示开启四个线程进行编译
测试
1.下载mobilenet-ssd模型并放置在 Tengine/models 目录下
下载链接(提取码为57vb):https://pan.baidu.com/s/1LXZ8vOdyOo50IXS0CUPp8g
2.将工作目录切换到mobilenet-ssd示例程序的目录下

cd ~/Tengine/examples/mobilenet_ssd

3.编译示例程序

cmake -DTENGINE_DIR=/home/pi/Tengine .
make

这里 -DTENGINE_DIR用于为cmake指定环境变量TENGINE_DIR,该变量可以在CMakeLists.txt文件中找到
4.运行示例程序

./MSSD

可以看到对一张照片进行目标检测,总共耗时1148.32ms
树莓派3b+玩转深度学习_第1张图片

你可能感兴趣的:(树莓派)