论文作者提供的源码 https://github.com/VLOGroup
摘要:
本文提出一种用于立体评估的混合模型:卷积神经网络(CNNs)+条件随机场(CRFs)。CNNs用于计算特征,然后这些特征用来计算CRF的一元和二元代价。本文在推理过程中使用了高度平行双块下降算法(highly parallel dual block descent algorithm)来计算高质量的近似最小值。尽管只使用了浅层CNNs,且CRF的最终输出没有使用任何后处理,但是模型效果依然很好。
1. 介绍
立体匹配传统方法已经通过使用全局优化技术得到改进,但这些方法依赖于手工设计的匹配代价。即使是后来的深度CNN模型,也需依赖各种后处理来产生最终的精确输出。
本文结合了CNNs和一个用于立体评估的离散优化模型,这就允许复杂的局部匹配代价和参数化的几何在全局优化方法中得到结合。首先从一个CRF公式开始,然后用CNN学习的项来替换CRF公式中所有手工设计的项。
本文提出的CNN-CRF模型如图1所示:
图1 CNN-CRF模型结构
卷积神经网络(Unary-CNN):计算两张图像每个像素的特征,然后在一个Correlation layer中进行比较(相关性度量)。计算的matching cost volume成为CRF的unary cost。Pairwise CNN:额外估计对比敏感的pairwise costs,以鼓励或阻止标签跳跃,由边权重参数化。
通过使用所学习到的unary cost和pairwise costs,CRF尝试寻找一个联合解决方案,以在4连接图中优化所有unary 和 pairwise costs 的总和。文章作者故意选择不使用任何后处理,以显示通过后处理获得的大部分性能提升可以通过良好训练的CRF模型得到。
2. 相关工作
Deep Embed、Content-CNN和MC-CNN:都使用siamese网络从两张图像中提取特征,然后通过使用固定的相关性函数(内积)来匹配两个提取的特征。本文模型中的Unary CNN和Correlation和他们一样。以上三个模型通过采样图片块(matching/non-matching)来训练网络,并且使用了一系列后处理步骤,不能和CNN联合训练。本文模型使用整张图像来训练,并且没有使用后处理,使得模型能够完全端到端训练。
3. CNN-CRF 模型
左图(参考图像):,右图:, 像素 的视差由离散标签表示。Unary-CNN提取的稠密图像特征分别为,图1所示模型中的两个Unary-CNN共享参数。对于每个像素,这些提取到的特征接着在所有可能的视差进行相关性比较,以建立一个correlation-volume(一个匹配置信度容器)。置信度表示第一张图像中围绕像素的窗口和第二张图像中围绕像素的窗口的匹配度程度。另外。参考图像 用于评估对比敏感边缘权重,通过使用预先定义的基于梯度的模型或者使用可训练的pairwise CNN。CRF inference融合correlation colume和pairwise weights来优化总的代价。
3.1 Unary CNN
Unary-CNN: 3层或7层,每层100个卷积核,第一层卷积核尺寸为3*3,其他层为2*2。每层卷积层后使用tanh**函数。在使用correlation的块匹配中,tanh比ReLU性能更好。
3.2 Correlation
特征 按如下公式计算:(表示给像素i分配视差k的概率)
(i代表像素,k代表视差)
又
所以,correlation的输出其实就是左右特征向量先进行普通的点积运算,再进行softmax归一化。归一化固定了unary cost的比例,这有助于联合网络的训练。 由于相关函数对于所有的视差是均匀的,因此训练的具有固定数量视差的模型可用于有不同数量视差的测试中。为了与完整的模型进行比较,论文对最佳匹配视差进行了像素级的独立的评估:
3.3 CRF
CRF模型优化所有视差标签的总代价:
是图形中所有节点的集合(也就是所有像素),是所有边的集合(4连接),是标签空间。Unary term 是集合,即匹配代价(也就是说,两个特征向量点积的负值作为匹配代价,因为点积计算的是相关性,相关性越大,代表越匹配。而代价越小代表越匹配,因此两者代表的意思相反)。Pairwise term 实现了如下模型:
(在这里,ij是4连接中的相邻像素;而在语义分割DeepLab的全连接CRF中,ij是每一对像素,即每个像素都要和其他所有像素建立关系)
权重可以被设定为手工定义的对比敏感权重,允许更小的视差跨越强烈的图像梯度(边权重可以通过手工定义固定,即(5)式,也可以通过Pairwise-CNN学习得到[后面会介绍这个网络]):
或者使用学习的Pairwise-CNN模型。
惩罚函数:
代价惩罚代表平滑表面的一个像素的小的视差偏差,惩罚代表视差不连续的大的跳跃(4连接中相邻像素的视差相同时,惩罚为0;视差偏差为1时,惩罚为;其他,惩罚为)。
Inference (3)的直接求解是棘手的,论文使用了基于LP-relaxation的双重 minorize-maximize方法(Dual_MM),这种方法高度并行,运行使用GPU来快速实现。
Dual-MM简介:让表示由所有unary和pairwise项连接(concatenate)的代价向量。将分解为水平链和垂直链,. 包含所有水平边和所有unary terms,包含所有垂直边和zero unary terms. (3)中的最小值有下式限定:
((3)式最小值的下界)
其中λ是对应于约束条件的拉格朗日乘子的向量。D(λ) ≤ (3)对于任何λ成立。Dual_MM算法通过交替地更新同时考虑了所有垂直或水平链的λ来并行处理对该最优化问题的迭代。每个更新单调增加下界(7)。
最终的解决方案:
与(2)式相似,但是是针对参数化的代价。如果inference达到收敛,且(8)式的最小值对于所有唯一,则是能量最小化(3)式的最优解决方案。
3.4 Pairwise CNN
pairwise CNN: 用于评估边权重(也就是把(5)式中固定的边权重变成由学习得到)。3层网络:前两层分别用64个3*3卷积核,tanh**函数,用于提取一些合适的特征;第三层将像素的特征映射到对应与两个边方向的权重 [4连接],使用绝对值函数作为**函数。这确保pairwise costs总是大于0,并且我们的Pairwise-CNN能够自由地缩放输出。实际上,这是可取的,因为它使我们能够自动学习数据保真度和正则化之间的最佳平衡点。这个网络的参数将被表示为。 边权重可以存储为2通道图像(每个方向一个通道)。
图2:学习的 vs 固定的pairwise cost: 使用学习到的Pairwise-CNN(左)和固定边缘函数(右)评估两个相邻像素在水平方向上的pairwise costs的可视化结果。暗像素表示改变标签的低代价,亮像素表示标签开关的高代价。请注意,暗像素如何跟随物体轮廓(可能存在深度不连续性)以及在学习的版本中如何抑制纹理边缘(例如,在地板上)。
4. 训练
为了比较不同组件,训练了三种模型,逐渐增加普适性:
- 1. Pixel-wise Unary-CNN: CRF设置为0,Pairwise-CNN关闭。
- 2. Joint Unary-CNN+CRF: Pairwise-CNN被固定为精确复制对比敏感模型(5),即边权重通过手工定义固定。训练参数:Unary-CNN和全局参数.
- 3. Joint model with trained Unary-CNN and Pairwise-CNN(完整模型): 训练参数:Unary-CNN, Pairwise-CNN和全局参数.
训练时,首先训练简单模型,然后在训练复杂模型时,重复利用先前通过训练得到的参数,而其他新的参数则随机初始化。
5. 实验
以下实验结果中,CNNx代表上面的1,CNNx+CRF+Joint代表上面的2,CNNx+CRF+Joint+PW代表上面的3。
Benchmark datasets: KITTI 2105(160+40), Middlebury V3(122+31)
5.1 单独组件的性能
5.2 联合训练的好处
与[28]Content-CNN,[55]MC-CNN比较,没有后处理。
5.3 性能测试
Middlebury:本章说通过亚像素精细化可以排除大部分这种错误。
KITTI:大部分错误预测出现在遮挡区域
6. 总结
本文提出了一个可完整训练的立体混合CNN + CRF模型,并介绍了联合训练过程。本文没有使用任何后处理。模型在显着减少参数的数量的同时,仍能实现具有竞争力的性能。
展望:在模型中引入额外的遮挡标签,以进一步提高遮挡区域的性能。此外,研究一个连续的标签空间以改善模型在倾斜表面上的性能。