参考链接: 在 RK3399 开发板上部署 Tengine AI 框架.
- 下载源码
从https://github.com/OAID/tengine/下载源码
git clone --recurse-submodules https://github.com/OAID/tengine/
注:一定要加 --recurse-submodules
不然可能源码下载不全
- 安装依赖
sudo apt-get install libprotobuf-dev protobuf-compiler libopencv-dev pkg-config
- 修改配置文件
打开tengine/default_config目录下的arm64_linux_native.config文件,修改第44行,将BUILD_SERIALIZER=n
改为BUILD_SERIALIZER=y
否则后面运行mobilenetSSD网络的时候可能会遇到Shared library not found: libcaffe-serializer.so: cannot open shared object file: No such file or directory
这个错误。 - 编译
在tengine目录下的终端内输入
./linux_build.sh default_config/arm64_linux_native.config
- 下载 model 文件
运行这些 AI 应用的时候,需要加载对应的 model 文件,这些文件可以从 OPEN AI LAB 提供的网盘里下载:
网址:https://pan.baidu.com/s/1Ar9334MPeIV1eq4pM1eI-Q
提取码:hhgc
本文中只下载了squeezenet.tmfile
、mobilenet.tmfile
、MobileNetSSD_deploy.prototxt
、MobileNetSSD_deploy.caffemodel
这四个文件。
并将其放在tengine/models
目录下 - 运行 benchmark
编译完成后默认会在build/benchmark/bin/
目录下生成两个供测试用的 benchmark 文件,可以直接执行这两个文件,用来简单的测试,确实是否真正编译成功。
./build/benchmark/bin/bench_mobilenet
./build/benchmark/bin/bench_sqz
成功运行结果如下图所示:
- 运行MobileNetSSD网络demo
修改tengine/examples
目录下linux_build.sh
文件。根据实际情况,正确设置 Tengine 的所在路径,比如我下载编译的 Tengine 代码在 /home/pi/tengine 目录下:
cmake -DTENGINE_DIR=/home/pi/tengine \
然后在 examples 目录下执行如下命令:
mkdir build
cd build/
../linux_build.sh
make
测试mobilenetSSD网络执行如下命令
./mobilenet_ssd/MSSD -i ../../tests/images/ssd_horse.jpg
测试后的图片文件保存在
tengine/examples/build/
文件夹下,名字为Mobilenet_SSD.jpg.jpg
,其效果如下图所示:
深度学习模型转换(tensorflow2caffe)
: https://www.jianshu.com/p/96ed66372178.