Skip to main content
QUICK REVIEW

[论文解读] Stereo Matching by Training a Convolutional Neural Network to Compare Image Patches

Jure Žbontar, Yann LeCun|arXiv (Cornell University)|Oct 20, 2015
Advanced Vision and Imaging参考文献 32被引用 939
一句话总结

本文提出了一种基于卷积神经网络(CNN)的立体匹配方法,通过学习图像块之间的相似性度量来计算匹配代价。通过在具有已知视差的标注块对上进行训练,该CNN在KITTI 2012、KITTI 2015和Middlebury数据集上均优于先前方法,实现了最先进(SOTA)的精度表现,并凭借快速架构实现了实时性能。

ABSTRACT

We present a method for extracting depth information from a rectified image pair. Our approach focuses on the first stage of many stereo algorithms: the matching cost computation. We approach the problem by learning a similarity measure on small image patches using a convolutional neural network. Training is carried out in a supervised manner by constructing a binary classification data set with examples of similar and dissimilar pairs of patches. We examine two network architectures for this task: one tuned for speed, the other for accuracy. The output of the convolutional neural network is used to initialize the stereo matching cost. A series of post-processing steps follow: cross-based cost aggregation, semiglobal matching, a left-right consistency check, subpixel enhancement, a median filter, and a bilateral filter. We evaluate our method on the KITTI 2012, KITTI 2015, and Middlebury stereo data sets and show that it outperforms other approaches on all three data sets.

研究动机与目标

  • 通过深度学习方法学习图像块之间的鲁棒相似性度量,以提升立体匹配性能。
  • 通过用学习到的基于CNN的方法替代手工设计的度量方式,解决立体匹配中匹配代价计算这一首要阶段的挑战。
  • 开发两种CNN架构:一种针对速度优化,另一种针对精度优化,从而在性能与推理时间之间实现可调和的权衡。
  • 通过迁移学习,在包括KITTI 2012、KITTI 2015和Middlebury在内的多样化立体匹配数据集上展示方法的泛化能力。
  • 提供一个完整的可复现流程,包含训练、推理和后处理步骤的源代码。

提出的方法

  • 使用带有真实视差的监督数据集,通过二元交叉熵损失函数,训练CNN将图像块对分类为相似或不相似。
  • 采用两种架构:一种是层数和滤波器较少的快速网络,用于实时推理;另一种是更深结构且感受野更大的高精度网络。
  • 利用CNN的输出初始化立体匹配代价,该输出计算左右图像中对应块之间的相似性得分。
  • 应用基于交叉的代价聚合方法,利用局部图像强度一致性来平滑代价。
  • 使用半全局匹配(SGM)结合左右一致性检查,以增强平滑性并消除错误视差。
  • 通过亚像素精炼、中值滤波和双边滤波生成最终的稠密视差图。

实验结果

研究问题

  • RQ1与传统的手工设计度量方法(如SSD或NCC)相比,深度CNN能否学习到更优的立体匹配相似性度量?
  • RQ2基于CNN的匹配代价在KITTI和Middlebury等多样化立体匹配数据集上的性能泛化能力如何?
  • RQ3在调整CNN架构超参数时,精度与推理速度之间的权衡关系如何?
  • RQ4训练数据集规模如何影响基于CNN的立体匹配方法的泛化能力与验证误差?
  • RQ5在未进行微调的情况下,能否将一个在某一数据集(如Middlebury)上训练的CNN迁移到另一数据集(如KITTI)上?

主要发现

  • 基于CNN的方法在KITTI 2012、KITTI 2015和Middlebury立体匹配基准上均达到最低误差率,优于所有先前发表的方法。
  • 高精度CNN架构将KITTI 2012上的平均端点误差(AEE)降低至2.97像素,KITTI 2015上降低至3.23像素,最佳配置下分别达到2.60和3.23像素。
  • 快速架构的推理速度相比高精度版本最高提升90倍,同时误差仅增加约0.5像素,展现出强大的实时处理潜力。
  • 迁移学习结果表明,仅在Middlebury上训练的CNN即可良好泛化至KITTI,其验证误差与在KITTI上直接训练的模型相当。
  • 增加网络深度和宽度可提升泛化能力,但超过一定限度后性能因数据限制而下降,表明存在性能饱和效应。
  • 超参数搜索显示,最优性能在128个特征图、5个卷积层、4个全连接层以及特定负样本采样比例(dataset_neg_low=1.5,dataset_neg_high=18)下实现。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。