入门指南

本指南介绍了如何开始使用Qualcomm® 骁龙™神经处理引擎(NPE)SDK。本教程从纯净安装Ubuntu系统开始,提供了安装依赖关系、设置SDK工具、下载并准备部分神经网络模型示例、最后构建可用于人工智能(AI)解决方案的示例Android APP的步骤。
有关此过程详细文档可在SDK文档/doc/html文件夹中找到;您可以打开index.html开始学习。

法律免责声明:本指南的使用,包括但不限于以下说明、步骤和命令,受本网站使用条款的约束,并可能包含非经Qualcomm Technologies, Inc.或其关联公司分发的第三方或开源软件的引用。使用者自行负责安装、配置和使用任何此类第三方或开源软件,并遵守相关许可。


系统要求

我们建议在专门机器上执行以下操作,以便更好地了解SDK依赖关系:

1. 安装Ubuntu 14.04(推荐),例如在虚拟机中安装。

2. 安装最新版Android Studio。

3. 从Android Studio或独立安装最新版Android SDK。

4. 安装最新版Android NDK(从Android Studio SDK Manager或独立安装)。

5. 安装Caffe(安装说明,本SDK建议使用git revision d8f79537)。

# this will build Caffe (and the pycaffe bindings) from source - see the official instructions for more information

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

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

6. 可选:安装TensorFlow(安装说明,推荐版本1.0)。

# this will download and install TensorFlow in a virtual environment - see the official instructions for more information

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

本步骤允许Snapdragon NPE SDK通过python API与Caffe和Tensorflow框架进行通信。在Ubuntu 14.04上安装SDK,请执行以下操作:

1. 确保已安装Android NDK,Caffe(假定安装至~/caffe)和可选的TensorFlow(假定安装至~/tensorflow),然后继续。

2. 下载最新的Snapdragon NPE SDK。

3.将.zip文件解压至适当位置(假定在~/snpe-sdk文件夹中)。

4. 安装缺少的系统包:

# install a few more SDK dependencies, then perform a comprehensive check

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 # verifies that all dependencies are installed

source ~/snpe-sdk/bin/check_python_depends.sh # verifies that the python dependencies are installed

5. 在当前控制台窗口初始化Snapdragon NPE SDK环境;以后,每个新控制台需重复此操作:

# initialize the environment on the current console

cd ~/snpe-sdk/

export ANDROID_NDK_ROOT=~/Android/Sdk/ndk-bundle # default location for Android Studio, replace with yours

source ./bin/envsetup.sh -c ~/caffe

source ./bin/envsetup.sh -t ~/tensorflow # optional for this guide

初始化过程将设置或更新$SNPE_ROOT, $PATH, $LD_LIBRARY_PATH, $PYTHONPATH, $CAFFE_HOME, $TENSORFLOW_HOME,此外,还在本地复制Android NDK libgnustl_shared.so库,更新Android AAR存档文件。

下载ML Models并转换为.DLC

Snapdragon NPE SDK没有绑定公开的模型文件,但包含一些脚本,可用于下载一些流行模型并将其转换为Deep Learning Container(“DLC”)格式。脚本位于/models文件夹中,文件夹中还包含DLC模型。

• 下载并转换经预先训练的Alexnet示例(Caffe格式):

• cd $SNPE_ROOT

python ./models/alexnet/scripts/setup_alexnet.py -a ./temp-assets-cache -d

提示:查看执行DLC转换的setup_alexnet.py脚本。您可能需要针对Caffe模型转换执行相同的操作。

• 可选:下载并转换经预先训练的“inception_v3”示例(Tensorflow格式):

cd $SNPE_ROOT

python ./models/inception_v3/scripts/setup_inceptionv3.py -a ./temp-assets-cache -d

提示:查看setup_inceptionv3.py脚本,此脚本还对模型进行了量化,大小缩减了75%(91MB→23MB)。

构建示例Android APP

Android APP结合了Snapdragon NPE运行环境(/android/snpe-release.aar Android库提供)和上述Caffe Alexnet示例生成的DLC模型。

1. 复制运行环境和模型,为构建APP作好准备

cd $SNPE_ROOT/examples/android/image-classifiers

cp ../../../android/snpe-release.aar ./app/libs # copies the NPE runtime library

bash ./setup_models.sh # packages the Alexnet example (DLC, labels, imputs) as an Android resource file

2. 选项A:从Android studio构建Android APK:

1. 启动Android Studio。

2.打开~/snpe-sdk/examples/android/image-classifiers文件夹中的项目。

3.如有的话,接受Android Studio建议,升级构建系统组件。

4.按下“运行应用”按钮,构建并运行APK。

3.选项B:从命令行构建Android APK:

sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1

libbz2-1.0:i386 # Android SDK build dependencies on ubuntu

./gradlew assembleDebug # build the APK

上述命令可能需要将ANDROID_HOME和JAVA_HOME设置为系统中的Android SDK和JRE/JDK所在位置。

接下来

恭喜您,您刚刚使用Snapdragon NPE SDK制作了第一款应用。现在,您可以开始创建属于自己的AI解决方案了!


示例Android APP的源代码演示了如何正确使用SDK。您可以从ClassifyImageTask.java开始。SDK随附文档中还有API文档、教程和架构详细资料。您可以在浏览器中打开/doc/html/index.html开始学习。常见问题可以在论坛中找到答案,您也可以在论坛里和我们的专家讨论“API”。

Qualcomm 解决方案

 

高通软件中心

通过集中式门户站无缝管理您的高通®软件和工具

下载软件中心