Mirru展示用Google MediaPipes手部追踪控制蓝牙假手

查看引用/信息源请点击:映维网

利用手机摄像头的手部追踪来控制蓝牙假手

映维网 2021年06月01日)Mirru是一个正在开发中的开源Android应用,其可通过手部追踪技术来帮助用户控制机器假手。利用这个免费的工具,你可以立即将各种手部动作映射到机器人假手(可以以低成本进行3D打印和组装)。团队表示:“我们希望提供一种廉价、直观、开放的端到端解决方案来替代当前昂贵且繁琐的专有技术。”

图1:Mirru app使用MediaPipes手部追踪来移动机械手指的演示。

Mirru团队由位于巴黎的独立设计师与技术专家维奥莱塔·洛佩兹(Violeta López)和弗拉基米尔·赫尔曼德(Vladimir Hermand)组成。为了启动这个项目,团队参加了Tweag的Open Source Fellowship项目,从而获得相关的资金、指导和数据工程专业知识。

相关的Fellowship项目为期三个月,而团队的目标是开发一个利用计算机视觉技术来控制蓝牙假手的初始版Android应用,然后在Google Play商店免费提供。在MediaPipe的帮助下,团队快速地原型化所述应用程序,因为其不必构建自己的机器学习模型(没有资源或训练数据)。

1. 为什么使用手部追踪?

利用能够用于手部追踪的前置摄像头和智能手机,这可以带来一种全新的、经济实惠的的多功用假肢控制方式。

假设我是一名左手截肢者,并拥有一个机器假肢。我每天都需要假肢来执行不同的夹点操作。例如,我需要假肢摆出捏指姿态来拾取小物品,或者摆出半握拳状来拾取水果或杯子之类的物品。我可以通过肌电肌肉传感器来改变和执行相应的夹点模式,例如,通过弯曲和放松上肢肌肉来打开和关闭操作模式。这种肌电肌肉传感器是身体和假体之间的主要接口。

然而,这并不像看上去那么容易。控制肌电传感器需要耗费大量的时间以习惯和掌握,而且很多人从来没有这样做过。医生为你安装传感器同样价格不菲,尤其是对于发展中国家或没有医疗保险的人士。最后,目前大多数设备的夹点数量限制在10个以下,只有少数型号提供了创建自定义夹点的方法,但通常非常麻烦。

Mirru提供了一个替代接口。只需使用几乎人人都拥有的智能手机,你就可以实时将手部动作映射到假肢,并以直观的方式与其通信。这同时允许用户能够快速编程无限量的假手夹点。目前,Mirru不涉及肌电图,因为可靠的肌肉传感器价格昂贵。编程的夹点需要通过Android手机触发。所以,这个应用程序的第一版更适合诸如扫地、看书、或者拿杯子或购物袋这样的活动。在未来,团队希望将肌电传感器与手部追踪相结合。

用Mirru应用程序编程一个夹点如下面的GIF动图所示:假设我想用机械假手抓住一个物品,我需要将假肢放到所述物品前面,然后另一只真手在Android手机前面摆出相应的动作。这时,Mirru会将这个动作实时映射到假肢。然后,我可以锁定假肢锁,并解放我的真手。最后,我可以保存这个夹点供日后使用,并将其添加到我的夹点库中。

图2:被试使用智能手机的手部追踪来编程的假肢夹点,以拿起卷尺并用另一只手测量。

2. Brunel Hand和Mirru Arduino Sketch

为了实现帮助尽可能多的人能够打印、组装和控制自己的假肢,团队设计了Mirru这个android应用,并用于操作通过支持蓝牙型Arduino板和伺服电机进行控制的机器假手。

在项目中,团队3D打印并组装了一个由Open Bionics制造的开源机械手Brunel。首先,团队3D打印了CC Attribution-Sharealike 4.0 International License许可下的3D打印文档,然后购买了必要的伺服系统、弹簧和螺丝来装配假手。这只假肢的成本大约为500欧元(约合人民币3892元)。

Brunel Hand配备了基于肌电的固件和由Open Bionics开发的PCB板,但由于它只有4个伺服电机,你可以使用任何微控制器。团队最终使用Adafruit ESP32来实现蓝牙功能,并创建了一个Arduino Sketch供用户自行下载、定制和上传。然后,你可以下载Mirru应用程序,并将其用作3D打印假手的控制界面。

3. 用MediaPipe进行手部追踪

业内有一系列的手部追踪计算机视觉解决方案可用于这个项目,但团队需要一个快速的,开源的解决方案,不需要自行训练模型,并能够可靠地用于便携式设备,如智能手机。

MediaPipe为手部追踪提供了出色的开箱即用支持,由于团队没有可用的训练数据或资源从零开始创建模型,所以它非常适合这个项目。团队能够轻松地构建Android示例应用。更好的是,团队不需要对现成的手部追踪模型进行任何调整,因为hand landmark模型为原型提供了所有必要的输出。

当对真实用户测试假肢时,许多人都对这款应用能够以如此快速地映射手部动作感到印象深刻。

图3:一名用户正在演示MediaPipe手部系统能以多快的速度将真实手指动作转化为假肢手指的动作。

4. 将3D MediaPipe转化成机器假手的输入

为了实现Mirru应用程序的目标,团队需要使用手部追踪来实时地,独立地控制Brunel Hand的每个手指。对于这个假肢,食指、中指和无名指通过伺服装置驱动,而后者以0到180度的角度移动;0表示手指完全竖直,180表示手指完全向下弯曲。由于缺乏足够的训练数据,团队无法从零开始创建一个模型来为计算所述地伺服角度,所以洛佩兹和赫尔曼德选择使用一种启发式方法,将默认的landmark输出与原型所需的硬件输入相关联。

图4:在实验室用所述app和原型测试输出到输入的转换。

团队一开始不确定3D landmark中的估计深度(Z)坐标是否足够精确并用以转换输入,或者它是否仅限于2D。作为第一步,团队记录了一个示例数据集,并在Jupyter Notebook用Plotly实现了点的可视化。考虑到这项技术只使用一个摄像头,没有任何深度传感器,坐标的质量和精度立刻给团队留下了深刻的印象。正如MediaPipe文档中提到地一样,Z坐标与X/Y坐标的比例略有不同,但这似乎并没有对原型构成重大挑战。

图5: 由21个3D手部landmark组成的手部数据可视化。

考虑到3D landmark的准确性,团队选择3D计算以将landmark输出与假肢所需的输入相关联。在相关的方法中,团队计算手指方向和手掌定义的平面法线之间的角度,从而计算手指相对于手掌的锐角。角度为0度对应于手指的最大闭合度,角度为180度表示手指完全伸出。可以通过计算从手指底部的landmark到指尖的landmark的向量来计算手指的方向。

图6:3D landmark的图表,以及用来计算手指方向向量、手掌法线和两者形成角度的landmark。

团队通过选择手掌平面的三个点来计算手掌法线。使用Landmark 0作为参考点,团队计算边1和边2的向量,并计算向量的叉积以得到手掌法线。最后计算手指方向与手掌法线的夹角。它以弧度为单位返回用于计算度数的角度。

团队必须进行额外的处理来匹配假手拇指的自由度。拇指的运动方式比其他手指更复杂。为了允许应用程序使用拇指,团队对拇指方向和手掌法线进行了类似的计算,但使用了不同的landmark。

一旦在Android手机计算了伺服角度,团队就可以通过蓝牙将相关值发送到Arduino板,Arduino板将伺服移动到正确的位置。由于模型输出中存在一定的噪点,团队在管道中添加了一个平滑步骤。这一步骤非常重要,因为机器手指的运动就不会过于抖动而无法精确抓握。

图7:一名被试正在通过Mirru app令假肢执行捏指动作。

5. 总结

Mirru应用程序和Mirru Arduino Sketch的设计是为了帮助任何人用自己的真手和Android手机来控制一个开源的假肢。这是一个新颖和低成本的肌肉传感方案替代品。另外,MediaPipe已经证明它是实现手部追踪组件的正确工具。Mirru团队能够快速开始使用MediaPipe的现成解决方案,无需收集任何训练数据或从零开始设计模型。从追踪点到机械手的实时转换速度特别快,这让Mirru的用户感到非常兴奋,并为假肢的未来开辟了众多可能性。

至于Mirru应用程序的当前状态,团队尚未实现记录和保存序列长于静态夹点位置的移动手势。例如,记录手指弹奏钢琴的连串动作。但团队表示,假肢的未来存在众多等待挖掘的可能性。

对于将MediaPipe手部追踪功能与现有肌电假肢相结合的潜力,团队感到非常兴奋,因为这将为实时创建和保存定制假肢夹点提供强大而先进的方法。另外,在MediaPipe的帮助下,团队能够提供一种开源的专有假肢替代方法,无需使用肌电传感器,无需拜访假肢医生,而且成本要比市场中的已有方案要低得多,同时源代码可以由其他开发者定制和构建。团队非常期待开源社区的其他想法,以及手部追踪技术能给假肢用户和制造商带来什么。

如果有任何想法或评价,你可以通过这个邮件联系Mirru团队。另外,你可以访问相关的GitHub页面

本文链接https://news.nweon.com/86261
转载须知:转载摘编需注明来源映维网并保留本文链接
入行必读:腾讯可以向Facebook学习什么

更多阅读推荐......

资讯