论文阅读《LEAStereo:Hierarchical Neural Architecture Search for Deep Stereo Matching》
这篇论文提出了一种基于分层 NAS 的端到端立体匹配模型架构,将人类的模型设计知识融入 NAS 框架中,优化针对立体匹配任务的模型结构。论文提出了一种两层的层次搜索方法,包括 cell 单元级结构搜索和网络级结构搜索。在 cell 层级,通过操作的权重(置信度)进行结构选择,考虑了残差结构以提高性能。网络层级则通过调整特征图分辨率和通道数量,平衡了模型性能和计算复杂度。实验结果表明,该方法在立体匹配任务中表现优异,优于传统人工设计的模型。
论文链接位置:https://arxiv.org/pdf/2010.13501.pdf,该资源提供详细研究资料。源码链接位置:https://github.com/XuelianCheng/LEAStereo,具体位置包含完整的代码实现。
概述
神经网络结构搜索(NAS)方法已被广泛应用于多个领域,其核心理念在于模型在搜索空间中(如不同卷积核大小)根据设定的搜索策略寻找到最适合该任务的架构。目前,立体匹配任务多基于人工设计的复杂模型结构,而NAS方法尚未得到广泛应用。本文创新性地提出一种端到端训练的分层结构,系统性地将人类的模型设计知识融入神经结构搜索框架中,以实现针对立体匹配任务的模型架构设计。该架构遵循系统性地从特征提取、代价体构建、稠密匹配等多个模块构建的常规立体匹配框架。通过采用NAS算法,系统性地从多个模型架构、不同特征图大小以及视差图输出范围组成的搜索空间中寻找到最优的模型结构。
模型架构
针对匹配任务的结构搜索空间
在深度学习领域,分割与立体匹配任务常用 Encoder-Decoder 结构,但基于U-Net结构的方法训练难度较大,而基于体素构建的立体匹配方法使用了较好的归纳偏置(人类设计模型结构知识),因此具有更快的收敛速度和更好的性能,该方法逐像素构建了3D代价体,然后基于3D代价体得到视差图,为此也带来了较大的计算量,这使得在NAS算法中搜索该模型结构的过程中带来挑战。
本文提出了一种基于两层的层次搜索:cell 单元级结构搜索、网络级结构搜索。在这项工作中,将立体匹配的几何知识嵌入到模型架构搜索过程中,整体模型主要包含 4 个部分:
特征网络被用于生成2D特征图;
四维匹配代价体构建;
匹配网络被用于代价聚合与匹配代价计算;
将代价体回归为视差图的soft-argmax层;
因仅特征网络与匹配网络拥有可训练参数,故仅对这两个模块进行NAS结构搜索,主要模型架构如图2所示。

cell 层级搜索空间
将NAS的核心搜索单元定义为 cell ,并将其构建成一个具有 N 个节点的全连接的有向无环图;每个 cell 包含2个输入节点、1个输出节点以及3个中间节点;对于第l层,输出节点标记为C_l,而该层的输入节点来源于前两层的输出节点(C_{l-1}和C_{l-2});其中,O表示搜索空间中的操作,具体包括2D卷积和跳跃连接等技术;在结构搜索阶段,中间节点s^{(j)}被定义为:\boldsymbol{s}^{(j)}=\sum_{i\sim j} o^{(i,j)}\left(\boldsymbol{s}^{(i)}\right) \tag{1}
其中,符号\sim表示i节点与j节点相连,此外:
o^{(i, j)}(\boldsymbol{x})=\sum_{r=1}^{\nu} \frac{\exp \left(\alpha_{r}^{(i, j)}\right)}{\sum_{s=1}^{\nu} \exp \left(\alpha_{s}^{(i, j)}\right)} o_{r}^{(i, j)}(\boldsymbol{x})\tag{2}
在深度可变分辨率网络(DVRN)中,o_{r}^{(i, j)} 表示节点间第 r 种候选操作。通过将该层搜索空间的每种操作权重(即置信度)\left(\alpha_{1}^{(i, j)}, \alpha_{2}^{(i, j)}, \cdots, \alpha_{\nu}^{(i, j)}\right) 代入 softmax函数进行归一化处理,最终选择权重最大的操作来构建网络结构。即 o^{(i, j)}=o_{r^{*}}^{(i, j)},其中 r^{*}=\arg \max _{r} \alpha_{r}^{(i, j)}。在此过程中,我们仅需在一个细胞内搜索特征网络和匹配网络的结构,而网络层级的搜索则负责处理空间分辨率的变化。需要注意的是,DARTS结构搜索方法的限制要求节点 C_{l-2}、C_{l-1} 和 C_l 必须具有相同的空间维度和通道数。为了应对相邻单元图像分辨率差异的问题,我们将不匹配的特征图通过上采样或下采样处理,使其达到相同的分辨率。
残差单元

以往的研究均采用将所有中间节点的输出进行连接,最终构成一个 cell 的输出,并将其命名为直接单元。基于resNet的架构,在相邻节点之间引入了跳跃连接线路(如图3所示),这使得网络能够在原有结构上实现残差学习。实验数据显示,采用残差结构的网络能够获得更为优异的性能。
候选操作集
因功能差异,特征网络与匹配模型的候选操作集存在显著区别。针对特征网络,该网络的目标是提取具有差异性的局部特征,以实现逐像素的代价体构建。基于经验观察,在DARTS架构中去除扩张的可分离卷积层和池化层并不会显著影响模型性能。基于此,特征模型的候选操作集限定为O^F\in \{"3x3 \quad conv2D", "skip\quad connection"\},而匹配网络的候选操作集则限定为O^M\in \{"3x3x3 \quad conv3D", "skip\quad connection"\}。
网络层级搜索空间
网络层级搜索空间被定义为cell的排列组合,其主要作用是调节特征维数的变化程度以及cell间的信息传递路径;如图3所示,目标是在预设的L层网格中寻找一条最优路径。在处理每个cell中的filter数量时,需要注意的是,在特征张量的尺寸减半时,通道数量被增加到原来的两倍。此外,文中还提到,网络级搜索空间包含两个关键超参数:最小分辨率与层数L。具体而言,最小分辨率被设定为原图大小的1/24倍,每层的下采样率被设定为{3,2,2,2}。通过这一设置,最终可以得到最小分辨率特征图的尺寸,其大小为原图的1/24。在特征网络的构建中,基础结构包括三层的“茎”结构,其中第一层采用stride=3的3×3 Conv2d模块,第二、第三层则采用stride=1的3×3 Conv2d模块。同时,文中设定层数L的值为LF=6和LM=12,这种设定在平衡计算开销与网络性能方面提供了良好的性能。此外,类似于寻找最优操作序列的过程,文中通过搜索参数β来优化网格结构,以实现最小化损失的目标。
损失函数
采用光滑L1损失函数:
\mathcal{L}=\ell\left(\mathbf{d}_{\text {pred }}-\mathbf{d}_{\mathrm{gt}}\right), \text{其中} \ell(x)=\left\{\begin{array}{lc} 0.5 x^{2}, & |x| \leq 1, \\ 1, & |x| > 1.\tag{3} 在连续松弛的过程中,我们采用双层优化策略,对网络权重 $w$ 和架构参数 $\alpha$、$\beta$ 进行优化。具体而言,通过参数化 cell层级 的结构和网络层级的结构,我们分别利用 $\alpha$ 和 $\beta$ 作为参数。为了提高优化效率,采用一阶泰勒展开;为了防止模型过拟合,我们采用了不重叠的训练集 $train \text { I }$ 和 $train \text { II }$,交替进行 $w$ 和 $\alpha$、$\beta$ 的优化。 在训练集 I 上,基于梯度 ∇_w L(w, α, β) 更新参数 w。在训练集 II 上,基于梯度 ∇_{α,β} L(w, α, β) 更新参数 α 和 β。当优化收敛时,保留每个节点间权重最高的两个操作作为一个 cell 单元,并通过寻找具有最大概率的路径来确定网络结构。  * * * ## 实验结果    
