Advertisement

《Stereo Matching by Training a Convolutional Neural Network to Compare Image Patches》论文阅读之MC-CNN

阅读量:

通过训练卷积神经网络比较图像块的立体匹配

项目的Homepage:https://github.com/jzbontar/mc-cnn
利用patch提取和比较的方法分析它们之间的相似性,并由此获得一个matching cost值;随后将被正确匹配的patch归类为阳性样本(positive samples),其余则作为阴性样本(negative samples)。
后处理阶段包含以下步骤:基于交叉比对的成本聚合(cross-based cost aggregation)、半全局匹配(semiglobal matching)、左-右一致性校验(left-right consistency check)、细节增强(advancing detail)以及应用中位数滤波器(median filter)和双边滤波器(bilateral filter)。
该模型包含了两个版本:fast版本和准确版本。

LeCun经典论文

摘要

我们开发了一种基于矫正图像对比学习深度信息提取的新方法。该方法主要关注于立体视觉算法中的基础特征匹配阶段。为了有效计算小块区域间的相似性度量问题,本研究采用了卷积神经网络作为核心工具。通过有代表性的正负样本对构建二元分类训练集,并结合监督学习策略进行模型优化训练。针对不同应用场景需求,在网络架构选择上尝试了两类方案:一类侧重计算效率优化,另一类则注重预测精度提升。将得到的目标层输出作为初始匹配代价矩阵的基础,随后依次实施交叉代价聚合、半全局匹配、左右一致性校验等后处理流程,最终完成深度估计任务。实验采用KITTI 2012、KITTI 2015以及Middlebury等标准数据集进行测试,并验证了该方法在多个基准测试集上的优异性能

1.介绍

针对这个问题:给定由不同水平位置的相机拍摄的两个图像。我们致力于计算左图中每个像素点处的目标位移量d。位移量即指同一物体在两幅图中水平坐标的位置变化程度——假设某一目标点于左图中位于坐标点(x, y),则其对应右图中的空间坐标应为(x−d, y)。若已知某一目标点对应的位移量,则可以通过下述公式推导出其深度值z:其中(x,y)代表左图中某一点的空间坐标

图像1展示了来自左侧和右侧相机的一对图像。这两个输入图像的主要差异在于物体在水平方向上的位置变化(其余差异由反射、遮挡以及透视失真引起)。观察到靠近相机的目标相对于远离相机的目标具有更大的视差。右图显示了一个密集视差图,在颜色上较暖的地方表示较大的视差值(对应于较近的距离)。

在本研究中

在多个领域中都具有重要意义的立体匹配问题,在自动驾驶技术、机器人技术、中间视图生成以及3D场景重建等多个应用领域中都得到了广泛研究。 基于Scharstein和Szeliski(2002)的研究发现,在典型的视觉算法中通常分为四个主要步骤:计算匹配代价的过程、计算代价聚合阶段、优化阶段以及视差精化阶段。 我们认为前两个阶段主要是用于计算匹配代价的过程,并将其归类为立体匹配的相关方法;而后续两个阶段则被视为立体视觉算法的重要组成部分。 我们的重点在于如何精确地完成这一关键环节——即如何高效地进行匹配代价计算

我们推荐一种基于图像块配对训练卷积神经网络(LeCun等研究者提出的方法,在1998年首次实现)。该方法中视差信息是可获取的(如通过激光雷达或结构光测量所得)。初始化阶段利用网络输出来计算匹配成本函数。为了提升结果质量还需执行一些常规但必要的后续处理步骤。匹配成本函数是由具有相似图像强度特征的邻近像素通过基于交叉相乘的方式动态构建而成。为了保证平滑性约束我们采用半全局匹配方法,并结合左右一致性检验来检测并消除阴影区域中的误差。最后经过亚像素级增强以及中值滤波与双边滤波相结合处理生成最终视差图

本文的贡献是:

基于卷积神经网络的为计算立体匹配代价的两种架构的描述;

该方法并伴有其源代码,在KITTI 2012、KITTI 2015以及Middlebury立体视觉数据集中表现出极高的准确性。

该实验对数据集大小的影响进行了详细分析,并与现有方法在分类错误率指标上进行了比较;同时探讨了不同超参数配置情况下模型性能(包括精确度和运行时间)之间的权衡关系。

本文基于前人研究(Zbontar和LeCun, 2015年),扩展了原有工作内容。具体而言,在方法论上提出了一个详细的新的架构框架,并对两个全新数据集进行了深入分析;在实验结果上显著减少了分类误差率,并进行了更为全面和深入的实验验证。

2.相关工作

在引入具有代表性的大型立体数据集如KITTI和Middlebury之前,在这一节中

Kong and Tao (2004) 基于平方距离之和计算初始匹配成本。随后开发了一个系统来估算三种视差情况的概率分布:即视差正确、由于目标过大导致视差错误以及由其他因素引起的视差错误。所获得的概率值则用于调整初始匹配成本。在随后的研究中(具体时间点待补充),Kong and Tao 将研究拓展至由不同尺寸窗口及中心互相关分析所得的结果组合应用中。Peris等人(2012)则采用了AD- Census 方法(参考Mei等人的研究结果),并利用多分类线性判别分析建立了从计算出的匹配成本到最终视差估计的映射关系

标签数据也被用来确定概率图形模型的相关参数。Zhang 和 Seitz (2007) 采用了另一种替代优化算法以估计马尔可夫随机场超参数的最佳值。Scharstein 和 Pal (2007) 构建了一个新的包含 30 对立体对的新数据集,并利用该数据集来确定条件随机场的相关参数。Li 和 Huttenlocher (2014) 开发出了一种带非线性代价函数的新条件随机场模型,并利用结构化支持向量机来确定其相关参数

最近的研究工作主要关注于评估计算过程中的配对成本可信程度的问题(Haeusler等研究团队, 2013; Spyropoulos等研究团队, 2014)。其中,Haeusler等研究团队(2013)采用了随机森林分类器这一工具,结合了多种用于衡量可信程度的方法进行集成学习。类似地,Spyropoulos等研究团队(2014)开发出了一个基于随机森林分类器的新方法,用于预测配对成本可信程度,并将该预测结果作为马尔科夫随机场中的一种软性约束条件应用进去,从而有效降低了立体视觉算法带来的误差影响。

一种计算匹配代价的相关问题是获得局部图像描述符(Brown等人提出了一种总体框架并采用鲍威尔优化法选择超参数;Trzcinski等人则提出了基于凸优化的方法;Revaud等人采用分层移动象限相似性策略;Paulin等人分别从卷积内核网络和卷积神经网络角度展开研究)。这两个问题共同面临的一个关键问题是测量图像块之间的相似性。其中,Brown等人通过构建图像描述符框架并结合鲍威尔优化法实现了良好的超参数选择;Trzcinski等人则提出了基于凸优化的方法以提升描述符生成效率;Revaud等人采用分层移动象限相似性策略以提高描述符匹配精度;Paulin等人分别从卷积内核网络和卷积神经网络角度展开研究并取得了显著成果;Han等人则提出了改进型算法以适应更大尺寸的图像块匹配需求。特别值得一提的是,Zagoruyko和Komodakis的工作与Han等人在这方面有诸多相似之处,但主要区别在于采用了不同的网络架构设计。

3.匹配代价

常用的立体视觉算法会对各个位置上的点p进行处理,并对所有可能的视差d进行比较以确定匹配代价。为了简化计算过程,在实际应用中通常会采用各对应点像素值之差的累加来估算匹配代价。

其中,

是位置p 在左右图像中的图像强度,

是以P为中心的固定的矩形窗口内的位置集合。

我们采用粗体斜体字母pq来表示图像位置。向量视差d由其分量d和零组成。为了便于区分超参数名,请采用typewriter-style font进行书写;例如,在此场景中我们将使用patch size字体来描述相邻区域的位置关系

的大小

等式(1)即表示计算两个基于位置pp-d中心的位置对应的图像块之间的匹配代价。

我们希望当两个图像块围绕相同的3D点时代价小,反之则代价大。

既然有效与无效配对的示例可以从公开可用的数据集构建(例如KITTI和Middlebury立体数据集),我们可以尝试通过监督学习的方法探索并解决这一配对问题。借鉴卷积神经网络在视觉领域取得的成功应用经验,我们利用这种方法评估两个小图像块之间的相似程度。

3.1构造数据集

基于KITTI或Middlebury立体视觉数据集中的地面实况视差图的数据构建二元分类数据集。对于每一个已知真实视差的位置,在该位置处分别提取一个消极训练样本和一个积极训练样本。这一过程保证了所构建的数据集中正样本与负样本数量相等。其中积极训练样本指的是同一3D点对应的一对图像块(其中一个位于左图像中),而消极训练样本则是一对不属于上述情况的不同类别的图像块。以下部分将详细阐述该数据集构建的具体步骤。

表示一堆像素块,

Network architectures

构建两个网络模型 一个是速度优化型 一个是性能优化型 无论哪一个网络作为输入都会接受大小一致的小图像块 并输出这两个小图像块之间计算出的相似度数值 两者的处理流程均会利用特征提取器将单个输入的小图像转换为对应的高维特征向量表示 注意到的是 在计算各小图像之间的相似程度时 并非直接比较原始像素强度值本身而是基于各自生成的高维特征向量进行评估 其中前者仅采用一种固定的计算方式来进行判断 而后者则采用了更为先进的优化策略使得结果更加准确

Fast Architecture

图1 快结构 fast architecture

Fast Structure是一个典型的双塔网络架构。该架构包含两个独立的分支结构(子网络),每个分支均由多个带有Relu激活函数的卷积层串联而成。为了衡量这两个输入分支提取特征的能力差异性程度,在系统设计中采用了余弦 cosine 相似度作为衡量指标。具体而言,在算法实现过程中将余弦相似度计算分为两步:首先进行数据预处理中的正则化操作;然后进行点乘运算以获得最终相似性得分。值得注意的是,在这种设计下,在每个位置上进行正则化处理只需执行一次操作即可完成后续步骤;这大大降低了整个系统在实际应用中的计算开销。此外,在模型训练阶段所采用的是 hinge loss 损失函数(正如前文所述,在模型设计阶段需要将所有图像数据划分为两类:一类为真实存在的图像对(即所谓的"positive"样本),另一类为人工生成或模仿的真实图像对(即所谓的"negative"样本)。在实际训练过程中,损失函数会根据这两类不同的数据对分别进行优化调整以达到最佳分类效果)。其中每一个损失值都是基于同一位置上不同类别之间的对比关系而得出的结果。

其中S^+代表正样本通过网络计算出的相似度,在此过程中S^-则代表负样本通过网络计算出的相似度。设m为一个正常数值,在本系统中通常取值为0.2。据此可知,在以下情况下:当正样本输出结果相对于负样本而言高出m这一阈值时,则该损失函数值将归零;这样的设定在一定程度上是合理的。

准确结构 accurate architecture

这个准确网络与快速网络的主要区别在于其架构设计:它将一个全连接层替代了余弦相似度度量机制。这种改动带来了运行时间上的提升,并使误差率得到显著降低。同样地,在架构设计中还采用了多个带有ReLU激活函数的卷积层来构建子网络:通过将两个经过特征提取的特征向量融合成一个特征向量,并被这些全连接层依次前向传播(这些全连接层带有ReLU激活函数),最终生成一个单一数值输出(通过sigmoid函数得到),该数值可作为输入块间的相似性得分

训练过程中使用的损失函数是二元交叉熵损失(需注意的是,在这里采用的是与快速学习网络不同的损失函数),其数学表达式为

s则表示一个训练样本的输出结果;t则表示该训练样本所属的类别。若该样本为阳性类别,则其对应的t值设为1;反之,则将其归为阴性类别并设为0

那么有人会好奇呀!为何采用两个不同的损失函数呢?主要原因在于经验因素也起到了重要作用吧?实验结果表明交叉熵损失的表现优于hinge损失;然而,在快速结构中由于我们关注的是余弦相似度的计算问题;因此交叉熵损失在这种情况下并不直接适用哦

computing the matching cost

网络的输出是用来初始化matching cost:

PL(P)与PR(p-d)是输入块,此刻,并非计算相似性得分而是匹配成本。

为了全面评估匹配成本Cnn(p,d),需要从各个位置出发,并结合不同的视差进行分析。这种做法不仅费时费力而且效率低下。但通过以下三条优化策略可以有效提升运行效率。

任何位置值必须分别对两个子网络的输出执行一次运算,并避免在每一对视差上进行重复运算。

两个子网络的输出在全分辨率下一次性计算了所有像素值。这样只需执行一次单独的前向传播即可而将图片分割成小块后仅在W×H尺寸上运行一次前向传播的方法相比之下效率远低于每次处理全部像素图像的优势明显。

  1. 在准确度架构中,在实现高效计算时可采用1\times 1大小核的卷积层替代传统的全连接层设计以减少运算量这一策略仍具可行性然而由于视差参数仍需逐一处理从而导致整个网络在处理视差时需重复d次全连接操作这一过程无疑成为该架构的主要性能瓶颈

为了计算图像对之间的匹配成本,在处理每个图像时会依次运行子网络并随后进行d次全连接层处理;视野在设计网络架构时扮演着重要角色。接下来需要选择一种核心结构,在这一过程中两个图像会经过拼接操作;值得注意的是,在整个网络运行过程中特征向量间的点积运算被重复进行了d次。

附:

双目视觉——立体匹配基本理论

双目立体匹配流程详解

立体匹配在英文中被称为Stere Matching或Stereo Correspondence。然而,在维基百科上并未找到对Stere Matching的直接定义;相反地,则介绍了Stere Correspondence,它是3D reconstruction这一领域中的一个重要组成部分。大致上讲,立体匹配算法的目的就是在一对具有场景重叠的图像中寻找对应的点。在此基础上,请先推荐两个与立体匹配算法相关的关键网站:

1. KITTI 立体匹配算法排行榜

[Middleby的立体视觉排行] (http://vision.middlebury.edu/stereo/eval3/)

尽管这两个具有重要性的排行榜第一位置已经被深度学习技术占据了。但对于所有致力于学习或研究立体匹配算法的学生和研究者而言这是一个非常有价值的资源。我们向大家推荐两篇综述性文献以及相关的链接。

Affendi H. R. and I. Haidi conducted a comprehensive literature survey on disparity map algorithms in stereo vision.

该论文对密集双帧立体对应算法进行了系统分类与全面评估,并对其性能表现进行了深入分析与实验验证。

基于这两篇综述文献

参考

1.<>

全部评论 (0)

还没有任何评论哟~