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

news2024/9/20 19:38:21

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_path
        self._model_width = model_width
        self._model_height = model_height
        self.device_id = 0
        self._dvpp = None
        self._model = None

    def init(self):
        """初始化相关资源"""
        # Initialize dvpp
        self._dvpp = AclLiteImageProc()

        # Load model
        self._model = AclLiteModel(self._model_path)

        return const.SUCCESS

    @utils.display_time
    def 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_time
    def inference(self, input_data):
        """模型推理"""
        return self._model.execute(input_data)

    @utils.display_time
    def 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 / 255
    mask_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 image
            image = AclLiteImage(image_file)
            # Preprocess the picture
            resized_image = seg.pre_process(image)
            # Inference
            result = seg.inference([resized_image, ])
            # Post-processing
            mask = seg.post_process(result, image_name)
            # Fusion of segmented portrait and background image
            background_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 用户手册

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

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

相关文章

网上打印资料A4纸一般多少钱一张

我们知道,在打印需求上A4纸(210mmx297mm)是较为常见的打印用纸,同时因为纸张的不同在价格上也存在一定的差异。当然,因在网上打印平台打印资料,能够降低一定的租金个人工成本。 因此,在网上打印…

有限元之抛物型方程初边值问题解法

目录 一、原方程的变分形式 二、有限元法进行空间半离散 三、差分法进行时间全离散 四、相关量的数值计算 五、编程时的说明 六、算例实现 6.1 C代码 6.2 计算结果 本节我们将采用有限元法联合差分法来数值求解抛物型方程的初边值问题: 其中常数。 一、原方…

cf练习5.29

A ac代码 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);using namespace std;int main() {IOSint t;cin>>t;while(t--){int ans0;int a,b;cin>>a>>b;if(b0){if(a%150) ansa/15;else ansa/151;}else if(b!0…

软件架构设计属性之三:结构性属性浅析

文章目录 引言一、结构性属性的定义二、结构性属性的关键要素1. 组件化2. 模块化3. 层次化4. 接口定义5. 数据流6. 依赖管理 三、结构性属性的设计原则1. 高内聚低耦合2. 松耦合3. 清晰的接口4. 可维护性5. 可扩展性 四、结构性属性的实现策略1. 组件划分2. 模块化设计3. 接口设…

Photoshop粘贴 lorem-ipsum 占位符文本

Photoshop在使用文字工具的时候&#xff0c;点击画布会自动出现一段英文“Lorem Ipsum”&#xff0c;这是占位文本&#xff0c;除了响应速度慢外&#xff0c;目前我也没发现它有什么太大意义。 那么要如何操作才能取消占位文本的填写呢&#xff1f;在菜单栏点 编辑-首选项-文字…

【Linux】如何优雅的检查Linux上的用户登录、关机和重启日志

在诸如Ubuntu、Debian、Linux Mint、Fedora和Red Hat等广受欢迎的Linux发行版中&#xff0c;系统会忠实记录用户的登录、关机、重启以及运行时长信息。这些信息对管理员调查事件、排查故障或汇总用户活动报告极为宝贵。 Linux系统及应用程序日志通常保存在/var/log/目录下&…

100个投资者99个选择使用这款EA,WeTrade发现1个事实

为什么100个投资者会有99个选择使用这款EA&#xff0c;是因为这款EA能提供两个版本吗?是因为能控制风险吗?都不是&#xff0c;WeTrade发现1个事实才是这么多投资者选择的原因&#xff0c;那就是能实现100%的盈利率。 我们都知道外汇狙击手EA提供两种版本&#xff0c;分别是标…

debian11安装留档@VirtualBox

因为debian12无法安装tpot&#xff0c;所以又把11重新安装一遍&#xff0c;以前的安装文档&#xff1a;安装Debian 11 留档-CSDN博客 下载光盘 华为云地址&#xff1a;https://repo.huaweicloud.com/debian-cd/11.0.0/amd64/iso-cd/ 使用了debian11 教育版&#xff0c;比较有…

NSSCTF-Web题目4

[SWPUCTF 2021 新生赛]hardrce 1、题目 2、知识点 rce&#xff1a;远程代码执行、url取反编码 3、解题思路 打开题目 出现一段代码&#xff0c;审计源代码 题目需要我们通过get方式输入变量wllm的值 但是变量的值被过滤了&#xff0c;不能输入字母和\t、\n等值 所以我们需…

操作系统真象还原:一些你可能正感到迷惑的问题

第0章-一些你可能正感到迷惑的问题 这是我看操作系统真象还原这本书的一些记录&#xff1a; 4 软件是如何访问硬件的 硬件在输入输出上大体分为串行和并行&#xff0c;相应的接口也就是串行接口和并行接口。串行硬件通过串行接口与 CPU 通信&#xff0c;反过来也是&#xff…

antd table列选中效果实现

前言 开发中有一个需要呈现不同时间点各个气象要素的值需求&#xff0c;我觉得一个table可以实现这类数据的展示&#xff0c;只是因为时间点时关注的重点&#xff0c;所以需要列选中效果&#xff0c;清晰的展示时间点下的要素数据。我选择的是antd的table组件&#xff0c;这个…

每日复盘-20240529

20240529 六日涨幅最大: ------1--------300956--------- 英力股份 五日涨幅最大: ------1--------301361--------- 众智科技 四日涨幅最大: ------1--------301361--------- 众智科技 三日涨幅最大: ------1--------300637--------- 扬帆新材 二日涨幅最大: ------1--------30…

【busybox记录】【shell指令】rmdir

目录 内容来源&#xff1a; 【GUN】【rmdir】指令介绍 【busybox】【rmdir】指令介绍 【linux】【rmdir】指令介绍 使用示例&#xff1a; 删除空目录 - 默认 删除dirname下的所有空目录&#xff0c;包括因删除其他目录而变为空的目录 常用组合指令&#xff1a; 指令不…

数据结构(七)查找

2024年5月26日一稿&#xff08;王道P291&#xff09; 7.1 查找的基本概念 7.2 顺序查找和折半查找 7.2.1 顺序查找 7.2.2 折半查找 7.2.3 分块查找 7.3 树形查找 7.3.1 二叉排序树(BST) 7.3.2 平衡二叉树 7.4 B树和B树 7.4.1 B树及其基本操作 7.4.2 B树的基本概念 7.5 散列&…

UVa11604 General Sultan

UVa11604 General Sultan 题目链接题意分析AC 代码 题目链接 UVA - 11604 General Sultan 题意 给出一些0和1组成的模式串&#xff0c;问是否存在一个串使得有多种方案将这个串分解成模式串。    给一个包含n&#xff08;n≤100&#xff09;个符号的二进制编码方式&#xff…

HTTP Digest Access Authentication Schema

HTTP Digest Access Authentication Schema 背景介绍ChallengeResponse摘要计算流程总结参考 背景 本文内容大多基于网上其他参考文章及资料整理后所得&#xff0c;并非原创&#xff0c;目的是为了需要时方便查看。 介绍 HTTP Digest Access Authentication Schema&#xff…

Spring创建对象的多种方式

一、对象分类 简单对象&#xff1a;使用new Obj()方式创建的对象 复杂对象&#xff1a;无法使用new Obj()方式创建的对象。例如&#xff1a; 1. AOP创建代理对象。ProxyFactoryBean; 2. Mybatis中的SqlSessionFactoryBean; 3. Hibernate中的SessionFactoryBean。二、创建对象方…

MFC工控项目实例一主菜单制作

1、本项目用在WIN10下安装的vc6.0兼容版实现。创建项目名为SEAL_PRESSURE的MFC对话框。在项目res文件下添加相关256色ico格式图片。 2、项目名称&#xff1a;密封压力试验机 主菜单名称&#xff1a; 系统参数 SYS_DATA 系统测试 SYS_TEST 选择型号 TYP_CHOICE 开始试验 TES_STA…

内存函数<C语言>

前言 前面两篇文章介绍了字符串函数&#xff0c;不过它们都只能用来处理字符串&#xff0c;C语言中也内置了一些内存函数来对不同类型的数据进行处理&#xff0c;本文将介绍&#xff1a;memcpy()使用以及模拟实现&#xff0c;memmove()使用以及模拟实现&#xff0c;memset()使用…

越来越多的连锁企业选择开源连锁收银系统

连锁企业的收银系统作为其信息化的基础&#xff0c;随着运营的复杂化&#xff0c;越来越多的连锁企业选择开源连锁收银系统来满足其日常经营需要。商淘云为大家分享连锁企业选择开源连锁收银系统的三大原因&#xff0c;大家点赞收藏。 首先是灵活性和定制性强&#xff0c;连锁企…