ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HY-World 2.0 输出格式与数据结构完整参考:从points.ply到gaussians.ply逐项讲清

HY-World 2.0 输出格式与数据结构完整参考:从points.ply到gaussians.ply逐项讲清 HY-World 2.0 输出格式与数据结构完整参考从points.ply到gaussians.ply逐项讲清【免费下载链接】HY-World-2.0HY-World 2.0: A Multi-Modal World Model for Reconstructing, Generating, and Simulating 3D Worlds项目地址: https://gitcode.com/gh_mirrors/hy/HY-World-2.0HY-World 2.0 是腾讯开源的多模态 3D 世界模型框架能把文本、单图、多视角图像或视频转换为可交互的 3D 世界。本文是一份面向新手的输出格式与数据结构完整参考逐文件讲清 3D 重建WorldMirror 2.0与 3D 世界生成World Generation两条流水线产出的points.ply点云、gaussians.ply3D 高斯泼溅、深度图、法线图、相机参数 JSON 等每种输出文件的含义、格式与存放位置帮你拿到结果后开箱即用。上图是 HY-World 2.0 的整体架构全景生成HY-Pano 2.0→ 轨迹规划WorldNav→ 世界扩展WorldStereo 2.0→ 世界组合WorldMirror 2.0 3DGS 训练。每条流水线都会落盘一批结构化的 3D 资产文件下面逐一拆解。一、3D 重建输出WorldMirror 2.0 的目录结构速览WorldMirror 2.0 是一个前馈式 3D 重建模型输入一组多视角图像或一段视频单次前向推理同时预测深度、法线、相机位姿、3D 点云和 3D 高斯泼溅属性。运行入口是 hyworld2/worldrecon/pipeline.py推理成功后结果按案例名 时间戳归档到输出目录inference_output/ └── case_name/ └── timestamp/ ├── depth/ │ ├── depth_0000.png # 归一化深度可视化灰度图 │ ├── depth_0000.npy # 原始 float32 深度值 [H, W] │ └── ... ├── normal/ │ ├── normal_0000.png # 法线可视化RGB │ └── ... ├── camera_params.json # 相机外参 内参 ├── gaussians.ply # 3D 高斯泼溅标准 3DGS 格式 ├── points.ply # 带颜色的 3D 点云 ├── sparse/ # COLMAP 稀疏重建加 --save_colmap 时生成 │ └── 0/ │ ├── cameras.bin │ ├── images.bin │ └── points3D.bin ├── rendered/ # 高斯渲染视频加 --save_rendered 时生成 │ ├── rendered_rgb.mp4 │ └── rendered_depth.mp4 └── pipeline_timing.json # 性能计时报告 示例输入场景可以直接看 examples/worldrecon/比如 realistic真实场景与 stylistic艺术风格两大类方便你对照自己的输出。二、核心输出文件逐项详解points.ply带颜色的 3D 点云points.ply是由预测深度 相机参数反投影到世界坐标系得到的彩色点云源码见 hyworld2/worldrecon/hyworldmirror/utils/inference_utils.py 中的_compute_points_from_depth。坐标系统世界坐标系第一个视角为参考系PLY 顶点属性x, y, zfloat32 坐标red, green, blueuint8 颜色质量控制默认经过天空掩码、边缘掩码过滤并做体素合并 随机降采样压缩到compress_pts_max_points默认 200 万点以内用 trimesh 一行就能加载trimesh.load(points.ply)直接可在 Blender、Unity、Unreal 中查看。gaussians.ply3D 高斯泼溅3DGSgaussians.ply是标准 3D Gaussian Splatting 格式可直接被 gsplat、nerfstudio、Blender 的 3DGS 插件等生态工具加载。每个顶点就是一个高斯椭球属性如下表构建逻辑见 hyworld2/worldrecon/hyworldmirror/utils/save_utils.py 的_build_gs_ply_data属性数量含义x, y, z3高斯中心位置世界坐标nx, ny, nz3法线本项目导出时置零为兼容格式保留f_dc_0 ~ f_dc_23球谐 SH 0 阶系数决定颜色实际 RGB 0.5 0.2821 × f_dcopacity1不透明度sigmoid 前的原始 logit 值scale_0 ~ scale_23高斯三轴缩放存储的是对数 log(scale)rot_0 ~ rot_34旋转四元数注意两个坑scale 是取了对数的opacity 还没过 sigmoid——可视化时需要exp(scale_*)和1/(1exp(-opacity))还原。导出前还会做体素剪枝默认上限 500 万高斯compress_gs_max_points并过滤掉 2% 的最大异常尺度。camera_params.json相机外参与内参JSON 结构非常直白{ num_cameras: 2, extrinsics: [ { camera_id: 0, matrix: [/* 4x4 c2w 矩阵 */] } ], intrinsics: [ { camera_id: 0, matrix: [/* 3x3 内参 */] } ] }extrinsics.matrix4×4 相机到世界c2w变换OpenCV 坐标约定intrinsics.matrix3×3 内参fx、fy、cx、cy该文件同时可作为下一轮推理的先验输入--prior_cam_path形成闭环depth/ 与 normal/逐视角深度和法线文件格式说明depth_0000.png灰度 PNG归一化到 0~255 的深度可视化图只给人看depth_0000.npyfloat32 [H, W]真实深度数值相机系 Z 深度程序处理用它normal_0000.pngRGB PNG法线方向映射为颜色的可视化图可选输出depth_conf/目录下的conf_0000.png深度置信度--save_conf、sky_mask/目录下的sky_mask_0000.png天空分割--save_sky_mask。sparse/ 与 rendered/可选的高级输出sparse/0/COLMAP 二进制格式cameras.bin、images.bin、points3D.bin加--save_colmap生成方便接入 COLMAP 生态工具rendered/rendered_rgb.mp4沿相机轨迹插值渲染的飞行视频加--save_rendered生成用于直观检验重建质量三、内存中的 Prediction 字典Python API 用户看这里如果你用 Python APIpipeline(path/to/images)而不是 CLI模型内部会先产出一个predictions字典再落盘为上述文件。核心键值速查键形状含义depth/depth_conf[B,S,H,W,1] / [B,S,H,W]相机系 Z 深度及其置信度normals/normals_conf[B,S,H,W,3] / [B,S,H,W]相机系表面法线及置信度pts3d/pts3d_conf[B,S,H,W,3] / [B,S,H,W]世界坐标 3D 点图及置信度camera_poses/camera_intrs[B,S,4,4] / [B,S,3,3]c2w 外参与内参矩阵camera_params[B,S,9]紧凑相机向量平移四元数fov_vfov_usplats字典3DGS 属性means、scales、quats、opacities、sh、weights其中 S 为视角数N S × H × W每个像素对应一个候选高斯。完整参数与 CLI 对照表见 DOCUMENTATION.md。四、3D 世界生成流水线的输出文件除了重建HY-World 2.0 还能从一张全景图生成完整可导航 3D 世界流水线说明见 hyworld2/worldgen/README.md。各阶段在场景目录中增量累积以下产物阶段关键输出说明1-2 轨迹规划/渲染navmesh/、render_results/view{N}/traj{M}/camera.json、render.mp4相机轨迹与点云渲染参考视频2-3 世界扩展render_results/global_pcd.ply、global_mesh.ply、global_normal.npy、sky_pcd.ply、full_depth_prediction.pt全局点云/网格/法线/天空点云/全场景深度3 关键帧生成render_results/view{N}/traj{M}/worldstereo-memory-dmd_result.mp4WorldStereo 2.0 生成的关键帧视频4 GS 数据准备gs_data/images/、gs_data/depths/、gs_data/normals/、gs_data/cameras.json、gs_data/points.ply含可选sky_points.ply、align_points.ply3DGS 训练所需的图像、对齐深度、法线、相机与初始化点云由 hyworld2/worldgen/gen_gs_data.py 产出5 3DGS 训练ply/目录、ckpts/、.spz压缩格式、TSDF 融合网格由 hyworld2/worldgen/world_gs_trainer.py 优化导出支持--save_ply、--convert_to_spz、--export_mesh全景生成HY-Pano 2.0的输出单图或文本转 360° 全景的产物是一张等距柱状投影ERPPNG默认 1920×960 分辨率、RGB 色彩空间左右边缘做了 32 像素圆形混合保证在 360° 查看器中无缝衔接详见 hyworld2/panogen/pipeline.py。五、常见问题与使用建议Q1points.ply 和 gaussians.ply 该用哪个点云轻量、通用性强适合快速查看几何、导入任意引擎gaussians.ply支持高保真实时渲染适合网页 3DGS 查看器和游戏引擎。两者坐标系一致可互相配合。Q2输出文件太多想精简WorldMirror 2.0 的每个输出都可开关--no_save_points、--no_save_gs、--no_save_depth等甚至可以用disable_heads直接关掉头模块省显存如只留gs头。Q3多 GPU 跑会乱目录吗不会。分布式推理只有 rank 0 负责后处理与落盘目录结构与单卡完全一致。Q4想把重建结果接进训练流程把重建输出的camera_params.json与depth/*.npy作为先验喂回--prior_cam_path/--prior_depth_path可以显著提升二次推理精度。小结HY-World 2.0 的输出全部是标准化 3D 资产——points.ply点云、gaussians.ply3DGS、camera_params.json相机、depth/深度、normal/法线、COLMAPsparse/与渲染视频加上世界生成流水线的global_pcd.ply、gs_data/训练集和 3DGS 训练产物PLY/SPZ/网格。理解本文的文件结构后你即可将这些输出无缝接入 Blender、Unity、Unreal 或 gsplat 生态真正构建一个世界永久拥有它。【免费下载链接】HY-World-2.0HY-World 2.0: A Multi-Modal World Model for Reconstructing, Generating, and Simulating 3D Worlds项目地址: https://gitcode.com/gh_mirrors/hy/HY-World-2.0创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表