代码,但是这个代码不完整,DispResNet的代码没有,用的是FlowNet的代码,但这部分代码也不难,可以尝试自己编写。
1. 研究问题
尽管基于学习的视差估计方法已经超越传统方法,但是在不适定区域(例如遮挡、重复纹理、无纹理)仍然难以产生高质量的视差估计。
2. 研究方法
CRL(级联残差学习)是由两个阶段的具有沙漏结构的 CNN 级联而成。第一阶段 DispFulNet 在 DispNet 的基础上增加一个额外的上卷积模块来产生细粒度的全分辨率视差图。第二阶段 DispResNet 与第一阶段耦合并生成多个尺度的残差信号进行视差细化。
2.1 Two-stage Disparity Computation
2.2 Mutiscale Residual Learning
3. 实验结果
先训练第一阶段,然后训练第二阶段,最后合并起来微调。
- 数据集:
- FlyinigThings3D:有些图像具有不合理的大视差(大于1000),因此本文对于视差图像中视差值超过 25% 大于 300,则移除该视差图像(以及相应的立体对)。
- Middlebury 2014:因为该数据集太小,只有23对立体图像,因此本文只用它来进行评估。
- KITTI 2015:该数据集包含200个训练图像对和200个测试图像对,只有训练图像有真实视差图。本文用训练集划分为训练和验证子集,训练子集占85%。
- 训练:
- 首先训练 DispFulNet,然后通过固定其权重来训练 DispResNet。之后,我们可以选择微调整个网络。
- 使用字符串对每个训练计划进行编码。一段这样的字符串包含两个字符 ND,意味着阶段 N 是在数据集 D 上训练的,阶段 0 表示整个网络。
- 我们在训练第一或第二阶段时采用 4 的批大小,在微调整个网络时采用 2 的批大小。在 FlyingThings3D 数据集上训练第一阶段或第二阶段时,我们使用 DispNet 中提供的参数。
- 在微调期间,我们训练模型进行 200K 次迭代;然而,当目标数据集是 KITTI 2015 时,我们只优化了 100K 次迭代以减少过拟合的问题。
3.1 消融实验
3.2 对比实验
4. 结论
(1)残差学习不仅提供了有效的细化,而且有利于整个两阶段网络的优化。
(2)实现了最先进的立体匹配性能,在 KITTI 中排名第一。