来玩!电脑端的手势姿态估计,隔空写字、绘图,有摄像头就行

机器之心报道
编辑:杜伟、陈萍
有了这个项目 , 大家终于可以亲身体验一把人体姿态估计成像的神奇之处了!
在CV领域 , 人体姿态估计(humanposeestimation)利用目标检测模型和姿态估计模型来识别出人体各个关节的位置和网格 , 并已在动作识别、动画、游戏、运动捕捉系统中有着广泛的应用 。
但遗憾的是 , 人体姿态估计常常见诸于学术研究中 , 普通读者很难亲身体验它的神奇成像效果 。
近日 , 机器之心在GitHub上发现了一个有趣的项目「air-drawing」 , 作者创建了一个利用深度学习的工具 , 使你在配有摄像头的电脑端可以获得自己的手势姿态估计成像图 。
来玩!电脑端的手势姿态估计,隔空写字、绘图,有摄像头就行
文章图片
项目地址:https://github.com/loicmagne/air-drawing
此外 , 作者使用的深度学习模型还可以预测「向上」或「向下」的手势动作 。 动态效果展示图如下:
来玩!电脑端的手势姿态估计,隔空写字、绘图,有摄像头就行
文章图片
小编也尝试在自己的电脑上捕捉到了手势姿态估计网格图:
来玩!电脑端的手势姿态估计,隔空写字、绘图,有摄像头就行
文章图片
然后试着写了两个字「中国」 , 不知各位读者认得出来吗?!
来玩!电脑端的手势姿态估计,隔空写字、绘图,有摄像头就行
文章图片
试玩地址:https://loicmagne.github.io/air-drawing/
作者表示 , 试玩过程中不会收集用户信息 。 作者还优化了代码 , 使得该工具可以在大多数电脑上运行 。 电脑上的网络摄像头质量会对成像效果产生影响 , 调高屏幕亮度有助于更快地触发摄像头 , 并提升快门速度和帧率 。 如果手部一部分在框架之外 , 则手部检测无法正常工作 。 在绘图写字时 , 保持手指向上 , 手指向下时会影响指尖的检测 。
技术细节
这个可以隔空作画的工具使用深度学习来完成 , 实现pipeline包含两个步骤:手势检测以及预测所要画的图 , 这两个过程都是通过深度学习来完成的 。 其中 , 手势检测使用了手部追踪解决方案MediaPipetoolbox 。
来玩!电脑端的手势姿态估计,隔空写字、绘图,有摄像头就行
文章图片
MediaPipetoolbox项目地址:https://google.github.io/mediapipe/solutions/hands.html
绘图预测部分只用到了手指位置相关技术 。 输入是一个2D点序列(实际上 , 该项目使用的是手指的速度和加速度 , 而不是位置 , 来保持预测的平移不变) , 输出是二元分类「向上(pencilup)」或「向下(pencildown)」 。
此外 , 项目作者还使用了简单的双向LSTM架构 , 并且做了一个小数据集(大约50个样本) , 数据标注使用「python-stuff/data-wrangling/」工具 。 一开始 , 项目作者想做一个实时的「向上/向下」预测 , 即在用户绘画的同时做出预测 。 然而 , 由于任务太难 , 导致结果很差 , 因此采用双向LSTM 。
关于深度学习pipeline细节 , 你可以在jupyter-notebook中的python-stuff/deep-learning/了解更多信息 。
该应用程序可以在用户端使用 , 作者将PyTorch模型转换为.onnx , 然后使用ONNXRuntime , 它非常方便 , 可以兼容很多层 。
总体来说 , 这个pipeline还需要进一步完善 , 一些改进的想法包括:
使用更大的数据集和更多的用户数据;对手指信号进行处理和平滑 , 减少对相机质量的依赖 , 提高模型的泛化能力 。作者答疑
可以隔空绘画的这个项目引来了众多网友的讨论 , 有人不禁感慨 , 「这太酷了!让我想起迪士尼的广告 , 他们会用发光的魔杖画出米老鼠的头 。 」
来玩!电脑端的手势姿态估计,隔空写字、绘图,有摄像头就行