1. 项目概述
单目深度估计是计算机视觉领域的一项基础性任务,其目标是从单张2D图像中恢复出场景的3D深度信息。这项技术在自动驾驶、机器人导航、增强现实等领域有着广泛的应用前景。传统的深度感知主要依赖激光雷达(LiDAR)等主动传感器,但这些设备价格昂贵且部署受限。相比之下,单目摄像头成本低廉、易于部署,因此基于单目视觉的深度估计方法具有重要的实用价值。
PackNet是CVPR 2020提出的一种创新性的自监督单目深度估计方法。其核心创新在于设计了基于3D卷积的对称式打包(Packing)和解包(Unpacking)模块,能够在不依赖任何深度标签的情况下,仅从无标注的单目视频中学习,达到甚至超越有监督方法的性能。这种方法不仅解决了传统方法中空间信息丢失的问题,还通过引入速度监督解决了单目深度估计中的尺度歧义问题。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心问题与技术挑战
2.1 单目深度估计的本质困难
从单张2D图像恢复3D深度信息本质上是一个病态问题(ill-posed problem),主要面临以下挑战:
- 深度歧义性:单目图像丢失了深度维度的信息,同一个2D投影可能对应无限多个3D场景。
- 尺度歧义性:自监督单目方法只能估计相对深度,无法获得绝对尺度信息。
- 数据获取困难:有监督方法需要精确的深度标签,但高质量标注成本高昂且难以获取。
2.2 现有方法的局限性
2.2.1 有监督方法
有监督深度估计方法虽然性能较好,但存在以下问题:
- 需要昂贵的LiDAR设备采集深度真值
- 需要精确的传感器标定
- 泛化能力受限于训练数据
2.2.2 自监督方法
现有的自监督方法主要集中在损失函数设计上,网络架构仍沿用为分类任务设计的ResNet等结构,存在以下不足:
- 标准的下采样/上采样操作会丢失空间细节信息
- 网络架构没有针对深度估计任务进行专门优化
- 性能提升主要依赖损失函数改进,架构创新不足
3. PackNet技术方案详解
3.1 整体框架设计
PackNet采用自监督学习框架,包含两个核心网络:
- 深度网络:从单张图像预测逆深度图
- 位姿网络:估计相邻帧之间的6-DoF相机运动
训练流程如下:
- 目标图像通过深度网络预测深度图
- 源图像通过位姿网络预测相对位姿
- 基于预测的深度和位姿进行视图合成
- 计算合成图像与目标图像之间的光度损失
3.2 自监督目标函数
PackNet采用复合损失函数进行训练:
L(It,I^t)=Lp(It,IS)⊙Mp⊙Mt+λ1Ls(D^t)
其中:
- Lp:外观匹配损失(光度损失)
- Ls:深度平滑损失
- Mt:有效映射掩码
- Mp:静态像素掩码
- λ1:平衡系数
3.2.1 外观匹配损失
结合SSIM和L1损失:
Lp(It,I^t)=α(1-SSIM(It,I^t))/2+(1-α)∥It-I^t∥
