香橙派 AIpro综合体验及AI样例运行

香橙派 AIpro综合体验及AI样例运行

环境:
香橙派版本: AIpro(8TOPS@INT8)
OS : Ubuntu 22.04.3 LTS(GNU/Linux 5.10.0+ aarch64) (2024-03-18)
远程服务端1:OpenSSH 8.9p1 
远程服务端2:TightVNC Server 1.3.10
远程客户端:MobaXterm 24.1
CANN:7.0.0
默认账号:HwHiAiUser
默认密码:Mind@123

1. 开发板简介

1.1 简介

香橙派 AIpro开发板采用昇腾AI处理器(4核64位ARM处理器+AI处理器),提供8TOPS@INT8 AI算力,内存提供8GB/16GB。

香橙派 AIpro提供了丰富的接口,包括双4K HDMI输出、Type-C电源接口、GPIO接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB、两个MIPI摄像头、一个MIPI屏等,预留电池接口。

香橙派 AIpro支持Ubuntu、OpenEuler操作系统,可以实现图像、视频等多种数据分析与推理计算。

1.2 主要参数

名称参数
CPU4核64位Arm处理器
NPU华为昇腾310B4处理器
AI算力8TOPS@INT8, 4TFLOPS@FP16
内存8GB 或 16GB
存储TF卡, eMMC, SSD
以太网10/100/1000Mbps
Wi-Fi+蓝牙2.4G和5G双频WIFI,蓝牙4.2
操作系统Ubuntu 22.04 和 OpenEuler 22.03
待机功耗9w

2. 系统烧录

2.1 下载官方镜像和烧录工具

OrangePi AIpro官方资料地址:

http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-Pi-AIpro.html

ubuntu官方镜像:opiaipro_ubuntu22.04_desktop_aarch64_20240318.img.xz
注意:desktop镜像预装Linux桌面、CANN、AI 示例代码等,minimal镜像不包括上述内容。

烧录工具:balenaEtcher

用户手册:OrangePi_AI_Pro_昇腾_用户手册_v0.3.1.pdf
在这里插入图片描述

2.2 烧录

香橙派 AIpro支持TF卡、eMMC 和 SSD 启动。

其中,TF卡方式操作简单,烧录方式详见手册用户手册中的《2.4 烧写 Linux 镜像到 TF 卡中的方法》。

3. 硬件接线和启动系统

3.1 硬件接线

电源TYPE-C:位于板正面左下角位置,板上刻有PWR IN)
HDMI输出:位于板正面下方中间位置,板上刻有HDMI0,目前只有HDMI0支持输出(HDMI1后续系统升级后会支持)

在这里插入图片描述
在这里插入图片描述

3.2 启动开关配置

开发板支持从TF卡、eMMC 和 SSD启动。
具体的启动方式由开发板背面的BOOT1 和 BOOT2拨码开关来控制(板背面刻有拔码规则)。

BOOT1BOOT2启动方式
TF卡
eMMC
SSD
预留

在这里插入图片描述

4. 局域网远程连接

4.1 有线网络连接并获取用于远程连接的IP地址

4.1.1 有线网口连接

开发板的网口位于正面右下角的位置,通过有线连接到路由器的LAN口,路由器会自动分配IP给香橙派。

4.1.2 串口登录查询IP地址(适应无显示器,无法登录路由器)

开发板正面电源附近标有UART的串口,通过Micro USB接口的数据线连接UART口和电脑的USB口。

通过MobaXterm的Serial进行串口连接

【Session】-【Serial】-【Serial port: USB-Enhanced-SERIAL CH343 (COMxx)】-【Speed: 115200】-【输入账号:HwHiAiUser】-【输入密码:Mind@123】

在这里插入图片描述
在这里插入图片描述

注意:
如果Serial port选项中没有USB-Enhanced-SERIAL CH343 (COMxx),需要先安装串口驱动。
开发板使用的CH343芯片,驱动下载地址:https://www.wch.cn/downloads/CH343SER_EXE.html

4.1.3 HDMI0接口连接显示器查询IP地址

HDMI0接口连接显示器,通过键盘在终端中输入ifconfig命令查询ip地址,其中eth0表示有线网口。

$ ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
      inet 192.168.2.15  netmask 255.255.255.0  broadcast 192.168.2.255
4.1.4 路由器查询IP地址

登录路由器管理页面查询香橙派的IP地址,如192.168.2.15
在这里插入图片描述

4.2 通过MobaXterm的VNC远程连接(图形化界面,操作方便)

官方系统的VNC Server是默认安装和开机自启动的,端口为5901。

可以直接使用MobaXterm的VNC远程连接

【Session】-【VNC】-【IP: 192.168.2.15】-【Port:5901】-【输入密码:Mind@123】

官方默认的VNCServer配置使用的是root用户,可以通过以下操作更换为HwHiAiUser用户。

  • 切换到HwHiAiUser用户
su HwHiAiUser
  • 停止vncserver
$ vncserver -kill :1
  • 编辑vncserver服务配置
$ sudo vim /etc/systemd/system/vncserver@.service

将User由root修改为HwHiAiUser

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=HwHiAiUser
PAMName=login
PIDFile=/home/%u/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920x1080 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

设置vnc密码

$ vncserver :1

注意:这里启动vncserver一方面是为了设置密码(单纯设置密码可以执行vncpasswd),一方面是为了生成xstartup文件

修改vnc启动文件xstartup设置xface启动。

$ vim ~/.vnc/xstartup
#!/bin/sh

startxfce4 &

注意:如果不修改xstartup启动startxfce4桌面,会出现灰屏问题

启动vncserver服务 或 重启系统

$ sudo systemctl daemon-reload
$ sudo systemctl start vncserver@1

$ sudo reboot

在这里插入图片描述

4.3 通过MobaXterm的SSH远程连接(文字界面,上传下载方便)

官方系统的sshd是默认安装和开机自启动的,端口为22。

可以直接使用MobaXterm的SSH远程连接

【Session】-【SSH】-【Remote host: 192.168.2.15】-【Specify username: HwHiAiUser 】-【Port:22】-【输入密码:Mind@123】

SSH中启动xfce桌面

$ xfce4-session

在这里插入图片描述

5. 广域网远程连接

如果有公网IP,可以直接使用公网访问。
没有公网IP的话,可以使用内网穿透工具进行异地访问,访问方式可以为SSH VNC等。
内网穿透工具可以使用zerotier、花生壳等。

5.1 zerotier【推荐】

安装

$ sudo snap install zerotier
$ sudo zerotier status
$ sudo zerotier join <nwid>

其中,需要加入的网络id,可以在https://my.zerotier.com中新建并使用。
在这里插入图片描述
查看香橙派zerotier网络,出现IP地址表示成功。
出现ACCESS_DENIED,可能是加入的网络没有权限。

$ sudo zerotier listnetworks
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks xxx xxx xx:xx:xx:xx:xx:xx OK PRIVATE ztkxxx 192.168.192.15/24

5.2 花生壳

花生壳的方式有端口和流量限制,这里不再详述具体过程。

wget "https://dl.oray.com/hsk/linux/phddns_5.1.0_rapi_aarch64.deb" -O phddns_5.1.0_rapi_aarch64.deb
$ sudo dpkg --install phddns_5.1.0_rapi_aarch64.deb

6. NPU AI体验

香橙派 AIpro AI特性是重中之重的部分,开发板的NPU是华为昇腾310B4,NUP算力为8TOPS@INT8,可以用于AI算法验证、数据分析和推理等。

6.1 查看NPU信息

$ npu-smi info
+--------------------------------------------------------------------------------------------------------+
| npu-smi 23.0.0                                   Version: 23.0.0                                       |
+-------------------------------+-----------------+------------------------------------------------------+
| NPU     Name                  | Health          | Power(W)     Temp(C)           Hugepages-Usage(page) |
| Chip    Device                | Bus-Id          | AICore(%)    Memory-Usage(MB)                        |
+===============================+=================+======================================================+
| 0       310B4                 | Alarm           | 0.0          59                15    / 15            |
| 0       0                     | NA              | 0            2371 / 7545                             |
+===============================+=================+======================================================+

每隔1秒刷新NPU信息

watch -n 1 npu-smi info

6.2 运行图片分类(ResNet50)推理程序

  • 程序说明

基于PyTorch框架的ResNet50模型,对*.jpg图片分类,输出各图片Top5置信度的分类ID、分类名称。

  • 源码编译【可忽略】

官方包中本程序已完成编译、模型转换和数据集等操作,可以直接运行。

$ su root
# cd /opt/opi_test/ResnetPicture/scripts
# bash sample_build.sh

注意:这里切换到root是因为/opt目录需要root权限。

  • 运行程序
$ su root
# cd /opt/opi_test/ResnetPicture/scripts
# bash sample_run.sh
  • 运行结果
# bash sample_run.sh
[INFO] The sample starts to run
[INFO] InitACLResource success.
[INFO] Init dvpp resource success.
[INFO] Load model ../model/resnet50.om success
[INFO] top 1: index[162] value[0.905956] class[beagle]
[INFO] top 2: index[161] value[0.092549] class[bassetbasset hound]
[INFO] top 3: index[166] value[0.000758] class[Walker houndWalker foxhound]
[INFO] top 4: index[167] value[0.000559] class[English foxhound]
[INFO] top 5: index[163] value[0.000076] class[bloodhound sleuthhound]
[INFO] Unload model ../model/resnet50.om success

可以看到置信度0.905956beagle
在这里插入图片描述

6.3 从零转换模型、编译和运行图片分类(ResNet50)推理程序

ResnetPicture图片分类推理程序的源码在EdgeAndRobotics项目中,git地址如下:

$ git clone https://gitee.com/ascend/EdgeAndRobotics.git

ResnetPicture图片分类推理程序位于Samples/ResnetPicture

$ cd EdgeAndRobotics/Samples/ResnetPicture

下面开始转换模型、编译和运行图片分类(ResNet50)推理程序:

  • ResNet50模型(.onnx)转换为昇腾AI模型(.om)

配置参数减少atc模型转换使用的进程数,减小内存占用。可防止出现进程被杀问题 /usr/local/Ascend/ascend-toolkit/latest/bin/atc: line 17: 30884 Killed

export TE_PARALLEL_COMPILER=1
export MAX_COMPILE_CORE_NUMBER=1

转换om模型

cd ResnetPicture/model
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50.onnx
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/resnet50/resnet50_DVPP/aipp.cfg
atc --model=resnet50.onnx --framework=5 --output=resnet50 --input_shape="actual_input_1:1,3,224,224"  --soc_version=Ascend310B4 --insert_op_conf=aipp.cfg

模型转换CPU占用26%,内存3.2GB(完成后降到1.2GB),耗时约3分钟。

atc命令中参数含义如下,详细参数见 《ATC模型转换指南》

--model:ResNet-50网络的模型文件的路径
--framework:原始框架类型。5表示ONNX
--output:resnet50.om模型文件的路径
--input_shape:模型输入数据的shape
--soc_version:昇腾AI处理器的版本
  • 下载测试图片

默认图片是狗的图片,这里我们换成猫的图片(为了不修改代码,我们下载时候还是使用代码中图片名称dog1_1024_683.jpg)。

cd ResnetPicture/data
wget https://cat-world.com/wp-content/uploads/2017/06/brown-tabby-cat-scaled-e1617688562612.jpg -O dog1_1024_683.jpg
  • 源码编译
cd ResnetPicture/scripts 
bash sample_build.sh
  • 运行
cd ResnetPicture/scripts 
bash sample_run.sh
  • 结果
$ bash sample_run.sh
[INFO] The sample starts to run
[INFO] InitACLResource success.
[INFO] Init dvpp resource success.
[INFO] Load model ../model/resnet50.om success
[INFO] top 1: index[281] value[0.797077] class[tabbytabby cat]
[INFO] top 2: index[282] value[0.105374] class[tiger cat]
[INFO] top 3: index[285] value[0.085334] class[Egyptian cat]
[INFO] top 4: index[292] value[0.002015] class[tigerPanthera tigris]
[INFO] top 5: index[287] value[0.001632] class[lynxcatamount]
[INFO] Unload model ../model/resnet50.om success
[INFO] The program runs successfully

可以看到置信度0.797077tabbytabby cat
在这里插入图片描述

6.4 使用jupyter lab在web中运行AI应用

启用jupyter lab

$ cd ~/samples/notebooks
$ $ ./start_notebook.sh 0.0.0.0

输出的日志中可以看到一个网址,在浏览器中打开该网址

http://orangepiaipro:8888/lab?token=xxx

在官方镜像中有9个AI应用,我们以01-yolov5作为演示说明,其他都是类似操作。

运行01-yolov5 目标检测

  • jupyter lab左侧界面双击“01-yolov5”,进入目录
  • 双击打开 main.ipynb,右侧界面会显示 main.ipynb 文件中的内容
  • 单击**>>**按钮,在弹出的对话框中单击“Restart”开始运行
  • 经过一段时间,可以看到模型对视频的每一帧进行推理,并标注推理结果
    在这里插入图片描述
    在这里插入图片描述

6.5 昇腾AI在线资料

在线课程
https://www.hiascend.com/edu/courses

在线文档
https://www.hiascend.com/document

7. 总结

香橙派 AIpro开发板从支持8G或16GB大内存,支持TF,eMMC,SSD等多种存储方式,支持多种外设接口,可以满足Linux硬件开发,Linux软件开发等需求。
香橙派 AIpro开发板的AI性能也是十分惊艳,对于AI算法验证、数据分析和推理等开发者多提供了一个选项,这也是国产AI开发板迈出的一大步。
香橙派 AIpro开发板打通了自外设(Iot数据采集),到Linux应用(Iot数据处理),再到AI推理(Iot数据分析及推理)的环节,实现了AIoT的闭环,实现了真正意义上的万物互联。

<think>嗯,用户想在香橙上实现语音控制,需要教程或语音识别与控制的指导。首先,我得看看他们提供的引用内容里有没有相关的信息。引用1提到有个用C语言编写的智能语音控制中心,支持树莓、Nanopi和香橙Zero Plus,这可能有用。里面需要百度语音识别和图灵机器人的API Key,用户可能需要自己申请。引用4和5提到了香橙AIpro的语音识别和腾讯AI平台的注册,这可能也是一个途径。 用户可能已经有香橙设备,但具体型号不确定。比如引用3提到的是OrangePi Zero2,而引用4是OrangePi AIpro。不同的型号可能在配置步骤上有差异,需要提醒用户注意兼容性。另外,用户可能需要基础的操作系统设置,比如烧录镜像、配置系统环境,引用5提到了烧录镜像和腾讯AI的注册,这可能相关。 用户的问题是关于如何实现的,所以步骤需要详细。可能需要包括硬件准备(麦克风、扬声器)、软件依赖安装(比如Python库、C语言环境)、获取API密钥、配置语音识别服务、编写或下载代码,以及测试。引用1中的C程序可能需要用户有C语言基础,但用户可能希望更简单的解决方案,比如Python脚本,但引用里的子都是C和gcc编译的,可能需要指出这点。 此外,用户可能需要知道如何连接外设,比如引用2中的语音模块通过串口连接,引用3中的UART测试。这可能涉及到硬件接线,比如UART引脚连接,配置串口设备等步骤。需要分步骤说明,比如安装声卡驱动、测试录音播放,然后处理语音识别和控制逻辑。 还要注意引用中提到的环境音量适配和偶发声音检测,这些可能需要在代码中配置,用户可能需要调整阈值或修改代码。同时,用户可能需要扩展控制功能,比如引用1中的简单灯控,用户可能需要添加自己的控制逻辑,比如控制GPIO引脚的家电。 最后,生成相关问题时要考虑用户可能的后续问题,比如优化识别准确率、降低延迟、多语言支持或离线识别方案,以及整合其他AI服务。需要确保回答覆盖了主要步骤,并引导用户进一步探索。</think>### Orange Pi 语音控制实现步骤 #### 一、基础环境准备 1. **系统烧录** 需为Orange Pi烧录适配的操作系统(如Ubuntu或Armbian),推荐使用官方镜像。烧录工具可使用BalenaEtcher或Rufus[^5]。 ```bash # 示:检查系统版本 lsb_release -a ``` 2. **硬件连接** 外接USB麦克风或兼容的语音模块(如LD3320),通过UART或USB接口连接开发板。接线需注意引脚对应关系(如TXD/RXD交叉连接)[^2][^3]。 #### 二、语音识别服务配置 1. **API申请** - 注册百度语音识别/腾讯AI开放平台账号,获取`API Key`和`Secret Key`[^1] - 图灵机器人API用于语义理解(可选)[^1] 2. **依赖库安装** 若使用C语言开发,需安装`alsa-lib`音频库和`libcurl`网络库: ```bash sudo apt-get install libasound2-dev libcurl4-openssl-dev ``` #### 三、代码实现(以C语言为) 1. **录音与播放** 使用ALSA库实现音频采集,需设置采率(如16kHz)和声道数: ```c // 示:ALSA初始化 snd_pcm_open(&handle, "default", SND_PCM_STREAM_CAPTURE, 0); snd_pcm_set_params(handle, SND_PCM_FORMAT_S16_LE, SND_PCM_ACCESS_RW_INTERLEAVED, 1, 16000, 1, 50000); ``` 2. **语音识别调用** 通过HTTP POST将音频数据发送至云端API: ```c // 示:调用百度语音识别 curl_easy_setopt(curl, CURLOPT_URL, "http://vop.baidu.com/server_api"); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post_data); ``` 3. **控制逻辑开发** 解析返回的JSON结果并触发对应操作(如GPIO控制): ```c // 示:GPIO控制LED system("echo 1 > /sys/class/gpio/gpio17/value"); ``` #### 四、部署与优化 1. **音量自适应** 添加环境噪声检测模块,动态调整录音阈值: ```c // 示:计算音频能量值 double energy = calculate_energy(buffer, frames); if (energy > THRESHOLD) start_recording(); ``` 2. **离线方案(可选)** 使用PocketSphinx等开源工具实现本地识别(需牺牲部分准确率): ```bash sudo apt-get install pocketsphinx pocketsphinx-en-us ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

itas109

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值