Qualcomm®骁龙™神经处理引擎(Neural Processing Engine, NPE)SDK快速入门指南

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

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

系统要求

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

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

安装最新版Android StudioAndroid Studio

通过Android Studio或独立安装最新版Android SDK。

2.安装最新版Android NDK(通过Android Studio SDK Manager或独立安装)。

安装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

3.可选:安装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.下载最新的骁龙NPE SDK。 将.zip文件解压至适当位置(假定在~/snpe-sdk文件夹中)。

2.安装缺少的系统包:

  • # 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

3.在当前控制台窗口初始化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

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

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

  • •cd $SNPE_ROOT
  • •python ./models/alexnet/scripts/setup_alexnet.py -a ./temp-assets-cache -d
  • 提示:查看执行DLC转换的setup_alexnet.py脚 本。您可能需要针对Caffe模型转换执行相同的操作。

2.可选:下载并转换经预先训练的“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

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

  • 1.启动Android Studio。
  • 2.打开~/snpe-sdk/examples/android/image- classifiers文件夹中的项目。
  • 3.如有的话,接受Android Studio建议,升级 构建系统组件。
  • 4.按下“运行应用”按钮,构建并运行APK。

选项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 解决方案

 

高通软件中心

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

下载软件中心