Tengine-Lite框架是OpenAILAB公司出的适用于边缘设备面向芯片SoC优化的一款推理框架,主要甚至可以让人工智能模型在stm32这样的低功耗的单片机上运行,是由最早的Tengine框架衍生过来的。
http://www.openailab.com/int/ability/list2.html
大多数学习过人工智能或者自己炼丹过的工程师,在模型出炉之后都会担心两个问题:
- 我做的模型需要起码1080ti才能运行,这实际落地怎么办?
- 炼丹用的python,这效率感人呀,但是C炼丹不会。
Tengine-lite正好解决这两个问题,我们先看一下官网上的Tengine的系统架构,不管是模型优化以及各种加速单元的支持。
opencv的编译
在安装Tengine框架前最好是编译一下OpenCV,有的demo是需要opencv的。具体OpenCV的介绍就不用多说了,宇宙第一计算机视觉算法库,我们先编译一下OpenCV。
- 相关依赖的安装
sudo apt updatesudo apt-get gcc cmake gitsudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-devsudo libjasper-dev
2.下载源码并解压
wget https://github.com/opencv/opencv/archive/4.1.0.zipunzip 4.1.0.zip
3.编译opencv
cd opencv-4.1.0mkdir build && cd buildcmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..make -j4sudo make install
4.环境变量以及pkgconfig设置(一定要sudo,要不会没有权限):
sudo nano /etc/ld.so.conf.d/opencv.conf
打开后是个空白的文件,在文件的例输入如下指令并使用快捷键保存,nano的快捷键在terminal下面有提示。
/usr/local/lib
应用刚才配置后的设置:
sudo ldconfig
配置bash文件(一定要sudo,要不会没有权限):
sudo nano /etc/bash.bashrc
输入如下指令并保存(pkgconfig的路径需要自己找一下可以用whereis pkgconfig来查询):
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH
应用配置并更新:
source /etc/bash.bashrcsudo updatedb
在完成后很多小伙伴可能出现使用pkg-config opencv --modversion时超不到opencv.pc文件的问题,主要原因有两个:
- 刚才安装的是opencv4。
- opencv4.pc文件可能没有拷贝到pkg文件中。
针对上述问题,我们可以使用如下步=步骤进行修改:
pkg-config opencv4 --modversionlocate opencv4.pcsudo cp -f 你的opencv4.pc的path /usr/lib/pkgconfig/
Tengine-Lite的编译
在测试opencv没问题后我们进行tengine-lite的编译与安装,tengine-lite的编译安装是相对opencv容易一些。
- 下载源码(一定要使用如下指令下载,因为lite暂时是分支):
git clone -b tengine-lite https://github.com/OAID/Tengine.git Tengine-Lite
2.编译tengine-lite:
cd Tengine-Litemkdir build cd buildcmake ..make -j4sudo make install
BenchMark
我们首先测试一下Benchmark,Benchmark是测试硬件运行神经网络的最好测试方法。我们首先确认/Tengine-Lite/benchmark/models路径中是否有benchmark的模型文件,如果存在,我们运行如下命令(mobilenet为例):
./comvert_tm_tool -f caffe -p mobilenet_v1.prototxt -m mobilenet_v1.caffemodel -o mobilenet_v1_benchmark.tmfile
指令参数:
[Usage]: [-h] [-r repeat_count] [-t thread_count] [-p cpu affinity, 0:auto, 1:big, 2:middle, 3:little] [-s net]
RetinaFace测试
接下来我们测试一下Retinaface的效果,我们首先需要准备好测试的图片和模型文件,整个tengine的模型文件在如下链接中,根据需求下载:
链接: https://pan.baidu.com/s/1YO9frM2TU4v9wWQ_0NGMTg 密码: 8d47
根据自己的结构目录输入测试指令:
./tm_retinaface -m 你的models_path/retinaface.tmfile -i 你的images_path/test4.jpg -r 1 -t 1
terminal出现时间以及box等信息:
运行的结果如默认保存在build/examples文件中,可以根据自己的需求修改程序,结果下所示: