人群计数:Distribution Matching for Crowd Counting

人群计数:Distribution Matching for Crowd Counting
用于人群计数的分布匹配

全文要解决的问题以及对应解决办法(Motivation)
由于使用目标检测标注困难,高斯平滑生成的密度图误差可能较大,贝叶斯损失解的多样性造成可能不会预测出准确的密度图,因此,为了生成更加准确的密度图,提出DM-Count的计数损失,OT损失,TV损失联合起来的损失函数,其中主要的是OT损失(也就是创新点),不需要高斯模糊等,来生成更加准确的密度图,来让计数结果更加准确。

Abstract

总结全文:
1.使用OT损失计算预测密度图与实际密度图之间的相似性(OT(Optimal Transport)计算是指在分布匹配方法中采用的一种计算两个概率分布之间最小代价的方法。)
2.为了稳定OT计算,加入了总变差损失(Total Variation loss)(总变差损失是一种用于图像处理和计算机视觉中的损失函数,可以帮助限制图像的平滑性,以抑制图像中的噪声和不连续性。在该论文中,加入总变差损失旨在通过限制预测图像的变化量和光滑度来提高模型的稳定性和鲁棒性,从而更好地适应多样的场景和人群。)
3.提出DM-Count方法的泛化误差界限要比基于高斯平滑的方法更紧,泛化能力更强(泛化误差是指模型在处理新的、未见过的数据时的表现能力,即模型在训练集上的表现与在测试集上的表现之间的差异。)

Introduction

介绍了进行人群计数的方法,
1.提出基于密度图的方法比基于检测的方法要好,因为对重合不敏感,不致力于早期的二值化操作。
2.由于0/1的矩阵图太难进行学习,将标记点转为高斯斑点,也即用高斯核进行模糊,但这个密度图上的其实都是“伪真实值”,且基于密度图的CNN高度依赖于这个“伪真实值”,给高斯斑点设置正确的宽度也很重要。
3.简要介绍贝叶斯损失后提出贝叶斯损失的缺点:
(1).仍然需要使用二维高斯分布来近似目标的似然概率分布,仍需要设定核的宽度
(2).这个损失函数对应的方程组是欠定的,有着无限个解。这样就可能存在很多非常不相似于真实密度图的密度图也具有0损失的情况。
进而提出本文的贡献
1.实验验证将高斯强加给标注点损失泛化性能;
2.不需要任何高斯操作,提出DM-count,使用OT计算相似度,加入总变差损失TV loss;
3.DM-count泛化误差界限小,易于泛化
4.本方法很大程度上提高了SOTA的性能


贝叶斯损失具体论文:Bayesian Loss for Crowd Count Estimation with Point Supervision
贝叶斯估计/贝叶斯公式:学习视频:贝叶斯公式b站讲解
贝叶斯损失学习链接:1.ICCV19 (Oral)|基于贝叶斯损失函数的人群计数,2. 拒绝 高斯热图 作为假gt | Bayesian Loss for Crowd Count Estimation with Point Supervision
在这里插入图片描述

Each pixel value of a smoothed ground truth density map is the posterior probability of the corresponding annotation dot given the location of that pixel.
在这里插入图片描述
这句话的意思是,对于人群计算中使用的密度图,其中每个像素点的值都代表了一个对应标注点在该位置的后验概率。也就是说,在将标注点转化为密度图时,由于密度图是连续的,实际上每个标注点可能会对应一整块密度图区域,在这个区域内的每个像素点都应该有对应的后验概率值。这种转化可以通过在标注点上添加高斯核并对生成的密度图进行卷积来实现。在这个过程中,高斯核的卷积核大小相当于对密度图进行了一定的平滑处理,使得每个像素点的后验概率值更加准确。在计算过程中,可以使用贝叶斯公式计算每个像素点的后验概率值,将标注点的先验概率与当前位置的似然概率相乘,再除以归一化常数,从而得到每个像素点的后验概率。

为什么说贝叶斯损失是欠定的(后面本文也说了)
贝叶斯损失的公式如下:
在这里插入图片描述
由于这个期望 E [ c n ] E[c_n] E[cn](期望具体是啥看贝叶斯损失论文)可以由多种方式成为1,所以说这个解是未定的,这样就可能存在很多非常不相似于真实密度图的密度图也具有0损失的情况,造成预测的密度图和实际的密度图相差较大,预测的密度图不准确。


Previous Work

介绍基于检测、基于回归、高斯模糊密度图、贝叶斯损失的缺点,从而引出本文的OT损失(基于最优输运的损失函数)
各方法缺点;
检测:人群密集难以检测,需要检测框标注,因为存在重合的部分标注方式费力且不清晰;
回归:结果解释性差,对标记图信息利用不充分;
高斯模糊:人群分布是不常规的,高斯模糊的密度图误差可能较大;
贝叶斯损失:贝叶斯损失是不确定的,可能不会预测出准确的密度图,也即introduction部分提出的缺点。

2.2部分介绍了OT计算(OT计算不是本文提出的,本文提出了使用包括OT损失的DM-count)
在这里插入图片描述
OT计算就是一个概率分布转换到另一个概率分布的最小代价。
X = { x i ∣ x i ∈ R d } i = 1 n \mathcal{X} =\left \{x_i|x_i\in \mathbb{R}^{d} \right \}_{i=1}^{n} X={xixiRd}i=1n Y = { y j ∣ y j ∈ R d } j = 1 n \mathcal{Y} =\left \{y_j|y_j\in \mathbb{R}^{d} \right \}_{j=1}^{n} Y={yjyjRd}j=1n是两组点的集合, x i x_i xi y j y_j yj是d维的向量,i和j都是从1到n,分别存储两个概率分布中的采样点或特征点,也就是对应的点信息。
μ \mu μ ν \nu ν分别是 X \mathcal{X} X Y \mathcal{Y} Y上的概率分布,即也都是n维向量,比如 μ \mu μ 就代表了 x 1 x_1 x1 x n x_n xn的概率分布,每个都是[0,1]的正数代表概率,由于其是一个概率分布向量,所以它自己本身的和为1。
→这个符号 ↦ \mapsto 这个表示从一个集合到另一个集合的映射或变换。
→c:代价函数, X \mathcal{X} X上的一个点移动到 Y \mathcal{Y} Y上的一个点所需要的代价。本文的OT损失中代价函数使用的L2范数,也即 μ 1 \mu_1 μ1 ν 1 \nu_1 ν1的代价。
→C:也就是n*n的代价矩阵,对于 x 1 . . . x n x_1...x_n x1...xn y 1 . . . y n y_1...y_n y1...yn的代价矩阵,其中 C i j = c ( x i , y j ) C_{ij}=c(x_i,y_j) Cij=c(xi,yj)
Γ = { r ∈ R + n × n : r 1 = μ , r ⊤ 1 = ν } \Gamma =\left \{ r\in R_{+}^{n\times n} :r1=\mu ,r^{\top}1=\nu \right \} Γ={rR+n×n:r1=μ,r1=ν}是从 X \mathcal{X} X Y \mathcal{Y} Y所有可能的输运方式的集合,这个集合是所有可能的 μ \mu μ ν \nu ν之间的联合概率分布,r是n*n维的,每个r就是一种输运方案,每个r的第一行的和是 μ \mu μ的第一个值,对应代价矩阵C的第一行也即代表着 μ 1 \mu_1 μ1转到从 ν 1 \nu_1 ν1 ν n \nu_n νn的代价,做内积之后即为转 μ 1 \mu_1 μ1所需要的总代价。第一列的和是 ν \nu ν的第一个值,也 就是对其进行拆开运输?? 各部分有不同的权重。
→概率分布 μ \mu μ ν \nu ν之间的最优运输代价定义为 W ( μ , ν ) = m i n < C , r > W(\mu,\nu)=min<C,r> W(μ,ν)=min<C,r>,<>代表内积,这个代价公式指的是从 μ \mu μ分布转到 ν \nu ν分布,大小为n*n的代价矩阵C,在r的最优方案下的,获得的成本最小的情况,即为 W ( μ , ν ) W(\mu,\nu) W(μ,ν)

在这里插入图片描述
这个描述是在比喻最优输运问题中的“泥土移动”成本。具体而言,如果我们将u和v分别视为堆放在X和Y上的单位数量的“泥土”,那么最优输运问题可以被视为找到从X向Y移动u中的每个单位泥土所需支付的最小成本,从而使得最终堆放在Y上的“泥土”杂质最少。这个“成本”可以用代价矩阵C(即从X某个点向Y的某个点移动单个单位“泥土”所需花费的成本)来测量。通过找到能够最小化从X移动到Y所需的累计成本的最优输运方案,我们可以最小化堆积在Y中的“泥土”中的杂质或次要元素。总之,这个术语比喻了最优输运问题中的成本和代价,并将概率分布视为堆积在平面上的“泥土”。

OT计算也可以使用相应的对偶计算(相同目的)进行计算:(对偶原理:Monge问题,Kantoroich,对偶理论和Brenier极分解
在这里插入图片描述
其中 α \alpha α β \beta β是待学习的权重向量,通过匹配两个分布的距离来最小化之间的差异(也即上面 W ( μ , ν ) = m i n < C , r > W(\mu,\nu)=min<C,r> W(μ,ν)=min<C,r>这个最小化的公式)等价于通过最大化距离匹配的总和来最小化距离差异


DM-Count

这部分介绍了计数损失,OT损失和TV损失联合起来的总损失函数,计数损失用于评估计数总量的不同,后两者用于评估人群分布的不同。
使用的网络模型结构与贝叶斯损失论文中的模型结构是一样的,基于VGG19.
在这里插入图片描述
图片将其裁剪到512*512

configuration of DM-Count对应输出
input10,3,512,512
conv3-64-1(卷积核大小,通道数,padding)
conv3-64-1
max-pooling
conv3-128-1
conv3-128-1
max-pooling
conv3-256-1
conv3-256-1
conv3-256-1
conv3-256-1
max-pooling
conv3-512-1
conv3-512-1
conv3-512-1
conv3-512-1
max-pooling
conv3-512-1
conv3-512-1
conv3-512-1
conv3-512-110,512,32,32
upsample_bilinear 2倍,也即原图片的1/810,512,64,64
conv3-256-1
conv3-128-110,128,64,64
conv1-1-110,1,64,64

DM-count不依赖于特定的网络形式,而是通过统一的分布匹配框架来处理不同架构所生成的特征分布,不需要高斯模糊。


计数损失:求计数总数的差值的绝对值
z是n维的矢量二值化的标记图,z^是n维的矢量化的预测的密度图,计数损失的目的是让预测的人群总数尽可能接近真实值。
在这里插入图片描述


OT损失:
将z和z^除以各自的总数将非标准化密度函数转为概率密度函数。公式(4)也即是上面的对偶计算公式,为了避免除以0,给分母加上一个机器精度。(但是这个不是要求最大吗??,是最大化相应的目标,而不是最大化该函数值,因此与最小化总损失不矛盾)
在这里插入图片描述


TV损失:
在这里插入图片描述

为什么加入TV损失能够使训练过程更稳定,更好地逼近地面实况密度图呢?
:与Pix2Pix GAN中加入重构损失可以提高GAN训练的稳定性一样,使用sinkhorn算法进行训练与GAN训练过程类似,TV损失与重构损失的作用类似,因此也可以提高训练过程的稳定性。
在这里插入图片描述
使用Sinkhorn算法优化OT损失是一种极小-极大鞍点优化过程,类似于GAN优化。这意味着在每次迭代中,优化算法会同时更新两组变量,即生成器和判别器,使它们之间的目标函数达到最优值。在OT损失的情况下,最小化目标函数需要优化权重向量 α \alpha α β \beta β,同时最大化目标函数需要优化概率分布 μ \mu μ ν \nu ν 在每个迭代步骤中,算法根据当前的权重向量 α \alpha α β \beta β计算出概率分布 μ \mu μ ν \nu ν,然后使用Sinkhorn算法计算它们之间的Wasserstein距离,并更新 α \alpha α β \beta β以优化OT损失函数。

因为在GAN里使用了重构损失增加了训练的稳定性,TV损失类似于重构损失,所以也增加了训练过程的稳定性。


总损失:(最小化这个总损失)
在这里插入图片描述


Generalization Bounds and Theoretical Analysis(泛化界限和理论分析)

各变量代表含义:
期望风险: 是指在通过模型预测人群数量时,应该获取预测误差的期望值,以便在模型训练过程中进行优化,也即阈值。
在这里插入图片描述


1.高斯模糊的泛化误差:
在这里插入图片描述


2.贝叶斯损失的缺点(欠定,解有很多个)证明
n是密度图中像素的数量,二维高斯分布来近似目标的似然概率分布。
在这里插入图片描述


3.DM-Count的泛化误差界限
在这里插入图片描述


Experiments

数据集:toy data,UCF-QNRF , NWPU, ShanghaiTech, and UCF-CC-50 .
评价指标:MAE,RMSE(均方根误差,MSE的平方根),NAE(标准化绝对误差),都是越小越好
在这里插入图片描述
1.toy data
原图像密度图使用均匀分布初始化(0,0.01)之间,在the Pixel-wise loss, the Bayesian loss and DM-Count三者之间进行比较,结果如下:
在这里插入图片描述
2.benchmark
训练设置
在这里插入图片描述
结果DM-count最好,除了 CAN under MSE in NWPU (where they are comparable)。


Ablation Studies消融实验

1.超参数两个 λ \lambda λ的设置:固定一个,调整另一个,最终确定 λ 1 = 0.1 , λ 2 = 0.01 \lambda_1=0.1,\lambda_2=0.01 λ1=0.1,λ2=0.01,并使用在所有数据集上。
2.Sinkhorn iterations迭代数量:
在这里插入图片描述
迭代次数到了100之后,准确度高于SOTA,高于100之后,趋于平稳,因此迭代次数使用100次。
3.三个损失函数各部分的贡献度:
在这里插入图片描述
结论:所有部分都是必要的,最重要的是OT损失。
4.对于噪声标注的鲁棒性:
在这里插入图片描述
结论:DM-count最好。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值