论文笔记:Spherical Regression: Learning Viewpoints, Surface Normals and 3D Rotations on n-Spheres

文章目录

  • 摘要
  • 动机
    • 深度分类与回归网络
    • 训练
    • 分类
    • 回归
    • 结论
  • 球回归
    • n球上受约束回归
    • 结论
    • $S^1$,$S^2$, $S^3$上的特殊情况
      • $S^1$:欧拉角估计
      • $S^2$:表面法向量估计
      • $S^3$:3D旋转估计
  • 实验
  • 结论

摘要

Many computer vision challenges require continuous outputs, but tend to be solved by discrete classification. The reason is classification’s natural containment within a probability n-simplex, as defined by the popular softmax activation function. Regular regression lacks such a closed geometry, leading to unstable training and convergence to suboptimal local minima. Starting from this insight we revisit regression in convolutional neural networks. We observe many continuous output problems in computer vision are naturally contained in closed geometrical manifolds, like the Euler angles in viewpoint estimation or the normals in surface normal estimation. A natural framework for posing such continuous output problems are n-spheres, which are naturally closed geometric manifolds defined in the ℝ(n+1) space. By introducing a spherical exponential mapping on n-spheres at the regression output, we obtain well-behaved gradients, leading to stable training. We show how our spherical regression can be utilized for several computer vision challenges, specifically viewpoint estimation, surface normal estimation and 3D rotation estimation. For all these problems our experiments demonstrate the benefit of spherical regression. All paper resources are available at https://github.com/leoshine/Spherical_Regression。

很多计算机视觉任务要求连续的输出,但是通常被离散分类解决。原因是分类问题本质上在一个概率n单纯形内。常规的回归缺少一个这样的闭合几何结构,导致训练不稳定并收敛到局部极值。从这点出发,我们重新考察了CNN中的回归问题。我们观察到计算机视觉领域中的连续输出问题本质上在一个闭合的几何流形内,例如在视角估计中的欧拉角,表面法向量估计中的法向量。引起这种连续输出问题的本质框架是n-球,通常是定义在 R n + 1 \mathbb R^{n+1} Rn+1空间下的闭合几何流形。通过在回归输出中引入在n球上的球形映射,我可以得到表现良好的梯度,有利于稳定训练。我们展示了我们的球形回归可以用于多种计算机视觉问题,例如视角估计、表面法向量估计和3D旋转估计。对于这些问题,我们的实验说明了球形回归的优势。文章中的所有资源可在https://github.com/leoshine/Spherical_Regression中获得。

we observe many continuous output problems in computer vision are naturally contained in closed geometrical manifolds defined by the problem at hand.
这篇文章观察到了计算机视觉中很多连续输出问题本质上在一个由特定问题定义的闭合集合流形中。例如,视角估计中,角度在 [ − π , π ] [- \pi , \pi] [π,π]之间,表面法向量估计中法向量的 l 2 l_2 l2模为1。这表明引起这种连续输出问题的本质框架在n-球 S n S^n Sn内, 由在 R n + 1 \mathbb R^{n+1} Rn+1空间的闭合几何流形定义。

这篇文章的主要贡献有三点:

  1. 将n-球应用到计算机视觉中的连续输出问题,利用n-球的性质,做球形回归;
  2. 提出了一种新型的、球形映射激活函数,为在 S n S^n Sn球上回归特别定义。
  3. 展示了一般的球形回归框架可以用于几种计算机视觉任务,例如视角估计、表面法向量估计、3D旋转估计等。

动机

深度分类与回归网络

论文笔记:Spherical Regression: Learning Viewpoints, Surface Normals and 3D Rotations on n-Spheres_第1张图片
将CNN分为两个子网络,为base network和prediction head。

基础网络包括从输入x到中间隐藏embedding层 O = [ o 0 , o 1 , … , o n ] T = H ( x ) \mathbf O=[o_0, o_1,\dots, o_n]^T=H(x) O=[o0,o1,,on]T=H(x)。给定一个输入 x x x,隐藏表示层 O O O是无约束的。

预测头包括了在损失函数之前的最后一个 n + 1 n+1 n+1维的层 P P P,通常称为网络的输出。该层由激活函数 g ( ⋅ ) g(\cdot) g()得到, P : p k = g ( o k ; O ) \mathbf P: p_k=g(o_k;\mathbf O) P:pk=g(ok;O).

训练

在训练过程中,第k层的参数由随机梯度下降更新: θ k ← θ k − γ ∂ L ∂ θ k \theta_k \leftarrow{\theta_k - \gamma \frac{\partial \mathcal L}{\partial \theta_k}} θkθkγθkL。展开链式法则:

∂ L ∂ θ k = ∂ L ∂ P ∂ P ∂ O ( ∂ O ∂ h l − 1 ⋯ ∂ h k + 1 ∂ h k ) ∂ h k θ k \frac{\partial \mathcal L}{\partial \theta_k} = \frac{\partial \mathcal L}{\partial \mathbf P} \frac{\partial \mathbf P}{\partial \mathbf O} (\frac{\partial \mathbf O}{\partial h_{l-1}}\cdots\frac{\partial h_{k+1}}{\partial h_k})\frac{\partial h_k}{\theta _k} θkL=PLOP(hl1Ohkhk+1)θkhk

当梯度受约束时,训练是稳定、收敛的。否则,梯度更新会导致优化的边界效应。

分类

在分类中,常用的激活函数和损失函数为softmax和cross entropy: g ( o k ; O ) = { p i = e o i / ∑ j e o j , i = 0 , 1 , 2 , ⋯   , n } g(o_k; \mathbf O) = \{p_i = e^{o_i} / \sum_je^{o_j}, i =0,1, 2,\cdots, n\} g(ok;O)={pi=eoi/jeoj,i=0,1,2,,n} L ( O , Y ) = − ∑ i y i log ⁡ p i \mathcal L(\mathbf O, \mathbf Y) = -\sum_iy_i\log{p_i} L(O,Y)=iyilogpi。注意到softmax将原始的embedding O ∈ R n + 1 \mathbf O\in \mathbb R^{n+1} ORn+1映射到了结构化的输出 P \mathbf P P,称为n-单纯形,其维度大于0,元素和为1。

输出概率关于隐藏激活单元的偏导数为:

∂ p j ∂ o i = { p j ( 1 − p j ) w h e n    j = i − p j p i o t h e r s \frac{\partial p_j}{\partial o_i} = \begin{cases} p_j(1-p_j) &\rm{when}\; j = i \\ -p_jp_i &\rm{others} \end{cases} oipj={pj(1pj)pjpiwhenj=iothers

我们注意到偏导数 ∂ p j ∂ o i \frac{\partial p_j}{\partial o_i} oipj并不直接依赖于 O \mathbf O O,这导致损失函数关于 o j o_j oj的偏导数为:

∂ L ∂ o i = − ∑ k y k p k ⋅ ∂ p k ∂ o i = p i − y i \frac{\partial\mathcal L}{\partial o_i} = -\sum_k\frac{y_k}{p_k}\cdot\frac{\partial p_k}{\partial o_i} = p_i - y_i oiL=kpkykoipk=piyi

O \mathbf O O无关。由于 P \mathbf P P对应于位于n维单纯形上的概率分布,本质上收到 l 1 l_1 l1模的约束, p j ≤ 1 p_j \le 1 pj1。因此偏导数 ∂ L ∂ O \frac{\partial\mathcal L}{\partial \mathbf O} OL仅依赖于一个受约束的量。

回归

在回归问题中,在最后一层没有明确的激活函数保证流形结构。原始的embedding层直接与真值进行比较。以smooth-L1损失为例子:
L = { 0.5 ∣ y i − o i ∣ 2 i f ∣ y i − o i ∣ ≤ 1 ∣ y i − o i ∣ − 0.5 o t h e r w i s e \mathcal L = \begin{cases} 0.5|y_i-o_i|^2 & \rm{if } |y_i-o_i| \le 1 \\ |y_i-o_i| - 0.5 & \rm{otherwise} \end{cases} L={0.5yioi2yioi0.5ifyioi1otherwise

损失函数关于 o i o_i oi的偏导数为:
∂ L ∂ o i = { − ( y i − o i ) i f ∣ y i − o i ∣ ≤ 1 − s i g n ( y i − o i ) o t h e r w i s e \frac{\partial \mathcal L}{\partial o_i} = \begin{cases} -(y_i-o_i) & \rm{if} |y_i-o_i| \le 1\\ -sign(y_i -o_i) &\rm{otherwise} \end{cases} oiL={(yioi)sign(yioi)ifyioi1otherwise
可以观察到,偏导数 ∂ L ∂ o i \frac{\partial \mathcal L}{\partial o_i} oiL直接依赖于原始输出项 O \mathbf O O。因此,如果 O \mathbf O O具有很高的方差,无约束的梯度也会相应地具有较高的方差。因此训练将会不稳定。

结论

使用CNN进行分类可以获得稳定的梯度并收敛。原因是偏导数 ∂ L ∂ P ⋅ ∂ P ∂ O \frac{\partial \mathcal L}{\partial \mathbf P}\cdot\frac{\partial \mathbf P}{\partial \mathbf O} PLOP是受约束的,因此梯度 L θ k \frac{\mathcal L}{\theta_k} θkL也是受约束的。
而使用CNN进行回归可能会有不稳定和局部次优解,因为在训练过程中梯度是无约束的。

文章接下来的内容集中在标签 Y Y Y在受限的n-球流形中的回归问题。

球回归

n-球定义为 S n S^n Sn,是欧式空间中n+1维球的表面。

n球上受约束回归

为了增强深度回归网络在n球上的训练稳定性,一个目标是保证梯度也是受限的。为了约束梯度,本文提出一个在 O \mathbf O O之后的激活层。该激活层有两个性质:

  1. 激活函数的输出 P = p k \mathbf P={p_k} P=pk应在n-球上,即 ∑ k p k 2 = 1 \sum_kp_k^2=1 kpk2=1
  2. 类似于分类,梯度 ∂ L ∂ O \frac{\partial\mathcal L}{\partial \mathbf O} OL不能依赖于输入信号,即 ∂ L ∂ O \frac{\partial\mathcal L}{\partial\mathbf O} OL不能直接依赖于原始的隐藏层embedding O ∈ R n + 1 \mathbf O \in \mathbb R^{n+1} ORn+1

为了满足以上两点要求,提出了Spherical Exponential Function(球形指数映射函数):

p j = S e x p ( o j ; O ) = e o j ∑ k e 2 o k p_j = S_{exp}(o_j;\mathbf O) = \frac{e^{o_j}}{\sqrt{\sum_k e^{2o_k}}} pj=Sexp(oj;O)=ke2ok eoj

由于球形指数映射函数将输出限制为正整数,因此还需要一个分支预测输出的符号以保证输出值在整个n-球上。
梯度为:
∂ p j ∂ o i = { p i ⋅ ( 1 − p i 2 ) w h e n   i = j − p i 2 ⋅ p j w h e n   i ≠ j \frac{\partial p_j}{\partial o_i} = \begin{cases} p_i\cdot (1-p_i^2) & \rm{when}\: i = j \\ -p_i^2\cdot p_j & \rm{when}\: i \ne j \end{cases} oipj={pi(1pi2)pi2pjwheni=jwheni̸=j

论文笔记:Spherical Regression: Learning Viewpoints, Surface Normals and 3D Rotations on n-Spheres_第2张图片

结论

给定了球形映射函数 g ( ⋅ ) g(\cdot) g(),梯度 ∂ P ∂ O \frac{\partial \mathbf P}{\partial \mathbf O} OP O \mathbf O O是分离的, P \mathbf P P受n-球约束。给定真值 Y \mathbf Y Y,可以计算损失函数 L = − ⟨ P , Y ⟩ \mathcal L=- \langle \mathbf P,\mathbf Y \rangle L=P,Y,由于 P \mathbf P P Y \mathbf Y Y的模都是1,该损失函数与余弦距离损失、L2损失函数相似。因此,梯度 ∂ L ∂ p i = − s i g n ( p i ) ∣ y i ∣ \frac{\partial \mathcal L}{\partial p_i}=-sign(p_i)|y_i| piL=sign(pi)yi只和 P \mathbf P P有关。我们同样可以将单个的输出 { p 1 2 , p 2 2 , ⋯   } \{p_1^2,p_2^2,\cdots\} {p12,p22,}视为连续的概率,对连续的标签 y i 2 y_i^2 yi2使用cross-entropy损失, H ( Y 2 , P 2 ) = − 2 ∑ i y i 2 log ⁡ p i H(\mathbf Y^2, \mathbf P^2)=-2\sum_iy_i^2\log{p_i} H(Y2,P2)=2iyi2logpi

总结:使用球形映射函数的球形回归保证了参数受约束地更新,期望其有助于稳定地训练与收敛。在三种应用和数据集中验证了该想法。

S 1 S^1 S1 S 2 S^2 S2, S 3 S^3 S3上的特殊情况

论文笔记:Spherical Regression: Learning Viewpoints, Surface Normals and 3D Rotations on n-Spheres_第3张图片

S 1 S^1 S1:欧拉角估计

两个组成部分:

  1. 带有球面指数映射的对两个绝对值的回归分支: ∣ P ∣ = [ ∣ cos ⁡ ϕ ∣ , ∣ sin ⁡ ϕ ∣ ] |P|=[|\cos\phi|, |\sin\phi|] P=[cosϕ,sinϕ], 2
  2. 预测符号组合的分类分支: s i g n ( cos ⁡ ϕ ) sign(\cos\phi) sign(cosϕ) s i g n ( sin ⁡ ϕ ) sign(\sin\phi) sign(sinϕ), 4

S 2 S^2 S2:表面法向量估计

表面法向量 v = [ N x , N y , N z ] T \mathbf{v} = [N_x, N_y, N_z]^T v=[Nx,Ny,Nz]T,其中 N x 2 + N y 2 + N z 2 = 1 N_x^2+N_y^2+N_z^2=1 Nx2+Ny2+Nz2=1。由于对于相机而言,这些表面是可见的,因此从二位图像中计算得到的表面法向量都是指向平面外的,也就是 N z > 0 N_z>0 Nz>0。因此表面法向量位于一个三维单位半球上。
因此两个组成部分是:

  1. 回归: [ N x , N y , N z ] [N_x, N_y, N_z] [Nx,Ny,Nz], 3
  2. 分类: ∣ N x ∣ |N_x| Nx ∣ N y ∣ |N_y| Ny的符号组合,4

S 3 S^3 S3:3D旋转估计

三维的旋转可以用单位四元数表示, q = a + b i + c j + d k q=a+b\mathbf{i} + c\mathbf{j}+d\mathbf{k} q=a+bi+cj+dk,其中 a 2 + b 2 + c 2 + d 2 = 1 a^2+b^2+c^2+d^2=1 a2+b2+c2+d2=1。由于 q q q − q -q q表示相同的旋转量,可以设定 a > 0 a>0 a>0。因此,三维旋转量在四维半球上。给定旋转向量表示的3D旋转 q = ( θ , v ) q=(\theta, \mathbf v) q=(θ,v),其单位四元数表示为 ( cos ⁡ θ 2 , sin ⁡ θ 2 v ) (\cos\frac{\theta}{2}, \sin\frac{\theta}{2}\mathbf v) (cos2θ,sin2θv)
两个组成部分为:

  1. 回归: [ ∣ a ∣ , ∣ b ∣ , ∣ c ∣ , ∣ d ∣ ] [|a|, |b|, |c|, |d|] [a,b,c,d],4
  2. 分类: { ∣ b ∣ , ∣ c ∣ , ∣ d ∣ } \{|b|, |c|, |d|\} {b,c,d}的符号组合,8

实验

文章分别对 S 1 S^1 S1 S 2 S^2 S2 S 3 S^3 S3进行了实验,验证了方法的有效性。

结论

We conclude that spherical regression is a good alternative for tasks where continuous output prediction are needed.

你可能感兴趣的:(论文笔记,CNN,回归,角度)