【论文笔记】Learning to Count in the Crowd from Limited Labeled Data

Abstract

最近的人群计数方法取得了很好的效果。但是,它们本质上是基于完全监督的范式,并且需要大量的注释示例。数据标注十分消耗劳动力。在这项工作中,我们专注于通过学习从有限数量的标记样本中计数来减少注释的工作量,同时利用大量的未标记数据。具体地说,我们提出了一种基于高斯过程的迭代学习机制,该机制涉及到对未标记数据的伪ground truth的估计,然后作为监督来训练网络。该方法在ShanghaiTech,UCF-QNRF,WorldExpo,UCSD等数据集上是有效的。此外,我们证明了所提出的方法可用于网络从合成数据集中学习计数的同时,还能够更好地推广到真实数据集(合成到真实的传输)。

1 Introduction

目前的人群计数工作中,在保持良好性能的同时减少注释工作对于人群计数任务的探索相对较少。具体来说,我们提出了一种基于**高斯过程(GP)**的迭代学习框架,在该框架中,我们利用未标记数据来增强现有网络的能力,从而导致整体性能的提高。本文提出的方法使用了一种伪标签的方式,它为没有标签的数据估计了伪ground truth(pseudo-GT),然后用它来监督网络的训练。然后网络在标记和未标记的数据上迭代训练。在标记阶段,对于有标签的数据,网络参数通过最小化 L 2 L_2 L2损失进行更新。除此之外,我们还保存了标签数据隐藏的带有ground truth的space vector。在未标记阶段,对于带有ground truth的标记数据的latent space vectors和未标记数据的latent space vectors,我们使用高斯过程(GP)建模他们的关系。接下来,我们使用前面建模的GP来估计未标记输入的伪GT,这个伪GT用于未标记的数据的监督。然后最小化未标签数据的预测值和伪标签之间的误差。图1说明了所提出的基于GP的框架在两个数据集上的实验效果。
在这里插入图片描述
总结本文的贡献如下:

  1. 我们提出了基于高斯过程的框架,在训练过程中有效地使用了没有标注的数据,结果有明显的改进。提出的方法包含迭代地训练已标注和未标注的数据。在标注阶段,对于没有标注的数据,我们使用GP方法估计伪ground truth。
  2. 我们证明了所提出的框架在半监督和合成到真实数据的转换是有效的。通过各种消融研究,我们表明所提出的方法可推广到不同的网络架构和各种简化的数据设置。

3 Preliminaries

在这一部分,我们简要回顾了在这项工作中使用的概念(人群计数,半监督学习和高斯过程)。
Crowd counting. 使用了密度图估计的方法,ground truth密度图公式计算如下:
在这里插入图片描述
x g x_g xg是人头标注位置, σ \sigma σ是高斯核的尺寸, S S S是所有人头标注点的集合。

Problem formulation. 给定一个带标签的数据集 ( { x ,    y }    ∈    D L ) \left(\left\{x,\;y\right\}\;\in\;D_L\right) ({x,y}DL),未标签的数据集表示为 ( x    ∈    D u ) \left(x\;\in\;D_u\right) (xDu)。目标是拟合映射函数 f ( x ∣ ϕ ) f\left(x\vert\phi\right) f(xϕ) ϕ \phi ϕ为参数),使得映射函数可以准确估计未观测样本的标签 y y y。该定义适用于半监督和合成到真实值的转换。在synthetic-to-real中,合成数据被标注,因此可以用于被标注的数据集;类似的,真实数据没有被标注,因此可以被当作未标注的数据集。

为了学习参数,已标注的和未标注的数据都被用于训练。 L 1 L_1 L1, L 2 L_2 L2或者交叉熵损失被用于标注数据。为了使用未标注的数据 D u D_u Du,在这篇文章中,我们使用基于伪标签的方法,并将他们和传统的损失函数一起用于网络的监督。

Gaussian process. 高斯过程(GP) f ( v ) f(v) f(v)是一个随机变量的无限集合,其中任意有限子集都具有联合高斯分布。一个GP可以完全由其均值函数 ( m ( v ) ) (m(v)) (m(v))和协方差函数 K ( v , v , ) K\left(v,v^,\right) K(v,v,)来指定。定义如下:
在这里插入图片描述
在这个公式里面, v ,    v , ∈ V v,\;v^,\in V v,v,V表示可能索引GP的输入。协方差矩阵是从协方差函数K计算出来的,它表达了基础函数的光滑性的概念。GP用下面公式表示:
在这里插入图片描述
其中 I I I是单位矩阵, σ ε 2 \sigma_\varepsilon^2 σε2是加性噪声的方差,任何函数值的集合都是联合高斯分布,如下所示
在这里插入图片描述
均值向量和协方差矩阵由前面提到的GP定义。为了在未标记的点上进行预测,可以通过调节观察数据来计算封闭形式的高斯后验分布。更多细节,请读者参考[29]。

4 GP-based iterative learning

图2给出了所提方法的结构图。该网络由编码器 f ( x , ∅ e ) f\left(x,\varnothing_e\right) f(x,e)和解码器 f ( z , ∅ d ) f\left(z,\varnothing_d\right) f(z,d)构成,他们的参数分别为 ∅ e \varnothing_e e ∅ d \varnothing_d d。所提出的框架对编码器网络是不固定的,并且我们在实验部分表明,它可以很好地推广到VGG16 [40]、ResNet-50和ResNet-101 [30]等架构。解码器由一组2 conv-relu层组成(更多细节见补充资料)。输入人群图像 x x x通过编码器网络获得对应的latene space vector z z z。这个vector经过decoder得到了人群密度输出 y y y,用公式表示如下:
在这里插入图片描述
我们有一个训练数据集 D = D L ∪ D U D=D_L\cup D_U D=DLDU,其中, D L = { x l i , y l i } i = 1 N t D_L=\left\{x_l^i,y_l^i\right\}_{i=1}^{N_t} DL={xli,yli}i=1Nt是包含 N l N_l Nl张训练图片的已标记数据集, D U = { x u i } i N u D_U=\left\{x_u^i\right\}_i^{N_u} DU={xui}iNu是包含 N u N_u Nu张训练图片的未标记数据。所提出的框架通过在已标记的样本和未标记的样本上迭代训练来有效地利用数据集。更具体地说,培训过程包括两个阶段:(i)标记训练阶段:使用监督的损失函数 L s L_s Ls学习网络参数;(ii)未标记训练阶段:使用GP公式,为无标签的数据生成伪标签,然后用于监督网络的训练,接下来我们详细介绍这两个阶段。
在这里插入图片描述

4.1 Labeled stage

使用 L 2 L_2 L2损失监督 D L D_L DL的训练:
在这里插入图片描述
除了对标记数据使用 L 2 L_2 L2进行监督,我们还将来自于中间latent space的特征向量 z l i z^i_l zli保存到矩阵 F z l F_{z_l} Fzl中,具体地, F Z l = { z l i } i = 1 N l F_{Z_l}=\left\{z_l^i\right\}_{i=1}^{N_l} FZl={zli}i=1Nl,这个矩阵用于在下一阶段计算未标记数据的伪标签。矩阵 F Z l F_{Z_l} FZl的维度是 N l × M N_l\times M Nl×M,这里 M M M是latent space vector z l z_l zl的维度,在这篇文章中,latent space vector z l z_l zl的维度是 64 × 32 × 32 64\times32\times32 64×32×32,被reshape成为 1 × 65536 1\times65536 1×65536,因此, M = 65536 M=65536 M=65536

4.2 Unlabeled stage

由于 D u D_u Du不带任何的GT标注,因此我们为其预测伪标签用于网络的监督训练。为此,我们使用GP建模已标注样本的latent space vectors F z l F_{z_l} Fzl以及对应ground truth T y l T_{y_l} Tyl和未标记样本latent space vectors z u p r e d z^{pred}_u zupred之间的关系。

Estimation of pseudo-GT 就像上面讨论的那样,训练过程迭代地覆盖标注数据 D L D_L DL和未标注数据 D u D_u Du,标注阶段之后,已标注样本的latent space vectors F z l F_{z_l} Fzl以及对应ground truth T y l T_{y_l} Tyl用于去建模函数 t t t,这个函数是latent vectors和输出密度图之间的映射函数,即 y = t ( z ) y=t(z) y=t(z)。使用GP,我们将函数 t ( . ) t(.) t(.)建模成函数的无限集合,它的任何有限子集都用到了Gaussian。我们的公式如下所示:
在这里插入图片描述
在这里, μ \mu μ是使用GP计算出来的函数值, σ ε 2 \sigma_\varepsilon^2 σε2设为1,K是kernel function。因此 k t h k^{th} kth个未标注样本 x u k x^k_u xuk的latent space vector z u k z^k_u zuk的条件联合分布可以表示为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
考虑到latent space vector的维度会比较大, K ( F Z l , F Z L ) K(F_{Z_l},F_{Z_L}) K(FZl,FZL)的维度会比较大,特别是 N l N_l Nl很大的情况下。因此计算量和存储要求都比较高,此外,所有的这些latent vectors可能不是都是有效的,因为这些vectors在content,size/density等方面都对应着不同的区域。为了解决这些问题,我们只使用了和未标记latent vector相似的已标注latent vector。具体来说,我们只使用 N n N_n Nn个最接近未标记vectors的标记vector,也就是把(7)-(9)式中的 F Z l F_{Z_l} FZl F Z l , n F_{Z_l,n} FZl,n替换。这里的 n e a r e s t ( p , Q , N n ) nearest(p,Q,N_n) nearest(p,Q,Nn)表示从 Q Q Q中找到 N n N_n Nn个最邻近 p p p的vectors。

未标记数据样本的伪GT由等式(8)求出的均值作为预测值,即 y u , p s e u d o k = μ u k y^k_{u,pseudo}=\mu ^k_u yupseudok=μuk。使用预测 y u , p r e d k = g ( z u k , ∅ e ) y^k_{u,pred}=g(z^k_u,\varnothing_e) yu,predk=g(zuk,e)和伪标签 y u , p s e u d o k y^k_{u,pseudo} yu,pseudok之间的 L 2 L_2 L2距离监督编码器解码器参数的更新。

另外,用等式(8)预测伪标签可能不是特别完美,而伪标签的效果可能会影响网络的表现,为了克服这一点,我们显式地利用了GP建模的方差。具体来说,在损失函数中,我们通过考虑等式(9)来最小化预测方差。如前所述,使用标记数据的所有潜在空间向量不一定有效。我们使用GP最小化latent space vectors 中 z u k z^k_u zuk N n N_n Nn个最近邻之间的方差。因此,未标记阶段的损失函数定义为:
在这里插入图片描述

4.3 Final objective function

我们结合了监督损失函数(5)和无监督的损失函数(11)作为最终的目标函数:
在这里插入图片描述

5 Experiments and results

本文设计的消融实验:
(i) Semi-supervised settings: 更改标注样本所占的比例;
(ii) Synthetic-to-real transfer settings:在合成数据集(打了标注)上训练,在真实数据集上测试,真实数据没有标注,但是可以用于模型的训练。

5.1 Semi-supervised settings

Comparison with recent approaches.
在这里插入图片描述
(1)与使用整个数据集相比,在训练期间减少标记数据(减少到5%)会导致误差显著增加。
(2)所提出的基于GP的框架能够大幅度降低性能下降。
(3)与刘等人[22]相比,所提出的方法能够更有效地利用未标记的数据。这是因为作者在[22]中使用了未标记数据的排序损失,这是基于这样的假设,即拥挤场景的子图像保证包含与整个图像相同或更少的人。我们观察到,对于大多数未标记的图像来说,这种约束是自然满足的,因此它提供的监督较少(详细分析见补充材料)。

Ablation of labeled data percentage.
在这里插入图片描述
可以发现,随着标记数据占比的减少,网络的性能在不断降低。然而,所提出的基于GP的框架能够在所有情况下利用未标记的数据,以将这种性能下降降低相当大的幅度。图3和图4是过程的可视化。
在这里插入图片描述
Architecture ablation.
在这里插入图片描述
作者的发现:

  1. 由于VGG16和ResNet-101的参数量更大,和ResNet-50相比,减少标注数据的量可能会导致overfit。
  2. 通过利用了未标记数据,基于GP过程的方法取得了一致的增益。

Pseudo-GT Analysis.
在这里插入图片描述
可以发现,pseudo-GT errors集中在比较小的区域,而prediction errors集中在比较大的区域,pseudo-GT可以提供有效的监督。

5.2 Synthetic-to-Real transfer setting

最近,Wang et al.[55] 提出了一个合成人群计数数据集,由于合成数据集和真实数据集之间的分布存在差异,因此在合成数据集中训练的网络在真实数据集上的效果往往不是很好,因此,作者基于域适应提出了Cycle-GAN,这种方法额外加强了SSIM的一致性。更重要的是,他们第一次提出了从合成数据到真实数据之间的转变。

然而这中方法的error超过了baseline方法,它的表现受到了真实数据和合成数据之间的distribution gap的限制。而所提出的基于GP的框架克服了这些缺点,将合成数据作为带标签的训练集,真实数据作为没有标签的数据,实验结果如表4所示。我们使用了[55]中描述的相同网络(SFCN)和训练过程。由于我们为未标记的真实世界图像估计伪GT并将其直接用作监督,因此网络需要处理的分布间隙要小得多,与域适应相比,这种方法取得了更好的性能,图6和图7是实验结果的可视化。
在这里插入图片描述
在这里插入图片描述

6 Conclusions

在这项工作中,我们专注于学习从有限的标记数据中进行计数。具体来说,我们提出了一个基于GP的迭代学习框架,包括使用高斯过程对未标记数据进行伪GT的估计,然后将其用作网络训练的监督。通过各种实验,我们表明所提出的方法可以有效地应用于各种涉及无标记数据的场景,如用较少的数据进行学习或合成到真实世界的转换。此外,我们进行了详细的消融研究,以证明所提出的方法可以很好地推广到不同的网络架构,并能够为不同数量的标记数据实现一致的增益。

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页