香橙派AIpro测评上手指南
一、前言
首先非常荣幸受到邀请参加本次香橙派开发板的测评活动,除了令人眼前一亮,做工非常精细的开发板,举办方还非常贴心地准备了散热套件,以及烧录好系统的TF卡,甚至准备了电源适配器,数据线;再加上官网有详尽的资料,让整个体验过程很是愉快。
下面让我们进入主题,先来一张产品套件全家福:
盒子内就是我们的主角OrangePi AIpro 开发板,主板上下都有泡沫缓冲垫,主板使用防静电包装,保护措施很完善:
推荐资料:
香橙派官网
昇腾论坛 香橙派AIpro专题页
二、产品简介
OrangePi AIpro 开发板是香橙派联合华为精心打造的高性能 AI 开发板,其搭载了一颗高性能4核64位CPU+昇腾 AI 处理器,集成图形处理器,支持8TOPS AI算力,内存提供了 8GB 和 16GB LPDDR4X两种版本,可以外接最高 256GB eMMC模块,支持双4K高清HDMI输出,板载WiFi5+BLE4.2集成模块。
OrangePi AIpro引出了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖AIoT各个行业。
OrangePi AIpro目前已经支持操作系统有Ubuntu、openEuler,基本满足大多数AI算法原型验证、推理应用开发的需求。
三、连接测试
本次拿到的开发板由于已经在TF卡中烧写了系统,因此这里我们不再探究烧写系统过程,有兴趣的可以参考《OrangePi_AI_Pro_昇腾_用户手册》第2.4节 烧写 Linux 镜像到 TF 卡中的方法,讲解很详细。
3.1 串口连接
为什么把串口连接方式放在最前面,因为这种方式最简单,不需要网线,也不需要屏幕。
首先需要安装如下USB转串口驱动:
https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/OrangePi/private/CH343SER.EXE
再找到Micro USB 接口的数据线通过如下接口连接电脑(注意看丝印UART):
PC上打开MobaXterm,新建串口连接,选择CH343的USB串口,波特率填写为115200
如果在给开发板上电前打开串口,就可以抓到开机LOG:
输入用户名和密码就可以登录了:
以root用户登录成功:
可以看到当前安装的是Ubuntu 22.04.3 LTS版本。
3.2 VNC连接
该方法适合没有HDMI屏幕但想通过桌面方式使用的朋友。
通过下面的命令检查vnc服务是否开启
ps -ef | grep vnc
可以看到有以Xtightvnc
开头的进程,说明VNC服务已经启动。
通过网线将开发板的网孔连接到路由器上,串口连接的情况下输入ifconfig命令查看当前开发板的IP地址
PC端下载VNC Viewer软件或者就使用MobaXterm的VNC连接功能也行;
密码是默认的Mind@123
连接成功后:
3.3 SSH连接
该方法相比只串口连接的好处在于通过网线和PC处于同一网段这样可以很方便地传文件。
SSH连接可以使用putty,这里我直接用了MobaXterm里的SSH连接功能:
填写好IP地址后,默认22端口即可
还需要输入登录账号和密码,直接用默认的HwHiAiUser账号登录:
四、硬件配置
lscpu
查看CPU信息,可见开发板搭载的是一颗64位4核CPU,具体型号不详
npu-smi info
命令可以查看昇腾芯片 NPU 卡的信息,Device为310B4,芯片温度为46度
df-h
查看磁盘的空间,开发板使用32G内存卡作为硬盘
free -m
查看物理内存的大小和使用情况,Mem项显示物理内存一共7545MB,手头这个版本是8G内存的,还有16G版本可选
五、AI功能体验
官方镜像中预装了 Jupyter Lab 软件,并且预置了一些可以在 Jupyter Lab 软件中运行的 AI 应用样例。
JupyterLab作为一种基于Web的集成开发环境,可以使用它编写Notebook、操作终端、Markdown文本、打开交互模式、查看CSV文件及图片等功能。JupyterLab的执行文件被称作Notebook,它的后缀是.ipynb
切换到样例目录下:
cd /home/HwHiAiUser/samples/notebooks
执行 start_notebook.sh 脚本启动 Jupyter Lab
启动成功后,复制登录 Jupyter Lab 的网址链接到浏览器中打开(注意是香橙派上的浏览器不是PC端的)
登录 Jupyter Lab 后的界面如下所示, 左侧文件管理器中是 9 个 AI 应用样例和Jupyter Lab 启动脚本:
样例1、YOLOv5目标检测
在 jupyter lab 界面双击“01-yolov5” , 进入到该目录,再双击打开 main.ipynb, 在右侧窗口中会显示 main.ipynb 文件中的内容,按下图所示点击双三角符号运行样例:
往下翻到“样例运行”小节,等待几秒后会展示识别结果:
这是一段赛车短视频,可以看到视频中出现的赛车都被识别出来了。
在 main.ipynb 文件中 infer_mode 的值可赋值为 image、 video 和 camera, 分别对应对图片、 视频、 USB 摄像头中的内容进行目标检测, 默认值为 video。
接下来我们尝试图片推理,infer_mode 的值改为image,并且img_path改为我们导入的图片
识别小狗(只识别出其中两只):
样例2、OCR文字识别
回到主目录,再双击“02-ocr” , 进入到该目录,再双击打开 main.ipynb,找到IMAGE_PATH,改成我们自己导入的图片名进行测试
点击restart,等待结果:
这是随便找的图片,可以看到还是成功识别出来了大部分,已经算是不错的了,要知道我们用专业的文字扫描软件也常有误判,这个跟字体,模型有关系。
样例3、cartoonGAN模型生成卡通图像
双击“05-cartoonGAN_picture ”,双击打开 main.ipynb,点击restart运行,等待结果:
转换前:
转换后:
Tips
1、开发板上有2个按键分别是关机按键和复位按键,当机器出现问题死机了可以按关机按键进行关机。但该按键没有开机功能,在关机状态下想开机可以按一下RESET按键也可以开机
2、机器刚开机时风扇会全速运行一小段时间,进入系统后切到自动调速模式风速就慢下来了
sudo npu-smi info -t pwm-mode
使用该命令可以查看风扇当前的模式是自动模式还是手动模式,一般默认是自动模式。
我的这块板子的自动模式不知为什么不起作用,板子开机一会后即使很烫了风扇也只能保持15的百分比速度运行而不会随温度变化。后来我切换到手动模式,手动调速到50%就没问题了,板子温度很快就降下来了
设置风扇模式为手动模式的命令如下:
sudo npu-smi set -t pwm-mode -d 0
设置风扇的调速比为50:
sudo npu-smi set -t pwm-duty-ratio -d 50
另外,设置的模式和调速比都有记忆功能,下次开机还是上次的配置。
使用感受
OrangePi AIpro 开发板是一款非常优秀的 AI 边缘计算开发板,其推进了 AI 部署的国产化进程,其算力是完全满足商业级产品的需求。经过这几天的使用,我认为香橙派AIpro是一款性能强劲,并且在AI算力上也是可圈可点,最高16G的LPDDR4X内存令树莓派等等熟知的Linux系列开发板望尘莫及,接口非常丰富,尤其是官方配备的散热器,风扇静音效果极佳且风力很强,散热效果很好,50%的转速就已经满足日常使用,该风扇可CPU智能控制转速,这项功能在一众开发板中也是独占鳌头。
香橙派官方为这款开发板准备了详细的资料供开发者阅读,其中用户手册的细节程度非常夸张,让我在整个体验过程上手非常顺畅。
在这款芯片上的核心部件中,出现了不少国产芯片的加入,在可预见的未来,希望我国科技实力和产业实现新的飞跃,让国产化更上一层楼。
相关文章:

香橙派AIpro测评上手指南
一、前言 首先非常荣幸受到邀请参加本次香橙派开发板的测评活动,除了令人眼前一亮,做工非常精细的开发板,举办方还非常贴心地准备了散热套件,以及烧录好系统的TF卡,甚至准备了电源适配器,数据线࿱…...
GBDT 算法【python,机器学习,算法】
GBDT 即 Gradient Boosting Decision Tree 梯度提升树, 是一种迭代的决策树算法,又叫 MART(Multiple Additive Regression Tree), 它通过构造一组弱的学习器(树),然后把多棵决策树的结果累加起来作为最终的预测输出。该算法将决策…...

软考 系统架构设计师系列知识点之SOME/IP与DDS(3)
接前一篇文章:软考 系统架构设计师系列知识点之SOME/IP与DDS(2) 本文内容参考: 车载以太网 - SOME/IP简介_someip-CSDN博客 https://zhuanlan.zhihu.com/p/369422441 什么是SOME/IP?_someip-CSDN博客 SOME/IP 详解系列&#…...

将AI大模型装进你的手机,你愿意么?
大数据产业创新服务媒体 ——聚焦数据 改变商业 AI大模型的发展,有两个方向,一个是模型越做越大,以规模来提升性能。还有一个重要的方向,就是通过将模型做小,来嵌入手机、电脑等计算终端,这同样是值得关注…...
前端面试题12-22
12 Proxy是什么,有什么作用? Proxy 是 ES6 (ECMAScript 2015) 引入的一种元编程特性。它允许你创建一个对象,该对象可以拦截和定义基本操作(例如属性查找、赋值、枚举、函数调用等)。Proxy 提供了一种机制,…...
【论文解读】Performance of AV1 Real-Time Mode
论文下载地址:Performance of AV1 Real-Time Mode 时间:2020.10 级别:IEEE 作者:Ludovic Roux 摘要 背景:COVID-19疫情增加了对数字互动的需求,使得实时或低延迟编解码器变得更加重要。现状:大多数编解码器,包括AV1,主要关注于编码效率,这是视频点播(VOD)的主要改…...
java处理中文脱敏
方法一,简单的,不计算文字长度去设置脱敏 public static String dataDesensitization1(String content){String regex "(.{2}).*(.{2})";return ReUtil.replaceAll(content, regex, matcher -> {try {if (CharSequenceUtil.isBlank(match…...

【Linux网络】端口及UDP协议
文章目录 1.再看四层2.端口号2.1引入linux端口号和进程pid的区别端口号是如何生成的传输层有了pid还设置端口号端口号划分 2.2问题2.3netstat 3.UDP协议3.0每学一个协议 都要讨论一下问题3.1UDP协议3.2谈udp/tcp实际上是在讨论什么? 1.再看四层 2.端口号 端口号(Po…...

Unity 生成模版代码
1、创建模版代码文本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class ClassNameScritpItem : MonoBehaviour {public GameObject go;// Start is called before the first frame updatevoid Start(){go new GameObject();}// …...

【ai】chatgpt的plugin已经废弃
发现找不到按钮,原来是要申请: https://openai.com/index/chatgpt-plugins/ 发现申请已经跳转了,好像是废弃了? 不接受新插件了,但是openai的api 是可以继续用的。 https://openai.com/waitlist/plugins/We are no longer accepting new Plugins, builders can now create…...

2024年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,共50分) 第1题 运行如下代码,若输入整数3,则最终输出的结果为?( ) def f(x):if x==1:s=1else:s...

多旋翼无人机机场考哪些内容?
多旋翼无人机机场考试的内容主要包括理论和实飞两部分。 理论考试主要涵盖无人机相关的知识,包括无人机的原理、结构、操作规范等。 实飞考试则主要考察飞行技能,包括飞行操作、航线规划、飞行稳定性等。 具体来说,实飞部分可能包括使用GPS…...
【前端每日基础】day23——箭头函数
箭头函数是ES6(ECMAScript 2015)引入的一种新的函数表达式语法。相比传统函数,箭头函数有简洁的语法,并且不绑定自己的this、arguments、super或new.target。以下是详细介绍箭头函数的各个方面: 基本语法 单参数箭头函…...
27.Java中单例模式的实现方式
一、单例模式 单例模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。 单例模式中: 这个类只能有一个实例这个类必须自己创建自己的唯一实例这个类必须…...
C#面:当一个线程进入一个对象的方法后,其它线程是否可以进入该对象的方法?
一个线程在访问一个对象的一个synchronized方法时: 另一个线程可以同时访问这个对象的非同步方法。另一个线程不可以同时访问这个对象的普通同步方法。另一个线程可以同时访问这个对象的静态同步方法 ,即static synchronized修饰的方法 。另一个线程不可…...
express框架下后端获取req.body报错undefined
express框架下后端获取req.body报错undefined_express服务器post中data为undefine-CSDN博客 /*** 特殊说明:Express是一个单线程服务器器程序【必须存在指定的顺序调用,否则无法达到预期的效果】*//*** 第一步:创建一个Express实例对象,并且在匹配路由之…...
Element plus 低版本弹窗组件添加拖拽功能
在使用element plus 弹窗组件el-dialog 的时候,由于自己组件库版本过低,所以就会缺失某些功能,比如弹窗组件的可拖拽功能。因为某些原因element plus 组件库又不能升级,所以此时就需要自己为弹窗组件添加拖拽功能。共分为一下四个…...

计算机组成原理易混淆知识点总结(持续更新)
目录 1.机器字长,存储字长与指令字长 2.指令周期,机器周期,时钟周期 3.CPI,IPS,MIPS 4.翻译程序和汇编程序 5.计算机体系结构和计算机组成的区别和联系 6.基准程序执行得越快说明机器的性能越好吗? 1.机器字长,存储字长与指令字长 不同的机器三者…...

【STM32踩坑】HAL固件库版本过高导致烧录后无法运行问题
问题引入 目前STM32CUBEMX已经更新到了6.11版本,对应的固件库也一直在更新; 以STM32F1库为例,目前最新的库对应版本为1.8.5 但是我们会发现,如果直接使用1.8.5版本的固件库生成HAL源码后,烧录是可以烧录,但…...
芯片丝印反查
芯片丝印反查网 - IC芯片丝印,IC芯片代码,IC芯片印字,IC芯片顶标,SMD code,marking code,top mark芯查查-电子信息产业数据引擎 ic/芯片丝印反查网-芯查查...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...