-
从立体像对估计视差是摄影测量和计算机视觉中最基本的问题之一[1], 其关键任务是寻找同名特征点的像素对应关系, 通常称为立体匹配或立体密集匹配。考虑一对在水平方向上不同视点拍摄的左右影像对, 计算左图中每个像素点在右图中的位置, 并得到每个点的视差值d。因此, 左影像中某个像素点(x, y)在右影像中的位置为(x-d, y), 该点的深度值(即物方点到相机中心的距离)可以通过公式z=fB/d获得, 其中f为相机的焦距, B为相机中心的距离(即基线长)[2]。对于一对双目视觉图像, 需要经过极线校正后才可用于双目立体匹配。而校正被定义为每张图像平面的旋转变换使它们的共轭极线共线, 并且平行于图像的某一个轴[3]。高效、准确的立体匹配算法除了可应用于数字地表模型(digital surface model, DSM)和数字高程模型(digital elevation model, DEM)的制作外, 对于许多需要快速和可靠响应的现实应用也至关重要, 如机器人导航、增强现实和自动驾驶等。目前, 主流的立体匹配方法基本都可以划分为4个步骤[4], 即匹配代价的计算、匹配代价的聚合、通过优化能量函数确定视差、视差值的精化。其中传统的匹配代价聚合是通过对窗口内的匹配代价进行求和或求平均来执行[5]。现在的深度学习方法表明, 匹配代价计算、代价聚合和视差计算步骤可以整合到一个卷积神经网络(convolutional neural networks, CNN)中, 直接从立体图像来估算视差[6]。
最近的国内外研究表明, 立体匹配可以借助深度学习方法完成。其中, 利用卷积神经元网络学习立体影像中的几何和上下文信息是研究重点。在几何学领域中, 卷积神经网络已经被广泛地应用于密集匹配、同步定位与建图、三维重建[7]。例如, GC-Net(geometry and context network)[8]提出一种端到端的监督学习方式, 通过构建代价体表示左右影像的对应关系, 利用3D卷积从代价体中学习到视差图。在GC-Net的基础上, PSM-Net(pyramid stereo matching network)[9]引入了空间金字塔池化(spatial pyramid pooling, SPP)模块和膨胀卷积, 将像素级特征扩展到具有不同尺度的区域级特征, 结合全局和局部特征线索, 形成可靠的视差估计代价体, 利用全局上下文信息进行立体匹配。为了更加充分地利用特征中的全局和局部信息, GWC-Net(group-wise correlation stereo network)[10]在构建匹配代价体时提出组相关的策略, 即对多通道的特征图沿着通道分组, 用向量内积的方式计算左右特征组间的相似度关系, 最大可能保留了更多的代价信息。为了处理高分辨率影像, HSM-Net(hierarchical deep stereo matching network)[11]采用编码-解码器的结构, 先由立体像对编码得到多尺度特征, 再利用由粗到精的金字塔结构对多尺度代价体解码得到高分辨率视差图。
虽然上述3D卷积方法可以很好地学习视差方向上的上下文信息, 但所需要的内存与时间消耗却十分巨大, 在硬件条件的限制下, 处理大视差搜索范围的影像需要引入额外的数据处理操作。因此, GA-Net(guided aggregation network)[12]提出了两种新的层结构——半全局聚合层(semi-global aggregation layer, SGA)与局部引导聚合层(local guided aggregation, LGA), 来代替广泛采用的3D卷积层, 以减少内存消耗和计算复杂度。SGA层是传统半全局匹配(semi-global matching, SGM)算法[13]的可微分近似, 而LGA层则源于传统的代价滤波策略, 被用于改善细微结构。为了解决视差不连续处的边缘变粗的问题, 文献[14]提出基于稀疏点的高效、灵活的代价聚合方式, 形式和可形变卷积类似。文献[15]提出了一种稀疏成本体积网络, 在构建3D代价体时去掉了批处理维度, 使得代价体可以用2D卷积层处理, 显著提升了速度。文献[16]将深度学习的密集匹配方法应用于航空遥感影像, 取得了优于传统方法的效果。文献[17]提出了一种循环编码-解码器的结构, 可用于多视角立体像对的密集匹配中, 提高了匹配的精度。文献[18]提出了一种由粗到精的立体匹配算法, 可以获得更精细化的视差。
由此可见, 深度学习已经在立体像对的密集匹配中有了较为深入的研究, 相比于传统的立体匹配方法具有明显的优势, 成为一个新的研究热点。然而, 这些主流的深度学习密集匹配方法仅在近景数据集中进行了广泛验证, 而在航空遥感影像中应用极少。在遥感影像密集匹配中, 这些方法是否优于传统方法仍需要大量验证。本文评估了几种具有代表性的深度学习方法, 并在三种不同类型的密集匹配数据集中测试了深度学习方法的性能表现。
-
本文选取了5种具有代表性的经典深度学习方法, 分别是GC-Net[8]、PSM-Net[9]、GWC-Net[10]、HSM-Net[11]、GA-Net[12], 用于评估不同模型的性能。其中, GC-Net的创新性在于其利用3D卷积实现了端到端的密集匹配算法; PSM-Net改进了GC-Net中的特征提取和代价匹配模块, 引入SPP层和堆叠漏斗网络, 充分利用图片中的几何和上下文信息; GWC-Net在形成代价体时既包含组相关代价体, 又包含聚合代价体, 充分利用特征中的信息; GA-Net提出用2D卷积层替代广泛使用的3D卷积层, 使用引导聚合的方式减少网络计算复杂度; HSM-Net提出编码-解码器结构, 由粗到精地解码图片, 使其分辨率逐渐提高。
-
GC-Net[8]是基于深度学习的密集匹配算法之一, 后续的许多算法都是在其基础上进行的改进。其创新性地提出了代价体的形式, 并利用3D卷积的概念获得更多的几何和上下文信息, 从核线影像中直接回归出视差图。将预测结果与真实视差图进行比对, 再将误差反向传播进行迭代直至网络收敛。
GC-Net采用端到端的学习方式, 直接从核线立体像对中学习得到视差图, 可以大大减少工程设计的复杂性。整个GC-Net模型由4个步骤组成:(1)利用共享权重的2D卷积层提取影像的高维特征, 得到一系列下采样两倍后的特征图; (2)将左特征图和对应通道的右特征图在视差方向上逐像素错位串联得到代价体, 对于每个立体像对, 形成大小为H×W×(Dmax+ 1)×C的4维张量, 其中H、W为影像的高、宽, Dmax为最大视差值, C为特征通道数; (3)为了更好地利用上下文全局信息, 利用多尺度的3D卷积和3D反卷积对代价体进行规则化操作, 并应用一个单独的3D反卷积将代价体上采样回原始影像大小; (4)对代价体应用soft argmax操作, 将匹配代价转换为归一化后的概率体, 将概率值作为权重, 沿视差方向求加权平均, 得到视差图。GC-Net网络结构示意图如图 1所示。
-
PSM-Net[9]的主要创新点是引入SPP模块和堆叠漏斗网络, 相比于GC-Net方法, 它能够更加充分地利用上下文信息。其中, SPP模块通过聚合不同尺度和不同位置的环境信息构建代价体来充分利用全局环境信息, 后续采用结合中间监督的堆叠漏斗3D卷积网络调整匹配代价体。在卷积神经网络中, 首先原始图像经过整个网络, 在每层之后生成特征图, 然后利用特征图中相近的特征进行池化操作, 这样能够保留一些全局的空间特征[19]。PSM-Net网络结构示意图如图 2所示。
在2D特征提取阶段, 为了扩大网络的感受野, 获得更大范围的上下文信息, 第1个卷积层往往使用较大的卷积核(7×7或11×11), 而在PSM-Net网络中仅使用3×3的小卷积核, 通过3个卷积层级联的方式构建一个具有相同感受野的更深层次的网络, 显著降低了计算量。通过特征提取, 输出特征图的大小为输入图像大小的1/4×1/4。随后在输出特征图上应用SPP模块进一步收集上下文信息, 使用自适应平均池化将特征压缩到4个尺度上, 并紧跟一个1×1的卷积层来减少特征通道数, 之后采用双线性插值的方法将4个尺度的特征图上采样, 以恢复到输入特征的大小。
PSM-Net采用与GC-Net相同的操作来构建四维匹配代价体。为了能够充分学习全局上下文信息, 采用堆叠漏斗结构的3D卷积网络规则化代价体。该结构主要由3个相同的漏斗模块构成, 其本质是一个3D的多尺度编码-解码结构, 每一个模块都会利用上采样函数以及与GC-Net相同的回归方法得到视差图, 整个规则化网络共获得3个视差结果, 可以计算3个损失值作为中间层监督, 总的训练损失为3个损失的加权求和值。在测试阶段, 将最后一个模块的输出结果作为最终的视差图。PSM-Net在GC-Net框架的基础上, 充分考虑了全局环境信息与局部细节的结合, 在弱纹理和无纹理等病态区域具有很高的鲁棒性。
-
GWC-Net[10]是在PSM-Net的基础上进一步优化。目前, 主要有两种主流的代价体构建方式, 一种是DispNetC[4]中采用的左右特征取内积的方式, 另一种是GC-Net提出的左右特征逐像素错位串联的方式[8]。但是, 前者通过点积记录特征相似性, 丢失了大部分信息, 而后者需要更多的参数量学习相似性度量函数。GWC-Net创新性地提出了组相关的策略, 用于代价体的构建, 以解决上述缺点。
组相关策略将特征分成多组并逐组计算相关图。在构建代价体时, 先将左右特征沿着通道维度分成N个组, 在所有视差水平上, 将第i个左特征组与对应的第i个右特征组取内积计算相关性, 获得多个分组相关图。将所有相关图堆叠成一个[N, D/4, H/4, W/4]大小的四维组相关代价体, 其中, D为最大视差值, H和W分别为输入影像的高和宽。为进一步提高模型性能, 同时构建级联代价体[10], 将两种形式的代价体进行组合。GWC-Net中构建的代价体包含内积和串联两种形式的代价表示, 能够充分利用图像中的信息。GWC-Net网络结构示意图如图 3所示。
GWC-Net结构参考了PSM-Net网络, 除了采用组相关的方式构建代价体外, 还对原有的3D聚合网络进行了细节优化。首先在漏斗模块最后一个上采样层前, 添加一个由卷积层构成的辅助输出模块; 然后移除不同漏斗模块结构之间的残差连接, 减少计算复杂度和模型预测所需时间; 最后在两个漏斗模块的连接处添加一个1×1×1大小的卷积层, 在不增加计算成本的情况下提高模型性能。该模型提出的组相关策略利用了传统相关匹配代价的计算方式, 为3D聚合网络提供了丰富的相似性度量特征, 相比于串联代价体, 显著降低了参数需求。
-
为了准确地估计视差, 无论是在传统方法还是深度学习网络模型中, 对匹配代价进行聚合都是至关重要的。由于3D卷积层具有立方的复杂性, 因此在实际应用时具有极大的显存占用和计算资源消耗。GA-Net[12]提出了两种由2D卷积层组成的代价聚合层, 可用来代替广泛使用的3D卷积层, 分别用于捕获局部和全局的代价依赖性。
第一种是SGA, 它是SGM方法[13]的可微分近似, 可以在不同的方向上聚合匹配代价, 有利于在遮挡区域或无纹理区域处实现精确的视差估计。传统的SGM方法从16个不同的方向聚合匹配代价, 但无法直接应用于端到端的立体匹配网络中。因为SGM方法有自定义参数, 用来控制视差图的不平滑和不连续, 但是参数都是手动设计的而且不易调整[20]。Zhang等[12]设计了一种新的支持反向传播的半全局代价聚合步骤, 表示如下:
$$ \left\{ \begin{array}{l} C_\mathit{\boldsymbol{r}}^A\left( {\mathit{\boldsymbol{p}}, d} \right) = {w_0}\left( {\mathit{\boldsymbol{p}}, \mathit{\boldsymbol{r}}} \right) \cdot C\left( {\mathit{\boldsymbol{p}}, d} \right) + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{w_1}\left( {\mathit{\boldsymbol{p}}, \mathit{\boldsymbol{r}}} \right) \cdot C_\mathit{\boldsymbol{r}}^A\left( {\mathit{\boldsymbol{p}} - \mathit{\boldsymbol{r}}, d} \right) + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{w_2}\left( {\mathit{\boldsymbol{p}}, \mathit{\boldsymbol{r}}} \right) \cdot C_\mathit{\boldsymbol{r}}^A\left( {\mathit{\boldsymbol{p}} - \mathit{\boldsymbol{r}}, d - 1} \right) + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{w_3}\left( {\mathit{\boldsymbol{p}}, \mathit{\boldsymbol{r}}} \right) \cdot C_\mathit{\boldsymbol{r}}^A\left( {\mathit{\boldsymbol{p}} - \mathit{\boldsymbol{r}}, d + 1} \right) + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{w_4}\left( {\mathit{\boldsymbol{p}}, \mathit{\boldsymbol{r}}} \right) \cdot \mathop {{\rm{max}}}\limits_i C_\mathit{\boldsymbol{r}}^A\left( {\mathit{\boldsymbol{p}} - \mathit{\boldsymbol{r}}, i} \right)\\ {\rm{s}}.{\rm{t}}.{\rm{}}\mathop \sum \limits_i {w_i}\left( {\mathit{\boldsymbol{p}}, \mathit{\boldsymbol{r}}} \right) = 1, {\rm{}}i = 0, 1, 2, 3, 4 \end{array} \right. $$ (1) 其中, $C_\mathit{\boldsymbol{r}}^A\left( {\mathit{\boldsymbol{p}}, d} \right) $表示像素位置为$\mathit{\boldsymbol{p}}$的候选视差d, 沿单位向量r方向聚合的代价体; $C\left( {\mathit{\boldsymbol{p}}, d} \right)$表示像素位置为p的候选视差$d$的代价体; ${w_i}$(i=0, 1, 2, 3, 4)表示由引导网络产生的权重矩阵值。通常一个密集匹配算法采用绝对误差之和来计算每个位置$\mathit{\boldsymbol{p}}$上所有视差d的匹配成本C[21]。
另一方面, 上下采样被广泛用于立体匹配模型中, 但会使目标的边缘模糊。为了解决这个问题, Zhang等[12]提出了LGA。它可以优化薄结构区域和物体边缘, 恢复上下采样造成的细节损失。和传统的代价滤波不同, LGA在每个像素位置p上有3个K×K的滤波, 分别对应视差d、d-1、d+1, 在每个像素位置p的局部区域中, LGA采用K×K×3的权重矩阵进行聚合, 它可以表示如下:
$$ \left\{ \begin{array}{l} {C^A}\left( {\mathit{\boldsymbol{p}},d} \right) = \sum\nolimits_{\mathit{\boldsymbol{q}} \in {N_\mathit{\boldsymbol{P}}}} {{\omega _0}} \left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{q}}} \right) \cdot C\left( {\mathit{\boldsymbol{q}},d} \right) + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\sum\nolimits_{\mathit{\boldsymbol{q}} \in {N_\mathit{\boldsymbol{P}}}} {{\omega _1}} \left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{q}}} \right) \cdot C\left( {\mathit{\boldsymbol{q}},d - 1} \right) + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\sum\nolimits_{\mathit{\boldsymbol{q}} \in {N_\mathit{\boldsymbol{P}}}} {{\omega _2}} \left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{q}}} \right) \cdot C\left( {\mathit{\boldsymbol{q}},d + 1} \right)\\ {\rm{s}}.{\rm{t}}.\mathop \sum \limits_{\mathit{\boldsymbol{q}} \in {N_\mathit{\boldsymbol{P}}}} {\omega _0}\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{q}}} \right) + {\omega _1}\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{q}}} \right) + {\omega _2}\left( {\mathit{\boldsymbol{p}},\mathit{\boldsymbol{q}}} \right) = 1 \end{array} \right. $$ (2) 其中, ${C^A}\left( {\mathit{\boldsymbol{p}}, d} \right)$表示像素位置为p的候选视差d的聚合代价体; $C\left( {\mathit{\boldsymbol{q}}, d} \right)$表示像素位置为q的候选视差d的代价体; ${\omega _0}$、${\omega _1}$、${\omega _2}$为3个过滤器的权重矩阵值。
GA-Net网络结构示意图如图 4所示。先用共享权重的堆叠漏斗网络提取左右影像的特征, 然后利用文献[8]中的方法构建4D代价体, 最后将代价体输入到聚合模块中进行规则化和视差回归。图 4中绿色的引导子网络负责为SGA和LGA生成代价聚合权重, 其中SGA层从4个方向进行聚合匹配代价, LGA用在视差回归之前, 以达到优化4D匹配代价体的目的。实验中采用Smooth L1损失函数, 相对于L2损失函数来说, L1损失函数在不连续视差处具有鲁棒性, 并且对奇异值和噪声具有低敏感性。
GA-Net仅采用两个GA层和两个3D卷积层的代价聚合模块就超过具有19个3D卷积层的GC-Net[8], 且一个GA层的计算复杂度仅为3D卷积层的1/100, 这就使得GA-Net模型能实现高精度的实时预测。
-
由于显卡内存的限制, 很多先进的方法难以处理高分辨率图像。为了解决这个问题, Yang等[11]提出了HSM-Net, 用于从由粗到精的特征结构中搜索视差的对应关系。传统的立体匹配算法中引入了由粗到精的金字塔匹配策略, 在较粗分辨率的影像上估计视差, 再将其用作精细尺度视差估计的初值或约束。虽然这种方法的效率很高, 但难以恢复粗分辨率下消失的细小结构。相反, HSM-Net设计了一个高分辨率的金字塔解码器结构, 可以由粗到精地解码影像特征, 使其分辨率逐渐提高。HSM-Net模型的网络结构示意图如图 5所示。
HSM-Net的关键设计原则是由粗到精, 逐步细化视差图, 其主要由3个模块组成, 即立体像对特征提取模块、金字塔代价体解码器模块、视差回归和误差统计模块。特征提取模块中的特征编码器由4个不同尺度的残差模块组成, 负责由粗到精地提取影像中不同细节级别的特征, 并在每个尺度的特征图上运用SPP层[9]进一步融合影像的全局信息。获得左右图像的特征之后, 通过沿视差方向逐像素错位对齐获得4D代价体, 与主流的串联左右影像特征形成代价体不同, HSM采用同一视差水平下特征图相减的方式构建代价体, 这样可以减少通道, 降低3D模型的运算负担。模型中构建了4个尺度的代价体, 组成金字塔结构, 其影像分辨率和视差分辨率逐级增加。随后利用一个特征体解码器模块对不同尺度的代价体顺次进行规则化。
在解码器中, 先用6个conv3D模块处理代价体, 每个模块中包括2个3D卷积层和1个残差连接结构, 再用3D结构的金字塔池化层(SPP结构的扩展)学习代价体中的全局信息。经解码器输出的低分辨率代价体通过上采样与下一尺度的代价体融合并继续进行规则化。利用HSM模型中的金字塔代价体解码器结构可以得到不同尺度的规则化3D代价体, 之后对每个尺度的规则化代价体应用相应的视差回归模块即可生成4个尺度的视差图, 将4个尺度的损失值加权求和作为总的损失值, 以指导网络的训练。因为HSM模型结构简单, 所以训练时需要的参数较少, 速度很快, 可以满足自动驾驶中对程序实时性的需求。
-
为了全面评估深度学习算法在不同数据集下的性能表现, 本文实验采用3套不同类型的数据集:KITTI是开源的街景数据集, München是采集自航摄平台的航空遥感影像数据集, WHU是合成的虚拟航空影像数据集。
-
KITTI街景数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办, 是目前国际上最大的自动驾驶场景下的算法评估数据集[22]。该数据集的采集平台配有2个灰度摄像机、2个彩色摄像机、1个64线激光雷达、4个光学镜头以及1个GPS导航系统。KITTI2015数据集包含200张训练图像和200张测试图像, 左右影像已被纠正为核线立体像对, 平均大小为1 242×375像素。KITTI数据集提供的真值是激光雷达扫描得到的稀疏点云转换而来的视差值, 本文将其中具有真值的训练数据的80%作为训练集, 剩余20%作为测试集以统计精度。
-
München数据集采集自航摄飞机拍摄的航摄影像, 为德国慕尼黑区域的部分场景, 包含3条航带, 共15张14 114×15 522像素的航空影像, 具有80%的航向重叠度和80%的旁向重叠度。作为参考的地面真实深度值以半密集的DSM形式提供, 该DSM是由7个商业软件经匹配和重建生成的, 取其平均或最优值作为最终深度值。由于单幅影像尺寸较大, 在数据预处理时, 选择其中一部分真值覆盖度较完整和地物类型较丰富的区域, 将其裁剪为575×271的图像块, 共261对, 取其中80%作为训练集, 20%作为测试集。
-
WHU数据集是一个虚拟的大型航空遥感数据集[17]。该虚拟航空数据集是从高精度三维数字表面模型虚拟投影成像而得, 数据集覆盖了贵州省湄潭市6.7×2.2 km2的区域。影像的模拟飞行高度约为550 m, 对应地面分辨率约为0.1 m。在11个航向重叠度90%、旁向重叠度80%的条带中共捕获1 776幅图像, 大小为5 376×5 376像素, 对应的1 776幅深度图为真实值。其中, 立体匹配数据集包括261组核线立体像对用于训练, 93组用于测试。数据集提供了裁剪为子块后的子集, 每组像对裁剪为80对768×384大小的子图。
-
为了全面评估深度学习模型在航空遥感影像中的性能和泛化能力, 本文设计了两类实验。第1类是利用3套数据集KITTI2015、München、WHU测试上述5种深度学习方法的性能, 并与经典的SGM方法作对比。第2类是测试深度学习模型的泛化能力, 将3套数据集在PSM-Net网络上的预训练模型不加调整直接应用到目标数据上, 对比分析模型的退化程度。
-
误差统计中采用3像素误差占比作为评价模型精度的指标, 即预测值与真实视差值相差超过3个像素就被认为是误差, 统计误差点占所有有效像素的百分比。5种深度学习模型的训练和测试都在GTX1080Ti显卡上完成, 显存为11 GB。受网络结构的影响, 输入GC-Net、PSM-Net、GWC-Net、HSM-Net的图像块尺寸需为32的倍数, 输入GA-Net的图像块尺寸需为48的倍数。以上几种模型都基于Pytorch深度学习框架实现。所有模型都使用Adam优化器进行优化(其中, 参数${\beta _1} = 0.9$, ${\beta _2} = 0.999$)。在训练KITTI2015数据集时将裁剪尺寸设为512×256, 最大视差搜索范围D设置为128, 学习率设为0.001。受限于显卡的显存, 批处理的大小设置为1。深度学习模型和传统SGM方法在3套数据集上的3像素误差占比见表 1。
表 1 深度学习模型和SGM方法在3套数据集上的3像素误差占比/%
Table 1. Percentage of Three-Pixel Errors of Deep Learning Models and SGM Method on Three Datasets/%
数据集 深度学习模型 SGM GC-Net PSM-Net GWC-Net GA-Net HSM-Net KITTI2015 4.63 3.23 5.03 4.32 6.55 10.67 München 4.13 3.69 3.18 2.64 4.66 9.19 WHU 0.99 1.05 0.94 3.53 4.12 1.37 由表 1可见:(1)5种深度学习模型在3套数据集中都取得了不错的效果, 除WHU数据集外, 其他两套数据集的精度均远高于传统SGM方法。由于WHU是在条件良好的虚拟场景中模拟生成的, 而其余两套数据集为真实影像, SGM方法在数据质量比较好的情况下也能得到很好的结果, 但相比较而言, 深度学习方法对复杂条件下的数据具有更好的稳健性。(2)由于模型对数据的学习能力各不相同, 在标准计算机视觉数据集KITTI2015上取得最好效果的深度学习模型如PSM-Net, 在航空遥感影像中不一定取得最好的效果。
为了比较各种深度学习模型训练中的参数和运行时间, 以KITTI2015数据集为例, 将其裁剪为256×512(其中GA-Net为240×528)的大小, 输入到深度学习模型中, 统计参数量和运行时间, 结果如表 2所示。其中, 参数量以MB为单位, 是整个网络训练过程中所有的模型参数数量; 运行时间以s为单位, 统计测试中每产生1幅视差图所需要的时间。由表 2可见, 各类深度学习模型的参数量和运行时间都在同一数量级上。
表 2 深度学习模型的参数量与运行时间
Table 2. Parameter Numbers and Running Time of Deep Learning Models
统计项 GC-Net PSM-Net GWC-Net HSM-Net GA-Net 参数量/MB 3.18 5.28 6.91 3.71 4.48 运行时间/s 0.36 0.29 0.08 0.05 0.31 为了更直观地比较各模型之间的差别, 将KITTI2015和München数据集中一对立体像对的视差结果进行可视化, 如图 6所示。由图 6可见, 深度学习方法预测的视差图比传统SGM方法更加平滑和完整。由传统SGM方法得到的视差图存在空洞, 需要通过后处理来填充空洞区域, 而深度学习方法不需要后处理, 直接端到端学习得到视差图。需要注意的是, 由于各类方法都存在一定的粗差, 导致在色彩拉伸时产生了颜色不一致(如München图像), 而这并不影响精度的评定。
-
迁移学习是将一个数据集上训练的模型直接应用于另一个数据集上进行预测, 这样可以测试深度学习模型的泛化能力。显然, 一个模型的泛化能力是迈向工程应用最重要的能力。将迁移学习的策略引入航空遥感影像是基于少量样本也可微调深度学习模型的假设[23]。表 3是PSM-Net的预训练模型在目标数据集上的测试结果(3像素误差占比)。例如, 对于München目标数据集, 若用自身作为源数据集进行训练, 其3像素误差占比为3.69%;若采用KITTI2015作为源数据集, 其3像素误差占比为8.84%。
表 3 PSM-Net预训练模型在目标集上的测试结果(3像素误差占比)/%
Table 3. Result of PSM-Net Pre-Training Model Directly Tested on the Target Dataset (Percentage of Three-Pixel Errors)/%
测试集 训练集 KITTI2015 München WHU KITTI2015 3.23 12.92 40.49 München 8.84 3.69 6.12 WHU 3.50 2.86 1.05 总体而言, 基于PSM-Net的深度学习方法具有良好的泛化能力, 在KITTI2015数据集上训练出来的模型可以直接用在München和WHU数据集上, 并能取得不错的效果。而München和WHU的预训练模型在航空影像上的迁移效果要优于KITTI2015的预训练模型, 模型的退化程度更小, 这是由于两套航空影像具有更加相似的影像特征, 模型的泛化性更好, 可重用性也更高。表现较差的是用WHU训练的模型直接预测KITTI2015数据集, 这可能是由于WHU的特征无法概括KITTI2015数据集的特征。
结合表 2和表 3可以看出, 如果用WHU数据集训练, 在München数据集上直接预测的精度要高于SGM方法; 而用München数据集训练, 在WHU数据集上测试, 其精度要低于SGM方法。这说明在真实应用中(无待处理数据的训练样本), 深度学习方法已经对传统方法构成挑战, 但泛化能力仍需进一步提升。
-
本文将深度学习的立体匹配方法应用到航空遥感数据集中, 在多个数据集上和传统的SGM方法进行比较, 并分析了深度学习方法的泛化能力。实验结果表明, 首先, 深度学习方法能很好地应用于航空遥感数据集, 并取得较好的精度; 其次, 深度学习方法取得的精度优于传统方法, 可以实现端到端匹配, 无需后处理; 最后, 深度学习方法具有较强的泛化能力, 在标准计算机视觉数据集KITTI2015上训练的模型可以直接应用到航空遥感数据集中, 但精度有一定程度的下降, 与传统方法相比, 优势不太明显。
-
摘要: 三维重建可用于数字高程模型制作、机器人导航、增强现实和自动驾驶等。视差图是三维重建中一种重要的表达方式,而立体密集匹配是使用最广泛的获取视差图的技术。近年来,随着硬件、数据集、算法的发展,基于深度学习的立体匹配方法受到了广泛关注并取得了巨大成功。然而,这些方法通常在近景立体像对中进行测试,很少被用于遥感影像中。回顾了双目立体匹配的深度学习方法,选出了代表性的5种经典深度学习模型——GC-Net(geometry and context network)模型、PSM-Net(pyramid stereo matching network)模型、GWC-Net(group-wise correlation stereo network)模型、GA-Net(guided aggregation network)模型、HSM-Net(hierarchical deep stereo matching network)模型,将其应用于一套开源街景数据集(KITTI2015)和两套航空遥感影像数据集(München、WHU);分析了各种网络的实现方法,探讨了深度学习在遥感影像立体匹配中的性能,并与传统方法进行了对比。Abstract: 3D reconstruction technology is widely used in digital elevation model production, robot navigation, augmented reality and autonomous driving, etc. Disparity map is an important expression of 3D reconstruction, and stereo matching is the most widely used technology to obtain a disparity map. In recent years, with the development of hardware, data sets, and algorithms, stereo matching methods based on deep learning have received extensive attention and achieved great success. However, these works are mainly validated in close-range images, and the evaluation on remote sensing aerial images is scarce. This paper reviews deep learning methods for stereo matching, and selects five representative models, such as GC-Net (geometry and context network), PSM-Net (pyramid stereo matching network), GWC-Net (group-wise correlation stereo network), GA-Net (guided aggregation network), HSM-Net (hierarchical deep stereo matching network), and applies them to a set of open source street-scene datasets (KITTI2015) and two sets of aerial remote sensing image datasets (München, WHU). The various networks are analyzed, and the performance of deep learning stereo matching methods is discussed and compared to traditional methods. The experimental results reveals that most of the deep learning methods exceed the classic semi-global matching and had a powerful generalization ability on cross-dataset transfer.
-
Key words:
- dense matching /
- deep learning /
- aerial remote sensing image
-
表 1 深度学习模型和SGM方法在3套数据集上的3像素误差占比/%
Table 1. Percentage of Three-Pixel Errors of Deep Learning Models and SGM Method on Three Datasets/%
数据集 深度学习模型 SGM GC-Net PSM-Net GWC-Net GA-Net HSM-Net KITTI2015 4.63 3.23 5.03 4.32 6.55 10.67 München 4.13 3.69 3.18 2.64 4.66 9.19 WHU 0.99 1.05 0.94 3.53 4.12 1.37 表 2 深度学习模型的参数量与运行时间
Table 2. Parameter Numbers and Running Time of Deep Learning Models
统计项 GC-Net PSM-Net GWC-Net HSM-Net GA-Net 参数量/MB 3.18 5.28 6.91 3.71 4.48 运行时间/s 0.36 0.29 0.08 0.05 0.31 表 3 PSM-Net预训练模型在目标集上的测试结果(3像素误差占比)/%
Table 3. Result of PSM-Net Pre-Training Model Directly Tested on the Target Dataset (Percentage of Three-Pixel Errors)/%
测试集 训练集 KITTI2015 München WHU KITTI2015 3.23 12.92 40.49 München 8.84 3.69 6.12 WHU 3.50 2.86 1.05 -
[1] Laga H, Jospin L V, Boussaid F, et al. A Survey on Deep Learning Techniques for Stereo-Based Depth Estimation[J]. arXiv, 2020, DOI: 10.1109/TPAMI.2020.3032602 [2] Pang J, Sun W, Ren J S J, et al. Cascade Residual Learning: A Two-Stage Convolutional Neural Network for Stereo Matching[C]. IEEE International Conference on Computer Vision Workshops, Hawaii, America, 2017 [3] Fusiello A, Trucco E, Verri A. A Compact Algorithm for Rectification of Stereo Pairs[J]. Machine Vision and Applications, 2000, 12(1): 16-22 doi: 10.1007/s001380050120 [4] Mayer N, Ilg E, Hausser P, et al. A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and Scene Flow Estimation[C]. IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas, America, 2016 [5] Yang Qingxiong. A Non-local Cost Aggregation Method for Stereo Matching[C]. IEEE Conference on Computer Vision and Pattern Recognition, Providence, Rhode Island, 2012 [6] Liang Z, Feng Y, Guo Y, et al. Learning for Disparity Estimation Through Feature Constancy[C]. IEEE Conference on Computer Vision and Pattern Recognition, Salt Lake City, America, 2018 [7] 龚健雅, 季顺平.摄影测量与深度学习[J].测绘学报, 2018, 47(6): 693-704 Gong Jianya, Ji Shunping. Photogrammetry and Deep Learning[J]. Acta Geodaetica et Cartographica Sinica, 2018, 47(6): 693-704 [8] Kendall A, Martirosyan H, Dasgupta S, et al. End-to-End Learning of Geometry and Context for Deep Stereo Regression[C]. IEEE International Conference on Computer Vision, Hawaii, America, 2017 [9] Chang Jiaren, Chen Yongshen. Pyramid Stereo Matching Network[C]. IEEE Conference on Computer Vision and Pattern Recognition, Salt Lake City, America, 2018 [10] Guo Xiaoyang, Yang Kai, Yang Wukui, et al. Group-Wise Correlation Stereo Network[C]. IEEE Conference on Computer Vision and Pattern Recognition, Los Angeles, America, 2019 [11] Yang Genshan, Manela J, Happold M, et al. Hierarchical Deep Stereo Matching on High-Resolution Images[C]. IEEE Conference on Computer Vision and Pattern Recognition, Los Angeles, America, 2019 [12] Zhang F, Prisacariu V, Yang R, et al. GA-Net: Guided Aggregation Net for End-to-End Stereo Matching[C]. IEEE Conference on Computer Vision and Pattern Recognition, Los Angeles, America, 2019 [13] Hirschmuller H. Stereo Processing by Semiglobal Matching and Mutual Information[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 30(2): 328-341 [14] Xu H, Zhang J. AANet: Adaptive Aggregation Network for Efficient Stereo Matching[C]. IEEE Conference on Computer Vision and Pattern Recognition, Seattle, America, 2020 [15] Lu C, Uchiyama H, Thomas D, et al. Sparse Cost Volume for Efficient Stereo Matching[J]. Remote Sensing, 2018, DOI: 10.3390/rs10111844 [16] 刘瑾, 季顺平.基于深度学习的航空遥感影像密集匹配[J].测绘学报, 2019, 48(9): 1 141-1 150 Liu Jin, Ji Shunping. Deep Learning Based Dense Matching for Aerial Remote Sensing Images[J]. Acta Geodaetica et Cartographica Sinica, 2019, 48(9): 1 141-1 150 [17] Liu Jin, Ji Shunping. A Novel Recurrent Encoder-Decoder Structure for Large-Scale Multi-view Stereo Reconstruction from an Open Aerial Dataset[C]. IEEE Conference on Computer Vision and Pattern Recognition, Seattle, America, 2020 [18] 夏林元, 肖俊, 林丽群.基于边缘的多尺度立体匹配算法[J].武汉大学学报·信息科学版, 2011, 36(7): 767-770 http://ch.whu.edu.cn/article/id/597 Xia Linyuan, Xiao Jun, Lin Liqun. Segment-Based Stereo Matching Using Edge Dynamic Programming[J]. Geomatics and Information Science of Wuhan University, 2011, 36(7): 767-770 http://ch.whu.edu.cn/article/id/597 [19] Gong Y, Wang L, Guo R, et al. Multi-scale Orderless Pooling of Deep Convolutional Activation Features[C]. European Conference on Computer Vision, Zurich, Switzerland, 2014 [20] Seki A, Pollefeys M. SGM-Nets: Semi-global Matching with Neural Networks[C]. IEEE Conference on Computer Vision and Pattern Recognition, Hawaii, America, 2017 [21] Zbontar J, LeCun Y. Computing the Stereo Matching Cost with a Convolutional Neural Network[C]. IEEE Conference on Computer Vision and Pattern Recognition, Boston, America, 2015 [22] Geiger A, Lenz P, Urtasun R. Are We Ready for Autonomous Driving? The Kitti Vision Benchmark Suite[C]. IEEE Conference on Computer Vision and Pattern Recognition, Providence, Rhode Island, 2012 [23] Liu J, Ji S, Zhang C, et al. Evaluation of Deep Learning Based Stereo Matching Methods: From Ground to Aerial Images[J]. International Archives of the Photogrammetry, Remote Sensing & Spatial Information Sciences, 2018, DOI: 10.5194/isprs-archives-XLⅡ-2-593-2018 -