OrangePi AIpro测评:性能、应用与开发者体验解析

news2024/12/25 14:13:00


一、OrangePi AIpro介绍

     OrangePi AIpro(8T)采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。 Orange Pi 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各个行业。 Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求。

 

应用场景广泛,可广泛适用于AI教学实训、AI算法验证、智能小车、机械臂、边缘计算、无人机、人工智能、云计算、AR/VR、智能安防、智能家居、智能交通等领域。


产品详细图如下:

正面:

 

背面:

 

官网www.orangepi.cn


二、 基础功能测试

收的OrangePi AIpro套装里面只有开发板、充电器、内存卡,为了方便测试,自己额外配置了显示器、鼠标、键盘、USB摄像头,下图是完整搭建好的实物图。

 

1、开机:充电器要插入PWR标识的接口,显示器要插到HDMI0接口(另一个插入不生效),键盘鼠标插入USB接口,连接标识图如下:

 

2、登录:开机之后会进入一个ubuntu22.04的系统登录界面,默认用户名HwHiAiUser,输入密码Mind@123,进入桌面。

3、网络连接测试:桌面右上角连接wifi,输入密码。然后打开终端输入ping www.orangepi.cn,能ping通说明wifi连接正常。

 

4、蓝牙测试:桌面右上角连接蓝牙,经过测试发现,支持与手机蓝牙连接并成功发送一个文件,但不支持与笔记本蓝牙连接。

 

5、VNC远程连接测试:

开发板上默认已经安装好tightvncserver,只需要本地安装一个VNC客户端,下载https://www.realvnc.com/en/connect/download/viewer/

新建一个连接,输入ip+端口(5901),输入用户名,连接时输入密码。

本人也尝试了window自带的远程桌面工具没有成功。

 

成功连接

 

6、USB摄像头测试:

选用了USB500万工业相机,输出格式为MJPJ/YUY2。

 

插入USB摄像头,终端输入cheese,出现相机画面。

 

三、体验AI应用案例

3.1启动


进入目录

cd ~/samples/notebooks


执行sh脚本启动,局域网内的其他设备访问可以加IP地址

./start_notebook.sh 192.168.31.111


浏览器输入ip:port即可访问 ,http://192.168.31.111:8888/

 

3.2 样例说明

目录

样例介绍

01-yolov5

 

YOLOv5是一种单阶段目标检测算法,在这个样例中,我们选取了YOLOv5s,它是YOLOv5系列中较为轻量的网络,适合在边缘设备部署,进行实时目标检测。

02-ocr

 

传统定义的Optical Character Recognition(光学字符识别)主要完成文档扫描类的工作。

如今,OCR一般指Scene Text Recognition (场景文字识别),主要面向自然场景。 OCR两阶段方法一般包含两个模型,检测模型负责找出图像或视频中的文字位置,识别模型负责将图像信息转换为文本信息。

此样例中,我们使用的检测模型为CTPN,识别模型则是SVTR

CTPN模型基于Faster RCNN模型修改而来,而SVTR则基于近几年十分流行的Vision Transformer模型。

03-resnet

 

ResNet是最经典的视觉分类网络之一,在这个样例中我们选取了ResNet50,也是ResNet最常用的变体。

04-image-HDR-enhance

 

功能介绍:使用模型对曝光不足的输入图片进行HDR效果增强。

样例输入:png图像。

样例输出:增强后png图像

05-cartoonGAN_picture

功能:使用cartoonGAN模型对输入图片进行卡通化处理。

样例输入:原始图片jpg文件。

样例输出:卡通图象。

06-human_protein_map_classification

功能:对蛋白质图像进行自动化分类评估
样例输入:未标注的蛋白质荧光显微图片
样例输出:已经标注分类的蛋白质图谱

07-Unet++

功能:对图像中的细胞核进行分割
样例输入:未标注的生物细胞图像
样例输出:已经分割的细胞核图像

08-portrait_pictures

目前工业界通用的人像分割主要采用绿屏技术,需要专门的绿屏设备及环境,不利于普通用户的广泛使用。在这个样例中,我们使用了一个深度学习神经网络PortraitNet,能够实时地进行人像分割和背景替换。

09-speech-recognition

自动语音识别,即ASR,指借助计算机将语音转换为文本。在这个样例中,我们使用了基于深度学习的语音识别模型WeNet,借助我们的昇腾Atlas 200I DK A2,可以进行高性能推理。

3.3 yolov5样例

运行yolov5样例,打开main.ipynb文件

选择推理模式。"infer_mode"有三个取值:image, camera, video,分别对应图片推理、摄像头实时推理和视频推理。前面已经测试USB相机ok,这里就选择摄像头实时推理。

infer_mode = 'camera'   //这里选择摄像头实时推理



if infer_mode == 'image':

    img_path = 'world_cup.jpg'

    infer_image(img_path, model, labels_dict, cfg)

elif infer_mode == 'camera':

    infer_camera(model, labels_dict, cfg)

elif infer_mode == 'video':

    video_path = 'racing.mp4'

infer_video(video_path, model, labels_dict, cfg)

 

识别效果如下:能够正确识别剪刀scissors和键盘keyboard

 

 

再修改infer_camera函数,打印下推理时间

   while True:
        start_time = time.time()  # 开始计时
        # 对摄像头每一帧进行推理和可视化
        _, img_frame = cap.read()
        image_pred = infer_frame_with_vis(img_frame, model, labels_dict, cfg)
        image_widget.value = img2bytes(image_pred)
        end_time = time.time()  # 结束计时
        print(f"推理时间: {end_time - start_time:.4f} 秒")  # 打印每一帧的推理时间

平均每帧0.06sfps16.66,速度非常快

 

四、总结

有幸受到官方的邀请,评测开发板Orange Pi AIpro,由于时间有限测试了开发板部分基础功能、运行了AI应用案例。

优势:

1、接口丰富:HDMI显示、键鼠、WIFI、蓝牙、USB摄像头等功能运行正常。

2、推理速度快:处理图像分类、目标检测效率高,fps能够达到16.66,

3、资料详细,案例丰富,社区和论坛比较完善,有助于快速学习

不足:

1、更改密码后系统进入有问题(目前解决方案是先选择ubuntu on Xorg进入,再退出,再选择Xfce Session(Default))

2、两个HDMI接口只有一个可以使用

 

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

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

相关文章

SPI转四串口芯片CH9434的设计

一、CH9434的介绍 CH9434 是一款SPI转四串口转接芯片,提供四组全双工的9线异步串口,用于单片机/嵌入式系统扩展异步串口。CH9434包含四个兼容16C550的异步串口,最高支持4Mbps波特率通讯。最多支持25 路GPIO,提供半双工收发自动切换…

Rust基础学习-ModulesPackage

在Rust中,模块有助于将程序分割成逻辑单元,以提高可读性和组织性。一旦程序变得更大,将其拆分为多个文件或命名空间非常重要。 模块有助于构建我们的程序。模块是项目的集合:包括函数、结构体甚至其他模块。 Module 定义模块 在…

嵌入式硬件VS软件,到底哪个更难?

在嵌入式系统开发中,硬件和软件是密不可分的两个方面。但是,究竟是硬件开发更具挑战性,还是软件开发更难以应对呢?本文将就这一问题展开讨论,探究嵌入式硬件和软件在开发过程中的各种挑战与特点。 一、硬件开发&#…

12.实战私有数据微调ChatGLM3

实战私有数据微调ChatGLM3 实战私有数据微调ChatGLM3实战构造私有的微调数据集基于 ChatGPT 设计生成训练数据的 Prompt使用 LangChain GPT-3.5-Turbo 生成训练数据样例训练数据解析、数据增强和持久化存储自动化批量生成训练数据集流水线提示工程(Prompt Engineer…

HTTPS请求阶段图解分析

HTTPS请求阶段分析 请求阶段分析 请求阶段分析 一个完整、无任何缓存、未复用连接的 HTTPS 请求需要经过以下几个阶段: DNS 域名解析、TCP 握手、SSL 握手、服务器处理、内容传输。 一个 HTTPS 请求共需要 5 个 RTT 1 RTT(域名解析) 1 RTT…

element table 点击某一行中按钮加载

在Element UI中,实现表格(element-table)中的这种功能通常涉及到数据处理和状态管理。当你点击某一行的按钮时,其他行的按钮需要动态地切换为加载状态,这可以通过以下步骤实现: 1.表格组件:使用…

NodeClub:NodeJS构造开源交流社区

NodeClub: 连接每一个想法,NodeClub让社区更生动- 精选真开源,释放新价值。 概览 NodeClub是一个基于Node.js和MongoDB构建的社区系统,专为开发者和社区爱好者设计。它提供了一套完整的社区功能,包括用户管理、内容发…

基于 Nginx Ingress + 云效 AppStack 实现灰度发布

作者:子丑 场景简介 灰度发布是降低生产部署风险,提升线上服务稳定性的重要手段,这在当前快速迭代的软件研发中尤为重要。相对于 K8s 默认的滚动部署或者简单的 Pod 分批,基于流量特征的灰度发布验证更精准,风险更低…

安鸾学院靶场——安全基础

文章目录 1、Burp抓包2、指纹识别3、压缩包解密4、Nginx整数溢出漏洞5、PHP代码基础6、linux基础命令7、Mysql数据库基础8、目录扫描9、端口扫描10、docker容器基础11、文件类型 1、Burp抓包 抓取http://47.100.220.113:8007/的返回包,可以拿到包含flag的txt文件。…

buuctf----warmup_csaw_2016

进来医院先来一套常规检查 啥保护都没,看大佬说基本栈溢出 CT一看 OK cat flag 更喜欢了 40060D 找到地址 get也来了,稳啦! 0x80-0x40 8 根据上道题的exp from pwn import * ghust remote("node5.buuoj.cn",27229) addr 0x40060D payload bA * 0x40 bB*8…

SpringMVC-基础架构

一、什么是MVC 二、什么是SpringMVC 三、SpringMVC的特点 四、配置SpringMVC 简单流程&#xff1a; 总体框架 1.创建pom.xml依赖 <!--打包方式--><packaging>war</packaging><!--依赖--><dependencies><dependency><groupId>org.s…

路由器怎么设置局域网?

局域网&#xff08;Local Area Network&#xff0c;LAN&#xff09;是指在一个相对较小的地理范围内&#xff0c;如家庭、办公室或学校等&#xff0c;通过路由器等设备连接起来的计算机网络。设置局域网可以方便地实现内部资源共享和信息交流。本文将介绍如何设置局域网以及一个…

C# 设置PDF表单不可编辑、或提取PDF表单数据

PDF表单是PDF中的可编辑区域&#xff0c;允许用户填写指定信息。当表单填写完成后&#xff0c;有时候我们可能需要将其设置为不可编辑&#xff0c;以保护表单内容的完整性和可靠性。或者需要从PDF表单中提取数据以便后续处理或分析。 之前文章详细介绍过如何使用免费Spire.PDF…

晶振的匹配电容的计算

晶振 等效电路 C0是晶振的静态电容 L1是晶振的等效电感 C1是晶振的等效电容 R1是晶振的等效串联电阻 芯片内部已有反相器和负载电阻 计算公式 参考1 参考2

maven 显式依赖包包含隐式依赖包,引起依赖包冲突

问题&#xff1a;FlinkCDC 3.0.1 代码 maven依赖包冲突 什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包&#xff0c;有多个不同的版本&#xff0c;因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的。每个显式声明的类包都会依赖于一些其它…

Mongodb在UPDATE操作中使用$push向数组中插入数据

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第69篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…

基数排序O(n)时间复杂度的实现

基数排序O(n)时间复杂度的实现 前言 之前写过一篇文章六种常见排序算法分析与实现&#xff0c;讲了六种常见的排序算法&#xff0c;但是没有了解到桶排序&#xff0c;基数排序这两种排序算法&#xff0c;今天刷LeetCode发现了这两种算法&#xff0c;本文先来聊聊基数排序的思…

前端 CSS 经典:在 Vue3 中使用渐进式图片

1. 什么是渐进式图片 当我们网站会加载很多图片的时候&#xff0c;有些图片尺寸很大&#xff0c;加载就会很慢&#xff0c;会导致页面长时间陷入白屏状态&#xff0c;用户体验很不好。所以可以使用渐进式图片&#xff0c;先给用户展示模糊图&#xff0c;这些图尺寸小&#xff…

数据分析-Excel基础函数的使用

Excel基础函数&#xff1a; sum:求和 sumif:单条件求和 sumifs:多条件求和 subtotal:根据筛选求和 if:逻辑判断 vlookup:连接匹配数据 match:查找数值在区域中的位置 index:根据区域的位置返回数值 match、index:一起使用&#xff1a;自动根据列名查找数据 sumifs、match、ind…

k8s+RabbitMQ单机部署

1 k8s 配置文件yaml: apiVersion: apps/v1 kind: Deployment metadata:name: rabbitmq-deploynamespace: rz-dt spec:replicas: 1selector:matchLabels:app: rabbitmqtemplate:metadata:labels:app: rabbitmqspec:containers:- name: rabbitmqimage: "rz-dt-image-server…