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

news2024/11/16 6:32:58

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

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.coloradmin.cn/o/1892406.html

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

相关文章

昇思25天学习打卡营第8天|模型权重与 MindIR 的保存加载

目录 导入Python 库和模块 创建神经网络模型 保存和加载模型权重 保存和加载MindIR 导入Python 库和模块 上一章节着重阐述了怎样对超参数予以调整&#xff0c;以及如何开展网络模型的训练工作。在网络模型训练的整个进程当中&#xff0c;事实上我们满怀期望能够留存中间阶段…

python基础语法 004-3流程控制- while

1 while while 主要用的场景没有 for 循环多。 while循环&#xff1a;主要运行场景 我不知道什么时候结束。。。不知道运行多少次 1.1 基本用法 # while 4 > 3: #一直执行 # print("hell0")while 4 < 3: #不会打印&#xff0c;什么都没有print("…

go开源webssh终端源码main.go分析

1.地址: https://github.com/Jrohy/webssh.git 2.添加中文注释地址: https://github.com/tonyimax/webssh_cn.git main.go分析 主包名&#xff1a;main package main //主包名 依赖包加载 //导入依赖包 import ("embed" //可执行文件…

【Qwen2部署实战】探索Qwen2-7B:通过FastApi框架实现API的部署与调用

系列篇章&#x1f4a5; No.文章1【Qwen部署实战】探索Qwen-7B-Chat&#xff1a;阿里云大型语言模型的对话实践2【Qwen2部署实战】Qwen2初体验&#xff1a;用Transformers打造智能聊天机器人3【Qwen2部署实战】探索Qwen2-7B&#xff1a;通过FastApi框架实现API的部署与调用4【Q…

springboot双学位招生管理系统-计算机毕业设计源码93054

摘 要 科技进步的飞速发展引起人们日常生活的巨大变化&#xff0c;电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流&#xff0c;人类发展的历史正进入一个新时代。在现实运用中&#xff0c;应用软件的工作…

松下Panasonic机器人维修故障原因

松下机器人伺服电机是许多工业自动化设备的关键组成部分。了解如何进行Panasonic工业机械臂电机维修&#xff0c;对于确保设备正常运行至关重要。 【松下焊接机器人维修案例】【松下机器人维修故障排查】 一、常见松下工业机械手伺服电机故障及原因 1. 过热&#xff1a;过热可…

Webpack: 并行构建

概述 受限于 Node.js 的单线程架构&#xff0c;原生 Webpack 对所有资源文件做的所有解析、转译、合并操作本质上都是在同一个线程内串行执行&#xff0c;CPU 利用率极低&#xff0c;因此&#xff0c;理所当然地&#xff0c;社区出现了一些以多进程方式运行 Webpack&#xff0…

铜排载流量计算

母线载流量的理论计算 有些设计规范给出了根据电流密度确定母线大小的标准&#xff0c;一般铜母线的要求是每平方毫米载流量1.55A&#xff0c;但只可以作为设计“自由空气中的单导体母线”的参考&#xff0c;不可以作为实际设备中选择母线截面积的方法。也有些设计手册里给出了…

无线领夹麦克风选什么价位,揭秘无线领夹麦克风哪个品牌音质最好

在自媒体的快速发展之下&#xff0c;越来越多人加入到短视频拍摄行业。当我们踏出户外&#xff0c;想要用声音记录美好生活时&#xff0c;一个优质的麦克风便成了不可或缺的装备。户外环境的喧嚣与手机麦克风的局限性常常让我们的声音淹没在背景噪音之中&#xff0c;使得同期录…

小白也能看懂的Python基础教程(8)

Python面向对象 目录 Python面向对象 一、面向对象的概念 1、常见的编程思想 2、面向过程是什么&#xff1f; 3、什么是面向对象&#xff1f; 4、封装 5、继承 6、多态 二、面向对象的概念 1、两个重要概念 2、类 3、对象 4、self关键字 三、对象属性 1、什么…

昇思25天学习打卡营第8天|MindSpore保存与加载(保存和加载MindIR)

在MindIR中&#xff0c;一个函数图&#xff08;FuncGraph&#xff09;表示一个普通函数的定义&#xff0c;函数图一般由ParameterNode、ValueNode和CNode组成有向无环图&#xff0c;可以清晰地表达出从参数到返回值的计算过程。在上图中可以看出&#xff0c;python代码中两个函…

Unity Scrollview的Scrollbar控制方法

备忘&#xff1a;碰到用scrollview自带的scrollbar去控制滑动&#xff0c;结果发现用代码控制scrollbar.value无效&#xff0c;搜了一下都是说用scrollRect.verticalNormalizedPosition和scrollRect.horizontalNormalizedPosition来控制的。我寻思着有关联的scrollbar为什么用不…

【TB作品】智能台灯控制器,ATMEGA128单片机,Proteus仿真

题目 8 &#xff1a;智能台灯控制器 基于单片机设计智能台灯控制器&#xff0c;要求可以调节 LED 灯的亮度&#xff0c;实现定时开启与关闭&#xff0c; 根据光照自动开启与关闭功能。 具体要求如下&#xff1a; &#xff08;1&#xff09;通过 PWM 功能调节 LED 灯亮度&#x…

Jenkins 使用 Publish over SSH进行远程访问

Publish over SSH 是 Jenkins 的一个插件,可以让你通过 SSH 将构建产物分发到远程服务器。以下是如何开启 Publish over SSH 的步骤: 一、安装 Publish over SSH 插件 在 Jenkins 中,进入 "Manage Jenkins" > "Manage Plugins"。选择 "Availab…

储能锂电池出货量持续增长 国家政策推动行业发展速度加快

储能锂电池出货量持续增长 国家政策推动行业发展速度加快 储能锂电池又称锂离子储能电池&#xff0c;指专为储存电能而设计的锂离子电池。储能锂电池具有转换效率高、能量密度高、维护成本低、环境适应性强、响应速度快等优势&#xff0c;在数据中心、通信基站以及电力系统等领…

香橙派AIpro如何赋能AI+边缘流媒体设备

文章目录 &#xff08;一&#xff09;前言&#xff08;二&#xff09;AI边缘流媒体设备展示&#xff08;三&#xff09;赋能AI边缘流媒体设备1、准备开发环境2、在板子中下载编译安装SRS3、基本推拉流测试4、多路推流性能测试 &#xff08;四&#xff09;一些注意事项1、开发板…

webSocket网页通信---使用js模拟多页面实时通信

webSocket是什么 WebSocket是一种先进的网络技术&#xff0c;它提供了一种在单个TCP连接上进行全双工通信的能力。传统的基于HTTP的通信是单向的&#xff0c;即客户端发起请求&#xff0c;服务器响应请求&#xff0c;然后连接关闭。但是&#xff0c;WebSocket允许服务器和客户端…

Nginx系列(二)---Mac上的快速使用

一、安装 前置软件&#xff1a;Homebrew 安装方法&#xff1a;终端输入/bin/bash -c "$(curl -fsSL <https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh>)"更新&#xff1a; brew update 设置中科大镜像源&#xff1a;git -C "$(brew --r…

【串口通信】之TTL电平

1. 什么是串口 串口,全称为串行通信端口,是一种计算机硬件接口,用于实现数据的串行传输。与并行通信不同,串口通信一次只传输一个比特,数据通过串行线按顺序传输。串口通信在嵌入式系统、工业控制、计算机与外围设备通信等领域非常常见 2. 什么是串口通信 串口通信是指通过…

和闺蜜的泰国之旅

每当我回想起那次和闺蜜丽丽&#xff08;全名罗莉&#xff09;的泰国之旅&#xff0c;心中总是涌起复杂的情绪。那段经历仿佛一场噩梦&#xff0c;至今仍无法从脑海中挥去。 我们满怀期待地抵达曼谷&#xff0c;热带的阳光、繁忙的街道、美味的街头小吃&#xff0c;都让我们兴…