香橙派 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 默认账
香橙派 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
目录
- 香橙派 AIpro综合体验及AI样例运行
- 1. 开发板简介
- 1.1 简介
- 1.2 主要参数
- 2. 系统烧录
- 2.1 下载官方镜像和烧录工具
- 2.2 烧录
- 3. 硬件接线和启动系统
- 3.1 硬件接线
- 3.2 启动开关配置
- 4. 局域网远程连接
- 4.1 有线网络连接并获取用于远程连接的IP地址
- 4.1.1 有线网口连接
- 4.1.2 串口登录查询IP地址(适应无显示器,无法登录路由器)
- 4.1.3 HDMI0接口连接显示器查询IP地址
- 4.1.4 路由器查询IP地址
- 4.2 通过MobaXterm的VNC远程连接(图形化界面,操作方便)
- 4.3 通过MobaXterm的SSH远程连接(文字界面,上传下载方便)
- 5. 广域网远程连接
- 5.1 zerotier【推荐】
- 5.2 花生壳
- 6. NPU AI体验
- 6.1 查看NPU信息
- 6.2 运行图片分类(ResNet50)推理程序
- 6.3 从零转换模型、编译和运行图片分类(ResNet50)推理程序
- 6.4 使用jupyter lab在web中运行AI应用
- 6.5 昇腾AI在线资料
- 7. 总结
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 主要参数
名称 | 参数 |
---|---|
CPU | 4核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官方资料地址:
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拨码开关来控制(板背面刻有拔码规则)。
BOOT1 | BOOT2 | 启动方式 |
---|---|---|
右 | 右 | 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.905956
为beagle
。
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.797077
为tabbytabby 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的闭环,实现了真正意义上的万物互联。
更多推荐
所有评论(0)