近期几乎看了所有有关NERF技术论文,本身我研究的领域不在深度学习技术方向,是传统的机器人控制和感知。所以总结了下这部分基于学习的感知技术,会写一个新的系列教程讲解这部分三维感知技术的发展到最新的技术细节,并支持自己最近的项目开发和论文。本系列禁止转载,有技术探讨可以发邮件给我 [email protected]
深入浅出3D感知中的优化与学习技术
1 引言
3D感知是计算机视觉和机器人领域的一个核心问题,旨在从2D图像恢复场景的3D结构和运动。它在自动驾驶、虚拟/增强现实、智能制造等许多领域有着广泛应用。传统的3D感知算法大多基于几何视觉的理论,通过精心建模和优化来求解相机位姿、场景结构等几何量。而近年来,深度学习的崛起为3D感知问题带来了新的思路和活力。本文将对3D感知中的经典优化方法和深度学习方法进行综述和对比,并重点介绍一些将二者结合的新进展,让读者对这一领域的基本概念和前沿成果有一个全面的了解。
2 将3D感知问题建模为优化问题
在3D感知的诸多任务中,如相机定位、稠密重建、非刚性形变估计等,我们面临的核心问题往往可以表述为一个优化问题:
min
x
∈
X
E
(
x
;
y
)
(
1
)
\min\limits_{x \in X} E(x; y) \qquad (1)
x∈XminE(x;y)(1)
其中
y
y
y表示输入的观测数据(如一组图像),而
x
x
x表示我们感兴趣的几何量(如相机位姿、场景深度),构成了优化变量。
X
X
X表示
x
x
x的可行域,囊括了我们对
x
x
x已知的先验知识(如相机姿态必须是刚体变换)。
E
(
x
;
y
)
E(x; y)
E(x;y)是一个衡量
x
x
x与
y
y
y匹配程度的目标函数(或代价函数),可以分解为数据项和正则项两部分:
E
(
x
;
y
)
=
D
(
x
;
y
)
+
R
(
x
)
(
2
)
E(x; y) = D(x; y) + R(x) \qquad (2)
E(x;y)=D(x;y)+R(x)(2)
数据项
D
(
x
;
y
)
D(x; y)
D(x;y)度量了在当前估计
x
x
x下,观测数据
y
y
y的拟合/重投影误差,反映了
x
x
x对
y
y
y的解释能力。以双目立体匹配为例,若
y
y
y为左右两帧图像,而
x
x
x为像素的视差值,则数据项可以定义为:
D
(
x
;
y
l
,
y
r
)
=
∑
p
ρ
(
y
l
(
p
)
,
y
r
(
p
−
[
x
(
p
)
,
0
]
T
)
)
(
3
)
D(x; y_l, y_r) = \sum_p \rho\Big( y_l(p), y_r\big(p - [x(p), 0]^T\big) \Big) \qquad (3)
D(x;yl,yr)=p∑ρ(yl(p),yr(p−[x(p),0]T))(3)
其中 p p p遍历所有像素, ρ ( ⋅ ) \rho(\cdot) ρ(⋅)为某种颜色/梯度constancy误差度量。这个数据项的意义是:在估计的视差 x x x下,将左图 y l y_l yl的像素 p p p投影到右图 y r y_r yr,若视差正确,则左右图像的局部外观应该一致。
正则项
R
(
x
)
R(x)
R(x)通常基于一些先验假设,对
x
x
x施加额外约束,鼓励解具有某些良好性质。以稠密重建为例,我们通常假设相邻像素的深度值是接近的(分段光滑),于是可以定义一个鼓励深度图光滑的正则项:
R
(
x
)
=
∑
p
∥
∇
x
(
p
)
∥
1
(
4
)
R(x) = \sum_p \|\nabla x(p)\|_1 \qquad (4)
R(x)=p∑∥∇x(p)∥1(4)
其中 p p p遍历像素, ∇ x ( p ) \nabla x(p) ∇x(p)为深度图在 p p p处的梯度。
求解优化问题(1),得到的
x
∗
x^*
x∗就是在观测数据
y
y
y下对真实几何量
x
^
\hat{x}
x^的最大后验估计(MAP):
x
∗
=
arg
max
x
P
(
x
∣
y
)
=
arg
max
x
P
(
y
∣
x
)
P
(
x
)
(
5
)
x^* = \arg\max_x P(x|y) = \arg\max_x P(y|x) P(x) \qquad (5)
x∗=argxmaxP(x∣y)=argxmaxP(y∣x)P(x)(5)
换言之,优化求解的过程可以看作是在先验( R ( x ) R(x) R(x))和似然( D ( x ; y ) D(x; y) D(x;y))之间寻求平衡,得到后验概率最大的估计值。
当目标函数是凸的,且其梯度/Hessian矩阵容易计算时,优化问题可以用牛顿法、高斯牛顿法、梯度下降等经典算法有效求解。然而,3D感知问题的目标函数往往是高度非线性和非凸的,优化变量 x x x所在的空间(如李群流形SE(3))也可能是非欧的,这给问题的求解带来很大挑战。
3 经典的优化算法及其局限性
针对非线性最小二乘型的3D感知问题,高斯牛顿法是最常用的优化算法。它在当前估计点
x
k
x_k
xk处,对目标函数
E
(
x
)
E(x)
E(x)做二阶泰勒展开:
E
(
x
)
≈
E
(
x
k
)
+
J
(
x
k
)
Δ
x
+
1
2
Δ
x
T
H
(
x
k
)
Δ
x
(
6
)
E(x) \approx E(x_k) + J(x_k) \Delta x + \frac{1}{2} \Delta x^T H(x_k) \Delta x \qquad (6)
E(x)≈E(xk)+J(xk)Δx+21ΔxTH(xk)Δx(6)
其中
J
(
x
k
)
=
∂
E
∂
x
∣
x
=
x
k
J(x_k) = \frac{\partial E}{\partial x}|_{x=x_k}
J(xk)=∂x∂E∣x=xk为
E
E
E在
x
k
x_k
xk处的Jacobian矩阵,
H
(
x
k
)
=
∂
2
E
∂
x
2
∣
x
=
x
k
≈
J
(
x
k
)
T
J
(
x
k
)
H(x_k) = \frac{\partial^2 E}{\partial x^2}|_{x=x_k} \approx J(x_k)^T J(x_k)
H(xk)=∂x2∂2E∣x=xk≈J(xk)TJ(xk)为近似的Hessian矩阵。高斯牛顿法通过求解如下线性方程来生成更新步长
Δ
x
k
\Delta x_k
Δxk:
H
(
x
k
)
Δ
x
k
=
−
J
(
x
k
)
T
r
(
x
k
)
(
7
)
H(x_k) \Delta x_k = -J(x_k)^T r(x_k) \qquad (7)
H(xk)Δxk=−J(xk)Tr(xk)(7)
其中
r
(
x
k
)
:
=
D
(
x
;
y
)
∣
x
=
x
k
r(x_k) := D(x; y)|_{x=x_k}
r(xk):=D(x;y)∣x=xk为数据项的残差。然后用
Δ
x
k
\Delta x_k
Δxk更新当前估计:
x
k
+
1
=
x
k
⊞
Δ
x
k
(
8
)
x_{k+1} = x_k \boxplus \Delta x_k \qquad (8)
xk+1=xk⊞Δxk(8)
直到 Δ x k \Delta x_k Δxk足够小。这里的 ⊞ \boxplus ⊞表示在流形空间(如SE(3))上的加法。注意 ( 7 ) (7) (7)是个高维稀疏线性系统,可用Cholesky分解或预条件共轭梯度等方法高效求解。
当目标函数局部可以很好地用二次函数近似时,高斯牛顿法具有二阶收敛速度。然而它也有一些局限性:
-
在最优解附近,目标函数的Hessian阵必须是正定的,否则 ( 7 ) (7) (7)不保证有解。
-
Jacobian矩阵 J ( x k ) J(x_k) J(xk)中的某些项可能在数值上或理论上难以定义/求导,如光度误差对姿态变量的导数。
-
算法容易停留在局部极小值,缺乏全局视野。
-
若目标函数含有非光滑的正则项(如 L 1 L_1 L1范数),则Jacobian在奇异点不存在。
一些改进的优化技术如Levenberg-Marquardt方法通过信赖域策略缓解了正定性问题,但其它问题仍然存在。
为了增强鲁棒性,人们常常在数据项中使用截断二次等M估计函数,降低异常值的影响。但这些非凸函数也使得优化更加困难,可能需要更复杂的启发式或全局优化策略。
4 基于深度学习的端到端方法
与经典建模范式不同,深度学习采用了一种数据驱动的端到端方法。其基本思想是:收集一个有代表性的数据集
D
=
{
(
y
i
,
x
i
∗
)
}
i
=
1
N
\mathcal{D}=\{(y_i, x_i^*)\}_{i=1}^N
D={(yi,xi∗)}i=1N,其中
y
i
y_i
yi为输入图像,
x
i
∗
x_i^*
xi∗为图像对应的ground truth几何参数(如深度图、光流场等)。然后训练一个深层神经网络
f
θ
:
y
↦
x
f_\theta: y \mapsto x
fθ:y↦x,其参数
θ
\theta
θ通过最小化如下经验风险而学习得到:
L
(
θ
)
=
∑
i
=
1
N
l
(
f
θ
(
y
i
)
,
x
i
∗
)
(
9
)
\mathcal{L}(\theta) = \sum_{i=1}^N l\big(f_\theta(y_i), x_i^*\big) \qquad (9)
L(θ)=i=1∑Nl(fθ(yi),xi∗)(9)
其中
l
(
⋅
)
l(\cdot)
l(⋅)为某种loss函数,如
L
1
/
L
2
L_1/L_2
L1/L2 loss。这一范式的优点是:
-
端到端可微分,不需要人工提取特征或设计目标函数/优化策略。只要定义合适的网络结构和loss函数,就可以从数据中自动学习复杂的映射。
-
前向推断速度快,可满足实时性需求。
-
可迁移性好。从一个场景学到的泛化能力可迁移到新场景。
以单目深度估计为例,Eigen等[1]首次将CNN应用于该任务。他们在网络的encoder中使用了两个并行的VGG分支分别提取全局和局部特征,decoder采用多尺度架构,在4个spatial resolution下估计深度,并对深度图施加了尺度不变loss和平滑loss。Laina等[2]提出了更深的ResNet架构,并引入了反距离的Berhu loss,取得了更好的效果。
对于光流估计,FlowNet[3]首次证明了深度回归在该任务上的有效性。后续的FlowNet2[4]引入了级联和迭代细化,大幅提升了估计精度。RAFT[5]从另一角度解决该问题,巧妙地将经典的优化过程与深度特征提取相结合,可以看作本文后面要重点介绍的一类混合方法。
尽管深度学习取得了瞩目成绩,但纯端到端的黑盒回归也有其局限性:
-
缺乏对几何和物理规律的显式建模,纯数据驱动的学习有时不够稳定,容易受domain gap影响。
-
需要大量paired数据做监督训练,在许多3D感知任务上难以获得,labeled数据的稀缺限制了模型的表现。
-
不可解释和可控。学习到的映射高度复杂,缺乏可解释性。网络的预测结果不能保证满足一些几何约束。
因此,如何将基于物理的归纳偏置与深度学习的表达能力相结合,已成为新的研究热点。
5 将深度学习嵌入优化过程
一类有前景的混合方法是将深度学习嵌入到传统优化过程中,形成"可学习"、"可微分"的复合层。这类方法在经典优化算法的框架下,用学习的模块替代手工设计的某些部分(如能量/梯度的计算),并端到端训练整个系统。RAFT[5]是这一思想在光流估计任务上的代表作。
与FlowNet等直接回归光流场的方法不同,RAFT明确建模了光流估计中的迭代优化过程。记
I
1
,
I
2
\mathcal{I}_1, \mathcal{I}_2
I1,I2为输入的两帧图像,网络的目标是学习一个映射:
f
1
,
f
2
,
…
,
f
N
=
R
A
F
T
(
I
1
,
I
2
)
(
10
)
f_1, f_2, \dots, f_N = \mathrm{RAFT}(\mathcal{I}_1, \mathcal{I}_2) \qquad (10)
f1,f2,…,fN=RAFT(I1,I2)(10)
其中
f
k
∈
R
H
×
W
×
2
f_k \in \mathbb{R}^{H \times W \times 2}
fk∈RH×W×2为第
k
k
k次迭代估计的光流场。具体来说,RAFT包含三个关键组件:
(1) 特征提取网络,用CNN从输入图像中提取高层特征:
F
1
=
F
e
a
t
u
r
e
E
n
c
o
d
e
r
(
I
1
)
,
F
2
=
F
e
a
t
u
r
e
E
n
c
o
d
e
r
(
I
2
)
(
11
)
\mathbf{F}_1 = \mathrm{FeatureEncoder}(\mathcal{I}_1), \quad \mathbf{F}_2 = \mathrm{FeatureEncoder}(\mathcal{I}_2) \qquad (11)
F1=FeatureEncoder(I1),F2=FeatureEncoder(I2)(11)
(2) 相关体计算模块,基于当前估计的光流场
f
k
f_k
fk和特征
F
1
,
F
2
\mathbf{F}_1, \mathbf{F}_2
F1,F2构造一个4D相关体:
C
k
=
C
o
m
p
u
t
e
C
o
r
r
e
l
a
t
i
o
n
(
f
k
,
F
1
,
F
2
)
(
12
)
\mathbf{C}_k = \mathrm{ComputeCorrelation}(f_k, \mathbf{F}_1, \mathbf{F}_2) \qquad (12)
Ck=ComputeCorrelation(fk,F1,F2)(12)
直观上, C k [ i , j , p , q ] \mathbf{C}_k[i, j, p, q] Ck[i,j,p,q]度量了以 f k [ i , j ] f_k[i, j] fk[i,j]为中心的 I 1 \mathcal{I}_1 I1局部patch与 I 2 \mathcal{I}_2 I2中对应patch的相似性。这一步可以看作传统优化方法中计算匹配代价的过程。
(3) GRU更新单元,迭代细化光流估计:
h
k
+
1
,
f
k
+
1
=
G
R
U
U
p
d
a
t
e
(
f
k
,
h
k
,
C
k
)
(
13
)
h_{k+1}, f_{k+1} = \mathrm{GRUUpdate}(f_k, h_k, \mathbf{C}_k) \qquad (13)
hk+1,fk+1=GRUUpdate(fk,hk,Ck)(13)
其中 h k h_k hk是隐藏状态, f k + 1 f_{k+1} fk+1是细化后的光流场。这一步可以看作传统优化中的梯度下降更新。但与手工设计的梯度不同,这里的更新方向由数据驱动学习得到。
整个RAFT网络是端到端可训练的,所有参数都通过最小化预测光流场
f
N
f_N
fN与GT光流场
f
∗
f^*
f∗的差异来学习:
L
(
θ
)
=
∑
i
=
1
M
∥
f
N
(
i
)
−
f
∗
(
i
)
∥
1
(
14
)
\mathcal{L}(\theta) = \sum_{i=1}^M \|f_N^{(i)} - f^{*(i)}\|_1 \qquad (14)
L(θ)=i=1∑M∥fN(i)−f∗(i)∥1(14)
RAFT的优点在于,它将学习的连续warp和相关计算嵌入到每一步的迭代更新中,而非单纯堆叠卷积层,赋予了网络更强的归纳偏置。同时,显式建模迭代过程也使得网络更加可解释。实验表明,这一混合范式在准确性和泛化性方面都优于纯端到端的回归方法。
类似地,BA-Net[6]以及LM-Reloc[7]将深度学习引入SLAM后端优化中。它们用学习的网络模块替代了传统的 bundle adjustment (BA) 流程中的某些手工设计部分,如:
(1) 在Pose-Graph优化中,用GNN预测每条边的信息矩阵,作为Mahalanobis距离的权重[6];
(2) 在特征点BA中,用CNN预测每对匹配的置信度,作为Huber损失的权重[7]。
这些学习的模块可以看作是传统目标函数的"插件",使优化过程更加自适应和数据驱动。实验表明,嵌入学习模块的SLAM系统在准确性、鲁棒性方面都有明显提升。
6 将优化嵌入深度学习
与上一节"learning in optimization"的思路互补,另一类混合范式是将优化模块嵌入到深度网络中,形成端到端可训练的"可微分优化层"。这类方法用可微分的优化层(用内部迭代求解一个隐式函数)替代网络中的某些前馈层,使网络输出自动满足一些硬约束。
以经典的PnP问题为例,已知一组3D点
{
X
i
}
\{\mathbf{X}_i\}
{Xi}在世界坐标系下的坐标和它们在相机中的2D投影
{
x
i
}
\{\mathbf{x}_i\}
{xi},估计相机的位姿
T
∈
S
E
(
3
)
\mathbf{T} \in \mathrm{SE}(3)
T∈SE(3)。传统的DLT、P3P等解法先建立目标函数:
E
(
T
)
=
∑
i
=
1
N
∥
π
(
T
X
i
)
−
x
i
∥
2
(
15
)
E(\mathbf{T}) = \sum_{i=1}^N \|\pi(\mathbf{T}\mathbf{X}_i) - \mathbf{x}_i\|^2 \qquad (15)
E(T)=i=1∑N∥π(TXi)−xi∥2(15)
其中 π : P 3 → P 2 \pi: \mathbb{P}^3 \to \mathbb{P}^2 π:P3→P2为相机投影模型。然后用SVD或Ransac求解一个闭式解 T ∗ = arg min T E ( T ) \mathbf{T}^* = \arg\min_{\mathbf{T}} E(\mathbf{T}) T∗=argminTE(T)。
DSAC[8]提出了一种可微分的RANSAC层,可以集成到任意网络中用于PnP估计。该层将传统RANSAC的采样、模型估计和评价过程公式化为可微分的操作,关键是将假设模型的评价函数softmax化:
s
i
=
exp
(
−
E
(
T
i
)
/
τ
)
∑
j
exp
(
−
E
(
T
j
)
/
τ
)
(
16
)
s_i = \frac{\exp(-E(\mathbf{T}_i)/\tau)}{\sum_{j} \exp(-E(\mathbf{T}_j)/\tau)} \qquad (16)
si=∑jexp(−E(Tj)/τ)exp(−E(Ti)/τ)(16)
其中
τ
\tau
τ为温度参数。DSAC层的输出是加权的假设集合:
T
∗
=
∑
i
s
i
T
i
,
s.t.
∑
i
s
i
=
1
(
17
)
\mathbf{T}^* = \sum_{i} s_i \mathbf{T}_i, \quad \text{s.t.} \sum_{i} s_i = 1 \qquad (17)
T∗=i∑siTi,s.t.i∑si=1(17)
DSAC层可以插入到任意2D-3D匹配网络中,使网络输出的匹配自动满足PnP约束。实验表明,这种端到端的可微分求解范式可以明显提高姿态估计的精度,且节省后处理时间。
类似地,一些工作将ICP[9]、特征匹配[10]、mesh简化[11]等传统几何任务重构为可微分层,嵌入到深度网络中,实现几何约束感知的端到端学习。
参考文献:
[1] Eigen D, Puhrsch C, Fergus R. Depth map prediction from a single image using a multi-scale deep network[J]. NeurIPS, 2014.
[2] Laina I, Rupprecht C, Belagiannis V, et al. Deeper depth prediction with fully convolutional residual networks[C]//3DV. IEEE, 2016.
[3] Dosovitskiy A, Fischer P, Ilg E, et al. Flownet: Learning optical flow with convolutional networks[C]//ICCV, 2015.
[4] Ilg E, Mayer N, Saikia T, et al. Flownet 2.0: Evolution of optical flow estimation with deep networks[C]//CVPR, 2017.
[5] Teed Z, Deng J. RAFT: Recurrent all-pairs field transforms for optical flow[C]//ECCV, 2020.
[6] Tang C, Tan P. BA-Net: Dense bundle adjustment network[J]. arXiv, 2018.
[7] Wei Y, Liu S, Zhao W, et al. Deepsfm: Structure from motion via deep bundle adjustment[C]//ECCV, 2020.
[8] Brachmann E, Krull A, Nowozin S, et al. DSAC-differentiable RANSAC for camera localization[C]//CVPR, 2017.
[9] Wang Y, Solomon J M. Deep closest point: Learning representations for point cloud registration[C]//ICCV, 2019.
[10] Zhang J, Sun D, Luo Z, et al. Learning two-view correspondences and geometry using order-aware network[C]//ICCV, 2019.
[11] Hanocka R, Hertz A, Fish N, et al. MeshCNN: a network with an edge[J]. ACM TOG, 2019.
7 基于优化与学习的混合范式
7.1 引入物理约束和先验知识
将物理规律、几何约束等先验知识纳入深度学习pipeline,是混合范式的一个关键优势。这不仅可以提高模型输出的几何一致性和物理合理性,还能降低模型对label数据的依赖。那么如何设计高效、通用的约束编码和融合机制呢?
一种思路是将约束显式地嵌入loss函数中。如Pixel2Mesh[1]在mesh变形的同时,加入了拉普拉斯loss和法向loss,鼓励相邻顶点的位置和法向保持局部一致。SDFDIFF[2]在用SDF表示形状时,设计了Eikonal loss L E = ∫ Ω ( ∣ ∇ f ( x ) ∣ − 1 ) 2 d x \mathcal{L}_E=\int_\Omega (|\nabla f(\mathbf{x})|-1)^2\mathrm{d}\mathbf{x} LE=∫Ω(∣∇f(x)∣−1)2dx,鼓励SDF满足 i s o \mathrm{iso} iso-surface的性质。
另一思路是将约束隐式地嵌入网络结构中。如Shen等[3]在点云配准中,用一个预训练的网络估计两组点之间的软对应,再用 S V D \mathrm{SVD} SVD求解最优刚体变换,从而将 S E ( 3 ) \mathrm{SE}(3) SE(3)流形约束融入前向传播。RAFT[4]用相关体搜索匹配,用GRU迭代更新optical flow,从而将光流平滑性、small displacement等先验隐式地编码入网络计算图。
此外,还可将约束直接纳入输入和输出表示中。如 NeuralSym[5] 用球谐函数(SPHARM)表示物体形状,从而显式建模物体的拓扑和对称性。Gao等[6]发现用黎曼度量等内蕴表示取代欧式表示,可使网络更好地适应非欧流形(如旋转群 S O ( 3 ) \mathrm{SO(3)} SO(3))。
7.2 降低对label数据的依赖
大量的label数据对于监督深度学习至关重要,但在许多3D感知任务中,精确的逐点标注非常困难。因此,如何最大限度地利用无监督和弱监督信号,来指导深度网络学习更加鲁棒和可泛化的表示,成为一个重要课题。
合理利用数据本身蕴含的某些不变性,是构建自监督loss的重要手段。一个典型例子是对极几何约束:从不同视角观测同一个刚体,任意匹配点的深度值应满足对极方程。基于这一原理,Zhou等[7]联合训练两个CNN分别估计单目深度和相机姿态,并设计loss监督二者的一致性,实现了仅需monocular视频的深度自监督学习。
多模态感知也为弱监督学习开辟了新路径。投影laser点提供的稀疏深度能为image depth估计构建有力的监督信号[8];而在缺乏audio-visual pair的情况下,音频和视频互为表征空间,音频事件和视觉目标的同步性能为它们构建弱监督[9]。
此外,知识的迁移和先验的编码也能降低学习难度。如 D O N \mathrm{DON} DON[10]将ShapeNet上预训练的object detector迁移到KITTI数据,仅用很少的label数据微调,就实现了高精度的outdoor 3D检测。Neural Point Descriptor[11]基于可区分性、平滑性、局部一致性等先验,无监督地学习了一个通用、紧致的3D点云描述子表示。
7.3 提高系统的泛化性和适应性
现实世界的视觉环境千差万别,数据分布也呈现多样性(multi-modality)。因此,如何确保算法能够适应不同的场景、传感器和外部条件,是3D感知落地应用必须考虑的问题。现有的一些研究思路包括:
(1) 基于元学习的快速自适应。Finn等[12]提出MAML算法,通过二次梯度下降学习一个对不同任务都有良好初始化的meta-learner,从而实现少样本条件下的快速finetune。类似思想也被用于6D位姿估计[13]、深度估计[14]等任务的domain adaptation中。
(2) 不变特征表示学习。Cohen等[15]利用群等变性,设计了对SO(3)旋转不变的spherical CNN,使学习到的3D形状描述子具有更好的泛化能力。Zhu等[16]用cycle-consistency loss实现了跨模态(如CT-X光)医学图像的迁移,学到了对成像原理不变的语义特征。
(3) 持续学习与渐进优化。Dai等[17]提出渐进网络,在连续的优化域上学习网络权重,避免在新样本到来时catastrophic forgetting。VASE[18]引入外显记忆模块,实现了open-set的语义场景理解。
(4) 主动学习与探索。Chaplot等[19]让agent主动探索周围环境并搜集hard samples,再将其用于导航策略学习,实现了indoor navigation任务的自我强化。Luo等[20]提出主动多视图深度估计,学习next-best-view并动态重建,在固定预算下提高深度图的精度和完整性。
7.4 提高模型的可解释性和可控性
深度学习模型常被比作"黑盒",内部工作机制难以洞察,这在一定程度上阻碍了其在自动驾驶等高安全性要求场合的应用。有鉴于此,AI可解释性、可控性研究受到学界和业界的高度重视。在3D感知领域,一些有益的尝试包括:
(1) 显式编码高层语义概念。3D-RCNN[21]在两阶段检测框架中引入orientation anchor,将物体的朝向显式地建模到网络中,在提高精度的同时,输出也更符合人的直觉。Han等[22]提出将场景组织为物体-关系图,并用GCN建模推理其中的语义,使基于图的3D重建更加可解释。
(2) 模仿人类的感知推理过程。投射3D模型到2D,再回归6D位姿[23];或者先粗略估计物体的3D包围盒,再迭代优化[24],都是在网络的计算过程中模仿人类"从粗到精分解子任务"的认知习惯。类似地,Neural-Sym[5]通过显式建模视图间和物体内的对称关系,模仿人类对物体形状的感知。
(3) 对抗性学习增强网络鲁棒性。Xiao等[25]发现,添加物理上合理的random perturbation(如小幅度旋转平移),可使PointNet等3D分类网络产生错误预测。为此,他们提出对抗性训练和r-max pooling等策略,增强网络应对形变的能力。Zeng等[26]研究了移动机器人中传感器和运动规划模块的"协同对抗",揭示了其内部机理。
(4) 后修正与自我纠错。Hu等[27]提出gradslam,学习一个RNN,在SLAM过程中接收未来观测,主动返回过去重新优化历史帧的位姿。这种"后知后觉"(hindsight)的反复修正机制,使SLAM系统更接近人脑的思维过程。Liao等[28]在VO pipeline后附加一个correction network,显式地估计前一阶段pose的不确定性并订正,可视为自我纠错的一种形式。
7.5 拓展应用场景
除了3D感知,混合优化-学习范式在其他需要求解复杂逆问题的领域也有广阔的应用前景。它可以用于学习加速物理模拟[29]、drug discovery中的分子优化[30]、机器人强化学习中的运动规划[31]等。这也为3D感知和其他AI领域的cross-fertilization提供了新的可能。
尽管基于优化的传统3D感知方法和基于学习的新兴方法各有所长,但它们在求解相同问题时往往是互补的。将二者有机融合、协同优化,对于开发更加鲁棒、高效、可解释的3D感知系统至关重要。
这一节的技术还在不断探索,参考了如下论文
参考文献:
[1] Wang N, Zhang Y, Li Z, et al. Pixel2mesh: Generating 3d mesh models from single rgb images[C]//ECCV 2018.
[2] Jiang Y, Ji D, Han Z, et al. Sdfdiff: Differentiable rendering of signed distance fields for 3d shape optimization[C]//CVPR 2020.
[3] Shen W, Zhang B, Huang S, et al. Learning-based Optimization for Robust Registration of Point Clouds[J]. arXiv preprint arXiv:2103.05858, 2021.
[4] Teed Z, Deng J. RAFT: Recurrent all-pairs field transforms for optical flow[C]//ECCV 2020.
[5] Hosseinzadeh M, Li K, Latif Y, et al. Neural-Sym: Learning to Generate Symbolic 3D Shapes from 2D Images[J]. arXiv preprint arXiv:2106.00722, 2021.
[6] Gao R, Xie J, Zhang M, et al. Learning canonical pose and viewpoint for object categories in the wild[J]. arXiv preprint arXiv:2109.00106, 2021.
[7] Zhou T, Brown M, Snavely N, et al. Unsupervised learning of depth and ego-motion from video[C]//CVPR 2017.
[8] Ma F, Cavalheiro G V, Karaman S. Self-supervised sparse-to-dense: Self-supervised depth completion from lidar and monocular camera[C]//ICRA 2019.
[9] Yang Z, Shi D, Jain S, et al. Lane[C]//ICASSP 2021.
[10] Qi C R, Liu W, Wu C, et al. Frustum pointnets for 3d object detection from rgb-d data[C]//CVPR 2018.
[11] Elbaz G, Avraham T, Fischer A. 3d point cloud registration for localization using a deep neural network auto-encoder[C]//CVPR 2017.
[12] Finn C, Abbeel P, Levine S. Model-agnostic meta-learning for fast adaptation of deep networks[C]//ICML 2017.
[13] Xiang Y, Schmidt T, Narayanan V, et al. Posecnn: A convolutional neural network for 6d object pose estimation in cluttered scenes[J]. RSS, 2018.
[14] Tonioni A, Rahnama O, Joy T, et al. Learning to adapt for stereo[C]//CVPR 2019.
[15] Cohen T S, Geiger M, Koehler J, et al. Spherical cnns[J]. ICLR, 2018.
[16] Zhu J Y, Zhang R, Pathak D, et al. Toward multimodal image-to-image translation[J]. NeurIPS, 2017.
[17] Dai X, Yang G, Chen X, et al. Progressive Self-Supervised Representation Learning for Skeleton-Based Action Recognition[J]. IEEE Trans. Multimedia, 2021.
[18] Gül S, Abolghasemi M, Bätz M, et al. Vase: A new approach for video-based active speaker detection[J]. arXiv preprint arXiv:2105.09897, 2021.
[19] Chaplot D S, Gandhi D, Gupta S, et al. Learning to explore using active neural slam[J]. arXiv preprint arXiv:2004.05155, 2020.
[20] Luo K, Guan T, Ju L, et al. Learning-based Automatic Reconstruction of 3D Models from Real-World Images[J]. arXiv preprint arXiv:2103.14098, 2021.
[21] Kundu A, Li Y, Rehg J M. 3d-rcnn: Instance-level 3d object reconstruction via render-and-compare[C]//CVPR 2018.
[22] Han Z, Wang X, Vong C M, et al. 3DViewGraph: learning global features for 3d shapes from a graph of unordered views with attention[C]//ICLR 2019.
[23] Xiang Y, Schmidt T, Narayanan V, et al. Posecnn: A convolutional neural network for 6d object pose estimation in cluttered scenes[J]. RSS, 2018.
[24] Kehl W, Manhardt F, Tombari F, et al. SSD-6D: Making rgb-based 3d detection and 6d pose estimation great again[C]//ICCV 2017.
[25] Xiao C, Yang J, Li B, et al. Generating adversarial point clouds in 3D[J]. arXiv preprint arXiv:2101.11589, 2021.
[26] Zeng A, Feng Z, Zhang H, et al. Adversarial Feature Learning for Collaborative Motion Prediction[J]. arXiv preprint arXiv:2109.06467, 2021.
[27] Hu Y, Luo Z, Wang X, et al. GradSLAM: Dense SLAM Meets Automatic Differentiation[J]. IEEE Trans. Robot., 2021.
[28] Liao Z, Ji X, Wang W, et al. DNET: A deep network for correcting the correspondence of visual odometry[J]. arXiv pre