没有激光雷达,如何用手机视频快速重建3D点云?WorldMirror 2.0 实战全流程
【免费下载链接】HY-World-2.0项目地址: https://ai.gitcode.com/tencent_hunyuan/HY-World-2.0
如果你手上只有一部手机,没有昂贵的深度相机、没有激光雷达扫描仪,却想要把真实场景"搬"进电脑里变成可编辑的3D资产——过去这是一件相当麻烦的事。传统方案要么依赖 COLMAP 等离线重建管线,需要漫长的特征匹配与位姿优化,要么只能在单一视角下输出一张可怜的深度图。
腾讯混元团队开源的WorldMirror 2.0(HY-World 2.0 世界重建模块)给出了完全不同的答案:它是一套前馈式3D点云重建工具,仅需一次前向推理,就能从多视角照片或随手拍摄的视频中,同时输出3D点云、逐视角深度图、表面法线、相机内外参以及3D高斯泼溅属性。下面这份教程,我会用一条"从零到上手"的路线,带你跑通完整的照片/视频转3D点云重建流程。
为什么传统的"照片转3D"总是让人头疼?
先梳理一下大多数新手会在旧方案里踩到的坑,这样你才能理解 WorldMirror 2.0 到底解决了什么:
- 重建流程割裂:先跑特征匹配、再估计相机位姿、再算稠密深度、最后手动融合点云,每个环节都要单独调试,任何一个步骤失败都要从头再来。
- 对拍摄要求苛刻:需要大量视角、高重叠率,且画面模糊或重复纹理一多,重建就崩。
- 输出单一:很多工具只给你一个点云或一张深度图,法线、相机参数、高斯泼溅这些下游要用到的数据还得另找工具补齐。
WorldMirror 2.0 把上面这些环节压缩进了一次前向传播:多视角图像进入模型后,深度、法线、相机参数、点云、3DGS 属性一次性全部出炉,互相对齐、天然一致,这正是它被称为"前馈式重建"的原因。
开工前:你需要准备什么
在动手之前,先确认三件事:
- 硬件:一张显存足够的 NVIDIA 显卡即可起步(多卡场景后面单独讲),建议 CUDA 12.8、Python 3.11 以上环境。
- 源码与模型:克隆项目并创建环境。
git clone https://gitcode.com/tencent_hunyuan/HY-World-2.0 cd HY-World-2.0 conda create -n hyworld2 python=3.11.15 conda activate hyworld2 pip install -r requirements.txt- 输入素材:两种方式任选其一——
- 一个图像文件夹(推荐 8~32 张,覆盖场景各视角);
- 一段视频文件(推理时程序会按运动感知策略自动抽取关键帧,默认最多取 32 帧)。
第一次推理:三行代码拿到你的第一个3D点云
环境就绪后,WorldMirror 2.0 提供类似 diffusers 的 Python API,上手成本极低:
from hyworld2.worldrecon.pipeline import WorldMirrorPipeline pipeline = WorldMirrorPipeline.from_pretrained('tencent/HY-World-2.0') result = pipeline('path/to/images', output_path='my_reconstruction')模型权重会在首次运行时自动下载。你也可以直接使用命令行,效果等价:
python -m hyworld2.worldrecon.pipeline --input_path path/to/images --output_path my_reconstruction推理结束后,程序会在输出目录下生成一套完整的重建产物,常见的开关参数如下:
| 参数 | 作用 | 默认值 |
|---|---|---|
target_size | 推理分辨率(最长边像素数) | 952 |
save_depth/save_normal | 是否保存深度图 / 法线图 | True |
save_points/save_gs | 是否保存点云 / 高斯泼溅 | True |
save_camera | 是否保存相机参数 | True |
save_colmap | 额外输出 COLMAP 格式稀疏重建 | False |
拿到结果后,输出目录里到底有什么?
这是很多人第一次跑完最容易困惑的地方——一堆文件各自代表什么?对照下面这张目录树就清楚了:
my_reconstruction/ ├── depth/ # 每视角深度图(PNG 可视化 + NPY 原始值) ├── normal/ # 每视角表面法线图 ├── camera_params.json # 相机外参(c2w)+ 内参矩阵 ├── gaussians.ply # 3D高斯泼溅模型,可直接进渲染管线 ├── points.ply # 带颜色的3D点云,可导入 Blender / MeshLab / CloudCompare └── pipeline_timing.json # 各阶段耗时报告其中points.ply和gaussians.ply是两种侧重点不同的产出:点云适合做测量、分析、轻量浏览;高斯泼溅则更擅长照片级实时渲染。两者都可以直接拖进主流3D软件继续加工,这就是"端到端"的意义所在。
进阶技巧:用"先验注入"把重建精度再拉高一档
如果你手头恰好有已知的相机位姿、深度图或内参信息(比如来自其他扫描设备、SLAM 或人工标定),不要浪费它们——WorldMirror 2.0 支持把这三类几何先验作为条件输入,让模型在更确定的约束下重建:
result = pipeline( 'path/to/images', prior_cam_path='path/to/camera_params.json', # 相机外参+内参 prior_depth_path='path/to/prior_depth/', # 逐视角深度图目录 )从官方评测(7-Scenes / NRGBD / DTU 数据集)可以看出,先验带来的收益非常直观:
| 配置 | 7-Scenes (Acc.) | NRGBD (Acc.) | DTU (Acc.) |
|---|---|---|---|
| 低分辨率,无先验 | 0.041 | 0.047 | 1.352 |
| 中分辨率,无先验 | 0.033 | 0.039 | 1.005 |
| 高分辨率 + 全部先验 | 0.012 | 0.015 | 0.554 |
数值越低代表误差越小。可见高分辨率配合完整先验(相机外参 + 内参 + 深度)能带来最明显的精度提升。先验文件的格式约定与输出格式一致,具体字段说明可查阅项目文档 DOCUMENTATION.md 中的 Prior Injection 章节。
避坑指南:显存不足、质量不佳怎么破?
实战中大家最常遇到的三类问题,这里一次性给出对策:
显存告急→ 按需禁用输出头。如果只需要点云和深度,可以关掉法线与高斯头,释放约 2 亿参数:
pipeline = WorldMirrorPipeline.from_pretrained( 'tencent/HY-World-2.0', disable_heads=["normal", "gs"], )可选的头包括
camera、depth、normal、points、gs。点云里飘着大片天空/边缘噪点→ 默认开启的
apply_sky_mask(天空过滤)与apply_edge_mask(深度/法线跳变处过滤)会替你剔除这些无效区域;追求更干净的结果,还可以打开apply_confidence_mask按置信度剔除垫底的少量点。点云文件过大→ 使用
compress_pts压缩点云(默认开启),并通过compress_pts_max_points控制上限,例如 200 万点足以满足多数浏览与导入需求。
进阶玩法:多GPU并行与网页版界面
- 多卡加速:支持 Sequence Parallel + FSDP + BF16 的组合,多张卡把序列切分并行推理。启动方式:
torchrun --nproc_per_node=4 -m hyworld2.worldrecon.pipeline \ --input_path path/to/images \ --use_fsdp --enable_bf16⚠️注意:多卡模式下,输入图像数量必须大于等于显卡数量(4 卡至少 4 张图),否则程序会直接报错。
- 网页版体验:不想写代码?一条命令启动 Gradio 交互界面,上传图片或视频即可在浏览器里旋转查看点云、高斯泼溅、深度与法线:
python -m hyworld2.worldrecon.gradio_app写在最后:这个工具能帮你做到什么程度
回顾一下,WorldMirror 2.0 的核心价值可以浓缩为四点:
- ✅一次前向传播,多模态结果齐出——点云、深度、法线、相机、高斯全都要;
- ✅输入门槛低——照片文件夹或随手拍的视频都能用;
- ✅先验友好——有相机/深度信息就注入,精度肉眼可见地涨;
- ✅开箱即用——Python API、CLI、Gradio 三套入口任选。
从室内场景扫描、文物数字化记录到虚拟拍摄素材准备,这条"照片/视频转3D点云"的链路今天已经足够丝滑。想深入了解参数细节、先验格式与多卡原理,推荐直接翻阅项目中的 DOCUMENTATION.md 与 DOCUMENTATION_zh.md;模型配置与权重文件位于 HY-WorldMirror-2.0 目录,完整推理代码则集中在hyworld2/worldrecon/模块下。把相机对准你的场景,剩下的交给前馈模型一次完成。
【免费下载链接】HY-World-2.0项目地址: https://ai.gitcode.com/tencent_hunyuan/HY-World-2.0
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考