建网站怎么弄,做网站如何躲过网警,iis7搭建网站,怎么免费创建网站就在不久前#xff0c;Google 人工智能实验室宣布#xff0c;他们在「实时手部跟踪」方面取得了新的进展#xff0c;并将这项新技术运用在了 MediaPipe 中#xff0c;这也是 AI 计算机视觉任务的一大突破。这一技术不光可以在手机上实现实时捕捉性能#xff0c;甚至可以同…就在不久前Google 人工智能实验室宣布他们在「实时手部跟踪」方面取得了新的进展并将这项新技术运用在了 MediaPipe 中这也是 AI 计算机视觉任务的一大突破。这一技术不光可以在手机上实现实时捕捉性能甚至可以同时对多个手的动作进行跟踪。目前Google 已经将该项目开源并且发布了相关博客介绍了这项技术雷锋网 AI 开发者将其内容整理编译如下。 概述
能够对手的形状和运动轨迹进行感知是改善用户在不同的技术领域和平台上的体验的一个重要组成部分。例如它可以实现手语理解和手势控制还可以使数字内容和信息叠加在增强现实ARhttps://ai.googleblog.com/search/label/Augmented%20Reality 的物理世界之上。虽然对我们来说这个能力是天生的但强大的实时手部感知是一项极具挑战性的计算机视觉任务因为手往往会自我遮盖或相互遮挡例如手指/手掌之间的遮蔽或者握手而且手部之间也缺乏高对比度。
我们现在发布了一种新的手部感知方法并且在 6 月的 CVPR 2019 大会上我们已经对该方法开放了预览。在这个方法展示过程中我们通过 MediaPipe——一个开放源码的跨平台框架来构建了处理视频和音频等类型的不同模式感知数据的框架。
该方法通过机器学习ML从单个帧中推断出一只手的 21 个 3D 关键点从而提供了高保真的手部和手指跟踪。目前最先进的方法主要依靠强大的桌面环境进行推理而我们的方法可以在手机端实现这个实时性能甚至还可以扩展到对多个手的同步跟踪。
我们希望通过提供该手部感知功能给广泛的研究和开发社区能够有利于大家创造出更多全新的用例同时激励更多新应用程序和新研究途径的出现。 图 1 通过 MediaPipe 在手机上进行实时 3D 手部感知。我们的解决方案是使用机器学习从一个视频帧计算手的 21 个三维关键点。图中深度通过颜色灰色程度表示。
用于手跟踪和手势识别的机器学习架构
我们的手部跟踪解决方案使用了一个机器学习架构该架构由几个模型共同组成 掌上检测器模型称为 BlazePalm。它对整个图像进行操作并返回一个定向的手部边界框 手部标志模型。它在掌上探测器定义的裁剪图像区域上操作并返回高保真的 3D 手部关键点 手势识别器它将先前计算的关键点配置分类为一组离散的手势。
这种架构类似于我们最近发布的 face mesh ML 模型https://sites.google.com/view/perception-cv4arvr/facemesh这个模型也被其他人用于的姿态估计中。将精确裁剪的手掌图像提供到手部标志模型中可以大大减少更多数据例如旋转、平移和缩放的需求从而使网络能够将其大部分性能用于协调预测精度。 图 2 手部感知模型整体架构
BlazePalm实时手部/手掌检测
为了检测手的初始位置我们使用了一个名为 BlazePalm 的单镜头检测器模型https://arxiv.org/abs/1512.02325。该模型可用于移动实时检测其方式类似于 BlazeFacehttps://arxiv.org/abs/1907.05047这个模型也可以在 MediaPipe 中使用。
手部检测是一项非常复杂的任务我们的模型必须要适应不同的手部尺寸因此它具有相对于图像帧更大的范围 (~20x)并且它能够检测被遮挡以及自遮挡的手部状态。
人脸通常具有很高的对比度例如在眼睛和嘴部区域都有明显的区别。但由于手部缺乏这样的特征因此我们很难仅从其视觉特征中可靠地检测到这些特征。不过通过提供额外的信息如手臂、身体或人的特征倒是有助于精确的手定位。因此我们的解决方案使用了不同的策略来解决上述挑战。
首先我们训练了一个手掌检测器来代替手部探测器因为推测例如手掌和拳头这样刚性物体的边界框比检测手指的关节要简单得多。此外由于手掌是较小的物体我们采用了非最大抑制算法https://www.coursera.org/lecture/convolutional-neural-networks/non-max-suppression-dvrjH 该算法可以在即使双手自遮挡的情况如握手下也能够达到很好的工作效果。
同时手掌还可以使用方形边界框在 ML 术语中的锚来模拟忽略其他高宽比从而将锚的数量减少 3-5 倍。其次我们将适用于更大场景上下文感知中的编码器—解码器特征提取器用于手部感知这样的小对象中类似于 RetinaNet 办法https://arxiv.org/abs/1612.03144。最后我们将训练期间的焦损降至最低从而支持由于高度变化而产生的大量锚点。
利用上述技术我们实现了对手掌的平均检测精度为 95.7%而使用常规的交叉熵损失并且在没有解码器的情况下检测精度基准仅为 86.22%。
手部标志模型
在对整个图像进行手掌检测后我们随后的手部标志模型通过回归对检测到的手部区域内的 21 个 3D 手关节坐标进行精确的关键点定位即直接对坐标进行预测。该模型将学习一致的内部手势表示甚至对部分可见的手和自遮挡都表现出了鲁棒性。
为了获得实时数据我们手工标注了 30K 张具有 21 个 3D 坐标的真实手势图像如下图所示如果存在对应的坐标则从图像深度图中获取 Z 值)。为了更好地覆盖可能的手势并提供对手势的几何形状的附加监督我们还在不同的背景上渲染了一个高质量的合成手部模型并将其映射到相应的三维坐标中。 图 3 第一行图片为对齐的手部通过实时标注传递到跟踪网络第二行图片为使用实时标注渲染合成手部图像。
然而单纯的合成数据很难推广到更广泛的领域。为了克服这个问题我们使用了一个混合训练模式下面的图显示了一个高级模型训练图。 图 4 手部跟踪网络的混合训练模式。裁剪的真实照片和渲染的合成图像用作输入以预测 21 个 3D 关键点。
下图展示了根据训练数据的性质总结了回归的准确性。使用合成数据和真实数据都可以显著提高模型的性能。 图 5 使用合成数据和真实数据对模型性能的影响结果
手势识别器
在预测的手部骨架之上我们应用一种简单的算法来推导手势。首先每个手指的状态例如弯曲或竖直是由关节的累积角度决定的。于是我们将一组手指状态映射到一组预定义的手势上。这种简单但有效的技术可以使我们在保证检测质量的情况下来估计基本的静态手势。现有的架构支持多种文化的手势计数如美国、欧洲和中国以及各种手势标志包括「拇指向上」、紧握拳头、「OK」、「摇滚」和「蜘蛛侠」。 图 6 不同手势识别结果
通过 MediaPipe 实现
通过使用 MediaPipe我们可以将该感知架构建模称模块化组件的有向图https://en.wikipedia.org/wiki/Directed_graph称为 Calculators计算器。Mediapipe 附带了一组可扩展的计算器可用于解决各种设备和平台的模型推理、媒体处理算法以及数据转换等任务。而像裁剪、渲染和神经网络计算这样的单个计算器可以独立在 GPU 上执行。例如我们在大多数现代手机上采用 TFLite GPU 推理。
我们用于手部跟踪的 MediaPipe 架构图如下所示。该图由两个子图组成——一个用于手检测另一个用于手部关键点即标志性计算。MediaPipe 提供的一个关键优化是只在必要时运行掌上检测器因此该检测器的运行频率很低从而节省了大量的计算时间。
我们通过从当前帧中计算所得的手部关键点来推断后续视频帧中的手部位置实现手部跟踪从而无需在每个帧上运行掌上检测器。为了获得鲁棒性手部跟踪器模型输出一个额外的标量以获取一只手在输入裁剪中存在并合理对齐的置信度。只有当置信度低于一定的阈值时才能将手部检测模型重新应用到整个帧中。 图 7 手部标志模型的输出REJECT_HAND_FLAG控制何时触发手部检测模型。这种行为是通过 MediaPipe 强大的同步构建块实现的从而实现机器学习架构的高性能和最佳吞吐量。
该高效的机器学习解决方案可以实时运行并且跨越各种不同的平台和形式因素。它所包含的复杂性要比上面的简化描述要复杂得多。为此我们将在 MediaPipe 框架中开源上述手部跟踪与手势识别方法并附带相关的端到端使用场景和源代码https://github.com/google/mediapipe/blob/master/mediapipe/docs/hand_tracking_mobile_gpu.md这为研究人员和开发人员提供了一个完整的堆栈基于我们的模型可以对新思想进行实验和原型设计。
未来方向
我们计划通过更强大和稳定的跟踪来扩展这项技术扩大我们能够可靠检测的手势数量并支持动态手势的及时展开。我们相信发布这项技术可以激发广大研究和开发人员的新创意和应用。我们很期待看到你的创新 *MediaPipe
MediaPipe 是一个跨平台框架用于构建应用于机器学习流程中的多模态例如视频音频任何时间序列数据框架。通过使用 MediaPipe我们可以将感知流程构建为模块化组件的图形包括推理模型例如TensorFlowTFLite和媒体处理功能。
MediaPipe 开源地址https://github.com/google/mediapipe/ 原文链接 https://ai.googleblog.com/2019/08/on-device-real-time-hand-tracking-with.html 手势识别开源地址 https://github.com/google/mediapipe/blob/master/mediapipe/docs/hand_tracking_mobile_gpu.md