实时视频语义分割 Efficient Semantic Video Segmentation with Per-frame Inference

ECCV2020:Efficient Semantic Video Segmentation with Per-frame Inference 论文解读

之前方法存在的问题

  1. 训练时采用逐帧处理方法的实时视频分割模型,测试时出现不稳定的问题;
  2. 利用相邻视频帧之间的相关性的算法,不可避免会导致,不准确的结果或者不平衡的处理时延。
    1). 利用光流将上一帧传播为当前帧的特征;(非关键帧的特征是关键帧传播得到的,导致关键帧和非关键帧不平衡的处理时延)
    2). 将相邻帧的特征融入当前帧的特征中;

算法核心思路

  1. 训练时,将多帧之间的时序一致性作为额外约束,测试时,单独地处理各帧,保证不引入额外的计算负载;
    1). 动作导向的时序损失(motion guided temporal loss):同一像素点在不同时间有相同的标签;

    2).动作预测模块(motion estimation network):基于输入帧对,预测从当前帧到下一帧的动作(光流)。

  2. 设计新时序知识蒸馏方法,进一步提升推断速度;

算法详解

  通过光流网络预测两输入图像之间的动作,将时间步 t + k t+k t+k的预测结果转换到时间步 t t t,并与时间步 t t t的预测结果计算差异,作为时序一致性约束。同时, Q t + k Q_{t+k} Qt+k转换后部分像素点不能与 Q t Q_t Qt对应,因此通过掩码,将这些不能对应的噪点去除。

1. 动作导向时序一致性

实时视频语义分割 Efficient Semantic Video Segmentation with Per-frame Inference_第1张图片

l t l ( I t , I t + k ) = 1 N ∑ i = 1 N V t = > t + k ( i ) ∥ q t i − q ^ t + k = > t i ∥ 2 2 (1) l_{tl}(I_t, I_{t+k})=\frac{1}{N}\sum_{i=1}^NV_{t=>t+k}^{(i)}\parallel q_t^i - \hat{q}_{t+k => t}^i\parallel_2^2 \tag{1} ltl(It,It+k)=N1i=1NVt=>t+k(i)qtiq^t+k=>ti22(1)
公式中:

1). I t , I t + k I_t, I_{t+k} It,It+k表示时间步 t , t + k t, t+k t,t+k的输入帧;

2). q t i q_t^i qti 表示时间步 t t t模型预测的分割结果 Q t Q_t Qt中位置 i i i处的类别概率;

3). q ^ t + k = > t i \hat{q}_{t+k=>t}^i q^t+k=>ti表示时间步 t + k t+k t+k模型预测结果 Q t + k Q_{t+k} Qt+k通过光流转换得到时间步 t t t预测结果 Q ^ t \hat{Q}_t Q^t中位置 i i i处的类别概率;

4). V t = > t + k = e x p ( − ∣ I t − I ^ t + k ∣ ) V_{t=>t+k} = exp(-\mid I_t - \hat{I}_{t+k}\mid) Vt=>t+k=exp(ItI^t+k),其中 I ^ \hat{I} I^表示转换后的输入图像;

光流网络 f ( ⋅ ) f(\cdot) f()的输出为水平和垂直方向上像素点的偏移量;
f ( I t , I t + k ) = M t − > t + k f(I_{t}, I_{t+k}) = M_{t->t+k} f(It,It+k)=Mt>t+k

2.时序一致知识蒸馏

  先通过交叉熵损失函数和时序损失训练教师网络,使之具有更高的精度和更好的时序一致性。

在传统的知识蒸馏模式的基础上引入两个新模块:PF和MF。
实时视频语义分割 Efficient Semantic Video Segmentation with Per-frame Inference_第2张图片

2.1 pair-wise-frames dependency(PF)

实时视频语义分割 Efficient Semantic Video Segmentation with Per-frame Inference_第3张图片

  通过注意力操作(AT)计算输入向量 X t , X 2 ∈ R N × C X_t, X_2 \in R^{N\times C} Xt,X2RN×C的相似度图谱 A X t , X 2 ∈ R N × N × 1 A_{X_t, X_2} \in R^{N\times N\times 1} AXt,X2RN×N×1,。
A A A中元素 a i j = x 1 i T ⋅ x 2 j ∥ x 1 i ∥ 2 ⋅ ∥ x 2 j ∥ 2 a_{ij}=\frac{{x_1^i}^T\cdot {x_2^j}}{\parallel x_1^i\parallel_2\cdot\parallel x_2^j\parallel_2} aij=x1i2x2j2x1iTx2j,其中 x 1 i , x 2 i x_1^i, x_2^i x1i,x2i X 1 , X 2 X_1,X_2 X1,X2中的值。

计算教师网络和学生网络之间的 pair-wise-frames dependency,步骤如下:
l P F ( Q t , Q t + k ) = 1 N 2 ∑ i = 1 N ∑ j = 1 N ( a i j S − a i j T ) 2 (2) l_{PF}(Q_t, Q_{t+k}) = \frac{1}{N^2}\sum_{i=1}^{N} \sum_{j=1}^{N}(a_{ij}^S - a_{ij}^T)^2 \tag{2} lPF(Qt,Qt+k)=N21i=1Nj=1N(aijSaijT)2(2)
公式中, a i j S ∈ A Q t , Q t + k S a_{ij}^S\in A_{Q_t, Q_{t+k}}^S aijSAQt,Qt+kS a i j T ∈ A Q t , Q t + k T a_{ij}^T\in A_{Q_t, Q_{t+k}}^T aijTAQt,Qt+kT

通俗理解:让老师网络和学生网络对输入图像对中像素点对之间的余弦相似度一致;

2.2 multi-frame dependency(MF)

实时视频语义分割 Efficient Semantic Video Segmentation with Per-frame Inference_第4张图片

  自相似度图谱 A F t , F t A_{F_t, F_t} AFt,Ft,其中 F t F_t Ft是时间步 t t t的输入图像 I t I_t It在模型中提取到的特征(分类层前最后一个卷积层的输出);

  通过ConvLSTM将子像素度图谱编码为 E ∈ R 1 × D e E\in R^{1\times D_e} ER1×De,其中 D e D_e De是编码空间的长度。

计算教师网络和学生网络在最后时间步的 E E E的二范数的平方;

l M F ( F ) = ∥ E T − E S ∥ 2 l_{MF}(F) = \parallel E^T - E^S \parallel^2 lMF(F)=ETES2

  为防止ConvLSTM模型在训练过程中塌陷(权重和偏移全部等于0),剪切其权重到特定的范围内,放大 E T E^T ET作为一种正则化。

最终的函数:

l = ∑ t = 1 T ′ l c e ( t ) + λ ( ∑ t = 1 T l S F ( t ) + ∑ t = 1 T − 1 l t l ( Q t , Q t + 1 ) + ∑ t = 1 T − 1 l P F ( Q t , Q t + 1 ) + l M F ) l = \sum_{t=1}^{T'} l_{ce}^{(t)} + \lambda (\sum_{t=1}^T l_{SF}^{(t)} + \sum_{t=1}^{T-1}l_{tl}(Q_t, Q_{t+1}) + \sum_{t=1}^{T-1}l_{PF}(Q_t, Q_{t+1}) + l_{MF}) l=t=1Tlce(t)+λ(t=1TlSF(t)+t=1T1ltl(Qt,Qt+1)+t=1T1lPF(Qt,Qt+1)+lMF)
公式中, T , T ′ T, T' T,T分别表示训练序列中帧总数和标签总数。(一段视频中可能只有几帧是有标签的)

你可能感兴趣的:(视频语义分割,实时视频语义分割,视频分割,计算机视觉,深度学习)