Qualcomm QCS6490 开发板运行高通AI Hub图像分类程序

相关代码可以在如下链接下载:

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.运行效果

作者:高通工程师 廖洋洋

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41465.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[SAP ABAP] 子例程

子例程 示例1 主程序(Z437_TEST_2024) INCLUDE文件(Z437_TEST_2024_F01) 输出结果如下所示 示例2 主程序(Z437_TEST_2024) INCLUDE文件(Z437_TEST_2024_F01) 输出结果如下所示 补充扩展练习 主程序(Z437_TEST_2024) INCLUDE文件(Z437_TEST_2024_F01) 输出结果如下所示 提示…

验证图像传感器性能

文章目录 验证图像传感器性能 验证图像传感器性能 测试类别测试项目具体方法与描述图像质量测试分辨率测试使用分辨率测试卡&#xff08;如1951 USAF分辨率测试卡&#xff09;拍摄图像&#xff0c;分析成像的清晰度。动态范围测试测试传感器在高对比度场景中的表现&#xff0c…

odoo 物联网 设备数据采集方案

图一 架构手稿(许老师专属) 图二 架构简图 部署 方案一&#xff1a; odoo业务数据库与设备采集数据库使用一个instance。 缺点&#xff1a;重启pg服务相互影响。 方案二&#xff1a; odoo业务数据库与设备采集数据库独立部署&#xff0c;使用两个instance。 优点&#xff1a;…

RedHat / CentOS安装FTP服务

本章教程,记录在RedHat / CentOS中安装FTP的具体步骤。FTP默认端口:21 1、安装 epel 源 yum install -y epel-release2、安装 pure-ftpd yum -y install pure-ftpd3、修改默认配置 # 默认配置位于 /etc/pure-ftpd/pure-ftpd.conf,在配置文件中找到下面几个参数进行修改:#…

AI视频生成技术爆发 引领虚拟数字人产业新潮流

2024年刚开局&#xff0c;先有OpenAI的AI视频生成模型Sora惊艳全网&#xff0c;随后阿里巴巴发布EMO&#xff0c;一张照片音频&#xff0c;就能生成具有生动表情和各种头部姿势、口型完全匹配高保真的人声头像动态视频。 技术的革新不仅为内容创作者打开了新世界的大门&#xf…

数据结构——队列练习题

在C语言中&#xff0c;.和->运算符用于访问结构体的成员变量。它们之间的区别在于&#xff1a;.运算符用于访问结构体变量的成员。->运算符用于访问结构体指针变量的成员 1a&#xff08;rear指向队尾元素后一位&#xff0c;判空判满时牺牲一个存储单元&#xff09; 首先…

小抄 20240703

1 “这么多年&#xff0c;什么都没有变化。” 同样看到这句话&#xff0c;有人会觉得幸福&#xff0c;有人会觉得悲伤。 好的事没变&#xff0c;就觉得幸福。 坏的事没变&#xff0c;会觉得悲伤。 2 人类预测不到的大趋势&#xff0c;只有技术大爆炸&#xff0c;关于人的那…

PEFT - 安装及简单使用

LLM、AIGC、RAG 开发交流裙&#xff1a;377891973 文章目录 一、关于 PEFT二、安装1、使用 PyPI 安装2、使用源码安装 三、快速开始1、训练2、保存模型3、推理4、后续步骤 本文翻译整理自&#xff1a;https://huggingface.co/docs/peft/index 一、关于 PEFT &#x1f917;PEFT…

算力共享解决方案

目录 算力共享解决方案 一、引言 二、目标 三、技术架构 一、基础设施层 二、服务层 三、应用层 四、实施步骤 五、安全与隐私保护 六、经济模型(信用评估-博弈论) 算力共享解决方案 一、引言 背景分析&#xff1a; 随着大数据、人工智能、区块链等技术的飞速发展&…

BugKu-WEB-sodirty

目录 前言 正文 信息收集 代码审计 验证 结尾 前言 七月始,暑假副本也正式开启 正文 信息收集 看着貌似没啥意义 看样子是有备份文件 下载下来 快速审计一下 代码审计 来吧 app.js没啥东西,主要是功能是实现error 我们找一找有没有index.js 找到了 \www\routes\in…

MySQL的Docker部署方式

说明:Docker部署MySQL主要是简单快速&#xff0c;不会对电脑系统造成污染。假如你的本地没有Docker&#xff0c;或者你不会使用Docker&#xff0c;则使用PyCharm去启动MySQL&#xff0c;或者直接在本机安装MySQL都是可以的。最重要的是&#xff0c;你要有一个MySQL环境&#xf…

使用 Git Hooks 防止敏感信息泄露

欢迎关注公众号&#xff1a;冬瓜白 在日常开发中&#xff0c;我们可能会不小心将敏感信息提交到 Git。为了防止这种情况&#xff0c;可以利用 Git Hooks 编写一个简单的脚本&#xff0c;当发现提交中包含敏感词时&#xff0c;给出提示。 以下是一个基于 pre-commit 钩子的示例…

踩坑:Unity导出WebGL发布到手机上竖屏时强制显示横屏

具体的适配问题 公司的项目需要将游戏导出WebGL 发布到Web平台 本以为是个很简单的事情 谁知道却被个横竖屏适配搞的头晕 毕竟只有大学浅浅的学了下HTML这门语言 出来工作后基本上都是在跟C# Lua打交道 言归正传 看看具体问题吧 游戏如果从横屏进入 基本上不会有什么适配问题…

C++ 多进程多线程间通信

目录 一、进程间通信 1、管道&#xff08;Pipe&#xff09; 2、消息队列&#xff08;Message Queue&#xff09; 3、共享内存&#xff08;Shared Memory&#xff09; 4、信号量&#xff08;Semaphore&#xff09; 5、套接字&#xff08;Socket&#xff09; 6、信号&…

Finding Global Homophily in Graph Neural Networks When Meeting Heterophily

本文发表于:ICML22 推荐指数: #paper/⭐⭐⭐ 问题背景: 异配图的邻接矩阵难以确定,以及异配图的计算复杂度开销大 可行的解决办法:高通滤波多跳邻居,GPRGNN(pagerank一类&#xff0c;各阶邻居的权重不同,ACM-GCN&#xff08;高低通滤波,H2GCN&#xff08;应该复杂度很大&…

碳课堂|搞清楚碳足迹,只看这篇文章就够了

碳足迹管理是碳达峰碳中和的重要政策工具&#xff0c;2023年12月&#xff0c;国家发展改革委、工信部、国家市场监管总局、住房城乡建设部、交通运输部等部门联合印发《关于加快建立产品碳足迹管理体系的意见》&#xff0c;对产品碳足迹管理各项重点任务作出系统部署。 推动碳…

音乐播放器

目录 一、设计目标二、实现流程1. 数据库操作2. 后端功能实现3. 前端UI界面实现4. 程序入口 三、项目收获 一、设计目标 1. 模拟网易云音乐&#xff0c;实现本地音乐盒。 2. 功能分析&#xff1a; 登录功能窗口显示加载本地音乐建立播放列表播放音乐删除播放列表音乐 3.设计思…

通过Java调用OceanBase云平台API

最近由于工作原因又开始捣鼓OceanBase&#xff0c;OceanBase云平台(OCP)提供了强大的管理和监控功能&#xff0c;而且对外开放API接口&#xff0c;可以将部分监控整合到自己的平台&#xff0c;所以写了个Java调用OCP API的demo做为自己的技术储备&#xff0c;也想分享给大家。也…

linux下mysql的定时备份

备份是容灾的基础&#xff0c;是指为了防止系统出现操作或系统故障导致数据丢失&#xff0c;而将全部或部分数据集合从应用主机的硬盘或阵列复制到其他的存储介质的过程为什么备份 硬件故障软件故障误操作病毒入侵保留历史记录灾难性事件 存储介质 光盘磁带硬盘磁盘阵列DAS:直接…

[leetcode]文件组合

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<vector<int>> fileCombination(int target) {vector<vector<int>> vec;vector<int> res;int sum 0, limit (target - 1) / 2; // (target - 1) / 2 等效于 target /…