香橙派 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

文章目录

  • 香橙派 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 主要参数

名称参数
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的闭环,实现了真正意义上的万物互联。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

宝塔部署纯Vue项目,无后端

1.打包项目 生成一个dist文件夹 2.创建云服务器根目录 3.创建站点 4.上传文件 5.访问

2024.5.22 关于 SpringCloud —— Nacos 配置管理

目录 Nacos 配置统一管理 Nacos 配置热部署 Nacos 多环境配置共享 配置优先级 Nacos 配置统一管理 实例理解 我们想要利用 Nacos 在 user-service 的 application.yml 配置文件中新增配置项此处我们将新增配置日期格式为 yyyy-MM-dd HH:mm:ss下图为新增 Nacos 配置统一管理…

ROS for LabVIEW:实现LabVIEW与ROS的无缝集成

ROS for LabVIEW是由Tufts大学开发的一套VI集合&#xff0c;旨在实现LabVIEW与ROS&#xff08;Robot Operating System&#xff09;的无缝集成。ROS是一个灵活的机器人软件框架&#xff0c;而LabVIEW则是一种强大的图形化编程工具。这个工具包的推出使得LabVIEW用户能够直接与R…

针对上两篇微信同声传译语音播报功能,又出现了坑

我又双叒叕来了&#xff0c;自己写的bug&#xff0c;跪着也要改完&#xff0c;我是真的服了 首先&#xff0c;我们来说说是什么问题吧 上一篇文章的这张图还记得吧&#xff0c;不记得的&#xff0c;我在下面贴出来了&#xff1b; 我们在长度大于300的时候&#xff0c;根据句号…

dp + 计数,1954D - Colored Balls

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1954D - Codeforces 二、解题报告 1、思路分析 本题前置题目&#xff1a; 1953. 你可以工作的最大周数 通过前置题目可以知道如何计算两两不同数对序列的最大长度 我们记最大数量为ma&#xf…

景源畅信电商:做抖店的成本高吗?

在当今数字化时代&#xff0c;抖音不仅仅是一个分享短视频的平台&#xff0c;更是一个充满商机的市场。随着抖音用户量的激增&#xff0c;越来越多的商家和个人开始关注在抖音上开设店铺&#xff0c;即所谓的“抖店”。那么&#xff0c;做抖店的成本高吗?这个问题困扰着许多初…

剖析【C++】——类与对象(上)超详解——小白篇

目录 1.面向过程和面向对象的初步认识 1.面向过程&#xff08;Procedural Programming&#xff09; 2.面向对象&#xff08;Object-Oriented Programming&#xff09; 概念&#xff1a; 特点&#xff1a; 总结 2.C 类的引入 1.从 C 语言的结构体到 C 的类 2.C 中的结构…

InTouch历史报警、历史事件按时段查询,导出

简介&#xff1a;本插件基于上位机组态InTouch的历史报警、操作记录而开发 适用InTouch版本&#xff1a;不限 适用Windows系统&#xff1a;不限 适用数据库&#xff1a;SQL Server 标记名点数&#xff1a;不限 配套软件安装&#xff1a;Excel、WPS、SQL Server 功能&…

【C++初阶】—— 类和对象 (上)

&#x1f4dd;个人主页&#x1f339;&#xff1a;EterNity_TiMe_ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 类和对象 1. 初步认识C2. 类的引入3. 类的定义声明和定义全部放在类体中声明和定义分开存放 4.…

内网横向移动小补充 --->PTK

大家别急&#xff0c;我的基于资源的约束性委派攻击还在写&#xff0c;这个东西一时半会讲不清楚&#xff0c;所以我在这里先来补充一点横向移动以前没说好的东西&#xff01;&#xff01;&#xff01; 在更啦&#xff0c;别催啦~~~~ 还记得我之前在内网渗透里面讲过这个PTK&a…

二分例题(D.负重越野,I.路径规划)

这两天的训练赛都有一道二分的题&#xff0c;但是都没往二分上面想&#xff0c;同样不知道怎么二分。 D. Fast and Fat 思路 二分的关键也就是check函数怎么写了&#xff0c;求队伍最大速度&#xff0c;可以分为速度>mid和<mid两部分&#xff0c;再判断&#xff0c;能不…

乡村振兴的乡村旅游新模式:挖掘乡村旅游资源,创新旅游开发方式,打造乡村旅游新品牌,助力美丽乡村建设

目录 一、引言 二、乡村旅游资源挖掘 1、自然景观资源 2、人文历史资源 3、农业产业资源 三、旅游开发方式创新 1、多元化旅游产品 2、体验式旅游模式 3、智慧旅游建设 四、乡村旅游新品牌打造 1、品牌定位与策划 2、品牌传播与推广 3、品牌维护与提升 五、助力美…

【面试必看】Java并发

并发 1. 线程 1. 线程vs进程 进程是程序的一次执行过程&#xff0c;是系统运行程序的基本单位&#xff0c;因此进程是动态的。 系统运行一个程序即是一个进程从创建&#xff0c;运行到消亡的过程。在 Java 中&#xff0c;当我们启动 main 函数时其实就是启动了一个 JVM 的进…

英语新概念2-回译法-lesson16

第一次回译 if you ___ your car on a wrong place, the traffic police man will find you quickly. If he do not give you the ticket,you are lucky.However,the ___ not all like this,The police man is __ sometimes.I had a holiday in Sweden, I found a ___ in my c…

QT安装和配置[安装注意点][QT找不到python27.dll][缩小空间]

安装注意点 本文摘录于&#xff1a;https://blog.csdn.net/Python_0011/article/details/131699443只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 双击"qt-online-installer-windows-x64-4.8.0.exe"文件后输入账号选择如下控…

spring boot3整合邮件服务实现邮件发送功能

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 目录 内容概要 开通服务 依赖引入 配置属性 创建邮件发送工具类 测试 最近发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家…

小白不知道怎么投稿?记住这个好方法

作为一名单位信息宣传员,我最初踏上这条道路时,满心憧憬着通过文字传递我们单位的精彩瞬间,让社会听见我们的声音。然而,理想与现实之间的距离,却在一次次邮箱投稿的石沉大海中渐渐清晰。那时的我,像所有“小白”一样,以为只要用心撰写稿件,通过电子邮件发给各大媒体,就能收获满…

大规模团队的数据库开发,如何用OceanBase工具快速建立企业级账号体系

前言 为了让数据库开发的安全性与可靠性得以充分保障&#xff0c;数据库开发工具的管控能力显得尤为关键。构建一个健全的账号体系&#xff0c;能够协助开发团队实现对数据库开发工具的全方位管控&#xff0c;从而有效防范各类数据安全隐患&#xff0c;确保数据库开发的顺利进…

BFS解决最短路问题(详解)

目录 BFS简介 && 框架&#xff1a; 一.二叉树的最小深度 二&#xff1a;迷宫中里入口最近的出口&#xff1a; 三.最小基因变化: 四&#xff1a;单词接龙&#xff1a; ​五&#xff1a;为高尔夫比赛砍树&#xff1a; BFS简介 && 框架&#xff1a; 说到BFS…

【JAVASE】接口(上)

一&#xff1a;接口的概念 在现实生活中&#xff0c;接口的例子比比皆是&#xff0c;比如&#xff1a;笔记本上上的USB接口。 电脑上的USB口上可以插:U盘、鼠标、键盘等。 电源插座插孔上可以插入&#xff1a;电脑、电视机等。 通过以上例子可以看出&#xff1a;接口就是公共…