高通SNPE SDK环境配置

一、系统要求
1、官方推荐安装在Ubuntu 14.04,我是用的是Ubuntu 18.04。
2、安装Android Studio(可选,在Ubuntu上可以用提供的脚本生成APK)。
3、安装Android SDK,并配好系统变量。
4、安装Android NDK,同上配置系统变量PATH。
5、安装Caffe,具体回退到哪个版本,建议在SDK源码查看,文档不一定准确。
6、安装TensoRFlow。

二、下载安装步骤
首先到官网下载SNPE SDK压缩包并解压,将其 SNPE_ROOT/bin/x86_64-linux-clang、$SNPE_ROOT/lib/python加入PYTHONPATH系统变量中。
下载安装Caffe,因为此SDK的运行需要用到Caffe提供的一些包。下载Caffe时需要注意安装缺少的系统包,此部分在开发文档中已经提到,缺少的话就会在camke时报错,此处会报出目前缺少的东西,由于我是用的是Ubuntu18.04,所以此处问题很大,按照camke报错提示对缺少依赖逐个进行了补充。
接下来就是在caffe中进行编译了,使用make -j4进行编译,编译过程也可能会报错,我的是报错在链接库那里。以下为官网提示需要下载的模块:
sudo apt-get install cmake git libatlas-base-dev libboost-all-dev libgflags-dev libgoogle-glog-dev libhdf5-serial-dev libleveldb-dev liblmdb-dev libopencv-dev libprotobuf-dev libsnappy-dev protobuf-compiler python-dev python-numpy
Caffe配置命令如下:
git clone https://github.com/BVLC/caffe.git ~/caffe; cd ~/caffe; git reset --hard d8f79537
mkdir build; cd build; cmake …; make all -j4; make install

TensorFlow:
sudo apt-get install python-pip python-dev python-virtualenv
mkdir ~/tensorflow; virtualenv --system-site-packages ~/tensorflow; source ~/tensorflow/bin/activate
pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.0-cp27-none-linux_x86_64.whl

SDK配置:
此步骤允许Qualcomm神经处理SDK通过python API与Caffe和Tensorflow框架进行通信。 要在Ubuntu 14.04上设置SDK,请按照以下步骤操作:

在继续操作之前,请确保已安装Android NDK,Caffe(在〜/ caffe中假定)和可选的TensorFlow(在〜/ tensorflow中假定)。
下载最新的Qualcomm神经处理SDK。
将.zip文件解压缩到适当的位置(此处在〜/ snpe-sdk文件夹中假定)。
安装缺少的系统软件包:
sudo apt-get install python-dev python-matplotlib python-numpy python-protobuf python-scipy python-skimage python-sphinx wget zip
source ~/snpe-sdk/bin/dependencies.sh # 验证依赖是否安装完毕

source ~/snpe-sdk/bin/check_python_depends.sh # 验证是否已安装python依赖项,此处代码中强制要求为Python3.5。

当前控制台初始化SNPE SDK的环境:
cd ~/snpe-sdk/
export ANDROID_NDK_ROOT=~/Android/Sdk/ndk-bundle
source ./bin/envsetup.sh -c ~/caffe #SDK需要用到Caffe的环境
source ./bin/envsetup.sh -t ~/tensorflow

Qualcomm神经处理SDK不会捆绑公开提供的模型文件,但是包含用于下载一些流行模型并将其转换为深度学习容器(“ DLC”)格式的脚本。 脚本位于/ models文件夹中,该文件夹还将包含DLC模型。
cd $SNPE_ROOT
python ./models/alexnet/scripts/setup_alexnet.py -a ./temp-assets-cache -d (下载并转换为Caffe格式的经过预先训练的Alexnet示例)

cd $SNPE_ROOT
python ./models/inception_v3/scripts/setup_inceptionv3.py -a ./temp-assets-cache -d(下载并转换为Tensorflow格式的预训练“ inception_v3”示例)

构建Android 应用程序:
配置环境:
cd $SNPE_ROOT/examples/android/image-classifiers
cp …/…/…/android/snpe-release.aar ./app/libs
bash ./setup_models.sh #此处我在最新的SDK上跑的时候,python脚本无法加载so库,降低一个版本后正常,可能与Ubuntu系统有关,建议为Ubuntu14.04。
以上命令正确执行后,Model路径下内容会发生较大变化,想要了解更多就需要去探索下SDK的框架了。
1、直接使用Android Studio将example下的例子导入执行。
2、本地编译APK,执行此命令:./gradlew assembleDebug

接下来不出意外的话,你可以看到如下:

高通SNPE SDK环境配置_第1张图片

接下来你点击图像,下面就处出现对应图像的描述,这是基于神经网络训练模型的输出结果。

三、总结
本篇文章中,我们详细的阐述了此SDK的安装过程,相较于Adreno GPU SDK、Hexagon DSP SDK而言复杂了很多,但最终效果也是非常好的。

你可能感兴趣的:(sdk)