Orange Pi AIpro——国产AI新星

初见香橙派AiPro

首先非常高兴能体验我们国产香橙派Aipro,在收到产品的时候还是被这精美的做工和强大的配置所折服。也为国内有这么多优秀的企业不断在进步和攀登而自豪。
在这里插入图片描述

比起我之前玩派的时候,同样的价格,现在给的实在是太多了,所以从以下几个维度谈一下我对香橙派Aipro的体验感受。分别是:硬件设计、软件支持、资料内容和案例分享。

硬件设计——质感满满

很深刻以前用树莓派2b的时候,被他的精妙小巧所震惊到,但是我拿到香橙派 Aipro的时候给我的是一种齐全规整的印象,整齐的排列、强大的散热、丰富的接口和扩展方式,让我觉得这块板子有无限多的可能和玩法。
而且从配置上来说,这个价格买到不可谓不豪华了

在这里插入图片描述

昇腾AI技术路线
8GB/16GB LPDDR4X
8/20 TOPS AI算力
支持SATA/NVMeSSD 2280的M.2插槽、支持wifi5/bt4.2/ble、千兆网口

除了以上这些强有力的配置之外,同样也支持传统玩法的tf卡槽启动,可以让你有玩和体验更多系统的便捷性,只需更换tf卡即可。
虽然优点很多,但是也有一些设计上的槽点,例如
①power和reset按键稍微有些不合理,容易被误触,导致重启工作内容丢失
②wifi天线封装过于简陋,拉低整体质感,且较为容易损坏

但是总体上对于硬件上的配置和设计来说还是十分满意的,能够体现出我们的科技企业达到了一个业内领先的水准。

软件支持——可玩性极强

对于香橙派 Aipro最大的亮点就是加入了昇腾AI的特性,虽然我们现在跑的很多模型和内容都还是比较依赖英伟达的cuda计算架构,但是昇腾在目前市场上的表现来看也并不处于弱势,只是因为起步晚和适配等问题在阻挠。
软件系统上支持了两款官方定制系统:Ubuntu和Openeuler,前者事宜大部分属性linux系统的玩家入手,后者则是备案计划我们也可以去体验和研究的一个系统。考虑得还是很周全。
同样的官方在系统中给了一些ai训练模型demo给我们去体验,我们体验了其中一个。
该样例是基于PyTorch框架的ResNet50模型,对*.jpg图片分类,并在终端显示该图片的Top5置信度的分类ID、分类名称。
样例代码逻辑如下所示:
(1)数据预处理(解码+缩放),输出YUV420SP格式、224224分辨率的图片;
(2)色域转换、归一化,输出RGB格式、224
224分辨率的图片;
(3)模型推理,输出该图片所属各分类的置信度;
(4)数据后处理,该图片的Top5置信度的分类ID、分类名称。
具体操作步骤如下:
①通过mobaxtern使用ssh连接香橙派 Aipro
在这里插入图片描述

账户:HwHiAiUser
密码:MInd@123
②进入桌面,进入到用例目录下
在这里插入图片描述

③切换为root用户

在这里插入图片描述

④执行该用例脚本
在这里插入图片描述

从图中可以看到识别的效果和反应速度都是非常不错的。

资料内容——丰富社群生态

最后谈到的是对于我们这些业余玩家最为友好的内容,就是相关资料和入门教程,这些是我们去玩新板子的一个指南,也是更多想玩的人的一个引路人,我们在官网上可以看到的资料是非常的多,种类也很齐全(ps:这些下载能不能别用百度云了,没会员实在是太慢了)
对于想学习和扩展的人,这些资料来源都非常宝贵,给他们在学习路上解开了很多疑惑和苦恼。也有助于形成社群文化,大家在香橙派Ai pro的基础上发挥自己的想象和智慧,开发更多好玩的东西。
在这里插入图片描述

案例分析——搭建自己的智能家庭控制中枢

开源项目WukongRobot介绍
wukong-robot 是一个简单、灵活、优雅的中文语音对话机器人/智能音箱项目,目的是让中国的 Maker 和 Haker 们也能快速打造个性化的智能音箱。wukong-robot 还可能是第一个开源的脑机唤醒智能音箱。
关于智能家庭控制中枢整体设想架构如下图:
在这里插入图片描述

控制数据采集终端硬件结构框图如图 3.1 所示,它主要包括中央处理器(香橙派Aipro)、阵列式麦克风、Kinect 2、移动终端设备、无线通信等模块。除此之外还有电源模块和指示灯。
在这里插入图片描述

准备工作

①搭建python环境(python安装再此不多做复述)
wukong-robot 只支持 Python >= 3.7 且 < 3.10 ,不支持 Python 2.x 。
②准备整列麦克风
使用linux的alsa驱动麦克风阵列录音
③Zigbee模块
Zigbee模块通讯完成智能设备的控制
④安卓手机
开发app应用和使用公众号进行访问

安装Wukong

1.克隆该项目到本地

git clone https://github.com/wzpan/wukong-robot.git

2.安装ffmpeg pyaudio等模块为语音识别服务

sudo apt-get update -y
sudo apt-get install portaudio19-dev python-pyaudio python3-pyaudio sox pulseaudio libsox-fmt-all ffmpeg
pip3 install pyaudio

3.进入wukong文件夹中安装python项目依赖

cd wukong-robot
pip3 install -r requirements.txt

4.编译_snowboydetect.so

cd $HOME
wget https://wzpan-1253537070.cos.ap-guangzhou.myqcloud.com/misc/swig-3.0.10.tar.gz
tar xvf swig-3.0.10.tar.gz
cd swig-3.0.10
sudo apt-get -y update
sudo apt-get install -y libpcre3 libpcre3-dev
./configure --prefix=/usr --without-clisp --without-maximum-compile-warnings
make
sudo make install
sudo install -v -m755 -d /usr/share/doc/swig-3.0.10
sudo cp -v -R Doc/* /usr/share/doc/swig-3.0.10
sudo apt-get install -y libatlas-base-dev//构建snowboy
cd $HOME
wget https://wzpan-1253537070.cos.ap-guangzhou.myqcloud.com/wukong/snowboy.tar.bz2 # 使用我fork出来的版本以确保接口及Ubuntu 22兼容
tar -xvjf snowboy.tar.bz2
cd snowboy/swig/Python3
make
cp _snowboydetect.so wukon-robot的根目录/snowboy/

4.安装目前构建的第三方技能列表

mkdir $HOME/.wukong
cd $HOME/.wukong
git clone http://github.com/wzpan/wukong-contrib.git contrib
pip3 install -r contrib/requirements.txt

5.运行wukong

cd wukong-robot 所在的目录
python3 wukong.py

Zigbee模块在香橙派AI上使用

Zigbee无线通信网络主要由协调器、路由器以及终端设备节点3种类型组成,在网络建立初期,主要由协调器完成网络的发起、参数的设定以及信息的管理和维护的功能,路由器则负责转发消息和构建数据传输的链路,终端设备节点则负责控制连接的设备或者采集节点上的数据信息
这里我使用的是TI公司的Basic RF通信作为节点之间通信的基础,它拥有IEEE 802.15.4的标准的数据包的接收和发送功能,Basic RF包括Hardware layer、Hardware Abstraction layer、Basic RF layer以及Application layer四层,Hardware layer负责实现数据传输的基础,Hardware Abstraction layer提供结构来访问控制GPIO、UART、ADC等,Basic RF为无线传输提供协议,Application layer封装好提供给用户使用Basic RF和HAL层的函数。其组成框架图如图所示
在这里插入图片描述

DHT11模块在香橙派Aipro上使用

DHT11数字温湿度传感器是一款已含有校准数字信号输出的温湿度复合传感器,具有响应快、抗干扰能力强等优点。
在收到连接节点GPIO口信息后,传感器采用串行接口(单线双向)的方式工作,按照每次4ms左右的时间间隔进行通讯,在得到发送数据指令后,向对方发送按照温湿度整数小数部分加上校验和部分的数据供对方采集处理。
其工作流程为:用户通过香橙派Aipro的语音交互模式或者移动终端模式下达查询指令后,协调器节点通过GPIO口发送规定时间的低电平,DHT11温湿度传感器由低功耗节能模式转换为活跃应答模式,等待GPIO开始信号结束后,反馈一个响应信号,送出按照温湿度整数小数部分加上校验和部分的40bit的数据,并出发一次信号采集,香橙派Aipro对接收的信息进行读取.

外部Android应用设计

在Android模块设计中,设计了基于socket的Android应用作为移动终端交互方式,在Android终端可以完成和wukong语音平台的简单的信息交互和触发wukong平台下的插件来实现移动终端控制家居设备的功能。通过内网穿透的做法将loaclhost映射成公网IP,以实现远程控制功能,便于扩大控制范围以及系统使用的便捷性。
Android应用和香橙派Aipro的通信主要靠socket完成,在ReSpeaker上运行wukong的同时在后台通过线程方式启动scoket的服务端并通过对本地IP和端口映射的方式得到公网的IP地址和端口,Android应用则只需要开启移动数据和添加网络访问权限然后向该公网IP和端口发送内容即可。
Android应用的设计主要包括:应用启动过场动画、登陆验证界面、主通信界面。
过场动画在设计好xml以及画面加载过程设定后,通过修改AndroidManifest.xml文件可以定义启动顺序,最后开启一个线程并设定暂停时间负责过程动画的展示。
登陆界面主要是对使用者的身份进行一个校验过程,保证使用者的所有权限以及安全问题,首先在启动主页面之前先启动一个Intent,负责加载验证页面,验证页面会对编辑框内是否为空、是账号否符合格式、密码长度是否足够进行检测,按下sing in按键后在后台启动验证过程,向tornado后台指定描述层发送get请求获得用户设置的账号和密码,对比校验账号和密码是否正确。
主通信界面是核心部分,用于Android移动终端和wukong完成通信交互,分为编辑框部分,按键部分、文本显示部分。
用户向msg编辑框输入需要传达的指令,向ip和port输入需要发送的ip地址和端口,之后的线程将从此通过getText、setText等函数获得编辑框内容和修改编辑框内容。
send按键负责从msg编辑框获得文字内容,并转换为bytes数据然后打开向Outputstream进行写入,connect负责连接socket,按下后会启动ConnectThread线程完成向服务端发送connect信号的工作,并启动ReciveThread线程用于接收服务端反馈的信息,eixt按键用于结束整个应用。
界面顶部有文本显示控件,负责显示ReciveThread接收的信息,以达到更加直观的显示效果。
具体UI如图所示:
在这里插入图片描述

基于tornado的http服务器设计

考虑到ios用户无法安装Android应用,基于tornado的http服务器的设计很好的解决了这个问题,tornado是一种web服务器软件的开源版本,它的主要特点是:单线程异步的非阻赛式服务器、速度快、学习成本很低。
tornado后台遵循resetful架构,为每个资源单独设计类以及get和post等处理方法。
Web前端的设计包括登陆界面、主界面。
登陆界面负责通过从本地配置文件中读取设置的用户和密码的方式校验登陆用户的身份信息信息是否匹配,保证访问是被认可的,通过从html页面读取编辑框内输入信息然后post方法对其进行和本地文件设置进行校验。
主界面主要负责和wukong进行交互,用户通过编辑框编辑命令,在按下发送按钮后,触发index.js中的函数进行处理,最后将处理结果以{“type”: “text”, “query”: query, ‘validate’: getCookie(‘validation’), “uuid”: uuid}的json格式作为网页参数,服务端的post读取对应参数交付回复函数进行应答,html再读取通过logger.debug(‘response msg: {}’.format(msg))读取日志记录文件将插件回复的内容以{‘code’: 0, ‘message’: ‘ok’, ‘resp’: msg, ‘audio’: audio, ‘plugin’: plugin}的json格式作为网页读取参数,读取msg字段进行显示,具体UI如图所示:
在这里插入图片描述

除了web版本,还在便利的原则上对微信公众号进行了接入,利用tornado后台对微信公众号进行二次开发,实现了公众号接入wukong语音平台回复功能,在tornado程序中加入一个层级目录,再利用wechatpy的SDK,完成get方法对token的验证过程以及post方法的回复功能,具体效果如图所示:

在这里插入图片描述

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

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

相关文章

前端JS必用工具【js-tool-big-box】学习,获取全球重点城市时间

我们去住一些旅馆的时候&#xff0c;或者一些国际性网站&#xff0c;经常可以看见他们的钟表会展示一些国家地区的时间&#xff0c;这个就是很常用的功能。但如果不常接触这个功能的开发网站呢&#xff0c;大家就看自己电脑右下角的时间展示&#xff0c;就是自己当前的具体时间…

新手一次过软考高级(系统规划与管理师)秘笈,请收藏!

2024上软考已经圆满结束&#xff0c;距离下半年的考试也只剩下半年不到的时间。需要备考下半年软考高级的小伙伴们可以抓紧开始准备了&#xff0c;毕竟高级科目的难度可是不低的。 今天给大家整理了——系统规划与管理师的备考资料 &#xff0c;都是核心重点&#xff0c;有PDF&…

艾体宝洞察 | Redis Enterprise对比ElastiCache

选择缓存数据库时&#xff0c;如何在Amazon ElastiCache和Redis Enterprise之间做出选择&#xff0c;应当考虑哪些标准&#xff1f; ElastiCache 通常可以满足基本的缓存需求&#xff0c;因此是一种适合初始阶段的解决方案。但随着使用量的增加&#xff0c;ElastiCache很快会变…

OrangePi AIpro上手初体验:

OrangePi AIpro上手初体验&#xff1a; 1.基本外观及功能接口简介2.点亮OrangePi AIpro开发板3.OrangePi AIpro功能体验3.1.目标检测3.2.OCR文字识别3.3.图像的曝光增强3.4.系统的整体性能(运行ROS) 4.OrangePi AIpro体验总结4.1.硬件及软件生态&#xff1a;4.2.使用体验及性能…

数据结构(三)循环链表

文章目录 一、循环链表&#xff08;一&#xff09;概念&#xff08;二&#xff09;示意图&#xff08;三&#xff09;操作1. 创建循环链表&#xff08;1&#xff09;函数声明&#xff08;2&#xff09;注意点&#xff08;3&#xff09;代码实现 2. 插入&#xff08;头插&#x…

【LeetCode刷题】滑动窗口解决问题:水果成篮、找到字符串中所有字母异位词

【LeetCode刷题】Day 9 题目1&#xff1a;904. 水果成篮思路分析&#xff1a;思路1&#xff1a;暴力枚举哈希表思路2&#xff1a;窗口滑动哈希表 题目2&#xff1a;438. 找到字符串中所有字母异位词思路分析&#xff1a;思路1&#xff1a;暴力枚举哈希表思路2&#xff1a;滑动窗…

极简编程:一行JS代码获取全球各城市当前时间!

之前在一些国际化网站看到过&#xff0c;他们展示了当前北京、纽约和伦敦的时钟&#xff0c;在一次住店的时候&#xff0c;我也看到了类似的3个时钟&#xff0c;甚至更多&#xff0c;有的会展示东京时间。 让我觉得获取一些全球重点城市的当前时间&#xff0c;会是一个很常用的…

【NumPy】关于numpy.add()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

5.4 Go 匿名函数与闭包

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

网站笔记:huggingface——can you run it?

Can You Run It? LLM version - a Hugging Face Space by Vokturz 1 配置设置部分 Model Name就是需要测量的模型名称 GPU Vendor ——GPU供应商 Filter by RAM (按RAM过滤) 筛选出所有内存容量在选择范围之间的GPU GPU 下拉菜单选择具体的GPU型号 LoRa % trainable param…

靠AI创意,变现20w!

文章首发于公众号&#xff1a;X小鹿AI副业 大家好&#xff0c;我是程序员X小鹿&#xff0c;前互联网大厂程序员&#xff0c;自由职业2年&#xff0c;也一名 AIGC 爱好者&#xff0c;持续分享更多前沿的「AI 工具」和「AI副业玩法」&#xff0c;欢迎一起交流~ 之前X小鹿一直在各…

记录一次安装k8s初始化失败

实例化 kubeadm init --configkubeadm.yaml --ignore-preflight-errorsSystemVerification报错 [init] Using Kubernetes version: v1.25.0 [preflight] Running pre-flight checks error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR CRI]: co…

海外仓erp系统是什么?和海外仓管理系统一样吗?

为了满足海外仓全球化发展的大趋势&#xff0c;同时提升海外仓运转的效率&#xff0c;一套好用&#xff0c;性价比高的海外仓管理系统还是非常重要的。 不过很多海外仓企业其实不太分得清erp系统和海外仓管理系统的差异&#xff0c;今天我们就来系统的聊一下&#xff0c;方便大…

K8S有了Service,为什么还要Ingress?

1、有了Service为什么还要Ingress? NodePort对外暴露端口存在的不足&#xff1a; 一个端口只能一个服务使用, 端口需要提前规划。 随着业务扩展, 端口的管理将是一个头疼的问题 只支持4层的负载均衡 LoadBalancer存在的不足&#xff1a; 贵、贵、贵。 要上云(俗话说上云…

需求跟踪矩阵是什么?怎么创建?一文详解

一、什么是需求跟踪矩阵 对项目经理或产品经理来说&#xff0c;需求清单肯定不陌生&#xff0c;那什么是需求跟踪矩阵呢&#xff1f; 需求跟踪矩阵&#xff08;Requirement Track Matrix&#xff0c;简称RTM &#xff09;&#xff0c;是把产品需求从其来源连接到能满足需求的…

无人机助力光伏项目测绘建模

随着全球对可再生能源需求的不断增长&#xff0c;光伏项目作为其中的重要一环&#xff0c;其建设规模和速度都在不断提高。在这一背景下&#xff0c;如何高效、准确地完成光伏项目的测绘与建模工作&#xff0c;成为了行业发展的重要课题。近年来&#xff0c;无人机技术的快速发…

哪个品种能够叫板白银现货t+d?

白银TD是在上海黄金交易所挂牌的白银投资品种&#xff0c;它可以说是国内版的现货白银交易&#xff0c;大家也可以把它理解成为白银交易的“快速通道”。通过它&#xff0c;投资者可以更加灵活地买卖白银&#xff0c;实现对内地白银价格的跟踪&#xff0c;并获得一定的杠杆化收…

git工作流程

以财务开发为例子&#xff1a; 1. 新建分支 1.1. upstream新建分支&#xff1a;finance-feature 1.2. origin新建对应分支&#xff1a;finance-feature 1.3 新建本地分支 git branch finance-feature 注&#xff1a; 同步远程分支&#xff1a;git fetch upstream feature…

CSDN智能总结助手

github项目地址&#xff1a; https://github.com/anjude/little-demo/tree/master 获取CSDN的user name和user token 打开csdn&#xff0c;打开控制台 - Application - Cookies&#xff0c;找到domain为blog.csdn.net的cookie&#xff0c;复制user_name和user_token的值 把上…

最详细Linux提权总结(建议收藏)

1、内核漏洞脏牛提权 查看内核版本信息 uname -a 具体提权 1、信息收集配合kali提权 uname -a #查看内核版本信息 内核版本为3.2.78&#xff0c;那我们可以搜索该版本漏洞 searchsploit linux 3.2.78 找到几个可以使用的脏牛提权脚本&#xff0c;这里我使用的是40839.c脚…