首页 游戏 软件 资讯 排行榜 专题
首页
AI
Monodepth2-基于自监督学习的单目深度估计模型

Monodepth2-基于自监督学习的单目深度估计模型

热心网友
41
转载
2025-07-22
来源:https://www.php.cn/faq/1421600.html
Monodepth2是ICCV2019发表的自监督单目深度估计方法,为Monodepth升级版。其结合双目图像与单目序列自监督方法,含深度预测和位姿变换预测网络,引入多种优化策略获当时SOTA。本文介绍其复现过程,用KITTI数据集,经640x192训练及1024x320微调,abs_rel达0.104,还含数据集、代码结构等信息。

monodepth2-基于自监督学习的单目深度估计模型 - 游乐网

1. 简介

Monodepth2是通过自监督学习进行单目深度估计的一种方法,发表于ICCV2019,是发表于CVPR2017的Monodepth的升级版。Monodepth基于标定过的双目图像,通过预测中间变量disparity(视差)来对一侧图像进行变换重构另一侧图像,并以重构损失进行训练,有关Monodepth的复现可以参考我的另一个项目。

Monodepth2-基于自监督学习的单目深度估计模型 - 游乐网

Monodepth2在此基础上加入了比较流行的单目序列自监督方法,即通过预测单目相邻帧之间的位姿变换与深度图来重构相邻帧。Monodepth2将两种训练方式统一到了基于一个位姿变换的框架下,上图为其的框架结构及针对部分问题的改进。框架中包含两个网络,一个是深度预测网络,给定一张图片,预测深度图,这个也是我们最后想得到的网络;另一个是位姿变换预测网络,给定一对图片,预测两者之间的位姿变换,一般给定的是相邻的前后两帧,此网络用于辅助训练;训练时选取左相机某一帧作为基准,计算深度图,其前后两帧及右相机同帧图像进行作为参考,计算位姿变换(右相机位姿变换为常数,不需要进行预测),利用预测得到的深度图将基准图像变换为点云、进行位姿变换、再重投影得到重构图像计算重构损失。

除此之外,Monodepth2引入了一些新trick来提升性能:

使用resnet预训练模型,极为显著地提升性能。对于每个像素点,计算由不同视角进行重构所产生误差的最小值作为loss,使得loss对于受遮挡的物体更加鲁棒。将不同尺度的视差图resize到原始尺寸对原图进行,显著降低了深度图中不合理的纹理特性。自动mask掉会动的物体,使得收到监督的像素都满足静态场景的假设。

综合这些trick,Monodepth2得到了当时自监督深度估计的SOTA效果,但仍然与监督方法有着一定差距。

以下为本项目模型在KITTI测试图像上的预测结果:

Monodepth2-基于自监督学习的单目深度估计模型 - 游乐网

Monodepth2-基于自监督学习的单目深度估计模型 - 游乐网

论文: Digging Into Self-Supervised Monocular Depth Estimation

参考repo: monodepth2

2. 数据集

KITTI是一个自动驾驶领域常用的数据集,其由配置了传感器的汽车于德国卡尔斯鲁厄采集,数据中包含了双目彩色图像、深度图像、雷达点云等传感数据,并提供目标检测、实例分割等常见CV任务的标签。本项目使用AI Studio上的KITTI压缩数据集,全部数据可从此处下载。在训练过程中只需要双目图像,所以只解压jpg_images.tar.*即可。

KITTI数据集存在两种划分,一种是最新标准划分,称为KITTI划分,另一种是Eigen et. al.提出的Eigen划分方式。领域内更常用Eigen划分进行评估。由于在评估时需要点云数据来计算深度图的groundtruth,解压全部点云数据集占用硬盘空间过大,我们对Eigen划分的测试集进行了单独的打包,可在此处下载。

3. 复现精度

首先训练输入分辨率为640x192的模型:加载resnet18预训练模型,batch size 12,epoch 20,优化器Adam,初始学习率1e-4,15个epoch后减小为1e-5。原文和仓库并没有提供最优模型的选择方法,我们保存验证集loss最低的模型为最优模型。此时得到的最优模型abs_rel为0.109,未达到验收精度。

之后将以640x192为输入分辨率的最优模型在1024x320的输入分辨率上进行finetune,batch size 4,epoch 2,优化器Adam,学习率5e-5。得到的模型abs_rel为0.104,达到验收标准。

注意:为了固定数据增强的随机性,项目中使用setup_seed对Dataloader中的所有worker进行了初始化,这就导致了结果是和worker的数量相关的,想要完全复现项目中的结果,第一部分训练的num_workers=16,第二部分训练的num_workers=4。

训练日志链接:640x192 train log, 1024x320 finetune log, 640x192 test log, 1024x320 test log

权重文件链接:pytorch resent18 pretrained weight, our best 640x192 weights, our best 1024x320 weights

4. 快速开始

Step 1:准备数据

In [1]
!cat ~/data/data15348/jpg_images.tar.* | tar -x -C ~/data/!rm ~/data/data15348/jpg_images.tar.*
登录后复制In [2]
!tar -xzf ~/data/data124009/eigen_test.tgz -C ~/data
登录后复制

Step 2:配置环境

In [3]
%cd /home/aistudio/work/monodepth2-paddle!pip install -r requirements.txt
登录后复制

Step 3:训练

In [ ]
    # train the model at resolution of 640 x 192    !python train.py --model_name mono+stereo_model_640x192 --frame_ids 0 -1 1 --use_stereo --data_path ~/data/kitti         --log_dir logs --num_workers 4 --weights_init weights/resnet18-pytorch
登录后复制In [7]
# finetune the best 640 x 192 model at resolution of 1024 x 320!python train.py --model_name mono+stereo_model_1024x320 --frame_ids 0 -1 1 --use_stereo --data_path ~/data/kitti     --height 320 --width 1024  --load_weights_folder weights/best_640x192/     --log_dir logs --num_workers 4 --batch_size 4 --num_epochs 2 --learning_rate 5e-5
登录后复制In [11]
!python evaluate_depth.py --load_weights_folder weights/best_1024x320/ --eval_stereo --data_path ~/data/eigen --num_workers 4
登录后复制In [ ]
!python demo.py --image_path assets/test_image.jpg --load_weights_folder weights/best_1024x320/
登录后复制

5. 代码结构

├── assets # demo图像├── datasets # 数据集定义├── logs # 日志文件夹├── network # 网络定义├── splits # 数据集数据划分文件├── weights # 存放权重文件├── LICENSE├── README.md├── demo.py # 单张图像深度估计脚本├── evalute_depth.py # 测试脚本├── export_gt_depth.py # 计算groundtruth├── kitti_utils.py # 与KITTI数据集相关的功能函数├── layers.py # 基础模块定义├── options.py # 超参数定义├── trainer.py # 训练方式定义├── train.py # 训练入口脚本├── requirements.txt # 依赖包└── utils.py # 功能函数
登录后复制

6. 复现心得

paddle.grid_sample的反向传播存在Bug,当grid.stop_gradient=False时,x.stop_gradient必须为False,否则会报错,已提交PaddlePaddle issue。Paddle Hub中的Resnet预训练参数与PyTorch Hub的不同,使用Paddle的预训练参数在640x192上训练最好只能达到0.113,加载PyTorch的预训练模型可达到0.109。
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

TIOBE 指数 2025 年 10 月排行榜公布:C、C++ 和 Java 互争榜二,Python 稳如泰山
科技
TIOBE 指数 2025 年 10 月排行榜公布:C、C++ 和 Java 互争榜二,Python 稳如泰山

10 月 7 日消息,TIOBE 编程社区指数是一个衡量编程语言受欢迎程度的指标,评判的依据来自世界范围内的工程师、课程、供应商及搜索引擎,目前 TIOBE 正式公布了 2025 年 10 月的编

热心网友
10.08
2024最新编程语言排行:Python稳居第一,C语言升至第二
科技
2024最新编程语言排行:Python稳居第一,C语言升至第二

10月7日消息,近日,TIOBE正式公布了最新的编程语言排行榜,Python依旧蝉联榜首。据悉,TIOBE编程社区指数是一个衡量编程语言受欢迎程度的指标,评判的依据来自世界范围内的工程师、课程、供应

热心网友
10.07
加密货币量化交易:AI自动炒币,躺赚?
web3.0
加密货币量化交易:AI自动炒币,躺赚?

量化交易核心在于用电脑执行预设的数学模型进行投资决策。量化交易通过数学模型分析市场规律,由电脑自动交易,降低情绪影响,实现套利或做市。目前量化交易工具多样,包括交易所自带工具、独立量化交易工具等,用户应根据自身需求和技术能力选择合适的量化交易工具,量化交易具有一定风险,需要注意。

热心网友
09.25
PyTorch 2.0常见Bug解析:这4种代码错误你遇到过吗?
科技
PyTorch 2.0常见Bug解析:这4种代码错误你遇到过吗?

保持forward​方法的纯净性,确保所有操作基于张量计算。避免使用 item()方法和Python端的条件分支逻辑。根据需要启用动态形状支持功能。构建单一的大型计算图是后端优化系统实现最佳性能的关

热心网友
09.05
微软发布mssql-python驱动,性能较pyodbc提升16.5倍
科技
微软发布mssql-python驱动,性能较pyodbc提升16.5倍

8 月 13 日消息,科技媒体 NeoWin 昨日(8 月 12 日)发布博文,报道称微软正式发布自家 SQL Server Python 驱动 mssql-python,并声称其在性能、内存安全

热心网友
09.01

最新APP

三国谋定天下正
三国谋定天下正
棋牌策略 10-18
最强祖师手游
最强祖师手游
角色扮演 10-18
最强祖师小米
最强祖师小米
角色扮演 10-18
最强祖师华为渠道服
最强祖师华为渠道服
角色扮演 10-18
最强祖师九游
最强祖师九游
角色扮演 10-18

热门推荐

Win10停服倒计时!Linux版2天揽10万用户,替代方案全解析
电脑教程
Win10停服倒计时!Linux版2天揽10万用户,替代方案全解析

10月18日消息,尽管有很多反对声,但微软还是在14日毫不留情地终结了Win10系统支持,全球有大约4亿台PC面临何去何从的问题。现有的Win10用户要么接受潜在病毒风险继续用下去,要么升级Win1

热心网友
10.18
吉利星愿6.58万起上市,重塑A0级新能源标杆
科技
吉利星愿6.58万起上市,重塑A0级新能源标杆

上市一年累计销量突破40万辆,今年9月单月销量超过5万辆,若说A0级新能源小车正逐步走入主流视野,那么吉利星愿无疑已成为这一细分市场中的现象级产品。近期,吉利星愿迎来新一轮升级,共推出6款新版本车型

热心网友
10.18
红魔×鸣潮联名新机1月登场:2026年震撼发布
科技
红魔×鸣潮联名新机1月登场:2026年震撼发布

感谢热心网友風見暉一、肖战割割提供的线索。2025年10月17日,红魔游戏手机正式宣布将再度携手鸣潮推出联名产品,此次合作主题为“鸣潮 X 红魔”,新品预计于2026年1月与公众见面,值得期待。此前

热心网友
10.18
特斯拉Model Y长续航版25年交付 享3年免息与万元补贴
科技
特斯拉Model Y长续航版25年交付 享3年免息与万元补贴

特斯拉于今日宣布,Model Y L车型的预计交付时间已更新至2025年12月,即日起下订有望在年底前完成提车。在10月31日(含)前通过引荐奖励活动下单的用户,可获得8000元车漆选装礼金。同时,

热心网友
10.18
币圈最靠谱的交易所下载推荐(2025最新榜单)
web3.0
币圈最靠谱的交易所下载推荐(2025最新榜单)

2025年最值得信赖的加密货币交易所包括欧易OKX、币安Binance、芝麻开门gate io等,这些平台在安全性、交易功能和用户体验方面表现突出,均采用多重安全技术保障资产安全,提供多样化的交易产品与服务,满足新手至专业投资者的需求。

热心网友
10.18