0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CREStereo立体匹配算法总结

3D视觉工坊 来源:3D视觉工坊 2023-05-16 09:05 次阅读

电子科技大学用国产深度学习框架旷视天元MegEngine开发的双目视觉立体匹配算法CREStereo ( CREStereo: Cascaded REcurrent Stereo matching network),CREStereo立体匹配算法是一种基于级联循环网络的立体匹配算法,旨在通过使用上下文推理来更好地理解场景中不同物体和表面之间的关系,从而提高立体匹配的准确性和效率。这使得网络能够更加确切地决定每个像素的深度,从而产生更准确的深度图和3D重建。

1 前言

立体匹配是计算机视觉的重要领域,通过给定一对经过校正的图像,计算对应像素之间的位移,即视差。立体匹配算法近年来因卷积神经网络的出现而获得了巨大进步。然而,由于薄结构、非理想的校正、摄像头模块不一致以及各种复杂场景等实际操作困难因素,从智能手机等消费级设备拍摄的真实图像对中准确提取差异仍然是一个巨大的挑战。为了解决这些问题,作者提出了CREStereo,即级联循环立体匹配网络,其特点是采用分层网络以一种从粗到细的方式递归地更新视差,并使用叠堆式级联架构进行高分辨率推理;设计自适应群局部相关层处理非理想校准问题;引入含有更丰富的光照、纹理和形状变化的新合成数据集以更好地适应现实场景。CREStereo在Middlebury和ETH3D等公共基准测试中的表现明显优于现有方法,并极大地提高了恢复视差的准确性。其主要贡献可以总结为:

为实际立体匹配提出了级联循环网络和叠堆式级联架构;

设计自适应群相关层来处理非理想校准问题;

创建新的合成数据集以更好地推广到现实世界场景;

2 相关背景

视觉领域中的立体匹配是一个具有挑战性的问题。传统算法可以分为局部和全局方法。局部方法使用支持窗口计算匹配成本,而全局方法将立体匹配视为一个优化问题。深度神经网络在立体匹配任务的性能表现越来越成熟,包括2D和3D的方法。对于真实世界图像的立体匹配仍是一个少有探索的问题,但是已经有了一些解决方案,比如自适应方法、小波合成网络和域自适应。同时,为训练深度立体模型,合成数据集是不可或缺的。尽管现有的合成数据集对于模型训练提供了高精度且密集的ground truth,但是这些数据集仍有许多限制,如对象形状的变化范围有限,失真/光流值的分布也较为局限。

3 方法

3.1 Adaptive Group Correlation Layer - 自适应组相关层(AGCL)

作者提出了一种自适应组相关层(AGCL)用于消除实际场景中立体相机校准不完美的影响。为了减少匹配的不确定性,仅在局部窗口中匹配点,通过加入注意力模块来聚合全局上下文信息。作者采用2D-1D交替本地搜索策略来提高匹配精度,而且使用形变搜索窗口来减少对遮挡或无纹理区域的依赖。此外,作者引入组相关以逐组计算局部相关性,从而显著降低了内存消耗和计算成本。

其中,局部关键点注意力是实现局部窗口匹配的核心,公式中的位置编码增强了特征映射的位置依赖性。形变搜索窗口将搜索窗口的形状更改为内容自适应形状,以此来更好地处理遮挡和无纹理区域。最后,组相关机制通过分组计算本地相关性,来进一步提高匹配精度。除此之外,2D-1D交替本地搜索策略能够提高网络的复杂度,以细化匹配结果。这些创新性设计使得AGCL领先于现有的视觉匹配方法,在立体匹配中具有广泛的应用前景。

4a073180-f379-11ed-90ce-dac502259ad0.png

局部匹配公式:

4a27da84-f379-11ed-90ce-dac502259ad0.png

形变搜索窗口公式:

4a3b8a16-f379-11ed-90ce-dac502259ad0.png

3.2 Cascaded Recurrent Network - 级联循环网络

作者提出了一种级联递归网络方法用于匹配光流。采用递归更新模块(RUM)和自适应组关联层(AGCL)来构建级联递归网络。分别在不同级联层中计算特征图的相关性,并独立地用几次迭代来细化视差。除了级联的第一层外,其他级联层均采用来自上一级的预测上采样版本作为初始化。最后,使用凸上采样获得输入分辨率的最终预测。

4a4dd176-f379-11ed-90ce-dac502259ad0.png

3.3 Stacked Cascades for Inference - 堆叠级联用于推理

作者提出了一种带有捷径的堆叠级联架构用于推理。预先对图像对进行下采样构建图像金字塔,并将它们馈送到相同训练的特征提取网络中,以利用多层次的上下文信息。对于堆叠级联的特定阶段,该阶段中的所有 RUM 与更高分辨率阶段的最后一个 RUM 一起使用。在训练期间,堆叠级联的所有阶段共享相同的权重,因此不需要进行微调。

4a6eb1fc-f379-11ed-90ce-dac502259ad0.png

3.4 Loss Function - 损失函数

作者所使用的损失函数采用类似于RAFT的指数加权L1距离,并使用上采样算子将输出序列调整到完整的预测分辨率。

4a92addc-f379-11ed-90ce-dac502259ad0.png

3.5 Synthetic Training Data - 合成训练数据

作者在用于视差估计网络训练的合成训练数据的生成过程中使用Blender生成左右图像对和像素级准确的密集视差地图。通过多种来源扩展场景中主要内容的模型的形状,包括基于ShapeNet数据集的基本内容来源,以及Blender的sapling tree gen add-on和基本形状结合线框修改器生成模型。在场景内随机放置不同类型、颜色和亮度的灯光形成复杂的光照环境,并使用真实世界图像作为物体和场景背景的纹理。为了覆盖不同的基线设置,努力确保生成的数据的视差分布在宽范围内平滑分布。

4aaf1558-f379-11ed-90ce-dac502259ad0.png

4 实验

4.1 数据集和评估指标

作者所使用的数据集包括Middlebury、ETH3D和KITTI等公共基准测试数据集,以及Sceneflow、Sintel和Falling Things等用于训练的数据集。评估指标包括AvgErr、Bad2.0和D1-all等。其中,AvgErr表示平均误差,Bad2.0表示视差误差大于2像素的像素占比,D1-all表示左图像中视差异常像素的百分比。

4.2 实施细节

作者使用PyTorch框架实现了Crestereo网络。使用了8个NVIDIA GTX 2080Ti GPU进行训练,批次大小为16。整个训练过程设置为300,000次迭代。使用Adam 优化器,标准学习率为0.0004。在开始训练的时候,进行了一个渐进式预热过程,持续6000次迭代,其中学习率从5%线性增加到标准值的100%。在180,000次迭代后,学习率会线性降低到末尾训练过程中标准值的5%。这个模型使用384×512的输入大小进行训练。在进入模型之前,所有的训练样本都会经过一组数据扩充操作。为了模拟相机模块的不一致性和非理想矫正,我们使用多个数据扩充技术进行训练。首先,作者分别为两个输入应用不对称的色彩增强,包括亮度、对比度和伽马的变化。为了进一步提高对真实世界图像矫正误差的抵抗力,只对右侧图像进行空间扩充:轻微的随机单应性变换和非常小范围内(<2像素)的垂直平移。为了避免不合适的区域上的匹配错误,使用高度和宽度在50到100像素之间的随机矩形遮挡补丁。最后,为了适应来自各个来源的输入数据进入网络的训练输入尺寸、立体图像和视差的组合进行随机调整和剪裁操作。

4.3 消融实验

作者在通过消融实验来验证网络组件的有效性,除了级联堆叠中的消融实验外,所有评估分辨率均为768×1024。首先,比较了不同类型的相关性,发现使用2D和1D all-pairs相关性会导致准确度显著下降;其次,分析了AGCL部分的组件,固定的无学习偏移的相关窗口会降低准确性,同时组相关和局部特征注意力模块的去除也会降低准确性;接着,比较了不同级联阶段的性能,并发现级联的重要性;最后,引入了新的合成数据集,表明作者提出的数据集在域泛化方面更具优势。

4ae1dc90-f379-11ed-90ce-dac502259ad0.png

5 总结

CREStereo立体匹配算法通过级联递归网络与自适应相关性,能够更好地恢复微妙的深度细节,比现有方法更好地处理难度场景。同时,通过合成数据集的精心设计,也能更好地处理非纹理或重复纹理区域。未来可以进行改进,以适应各种便携式设备,并最好实时运行。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码
    +关注

    关注

    6

    文章

    935

    浏览量

    54759
  • 模型
    +关注

    关注

    1

    文章

    3158

    浏览量

    48701
  • 深度学习
    +关注

    关注

    73

    文章

    5491

    浏览量

    120958

原文标题:立体匹配算法,CRestero是如何让它变得更加准确?

文章出处:【微信号:3D视觉工坊,微信公众号:3D视觉工坊】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    立体匹配SAD算法原理

    立体匹配SAD算法matlab实现
    发表于 06-05 16:08

    基于外极线分区的动态立体匹配算法

    基于区域的立体匹配算法仅针对支撑窗内的灰度信息定义匹配代价函数,导致在弱(无)纹理区域采用WTA优化出现歧义性。该文在外极线分区的基础上,改用区域作为匹配基元,针对歧
    发表于 04-11 08:37 21次下载

    彩色镜像图像的立体匹配方法

    提出一种新的基于镜像图像的立体匹配方法,设计一种新的图像采集系统,采集获得物体的镜像图像,利用镜面成像特点,将立体匹配的搜索空间由二维降为可靠的一维。应用彩色
    发表于 04-15 09:39 37次下载

    基于蚁群优化算法立体匹配

    立体匹配技术使得通过像点获取景物的距离信息,实现三维立体再现成为可能,是计算机视觉研究中最基本的关键问题之一。本文选择图像的边缘点作为匹配基元,以边缘特征点
    发表于 06-26 10:29 17次下载

    双目视觉立体匹配算法研究

    双日视觉是计算机视觉领域的一个重要组成部分。双目视觉研究中的关键技术摄像机标定和立体匹配一直是研究的热点。本文由两部分组成,分别对双目视觉的算法和未标定图
    发表于 08-14 16:41 0次下载

    基于扩展双权重聚合的实时立体匹配方法

    立体匹配是对给定的一对立体图像计算视差图的过程。目前许多立体匹配的应用程序需要实时处理,但事实上立体匹配需要经历大规模的计算。幸运的是,无论硬件还是软件方面并行处理技术已经非常先进。因
    发表于 10-31 18:46 2次下载
    基于扩展双权重聚合的实时<b class='flag-5'>立体匹配</b>方法

    基于颜色调整的立体匹配改进算法

    的前提,因此如何提升立体匹配算法在各种场景中的鲁棒性也是计算机视觉研究的热点问题。 立体匹配算法的目标是从两幅校正后的匹配图片中寻找每个像素
    发表于 11-02 11:07 0次下载
    基于颜色调整的<b class='flag-5'>立体匹配</b>改进<b class='flag-5'>算法</b>

    超像素分割的快速立体匹配

    针对目前立体匹配中存在的匹配精度和匹配速度很难兼顾的问题,提出了一种基于稳定特征点和SLIC超像素分割算法的快速立体匹配。利用SURF
    发表于 11-15 15:26 14次下载
    超像素分割的快速<b class='flag-5'>立体匹配</b>

    基于mean-shift全局立体匹配方法

    针对图像全局立体匹配精度高、计算量大的问题,提出基于mean shift图像分割的全局立体匹配方法。首先,通过mean shift算法对图像进行分割,获取图像同质区域数量和区域的标号。在计算
    发表于 11-20 11:50 9次下载

    视觉显著性的快速区域立体匹配算法

    针对区域立体匹配算法对光照变化敏感,视差图存在目标和弱纹理区域的错配、边界不平滑等问题,提出一种利用视觉显著性特征改进的快速区域立体匹配算法。该算法
    发表于 12-28 17:09 0次下载

    如何使用跨尺度代价聚合实现改进立体匹配算法

    针对现有的立体匹配算法在精度和速度上不可兼得的现状,提出一种改进的跨尺度代价聚合立体匹配算法。通过强度和梯度算法计算
    发表于 02-02 14:36 10次下载
    如何使用跨尺度代价聚合实现改进<b class='flag-5'>立体匹配</b><b class='flag-5'>算法</b>

    双目立体计算机视觉的立体匹配研究综述

    、半全局和基于深度学习的立体匹配算法研究现状的基础上,阐述了匹配代价、代价聚合、视差计算/优化、视差校正在立体匹配算法中的实际应用,
    发表于 04-12 09:47 3次下载
    双目<b class='flag-5'>立体</b>计算机视觉的<b class='flag-5'>立体匹配</b>研究综述

    一种基于PatchMatch的半全局双目立体匹配算法

    近年来双目立体匹配技术发展迅速,高精度、高分辨率、大视差的应用需求无疑对该技术的计算效率提出了更高的要求。由于传统立体匹配算法固有的计算复杂度正比于视差范围,已经难以满足高分辨率、大视差的应用场
    发表于 04-20 11:31 13次下载
    一种基于PatchMatch的半全局双目<b class='flag-5'>立体匹配</b><b class='flag-5'>算法</b>

    融合边缘特征的立体匹配算法Edge-Gray

    为保证SAD算法立体匹配效率,提高匹配精度,提出一种融合边缘特征的立体匹配算法 Edge-gray。通过边缘计算得到边缘特征图,在进行
    发表于 04-29 11:06 8次下载
    融合边缘特征的<b class='flag-5'>立体匹配</b><b class='flag-5'>算法</b>Edge-Gray

    基于改进自适应权重的立体匹配优化算法

    为解决现有立体匹配算法对低纹理以及视差不连续区域匹配效果较差的问题,提出一种改进的立体匹配优化算法。在传统自适应权重
    发表于 04-29 15:42 3次下载
    基于改进自适应权重的<b class='flag-5'>立体匹配</b>优化<b class='flag-5'>算法</b>