《Competitive Collaboration: Joint Unsupervised Learning of Depth, Camera Motion ...》论文笔记

论文题目:Competitive Collaboration: Joint Unsupervised Learning of Depth, Camera Motion, Optical Flow and Motion Segmentation
论文地址:https://arxiv.org/abs/1805.09806
项目地址:https://research.nvidia.com/publication/2018-05_Adversarial-Collaboration-Joint
Github:https://github.com/anuragranj/cc

1. 摘要

在同一个场景中,单目视觉深度信息、相机运动、光流、运动分割这些因素往往是相互联系、相互制约的,基于这一点作者提出了一种无监督方法,同时对这几种因素进行学习,并用他们的相互关系进行约束和增强,以此简化各个单独的问题。

2. 介绍

作者提出了一种网络 Competitive Collaboration (CC)。这个网络有两个 “玩家”,一个应用深度信息 D 和相机运动信息 C 来生成静态区域,称为 R;另一个生成运动区域的图像,称为 F,他们之间是竞争学习的关系。他们学习的效果由 “仲裁者” M 来实现,M是一个运动分割网络,将图片分割为运动部分和静态部分。但是M也是需要训练的,这个时候就需要R和F联合协作来训练M。

3. Competitive Collaboration

下面对这个网络进行一些数学上的表达。

3.1 整体思路

考虑一个训练集 D = { D i : i N } \mathcal{D}=\{\mathcal{D}_i : i \in \mathbb{N} \} 训练分为两个阶段

  1. 固定仲裁者 M,用 E 1 E_1 作为 loss 训练 R 和 F
    E 1 = i m L R ( R ( D i ) ) + ( 1 m ) L F ( F ( D i ) ) E_1 = \sum_i m \cdot L_R (R(\mathcal{D}_i)) + (1-m) \cdot L_F(F(\mathcal{D}_i))
  2. E 2 E_2 作为 loss,R 和 F 共同训练 M
    E 2 = E 1 + i L M ( D i , R , F ) E_2 = E_1 + \sum_i L_M(\mathcal{D}_i, R, F)

网络 M 分割静态区域和运动区域,然后使得(D, C)只针对静态区域进行学习,而 F 则只针对运动区域进行学习。
在这里插入图片描述

3.2 具体细节

3.2.1 符号定义

考虑图像序列 I , I , I + I_-, I, I_+ ,其中 I , I + I_-, I_+ 可能代表不只一帧图像,几个网络可以用以下符号表示,下标代表他们的参数:

  1. 深度 d = D θ ( I ) d =D_\theta(I)
  2. 相机运动 e , e + = C ϕ ( I , I , I + ) e_-, e_+ = C_\phi(I_-, I, I_+)
  3. 静止置信度 m , m + = M χ ( I , I , I + ) m_-, m_+ = M_\chi(I_-, I, I_+)
  4. 光流 u = F ψ ( I , I ) u_- = F_\psi(I,I_-) u + = F ψ ( I , I + ) u_+ = F_\psi(I,I_+)

注: m , m + [ 0 , 1 ] Ω m_-, m_+ \in [0,1]^\Omega 代表了该像素属于静止区域的概率.

3.2.2 损失函数

网络的优化目标是最小化能量E
E = λ R E R + λ F E F + λ M E M + λ C E C + λ S E S E = \lambda_R E_R + \lambda_F E_F + \lambda_M E_M + \lambda_C E_C + \lambda_S E_S 一个更大的 λ M \lambda_M 会促使网络 M 将更多的区域划分为静止区域。

  1. E R = s { + , } Ω ρ ( I , ω c ( I s , e s , d ) ) m s E_R = \sum_{s\in\{+,-\}} \sum_\Omega \rho(I, \omega_c(I_s, e_s, d)) \cdot m_s
  2. E F = s { + , } Ω ρ ( I , ω f ( I s , u s ) ) ( 1 m s ) E_F = \sum_{s\in\{+,-\}} \sum_\Omega \rho(I, \omega_f(I_s, u_s)) \cdot (1-m_s)
  3. ρ ( x , y ) = λ ρ ( x y ) 2 + ϵ 2 + ( 1 λ ρ ) [ 1 ( 2 μ x μ y + c 1 ) ( 2 μ x y + c 2 ) ( μ x 2 + μ y 2 + c 1 ) ( σ x + σ y + c 2 ) ] \rho(x, y)=\lambda_{\rho} \sqrt{(x-y)^{2}+\epsilon^{2}}+\left(1-\lambda_{\rho}\right)\left[1-\frac{\left(2 \mu_{x} \mu_{y+c_{1}}\right)\left(2 \mu_{x y+c_{2}}\right)}{\left(\mu_{x}^{2}+\mu_{y}^{2}+c_{1}\right)\left(\sigma_{x}+\sigma_{y}+c_{2}\right)}\right]
  4. E M = s { + , } Ω H ( 1 , m s ) E_{M}=\sum_{s \in\{+,-\}} \sum_{\Omega} H\left(\mathbf{1}, m_{s}\right)
  5. E C = s { + , } Ω H ( I ρ R < ρ F I ν ( e s , d ) u s < λ c , m s ) E_{C}=\sum_{s \in\{+,-\}} \sum_{\Omega} H\left(\mathbb{I}_{\rho_{R}<\rho_{F}} \vee \mathbb{I}_{ \| \nu\left(e_{s}, d\right)-u_{s}| |<\lambda_{c}}, m_{s}\right)
  6. E S = Ω λ e d 2 + λ e u 2 + λ e u + 2 + λ e m 2 + λ e m + 2 E_{S}=\sum_{\Omega}\left\|\lambda_{e} \nabla d\right\|^{2}+\left\|\lambda_{e} \nabla u_{-}\right\|^{2}+\left\|\lambda_{e} \nabla u_{+}\right\|^{2} + \left\|\lambda_{e} \nabla m_{-}\right\|^{2}+\left\|\lambda_{e} \nabla m_{+}\right\|^{2}

对上面几个式子的解释:

  1. ω c \omega_c 利用深度 d d 和相机运动 e e 由参考帧( I I + I_-或I_+ )生成目标帧( I I
  2. ω f \omega_f 利用光流信息 u u 由参考帧生成目标帧
  3. λ ρ \lambda_{\rho} 是一个固定值, ϵ = 0.01 \epsilon=0.01 ,第二项其实就是 SSIM, μ x , σ x \mu_{x}, \sigma_{x} 是当前像素邻域的局部均值和方差, c 1 = 0.0 1 2 c_{1}=0.01^{2} c 2 = 0.0 3 2 c_{2}=0.03^{2}
  4. E M E_M 中的 H ( ) H() 表示交叉熵,因此 λ M \lambda_M 就代表了 R 对静止区域的偏好程度
  5. ν ( e , d ) \nu(e, d) 表示用深度 d d 和相机运动 e e 生成的光流信息,方法见附录 A.2, I { 0 , 1 } \mathbb{I} \in\{0,1\} 是一个指示函数(下标为真时其值为1); ρ R = ρ ( I , w c ( I s , e s , d ) ) \rho_{R}=\rho\left(I, w_{c}\left(I_{s}, e_{s}, d\right)\right) ρ F = ρ ( I , w f ( I s , u s ) ) \rho_{F}=\rho\left(I, w_{f}\left(I_{s}, u_{s}\right)\right) ,因此第一个指示函数选择那些更偏向于静止区域的像素点;第二个指示函数同样选择那些最可能是静止区域的点;最后他们取并集 \vee ,再与 m s m_s 求一个交叉熵。因此“一致代价” E C E_C 的作用就是驱使两个网络 R 和 F 共同训练裁判者 M,以使 M 对于静止区域的预测更加准确
  6. “平滑代价” E S E_S 用于规范深度、光流、分割网络,其中 λ e = e I \lambda_{e}=e^{-\nabla I} (elementwise),保证了平滑过程中对图片中的边缘的影响比较小,因为边缘处梯度比较大, λ e \lambda_{e} 就比较小,对 loss 贡献比较小。
3.2.3 推断

要想训练这个网络,需要通过重建图像的效果来判断网络各部分(深度、光流、分割)的预测效果。在重建图像时,对图像运动部分和静止部分的分割由以下公式获得
m = I m + m > 0.5 I ν ( e + , d ) u + < λ c m^{*}=\mathbb{I}_{m_{+} \cdot m_{-}>0.5} \vee \mathbb{I}_{\left\|\nu\left(e_{+}, d\right)-u_{+}\right\|<\lambda_{c}}
除此之外还需要光流,由以下公式获得
u = I m > 0.5 ν ( e + , d ) + I m 0.5 u + u^{*}=\mathbb{I}_{m^{*}>0.5} \cdot \nu\left(e_{+}, d\right)+\mathbb{I}_{m^{*} \leq 0.5} \cdot u_{+}
由此网络 R=(D,C) 就可以利用 d d e e 合成静止区域,网络 F 就可以利用 u u^* 合成运动区域,最后再利用 m m^* 将二者的预测结果结合起来,就是最终的重建图像。

因此最终训练的时候在开头提到的那两个阶段,第一个阶段就可以用 E R E_R E F E_F 训练网络 R 和 F,第二个阶段用 E M E_M E C E_C 训练 M。

4. 实验

算法的伪代码如下:
在这里插入图片描述一些实验结果如下所示
在这里插入图片描述更详细的网络结构如下图
在这里插入图片描述

附录

附录的东西我就不放了哈,大家想看可以去读作者的论文。

发布了42 篇原创文章 · 获赞 34 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41024483/article/details/88863523
今日推荐