我抛弃了鼠标:如何用手势控制我的电脑(60 行 Python 代码)

使用 OpenCV 和 MediaPipe 构建“少数派报告”式界面的分步指南《我抛弃了鼠标:如何用手势控制我的计算机(用 60 行 Python 代码)》一文首先出现在《走向数据科学》上。

来源:走向数据科学

自动驾驶汽车和人工智能语言模型,但我们与机器连接的主要物理接口五十年来一直保持不变。令人惊讶的是,我们仍在使用电脑鼠标(Doug Engelbart 在 20 世纪 60 年代初创建的设备)来进行单击和拖动。几周前,我决定用 Python 编码来质疑这个规范。

对于数据科学家和机器学习工程师来说,这个项目不仅仅是一个聚会把戏,它是应用计算机视觉的大师班。我们将构建一个实时管道,它接收非结构化视频流(像素),顺序应用机器学习模型来提取特征(手部地标),最后将它们转换为有形命令(移动光标)。基本上,这是下一代人机交互的“Hello World”示例。

目标?只需挥动手即可控制鼠标光标。启动程序后,一个窗口将显示您的网络摄像头信息,并实时覆盖手部骨骼。计算机上的光标将跟踪您的食指移动。这几乎就像心灵遥感一样——您无需触摸任何物理设备即可控制数字对象。

概念:教 Python“看”

为了将物理世界(我的手)与数字世界(鼠标光标)连接起来,我们决定将问题分为两部分:眼睛和大脑。

  • 眼睛 – 网络摄像头 (OpenCV):从摄像头实时获取视频,这是第一步。我们将使用 OpenCV 来实现这一点。 OpenCV 是一个广泛的计算机视觉库,允许 Python 访问和处理来自网络摄像头的帧。 我们的代码使用 cv2.VideoCapture(0) 打开默认摄像头,然后继续一帧一帧地读取。
  • MediaPipe 的魔力

    MediaPipe​‍​‌‍​‍‌ Hands 负责手部检测和地标估计中具有挑战性的部分。该解决方案利用机器学习仅从一帧图像中预测 21 个手部标志。

    设置

    pip install opencv-python mediapipe pyautogui numpy

    代码

    结果

    让我们联系