论文地址:https://arxiv.org/abs/1912.06704 源码地址:https://github.com/gengshan-y/high-res-stereo
背景
??针对许多SOTA的方法因为显存或运行速度的限制而难以处理高分辨率图像的立体匹配问题,本文提出一个由端对端训练的结构,由粗到细逐层进行立体匹配;
模型结构
分层立体匹配架构
U-Net特征提取
??使用UNet结构构建特征金字塔:在encoder最后一层使用(空间金字塔池化)PPS层对特征进行融合,增大像素的感受野;然后进行上采样得到各个level的特征图;
代价体构建
??对于每个level的图像特征,在水平方向扫描,基于特征的绝对值差构建匹配代价体;
代价体decoder
??得到多个尺度的代价体后,使用代价体decoder将代价体由低分辨率恢复到高分辨率,并与上一层的代价体融合:
- 对维度为
(
C
,
D
,
H
,
W
)
(C,D,H,W)
(C,D,H,W) 的代价体使用6个Conv3d Block处理(代价聚合),得到聚合后的代价体。
- 对聚合后的代价体使用 SSP 模块进行处理,融合局部与全局代价信息;
- 对处理后的代价体使用不同的3D卷积处理,一边得到更大尺寸的代价体(为了与上一层的代价体进行融合),一边得到一个低分辨率的视差体,经过softmax后得到该level的概率体,再基于期望形式求得该level的视差图;
多尺度损失函数
??使用
L
1
L_1
L1?损失,在多个尺度上求损失:
L
=
L
1
+
1
2
2
L
2
+
1
2
4
L
3
+
1
2
6
L
4
(1)
L=L_{1}+\frac{1}{2^{2}} L_{2}+\frac{1}{2^{4}} L_{3}+\frac{1}{2^{6}} L_{4}\tag1
L=L1?+221?L2?+241?L3?+261?L4?(1)
非对称数据增强
??大多数立体匹配模型都基于以下的假设:左右视图的成像条件相同;相机标定结果很准确;不存在遮挡区域且每个点都能找到一个最佳的匹配点;然而在实际环境中,这样的假设可能不成立,为此需要进行一些数据增强操作,提高模型的鲁棒性;
y轴视差增强
??对于立体匹配任务,很多模型的输入为经过极线校正后的图像,由于相机参数的准确度的限制,极线校正后的图像存在一定的误差(同名点不一定处于同一个水平线)。分层多尺度匹配可以缓解这个问题,为了模拟真实世界的标定误差,根据标定误差矩阵对目标视图图像进行变形,以此强迫模型对这种误差的鲁棒性;
不对称颜色增强
??立体相机在成像时,两个视图之间的光照条件和相机的曝光参数不一定一致,因此对左右视图分别进行不同的颜色增强,迫使模型提高对光照不一致的鲁棒性;
不对称掩码
??多数立体匹配算法假设同名点总是在目标视图中存在(不存在遮挡区域),这种假设是不合理的。为了迫使模型去学习更多的上下文信息,本文应用了非对称掩蔽,使用整个图像的平均RGB值随机替换目标视图中的矩形区域。
实验结果
|