安裝使用Qualcomm® Snapdragon™ Neural Processing Engine (NPE) SDK

本文介紹瞭如何開始使用Qualcomm®Snapdragon™神經處理引擎(NPE)SDK。 從乾淨的Ubuntu安裝開始,本教程旨在爲您提供安裝依賴性的步驟,設置SDK工具,下載並準備一些示例神經網絡模型,最後構建可用於解決方案的示例Android APP 使用人工智能(AI)。

系統要求

我們建議在專用機器上執行以下操作,以更好地瞭解SDK依賴關係:
1. 安裝Ubuntu 14.04(推薦),例如在虛擬機上。
2. 安裝最新版本的Android Studio。
3. 安裝最新的Android SDK,可以從Android Studio安裝,或者獨立安裝。
4. 安裝最新的Android NDK,可以從Android Studio SDK Manager中安裝,或者獨立安裝。
5. 安裝Caffe(安裝說明,本SDK推薦的git修訂版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-sdkfolder中)。
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存檔。

下載MLModels並將其轉換爲.DLC

Snapdragon NPE SDK不捆綁可公開的模型文件,但包含用於下載一些流行模型並將其轉換爲深度學習容器(“DLC”)格式的腳本。 腳本位於/ models文件夾中,它還將包含DLC模型。

  • 以Caffe格式下載並轉換預先訓練的Alexnet示例:
cd $SNPE_ROOT
python ./models/alexnet/scripts/setup_alexnet.py -a ./temp-assets-cache -d

提示:查看setup_alexnet.py腳本,該腳本執行到DLC的轉換。 您可能會對您的Caffe模型轉換執行相同的操作。

  • 可選:以Tensorflow格式下載並轉換預訓練的“inception_v3”示例:
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是開始學習的好起點。 API文檔,教程和架構詳細信息可以在SDK中附帶的文檔中找到。 將瀏覽器指向/doc/html/index.html開始學習。 有關常見問題的答案可以在論壇中找到,在那裏您還可以與我們的專家討論“API”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章