-
论文信息
- 标题: Depth Estimation via Affinity Learned with Convolutional Spatial Propagation Network
- 作者:Xinjing Cheng, Peng Wang, Ruigang Yang
- 机构:百度研究院
- 出处:ECCV 2018
-
代码链接
- https://github.com/XinJCheng/CSPN
-
论文主要贡献
- 提出 CSPN 模块,比起 SOTA 的传播策略,能够高效、精确地进行深度估计
- 将 CSPN 扩展到深度补全任务,在传播过程提供稀疏测量结果
-
论文要点翻译
- 摘要
- 单张图像的深度估计是计算机视觉领域的基础研究问题,本文提出了简单有效的卷积空间传播网络用于学习深度估计任务中的亲和矩阵(affinity matrix)
- 具体来说,本文采用的是高效的线性传播模型,方法通过循环卷积的方式进行传播,邻域像素的亲和力关系通过深度卷积神经网络进行学习
- 本文将设计的 CSPN 方法运用到两个单目深度估计任务中:(1)对 SOTA 方法输出的深度预测结果进行优化;(2)将稀疏的深度图数据转为密集深度图,主要通过在空间传播的过程中填充对应的稀疏深度图实现;第二个任务的主要依据在于雷达采集的数据通常较为准确,不过样本相对稀疏
- 本文将提出的 CSPN 在 NYU v2 和 KITTI 两个数据集上进行了实验测试,实验结果表明,提出的 CSPN 模块可以改进深度估计的质量(深度估计误差降低至少 30%),并提高了运行的速度(是原来方法的2-5倍)
- 引言
- 单目深度估计任务利用单张图像估计每个像素到相机的距离,已经在增强现实、自动驾驶、机器人等领域得到广泛运用。给定单张图像,现有的许多方法利用深度全卷积神经网络,结合户内户外的大量的训练数据,改进模型的全局估计能力,利用 deconv 、跨层链接、上采样等操作进行局部结构信息优化;然而, 对现有方法的输出结果仔细观察可以发现,预测的深度图在物体边缘仍然表现不佳,和给定的图像契合程度不足
- 最近的方法中,Liu 等人提出直接利用空间传播网络学习和图像有关的亲和矩阵,比起手工设计的图像分割亲和矩阵而言,该方法得到更好的结果。但是,这个 SPN 执行的是每次扫描一行或者扫描一列的方式,本质上是串行的,因此在实际的从左到右的传播过程中,最右边的一列必须等最左边的一列传播的值进行更新,此外,本文还观察到,深度优化通常不需要全局的信息传播,这个过程仅仅只需要一些局部的上下文
- 本文提出卷积空间传播网络 CSPN,其中所有像素对应的深度值都在局部的卷积上下文的条件下进行同时的更新,而更长范围的场下问则通过循环的方式进行获取,实验结果显示,CSPN 可以得到比 SPN 和双边滤波方法更为精确的结果,在实验中还发现本文的 CSPN 方法通过并行更新的策略得到显著的性能改善,在推理速度和越策结果质量上都比串行方法更优
- 为了验证提出的 CSPN 的易用性,CSPN 可以简单地将稀疏深度图转换为致密深度图,这个任务在机器人和自动驾驶领域有重要应用价值,因为雷达采集的数据通常是精确但稀疏的结果。通过将稀疏的测量结果和图像比较,本文生成全分辨率的致密深度图,为完成该任务,本文主要考虑三个重要的算法要求:(1)恢复得到的致密深度图应当贴合原始图像;(2)稀疏结果中的深度值应当得以保留,因为他们是从精确的雷达结果获取的;(3)稀疏图转致密的过程应当使得邻域的深度值保持圆滑
- 为了满足上述的三个条件,本文使用【13】中提出的镜像链接操作,使得能够生成更好的深度图,另外,本文将传播过程嵌入到 SPN 中,以保持稀疏点的深度值,实验结果表明,该方法能够生成比没有稀疏样本的 SPN 更好的结果和更低的误差,最终,将 SPN 替换为本文的 CSPN,得到了最好的结果
- 在两个数据集上的实验结果表明,模型能够提高大概 30% 的 SOTA 方法性能,而且推理速度是相关方法运用 SPN 方法推理速度的 2-5 倍
- 相关工作
- 利用 CNN 和 CRF 的单目深度估计:监督学习方法、半监督学习方法、无监督学习方法;CRF 用于优化结果,这些方法中的衡量邻域限速的亲和力的方式都是手工设计的
- 深度增强:通过图像滤波操作结合手工设计的亲和力矩阵的增强、基于 TV(total variation)的数据驱动的增强;图像超分辨率
- 用于空间扩散的亲和力矩阵:用于直接预测亲和力矩阵的 DCNN、随机漫步网络用于优化像素级的语义分割亲和力矩阵;空间传播网络
- 深度补全:深度补全
- 方法
- 本文将问题形式化为各向异性扩散过程,扩散的张量通过深度 CNN 直接从给定的图像学习,最后用于指导输出结果的优化
- 给定深度图 D o ∈ R m × n D_o\in \mathbb R ^{m \times n} Do∈Rm×n 为现有的深度估计网络的输出,结合图像 X ∈ R m × n X \in \mathbb{R}^{m \times n} X∈Rm×n,任务的目的在于通过 N 次迭代得到新的深度图 D n D_n Dn,该结果首先保留图像的更多细节信息,并对像素级的深度预测结果进行优化
- 不失一般性地,将 D o D_o Do 嵌入到隐空间 H ∈ R m × n × c H \in \mathbb{R}^{m \times n \times c} H∈Rm×n×c,则大小为 k 的核卷积转换函数对于每个步骤 t 可以写为 : H i , j , t + 1 = ∑ a , b = − k − 1 2 k − 1 2 k i , j ( a , b ) ⨀ H i − a , j − b , t H_{i,j,t+1}=\sum_{a,b=-\frac{k-1}{2}}^{\frac{k-1}{2}}k_{i,j}(a,b) \bigodot H_{i-a,j-b,t} Hi,j,t+1=∑a,b=−2k−12k−1ki,j(a,b)⨀Hi−a,j−b,t,其中的 k i , j ( a , b ) = k ^ i , j ( a , b ) ∑ a , b , a , b ≠ 0 ∣ k ^ i , j ∣ , k i , j ( 0 , 0 ) = 1 − ∑ a , b , a , b ≠ 0 k i , j ( a , b ) k_{i,j}(a,b)=\frac{\hat k_{i,j}(a,b)}{\sum_{a,b,a,b \ne 0}|\hat k_{i,j}|},k_{i,j}(0,0)=1-\sum_{a,b,a,b \ne 0}k_{i,j}(a,b) ki,j(a,b)=∑a,b,a,b=0∣k^i,j∣k^i,j(a,b),ki,j(0,0)=1−∑a,b,a,b=0ki,j(a,b)
- 上述公式中的转换核 k ^ i , j ∈ R k × k × c \hat k_{i,j} \in \mathbb{R}^{k \times k \times c} k^i,j∈Rk×k×c 是亲和力网络的输出结果,和输入图像相关;核的大小 k k k 通常设为奇数以保证计算像素 (i,j) 的邻域上下文时计算区域是对称的, ⨀ \bigodot ⨀ 是元素对应乘操作,本文将核的权重正则化到 ( − 1 , 1 ) (-1,1) (−1,1) 以保证模型训练的稳定和收敛,满足 ∑ a , b , a , b ≠ 0 ∣ k i , j ( a , b ) ∣ ≤ 1 \sum_{a,b,a,b \ne 0}|k_{i,j}(a,b)| \le 1 ∑a,b,a,b=0∣ki,j(a,b)∣≤1。最后,通过 N 次迭代循环,达到稳定的分布
- 与 PDE 扩散过程的对应关系
-
本文的 CSPN 满足 SPN 的所有性质,将上述的公式重新写为
-
上述公式中 λ i , j = ∑ a , b k i , j ( a , b ) \lambda_{i,j}=\sum_{a,b}k_{i,j}(a,b) λi,j=∑a,bki,j(a,b),G 是 m n × m n mn \times mn mn×mn 的转换矩阵,PDE 扩散过程可以推导为:
- H v t + 1 = G H v t = ( I − D + A ) H v t H_v^{t+1}=GH_v^t=(I-D+A)H_v^t Hvt+1=GHvt=(I−D+A)Hvt
- H v ( t + 1 ) − H v t = − ( D − A ) H v t H_v^{(t+1)}-H_v^t=-(D-A)H_v^t Hv(t+1)−Hvt=−(D−A)Hvt
- ∂ t H v ( t + 1 ) = − L H v t \partial_t H_v^{(t+1)}=-LH_v^t ∂tHv(t+1)=−LHvt
- 其中的 L 是拉普拉斯矩阵,D 是包含所有 λ i , j \lambda_{i,j} λi,j 的对角矩阵,A 是亲和力矩阵,A 是 G 的非对角线部分
-
从形式化的过程可以看出,本文的 CSPN 和 SPN的扫描线式的传播方式不同,SPN 按序扫描图像中四个方向的所有部分,而 CSPN 每一步同时只向所有方向传播图像的局部区域
-
实际过程选择卷积操作学习 CSPN 的核,因为可以通过图像向量化的方式高效实现,且能够在深度优化等任务中得到实时性能
-
- 用于深度补全的空间传播
- 比起深度估计,深度补全有额外的稀疏深度图 D s D_s Ds 输入帮助 RGB 图像的深度估计,具体来说,一个稀疏集合的像素可以得到深度传感器采集的真实深度值,该信息可以用于指导深度估计中的传播过程
- 相似的,将稀疏深度图 D s = { d i , j s } D_s=\{d_{i,j}^s\} Ds={di,js} 嵌入到隐空间表示 H s H^s Hs,则可以得到 H i , j , t + 1 = ( 1 − m i , j ) H i , j , t + 1 + m i , j H i , j s H_{i,j,t+1}=(1-m_{i,j})H_{i,j,t+1}+m_{i,j}H_{i,j}^s Hi,j,t+1=(1−mi,j)Hi,j,t+1+mi,jHi,js, m i , j = I ( d i , j s > 0 ) m_{i,j}=\mathbb{I}(d_{i,j}^s\gt 0) mi,j=I(di,js>0) 表示(i,j) 位置是否有可用的深度信息
- 通过这样的方式,优化的深度图可以保留稀疏次啊杨的结果,再利用这些结果传播信息到邻域像素,保证系数深度和邻域像素之间的圆滑性,借助扩散过程,最终的深度图能够较好匹配原图像结构,使得方法满足本文提出的三个要求
- 此外,该过程仍然满足 PDE 扩散的性质,转换矩阵仍然可以将 G 中的行进行替换得到
- 提出的策略主要有几个优势:保留稀疏深度值得准确结果、偏移值稳定等
- 复杂性分析
- CSPN 是卷积操作,因此一步的时间复杂度为 O ( log 2 ( k 2 ) ) O(\log_2(k^2)) O(log2(k2)),最终的 N 步复杂度为 O ( log 2 ( k 2 ) N ) O(\log_2(k^2)N) O(log2(k2)N)
- 端到端架构
- 摘要
论文笔记-Depth Estimation via Affinity Learned with Convolutional Spatial Propagation Network
最新推荐文章于 2022-09-12 02:23:19 发布