SuperAPI AI 工具集

hands-3d-pose

智能体与模型

查看项目

更新于 10-16 04:03

技能介绍

hands-3d-pose 是一个针对第一人称(自我中心,egocentric)视频设计的 3D 手部姿态估计技能。它来源于发表于 ECCV 2024 的方法,代码仓库为 https://github.com/ap229997/hands,技能页面为 https://www.skills.sh/wu-yc/labclaw/hands-3d-pose。其核心价值在于提供关节级的精确手部姿态,而不仅仅是手部边界框,便于进行细致的手部运动分析与手势理解。

用途

该技能适用于需要详细 3D 手部关节位置和朝向的场景:分析自我中心视频中的手势与手指运动;构建基于姿态特征的手势识别系统;研究手-物交互并需要精确手部几何;生成带手部骨架叠加的标注视频;自我中心活动识别研究;需要手指级精度(灵巧操作)的应用;手部运动生物力学分析;手语或交流手势分析。当你需要 3D 关节关键点和骨架结构而非仅边界框时,应选择此技能。若只需要简单手部检测,可考虑替代方案 victordibia-handtracking;若需要手-物分割,可考虑 owenzlz-egohos;若需要多视角 3D 跟踪,可考虑 facebookresearch-hot3d。

主要能力

  1. 3D 手部关节估计:每只手输出 3D 空间中的 21 个关键点(x, y, z 坐标),包含手腕(1 点)、手掌(5 个掌骨点)、手指(15 点:每指 3 个关节 × 5 指)。关节字段以 joints_3d 字典形式给出,包含 wrist、thumb_mcp/pip/tip、index_mcp/pip/tip、middle_mcp/pip/tip、ring_mcp/pip/tip、pinky_mcp/pip/tip。

  2. 2D 投影与可视化:自动估计相机内参,将 3D 关节透视投影到 2D 图像平面用于叠加;在关节之间绘制骨架连线;提供每个关节的置信度;可视化选项包括关节关键点(圆点)、骨架骨骼(连线)、基于置信度的着色以及左右手识别。

  3. 视频处理管线:提供从视频到标注输出的完整工作流,包括克隆仓库、切换到 demo 分支、安装依赖、下载预训练模型、运行演示脚本。输出文件包括标注帧(PNG/JPG)、合成输出视频(MP4)、3D 关节数据(NPY/PKL)以及可视化叠加图。

  4. 单帧处理:可处理单张图像进行批量分析,示例中通过加载模型、读取图像、估计姿态并可视化骨架的方式给出。

  5. 手部检测集成:内置手部定位(或使用外部检测器),支持多手(自我中心视角通常 1-2 只手),支持左右手分类与遮挡感知推理。

使用方式

安装:克隆仓库 git clone https://github.com/ap229997/hands.git,进入目录后切换到 demo 分支 git checkout demo;创建虚拟环境并安装 PyTorch、torchvision、torchaudio 以及 opencv-python、numpy、matplotlib、pillow、tqdm 等依赖;下载预训练模型权重(模型权重可自动下载或从项目发布页获取)。运行演示示例时使用 demo.py,指定视频路径、输出目录,并开启骨架可视化与视频保存。

资料还提供了四个使用示例:处理视频并输出 3D 姿态、提取手部姿态特征用于手势识别、分析手-物交互(通过指尖距离判断抓握类型)、批量处理数据集并保存 JSON 特征与汇总。

模型规格:架构为骨干网络加姿态回归头的深度神经网络;框架为 PyTorch;输入分辨率 256x256(可配置);输出为每只手 21 关节 × 3 坐标;模型大小约 100MB;现代 GPU 上推理速度约 15-30 FPS(取决于硬件)。训练数据集包括 EgoHands、FreiHAND、HO3D 以及自定义自我中心视频数据集。在自我中心测试集上的性能指标:3D PCK 约 85%(阈值 20mm)、2D PCK 约 92%(阈值 20 像素)、平均关节误差约 15mm、AUC 约 0.78。

高级功能包括:时间平滑(使用 savgol_filter 减少视频抖动)、左右手分类(基于拇指-食指向量的叉积 z 分量判断)、基于置信度的过滤(移除低置信度关节)、相机标定(根据 FOV 估计相机内参)。该技能可与手部跟踪、手-物分割、MediaPipe 任务、目标检测以及机器学习技能配合使用。性能优化方面支持 GPU 加速、批量处理和多线程视频处理。

适用场景与限制

适用于自我中心(第一人称)视角的视频,针对日常活动场景优化。已知限制包括:可能难以处理严重的手部遮挡;极端光照条件下性能下降;需要手部可见(不能被桌子或袖子遮挡);单视角 3D 估计可能存在深度歧义;推荐使用 GPU 以满足实时计算需求。与其他方案的对比:相比 victordibia-handtracking 提供 3D 关节而非 2D 框;相比 owenzlz-egohos 是姿态估计而非分割;相比 facebookresearch-hot3d 是单视角而非多视角。

常见问题排查包括:模型加载错误(检查 PyTorch 版本兼容性与模型文件完整性)、内存不足(减小批量、降低输入分辨率、清理 GPU 缓存)、姿态质量差(检查视频质量、保证光照、确认自我中心视角)、处理速度慢(使用 GPU、降低分辨率、关闭其他应用)、姿态抖动(应用时间平滑、检查视频输入稳定性)。最佳实践建议:在大规模处理前先在自有数据上验证;实时或大批量应用使用 GPU 加速;对视频输出应用时间平滑减少抖动;按置信度过滤不可靠检测;若需精确 3D 测量则标定相机;处理遮挡、极端姿态、运动模糊等边缘情况;可结合手部分割处理遮挡;若边界框已足够,可与更简单方法做基准对比。

以上内容均来自提供的资料,未提供的细节(如具体收费标准、商业授权等)暂未提供。