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

news2024/9/17 4:07:22

香橙派 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的闭环,实现了真正意义上的万物互联。

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

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

相关文章

使用numpy手写一个神经网络

本文主要包含以下内容&#xff1a; 推导神经网络的误差反向传播过程使用numpy编写简单的神经网络&#xff0c;并使用iris数据集和california_housing数据集分别进行分类和回归任务&#xff0c;最终将训练过程可视化。 1. BP算法的推导过程 1.1 导入 前向传播和反向传播的总体…

基于EBAZ4205矿板的图像处理:10gamma变换

基于EBAZ4205矿板的图像处理&#xff1a;10gamma变换 项目全部文件 会上传项目全部文件&#xff0c;如果没传&#xff0c;可以私信催我一下&#xff0c;最近太忙了 先看效果 我的项目中的gamma的变换系数为2.2&#xff0c;是会让图像整体变暗的&#xff0c;看右图说明我的ga…

哪款洗地机好用?洗地机十大排行榜

在智能家电飞速发展的今天&#xff0c;洗地机因其吸拖洗一体化的技术优势&#xff0c;成为越来越多家庭的清洁利器。它不仅能快速清理各种地面污渍&#xff0c;还能轻松处理干湿垃圾&#xff0c;大大提升了日常清洁的效率。可是面对市场上琳琅满目的洗地机品牌和型号&#xff0…

数据持久化第六课-ASP.NET运行机制

数据持久化第六课-ASP.NET运行机制 一.预习笔记 1.动态网页的工作机制通常分为以下几个阶段&#xff1a; 1&#xff09;使用动态Web开发技术编写Web应用程序&#xff0c;并部署到Web服务器。 2&#xff09;客户端通过在浏览器中输入地址&#xff0c;请求动态页面。 3&#…

Swift 初学者交心:在 Array 和 Set 之间我们该如何抉择?

概述 初学 Swift 且头发茂密的小码农们在日常开发中必定会在数组&#xff08;Array&#xff09;和集合&#xff08;Set&#xff09;两种类型之间的选择中“摇摆不定”&#xff0c;这也是人之常情。 Array 和 Set 在某些方面“亲如兄弟”&#xff0c;但实际上它们之间却有着“云…

关于DDos防御...别在听别人瞎扯了.....

前言 无意间刷文章的时候看到一篇文章&#xff0c;写的是遇到ddos&#xff0c;怎么用iptables封IP....... 然后我就百度搜了一下&#xff0c;好多都是这么说的&#xff0c;但是我发现&#xff0c;大多数人只要遭受过长期Ddos的&#xff0c;就不会再信网上的文章 文笔不太好&…

【Qt】深入探索Qt事件处理:从基础到高级自定义:QEvent

文章目录 前言&#xff1a;1. 事件的介绍2. 事件的处理2.1. 示例1&#xff1a; 重写鼠标进入和鼠标离开事件2.2. 示例2&#xff1a;当鼠标点击时&#xff0c;获取对应的坐标值&#xff1b;2.3. 鼠标释放事件2.4. 鼠标双击事件2.5. 鼠标移动事件2.6. 鼠标滚轮的滚动事件 3. 按键…

后端经典三层架构

大家好&#xff0c;这里是教授.F 引入&#xff1a; MVC 全称∶ Model 模型、View 视图、 Controller 控制器。MVC 最早出现在 JavaEE 三层中的 Web 层&#xff0c;它可以有效的指导WEB 层的代码如何有效分离&#xff0c;单独工作。 View 视图∶只负责数据和界面的显示&#…

Python I/O操作笔记

打开文件&#xff1a; 使用 open() 函数&#xff0c;其中文件路径可以是相对路径或绝对路径。 模式除了常见的 r&#xff08;只读&#xff09;、w&#xff08;写入&#xff0c;会覆盖原有内容&#xff09;、a&#xff08;追加&#xff09;外&#xff0c;还有一些其他组合模式&…

小度推出全球首款基于文心大模型的学习机Z30,仅售价6699元

5月27日&#xff0c;小度科技召开新品发布会&#xff0c;全球首款基于文心大模型的学习机——小度学习机Z30重磅发布。 据「TMT星球」了解&#xff0c;该产品基于文心大模型&#xff0c;重新定义了“AI老师”的能力边界&#xff0c;不仅是一款能为孩子提供全面、有效学习辅导的…

LINUX环境基础练习题(附带答案)

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

嵩山为什么称为五岳之尊

在此之前&#xff0c;人们心目中的五岳之尊一般是东岳泰山。自此以后&#xff0c;观点一定会改变&#xff1a;五岳之尊是中岳嵩山&#xff01;且听我慢慢道来。 首先将二者进行一下对比—— 中与东的对比&#xff0c;嵩山居中&#xff0c;泰山居东。东方是太阳升起的地方&#…

云原生Kubernetes: 云主机部署K8S 1.30版本 单Master架构

目录 一、实验 1.环境 2.Termius连接云主机 3.网络连通性与安全机制 4.云主机部署docker 5.云主机配置linux内核路由转发与网桥过滤 6.云主机部署cri-dockerd 7.云主机部署kubelet,kubeadm,kubectl 8.kubernetes集群初始化 9.容器网络&#xff08;CNI&#xff09;部署…

牛客NC67 汉诺塔问题【中等 递归 Java/Go/PHP/C++】 lintcode 169 · 汉诺塔

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/7d6cab7d435048c4b05251bf44e9f185 https://www.lintcode.com/problem/169/ 思路 相传在古印度圣庙中&#xff0c;有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上&#xff0c;有三根杆(编号A、B、C…

书生·浦语大模型全链路开源体系-作业1

视频链接&#xff1a;书生浦语大模型全链路开源体系_哔哩哔哩_bilibili 1. LLM发展 LLM是近年来人工智能领域的一个重要发展方向。大型语言模型的历史可以追溯到2017年,当时OpenAI推出了GPT-1(Generative Pre-trained Transformer)模型,这是一个基于Transformer架构的语言生成…

论文阅读》学习了解自己:一个粗略到精细的个性化对话生成的人物感知训练框架 AAAI 2023

《论文阅读》学习了解自己&#xff1a;一个粗略到精细的个性化对话生成的人物感知训练框架 AAAI 2023 前言 简介研究现状任务定义模型架构Learning to know myselfLearning to avoid Misidentification损失函数实验结果消融实验 前言 亲身阅读感受分享&#xff0c;细节画图解释…

28【Aseprite 作图】苹果——拆解

1 画苹果框架 左边:第一行 7 第二行 2 第三 四行1 竖着7行 竖着2行 竖着1 、1 行 横着2个 横着4个 苹果可以是左右对称的,完成上述后,水平翻转到右边 2 枝叶 第一行1 左边 2 3 4 行,各1 第5行,竖着4个 再横着3个 右边 竖着3个,然后斜着2个,然后斜着1个 最上面的,两个…

RTDETR结合CVPR2024最新图像增强算法!让你的模型无惧风雨【含端到端推理脚本】

如何有效地探索雨痕的多尺度表示对于图像去雨是很重要的。与现有的基于Transformer的方法相比,这些方法主要依赖于单一尺度的雨痕外观,我们开发了一个端到端的多尺度Transformer,利用各种尺度中潜在有用的特征来促进高质量的图像重建。为了更好地探索空间变化的雨痕的常见退…

九宫格转圈圈抽奖活动,有加速,减速效果

在线访问demo和代码在底部 代码&#xff0c;复制就可以跑 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

2023idea没有VCS首次提交代码到Git

1、setting 2、vcs------>create git repository 3、右键项目----->Git------>add 4、右键项目------>git------>commit Directory 之后就会显示这个页面(下面写你提交的信息&#xff0c;就是你修改了什么) 点击commit,提交 5、Git--------->push 6、选择…