Alto——通过构建一个自学机器来展示机器学习基础
文件列表(压缩包大小 10.32M)
免费
概述
认识一下Alto,它是一个可学习的对象,Alto旨在通过构建一个可以自学的机器来展示机器学习(ML)最基本的方面。 Alto使用Coral USB Accelerator和Raspberry Pi来协助展示如何轻松地将机器学习功能添加到硬件项目中。
该资源库包含从头开始构建Alto的所有说明和文件。 最重要的是,Alto是完全开源的! 任何人都可以使用此代码、原理图和案例设计来创建学习对象。
要想更多地了解USB Accelerator中的Edge TPU可以做什么,并获得你自己项目的灵感,请访问Coral示例页面。
本文分为五个章节:
用户指南——解释Alto的界面以及Alto的使用方式。
制作自己的Alto——构建Alto的指南,内容包括设置软件,焊接电路以及构造Alto的纸板主体。
使用Alto进行实验——一组简单的实验可以帮助你了解Alto的工作原理,以及如何使用Alto向其他人介绍机器学习的一些基本概念。
破解Alto——简要介绍如何破解Alto以使其以不同外观和表现来适合你自己的应用程序。
技术概述——关于Alto的软件和电子设备及其功能的更详细的介绍。
Alto的正面有一个摄像头,两侧各有一个手臂和一个按钮。 Alto使用相机观察周围的世界。 这些按钮用来开始学习,当Alto看到已学会识别的内容时,它将用手臂指着。
Alto可以学习两种事物。 当Alto识别其中一个时,它将指向其对应的手臂。 Alto在最基础的水平上展示了机器学习:机器识别什么取决于你教什么。
教Alto识别物体时,将物体放在Alto前面,然后按侧面的按钮之一。 当Alto拍摄图像以了解物体时,其手臂将慢慢抬起。 当Alto的手臂水平伸展时,学习过程就完成了。 现在,当同一对象放置在其前面时,Alto将指向该对象。
教Alto认识相同物体的次数越多,Alto识别该事物的能力就越高。 你可以随心所欲地教Alto,尝试通过旋转对象以显示不同的角度并将其放置在不同的距离上,每次按相同的按钮让Alto学习有关该对象更多的信息。
首先,教Alto的每个手臂识别的不同对象,例如,教Alto学习水果类型之间的差异,一侧识别一个红苹果,另一侧识别一个香蕉。
除了识别单个对象之外,你还可以教Alto识别对象的类别。 基于它对红苹果的了解,可以教它识别一般的红色物体而不仅仅是苹果。Alto学会了识别两个类别后,是否可以正确识别一个以前从未见过的新红色物体?
如果你想教Alto一些新事物,可以通过同时按住两个按钮3秒钟来清除其记忆。 这将清除Alto两边所学习的一切,并且无法撤消。
要更详细地了解这些过程中的任何一个,请查看之后的“ Alto实验”部分。
以下步骤可以指导你组装自己的Alto:设置Raspberry Pi,焊接电子设备以及组装用于容纳所有组件的外壳。 要阅读每个步骤的更详细说明,请下载文件,其中包含对应的说明文档。
第一步是为Alto设置软件环境,然后加载Alto的Python代码。 软件和操作系统部分列出整个过程的步骤,开始设置Raspberry Pi Zero,然后刷新SD卡并安装Alto应用程序软件。
详细步骤参考1.0-Set-up-the-software.md
Alto的电子设备设计尽可能简单和易于破解。 你只需要几个通用的组件和基本的焊接技能就可以组装所有东西。 该资料库的电子目录中包含完整的循序渐进指南,包括原理图和物料清单。
详细步骤参考2.0-Build-the-electronics.md
Alto的内部结构由折叠纸板制成,并与订书钉固定在一起。 Alto的所有组件都在这种结构中:伺服器,LED,照相机和内部电子组件都安装在纸板层中。
首先,您需要打印出PDF模板(即文件alto-paper-templates.pdf )并将其粘贴到你的材料上,这是将纸板切成正确形状的模板,所有标签均打印在模板本身上。
使用工具(例如工艺刀)需要大约45分钟完成此步骤,如果可以使用激光工具,则可以使用激光工具完成此步骤,这样速度会很快。
有关此阶段构建Alto的更多详细说明,请参阅电子设备外壳说明:3.1-Making-the-electronics-casing.md
Alto的外部结构是由卡片制成的,围绕Alto内部结构的接缝并折叠在一起。 该过程与之前类似,在外壳构建目录中进行了详细介绍。
白卡构成了Alto外部结构的大部分,并隐藏了其中的某些组件和电子设备。 我们可打印的彩色卡片附件,突出了黄色的眼睛(相机),红色的耳朵(按钮)和蓝色的臂(伺服电机臂)。
您还可以在此阶段自定义Alto的外观样式,以使你的Alto独一无二!
详细步骤见3.2-Making-altos-outer-shell.md
现在你应该已经拥有了完整的Alto单元,下一步就是教它!
参见文件4.0-experiments-with-alto.md
拿来一些物体,将Alto插入电源,然后开始探索可以教Alto识别的内容。 如果您需要一些灵感来继续学习,请查看下面的“用Alto进行实验”部分。
Alto是理解机器学习基础的好方法。 本节包含许多实验,可以帮助你了解Alto的工作原理,并向其他人介绍机器学习的基础。
这些实验涵盖了从简单对象识别到引入k最近邻(kNN)算法的各个方面,为将Alto背后的概念变为现实提供了实用的方法。具体实现参考文件4.0-experiments-with-alto.md
详细见5.0-remixing-alto.md
Alto的所有硬件和软件都是在考虑可破解的情况下创建的:机箱设计可以用不同的材料制成,也可以完全重构。 电子设备可以适应使用任何可用的组件; 伺服器可以替代任何类型的执行器; 并且该软件使用易于修改的高级语言(Python)编写。
以下是一些可以修改自己的Alto的方法:
可以对现有代码进行一些细微调整,以更改Alto的置信度或行为。
超越伺服器,探索Alto展示其公认东西的新方法。
Alto的外壳可以轻松更改,以适应您可能想到的任何应用。 可以通过简单的美学改变来改变Alto的外观,也可以改变手臂或身体的设计。
Hacking Alto是迈向构建自己的机器学习项目的重要一步。 如果你使用Coral USB Accelerator想到任何很棒的东西,请展示给我们! 并在此处将您的机器学习实验提交到Google实验平台。
Alto具有三个主要要素:一台带有摄像头的Raspberry Pi Zero单板计算机;一台具有摄像头的单板计算机; ,用于加速设备上的机器学习的Coral USB Accelerator ; 以及一些用于用户界面的简单电子设备。
Raspberry Pi Zero可以运行Raspberry Pi OS。它是负责与用户连接的硬件(通过GPIO连接),摄像头模块和Coral Edge TPU(通过USB连接)接口。该操作系统将自动启动,并充当运行Alto的软件应用程序的主机。
该系统通过将ML图形执行委托给Coral USB Accelerator上的Edge TPU来加速所有ML推断的(以及某些学习)。 Edge TPU是一种机器学习协处理器,它使像Raspberry Pi这样的低功率计算机能够以比CPU上更好的性能运行高级ML工作负载。 Alto执行的所有ML任务均使用Edge TPU在设备上(离线)完成。
尽管Edge TPU的Coral软件不能正式支持Raspberry Pi Zero(因为它具有ARMv6芯片组,但是Coral正式需要ARMv8),但是Edge TPU Runtime的Coral软件是开源的,并且已经成功地为Raspberry Pi Zero进行了编译。
你可以在Coral网站上找到有关Coral和Edge TPU硬件的更多信息。
Alto软件应用程序是用Python编写的。 它从Raspberry Pi摄像头模块接收输入,准备通过Edge TPU模块进行分类,并与电子接口对接。 该应用程序使用k最近邻分类器模型(k-NN)来识别给定图像与其学习数据集中其他图像的近似度。
当Alto学习时,它将计算来自图像传感器的传入数据在其模型中的输入情况,并为其分配标签——对于Alto,此标签是其左臂或右臂。 当Alto处于识别模式时,确定来自图像传感器数据帧的输入情况,并计算它们与其他已知输入的接近度; 如果该物体在已标记输物体的一定距离内,则Alto会识别出某物,并用其相应的手臂指向它。
Alto的电子设备设计尽可能灵活和易于破解。 它基于单个通孔原型板,可以很容易地手工组装。 该开发板连接到Raspberry Pi Zero的GPIO引脚,并断开Alto其他组件的插头:两个伺服器,两个按钮和一个LED。
这些项目中的每一项都很常见且易于获得。 另外,它们可以轻松替代其他零件,例如,如果你有不同的伺服器或可用的LED。 该设计和物料清单(BOM)包括一个预制的USB分支板,该板包括一个分立的功率调节电路,该电路将确保正常运行期间向Alto顺利传送足够的功率。
你可以在电子产品目录(即文件2.0-Build-the-electronics.md)中找到有关电子产品的更多信息,物料清单可在此处作为可下载的电子表格获得。
这是Google Creative Lab和我们RRD Labs的合作伙伴之间的共同努力。 这不是Google的官方产品。
我们鼓励开源项目作为相互学习的方式。 分享这些作品并创作衍生作品时,请尊重我们和其他创作者的权利,包括版权和商标权(如果存在)。 如果您想了解有关Google政策的更多信息,可以在这里找到。 要为该项目做出贡献,请参考此存储库中的贡献文档。
如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈
评论(0)