介绍
大家好!虽然赛博朋克还没有进入我们的生活,神经接口也远非理想,但激光雷达可以成为机械手未来之路的第一阶段。因此,为了在假期期间不感到无聊,我决定幻想一下计算机的控制,可能还有任何设备,比如挖掘机、宇宙飞船、无人机或火炉。
主要思想是移动鼠标,不是移动整只手,而是只移动食指,这将使你可以在不将手离开键盘的情况下浏览菜单,按下按钮,并与热键一起变成一个真正的键盘忍者!如果添加滑动或滚动手势会发生什么?我想会有炸弹!(但这一刻我们还需要等待几年)
让我们开始组装我们未来机械手的原型
你需要:
带有 LiDAR Intel Realsense L515 的摄像头。
能够在python中编程
记住学校数学
安装在监视器上的相机又名三脚架
我们用全球速卖通的三脚架将相机固定在上,结果证明非常方便,轻便且便宜
我们弄清楚如何制作原型
有许多方法可以完成这项任务。你可以自己训练检测器或手部分割,裁剪右手的结果图像,然后将这个来自 Facebook 研究的精彩存储库应用于图像,获得出色的结果。
要使用媒体管道存储库,阅读此链接后,你可以知道这是当今最好的选择之一:https://ai.googleblog.com/2019/08/on-device-real-time-hand-tracking-with.html
首先,一切都已经开箱即用 - 安装和启动将需要 30 分钟,考虑到所有先决条件。
其次,得益于强大的开发团队,他们不仅采用了手部姿势估计的最新技术,还提供了易于理解的 API。
第三,网络已准备好在 CPU 上运行,因此进入门槛极低。
可能你会问我为什么不使用本次比赛获胜者的存储库。
事实上,我详细研究了他们的解决方案,他们已经准备好了,没有成堆的数百万个网格等。但在我看来,最大的问题是他们处理深度图像。
由于他们是学者,他们毫不犹豫地通过Matlab转换了所有数据,另外,拍摄深度的分辨率在我看来很小。这可能会对结果产生深远的影响。
因此,似乎最简单的方法是获取RGB图片中的关键点,并通过XY坐标取深度帧中沿Z轴的值。现在的任务不是对某些东西进行太多的优化。因此我们将从开发的角度进行优化,因为它更快。
记住学校数学
正如我已经写过的,为了获得鼠标光标所在点的坐标,我们需要构建一条穿过手指指骨的两个关键点的线,并找到该线与该点的交点显示器的平面。
图片示意性地显示了显示器的平面和与其相交的线。你可以看看此处的数学。
使用两点,我们得到空间中直线的参数化表示。
我不会过多关注学校的数学课程。
安装用于使用相机的库
这可能是这项工作中最难的部分。事实证明,Ubuntu 相机的软件非常粗糙,充斥着各种各样的bug。
直