【OrangePi AIpro】开箱初体验以及OAK深度相机测试

2024-05-30 01:28

本文主要是介绍【OrangePi AIpro】开箱初体验以及OAK深度相机测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 简介

        Orangepi AIPRO 是一款采用昇腾AI技术路线,集成4核64位处理器+AI处理器的单板计算机,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接eMMC模块,支持双4K高清输出。 

        Orange Pi AIpro拥有丰富的扩展接口,包括两个HDMI输出、GPIO接口、支持SATA/NVMe SSD 2280的M.2插槽(PCIe 4Lane)、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口,

Orange Pi AIpro已支持Ubuntu、openEuler操作系统,可以满足大多数AI算法原型验证、推理应用开发的需求。

2. 主要特性

  1. 处理器昇腾AI处理器(Ascend310B4)64bit 四核处理器,主频可达 1.5GHz
  2. 内存8GB LPDDR4X 内存
  3. 显示:支持 HDMI 2.0 最大分辨率可达 4K
  4. 网络:支持千兆以太网接口,Wi-Fi 5,蓝牙 4.2
  5. 接口:USB 3.0,USB 2.0,SATA 2.0,PCIe 2.0,I2C,SPI,GPIO
  6. 扩展:支持扩展多种 USB 和 PCIe 设备

3.使用方法

准备工作

  1. 下载针对 Orangepi AIPRO 的操作系统镜像文件(Ubuntu、openEuler),并将其烧录到 SD 卡中。

Ubuntu镜像

openEuler

  1. 将 SD 卡插入 Orangepi AIPRO 的 SD 卡槽,并开启电源。
  2. 系统将自动完成启动。

3.1连接串口及网络

      根据Orangepi AIPRO 提供的接口,我们可以很轻易的完成串口终端的登录和网络的配置,主要有一下几种方法:

  1. 通过HDMI线缆将开发板的HDMI0接口连接到我们的屏幕上,在熟悉的图形界面上配置wifi密码和设置以太网固定IP;
  2. 将开发板的microUSB调试串口通过USB线缆连接到电脑,可以使用串口终端登录 Linux 系统;(波特率:115200 数据位:8 停止位:1 None Flow Ctrl);
  3. 如果没有屏幕,我们可以通过在串口终端中使用nmtui工具来完成网络配置;

   接下来主要通过第三种方式介绍一下WIFI和千兆网络配置:

  1.在串口终端输入下面的命令开始搜索WIFI,ctrl+c退出搜索

nmcli dev wifi

2.配置WIFI名称与密码 wifi_name 需要替换为自己的WIFI名称 wifi_passwd 替换为WIFI密码

sudo nmcli dev wifi connect wifi_name password wifi_passwd
   成功后联网后会显示Device 'wlan0' successfully activated,通过PING一下网站域名可简单验证WIFI网络连通性。

3.千兆网口的配置

  • 通过命令查看网络连接状态,Wired connection 1就是千兆有线网络
nmcli con show

  • 输入下列命令完成千兆有线网络配置(可根据自己需要设置IP和网关地址)
    sudo nmcli con mod "Wired connection 1" ipv4.addresses "192.168.1.110" ipv4.gateway "192.168.1.1"  ipv4.dns "8.8.8.8" ipv4.method "manual"
  •  配置完成后 需要reboot生效
  • 在千兆网络端口没有连接网线时,无法查看端口详细的配置,此时我们将开发板连接到电脑通过下面的命令就可以查看固定IP是否配置成功
    • ip addr show eth0

4. USB深度摄像头初步测试

       由于Orangepi AIPRO板卡上提供了两个USB3.0接口可以很方便的连接USB相机,外置的深度相机可以节约AI处理器算力,让芯片专注于控制场景中的决策工作,手头刚好有OPENCV AI KIT的深度相机可以在Orangepi AIPRO测试一下。

       得益于Ubuntu系统强大的兼容性,我们可以通过简单的指令完成环境搭建;

# 安装依赖项
sudo wget -qO- https://docs.luxonis.com/install_depthai.sh | bash
# 安装显控软件
python3 -m pip install depthai-viewer
# 运行DepthAI Viewer
python3 -m depthai_viewer
      打开 depthai_viewer软件后,就可以看到深度相机传回的原始深度图像。

5.AI应用样例体验

       在Orangepi AIPRO板卡系统中还内置了多个有趣的AI处理案例,大大降低了学习门槛。

       在人像分割场景中,Orangepi AIPRO可以通过训练好的模型轻松实现深度学习神经网络PortraitNet,(PortraitNet是实时人像分割模型,该模型可以在移动设备上有效且高效地运行,基于轻量级的 U 形架构,在训练阶段有两个辅助损失,而在测试阶段不需要额外的成本进行肖像推理。两个辅助损失是边界损失和一致性约束损失。前者提高了边界像素的精度,后者增强了复杂光照环境下的鲁棒性)。

      5.1. 打开内置Jupyter Notebook AI样例的操作很便捷,只需要下面两条命令;

cd samples/notebooks/
./start_notebook.sh

 5.2. 运行Jupyter Notebook AI样例

    5.3.  输出对比图像

输入图像背景图像输出图像

     内置的AI样例中有很清晰的注释,在调试过程中很容易理解 各个代码模块对应的功能,可以很方便的修改,做到有的放矢。 

class Seg(object):"""人像分割模型推理"""def __init__(self, model_path, model_width, model_height):self._model_path = model_pathself._model_width = model_widthself._model_height = model_heightself.device_id = 0self._dvpp = Noneself._model = Nonedef init(self):"""初始化相关资源"""# Initialize dvppself._dvpp = AclLiteImageProc()# Load modelself._model = AclLiteModel(self._model_path)return const.SUCCESS@utils.display_timedef pre_process(self, image):"""图片预处理"""image_dvpp = image.copy_to_dvpp()yuv_image = self._dvpp.jpegd(image_dvpp)resized_image = self._dvpp.resize(yuv_image,self._model_width, self._model_height)return resized_image     @utils.display_timedef inference(self, input_data):"""模型推理"""return self._model.execute(input_data)@utils.display_timedef post_process(self, infer_output, image_name):"""获取分割结果"""data = infer_output[0]vals = data.flatten()mask = np.clip((vals * 255), 0, 255)mask = mask.reshape(224, 224, 2)cv2.imwrite(os.path.join(MASK_DIR, image_name), mask[:, :, 0])return mask @utils.display_time
def background_replace(bg_path, ori_path, mask_path):"""将人像分割结果与背景图片结合"""background = cv2.imread(bg_path)height, width = background.shape[:2]ori_img = cv2.imread(ori_path)mask = cv2.imread(mask_path, 0)mask = mask / 255mask_resize = cv2.resize(mask, (width, height))ori_img = cv2.resize(ori_img, (width, height))mask_bg = np.repeat(mask_resize[..., np.newaxis], 3, 2)result = np.uint8(background * mask_bg + ori_img * (1 - mask_bg))cv2.imwrite(os.path.join(OUTPUT_DIR, os.path.basename(mask_path)), result)def main():"""推理主函数"""os.makedirs(OUTPUT_DIR, exist_ok=True)os.makedirs(MASK_DIR, exist_ok=True)acl_resource = AclLiteResource()acl_resource.init()seg = Seg(MODEL_PATH, MODEL_WIDTH, MODEL_HEIGHT)ret = seg.init()utils.check_ret("seg.init ", ret)images_list = [os.path.join(IMAGE_DIR, img)for img in os.listdir(IMAGE_DIR)if os.path.splitext(img)[1] in const.IMG_EXT]for image_file in images_list:image_name = os.path.basename(image_file)if image_name != 'background.jpg':print('====' + image_name + '====')# read imageimage = AclLiteImage(image_file)# Preprocess the pictureresized_image = seg.pre_process(image)# Inferenceresult = seg.inference([resized_image, ])# Post-processingmask = seg.post_process(result, image_name)# Fusion of segmented portrait and background imagebackground_replace(os.path.join(IMAGE_DIR, 'background.jpg'), \image_file, os.path.join(MASK_DIR, image_name))

6. 总结

  1. 开箱测试外设功能并完成了Orangepi AIPRO的网络配置,体验了流畅的桌面系统;
  2. 测试了 OPENCV AI KIT USB3.0相机在Orangepi AIPRO的使用;
  3. 体验了Orangepi AIPRO内置的丰富AI样例。

7. 使用体验

通过这次体验Orangepi AIPRO板卡,我了解到了华为昇腾在AI领域深耕多年的强大实力,AI的未来不仅是好用的,更是易用的。

Orangepi AIPRO搭载的昇腾AI处理器(Ascend310B4)配合华为完整的开发工具,让开发者可以高效的实现AI应用程序的开发。

Orangepi AIPRO丰富的IO接口特别灵活,极大的丰富了AI的应用场景,既能很好的完成图像处理,也能实现控制功能。

8. 注意事项

  1. 在使用 Orangepi AIPRO 时,需要确认供电输入符合要求,以确保系统的稳定性和安全性。
  2. 开发板终端账号及密码  账号:root  密码: Mind@123  ;  账号:HwHiAiUser  密码:Mind@123

9. 参考资料

  • Orangepi AIPRO 官方网站
  • Orangepi AIPRO Wiki
  • Orangepi AIPRO 硬件文档
  • OrangePI AIPRO 用户手册

这篇关于【OrangePi AIpro】开箱初体验以及OAK深度相机测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015191

相关文章

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象