相關代碼可以在如下鏈接下載:
ai-hub-models/apps/android/ImageClassification at main · quic/ai-hub-models · GitHub
所用硬件有:
1. UBUNTU20.04?
2. 高通QCS6490 開發板
對下載下來的代碼進行編譯
1. ubuntu環境配置
1. python環境配置
如果你的python版本不是支持的版本建議使用Miniconda來管理您的python版本和環境
Installing Miniconda — Anaconda documentation
在您的機器上安裝miniconda。
Linux:安裝完成后,打開一個新的shell窗口
為Qualcomm?AI Hub設置一個環境:
We currently support?Python >=3.8 and <= 3.10
conda create python=3.8 -n qai_hub
conda activate qai_hub
2. 安裝基礎依賴包
pip install qai_hub_models
3. 其他環境配置
1. Java、android sdk和sdkmager
安裝Java 11和?Java 8
Android SDK 要通過Java運行,我們需要先安裝Java.
java8
sudo apt update
sudo apt install openjdk-8-jre
java -version
Java11
sudo apt update
sudo apt install openjdk-11-jdk
java -version
直接設置環境變量JAVA_HOME來確定當前環境使用的java版本
安裝sdkmager時需要使用的是Java8
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
安裝sdkmager
Java安裝完成后,接下來安裝Android SDK。我們需要在Android開發者網站上下載sdk-tools-linux.你可以點擊通過瀏覽器下載,也可以在終端輸入以下命令下載
wget https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip
unzip sdk-tools-linux-3859397.zip
以上命令會生成一個新的目錄,我們把生成的目錄tools移動到自己的安裝目錄中
這里,我們假設安裝目錄為"/opt/andoriod/sdk"
sudo mv tools /opt/android/sdk
進入到tools/bin/下面可以使用命令查看當前已經安裝的組件包和列出可安裝組件包
./sdkmanager --list
安裝指定版本的Android SDK:
sdkmanager "build-tools;30.0.3" "platforms;android-32"
ANDROID_HOME設置為ANDROID SDK路徑
export?ANDROID_HOME=/opt/andoriod/sdk/
2. 配置QNN SDK
QNN SDK可以在高通官網上面下載到:
Qualcomm AI Engine Direct SDK | Qualcomm Developer
下載完成后進行解壓即可
2. 代碼編譯
這時我們需要使用java 11,否則編譯會報錯:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
進入到下載好的代碼如下目錄中:
cd /home/yangyang/work/ai-hub-models/apps/android/ImageClassification/
執行如下命令:
python build_apk.py -q "QNN SDK PATH" -m mobilenet_v3_small
Do you want us to download the model from AI hub (y/n) y ----選擇y
等待編譯完成............
BUILD SUCCESSFUL in 3s
33 actionable tasks: 33 up-to-date
APK Is copied at current Working Directory
Do you want to install this apk in connected device y------選擇y會將生成的apk安裝到連接的設備上,編譯完成后apk也會被拷貝到當前編譯目錄下
如果出現報錯找不到qtld-release.aar?
到{QNN_Install_path}/?lib/android/?下載
例如/opt/qcom/aistack/qnn/2.20.0.240223/lib/android/
將此文件拷貝到QNN的 lib/android/下面即可
如果出現如下報錯:
Error: Could not find or load main class org.gradle.wrapper.GradleWrapperMain
可以到此網址下載gradle-wrapper.jar文件:
http://www.java2s.com/Code/JarDownload/gradle-wrapper/gradle-wrapper.jar.zip
將此文件解壓拷貝到ai-hub-models/apps/android/ImageClassification/gradle/wrapper/下面即可
3.運行效果
作者:高通工程師 廖洋洋