物联网触及更广泛领域,工厂、商店、城市基础设施、家庭等的网络边缘设备将产生更多数据,原本由数据中心进行的人工智能数据处理和分析被转移到边缘设备,人工智能将无处不在。人工智能“最后一公里”需要计算能力高的硬件,开源硬件BeagleBone®AI为此而生。
由BeagleBoard.org®基金会2019年9月推出的BeagleBone®AI低成本开发板建立在经过验证的开源Linux方案之上,弥补了小型单板计算机(SBC)与工业计算机之间的鸿沟。BeagleBone®AI基于德州仪器Sitara AM5729处理器,与BeagleBone®Black接口兼容,开发人员可以运用现有的丰富硬件实现强大的机器学习功能。
通过BeagleBone®AI,开发人员可以在Sitara AM5729处理器上利用TI C66x数字信号处理器(DSP)内核和嵌入式视觉引擎(EVE)内核。机器学习由优化的TI深度学习(TIDL)软件框架和预安装的软件工具支持,简单操作步骤即可下载并运行最新的边缘推理算法和应用程序示例。
BeagleBone®AI具有以下特性:
●与BeagleBone®Black的兼容:可使用现有的BeagleBone®Cape插件以及许多第三方Cape插件和外壳
●1GB RAM和16GB板载eMMC闪存,具有高速接口
●支持电源和高速数据传输双用途控制器的USB Type-C;可当作USB Type-A主机
●支持千兆以太网、2.4GHz/5GHz WiFi和蓝牙4.2
●microHDMI视频和音频输出
●无需下载,即用型软件体验
●具备TI Sitara AM5729处理器的所有特性
使用BeagleBone®AI与TIDL开始设计 德州仪器深度学习(TIDL)API和示例程序已被移植到BeagleBone®AI默认的Debian发布镜像(操作系统)和mjpg-streamer(捕获摄像头信息的应用程序)。下面将讲述如何使用BeagleBone®AI和TIDL软件库。
●硬件:一个BeagleBone® AI;一个网络摄像头Logitech®HD Pro
●软件应用程序和在线服务:OpenCV;Debian;德州仪器TIDL
示例程序使用经过预训练的模型和mjpg-streamer捕获的网络摄像头实时数据流进行网络应用开发。无需在主机上安装任何工具软件,也无需在BeagleBone® AI上安装显示器。mjpg-streamer软件创建了一个视频通道,可在任何电脑浏览器中打开并访问在BeagleBone® AI上运行的服务器。
项目小组已经基本完成分类示例(Classification example);分割示例(Segmentation example)正在开发中;虚拟示例提供未经处理的实时视频流。
1.升级BeagleBone® AI的软件库 操作步骤如下:(参考说明点击这里)
●建立以太网和基于WiFi或USB小工具的Internet连接
●更新Debian软件包
●将Cloud9-examples、Linux内核和启动脚本更新到最新版本
2.安装TIDL软件库和示例 输入代码:
输入代码 3.运行分类示例 ●在Cloud9 IDE中通过mjpg-streamer运行TIDL分类示例
●在“工作区”并双击文件,在Cloud9 IDE编辑器中打开BeagleBone / AI / tidl / classification.tidl.cpp
●点击“运行”按钮
●在“运行配置”窗口中将“运行程序”更改为“ C或C ++(Beagle Makefile)”
●在“运行配置”窗口中单击“运行”按钮
●输入密码“ temppwd”,然后按Enter
●单击“ BeagleBone-> MJPG-Streamer”
可以单击“运行配置”窗口中的“停止”按钮来停止演示
4.在Debian系统中实施的注意要点 TIDL API库和示例已发布并包含在TI的Processor SDK中,这个SDK本质上是TI提供的不同Linux发行版,BeagleBoard.org®提供的Debian发行版集成了相同的组件。TIDL API文档包含许多Processor SDK参考。TIDL与其组件,比如OpenCL,都集成在BeagleBoard.org®的Debian镜像中。
5.通过浏览器查看视频数据 mjpg-streamer支持OpenCV插件,无需本地显示器,因此,通过C/C++或Python编程语言就能显示深度学习模型的视频数据。本文只是针对嵌入式电子产品,而不是台式计算机,与BeagleBone IDE一样,可为开发工作带来便利。同时,仍然可以使用键盘、显示器和鼠标运行OpenCV GUI演示。
6.集成到Cloud9 IDE Cloud9 IDE的集成组件是runner和Makefile。软件库和执行模型基于“.tidl”,所有项目都是一个源文件。