立体匹配是一个经典的计算机视觉问题,它的目标是从双目相机拍摄同一场景的左、右两幅视点图像中找到匹配的对应点,运用立体匹配算法获取视差图,从而估计图像深度信息。由于深度图能够记录场景中物体与摄像机的距离,因此可以应用在测量、三维重建、自动驾驶以及虚拟视点的合成等。
传统典型方法[1-3]的立体匹配流程包含损失计算、成本聚合、视差计算和视差细化四个步骤,文献[4]将输入图像分割成三大区域,然后根据几何分割结果来获取图像的深度图,这些方法虽然有更高的精度,但是运行效率非常低。近年的方法使用卷积神经网络(CNN)[5- 8],通过相似性计算来解决匹配一致性估计的问题,即是计算一对图块的相似性得分进而判断是否匹配。尽管CNN方法相比传统方法,在速度和准确度方面都取得了重要突破,但依旧很难在不适定区域(例如:遮挡区域,重复纹理区域,弱纹理区域和反光表面等)找到精确的匹配点,利用不同视角下光照强度的一致性约束算法也不能在不适定区域中得到精确的匹配,并且对于弱纹理区域这个约束是完全无效的,其运行速度也较低。
为了满足实际在线应用的要求,最新的方法提出了端到端训练网络[9-12],文献[9]将光学流量估计的概念通过卷积网络扩展到视差估计和场景流估计,通过将流和视差估计网络联合训练,展示了第一个基于卷积网络的场景流估计。文献[10]使用了3D卷积方法获取更多的上下文信息,并采用回归的方法预测视差值,与传统图块匹配的方法相比,该方法不再需要给图块设置标签,直接将预测结果与真实视差图进行比对,再将误差反向传播,利用一个端到端的网络直接生成最终的视差图。文献[11]是第一个用于实时立体匹配的端到端深度架构,该模型使用Siamese网络从左右图像中提取特征,在非常低分辨率的成本卷中计算第一视差估计,然后通过分层使用紧凑的像素到像素细化网络学习的上采样函数来重新引入高频细节。这些方法都是经过端到端训练的深层卷积神经网络,是一种能够直接从一对立体图像中回归密集视差图的先进方法,实时性能也大大提高。然而这些方法在处理训练阶段不同的场景(如:真实图像vs合成图像,室内图像vs室外图像等)中时,准确率会显著下降,而且在目标域中很难收集到足够多的样本来实现有效的训练和调优。
针对现有的立体匹配算法,其精确度和实时性不能满足实际的在线应用等问题,本文提出一种实时自适应的立体匹配网络算法,通过引入一种新的轻量级的、有效的结构模块自适应立体匹配网络(Modularly Adaptive Stereo Network,MASNet),在网络中嵌入无监督损失模块和残差细分模块,使立体匹配的准确性和实时性得到提高。首先通过金字塔网络提取多尺度特征,然后进行初步的视差估计,最后通过残差细化模块输出最终的视差图。实验结果表明,本文方法相比具有相似复杂度的模型,精确度更高,并且能以平均约25帧每秒的处理速度达到在线使用的要求。
MASNet网络模型主要由金字塔卷积特征提取器[13]和残差细化模块等等模块组成,如图1所示,首先将左右两帧立体图像输入到两个权重共享的卷积神经网络(CNN)网络计算特征图,接着在金字塔特征提取器模块中部署了两个权重共享网络,如下图2所示,通过下采样能够由粗到细捕捉输入图片的多尺度特征信息。在6个分辨率中,从对应的特征提取出发,构建一个视差估计模块,在最低分辨率D6模型下,忽略了变形(warping)和上采样步骤(因为MASNet没有D7),直接在和之间创建成本卷(cost volume)。最后在最高分辨率D2模型下,部署了一个残差细化模块(residual refinement),该模块使用空洞卷积(atrous convolutions)和残差块连接来获得与输入图像具有相同分辨率的最终视差估计。为了恢复完整的分辨率,使用双线性插值对残差细化模块的输出进行上采样。
图1 MASNet网络结构
Fig.1 Architecture of MASNet
图2 金字塔特征提取器
Fig.2 Pyramid feature extractor
设计的立体视差估计网络在分辨率n下的详细结构,如图3所示,用Fn表示在分辨率n下提取的卷积特征,上标l是表示从左帧图像提取得到的特征,上标r则表示从右帧图像提取得到的特征。对于上采样块,则使用标准的双线性上采样,而对于成本卷的创建,则使用文献[9]DispNetC网络模型的相关层。如下图4所示,残差细化网络模块的详细结构,该网络以初始视差估计和在相同分辨率下提取的左卷积特征作为输入,利用空洞卷积对其进行细化微调,最后输出视差图。空洞卷积能够在不缩小feature map大小的同时可以保持感受野大小不变。残差块的作用是在保留原特征信息的同时进一步提取更深层次的特征信息,同时也能使得网络变得更深又不至于梯度消失。
图3 视差估计模块
Fig.3 Disparity estimation module
对不同分辨率的层(从特征提取器或视差估计器)进行分组操作。通过跳跃式连接方法,可以直接连接具有相同分辨率的层,因此通过连接流动梯度进行近似的反向传播,而不需要在两者之间遍历低分辨率层。例如图3所示的视差估计模块的结构,只会通过和而不是Dn+1进行反向传播。从第3到第6个分辨率,通过分组层产生对应的特征Fn和视差Dn。而对于高分辨率的部分(第1和第2),可以将这两个工作的层折叠在一起,因为本文设计的网络将视差估计停止在D2层下。按照这个策略,便可得到5个独立的可训练部分。
图4 残差细化模块
Fig.4 Residual refinement module
在网络中使用一种计算速度快的无监督损失函数[14],这种损失函数可以使预训练的模型适应任何新环境,只需要处理一对立体图像,而不需要任何的标签数据(groundtruth),下面将损失L定义为:
L=CL+λ*S
(1)
其中CL为置信度引导损失,S为平滑项,超参数λ∈[0,1]。
(2)
(3)
其中P为整张图片的所有像素,p为其中的某个像素点,为网络预测的视差值,D(p)为真实视差,C(p)∈[0,1], ∀p∈P,超参数τ∈[0,1]。
(4)
(5)
其中D(p,q)是空间位置像素点p和像素点q的距离函数,像素点p的邻域Np={q|D(p,q)<δ},平滑项S由公式(5)计算得出。
MASNet网络在没有自适应模块时,以约41帧每秒的速度运行,但是其精度较低。然而,对于某些实际应用程序,希望在更高帧率的同时又具有更好的精度,而且能够在不可见的环境下自动调优。执行在线适应所需的大部分时间,都被有效地用于执行支撑整个网络层和权重更新。冻结网络的初始部分是加速进程的一种简单方法,只微调k个最终层,从而实现更少的网络层运行而获得更高的帧率。但是,不能保证最后的k层就是那些从在线微调中获益最多的层。
因此,本设计开发了自适应模块,一种为MASNet定制的在线自适应策略,但可扩展到其他某些多尺度的深度网络。其原理是,取一个网络N,并将其细分为t个不重叠的部分(如图2:t=6),每个部分称为n,如:N=[n1,n2,…,nt]。每个部分ni由k个连接层组成,最后一个更深的层能够输出视差估计yi。输入一对立体帧图像x, N将输出t+1个视差估计[y,y1,y2,…,yt]=forward(N,x),y为模型在全分辨率下的最终预测。由于其模块化结构,可以将MASNet进行这样的细分,通过在卷积金字塔和视差估计器中分配相同分辨率的ni层(如图2:ni=[Fi,Di])。每一个ni都可以单独训练,直接计算ni部分的视差yi和损失,从而跳过反向传播中匹配代价高的低分辨率层。事实上,通过改变被训练网络的ni部分,它可以依次更新所有层。这种策略大大减少了计算和应用梯度所需的时间,同时又不牺牲太多的精度。
本文数据集采用FlyingThings3D、KITTI2012[15]和KITTI2015[16],其中KITTI数据集于2012年制作,并于2015年进行了扩充,它包含了安装在汽车上的经过校准的一对摄像机拍摄的道路场景的立体视频,从三维激光扫描仪结合汽车的运动数据可以获得光流和视差的标签数据(ground truth)。
实验平台配置为Intel Core i7- 6850k处理器,主频3.6GHz,64GB内存,GPU:NvidiaGTX TitanX 12G,操作系统为64位Ubuntu16.04,网络训练框架为TensorFlow。对于MASNet的初始训练,本文使用Adam优化器对FlyingThings3D数据集进行1200k次训练迭代,学习率设置为0.0001,经过400k步后减半,直到收敛。作为损失函数,在每个分辨率下,分别计算估计的视差图与下采样的标签数据之间每个像素的绝对误差之和。根据不同的权重,将每个分辨率下的贡献相加,权重设置与文献[17]保持一致,从分辨率F2到F6分别设置为0.005,0.01,0.02, 0.08,0.32。本文使用的KITTI2012和KITTI2015数据集进行额外的微调,仅在全分辨率视差图上计算损失,将学习率设置为0.001,进行500K优化步骤。
使用终点误差(EPE)和视差误差大于3个像素或5%的像素所占的百分比(D1-all)作为误差测量指标。由于每个序列的图像格式不同,本文从每帧中提取一个大小为320x1216的图片中间部分,适合于下采样的体系结构,并可以用标签视差图来验证所有像素。本文在FlyingThings3D数据集进行预训练,在KITTI2012和KITTI2015数据集进行额外的微调,并在KITTI2015数据集上的输出作定性分析。下面将本文提出的MASNet网络模型与DispNetC[9]、GC-Net[10]和StereoNet[11]等模型在D1-all和运行时间等测量指标作一个性能对比。
表1 不同的视差回归模型在KITTI2015上性能比较
Tab.1 Performance comparison of different models in KITTI2015
模型D1-all/%运行时间/sDispNetC[9]GC-Net[10]StereoNet[11]本文算法4.342.874.834.560.060.90.020.02
由表1可以看出,本文提出的模型与DispNetC相比,接近它的性能,但本文算法的运行时间为0.02 s是DispNetC模型0.06 s的1/3倍。StereoNet是目前运行速度最快的模型,但本文可以达到它的运行速度0.02 s,性能却比它提高0.33%。与GC-Net比较可以看出,本文是以牺牲部分精度为代价,得到以高45倍的运行速度满足在线使用的要求。
在图5中可以看出DispNetC和StereoNet模型输出的视差图中物体边缘比较模糊,而GC-Net和本文算法可以获取更多精确细节的视差图(比如马路和路中间的铁柱比较清晰),说明本文加入了残差细化模块能够获得很好的效果。
由于StereoNet模型和GC-Net模型无法加入本文提出的自适应模块,下面将DispNetC和本文算法模型采取有自适应和没有自适应模块,分别在KITTI数据集中的校园、住宅区和马路三种环境下的性能比较。
根据表2,展示了自适应模型对住宅区环境表现的性能更好,但是在校园中的表现相对于其他序列明显更差,这主要是因为与其他序列相比,校园的帧数要少得多,导致相应的在线执行的自适应步骤更少。实际上,随着从环境中获取到的帧越来越多,在线自适应模型提高的性能越来越好。DispNetC和本文算法在没有自适应模块的情况下表现出的性能一般,在精度上,DispNetC占优,但在运行速度上,本文算法能够到达41帧每秒的处理速度。带上自适应模块之后,这两种算法的性能大大提高,在精度上,本文算法总体上比DispNetC较好,也证实了本文模型与DispNetC相比,在接近它的性能下,可以高出大约3倍的帧率处理速度运行,平均25.36帧每秒的处理速度,完全可以达到在线使用的要求。
图5 不同网络模型在KITTI2015的视差图
Fig.5 Disparity of different network models in KITTI2015
表2 不同环境下的性能比较
Tab.2 Performance comparison in different environments
校园住宅区马路模型自适应D1-all/% EPED1-all/%EPED1-all/%EPEFPSDispNetC没有15.532.158.621.4510.661.6515.65本文算法没有50.8810.9437.3110.3446.4514.6141.23DispNetC有9.651.533.501.033.731.068.21本文算法有7.811.662.430.952.311.0425.36
如下图6所示,将本算法进行了各个模块运行时间占比分析,方便后续开展优化算法的工作。本文的算法在Nvidia Titan X上以单张图片处理时间为0.02 s的速度运行,在整个运行时间中可以看出CNN提取特征图、金字塔特征提取、视差估计、成本卷的形成和滤波共占用整个网络模型计算的不到一半时间(48.1%),最耗时的步骤是残差细化阶段,基本占用了一半(49.3%)的计算量。后续的工作将在残差细化阶段继续优化算法,提高运行速度。
图6 各个模块运行时间占比
Fig.6 The running time proportion of each module
本文提出一种实时自适应的立体匹配网络算法,通过引入一种新的轻量级的、有效的结构模块自适应立体匹配网络(MASNet),在网络中嵌入无监督损失模块和残差细分模块,使立体匹配的准确性和实时性得到提高。在KITTI2015数据集上运行时间达到0.02 s,并分别在KITTI数据集中的校园、住宅区和马路三种环境下,以平均约25帧每秒的处理速度运行。本文已经展示了在线无监督微调如何成功地解决深度端到端视差回归网络领域自适应问题,未来的工作着重于保持高帧率运行速度下,进一步提高准确率。
[1] Zhang K, Fang Y, Min D, et al. Cross-scale cost aggregation for stereo matching[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014: 1590-1597.
[2] Hosni A, Rhemann C, Bleyer M, et al. Fast cost-volume filtering for visual correspondence and beyond[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(2): 504-511.
[3] Liu C, Yuen J, Torralba A. Sift flow: Dense correspondence across scenes and its applications[J]. IEEE transactions on pattern analysis and machine intelligence, 2011, 33(5): 978-994.
[4] 任艳楠, 刘琚, 元辉, 等. 采用几何复杂度的室外场景图像分割和深度生成[J]. 信号处理, 2018, 34(5): 531-538.
Ren Yannan, Liu Ju, Yuan hui, et al. Outdoor scene image segmentation and depth generation based on geometric complexity[J]. Journal of Signal Processing, 2018, 34(5): 531-538.(in Chinese)
[5] Zbontar J, LeCun Y. Stereo matching by training a convolutional neural network to compare image patches[J]. Journal of Machine Learning Research, 2016, 17(1-32): 2.
[6] Shaked A, Wolf L. Improved stereo matching with constant highway networks and reflective confidence learning[C]∥Proc. of the IEEE Conference on Computer Vision and Pattern Recognition, 2017: 4641- 4650.
[7] Guney F, Geiger A. Displets: Resolving stereo ambiguities using object knowledge[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2015: 4165- 4175.
[8] Luo W, Schwing A G, Urtasun R. Efficient deep learning for stereo matching[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 5695-5703.
[9] Mayer N, Ilg E, Hausser P, et al. A large dataset to train convolutional networks for disparity, optical flow, and scene flow estimation[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 4040- 4048.
[10] Kendall A, Martirosyan H, Dasgupta S, et al. End-to-end learning of geometry and context for deep stereo regression[C]∥Proceedings of the IEEE International Conference on Computer Vision, 2017: 66-75.
[11] Khamis S, Fanello S, Rhemann C, et al. Stereonet: Guided hierarchical refinement for real-time edge-aware depth prediction[C]∥Proceedings of the European Conference on Computer Vision(ECCV), Munich, Germany, 2018: 8-14.
[12] Jie Z, Wang P, Ling Y, et al. Left-Right Comparative Recurrent Model for Stereo Matching[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018: 3838-3846.
[13] Chang J R, Chen Y S. Pyramid Stereo Matching Network[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018: 5410-5418.
[14] Tonioni A, Poggi M, Mattoccia S, et al. Unsupervised adaptation for deep stereo[C]∥Proceedings of the IEEE International Conference on Computer Vision, 2017: 1605-1613.
[15] Geiger A, Lenz P, Urtasun R. Are we ready for autonomous driving? the kitti vision benchmark suite[C]∥Computer Vision and Pattern Recognition(CVPR), 2012 IEEE Conference on. IEEE, 2012: 3354-3361.
[16] Menze M, Geiger A. Object scene flow for autonomous vehicles[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2015: 3061-3070.
[17] Sun D, Yang X, Liu M Y, et al. Pwc-net: Cnns for optical flow using pyramid, warping, and cost volume[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2018: 8934- 8943.
Reference format: Zeng Junying, Feng Wulin, Qin Chuanbo, et al. Real-time Adaptation for Stereo Matching[J]. Journal of Signal Processing, 2019, 35(5): 843- 849. DOI: 10.16798/j.issn.1003- 0530.2019.05.016.
曾军英 男, 1977年生, 江西赣州人。五邑大学信息工程学院副教授、硕士研究生导师, 博士, 主要研究方向为机器视觉和生物特征识别。
E-mail: zengjunying@126.com
冯武林 男, 1993年生, 广东茂名人。五邑大学信息工程学院硕士研究生, 主要研究方向为图像处理和机器视觉。
E-mail: 1070781709@qq.com
秦传波 男, 1982年生, 安徽人。五邑大学信息工程学院讲师, 博士, 主要研究方向为生物特征识别和医学图像分割。
E-mail: tenround@163.com
甘俊英 女, 1964年生, 江西省樟树人。五邑大学教授、硕士研究生导师, 博士, 主要研究方向为生物特征识别。
E-mail: junyinggan@163.com
翟懿奎 男, 1982年生, 广东省河源人。五邑大学信息工程学院副教授、硕士研究生导师, 博士, 主要研究方向为生物特征识别及SAR图像识别。
E-mail: yikuizhai@163.com
王 璠 男, 1992年生, 山东滨州人。五邑大学智能制造学部信息与通信工程专业研究生, 主要研究方向为图像处理和机器视觉。
E-mail: victorwf1219@163.com
朱伯远 男, 1995年生, 河南新乡人。五邑大学信息工程学院硕士研究生, 主要研究方向为图像处理与机器视觉。
E-mail: 936575812@qq.com