【问题标题】:Can we get the orientation of the hand from mediapipe's palm detector?我们可以从 mediapipe 手掌检测中获得手的方向吗?
【发布时间】:2022-07-04 13:18:20
【问题描述】:

有没有一种方法可以从 mediapipe 的手掌检测器中获取手的方向?这样的事情可能吗?

模型每只手输出 21 个地标的 3D 坐标,肯定有办法使用第三个 z 轴来做到这一点,但我不知道该怎么做。

【问题讨论】:

    标签: python math geometry mediapipe object-tracking


    【解决方案1】:
    1. 选择三个共面的地标(我选择了 0、5 和 17) - 最好是手掌,这样您将获得手掌的方向

    2. 将它们转换为形状为 [3,3] 的 numpy 数组:

      points = np.asarray([world_landmarks[0], world_landmarks[5], world_landmarks[17]])

    3. 根据这三个点定义两个向量(例如从 0 到 2 和从 2 到 1) - 这些向量将位于手的平面内

    4. 要获得手的方向,您需要获得一个与这两者垂直的向量 - 该向量将始终指向手(或者更确切地说是手掌)指向的方向(注意:这个方向左手的矢量将指向与右手相反的方向,因为它们是镜像的)。要得到这个向量,你需要计算vector or cross product

    这行代码执行步骤 3 和 4:

    normal_vector = np.cross(points[2] - points[0], points[1] - points[2])
    

    最后,您可以规范化这个向量,使其长度始终为 1,如下所示:

    normal_vector /= np.linalg.norm(normal_vector)
    

    【讨论】:

      猜你喜欢
      • 2019-10-07
      • 2020-04-09
      • 2015-08-03
      • 2017-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      相关资源
      最近更新 更多