论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文: http://openaccess.thecvf.com/content_ICCV_2019/papers/Ma_Bayesian_Loss_for_Crowd_Count_Estimation_With_Point_Supervision_ICCV_2019_paper.pdf

代码:https://github.com/ZhihengCV/Bayesian-Crowd-Counting

本文是ICCV 2019口头展示(Oral)文章.

传统的方法往往以从点标注生成的伪标签进行监督,进行直接的密度回归,

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文采用了一个全新的思路,不再依赖从点标注生成不完美的伪标签,而是直接采用数据库所提供的点标注作为(弱)监督信号,为了是监督信号格式匹配,作者从估计得到的概率密度图的基础上又多进行了一步"期望"操作,利用"离散"的概率密度期望值与"离散"的点标注设计损失函数并进行期望值意义上的回归估计,

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文方法与传统方法在技术路线和思路上有显著区别.请注意两种方案中监督信号作用点的不同,传统方法需要从点标注生成全图"伪真值标签",我们则放弃了这个带来显著噪声和虚假信号的做法,改为从估计的概率密度图上进行期望计算,直接与真值点标注进行回归估计.

训练过程

所提方法的训练过程示意图如下所示:

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

 

论文提出贝叶斯损失,根据点标注构造密度贡献概率模型,提出的损失不约束密度图中的每个像素点的值,而是对每个标注点的期望计数采取更可靠的监督.

将问题理解为基于图像中某个点的位置,该点存在一个人(head point)的概率,因此人群计数的期望等于该后验概率与密度图的内积.基于高斯核的密度图变换表示为:

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision代表二维空间的位置,给定每个点的label 论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision,论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision的似然函数为:

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

问题:这个不是跟上面的高斯变换的密度图一样吗?

首先,从某个人出现在某个位置的概率问题用贝叶斯估计去代入,由贝叶斯公式:

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision表示density map上某个位置,yn表示第n个人,总共是N个人,观测值是论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision,表示论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision处观测到一个人,然后p(yn|xm()在论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision处观测道德人是yn的概率,论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision处观测到的人可能是N个人中的任意一个,所以先验分布p(yn)用均匀分布1/N表示,然后论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision表示yn出现在论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision处的概率,那么这个概率好表示,文中用了2D的高斯分布表示

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

zn表示yn这个人所在的坐标,也就是说距离yn越远,那yn出现在这里的概率就越小.以上P(yn|xm)就是xm处要是存在一个人,那么这个人是yn的概率,然后利用期望,求了yn这个人出现在整张图上的概率.有了后验概率和密度图,则图像中的人群数目的期望表示为:

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

其中论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision表示为空间位置论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision对于其标注论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision的贡献,或者说,某一空间位置可能存在人头的概率大小.然后将该概率向量与密度图求内积,得到整张图片的人群数量期望.预测的密度图有M个点,然后每个点的值代表该点处存在一个人的概率,然后结合后验概率p(yn|xm)的概念,上面的公式表示yn这个人在整张密度图上出现的概率,当然他是存在的,且应该是1,所以ground truth就是1,所以loss可以表示为如下所示:(一般地,在每个位置,只会标注一个人)

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

这就是本文的核心,即贝叶斯loss,F在这里表示L1的loss,即绝对误差,因此本文是在根据预测的密度图,来推测每个标注了的人存在的概率,期望每个标注了的人存在的概率接近于1.

问题,这个论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision表示的是某个点处的人数吗?

答:表示yn这个人在整张density map上出现的概率.

在前向时,没必要知道该后验概率,图像中人群数量估计为:

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

对于背景点位置,没必要给他们分配标注,因此给他们一个背景标注论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

我们希望前景的期望趋于1,背景的期望趋于0,因此该贝叶斯loss改为:

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

为每个像素构造一个虚拟像素点,论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision是人头标注点,d控制了标注人头与虚拟背景点的距离.如果一个位置离人头比较远,那么为之分配一个虚拟背景点.同样可以哦嗯高斯核来计算背景点的似然

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

论文阅读Bayesian Loss for Crowd Count Estimation with Point Supervision

问题:这个d是如何确定的呢?