相关代码可以在如下链接下载:
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.运行效果
作者:高通工程师 廖洋洋