【立体匹配】双目深度估计 论文综述及数据集汇总 Deep Stereo Matching paper review and datasets

本文综述了双目深度估计领域的最新研究进展,包括多种立体匹配算法及数据集,并介绍了相关模型如StereoNet、SingleView Stereo Matching等。还探讨了双目立体视觉的基本流程和技术难点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找论文搭配 Sci-Hub 食用更佳 💪
Sci-Hub 实时更新 : https://tool.yovisun.com/scihub/
公益科研通文献求助:https://www.ablesci.com/👍

paper list // CV方向数据集汇总 👀
立体匹配算法排行榜:KITTI 立体匹配算法排行榜,Middlebury 立体匹配算法排行榜.

计算机视觉中利用两个相机从两个视点对同一个目标场景获取两个视点图像,再计算两个视点图像中同点的视差获得目标场景的3D深度信息。典型的双目立体视觉计算过程包含下面5个步骤:双目相机标定、图像畸变矫正、立体图像对校正、左右图像匹配和三角法重投影视差图计算。其难点在于光照信息和视差估计及标定

相机通过目标物体表面的反射光将空间三维物体转化为平面二维图像,而双目立体视觉是相机成像的逆过程,即以两台相机模拟人眼,通过计算两幅图像对应点间的位置差异并基于视差原理得到物体的三维几何信息,实现三维重建及还原。
在这里插入图片描述
求解相机光心位置到二维成像平面和真实三维空间的转换关系(参数矩阵)的过程被称为相机标定,因此,相机标定的准确性对三维重建精度有很大影响。目前常见的相机标定的方法有:摄影测量学的传统标定方法,精度高计算复杂;直接线性变换法,忽略畸变,计算简化,精度低;Tsai两步法;基于 Kruppa方程的自标定方法;张正友标定法

双目立体视觉所使用的特征点是人工放置的具有特定形状的标志点,而圆形标志点因为在摄影变换下能够保持椭圆形状不变,方便提取和识别而被广泛使用。由于传感器采集到的图像信息中都存在噪声,所以在特征点提取前要对图像进行预处理,通常采取图像滤波方法来降低噪声。由于三维重建需要还原待测物体的深度信息,因此一般采用基于灰度变化的提取算法,基于某一点的灰度值与周围不同的思想进行比较和提取。

双目立体视觉中最为关键的技术是图像的匹配。左右相机由于所处空间位置的不同,拍摄得到的图像在成像平面上会存在水平和深度视差,从而导致两幅图像存在差异。通过左右图像中相同点的准确匹配,这种差异可以被消除。

三维重建可以看作物体通过相机成像的逆过程,和人们用双眼观察三维空间中的物体是相似的。三维重建的原理是基于之前的图像获取、相机标定、特征提取和立体匹配等工作,获得相机的内外参数以及图像特征点的对应关系,最终利用视差原理和三角测量原理得到三维坐标,恢复被测物体的深度信息,实现三维重建。

Paper

0. End-to-End Learning of Geometry and Context for Deep Stereo Regression

在这里插入图片描述

1. StereoNet: Guided Hierarchical Refinement for Real-Time Edge-Aware Depth Prediction

arxiv.org/pdf/1807.08865.pdf
复现代码:meteorshowers/StereoNet
在这里插入图片描述

2. Single View Stereo Matching

https://arxiv.org/pdf/1803.02612.pdf
https://github.com/lawy623/SVS

单视图双目匹配模型(Single View Stereo Matching, SVS)把单目深度估计分解为两个子过程—视图合成过程和双目匹配过程。
在这里插入图片描述
模型的视图合成过程由视图合成网络完成,输入左图,网络合成该图像对应的右图;双目匹配过程由双目匹配网络完成,输入左图以及合成的右图,预测出左图每一个像素的视差值。
在这里插入图片描述
视图合成网络: 首先把左图平移多个不同像素距离,得到多张不同的图片,再使用神经网络预测组合系数,把多张平移后的左图和预测的系数组合得到预测的右图。具体就是视图合成网络基于Deep3D (ECCV2016)模型,通过输入一张左图,主干网络对其提取不同尺度的特征,再经过上采样层把不同尺度的特征统一至同一个尺寸,然后经过累加操作融合成输出特征并预测出概率视差图,最后经过选择模块(selection module)结合概率视差图以及输入的左图,得到预测的右图。

双目匹配网络: 双目匹配需要把左图像素和右图中其对应像素进行匹配,再由匹配的像素差算出左图像素对应的深度,而之前的单目深度估计方法均不能显式引入类似的几何约束。由于深度学习模型的引入,双目匹配算法的性能近年来得到了极大的提升。本文的双目匹配网络基于DispNet(CVPR2016)模型, 该模型在KITTI双目匹配数据集上能够达到理想的精度,左图以及合成的右图经过几个卷积层之后,得到的特征会经过1D相关操作(correlation)。相关操作被证明在双目匹配深度学习算法中起关键性的作用,基于相关操作,本文方法显式地引入几何约束;其得到的特征图和左图提取到的特征图进行拼接作为编-解码网络的输入,并最终预测视差图。

3. Zoom and Learn: Generalizing Deep Stereo Matching to Novel Domains

https://arxiv.org/pdf/1803.06641

4. Self-Supervised Learning for Stereo Matching with Self-Improving Ability

5. Unsupervised Learning of Stereo Matching

6. Pyramid Stereo Matching Network

7. Learning for Disparity Estimation through Feature Constancy

8. SegStereo: Exploiting Semantic Information for Disparity

9. DispSegNet: Leveraging Semantics for End-to-End Learning of Disparity Estimation from Stereo Imagery

  1. Hierarchical Discrete Distribution Decomposition for Match Density Estimation
    在这里插入图片描述

  2. https://paperswithcode.com/paper/srh-net-stacked-recurrent-hourglass-network test.py

  3. https://paperswithcode.com/paper/generalized-closed-form-formulae-for-feature C++

  4. https://paperswithcode.com/paper/plantstereo-a-stereo-matching-benchmark-for 985??

  5. https://paperswithcode.com/paper/rational-polynomial-camera-model-warping-for 武大遥感

  6. https://paperswithcode.com/paper/resdepth-a-deep-prior-for-3d-reconstruction 遥感3D重建

  7. https://paperswithcode.com/task/stereo-matching-1/latest

  8. https://paperswithcode.com/paper/global-local-path-networks-for-monocular ing

  9. https://github.com/ArminMasoumian/GCN Depth/blob/main/mono/apis/trainer.py

  10. https://github.com/hyBlue/FSRE-Depth

  11. https://github.com/YvanYin/DiverseDepth soon

  12. https://github.com/iro-cp/FCRN-DepthPrediction

双目:

  1. CFNet: Cascade and Fused Cost Volume for Robust Stereo Matching https://github.com/gallenszl/CFNet Pretrained
  2. ESNet: An Efficient Stereo Matching Network https://github.com/macrohuang1993/ESNet
  3. Hierarchical Neural Architecture Searchfor Deep Stereo Matching [NeurIPS 20] https://github.com/XuelianCheng/LEAStereo
  4. YOLOStereo3D: A Step Back to 2D for Efficient Stereo 3D Detection https://github.com/Owen-Liuyuxuan/visualDet3D
  5. Domain-invariant Stereo Matching Networks https://github.com/feihuzhang/DSMNet
  6. Cascade Cost Volume for High-Resolution Multi-View Stereo and Stereo Matching https://github.com/alibaba/cascade-stereo/tree/master/CasStereoNet
  7. FADNet: A Fast and Accurate Network for Disparity Estimation https://github.com/HKBU-HPML/FADNet released the pre-trained Scene Flow model.
  8. AANet: Adaptive Aggregation Network for Efficient Stereo Matching, CVPR 2020 https://github.com/haofeixu/aanet
  9. RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching https://github.com/princeton-vl/raft-stereo pretrained
  10. MobileStereoNet: Towards Lightweight Deep Networks for Stereo Matching https://github.com/cogsys-tuebingen/mobilestereonet pretrained
  11. Correlate-and-Excite: Real-Time Stereo Matching via Guided Cost Volume Excitation https://github.com/antabangun/coex
  12. Pyramid Stereo Matching Network https://github.com/JiaRenChang/PSMNet pretrained
  13. Anytime Stereo Image Depth Estimation on Mobile Devices https://github.com/mileyan/AnyNet pretrained
  14. StereoNet: Guided Hierarchical Refinement for Real-Time Edge-Aware Depth Prediction https://github.com/andrewlstewart/StereoNet_PyTorch

单目:

  1. M4Depth: A motion-based approach for monocular depth estimation on video sequences https://github.com/michael-fonder/M4Depth pretrained
  2. Towards Interpretable Deep Networks for Monocular Depth Estimation https://github.com/youzunzhi/interpretablemde pretrained
  3. StructDepth: Leveraging the structural regularities for self-supervised indoor depth estimation https://github.com/sjtu-visys/structdepth pretrained
  4. Photon-Starved Scene Inference using Single Photon Cameras https://github.com/bhavyagoyal/spclowlight/tree/master/monodepth
  5. Single Image Depth Prediction with Wavelet Decomposition https://github.com/nianticlabs/wavelet-monodepth/tree/main/KITTI pretrained
  6. Boosting Monocular Depth Estimation Models to High-Resolution via Content-Adaptive Multi-Resolution Merging https://github.com/compphoto/BoostingMonocularDepth
  7. GCNDepth: Self-supervised Monocular Depth Estimation based on Graph Convolutional Network https://github.com/arminmasoumian/gcndepth
  8. From Big to Small: Multi-Scale Local Planar Guidance for Monocular Depth Estimation https://github.com/cleinc/bts
  9. High Quality Monocular Depth Estimation via Transfer Learning https://github.com/ialhashim/DenseDepth
  10. DORN: Deep Ordinal Regression Network for Monocular Depth Estimation https://github.com/hufu6371/DORN caffe pretrained
  11. Channel-Wise Attention-Based Network for Self-Supervised Monocular Depth Estimation https://github.com/kamiLight/CADepth-master pretrained
  12. Self-Supervised Monocular Depth Estimation with Internal Feature Fusion(arXiv) https://github.com/brandleyzhou/DIFFNet pretrained

Dataset

1.KITTI

A. Geiger, P. Lenz, and R. Urtasun. Are we ready for autonomous driving? the kitti vision benchmark suite. In CVPR, 2012. 2, 4. https://gas.graviti.cn/dataset/hello-dataset/KITTIStereo2015/download http://www.cvlibs.net/datasets/kitti/

2. Flyingthings3D

https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html

ReDWeb V1 datase https://sites.google.com/site/redwebcvpr18/

3. InStereo2K

https://gitcode.net/mirrors/YuhuaXu/StereoDataset?utm_source=csdn_github_accelerator

4. https://www.eth3d.net/overview

eth3d
在这里插入图片描述

5. http://vision.middlebury.edu/stereo/

middlebury 三种大小的分辨率
在这里插入图片描述

### 如何下载和使用 DIV2K 数据集进行超分辨率处理 #### 数据集概述 DIV2K 数据集是一个广泛应用于图像超分辨率研究的高质量数据集[^1]。它由 1000 张高分辨率图像组成,其中 800 张用于训练(`DIV2K_train_HR`),100 张用于验证(`DIV2K_valid_HR`)。为了实现超分辨率任务,通常需要将这些高分辨率图像转换为对应的低分辨率版本。 --- #### 下载步骤 可以通过官方或其他可信渠道获取 DIV2K 数据集。以下是具体的操作指南: 1. **访问官方网站或共享链接** 官方网站提供了详细的下载指引,或者可以直接通过以下链接下载: - [DIV2K 数据集](http://data.vision.ee.ethz.ch/cvl/DIV2K/) 或者其他镜像站点[^4]。 2. **解压文件** 将下载好的压缩包解压至目标路径。解压后应能看到 `DIV2K_train_HR` 和 `DIV2K_valid_HR` 文件夹及其内部的高分辨率图片。 3. **安装依赖工具** 如果计划利用 TensorFlow 工具加载数据集,则需先安装必要的 Python 库: ```bash pip install tensorflow-datasets ``` 4. **加载数据集** 利用 TensorFlow 提供的功能自动加载数据集: ```python import tensorflow_datasets as tfds # 构建并下载 DIV2K 数据集 div2k_builder = tfds.builder("div2k") div2k_builder.download_and_prepare() # 获取训练集与验证集 train_ds, validation_ds = div2k_builder.as_dataset(split=["train", "validation"]) ``` --- #### 数据预处理 在实际应用前,需要对原始高分辨率图像执行降采样操作以生成低分辨率输入图像。这一步骤对于超分辨率模型至关重要[^2]。 1. **定义缩放因子** 假设希望构建 ×2 超分辨率任务,则设置缩放比例为 2。 2. **编写脚本** 使用 OpenCV 或 PIL 等库完成图像尺寸调整: ```python from PIL import Image import os def resize_image(input_path, output_path, scale_factor=2): with Image.open(input_path) as img: w, h = img.size new_size = (w // scale_factor, h // scale_factor) resized_img = img.resize(new_size, resample=Image.BICUBIC) resized_img.save(output_path) input_dir = 'path/to/DIV2K_train_HR' output_dir = 'path/to/train_LR_bicubic/X2' if not os.path.exists(output_dir): os.makedirs(output_dir) for filename in os.listdir(input_dir): if filename.endswith('.png'): input_file = os.path.join(input_dir, filename) output_file = os.path.join(output_dir, filename) resize_image(input_file, output_file, scale_factor=2) ``` 3. **保存结果** 预处理后的低分辨率图像应当存放在独立目录下以便后续调用。 --- #### 模型训练与验证 基于准备完毕的数据集,可以选择经典的超分辨率算法如 SRCNN、ESPCN 进行实验[^3]。 1. **导入必要模块** ```python import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, UpSampling2D ``` 2. **搭建网络架构** 示例代码展示了一个简单的卷积神经网络设计: ```python model = Sequential([ Conv2D(64, kernel_size=(9, 9), activation='relu', padding='same', input_shape=(None, None, 3)), Conv2D(32, kernel_size=(1, 1), activation='relu', padding='same'), Conv2D(3, kernel_size=(5, 5), activation='linear', padding='same') ]) model.compile(optimizer='adam', loss='mse') ``` 3. **启动训练过程** 结合之前创建的高低分辨率配对样本开展迭代优化: ```python history = model.fit(train_lr_images, train_hr_images, epochs=10, batch_size=16, validation_data=(val_lr_images, val_hr_images)) ``` --- #### 注意事项 - 数据量庞大,建议配置充足的磁盘容量以及高效的硬件支持运算效率。 - 若采用自定义方式生成 LR 图片,请务必保持一致性的随机种子设定以免引入偏差。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yddcs

你的鼓励--创作的动力!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值