描述
谁不想施展自己的法术并感受神奇的感觉?在这个项目中,我们正在构建一个数字“魔杖”,它包括以三种手势(翼、环和斜坡)之一挥动魔杖。如果你成功施展了咒语,你会看到相应的手势出现在屏幕上,Arduino 板上的红色 LED 应该亮起。
该项目使用深度学习模型对使用 Arduino 板上内置的多维传感器收集的人类输入手势进行训练和评估。具体来说,它使用 TensorFlow Lite 运行一个 20 KB 的卷积神经网络模型来识别带有加速度计的手势。通过这个有趣的项目,您可以看到深度学习如何将奇怪的数字数据转化为有意义的信息,达到神奇的效果。
关于我们的模型:
我们的模型一次接收 128 组 X、Y 和 Z 值,以 25 Hz 的速率加起来相当于五秒多一点的数据。每个值都是一个 32 位浮点数,表示该方向的加速度量。捕获数据并运行推理后,我们的应用程序将确定是否检测到有效手势,将一些输出打印到终端,并点亮 LED。在这里,我们使用预训练模型,该模型由许多人根据以下手势执行。
我们训练的三种手势形状 - 来自 TinyML 第 11 章(第 313 页)
模型架构:
我们的手势检测模型由以下结构组成(如最后的示意图所示):
-
主循环:连续循环,不需要预处理,因此每秒运行多次
-
加速度计处理程序:从传感器输入数据并写入模型的输入张量
-
TF Lite解释器和模型:128组X、Y、Z值数据数组,由解释器运行。它既漂亮又小巧,只有 19.5 KB。
-
手势预测器:获取模型的输出并决定是否执行了手势
-
输出处理程序:如果执行了正确的手势,则点亮 LED 并将输出打印到屏幕
该项目在以下操作系统中进行了测试和构建:
-
Ubuntu 16.04 LTS(64 位)
-
内存 31.3 GiB
-
处理器 Intel® Core™ i7-6700 CPU @ 3.40GHz × 8
运行测试:
您应该确认该程序已构建并运行。然后就可以进行下一步了。
部署到 Arduino:
-
安装并打开 Arduino IDE
-
安装 Arduino_TensorFlowLite:在工具 -> 管理库中打开 Arduino 库管理器...并搜索 Arduino_TensorFlowLite
-
安装Arduino_LSM9DS1 :工具 -> 管理库...并搜索 Arduino_LSM9DS1。安装 1.0.0 版驱动程序以确保以下说明有效。请注意,您可能不再需要“修补驱动程序”(如链接中所述),因为我相信他们已经修复了它并且我不需要这样做
-
加载并运行魔杖:
-
打开 Arduino 串行监视器(工具 -> 串行监视器)。并开始使用你的魔杖!握住 Arduino,使其组件朝上,USB 电缆在您的左侧。执行手势“WING”、“RING”(顺时针)和“SLOPE”,您应该会看到相应的输出:
-
注意:确实需要反复试验才能找出正确的挥手手势。我发现对我来说,“斜坡”手势比“翼”手势要容易得多。在空中绘制时,板对倾斜角度或不同速度很敏感。多尝试几次,看着自己施法,玩得开心!!!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉