【论文阅读】(2023 奥比中光 综述)双目立体视觉研究进展与应用
title: 双目立体视觉研究进展与应用 date: 2023-05-26 tags: 综述 2023 奥比中光
|
作者 |
杨晓立 1†,徐玉华 1*†,叶乐佳 1 ,赵鑫 1 ,王飞 2 ,肖振中 1** |
|
单位 |
奥比中光、深圳奥芯微视 |
|
备注 |
2023 综述 邀稿 中科院4区 |
|
期刊 |
激光与光电子学进展 |
|
关键词 |
立体视觉;立体匹配;深度学习 |
(本文建议白天模式观看,右下有按钮!有些字在黑暗模式下看不清!!!)
0.摘要
双目立体视觉模仿人类视觉系统对环境进行三维感知,通过对校正后的左右图像进行立体匹配获取两幅图像的 视差,再根据三角测量原理计算出场景的深度,在近几十年中一直是计算机视觉领域的研究热点,取得了一系列的进展。 传统的立体匹配方法采用手工设计的特征进行立体匹配,研究表明,这类方法对弱纹理或重复纹理区域以及遮挡区域表 现不佳。近年来,基于深度学习的立体匹配方法取得了显著的进展,表现出了强大的应用潜力。本综述对这一不断发展 的领域进行全面的调研,讨论不同方法之间的优点和局限性,介绍市面上的双目产品,并展望该领域的研究与应用前景。
1. 引言
- 立体匹配【概念+应用】
- 立体匹配【难点】:如何降低传感器噪声、前后景遮挡、弱纹理或重复纹理区域、高反光区域、透明物体等因素的影响 。
- 近年来,基于深度学习的立体匹配方 法迅速发展,取得了显著的进展,与传统方法相比,基于深度学习的 方法占据了绝对优势地位。RAFT引领了基于多次迭代优化的网络结构的发展。
- 数据集:KITTI2012、KITTI2015、Middlebury2014
- 评价指标:参考博客地址
然而,虽然基于深度学习的立体匹配方法取得了令人兴奋的进步,但仍然存在以下问题:
- 计算资源消耗问题:【依赖高端的 GPU、大多数高性能算法都无法用于消费级应用】
- 泛化性能问题:【依赖训练数据集】
在接下来的第 2 节中,首先对传统立体匹配方法 进行了简要的回顾;第 3 节对近 8 年基于深度学习的立 体匹配方法进行了介绍;第 4 节介绍了立体匹配模型 的加速方法;第 5 节对常用的立体视觉数据集进行了 介绍;第 6 节介绍了双目视觉产品;最后是本文的总结 和展望。
2. 传统立体匹配方法
Scharstein 等[1] 在2002 年把立体匹配分为4个步骤,即匹配代价计算、代价聚合(cost aggregation)、视差计算和视差优化,该框架一直沿用至今。
人工设计的代价计算函数:AD、BT、Census 变换、结合 AD 和 Census 变换的 AD-Census\归一化互相关(NCC)、互信息。Hirschmuller 在【论文地址】对各种匹配代价函数进行了系统的比较。
立体匹配方法可分为基于全局约束的方法和基于局部约束的方法。文中举例了各种聚合方法。经典的:十字交叉域、半全局匹配SGM(realsense d435应用)
基于窗口匹配的方法——基于平行窗口假设。打破此假设的如PatchMatch算法,倾斜窗口假设。
代价聚合完成以后,赢家通吃(WTA)是最基本的视差计算方法。用 WTA 得到视差图后,通常还会采用一些视差优化方法进行处理,包括错误匹配剔除 (如左右一致性检测、speckle filter 等)、亚像素视差值 计算、遮挡区域空洞填充、中值滤波[28,40] ,从而输出最 终的视差图。
3. 基于深度学习的立体匹配方法
3.1. 混合方法
【开篇之作】在 2015 年之前,立体匹配算法 主要还是采用人工设计的代价函数。深度学习方法首 次应用于立体匹配还是在 2015 年,Zbontar 等设计了两种用于图像块(如 9×9 或 11×11 的图像块)匹配的网络结构,即快速结构 MC-CNN-Fast 和精确结构 MC-CNN-Acc。这种结合深度学习和传 统技术的方法通常被称为混合方法。
有不少非端到端立体匹配的方法被提出,这些方法相较于传统方法在效果上有着不少的提升,但受限于缺乏图像全局信息、高额的计算负担,已经逐渐被端到端的方法所替代。
3.2. 端到端立体匹配方法
自从最早的(2016 年)端到端视差估计网络DispNet被提出 后,大量的工作都基于该结构展开并取得了有益的结 果。
本小节分别对基于2D卷积的网 络 、3D卷积的网络 、多次迭代优化的网络 ,以及 Transformer 的方法进行讨论和分析:
3. 2. 1 基于 2D 卷积的网络
- DispNet 。和光流估计中FlowNet的结构DispNet 有两种结构 :DispNetS 和 DispNetC

- iResNet、CRL引入残差优化层(residual refinement layers)结构。
- AANet:可形变卷积+两个聚合模型(尺度内和跨尺度)
- HITNet:倾斜支持窗口、由粗到细、窄带代价空间(初始匹配视差周围误差搜索)、快速(论文指标好!)
- Bi3D:转变为分类问题、多个分类器
- SMD-Nets:双峰混合密度
基于 2D 卷积的立体匹配模型具有结构简洁和运行效率高的优点,在计算资源有限的情况下也能提供较高的精 度 。 此外 ,由于2D 卷积在各种算力平台(GPU、CPU、NPU 等)上的成熟部署经验,该方法在工程化应用中具有天然优势。然而,由于三维代价空 间提供的信息有限,该类网络结构在提高预测精度和 鲁棒性方面仍需进一步研究。
3. 2. 2 基于 3D 卷积的网络
- GCNet:3D 卷积 + soft argmax
- PSMNet:空间金字塔池化(SPP)模块 + 堆叠沙漏(stacked hourglass)结构
- GWCNet:分组卷积(按组进行相关来构 建一个代价空间)
- StereoNet:轻量网络,处理速度可以达到 60 frame/s
- GA-Net:参考SGM,多路径聚合
- DeepPruner:思路源于PatchMatch,初始估计后,窄的代价空间修正
- DSM-Net:域归一化
- BGNet:双边网格
- DecNet:分解
- CFNet:cost volume的融合、级联结构、基于方差的不确定度来缩减视差搜索范围
- AcvNet:代价空间子网络引导主网络聚合(2022 年 发 表 时 , AcvNet 在 KITTI、SceneFlow、ETH3D 等立体匹配数 据集上均取得排名前三的成绩。)
基于 3D 卷积的网络结构设计一般遵循经典的立体匹配步骤,具有较好的可解释性。相比于三维代价空间,四维代价空间能够提供更多的细节信息,因此所 预测出的视差图精度更高。然而,由于 3D 卷积的高昂计算成本,如何设计更高效率的网络架构成为了亟须解决的问题。
3. 2. 3 基于多次迭代优化的网络
RAFT是用于光流估计的网络。

RAFT-Stereo:是将光流算法 RAFT应用于立 体匹配的工作上:
- 1)极线上做代价,
- 2)多分辨率,多个 GRU 单元之间交错使用隐藏状态,但还是在最高分辨 率的 GRU 上进行代价空间查找并输出最终视差。
- 3)多个 GRU 单元之间交错使用隐藏状态,但还是在最高分辨 率的 GRU 上进行代价空间查找并输出最终视差
CREStereo:基于 RAFT的改进工作
- 自适应分组局部相关 模块(adaptive group correlation layer),通过局部特征 注意力、2D-1D 局部交替搜索、可变性搜索窗口和分组相关等子模块
- 递归更新模块和级联堆叠模块,使模型可以更好地恢复精细的深度细节。
RAFT 等基于迭代优化网络结构,通过设计巧妙 的轻量 GRU 模块多次进行迭代更新,在光流估计和立 体匹配领域取得了突破性的进展,具有强大的泛化能 力与鲁棒性。然而受限于序列化的迭代更新结构,推 理时间会随迭代次数线性增加,且难以进行速度优化。
3. 2. 4 基于 Transformer 的网络
Transformer 模型、ViT、
STTR:从序列到序列 (seq2seq)的角度去看待深度估计问题,代 价空间的建立使用 Transformer
光流估计领域:FlowFormer和GMFlow在 Sintel 数据集 排名榜上已经超过 RAFT[14] ,取得了主导地位。
在计算机视觉领域,基于 Transformer 的网络结构 已经在检测、分割、光流估计等方面取得了显著的成 果。随着对 Transformer 结构的不断深入研究,将会出现更多基于 Transformer 结构的立体匹配模型,展现出强大的应用潜力。
3. 2. 5 损失函数
有许多工作使用L1 误差[式(4)]或 者 Smooth-L1 误差,作为训练立体匹配网络的损 失函数,直接回归视差,具有简单直观、对异常误差值 不敏感的特点。

Edgestereo:引入边缘损失函数

式中:∂d 是视差图的梯度;∂ε表示边缘概率图的梯度
视差只是估计代价空间过程中的副产物,在学习中容易产生过拟合,可能会导致代价空间存在多峰分 布,因此也有不少工作将关注点放在了如何优化代价空间上。
AcfNet:单峰约束

3.3. 自监督与弱监督立体匹配
训练立体匹配网络需要大量数据,但在实际使用中,获取大量拥有准确且稠密标签的双目数据是较为 困难的,相对而言,获取无标签或拥有稀疏标签的数据则更为容易且可行。因此,一些基于无标签或稀疏标 签数据的工作被提出,并取得了可喜的成果。(数据昂贵)
3. 3. 1 自监督立体匹配
自监督是数据能够提供监督信息的一种无监督学 习方式,因此在没有标签数据的情况下,如何快速获取 可靠的数据标签是自监督立体匹配的关键。
Deep Stereo:相邻图片上的像素 生成新视角下的图像
Deep3D:,将一组双目图像的左图作为输入对双目图像 的右图进行重构
文献[83]:根据预测出的视差图和右图,使用扭曲 (warp)操作重构出左图,再使用重构出的左图和输入 左图作为损失函数训练模型
文献[84]:通过引入可导的双线性插值来解决 warp 变换反向梯度传播的问题
文献[78]提出 了图像重构损失和光滑度损失两个自监督损失函数, 进一步优化网络性能
文献[85]提出了图像重构损失 和光滑度损失两个自监督损失函数,进一步优化网络 性能,在 KITTI 数据集上,其精度甚至超过了一些监 督学习的方法。
3. 3. 2 弱监督立体匹配
基于监督学习的立体匹配从带有标签的数据中学 习,但是双目图像的标签不易获取,而且由于传感器对于透明物体、低反射物体等情况也存在一定困难,获取 到的标签也存在噪声,因此也有不少工作致力于解决 该问题。
文献[86]首先使用传统立体匹配方法(AD-CENSUS 或 SGM )制作出伪标签,再通过一些方法(比如文献[88])对伪标签进行置信度量,接着选择 伪标签上的可靠标签作为稀疏标签对网络进行训练。
文献[89]使用基于残差 FlowNet[61] 的结构估计出视差 图,再使用监督学习的方法对从视差图和激光雷达获取到的稀疏深度图进行监督、自监督学习的方法对重构出的图像与原始图像进行监督。
文献[90]提出了一 种迭代的框架:首先随机初始化网络参数,生成初始深度图;再对深度图使用左右一致性校验获取高置信标签,接着使用高置信标签对网络进行训练;更新权重后再重复以上视差图预测和高置信度标签获取两个步骤。随着迭代次数的增加,视差图将会越来越准确,从 而达到收敛状态。
文献[91]首先使用传统方法估计双 目图像的视差,再从中筛选出高置信度的稀疏点,并输 入事先已经训练好的深度补全网络中,以获取稠密的视差图,再使用该稠密的视差图作为标签数据训练立 体匹配网络。
4.立体匹配模型加速
随着新的立体匹配方法不断提高匹配模型的精 度,模型的耗时也随之增加,高精度的匹配网络需要在 高端 GPU 上才有可能实时运行,制约了立体匹配模型 在消费级产品上的应用,因此也有不少工作开始关注 如何对立体匹配模型进行加速。
4. 1 轻量化模型结构
含参量较大的 3D 卷积,网络模型往往十分冗 余,
1)3D 卷积模型轻量化
StereoNet:第一个实时的双目立体匹配网络,能够在英伟达Titan X 上达到 60 frame/s
AnyNet:由粗糙到精细优化,初始深度图,warp,误差图纠正;AnyNet能处理 1242×375分辨率的 双目图像,在 Nivida Jetson TX2 上达到 10~35 frame/ s,在实时性和精度上取得了平衡。
BGNet:双边网格
2)2D 卷积网络
文献[93]指出仅 仅使用 2D 卷积,同样可以取得速度与精度平衡的结果 。
MobileStereoNet:基 于 MobileNets结构 ,设 计了两种分别基于 2D 和 3D 代价空间的立体匹配网络
HITNet:推荐。
文献[93]不使用卷积神经网络 提取图像特征,而是直接利用传统算法快速得到初始 的匹配代价,再通过 2D 卷积对其进行代价聚合,并基 于 UNet2D 卷积的编码解码结构得到最终的视差图, 其在 1080Ti GPU 上可以实现 50 frame/s 的速度(Fast deep stereo with 2D convolutional processing of cost signatures)
4. 2 模型压缩
另一种方法就是对立体匹配模型进行压缩。对于 网络结构优化的研究于 20 世纪 90 年代就已经开始 了[97- 98] ,但当时的应用对于网络压缩并无太多需求,因 此没有引起太多关注。
文献 [99]使用剪枝(pruning)、量化(quantization)、霍夫曼编 码(Huffman coding)对网络进行压缩,在没有精度损 失的前提下,使网络压缩了 35∼49 倍。
4. 2. 1 模型剪枝
按照剪枝的粒度划分,剪枝可以分为层间剪枝、特 征图剪枝、卷积核剪枝以及核内剪枝[101] 。前 3 种为结 构化剪枝,可以直接在硬件中加速。而核内剪枝属于 非结构化剪枝,所得到的权重矩阵是稀疏的、不规则 的,需要特别的硬件支持才能明显加速。
网络剪枝的核心问题就是如何有效裁剪模型并最 小化精度损失。最直接的方法就是逐层判断权重的重 要性,再将重要性较低的权重裁剪掉。
4. 2. 2 模型量化
对 网 络 的 量 化 一 般 包 括 训 练 后 量 化 和 训 练 量 化[114] 。训练后量化(posttraining quantization)是指在 模型训练完成后再进行量化[115] ,由于其不需要重新训 练模型,易于工程化落地,因此在业界得到了广泛的应 用[116] 。对于训练后量化,核心问题就是如何减少由量 化范围和量化位宽(bitwidth)等因素引起的模型精度 下降。
4. 3 NPU 计算平台
5.立体视觉数据集
- Middlebury:最初,高精度结构光三维扫描仪,采用高精度的三维扫描设备采集立体视觉数据,但也存在效率低、对于透明物体、低反射率物体表面、远距离物体,扫描仪难以获得这些物体的表面深度等问题。
- 与目标识别、目标检测等任务不同,立体视觉数据集无法用人工的方式进行标注
- 对于驾驶场景,通常采用激光扫描仪获得稀疏或半稠密的深度图
- 在 立 体 视 觉 研 究 领 域 ,合 成 数 据 集(如 SceneFlow[56] 、IRS[132] )是一个常用的方法。但基于合 成数据集训练出来的模型,存在域适应的问题[74] 。

6. 双目视觉产品
D455[42] 是由 Intel® RealSense™所出品的双目深度相 机,被广泛应用在避障、物件测量、人脸识别等领域;
Gemini 2 是 基 于 奥 比 中 光(ORBBEC)[137] 全 新 的 MX6600 深度计算芯片所开发的,提供六轴惯性传感 数据,支持深度和 RGB 帧同步以及多机同步,相机还 集成了多分辨率下深度信息与彩色信息空间对齐功 能 ,可 实 现 高 性 能 中 远 距 离 的 室 内/半 室 外 环 境 感 知 。
ZED:基于深度学习的算法
Human+:使用现场可编程逻辑门阵列(FPGA)
OAK:使用专用的 VPU 芯片

------------
参考: 1.

浙公网安备 33010602011771号