来玩啊!计算机端的手势和姿势估计,空间中的写字画画,你只需要一个摄像头就已经广泛应用于动作识别、动画、游戏和动作捕捉系统。但遗憾的是,人体姿态估计在学术研究中屡见不鲜,普通读者很难亲身体验其神奇的成像效果。最近机器之心在GitHub上发现了一个有趣的项目“air-drawing”。作者创建了一个使用深度学习的工具,让你可以用相机在电脑上得到自己的手势和姿势估计图像。项目地址:https://github.com/loicmagne/air-drawing此外,作者使用的深度学习模型还可以预测“向上”或“向下”的手势。动态效果展示图如下:我也试着在我的电脑上截取了手势估计网格图:然后我试着写了“中国”两个字,各位读者认出来了吗?!试用地址:https://loicmagne.github.io/air-drawing/作者表示试用期间不会收集用户信息。作者还优化了代码,使该工具可以在大多数计算机上运行。计算机上网络摄像头的质量会影响它的外观,调高屏幕亮度有助于更快地触发相机,并提高快门速度和帧速率。如果手的一部分在框架外,手部检测将无法正常工作。画画和写字的时候手指要向上,手指向下会影响指尖的检测。技术细节这个可以远距离绘图的工具使用深度学习来完成。流水线的实现包括两个步骤:手势检测和预测要绘制的图片。这两个过程都是通过深度学习完成的。其中,手势检测使用了手部追踪解决方案MediaPipe工具箱。MediaPipe工具箱项目地址:https://google.github.io/mediapipe/solutions/hands.html绘图预测部分只使用了手指位置相关的技术。输入是一系列2D点(实际上,项目使用手指的速度和加速度,而不是位置,以保持预测的平移不变),输出是二进制分类“铅笔朝上”或“铅笔朝下”。(用铅笔记下)”。此外,项目作者还使用了简单的双向LSTM架构,并做了一个小数据集(约50个样本),并使用“python-stuff/data-wrangling/”工具进行数据标注。一开始,项目作者想做一个实时的“up/down”预测,即在用户画图的同时进行预测。然而,由于任务的难度,导致结果不佳,因此采用了双向LSTM。有关深度学习管道的详细信息,您可以在jupyter-notebook中的python-stuff/deep-learning/中找到更多信息。该应用程序可以在用户端使用,作者将PyTorch模型转换为.onnx,然后使用ONNXRuntime,非常方便并且兼容很多层。总的来说,这条管道还有待进一步完善。一些改进的想法包括:使用更大的数据集和更多的用户数据;处理和平滑手指信号,减少对相机质量的依赖,提高模型泛化能力。作者关于空间取景项目的提问,引起了众多网友的讨论。有人不禁感慨:“这太酷了!让我想起了迪士尼的广告,他们用发光的魔杖画了米老鼠的头。”网友们在表示惊讶的同时,也有人提出了自己的质疑。项目作者在reddit上回答了一些网友的问题,我们列出了其中的一些。有网友表示这是一个很好的项目,他们有疑问——RNN是从头开始训练的,还是在预训练模型的基础上微调的?作者说:“该模型是从头开始训练的,但使用预训练模型可能是一个不错的建议。”有网友问道:“预测是实时的吗?这样的话,这才是真正的魔术。”作者说,预测是实时的。但不幸的是,实时性不是很好,所以不得不使用双向LSTM。有网友建议“使用transformer以获得更好的性能”。对于这个建议,作者表示自己尝试过self-attention层,但结果并不理想。如果你有一个更大的数据集,使用transformer会更好。
