入门指南
本指南介绍了如何开始使用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 开发者专区是 Qualcomm 联合CSDN 共同打造的面向中国开发者的技术专区。致力于通过提供全球最新资讯和最多元的技术资源及支持,为开发者们打造全面一流的开发环境。本专区将以嵌入式、物联网、游戏开发、Qualcomm® 骁龙™处理器的软件优化等技术为核心,打造全面的开发者技术服务社区,为下一代高性能体验和设计带来更多的想法和灵感。
加入 Qualcomm 开发者专区