当前位置: 首页 > news >正文

搭载昇腾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开发者可以更快的上手

相关文章:

  • LAMP分布式安全方案搭建网页 (LinuxCentOS7+Apache+Mariadb+PHP)包括服务端口及防火墙规则配置
  • 防雷接地测试方法及注意事项
  • 前端 JS 经典:判断数组的准确方法
  • LLM主流开源代表模型
  • ethernet eth0: Could not attach to PHY
  • 家宽动态公网IP,使用docker+ddns 实现动态域名解析
  • 计算机视觉与模式识别实验2-2 SIFT特征提取与匹配
  • 云端数据提取:安全、高效地利用无限资源
  • 2024-5-13——腐烂的橘子
  • 在Spring Boot项目中使用Redisson实现延迟执行
  • java基础篇(1)
  • Shell编程实际应用
  • 深度学习-06-手动进行反向传播
  • [数据集][目标检测]RSNA肺炎检测数据集VOC+YOLO格式6012张1类别
  • 手机号脱敏
  • 网络传输文件的问题
  • __proto__ 和 prototype的关系
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Create React App 使用
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • HTTP中的ETag在移动客户端的应用
  • IDEA 插件开发入门教程
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Java 最常见的 200+ 面试题:面试必备
  • JavaScript对象详解
  • Javascript基础之Array数组API
  • js ES6 求数组的交集,并集,还有差集
  • JS字符串转数字方法总结
  • nodejs:开发并发布一个nodejs包
  • React-redux的原理以及使用
  • SAP云平台里Global Account和Sub Account的关系
  • Vue.js源码(2):初探List Rendering
  • 分类模型——Logistics Regression
  • 基于webpack 的 vue 多页架构
  • 入口文件开始,分析Vue源码实现
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 追踪解析 FutureTask 源码
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​批处理文件中的errorlevel用法
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • #大学#套接字
  • $.proxy和$.extend
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (4)事件处理——(7)简单事件(Simple events)
  • (Forward) Music Player: From UI Proposal to Code
  • (LeetCode 49)Anagrams
  • (补充)IDEA项目结构
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • ****三次握手和四次挥手
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .NET Core WebAPI中使用swagger版本控制,添加注释