好的计数方法可以扩展到其他领域,例如细胞计数或显微镜图像中的细菌,野生动物保护区中的动物数量估计,或交通枢纽或交通堵塞处的车辆数量估计
Arguably the most extensively used method for crowd counting is feature-based regression, see [4, 7, 5, 27, 15, 20]. The main steps of this kind of method are: 1) segmenting the foreground; 2) extracting various features from the foreground, such as area of crowd mask [4, 7, 27, 23], edge count [4, 7, 27, 25], or texture features [22, 7]; 3) utilizing a regression function to estimate the crowd count. Linear [23] or piece-wise linear [25] functions are relatively simple models and yield decent performance. Other more advanced/effective methods are ridge regression (RR) [7], Gaussian process regression (GPR) [4], and neural network (NN) [22].
可以说最广泛使用的人群统计方法是基于特征的回归,见[4,7,5,27,15,20]。这种方法的主要步骤是:1)分割前景;2)从前景提取各种特征,例如人群遮罩的区域[4,7,27,23],边缘计数[4,7,27,25],或纹理特征[22,7];3)利用回归函数来估计人群计数。线性[23]或分段线性[25]函数是相对简单的模型,性能良好。其他更先进/有效的方法有岭回归(RR) [7],高斯过程回归(GPR) [4],神经网络(NN) [22]。
看这篇文章以前的工作都得首先进行前景分割
数据集A部分的图像是从网上随机抓取的,大部分都有大量的人。B部分取自上海大都市区繁华街道。
A部分有482幅从互联网上随机抓取的图像,B部分有716幅取自上海大都市繁华街道的图像。这两个子集之间的人群密度差异很大,使得人群的准确估计比大多数现有数据集更具挑战性。A部分和B部分都分为训练和测试:A部分300幅图像用于训练,其余182幅图像用于测试;,400张B部分图片用于训练,316张用于测试。
A部分人普遍多一些,B部分人少一些
密度图保留了更多信息。与人群总数相比,密度图给出了给定图像中人群的空间分布,这种分布信息在许多应用中是有用的。例如,如果一个小区域的密度比其他区域高得多,这可能表明那里发生了异常情况。
To convert this to a continuous density function, we may convolve this function with a Gaussian kernel[17] Gσso that the density is F(x) = H(x) ∗ Gσ(x).
为了把它转换成一个连续的密度函数,我们可以把这个函数和一个高斯核[17]Gσ卷积,这样密度就是F(x)= H(x)∩Gσ(x)。
因此,我们应该根据图像中每个人的头部大小来确定扩散参数σ。然而,在实践中,由于许多情况下的遮挡,几乎不可能准确地获得头部的大小,并且也很难找到头部大小和密度图之间的潜在关系。有趣的是,我们发现在拥挤的场景中,头部的大小通常与两个相邻人的中心之间的距离有关(请参考图2)。作为折衷,对于那些拥挤场景的密度图,我们建议根据每个人到其邻居的平均距离,数据自适应地确定每个人的传播参数。
我们需要将δ(x−xi)与方差σi与di成正比的高斯核卷积
上面这个图这不就是成正比吗,β一般取0.3
对于某些参数β。换句话说,我们将标签H与每个数据点周围的局部几何的自适应密度核卷积,称为几何自适应核。在我们的实验中,我们发现β = 0.3是最好的结果。
它包含三个并行的cnn,它们的滤波器具有不同大小的本地接受域。为简化起见,除了过滤器的大小和数量外,我们对所有列(即卷积池-卷积池)使用相同的网络结构。对每个2×2区域应用最大池化,由于矫正线性单元(ReLU)对cnn[32]具有良好的性能,因此采用其作为激活函数。为了减少计算复杂度(需要优化的参数数量),对于滤波器较大的CNNs,我们使用较少的滤波器数量。我们将所有cnn的输出特征映射叠加到一个密度图上。为了将特征映射到密度映射,我们采用了尺寸为1 × 1的滤波器
θ是MCNN中的一组可学习参数。
Optimization of MCNN
损失函数(1)可以通过基于批处理的随机梯度下降和反向传播优化,这是典型的训练神经网络。然而,在现实中,由于训练样本的数量非常有限,以及梯度消失对深度神经网络的影响,同时学习所有的参数并不容易。受RBM[11]预训练成功的激励,我们将第四卷积层的输出直接映射到密度图上,分别对每一列的CNN进行预训练。然后,我们使用这些预先训练好的cnn来初始化所有列中的cnn,并同时微调所有参数。
MCNN模型并不特别深入也不复杂,但是它在所有数据集上都取得了竞争的并且通常是优越的性能。
论文这里用的评价指标的MSE用的不是均方误差,用的是均方根误差
为了增加训练MCNN的训练集,我们从每个图像的不同位置裁剪了9个面片,每个面片都是原始图像的1/4大小。所有的补丁都用来训练我们的MCNN模型。对于A部分,由于人群密度通常很高,我们使用几何自适应核生成密度图,并通过平均计算重叠区域的预测密度。对于B部分,由于人群相对稀疏,我们在高斯核中使用相同的扩散来生成(地面真实)密度图。
他迁移学习这块东西的处理如下操作
我们以上海理工大学的A部分数据集为源域,以UCF CC 50数据集为目标域,在迁移学习环境下对我们的方法进行了测试。具体来说,我们使用源域中的数据来训练一个MCNNs模型。对于目标域的人群计数任务,我们进行了两种设置,即(I)目标域没有训练样本,(ii)目标域只有少量样本。