
3步用上self-supervised-depth-completion预训练模型KITTI深度补全推理与评估完整教程【免费下载链接】self-supervised-depth-completionICRA 2019 Self-supervised Sparse-to-Dense: Self-supervised Depth Completion from LiDAR and Monocular Camera项目地址: https://gitcode.com/gh_mirrors/se/self-supervised-depth-completionself-supervised-depth-completion是 MIT 团队 ICRA 2019 论文《Self-supervised Sparse-to-Dense》的官方 PyTorch 实现用LiDAR 稀疏深度 单目相机图像输入通过自监督学习输出整幅密集深度图深度补全 / Depth Completion全程仅用 KITTI 数据集训练无需额外标注。本教程带你3 步完成环境安装 → 获取预训练模型 → KITTI 验证集一键评估。 核心关键词深度补全、稀疏转密集Sparse-to-Dense、自监督、KITTI、预训练模型、推理与评估一、项目能做什么先搞懂它传统做法里LiDAR 点云投影到相机平面只有零散几个深度点而相机拍到的每个像素都希望有一个深度值。本项目的工作就是把稀疏深度填满成密集深度让下游任务建图、感知、定位拿到完整深度信息。项目结构非常清晰先认识几个核心文件文件作用main.py训练 / 评估统一入口所有命令都在这里发起model.py深度补全网络DepthCompletionNetResNet 编码器 转置卷积解码器U-Net 风格跳跃连接criteria.py三种损失稀疏深度损失、光度损失Photometric、平滑损失metrics.py评估指标RMSE、MAE、iRMSE、delta1、Lg10 等dataloaders/kitti_loader.pyKITTI 数据加载器与相机标定download/一键下载 KITTI RGB 验证/训练图像的脚本它最大的亮点是自监督训练不依赖密集真值标注用用预测深度反投影相邻帧 → 光度一致性作为监督信号训练命令里加上photo模式即可自动启用对应main.py中的args.use_pose分支。二、第1步安装依赖与准备 KITTI 数据1. 克隆代码并安装依赖要求 Python 3 PyTorch 1.0 及以上官方在 Ubuntu 16.04 上验证过git clone https://link.gitcode.com/i/09de3ab0f6e9c0a738688935354111f0 cd self-supervised-depth-completion pip install numpy matplotlib Pillow pip install torch torchvision pip install opencv-contrib-python3.4.2.162. 下载 KITTI Depth 数据集先到 KITTI 官网 Depth Completion 评测页注册并下载原始数据train / val 原始包 标注然后运行仓库自带的脚本提取对应的 RGB 图像./download/rgb_train_downloader.sh ./download/rgb_val_downloader.sh3. 摆好目录结构。项目默认数据目录为../data即与代码平级整理后应如下data/ ├── data_depth_annotated # 密集真值深度train/val ├── data_depth_velodyne # LiDAR 稀疏深度train/val ├── depth_selection/ │ └── val_selection_cropped # 官方验证子集--val select 使用 └── data_rgb # 由上面脚本生成的 RGB 图像⚠️ 注意评估用--val select默认时只读depth_selection/val_selection_cropped这个官方裁剪验证集数据量小、速度快最适合跑通流程。三、第2步获取官方预训练模型项目作者提供了两套训练好的预训练模型直接下载即可无需自己训练下载地址见README.md的Trained Models一节supervised用半密集 LiDAR 真值监督训练精度通常更高self-supervised光度损失 稀疏深度损失 平滑损失完全不依赖密集真值。下载后把.pth.tar权重文件放到任意固定路径备用例如~/models/self_supervised_model_best.pth.tar 小建议新手先拿self-supervised版本体验全流程之后可对比 supervised 版本观察指标差异直观感受两种训练范式的区别。四、第3步一行命令完成推理与评估main.py中--evaluate分支会自动加载 checkpoint、恢复训练时的超参数然后在验证集上逐帧前向推理并统计全部指标# 在官方裁剪验证集上评估默认速度快推荐 python main.py --evaluate ~/models/self_supervised_model_best.pth.tar --val select # 在完整验证集上评估约 44 帧耗时更长 python main.py --evaluate ~/models/self_supervised_model_best.pth.tar --val full运行结束后终端会打印一段汇总由helper.py的conditional_summarize生成Summary of val round RMSExxxx.xxxx MAExxx.xxx Photoxx.xx iRMSExx.xxx iMAExx.xxx silogxx.xx Delta1x.xxx RELx.xxx Lg10x.xxx同时会在../results/下自动生成输出目录含代码备份code_backup/、指标 CSV其中val.csv逐 epoch 的指标记录方便后续画曲线对比comparison_eval.png由vis_utils.py生成的并排对比图RGB 稀疏输入 预测深度 真值一眼看出补全效果best.txt当前最优指标快照。 如何读懂指标定义见metrics.pyRMSE / MAE毫米数值越小越好是深度补全排行榜的核心指标delta1预测与真值比值小于 1.25 的像素占比越接近 1 越好iRMSE / iMAE基于倒数深度接近视差空间对近处更敏感Lg10 / silog尺度敏感的对数类误差。五、进阶自己训练或断点续训想复现论文或微调模型main.py -h可查看完整参数列表最常用的几条# 用 KITTI 半密集真值训练rgbd 双模态输入batch size 1 python main.py --train-mode dense -b 1 --input rgbd # 论文核心纯自监督训练无密集真值 python main.py --train-mode sparsephoto # 从已有 checkpoint 断点续训 python main.py --resume ~/results/.../checkpoint-10.pth.tar几个高频参数说明参数说明--input输入模态d仅稀疏深度/rgb/rgbd/g/gd--layers编码器层数18 / 34 / 50 / 101 / 152默认 34--pretrained是否加载 ImageNet 预训练权重--train-modedense/sparse/photo/sparsephoto/densephoto--cpu无 GPU 时强制 CPU 运行会慢很多训练每轮自动保存checkpoint-N.pth.tar最优模型会额外复制为model_best.pth.tar见helper.py的save_checkpoint后续评估就指向model_best.pth.tar。六、常见问题速查FAQQ1评估时报 No model found at ...checkpoint 路径写错或传的是文件夹。--evaluate后面必须跟具体的.pth.tar文件路径。Q2评估时报找不到数据确认data/目录与代码目录平级默认--data-folder ../data不在同级需显式指定且val_selection_cropped已放入depth_selection/。Q3评估时也想保存每帧预测深度图评估分支本身以指标统计为主如需可视化对比图comparison_eval.png会自动生成在输出目录中无需额外配置。Q4为什么我的 RMSE 和论文/官网对不上优先检查三点① 用的是--val select而非full两者数值本就不同② 权重文件与--input模态是否匹配rgbd 训练的权重要配rgbd输入checkpoint 会自带训练参数通常会自动对齐③ CUDA/cuDNN 版本差异带来的微小浮动属正常现象。总结只需3 步——装依赖与数据、下预训练权重、跑--evaluate命令——你就能在自己的机器上得到 KITTI 深度补全的完整推理与评估结果指标 CSV、对比图、最优模型快照一应俱全。之后无论是复现自监督训练--train-mode sparsephoto还是换输入模态做消融实验都只需在 main.py 基础上改一行命令。建议动手时打开metrics.py对照着看几分钟就能吃透每个误差指标的物理含义。【免费下载链接】self-supervised-depth-completionICRA 2019 Self-supervised Sparse-to-Dense: Self-supervised Depth Completion from LiDAR and Monocular Camera项目地址: https://gitcode.com/gh_mirrors/se/self-supervised-depth-completion创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考