AI开发初体验:昇腾加持,OrangePi AIpro 开发板

news2024/11/14 13:39:11

文章目录

  • 一、前言
  • 二、板子介绍
    • 2.1 拆箱
    • 2.2 板子规格
      • 2.2.1 常规项目
      • 2.2.2 扩展项目
      • 2.2.3 操作系统
    • 2.3 点板画面
  • 三、AI程序初体验
    • 3.1 新奇的地方
    • 3.2 运行第一个AI程序
      • 3.2.1 硬件连接
      • 3.2.2 串口连接
      • 3.2.3 开启外部IP端口
      • 3.2.4 查询板子IP地址
      • 3.2.5 了解 juypter lab 启动脚本
        • (1)samples 目录
        • (2)查看 start\_notebook.sh 脚本
      • 3.2.6 启动 juypter lab
      • 3.2.7 登入 juypter lab 开发环境
      • 3.2.8 编译、运行AI程序:01-yolov5
    • 3.3 其他例子
      • 3.3.1 文字识别:02-ocr
      • 3.3.2 图像分类:03-resnet
      • 3.3.3 制作卡通图片:05-cartoonGAN\_picture
  • 四、篇尾

一、前言

因为工作需要,以及个人兴趣,本人经常购买开发板进行调试、学习,但具备AI计算的开发板,本人尚未体验过,究其原因,是因为自觉知识储备可能无法胜任AI的开发工作。然而,在体验了OrangePi AIpro 开发板之后,却大大改变了我的看法——AI时代,真的已经来临!

image

二、板子介绍

OrangePi AIpro 开发板是香橙派联合华为精心打造的高性能 AI 开发板,其内置华为昇腾 AI 处理器,作为国产AI 芯片翘楚,实乃开发板的一大亮点!

2.1 拆箱

  • 拆开包装,可见板子设计的相当精巧,裸板尺寸仅107*68mm,重量仅82克,搭配小巧的收纳盒,非常方便携带。而板子的小巧体积,也方便用做产品的原型开发,或直接用作二次开发。

image

2.2 板子规格

个人看法,从下列规格参数,从其接口数量和种类之多,可体会到 OrangePi AIpro 是一片相当不错的开发板,可应付日常开发中遇到的各种IO场景,举几个例子:

  • 例如存储接口,32M的spi flash,足以存储并运行linux 小系统;而SD卡槽和eMMc卡槽,则可应付日常电子产品的存储需求,例如8G到64GB的eMMc,被广泛应用于TV、投影、平板、机顶盒、行车记录等等。而M.2接口,则可以用于大容量的数据储存,例如个人云存储、安防摄像头、小型电脑。
  • 又如 HDMI TX接口,对于开发非常方便,只需接上家里任一显示器,就可见到板子操作画面;而 MIPI CSI/DSI 接口,则可用于适配许多主流摄像头、显示屏。
  • 再如,所具备的40 pin 扩展口,均有多种功能复用,除默认的GPIO外,还可可配置成UART、I2C、SPI、PWM 等接口。

2.2.1 常规项目

  • 型号:OrangePi AIpro
  • CPU:昇腾 4 核 64 位 Arm 处理器 + AI 处理器 (310B4)
  • 算力:半精度 4 TFLOPS、整数精度:8 TOPS
  • 内存 :8GB (另有16GB版本)
  • 存储:板载 32MB 的 SPI Flash、具备SD卡槽、eMMc卡槽、 M.2接口( NVMe SSD 或 SATA SSD)
  • 网络:千兆有线网口、支持2.4G 和 5G 双频 WIFI • BT4.2
  • USB:2 个 USB3.0 Host 接口 、1 个 Type-C 接口
  • 音频:1 个 3.5mm 耳机孔,支持音频输入输出、2 个 HDMI 音频输出
  • 视频输入:2 个 MIPI CSI 2 Lane 接口
  • 视频输出:2 个 HDMI 接口 、1 个 MIPI DSI 2 Lane 接口
  • 电源输入:Type-C 供电(20V PD-65W 适配器,非常好用)

2.2.2 扩展项目

  • 40 pin 扩展口:用于扩展 UART、I2C、SPI、PWM 和 GPIO 等接口
  • 按键:1 个复位键,1 个关机键,1 个升级按键
  • 拨码开关:2 个,可控制从 SD 卡、eMMC 或SSD 启动系统
  • 风扇接口:支持 4 Pin 0.8mm 间距,12V PWM 散热风扇
  • 电池接口:2 pin,2.54mm 间距,用于接 3 串电池,支持快充
  • 串口:Micro USB 接口的调试串口(调试很方便)

2.2.3 操作系统

ubuntu系统相信大部分人都已经使用过,也是本人最熟悉的系统,而 openEuler 则是华为正式发布操作系统,绝对是花粉的不二之选!

  • 支持 Ubuntu 22.04
  • 支持 openEuler 22.03

2.3 点板画面

因为出厂已经刷好了Ubuntu 22.04的系统,所以,收到后,整个点板的过程,就非常简单了:

  • 首先,接入20V的Type C接口电源线;
  • 其次,连接上HDMI线到显示器,上电即可看到下图画面。
  • 备注:下图中,本人还连接上了网线、以及无线键盘鼠标,如此就可以如同使用x86 Ubuntu系统一样,使用开发板了!

img

三、AI程序初体验

作为一名熟悉Linux驱动开发的博主,本想写一些驱动的章节,但想一想,这不是暴殄天物吗?如此一片国产AI开发板,自然要以推广AI的学习、体验、应用为主!

3.1 新奇的地方

如本文开头所述,本人之前从未接触过AI开发,而本人也是香橙派的老用户了,手上已有其他3片香橙派不同Soc的开发板。

以前的这些开发板,都是使用交叉编译,从未想过在开发板上编译、运行、调试应用程序。

而 OrangePi AIpro 开发板,就是这么做的(虽然它也支持交叉编译),究其原因,如下:

  • 因存在昇腾AI处理器,不仅可以支持代码开发和编译,同时还可以运行AI应用程序、进行训练脚本的迁移、开发、调试。
  • 而在交叉编译服务器上,因不具备昇腾AI处理器,仅能用于代码开发、编译等不依赖于昇腾AI处理器的开发活动(例如ATC模型转换、算子、离线或在线的推理和训练、应用程序的纯代码开发)。

3.2 运行第一个AI程序

在运行AI程序前,我们需要先准备开发和运行环境,参照着 OrangePi AIpro 开发板的用户手册,可以很方便的完成平台搭建。因本人库存的屏幕太小,仅有7寸,不太方便直接在7寸屏上操作,所以,下面的实验,本人稍作了一些改动,省去了让开发板连接HDMI显示器的步骤,供大家参考。

3.2.1 硬件连接

  • 串口:使用对应接口USB线(需购买),连接开发板MicroUSB 接口和 PC 的USB口,可看到设备管理器中多出了一个CH343的USB转串口设备。
  • 电源:使用开发板套件的20V PD-65W 适配器即可,用TypeC口连接到开板,给板子供电。
  • 网口:连接到自己的路由器上,需要能上网,因为后面需要安装许多软件工具,以及开启Samba、Web端口。

image

3.2.2 串口连接

因板子直接提供了MicroUSB串口,使得连线非常简单,连上MicroUSB线之后,按下图设置好串口,即可登录。

  • 默认用户名: HwHiAiUswer
  • 默认密码:Mind@123
  • root密码:Mind@123

image

3.2.3 开启外部IP端口

  • 开启端口,需要首先安装 ufw 防火墙,并设置相关规则
  • 关于端口,因AI应用程序的编译、运行依赖于 juypter lab(一个基于web浏览器的程序),而默认程序的运行地址端口为 127.0.0.1:8888,所以,如果不是在本机运行浏览器,而是想通过局域网访问的话,就需要开启对外的8888端口。
(1)获取root权限
(base) HwHiAiUser@orangepiaipro:~$ sudo su
[sudo] password for HwHiAiUser: 

(2)安装防火墙
(base) root@orangepiaipro:/home/HwHiAiUser# apt install ufw

(3)设置防火墙端口策略,开启对外8888端口
(base) root@orangepiaipro:/home/HwHiAiUser# ufw allow 8888

3.2.4 查询板子IP地址

  • 如下图,使用ifconfig命令,查询到 eth0 的IP地址为:192.168.5.21

image

3.2.5 了解 juypter lab 启动脚本

juypter lab 可以简单把它看做是一个基于web的IDE,可以编辑、运行、调试本文所涉及的AI程序。

(1)samples 目录
  • 进入如下samples目录,除了看到有9个AI Sample 程序外,还有一个 start_notebook.sh 脚本
(base) HwHiAiUser@orangepiaipro:~$ cd samples/notebooks/
(base) HwHiAiUser@orangepiaipro:~/samples/notebooks$ ls
01-yolov5              06-human_protein_map_classification
02-ocr                 07-Unet++
03-resnet              08-portrait_pictures
04-image-HDR-enhance   09-speech-recognition
05-cartoonGAN_picture  start_notebook.sh
(2)查看 start_notebook.sh 脚本
  • 从下面启动脚本,可以获知 juypter lab的启动方式,我们需要以 --ip $1 的形式来启动,这样就不用外接一个显示器了,直接在PC上就可以通过 web浏览器来操作实验。
(base) HwHiAiUser@orangepiaipro:~/samples/notebooks$ more start_notebook.sh 
. /usr/local/Ascend/ascend-toolkit/set_env.sh
export PYTHONPATH=/usr/local/Ascend/thirdpart/aarch64/acllite:$PYTHONPATH

if [ $# -eq 1 ];then
    jupyter lab --ip $1 --allow-root --no-browser
else
    jupyter lab --ip 127.0.0.1 --allow-root --no-browser
fi

(base) HwHiAiUser@orangepiaipro:~/samples/notebooks$ 

3.2.6 启动 juypter lab

  • 如下图,执行 $ start_notebook.sh 192.168.5.21
  • 启动完成后,复制如图所示的 http地址字符串,填入到浏览器地址栏中,即可打开 jupyter lab

image

3.2.7 登入 juypter lab 开发环境

  • 如下图所示,将楼上复制的http地址字符串,填入到PC浏览器中,回车,即可登入 juypter lab 开发环境。
  • 此IDE环境的各个功能区布局,一目了然,非常简单。

image

3.2.8 编译、运行AI程序:01-yolov5

YOLOv5 是系列中较为轻量的AI算法模型,适合在边缘设备部署,进行实时目标检测。这个程序,就如同一个 Helloworld,对于AI小白来说,很快便能联想到 AI应用程序的开发流程和应用场景。简单的说,这些开源的模型,或者算法,让AI应用开发工程师,可以跳过晦涩难懂的AI算法,直接进入AI模型的训练和AI应用开发阶段,如此,一扇大门,已为我们打开!

如下图所示:

  1. 先点击,进入到 01-yolov5 项目目录,这是一个基于目标检测的AI程序。
  2. 双击 main.lpynb 文件,此文件是在 Jupyter Lab 中运行 该样例的文件,双击打开,在右侧窗口中会显示 main.ipynb 文件的内容,同时在编译运行后,还能显示运行结果。
  3. 点击貌似快进播放的按键,让项目restart编译运行。
  4. 若干秒后,即显示运行结果。

image

动态画面显示:

img

3.3 其他例子

篇幅有限,不能将所有例子一一展示。最后,本人再抽出其中几个,分别是文字识别、图像分类和图像转化(卡通化),大家看看,它们是不是也非常有趣、非常实用呢?

3.3.1 文字识别:02-ocr

  • 该AI程序可以解析出图片中的文字

image

3.3.2 图像分类:03-resnet

  • 如下演示,输入图片,以94%的可能性,识别为一只标准贵宾犬

image

3.3.3 制作卡通图片:05-cartoonGAN_picture

  • 功能:使用cartoonGAN模型对输入图片进行卡通化处理。
  • 转化前,如下图,是一张自然的风景照

image

  • 转化后,如下图,已具备卡通图的风格

image

四、篇尾

首先,总体来说,这次 OrangePi AIpro 开发板的体验是非常棒的。所提供的样例程序,都是日常中使用非常多的,例如图像分类,文字识别,语音识别等。同时也还有许多 AI 模型,通过昇腾ATC工具转换后,即可在开发板上使用,样例是非常的丰富。

其次,基于本次体验,本人也能很快想到一些应用场景,可以作为后续的开发尝试,举个例子,如今我们拍照已经非常方便,但也导致了一个结果,相机里的照片实在太多,比如幼儿园的老师,小学的老师,都会拍摄很多学生日常的校园照片,但苦于分类,也不知道哪个学生拍的多,哪个学生拍得少(那可得留意下哦,否则家长很生气哦)。就此,就可以利用本平台,开发一个照片的AI分类程序,对照片人物进行识别,经过模型训练后,即可将输入的照片分类到各个学生名字的目录下,还能统计各学生的照片数量,可以提醒老师给那些缺乏关注的孩子多拍些照片,而经过云存储对接后,还可方便的分享给家长,这样的AI程序,是不是很棒呢?

最后,作为一名程序员,虽然生活中,AI虽然已被广泛应用,但亲身体验一番AI应用程序的开发后,那感觉还是大不一样!AI 的时代,真的到来了,开始步入了寻常百姓家!

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

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

相关文章

【ES6】ECMAS6新特性概览(一):变量声明let与const、箭头函数、模板字面量全面解析

🔥 个人主页:空白诗 🔥 热门专栏:【JavaScript】 文章目录 🌿 引言一、 let 和 const - 变量声明的新方式 🌟📌 var的问题回顾📌 let的革新📌 const的不变之美 二、 Arro…

双指针法练习题(2024/5/27)

1 反转字符串 II 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则…

【管理咨询宝藏114】贝恩为某知名化妆品战略规划方案

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏114】贝恩为某知名化妆品战略…

导入 FDTD 仿真的 S 参数到 INTERCONNECT 的器件中

导入 FDTD 仿真的 S 参数到 INTERCONNECT 的器件中 正文正文 很多时候,仿真链路比较大时,我们可以将仿真的每个部分分隔开来,用 FDTD 计算出每一部分的 S 参数,然后将这些 S 参数导入 INTERCONNECT 中得到最终的仿真结果。这里我们来介绍一下这种方法。 首先,我们从右侧…

洗地机哪个品牌的质量比较好?家用洗地机品牌排行榜

随着科技的迅速发展和生活水平的不断提高,洗地机凭借其集吸尘、拖地和洗地于一体的技术优势,成为了家庭清洁的理想选择。洗地机不仅能够高效清理各种地面污渍,还能同时处理干湿垃圾,极大地提升了清洁效率。然而,市场上…

【SpeedAI科研小助手】2分钟极速解决知网维普重复率、AIGC率过高,一键全文降!文件格式不变,公式都保留的!

知网、维普极速降重、降AIGC率方法 非常简单,打开SpeedAI科研小助手,使用一键降重,上传自己的论文文件,等待即可。 等待弄完了之后,直接下载,可以发现word格式保持不变。直接交就完事了,全程2…

YOLOv10:全面的效率-准确性驱动模型设计

YOLOv10:全面的效率-准确性驱动模型设计 提出背景精细拆分解法双重标签分配一致的匹配度量以效率为导向的模型设计 YOLO v10 总结1. 双重标签分配策略2. 一致匹配度量策略 论文:https://arxiv.org/pdf/2405.14458 代码:https://github.com/T…

Mac 安装 PostgreSQL简易教程

Mac 安装 PostgreSQL简易教程 下载安装包 下载安装包 下载地址 我下载的文件:Postgres-2.7.3-16.dmg 双击 dmg 文件安装 拖拽图标到右边的文件,然后到应用程序中找到 Postgres.app 双击打开。 然后点击 Initialize 按钮 配置$PATH 到命令下工具&#…

智慧管网 | “数字大脑”加速“能源动脉”新升级

行业背景 我国作为全球最大的发展中国家,随着工业化、城镇化的发展,工业企业与居民对原油、天然气消费需求不断增长。而油气管网作为一组连接石油和天然气生产基地、储气库、终端市场等节点的管道网络系统,是油气上下游衔接协调发展的关键环…

148.栈与队列:前K个高频元素(力扣)

代码解决 class Solution { public:// 自定义比较类,用于优先队列(小顶堆)class mycomparison{public:// 重载操作符,用于比较两个pair,基于pair的第二个值(频率)bool operator()(const pair&l…

【机器学习】随机梯度下降算法以及优化

一、概述: 什么是梯度下降? 梯度下降法的基本思想可以类比为一个下山的过程。 假设这样一个场景:一个人被困在山上,需要从山上下来(i.e.找到山的最低点,也就是山谷)。但此时山上 的浓雾很大,导致可视度很低。因此&am…

全球伦敦金交易时间每天都一样吗?

伦敦金市场是一个全球化的市场,它全天的交易盘面由亚洲、欧洲和北美市场无缝地连接而成,无论来自世界上什么地方的投资者参与其中,都可以得到全天接近24个小时的交易行情,只要有足够的精力,根本不用担心没有交易获利的…

ResNet残差网络的学习【概念+翻译】

基于何明凯前辈论文的学习 1.主要内容(背景) 1、首先提了一个base:神经网络的深度越深,越难以训练。 2、原因:因为随着神经网络层数的增加,通常会遇到梯度消失或梯度爆炸等问题,这会导致训练变…

小预算大效果:揭秘品牌如何用创新方法实现低成本传播

说到品牌,我们都知道,没钱是真的难搞。 品牌建设就像跑马拉松,得慢慢来,持续投入,一点一滴积累声誉,这样才能培养出忠实的粉丝团。 但别急,就算资金紧张,我们也有办法让品牌慢慢站…

for循环绑定id,更新html页面的文字内容

需求&#xff1a;将方法中内容对齐 实现方式 给for循环中每个方法添加一个动态的id在DOM结果渲染完后&#xff0c;更新页面数据&#xff0c;否则会报错&#xff0c;找不到对应节点或对应节点为空 <view v-for"(item, index) in itemList" :key"index"…

Linux学习(十二)-- 用户管理与用户组管理、su与exit命令、sudo命令

目录 1. 用户管理 注&#xff1a; 以下命令需root用户执行 1.1 创建用户 1.2 删除用户 1.3 查看用户所属组 1.4 修改用户所属组 2.用户组管理 注&#xff1a; 以下命令需root用户执行 2.1 创建用户组 2.2 删除用户组 拓展&#xff1a; 3. su命令与exit命令 4. sudo…

计算机网路概述

目录 计算机网络的概念 计算机网络的定义&#xff1a; 计算机网络的组成&#xff1a; 终端系统/资源子网 通信子网 计算机网络的类型 按照拓扑分类​编辑 按照范国分类&#xff1a; 按传输方式进行分类 计算机网络体系结构 传输方式 按照传输方向区分 按照传输对象…

移动应用平台—WorkPlus企业级移动应用平台解决方案

在当今数字化和移动化的时代&#xff0c;企业需要一个强大的、灵活性高的企业级移动应用平台来连接员工、提高工作效率和创新能力。企业级移动应用平台是一种专门为企业构建和管理移动应用的解决方案&#xff0c;为企业提供了强大的功能和高度可定制的移动应用开发工具。 一、…

USB外设管理软件是什么?有哪些特别好用的USB管理软件

USB外设管理软件是什么&#xff1f;有哪些特别好用的USB管理软件 USB外设管理软件是一种专门用于监控和管理计算机上连接的USB设备的软件工具。这类软件通常提供多种功能&#xff0c;以便用户或管理员能够更好地控制和管理USB设备&#xff0c;从而提高计算机系统的安全性和工作…

HubSpot企业商机管理和销售自动化:提升业务效率的利器

在当今数字化时代&#xff0c;企业出海已成为拓展市场、增加营收的重要途径。然而&#xff0c;如何高效地管理商机和实现销售自动化&#xff0c;成为许多企业面临的挑战。HubSpot作为一款强大的营销、销售和服务自动化平台&#xff0c;为企业提供了全方位的解决方案。今天运营坛…