news 2026/10/2 9:01:32

HY-World 2.0 世界生成全流程指南:从全景图到可导航3D世界的5个阶段详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HY-World 2.0 世界生成全流程指南:从全景图到可导航3D世界的5个阶段详解

HY-World 2.0 世界生成全流程指南:从全景图到可导航3D世界的5个阶段详解

【免费下载链接】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

HY-World 2.0 是一个多模态世界模型框架,能够把一张图片或一段文字变成可编辑、可实时漫游的 3D 世界(网格 / 3DGS 资产),而不是一段"看完就消失"的视频。本文带你走通 HY-World 2.0 世界生成的完整工作流:从 360° 全景图出发,经过轨迹规划 → 轨迹渲染 → 世界扩展 → GS 数据准备 → 3DGS 训练共 5 个阶段,最终得到一个可以在浏览器里自由行走、还能导入 Blender/Unity 的真实 3D 世界。全程只需按顺序运行 5 个脚本,本文会逐一讲清每个阶段"在做什么、为什么这么做、关键参数怎么配"。

为什么是"3D 世界"而不是"视频"

多数世界模型输出的是像素级视频,播放结束世界就消失;而 HY-World 2.0 直接产出持久化的 3D 资产:

| | 视频世界模型 | HY-World 2.0 世界生成 | |--|---|---| | 输出 | 像素视频,不可编辑 | 网格 / 3DGS,完全可编辑 | | 生命周期 | 通常 1 分钟 | 永久保存 | | 渲染 | 逐帧推理,延迟高 | 消费级 GPU 实时渲染 | | 可控性 | 弱,无真实物理 | 精确控制 + 物理碰撞 | | 引擎兼容 | 仅视频文件 | 可导入 Blender / UE / Isaac Sim |

这也是"构建一个可玩的世界"与"录一段视频"的本质区别。

整体架构:全景图驱动的完整流水线

HY-World 2.0 的世界生成由 4 个核心模块串联:

  • 全景生成(HY-Pano 2.0):文字/单图 → 360° 全景图
  • 轨迹规划(WorldNav):VLM 引导的相机路径设计
  • 世界扩展(WorldStereo 2.0):沿轨迹生成逼真视频关键帧
  • 世界组合(WorldMirror 2.0 + 3DGS 学习):把多视角画面固化成 3D 资产

开源的世界生成模块(hyworld2/worldgen/)实现了从全景图开始的5 个可执行阶段,对应 5 个脚本,所有阶段共享同一个场景目录(--target_path),中间结果逐阶段累积:

阶段脚本做什么
1. 轨迹规划traj_generate.pyVLM 引导的相机轨迹规划,带避障导航
2. 轨迹渲染traj_render.py多 GPU 点云渲染 + VLM 轨迹描述
3. 世界扩展video_gen.pyWorldStereo 2.0 生成逼真关键帧
4. GS 数据准备gen_gs_data.py抽取帧、对齐深度/法线/相机参数
5. 3DGS 训练world_gs_trainer.py优化并导出最终 3D 世界

开始之前:环境一键安装

  • 硬件:CUDA 12.8、Python 3.11+,建议 ≥4 张 GPU(官方在 8×H20 上验证)
  • 依赖:vLLM 服务(承载 Qwen3-VL-8B 视觉语言模型,供阶段 1、2 使用)
  • 权重:WorldStereo 2.0 等模型权重会在首次运行时自动下载

安装命令参考根目录 README.md 的 Get Started 章节:

git clone https://gitcode.com/gh_mirrors/hy/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 pip install --no-build-isolation -r requirements_git.txt git submodule update --init --recursive # 编译自定义 gsplat(MaskGaussian)与 navmesh 扩展 cd hyworld2/worldgen/third_party/gsplat_maskgaussian && pip install -e . --no-build-isolation cd ../../navmesh && pip install . --no-build-isolation

阶段 1、2 需要一台运行 vLLM 的 VLM 服务(如 Qwen3-VL-8B),把地址、端口、模型名通过--llm_addr / --llm_port / --llm_name传给对应脚本即可。

输入准备:用 HY-Pano 2.0 生成 360° 全景图

世界生成的"原材料"是一张等距柱状(ERP)全景图,默认分辨率 1920×960。你可以自备全景图,也可以用 HY-Pano 2.0 从单张普通照片(甚至文字)一步生成——它提供两个后端:

  • HunyuanImage-3 后端(pipeline.py):带"思考→重写提示词→扩散"推理链,语义更连贯
  • Qwen-Image-Edit 后端(pipeline_with_qwen_image.py):轻量 LoRA 方案,加载更快
python pipeline.py --image input.png --save output_panorama.png

生成后将全景图放入场景目录并命名为panorama.png,例如仓库自带的示例 examples/worldgen/case000/panorama.png:

全景图细节可参考 hyworld2/panogen/README.md。

阶段一:轨迹规划——让虚拟相机学会"看世界"

目标:在世界里设计一批"值得拍摄"的相机路径。

工作原理(traj_generate.py + src/navi_utils.py):

  1. VLM(Qwen3-VL)先"看懂"全景图,识别出有趣的拍摄目标,结果存入objects.json
  2. SAM3 语义分割 + NavMesh 导航网格做避障路径规划,自动绕开墙壁和障碍物
  3. 产出 4 类多样化轨迹:环绕(surround)、探索(wonder)、目标聚焦(target)、重建视角(reconstruct)
  4. 同步由全景图恢复出全局点云global_pcd.ply、全局网格与全场景深度,作为后续阶段的几何地基
python traj_generate.py --target_path $TARGET_PATH \ --llm_addr $LLM_ADDR --llm_port $LLM_PORT --llm_name $LLM_NAME \ --apply_nav_traj --apply_up_route --apply_recon_iteration --force_vlm

每条轨迹的相机内外参会写入camera.json,单 GPU 即可运行。

阶段二:轨迹渲染——为生成模型绘制"草稿底图"

目标:把规划好的每条轨迹渲染成视频,作为世界扩展阶段的几何条件。

traj_render.py 会加载阶段一的全局点云,用多 GPU 点云 splatting沿每条轨迹渲染出render.mp4与遮挡掩码render_mask.mp4;同时把渲染视频喂给 VLM,自动生成一段轨迹文字描述traj_caption.json(比如"镜头沿走廊缓缓前移"),让后续生成在内容上贴合场景。

torchrun --nproc_per_node 8 traj_render.py --target_path $TARGET_PATH \ --llm_addr $LLM_ADDR --llm_port $LLM_PORT --llm_name $LLM_NAME

阶段三:世界扩展——WorldStereo 2.0 生成逼真关键帧

目标:把粗糙的点云渲染视频"升级"为照片级真实感的视频,让点云覆盖不到的区域也被合理补全——世界就这样被"扩展"出来了。

video_gen.py 加载 WorldStereo 2.0(约 17B 参数的扩散视频模型),其三大关键机制:

  • 相机嵌入 + ControlNet 条件:以点云渲染帧为几何约束,保证生成画面与真实点云严丝合缝
  • PanoramaMemoryBank 记忆库:检索注入参考全景图,保证多条轨迹之间外观一致,不会出现"换个角度墙的颜色变了"
  • DMD 四步蒸馏推理:默认worldstereo-memory-dmd模式,仅 4 步采样即可出片,速度大幅提升

模型支持 FSDP 分片,8 卡并行推理:

torchrun --nproc_per_node 8 video_gen.py --target_path $TARGET_PATH --fsdp

输出为每条轨迹一个*_result.mp4,并汇入全局生成库generation_bank_*。

阶段四:GS 数据准备——为 3DGS 训练组装"教材"

目标:把生成的视频变成 3DGS 训练能直接吃的数据集:图像、深度、法线、相机参数一一对齐。

gen_gs_data.py 完成 4 件事:

  1. 从每条轨迹视频中按间隔抽帧,保存 RGB 图像
  2. 用 MoGe 深度模型预测每帧深度,并与阶段一的全场景深度对齐(--save_normal同时导出法线图)
  3. 汇总所有轨迹的相机参数,输出 COLMAP 风格目录结构
  4. 天空分离(--split_sky):把天空点云单独存为sky_points.ply,训练时天空与地面分别处理,避免几何污染
torchrun --nproc_per_node 8 gen_gs_data.py \ --root_path $TARGET_PATH --save_normal --split_sky

产物就是训练入口$TARGET_PATH/gs_data/,内含images/、depths/、normals/等子目录。

阶段五:3DGS 训练——把视频"固化"为可实时渲染的世界

目标:以 3D 高斯泼溅(3D Gaussian Splatting)优化出最终世界资产。

world_gs_trainer.py 是项目中最重的一步,核心配置:

  • MaskGaussian 自适应剪枝:基于自定义 gsplat 分支(third_party/gsplat_maskgaussian/),训练过程中概率性地剔除冗余高斯,模型更小更干净
  • 深度 + 法线 + LPIPS 三重正则:让几何真实、表面平滑、观感逼真
  • 天空感知训练:天空单独用点云表达,地面正常优化
  • 多格式导出:.ply、压缩版.spz、TSDF 融合网格,可直接导入 Blender / Unity / Unreal

GPU 数量与训练步数按比例换算(8 卡 1500 步 → 4 卡 2000 步 → 2 卡 4000 步 → 1 卡 8000 步),完整推荐参数见 hyworld2/worldgen/README.md:

python -m world_gs_trainer default \ --data_dir $TARGET_PATH/gs_data --result_dir $RESULT_DIR \ --max_steps 1500 --save_ply --convert_to_spz --export_mesh \ --depth_loss --normal_loss --use_mask_gaussian

走进你的世界:可视化与应用

训练完成后,用浏览器查看器实时漫游自己的 3D 世界——基于 viser + nerfview 构建,支持自由视角交互:

python show_gs.py --port 8081 --gpu_id 0 \ --ckpt "$RESULT_DIR/ckpts/ckpt_1499_rank*.pt"

导出网格后可作为真实 3D 资产长期使用:导入游戏引擎做场景搭建、做数字孪生、或直接分享.spz文件:

数据目录速览与进阶阅读

运行完 5 个阶段后,场景目录会自然长成这样(每个阶段"认领"自己的一层):

<scene_dir>/ ├── panorama.png # 输入全景图 ├── objects.json # 阶段1:VLM 检测的目标 ├── render_results/ # 阶段2-3:点云、渲染视频、生成视频 │ ├── global_pcd.ply │ └── view{N}/traj{M}/ # 每条轨迹的 camera.json / 渲染 / 生成结果 ├── gs_data/ # 阶段4:3DGS 训练数据集 └── <result_dir>/ # 阶段5:3DGS 输出(ply/spz/网格)

想继续深挖,推荐按此顺序阅读:

  • 世界生成总览与完整参数:hyworld2/worldgen/README.md
  • HY-Pano 2.0 全景生成双后端文档:hyworld2/panogen/README.md
  • 项目级完整 API 参考(含世界重建 WorldMirror 2.0):DOCUMENTATION.md
  • 示例场景:examples/worldgen/case000/ 与 examples/worldgen/case001/

常见问题速查

  • GPU 不够怎么办?阶段 1、2 单卡可跑;阶段 3、5 至少 2 卡起步,并按上文规则增加训练步数。
  • 模型权重去哪了?全部首次运行自动下载(WorldStereo 2.0 等见根 README 的 Model Zoo 章节),无需手动搬运。
  • 轨迹穿墙了?确认阶段一已加--apply_nav_traj(NavMesh 避障)与--apply_recon_iteration(迭代修正)。
  • 生成画面前后不一致?这是记忆库(PanoramaMemoryBank)的职责,保持阶段三使用默认worldstereo-memory-dmd模型即可。

按这 5 个阶段跑完,你就把一张全景图"长"成了真正的 3D 世界——从轨迹规划到 3DGS 训练,每一步都可单独重跑、逐步调试。Happy world building! 🌍

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 9:01:12

二代AI工具链Pulsar2:从PyTorch/ONNX到NPU的部署避坑实战

简介&#xff1a;AXera第二代AI工具链Pulsar2的官方文档库&#xff0c;面向使用AX650A、AX650N、AX630C、AX620Q等SoC进行AI应用开发的嵌入式工程师与算法开发者。这套资料共28个文件、约279KB&#xff0c;以13个rst格式的Sphinx文档源文件为主体&#xff0c;配合7张png架构示意…

作者头像 李华
网站建设 2026/10/2 9:00:57

sed -i 原理与跨平台安全实践:从原子替换到生产避坑指南

1. 为什么你今天必须真正搞懂sed -i——它不是“替换文件”的快捷键&#xff0c;而是文本处理的手术刀我带过十几期 Linux 运维训练营&#xff0c;每次讲到sed -i&#xff0c;总有学员在课后追着问&#xff1a;“老师&#xff0c;我写sed -i s/old/new/ file.txt&#xff0c;结…

作者头像 李华
网站建设 2026/10/2 9:00:17

乌鲁木齐实力之选:安平县宏友森丝网制品有限公司刀片刺绳制造厂家用户力荐,价格公道不玩套路

安平县宏友森丝网制品有限公司是国内专注周界安防防护产品的源头实体厂家&#xff0c;核心业务涵盖刺绳、刀片刺绳、刺绳立柱的研发、生产与定制配套服务&#xff0c;业务覆盖全国各省市&#xff0c;可提供从产品选型、方案设计到安装落地的全链条周界防护解决方案。企业基础概…

作者头像 李华
网站建设 2026/10/2 8:59:36

Debian apt-get update报错盘片提示的根源与修复

1. 这不是网络问题&#xff0c;是 Debian 包管理系统的“身份识别”机制在报警 你刚装好一台 Debian Bullseye&#xff08;11&#xff09;或 Bookworm&#xff08;12&#xff09;&#xff0c;连上网络&#xff0c;兴冲冲敲下 sudo apt-get update &#xff0c;结果终端突然跳…

作者头像 李华
网站建设 2026/10/2 8:58:48

JSC解密工具使用指南:从解压到反编译的完整流程

简介&#xff1a;这份新版JSC解密工具面向需要处理JavaScript混淆代码的开发者与逆向分析爱好者&#xff0c;尤其适合在调试、安全审计或学习加密逻辑时遇到JSC格式文件却无从下手的场景。压缩包共112个文件&#xff0c;以103个dll动态链接库为核心运行依赖&#xff0c;辅以5个…

作者头像 李华
网站建设 2026/10/2 8:57:05

微信登录原理与实操:从OAuth2.0到扫码会话建立

做后端开发这些年&#xff0c;微信登录接了不少次&#xff0c;坑也踩了不少。最早接手一个Web项目要加扫码登录&#xff0c;我对着微信开放平台的文档研究了半天&#xff0c;以为就是一个跳转&#xff0c;结果真跑起来的时候&#xff0c;回调带回来的code、换token的接口、open…

作者头像 李华