news 2026/8/18 13:25:39

复现CVPR 2021论文结果:ManyDepth在KITTI上的完整评估教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
复现CVPR 2021论文结果:ManyDepth在KITTI上的完整评估教程

复现CVPR 2021论文结果:ManyDepth在KITTI上的完整评估教程

【免费下载链接】manydepth[CVPR 2021] Self-supervised depth estimation from short sequences项目地址: https://gitcode.com/gh_mirrors/ma/manydepth

想要亲手复现 CVPR 2021 顶会论文中的深度估计结果?ManyDepth 是一款基于自监督学习的多帧单目深度估计模型,只需单目视频即可训练,无需任何深度或位姿标注,就能在 KITTI 数据集上达到当时最优的水平。本教程将带你从零开始,完成环境搭建、权重下载、数据准备到最终评估的全流程,一步步在本地跑出论文中的完整评估结果,轻松掌握 ManyDepth 深度估计评估的正确打开方式。

ManyDepth 是什么?为什么值得复现评估?

ManyDepth 是 Niantic 团队发表于 CVPR 2021 的工作,核心思想是"自适应地利用测试时的短序列信息"。与只能处理单帧的传统单目深度估计方法不同,ManyDepth 在推理时只要有多帧短序列,就能构建代价体积(Cost Volume)提升预测精度:

  • 完全自监督:仅用单目视频训练,不需要深度和位姿真值
  • 单帧可用、多帧更准:单帧也能出深度,短序列效果更佳
  • 推理高效:测试时只需一次前向传播,无需测试时优化
  • 当时 SOTA:在 KITTI 与 Cityscapes 上刷新了自监督单目深度估计纪录

下面这张对比图直观展示了 ManyDepth 相比单帧方法 Monodepth2 的优势,红色误差区域明显更少:

评估前必读:项目结构与核心模块

在开始复现之前,先快速熟悉一下项目结构,评估相关代码都在manydepth/目录下:

  • evaluate_depth.py:KITTI / Cityscapes 官方评估入口,计算 abs_rel、rmse、a1 等全部论文指标
  • export_gt_depth.py:从 KITTI 原始点云导出评估所需的深度真值
  • test_simple.py:单图/双图快速推理演示脚本
  • options.py:全部训练与评估参数定义
  • kitti_utils.py:KITTI 数据解析与深度图生成工具

第一步:搭建 ManyDepth 评估环境

官方提供了 environment.yml 环境配置,包含 PyTorch 1.7.1、OpenCV 3.4.2 等依赖。建议用 conda 一键创建:

conda env create -f environment.yml conda activate manydepth

然后克隆项目代码:

git clone https://gitcode.com/gh_mirrors/ma/manydepth cd manydepth

💡 提示:如果 GPU 显存有限,评估时可以在命令行通过CUDA_VISIBLE_DEVICES=0指定显卡。

第二步:准备 KITTI 数据集

评估使用 Eigen 划分(Eigen Split),需要下载 KITTI 原始数据(Raw Data)。下载完成后按 Monodepth2 的标准目录结构组织数据,最终目录树类似:

KITTI_RAW/ ├── 2011_09_26/ │ ├── 2011_09_26_drive_0002_sync/ │ │ ├── image_02/data/ │ │ └── velodyne_points/data/ │ └── calib_cam_to_cam.txt └── ...

导出评估所需的深度真值

ManyDepth 评估依赖预先生成的真值文件gt_depths.npz,使用 export_gt_depth.py 一键导出:

python -m manydepth.export_gt_depth \ --data_path /path/to/KITTI_RAW \ --split eigen

运行后会在splits/eigen/目录下生成gt_depths.npz,这就是后续评估的对照真值。

第三步:下载官方预训练权重

复现评估最快的方式是直接使用论文官方权重(也可自行训练,见文末)。官方提供三个预训练模型:

模型分辨率适用场景
KITTI MR640x192标准分辨率评估(推荐)
KITTI HR1024x320高分辨率评估
CityScapes MR512x192Cityscapes 数据集评估

下载后将压缩包解压到本地目录,记下权重文件夹路径,例如~/models/KITTI_MR/。权重文件夹内应包含encoder.pthdepth.pthpose_encoder.pthpose.pth等文件。

第四步:运行官方评估命令

万事俱备,现在运行 evaluate_depth.py 进行完整评估:

CUDA_VISIBLE_DEVICES=0 \ python -m manydepth.evaluate_depth \ --data_path /path/to/KITTI_RAW \ --load_weights_folder ~/models/KITTI_MR \ --eval_mono

几个关键参数说明:

  • --eval_mono:单目评估模式(论文表 1 的主结果)
  • --eval_split eigen:使用 Eigen 划分(默认值)
  • --save_pred_disps:保存预测视差图,便于后续分析
  • --zero_cost_volume:评估"单帧模式"(对应论文消融实验)
  • --eval_teacher:评估用于一致性损失的单目教师网络

评估结束后,终端会输出标准格式的指标表,包含 abs_rel、sq_rel、rmse、rmse_log、a1、a2、a3 七个指标,与论文中的结果表完全对应:

第五步:解读评估指标

评估输出的是深度估计领域的标准指标,理解它们才能确认复现成功:

  • abs_rel(平均相对误差):越低越好,衡量预测深度与真值的相对偏差
  • rmse(均方根误差):越低越好,对大误差更敏感
  • a1/a2/a3(阈值准确率):越高越好,表示预测与真值比值落在 1.25、1.25²、1.25³ 内的像素比例

📌 复现小贴士:论文结果基于中值缩放(median scaling)校正尺度,评估脚本默认开启,无需手动处理。若指标与论文有细微出入,请检查 KITTI 原始数据是否完整、gt_depths.npz是否由相同划分导出。

附:用 test_simple.py 快速体验多帧推理

如果你想在不完整下载 KITTI 的情况下先跑通流程,可以用项目自带的示例图片体验多帧推理。仓库assets/目录提供了 test_sequence_target.jpg、test_sequence_source.jpg 两张行车记录仪连续帧以及对应的 test_sequence_intrinsics.json 相机内参:

python -m manydepth.test_simple \ --target_image_path assets/test_sequence_target.jpg \ --source_image_path assets/test_sequence_source.jpg \ --intrinsics_json_path assets/test_sequence_intrinsics.json \ --model_path ~/models/KITTI_MR

运行后会在同目录生成带色彩映射的深度图*_disp_multi.jpeg,让你直观看到 ManyDepth 如何利用前一帧信息提升深度预测质量。

延伸:从零训练自己的 ManyDepth 模型

如果不想直接用预训练权重,也可以参考 README 中的训练命令完整复现论文训练流程,入口是 train.py:

CUDA_VISIBLE_DEVICES=0 \ python -m manydepth.train \ --data_path /path/to/KITTI_RAW \ --log_dir /path/to/logs \ --model_name my_manydepth

训练完成后,把--load_weights_folder指向训练输出目录,再按第四步执行即可评估自己的模型。至此,你已经完整走通了"数据准备 → 权重获取 → 指标评估 → 结果解读"的全链路,成功复现 CVPR 2021 论文的 KITTI 评估结果!

【免费下载链接】manydepth[CVPR 2021] Self-supervised depth estimation from short sequences项目地址: https://gitcode.com/gh_mirrors/ma/manydepth

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

1951-2021 年印度次大陆河流域的径流重建数据集

1951-2021 年印度次大陆河流域的径流重建 印度次大陆 (ISC) 河流域水文模型模拟月度径流数据集(1951 年至 2021 年)满足了 ISC 区域长期径流观测的迫切需求。鉴于水流数据在水资源管理、水文气候分析和生态评估中的重要作用,该数据集为广泛的…

作者头像 李华
网站建设 2026/8/18 13:21:46

小白自学Dify

Dify的对话流是什么、工作流是什么、分别怎么做。一、先搞懂:对话流 VS 工作流刚开始我一直分不清这两个,总觉得长得差不多,其实用途完全不一样!1. 对话流(Chatflow)用户发消息 ,AI根据设定回答…

作者头像 李华
网站建设 2026/8/18 13:16:49

Qt新手入门指南 - 如何创建模型/视图(三)

每个UI开发人员都应该了解ModelView编程,本教程的目标是为大家提供一个简单易懂的介绍。 Qt是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今&#xff…

作者头像 李华
网站建设 2026/8/18 13:10:15

ZotCard卡片笔记完整指南:6步走完从建卡到复盘的工作流

ZotCard卡片笔记完整指南:6步走完从建卡到复盘的工作流 【免费下载链接】zotcard ZotCard is a plug-in for Zotero, which is a card note-taking enhancement tool. It provides card templates (such as concept card, character card, golden sentence card, et…

作者头像 李华