You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取MediaPipe中跨帧跟踪手部的持久ID?

MediaPipe Hand Landmarker 跨帧多手跟踪方案
  • 首先明确:multi_hand_landmarks的顺序完全不固定,帧与帧之间会因手部移动、新增/消失重新排序,依赖顺序匹配跨帧手部绝对不可靠。

  • MediaPipe Hand Landmarker本身提供了跨帧持久的手部跟踪ID,只是这个ID不在multi_hand_landmarks列表里,而是在每个手部的独立数据结构中:

    • 以Python API为例,HandLandmarkerResult中的hands列表(每个元素对应一只手)包含tracking_id字段,这个ID会在手部持续被跟踪的帧中保持不变,手部消失后再出现则会分配新ID。
  • 示例代码(Python):

    def on_result(result, output_image, timestamp_ms):
        # 遍历每只手,通过tracking_id关联跨帧数据
        for hand in result.hands:
            hand_id = hand.tracking_id
            landmarks = hand.landmarks
            # 这里用hand_id匹配之前帧存储的手部状态
            print(f"跟踪ID {hand_id} 的手部关键点: {landmarks}")
    
  • 如果你使用的是其他语言(如Java、C++),逻辑一致:找到每个手部对应的结构体/对象,从中提取tracking_id字段即可,无需手动实现跟踪逻辑。

  • 特殊情况处理:如果手部短暂移出画面后重新进入,MediaPipe可能无法恢复之前的跟踪ID(会分配新ID),这是内置跟踪的正常限制,若需更持久的关联,可结合手动特征匹配(如手部关键点的特征向量)作为补充。

内容的提问来源于stack exchange,提问作者Fabio M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 14:40:02