一、环境配置

1. 系统基础环境
  • 操作系统: Ubuntu 14.04 (推荐原生系统或兼容性好的虚拟机)
  • CUDA: 8.0 + cuDNN (需匹配 TensorFlow 1.2 版本要求)
  • Python: 2.7 (因 TensorFlow 1.x 对 Python 3 支持有限)
2. 核心依赖安装
# 创建 Python 虚拟环境(建议使用 virtualenv)
virtualenv tof-env
source tof-env/bin/activate

# 安装 TensorFlow 1.2 和关键依赖
pip install tensorflow-gpu==1.2.0
pip install -r requirements.txt
3. 辅助工具安装
  • Blender 2.7官方下载
  • pbrt-v3-tof: 从 Su et al. 的仓库 编译安装
  • MatLAB: 需安装 MatLabEXR 插件(用于处理 EXR 格式渲染结果)

二、数据准备

1. 下载预生成数据
  • 数据集链接Google Drive
    • 下载 ToF FlyingThings3D (~20GB)
    • 下载预训练模型权重
2. 自定义数据生成 (可选)

若需生成新数据,按以下流程操作:

(1) 生成深度图(Blender)
# 运行无头模式渲染
/path/to/blender -b scene.blend --python output_zpass.py --python_args
(2) 生成瞬态渲染(pbrt-v3-tof)
# 单场景渲染
/path/to/pbrt scene.pbrt

# 批量渲染(参考示例脚本)
bash batch_run_pbrt.sh
(3) 转换为 ToF 数据(MATLAB)
% 运行 transient_to_depth.m
addpath('transient_processing/example');
transient_to_depth('input_dir', 'output_dir');

三、模型编译与测试

1. 编译 CUDA 扩展
cd utils/
make
cd ops/warp_by_flow/
make
2. 运行推理
# 修改 fullmodel.py 中路径配置
DATA_DIR = "/path/to/test_data"
OUTPUT_DIR = "/path/to/predictions"

# 执行测试
python fullmodel.py

四、关键注意事项

  1. 路径一致性:
    • 确保 .blend (Blender) 与 .pbrt (pbrt) 文件中的相机参数(FOV、分辨率)一致
    • 检查坐标系转换(Blender 使用 -Z forward, Y up,需与 pbrt 对齐)
  2. TensorFlow 1.x 兼容性:
    • 若出现 UnpicklingError,尝试指定 custom_objects 加载模型:
      model = tf.keras.models.load_model('model.h5', custom_objects={'DenseUpsamplingConvolution': DenseUpsamplingConvolution})
  3. MATLAB 依赖:
    • 确保 MatLabEXR 插件正确安装,支持 EXR 文件读写

五、常见问题解决方案

问题类型 解决方法
make 编译失败 检查 CUDA 8.0 路径,确认 nvcc 可用性
数据集加载错误 验证 loader.py 中的路径分隔符(Linux 用 /
瞬态渲染结果异常 检查 pbrt 文件中的材质反射率参数范围(0~1)
模型输出 NaN 检查输入数据归一化是否在 [0,1] 范围内

六、延伸实验建议

  1. 消融实验:
    • 对比 Ours only mask 与完整模型性能(见表 4)
    • 测试不同 SAM 模型规模(SAM-B vs SAM-H)对精度的影响
  2. 真实数据测试:
    • 使用 test_real/calib.bin 校准文件
    • 设置 mvg_aug=True 启用多视角几何增强

通过以上步骤可完整复现论文结果。如需进一步优化部署效率,可尝试:

  1. 将 TensorFlow 1.x 模型转换为 ONNX 格式
  2. 使用 tf.compat.v1 渐进升级至新版本 TensorFlow
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐