搭载昇腾310NPU的Orange Pi AIpro开箱体验以及深度学习样例测试

Orange Pi AIpro开箱体验以及样例测试

随着人工智能和物联网技术的快速发展,单板计算机(Single Board Computer, SBC)在创客和开发者社区中越来越受到欢迎。我最近入手了一款高性能的单板计算机——Orange Pi AIpro。

在入手此款AI开发板之前,作为一个热爱计算机技术的大学生,本人经常参加各种竞赛,正是因为这样我在前面的大学三年中使用过主控为Jetson Nano B01的ROS机器人,得益于英伟达的cuda,英伟达几乎拥有深度学习框架的原生支持,这就大大降低了,我们普通开发者的开发难度,但是高昂的价格又令人难以接受,直到后来拿到了地平线公司的旭日派X3板卡,价格很便宜但是算力是Jetson Nano的数倍,虽然不支持原生的pytorch,tensorflow等流行模型,好在可以使用模型转换工具转换成可以使用的模型,随着后来的使用,我也逐渐发现了旭日派X3的不足,首先就是并不是所有的深度学习模型都可以跑在旭日派X3的BPU上,例如,我在使用yolov5目标检测模型时,只有yolov5-2.0版本的全部算子可以运行在旭日派X3的BPU上,这使得新版本的网络中无法将所有算子运行在BPU上,这就使得运行时帧率大大降低,第二个问题就是地平线适配的模型并不是很多,样例很少。

最近,我有幸受到了香橙派官方的邀请,评测他们最新推出的AI开发板Orange Pi AIpro。据了解这款设备是Orange Pi与华为合作推出的,内置了华为自研的昇腾310 NPU(Neural Processing Unit),使用了华为自研达芬奇架构,相对其他国产产品,我个人认为华为的昇腾社区,资源更为丰富,并且也有很多课程,这可以大大降低学习的难度。

本文旨在为零基础用户提供一个详细的开箱体验和Orange Pi AIpro的产品介绍,帮助大家快速掌握Orange Pi AIpro的基本使用方法,以及了解昇腾强大的生态。我还会具体测试几个简单的AI样例,分享自己的探索过程和心得体会。希望通过这个教程,能让大家更好地了解这款强大的AI开发板。

产品介绍

话不多说先放两张Orange Pi AIpro的全身照,可以看到板子还是很漂亮的。

9ce018ff4332172dc85b71424012818

3462a3f1a109bd7765c50500f9f8409

Orange Pi AIpro主要参数配置

  1. 处理器:配备华为昇腾310 NPU,支持高效的人工智能计算,适用于深度学习和推理任务。
  2. 内存:8GB LPDDR4内存,确保多任务处理和数据密集型应用的流畅运行。
  3. 存储:提供eMMC存储接口和MicroSD卡插槽,方便用户扩展存储空间。
  4. 接口:丰富的接口配置,包括USB 3.0、USB 2.0、HDMI、以太网口、音频输出、GPIO等,满足多种外设连接需求。
  5. 网络:内置千兆以太网接口和Wi-Fi模块,支持高速网络连接和无线传输。
  6. 操作系统:兼容多种操作系统,包括Ubuntu、Debian和Android,提供广泛的软件支持和开发环境。

Orange Pi AIpro的AI处理器

昇腾310 NPU简介

Atlas 200计算模块作为开发板的CPU与NPU。模块集成了Ascend 310处理器,可以高效地在端侧部署典型的深度学习推理应用以下是昇腾310的主要特点:

  1. 高效能低功耗: 昇腾310采用7nm工艺制造,拥有高效的能耗比,能够在提供强大计算能力的同时保持较低的功耗,非常适合嵌入式和边缘计算应用。
  2. 强大计算能力: 昇腾310能够提供多达16 TOPS(Tera Operations Per Second)的整数计算能力和8 TFLOPS(Tera Floating Point Operations Per Second)的浮点计算能力,能够高效处理复杂的深度学习模型。
  3. 丰富的接口支持: 昇腾310支持多种接口,包括PCIe、I2C、UART等,方便与各种外设进行连接,适用于广泛的应用场景。
  4. 全场景AI支持: 昇腾310支持包括图像处理、语音识别、自然语言处理等多种AI任务,提供灵活的AI推理能力。
  5. 优秀的开发工具: 昇腾310配备了丰富的开发工具和软件生态,包括华为的MindSpore、TensorFlow、PyTorch等主流深度学习框架的支持,使开发者能够快速上手并进行模型训练和部署。

样例测试

准备工作
  1. 查看开发板IP地址

命令行输入

ifconfig

image-20240523124949299

  1. 开启notebooks服务器

首先进入这个目录

 cd ~/samples/notebooks

开启notebook服务器

./start_notebook.sh 192.168.31.186 #IP是开发板的IP

image-20240523165928546

看到这个就说明服务器启动成功,接下来把复制的内容粘贴到我们电脑的浏览器,注意电脑要与开发板在一个局域网下

输入后我们可以在我们电脑浏览器右边看到很多例程

image-20240523170248724

在这里插入图片描述

接下来我们来一个一个运行试试吧

1.YoloV5

首先是yolov5的例程

在这里插入图片描述

我们可以看到例程提供了三种模式分别是照片检测,视频检测和相机实时检测

图片检测

也没有什么图片就把手边的饮料瓶上传到了开发板

先修改一下模式和图片路径

image-20240523170819674

可以看到正确识别出来了,不过旁边的饮料瓶没有识别出来,可能是训练集中没有

image-20240523170958912

视频检测

接下来我们来试一下视频检测,我从网上随便找了一个电影的片段

首先还是修改检测模式和视频文件路径

image-20240523171132123

我们来看一下效果,也是ok的帧率非常高,不愧是8TOPS算力的板子

image-20240523171205954

我把检测效果的视频也同时上传到了B站链接

摄像头实时检测

找一个USB摄像头插入OrangePi AIpro的接口上

image-20240523172542082

修改模式

image-20240523172615980

开始检测,可以明显的感觉出来帧率比Jetson nano B01高的不是一点点

image-20240523172739072

2. OCR文字识别

可以看到正确识别了图片中的文字

image-20240523173020401

3. ResNet50分类

image-20240523173200485

4. image_HDR_enhance图像增强

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

image-20240523173509237

可以看出原来灰暗的图像经过处理后变得明亮清晰

5. cartoonGAN图片卡通化

ArtGAN是一种基于生成对抗网络(GAN)的图像生成模型,旨在将现实世界的图像转换为卡通风格。该模型由生成器和判别器组成,通过对抗训练,使生成器能够生成逼真的卡通图像,而判别器则不断提高其区分真实卡通图像和生成图像的能力。ArtGAN利用卷积神经网络(CNN)来捕捉图像的细节和风格信息,通过不断迭代训练,生成器学会捕捉和重现卡通风格的特征,从而实现高质量的图像风格迁移。

功能:使用cartoonGAN模型对输入图片进行卡通化处理。
样例输入:原始图片jpg文件。
样例输出:卡通图象。

这个应该是我觉得最有意思的网络了,话不多说多上几个图

原始图像

image-20240523173755910

处理后的图像

image-20240523173820074

想到手机中还有老君山的照片,我这就来转化一下

这是原始图片

test

卡通化后

原图

image-20240523175648350

卡通化后

image-20240523175703708

原图

image-20240523175744036

卡通化后

image-20240523175802201

原图

image-20240523175828452

卡通化后

image-20240523175845473

是不是

6.蛋白质分类

香橙派也可以为专业领域赋能

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

image-20240523180204931

7.Unet++分割

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

image-20240523180440049

8.PortraitNet人像分割和背景替换

功能:将人物和背景拼接

样例输入人物和背景

样例输出拼接后的图片

背景

image-20240523181409909

人物

image-20240523181434206

拼接后

image-20240523181636964

8.WeNet语音识别

功能将语音转换成文字

样例输入:一段语音

样例输出:一段文字

image-20240523181953753

总结

使用昇腾开发板后,我最大的感受就是昇腾社区的生态建设做得非常好。社区里有大量的AI开发样例,这对开发者来说非常友好。特别是像我这样的普通大学生,在参加比赛时,这些样例降低了我们的开发难度,提供了很大的帮助。无论是图像识别、目标检测,还是自然语言处理,都能找到相应的参考代码和详细的教程,让我们能够更快速地上手开发。

昇腾NPU的算力高达8 TOPS(每秒万亿次运算),在处理复杂的AI任务时表现得非常出色。这个高性能的硬件让我们在实际应用中体验到了显著的性能提升。以往在其他开发板上运行的深度学习模型,到了昇腾开发板上都能更高效地完成,从而节省了大量的时间和资源。

此外,昇腾社区还提供了丰富的技术文档和交流平台,开发者可以在这里找到详细的开发指南、API文档,以及解决问题的技术支持。这些资源极大地降低了学习和使用昇腾开发板的门槛,使得即便是初学者也能在短时间内掌握基本的开发技巧。

在实际使用中,我发现昇腾开发板在处理图像分类、目标检测等任务时,效率非常高。例如,在运行YOLOv5目标检测模型时,昇腾NPU可以实现实时检测,整个过程流畅无卡顿。。

总体来说,昇腾在国产生态中确实堪称佼佼者。它不仅在硬件性能上表现出色,在软件生态和社区建设上也做得非常到位。这使得我们这些开发者能够更加专注于创新和应用开发,而不是在基础设施上浪费时间和精力。对于那些想要快速入门AI开发的用户来说,昇腾开发板无疑是一个非常好的选择。希望未来能看到更多这样的国产高性能AI硬件,助力更多开发者实现他们的创意和梦想。

建议

发现昇腾开发板在处理图像分类、目标检测等任务时,效率非常高。例如,在运行YOLOv5目标检测模型时,昇腾NPU可以实现实时检测,整个过程流畅无卡顿。。

总体来说,昇腾在国产生态中确实堪称佼佼者。它不仅在硬件性能上表现出色,在软件生态和社区建设上也做得非常到位。这使得我们这些开发者能够更加专注于创新和应用开发,而不是在基础设施上浪费时间和精力。对于那些想要快速入门AI开发的用户来说,昇腾开发板无疑是一个非常好的选择。希望未来能看到更多这样的国产高性能AI硬件,助力更多开发者实现他们的创意和梦想。

建议

建议昇腾社区增加更多ROS的例程和教程,感觉这点没有地平线做的好,地平线定制的TROS在ROS中直接集成了AI开发接口,使得我们ROS开发者可以更快的上手

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C/C++中互斥量(锁)的实现原理探究

互斥量的实现原理探究 文章目录 互斥量的实现原理探究互斥量的概念何为原子性操作原理探究 互斥量的概念 ​ 互斥量(mutex)是一种同步原语,用于保护多个线程同时访问共享数据。互斥量提供独占的、非递归的所有权语义:一个线程从成…

动态路由协议实验——RIP

动态路由协议实验——RIP 什么是RIP ​ RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于…

计算机组成原理·定点加减法与先行进位

重点理解一下加减法的电路实现,先行进位的原理,以及时间延迟分析。挑重点记录一下我的理解。 定点加减法的运算 运算原理 在计算机内,定点数都是以补码的形式进行运算的。两个数 x , y x,y x,y 的加减法满足下面的规则: { [ x …

深入理解 Go 语言中的字符串不可变性与底层实现

文章目录 前言1 字符串类型的数据结构组成2 为什么要这么设计数据结构?3 为什么说字符串类型不可修改?4 如何实现字符串的修改?5 为什么字符串修改的字面量用单引号?6 如何判断字符串的修改新建了一个字符串?7 字符串的…

【机器学习】智能选择的艺术:决策树在机器学习中的深度剖析

在机器学习的分类和回归问题中,决策树是一种广泛使用的算法。决策树模型因其直观性、易于理解和实现,以及处理分类和数值特征的能力而备受欢迎。本文将解释决策树算法的概念、原理、应用、优化方法以及未来的发展方向。 🚀时空传送门 &#x…

PieCloudDB Database Flink Connector:让数据流动起来

面对客户环境中长期运行的各种类型的传统数据库,如何优雅地设计数据迁移的方案,既能灵活地应对各种数据导入场景和多源异构数据库,又能满足客户对数据导入结果的准确性、一致性、实时性的要求,让客户平滑地迁移到 PieCloudDB 数据…

Linux|虚拟机|Windows 11 家庭版的Hyper虚拟机服务开启

前言: Windows11的版本是比较多的,但有的时候笔记本预装的可能是家庭版,而家庭版的Windows通常是不支持虚拟机的,也就是说Hyper服务根本就看不到 Windows的程序和功能大体如下: 🆗,那么如何开…

【数据结构】P1 数据结构是什么、算法怎样度量

1.1 基本概念与术语 数据: 数据是信息的载体,是所有能被计算机识别以及处理的符号。数据元素: 数据元素是数据基本单位,由若干 数据项 组成,数据项是构成数据元素最小的单位。 e . g . e.g. e.g. 数据元素如一条学生记…

云动态摘要 2024-05-31

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新优惠与活动 [1.5折起]年中盛惠--AI分会场 腾讯云 2024-05-30 人脸核身、语音识别、文字识别、数智人、腾讯混元等热门AI产品特惠,1.5折起 云服务器ECS试用产品续用 阿里云 2024-04-14 云…

HTML 转义字符(escape characters)及其对应的符号(symbols)

以下是常见的 HTML 转义字符及其对应的符号,这些可以用于在 HTML 或 JSX 中避免解析错误和特殊字符的冲突: 空格 ( ): 或 引号: 单引号():'、‘、、’双引号("&#x…

AI 网页解锁器,用于网页抓取一切 | 最快的验证码解决服务

想象一下,解锁互联网的全部潜力,数据自由流动,没有任何障碍阻挡你获取所需信息。在网络爬虫的世界里,这个梦想常常会遇到障碍:CAPTCHA和反机器人措施,这些措施旨在保护网站免受自动化访问的侵害。但如果有一…

前端传String字符串 后端使用enun枚举类出现错误

情况 前端 String 后端 enum 前端 后端 报错 2024-05-31T21:47:40.61808:00 WARN 21360 --- [nio-8080-exec-6] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to con…

[数据集][目标检测]红外车辆检测数据集VOC+YOLO格式13979张类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):13979 标注数量(xml文件个数):13979 标注数量(txt文件个数):13979 标…

C++程序命令行参数学习

argc是参数个数&#xff1b; argv[0]是程序名&#xff0c;argv[1]是第一个参数&#xff1b; 如果输入osgptr1 x &#xff0c;osgptr1是程序名&#xff0c;argc是2&#xff1b; 不算程序名&#xff0c;实际的参数个数是argc-1&#xff1b; #include <iostream>using …

STM32 入门教程(江科大教材)#笔记2

3-4按键控制LED /** LED.c**/ #include "stm32f10x.h" // Device headervoid LED_Init(void) {/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //开启GPIOA的时钟/*GPIO初始化*/GPIO_InitTypeDef GPIO_InitStructure;GPIO_I…

Python魔法之旅-魔法方法(08)

目录 一、概述 1、定义 2、作用 二、应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类型检…

用万界星空科技低代码平台能快速搭建一个云MES系统

一、低代码平台与MES:智能制造的新篇章 随着工业4.0和智能制造的兴起&#xff0c;企业对于生产过程的数字化、智能化需求日益迫切。传统的MES系统实施周期长、成本高&#xff0c;成为许多企业数字化转型的瓶颈。而低代码开发平台的出现为这一问题提供了新的解决思路。 二、万界…

Vue.js - 生命周期与工程化开发【0基础向 Vue 基础学习】

文章目录 Vue 的生命周期Vue 生命周期的四个阶段Vue 生命周期函数&#xff08;钩子函数 工程化开发 & 脚手架 Vue CLI**开发 Vue 的两种方式&#xff1a;**脚手架目录文件介绍项目运行流程组件化开发 & 根组件App.vue 文件&#xff08;单文件组件&#xff09;的三个组成…

【PostgreSQL17新特性之-explain命令新增选项】

EXPLAIN是一个用于显示语句执行计划的命令&#xff0c;可用于显示以下语句类型之一的执行计划&#xff1a; - SELECT - INSERT - UPDATE - DELETE - VALUES - EXECUTE - DECLARE - CREATE TABLE AS - CREATE MATERIALIZED VIEWPostgreSQL17-beta1版本近日发布了&#xff0c;新…

微信小程序-页面导航-导航传参

1.声明式导航传参 navigator组件的url属性用来指定将要跳转到的页面的路径&#xff0c;同时&#xff0c;路径的后面还可以携带参数&#xff1a; &#xff08;1&#xff09;参数与路径之间使用 ? 分割 &#xff08;2&#xff09;参数键与参数值用 相连 &#xff08;3&…