SAM 3D Body部署与视频推理教程

发布时间:2026/11/5 3:24:31

SAM 3D Body部署与视频推理教程 文章目录1. 这篇教程能得到什么2. 已验证环境3. 代码和模型地址4. 下载代码5. 创建Conda环境6. 安装PyTorch7. 安装SAM 3D依赖8. 下载模型权重方法A官方Hugging Face方法B魔搭镜像9. 先生成YOLO人体提示10. 单个关键帧推理11. 扫描整段视频12. 生成人体网格与教师—TCN综合可视化13. 怎么判断结果正确14. 已踩过的坑Hugging Face下载失败Git LFS占位文件braceexpand或webdataset缺失模型提示缺少部分state dict键三维人体上下颠倒第一次可视化很慢15. 性能和边界16. 最短复现路径项目内容项目名称mask2world项目版本1.3教程版本1.0最后更新2026-07-16适用范围Windows 11、NVIDIA显卡、单张图片与整段视频的SAM 3D Body离线推理1. 这篇教程能得到什么按照本文操作可以把普通单目视频转换成连续的完整三维人体原视频 → YOLO人体关键点提供人框 → SAM 3D Body逐帧恢复人体表面和三维骨骼 → 保存连续三维序列 → 输出正面、侧面和原视频同步可视化SAM 3D Body在本项目中是离线教师不是最终部署到Orin的实时模型。2. 已验证环境本项目实际跑通的机器操作系统Windows 11 显卡NVIDIA GeForce RTX 4060 Ti 16GB CondaD:\application\anaconda3 环境名sam3d_body Python3.12.13 PyTorch2.9.0cu126 TorchVision0.24.0cu126 CUDA运行时12.6 NumPy2.5.1 OpenCV5.0.0Meta官方安装文档推荐Python 3.11。本项目因为本机已有Python 3.12和CUDA 12.6的PyTorch wheel使用3.12.13也已经完整跑通。3. 代码和模型地址官方资源代码https://github.com/facebookresearch/sam-3d-body官方DINOv3权重https://huggingface.co/facebook/sam-3d-body-dinov3官方安装说明https://github.com/facebookresearch/sam-3d-body/blob/main/INSTALL.md魔搭镜像https://modelscope.cn/models/facebook/sam-3d-body-dinov3许可证SAM License使用前应阅读官方仓库中的LICENSE。本机已经验证的代码提交b5c765a0d89d789985e186d396315e7590887b94当前实际路径SAM 3D代码E:\Reset\external\sam-3d-body 模型目录E:\Reset\external\sam-3d-body\checkpoints\sam-3d-body-dinov3 mask2worldE:\Reset\mask2world模型目录最终必须至少包含sam-3d-body-dinov3\ ├─ model.ckpt ├─ model_config.yaml └─ assets\ └─ mhr_model.ptmodel.ckpt约2.1GBmhr_model.pt约696MB。只有几KB的文件通常是Git LFS占位文件不能推理。4. 下载代码在PowerShell中运行Set-LocationE:\Reset\external git clone https://github.com/facebookresearch/sam-3d-body E:\Reset\external\sam-3d-body如果目录已经存在不要重复克隆也不要删除原目录。5. 创建Conda环境D:\application\anaconda3\Scripts\conda.execreate-n sam3d_body python3.12 pip-y以后不必先执行conda activate可以直接使用环境中的PythonD:\application\anaconda3\envs\sam3d_body\python.exe--version6. 安装PyTorch本机D:\zero_track已经保存匹配Python 3.12和CUDA 12.6的wheelD:\application\anaconda3\envs\sam3d_body\python.exe-m pip install D:\zero_track\torch-2.9.0cu126-cp312-cp312-win_amd64.whlD:\zero_track\torchvision-0.24.0cu126-cp312-cp312-win_amd64.whlD:\zero_track\torchaudio-2.9.0cu126-cp312-cp312-win_amd64.whl检查CUDAD:\application\anaconda3\envs\sam3d_body\python.exe-cimport torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))正确结果应包含True和实际显卡名称。7. 安装SAM 3D依赖先安装本项目实际用到的依赖D:\application\anaconda3\envs\sam3d_body\python.exe-m pip install pytorch-lightning pyrender opencv-python yacs scikit-image einops timm dill pandas rich hydra-core hydra-submitit-launcher hydra-colorlog pyrootutils webdataset braceexpand chumpnetworkx3.2.1roma joblib seaborn wandb appdirs ffmpeg cython jsonlines pytest xtcocotools loguru optree fvcore pycocotools tensorboard huggingface_hub再安装SAM 3D Body代码Set-LocationE:\Reset\external\sam-3d-body D:\application\anaconda3\envs\sam3d_body\python.exe-m pip install-e.本项目没有安装Detectron2人体检测器也没有安装MoGe相机视场估计器。原因是人框来自项目已有YOLO姿态结果当前任务不需要SAM 3D自己重新检测人没有FOV估计器时模型会使用默认视场程序能够运行但绝对相机几何不是精确标定结果。8. 下载模型权重方法A官方Hugging Face官方仓库需要先申请访问权限。申请通过并登录后Set-LocationE:\Reset\external\sam-3d-body hf auth login hf download facebook/sam-3d-body-dinov3--local-dircheckpoints/sam-3d-body-dinov3方法B魔搭镜像Hugging Face访问受阻时可以检查魔搭上的facebook/sam-3d-body-dinov3镜像D:\application\anaconda3\envs\sam3d_body\python.exe-m pip install modelscope D:\application\anaconda3\envs\sam3d_body\python.exe-cfrom modelscope import snapshot_download; snapshot_download(facebook/sam-3d-body-dinov3, local_dirrE:\Reset\external\sam-3d-body\checkpoints\sam-3d-body-dinov3)下载后必须检查发布者、许可证、文件层级和文件大小不要只看模型名称相同。检查文件Get-ItemE:\Reset\external\sam-3d-body\checkpoints\sam-3d-body-dinov3\model.ckpt,E:\Reset\external\sam-3d-body\checkpoints\sam-3d-body-dinov3\assets\mhr_model.pt|Select-ObjectFullName,Length9. 先生成YOLO人体提示SAM 3D脚本使用项目已有的pose_tracks.npz计算人框。该文件由reset3环境生成。以参考视频为例Set-LocationE:\Reset\mask2world D:\application\anaconda3\envs\reset3\python.exeanalyze_kick_unsupervised.py --video input_data\test_kick.mp4 --out input_data\kick_yolo26n_unsupervised_v3 --pose-backend yolo26n --semantic-name 踢腿成功后应存在input_data\kick_yolo26n_unsupervised_v3\pose_tracks.npz input_data\kick_yolo26n_unsupervised_v3\discovery.json10. 单个关键帧推理先跑一帧最容易排查环境问题Set-LocationE:\Reset\mask2world D:\application\anaconda3\envs\sam3d_body\python.exerun_sam3d_body_keyframes.py --video input_data\test_kick.mp4 --pose input_data\kick_yolo26n_unsupervised_v3\pose_tracks.npz --output input_data\kick_reference_sam3d_body --times 20.0输出包括关键帧图片和包含人体网格、三维关节、相机平移的NPZ文件。11. 扫描整段视频参考视频使用10FPS教师采样D:\application\anaconda3\envs\sam3d_body\python.exeextract_sam3d_body_sequence.py --video input_data\test_kick.mp4 --pose input_data\kick_yolo26n_unsupervised_v3\pose_tracks.npz --output input_data\kick_reference_sam3d_sequence --sample-fps 10test2和test3较长当前使用5FPSD:\application\anaconda3\envs\sam3d_body\python.exeextract_sam3d_body_sequence.py --video input_data\test2.mp4 --pose input_data\kick_test2_baseline\pose_tracks.npz --output input_data\kick_test2_sam3d_sequence --sample-fps 5 D:\application\anaconda3\envs\sam3d_body\python.exeextract_sam3d_body_sequence.py --video input_data\test3.mp4 --pose input_data\kick_test3_baseline\pose_tracks.npz --output input_data\kick_test3_sam3d_sequence --sample-fps 5主要输出sam3d_body_sequence.npz 三维教师序列报告.json 整段视频脚部前后深度曲线.jpg12. 生成人体网格与教师—TCN综合可视化当前可视化命令会在缺少网格缓存时重新运行SAM 3D Body然后生成1920×900中文视频Set-LocationE:\Reset\mask2world D:\application\anaconda3\envs\sam3d_body\python.exevisualize_sam3d_teacher_and_tcn.py --names reference test2 test3输出目录input_data\kick_stage_visualization关键视频参考踢腿视频_SAM3D教师与TCN同步可视化.mp4 test2_SAM3D教师与TCN同步可视化.mp4 test3_SAM3D教师与TCN同步可视化.mp4*_SAM3D人体网格缓存.npz保存完整人体表面。以后只修改文字、颜色或时间轴时会复用缓存不重新跑模型。13. 怎么判断结果正确不要只看“成功帧数”。至少观看可视化并检查头在上、脚在下正面左右腿与原视频一致侧面左方表示朝摄像机脚真正向镜头踢出时侧面深度确实变化被裁掉的身体是模型补出的假设不能当作原图真实观测三维人体是否出现骨长突变、前后翻转或脚穿插。14. 已踩过的坑Hugging Face下载失败官方权重需要申请权限和登录。无法下载时先检查魔搭镜像但必须核对文件大小和许可证。Git LFS占位文件文件名存在不代表权重完整。model.ckpt应约2.1GB不能只有几KB。braceexpand或webdataset缺失模型加载链路会间接导入这些包D:\application\anaconda3\envs\sam3d_body\python.exe-m pip install braceexpand webdataset模型提示缺少部分state dict键当前官方代码和权重组合会打印一批missing keys本项目实测仍能正常输出完整人体。判断是否真正失败应看是否产生pred_vertices和pred_keypoints_3d不能只看警告文字。三维人体上下颠倒这批SAM 3D输出的Y坐标已经与画面方向一致。绘图时再次取反会导致头在下、脚在上。当前visualize_sam3d_teacher_and_tcn.py已经按实际画面修正。第一次可视化很慢第一次要重新恢复所有人体网格并压缩缓存以后复用缓存只需要重新编码视频。15. 性能和边界模型约12.85亿参数加载显存约3.54GB完整运行还需要输入和中间特征显存。4060 Ti上预热后约0.180.19秒一帧。当前是逐帧模型视频时间连续性来自后续分析不是模型内部视频跟踪。单目三维仍有前后歧义和尺度不确定性。它只恢复人体不理解车辆、垃圾桶、球、地面接触和动作目的。本项目把它作为离线教师Orin只部署蒸馏后的小型TCN。16. 最短复现路径已经有环境、代码、权重和pose_tracks.npz时只需Set-LocationE:\Reset\mask2world D:\application\anaconda3\envs\sam3d_body\python.exeextract_sam3d_body_sequence.py --video input_data\test3.mp4 --pose input_data\kick_test3_baseline\pose_tracks.npz --output input_data\kick_test3_sam3d_sequence --sample-fps 5若动作教师和TCN输出也已存在再运行D:\application\anaconda3\envs\sam3d_body\python.exevisualize_sam3d_teacher_and_tcn.py--names test3
延伸阅读

更多相关文章

2026/10/25 0:57:21

BLDC电机控制中角度传感器的关键作用与技术解析

1. BLDC电机控制与角度传感器的核心关系 在无刷直流电机(BLDC)控制系统中,角度传感器扮演着至关重要的角色。不同于传统有刷电机依靠机械换向器实现电流方向切换,BLDC电机需要通过电子方式精确控制三相绕组的通电时序,…

2026/11/5 11:39:15

PostgreSQL数据类型选择指南与性能优化实践

1. PostgreSQL数据类型概述PostgreSQL作为一款功能强大的开源关系型数据库,其数据类型系统之丰富远超大多数同类产品。我在实际项目中最常遇到的问题是:面对十几种数字类型、多种字符串类型以及各种特殊类型时,开发团队往往凭直觉选择&#x…

2026/11/5 11:34:12

Simulink S-function执行时序与状态管理原理详解

简介:本资源是面向MATLAB/Simulink初学者与控制系统建模学习者的S-Function入门实践包,聚焦自定义系统函数开发这一核心能力,解决标准库无法覆盖的特定数学运算与动态逻辑建模需求。压缩包共4个文件(2个M文件实现核心算法逻辑&…

2026/11/5 11:34:12

低空经济三维智能感知与实时调度技术解析

1. 低空经济三维空间智能感知与管控体系概述低空经济作为新兴经济形态,正在全球范围内快速发展。根据国际航空运输协会(IATA)预测,到2030年,全球城市空中交通市场规模将达到1.5万亿美元。在这一背景下,《低…

2026/11/5 11:34:12

链表数据结构与PTA解题技巧详解

1. 链表基础与数据结构课程实践 链表作为线性表的链式存储结构,是数据结构课程中承前启后的关键内容。在山东理工大学(SDUT)的数据结构与算法课程体系中,链表章节通常安排在顺序表之后、树结构之前,这种教学顺序设计体…

2026/11/5 11:34:12

Simulink S-Function核心机制与两个经典C示例解析

简介:本资源是面向MATLAB/Simulink初学者与控制系统建模学习者的S-Function入门实践包,聚焦自定义系统函数开发这一核心能力,解决标准库无法覆盖的特定数学运算与动态逻辑建模需求。压缩包共4个文件(2个M文件实现核心算法逻辑&…

2026/11/5 11:34:12

Mantle系统架构:云存储局部性与扩展性的突破

1. 项目概述:Mantle系统架构演进的技术突围在云存储技术高度成熟的今天,百度沧海存储团队完成的Mantle系统设计堪称一次教科书级别的技术突围。这个被SOSP25收录的存储系统创新案例,完美诠释了如何在看似饱和的技术领域实现突破——不是通过堆…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑