人群计数旨在估计图像或视频中人群的数量、密度或分布,属于目标计数领域中的一类,既是智能视频监控分析领域的关键问题和研究热点,也是后续行为分析、拥塞分析、异常检测和事件检测等高级视频处理任务的基础。
通过传统的计算机视觉方法提取行人特征,然后通过目标检测或回归的方式获取图像或视频中人群的数量。无法从图像中提取更抽象的有助于完成人群计数任务的语义特征,使得面对背景复杂、人群密集、遮挡严重的场景时,计数精度无法满足实际需求,具有一定的局限性。
可以分为两类:直接回归计数法和密度图估计法
/ | 直接回归计数法 | 密度图估计法 |
---|---|---|
步骤 | input(图片)——>outout(人数) | input(图片)——>output(密度图)——>估计人数 |
适用性 | 人群稀疏场景 | 取决于密度图的质量 |
提升密度图质量的方法:引入新的损失函数来提高密度图的清晰度和准确度。无论采用哪种方法,都需要先进行特征提取。为了提升特征的鲁棒性,常使用多尺度预测、上下文感知、 空洞卷积、可形变卷积等方法改进特征提取过程,以增强特征的判别能力。
可分为:单分支结构、多分支结构和特殊结构
早期基于 CNN 的人群计数网络均为只包含一条数据通路的单分支网络结构。
如Wang[1] 等人最先将CNN 引入人群计数领域(15年提出),提出了一种适用于密集人群场景的端到端 CNN 回归模型。该模型对AlexNet网络[2](12年提出)进行改进,将最后的全连接层替换为单神经元层,直接预测人群数量。
[1] Wang Chuan, Zhang Hua, Yang Liang, et al. Deep people counting in extremely dense crowds [C] // Proc of the 23rd ACM Int Conf on Multimedia. New York: ACM, 2015: 1299-1302
[2] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks [C] // Proc of the 25th Int Conf on Neural Information Processing systems. Cambridge, MA: MIT Press,2012: 1097-1105
Zhang 等人[3]提出了一种基于 AlexNet 的跨场景计数模型 Crowd CNN,首次尝试输出人群密度图。算法会根据目标场景特点,选择相似场景对计数模型进行微调(fine-tuning),如图 1(b)所示,以达到跨场景计数的目的。为了提升计数准确性,作者还提出了透视图(perspective map)的概念,如图 2(a)所示,颜色越红代表目标尺度越大.然后,通过密度图和透视图的融合,如图 2(b)所示,降低透视形变(perspective distortion)的不良影响,提升密度图质量。
[3] Zhang Cong, Li Hongsheng, Wang Xiaogang, et al. Cross-scene crowd counting via deep convolutional neural networks [C] //Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2015: 833-841.
多分支结构的提出是为了解决人群计数场景中存在的多尺度问题。
[4] Boominathan L, Kruthiventi S S S, Babu R V, et al. CrowdNet: A deep convolutional network for dense crowd counting [C] // Proc of the 24th ACM Int Conf on Multimedia. New York: ACM, 2016: 640-644
[5] Ciregan D, Meier U, Schmidhuber J. Multi-column deep neural networks for image classification [C] // Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2012: 3642-3649
[6] Zhang Yingying, Zhou Desen, Chen Siqin, et al. Single-image crowd counting via multi-column convolutional neural network [C] //Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2016: 589-597
[7] Sindagi V A, Patel V M. Generating high-quality crowd density maps using contextual pyramid CNNs [C] // Proc of the IEEE Int Conf on Computer Vision. Piscataway, NJ: IEEE, 2017: 1861-1870
[8] Goodfellow I J, Pouget-Abadie J, Mirza M, et al. Generative adversarialnets [C] // Proc of the 27th Int Conf on Neural Information Processing Systems. Cambridge, MA: MIT Press, 2014: 2672-2680
[9] Sam D B, Surya S, Babu R V, et al. Switching convolutional neural network for crowd counting [C] // Proc of the IEEE Conf on Computer Vision and Pattern Recognition Honolulu. Piscataway, NJ: IEEE, 2017: 4031-4039
[10] Sam D B, Sajjan N N, Babu R V, et al. Divide and grow: Capturing huge diversity in crowd images with incrementally growing CNN [C] // Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2018: 3618-3626
[11] Liu Jiang, Gao Chenqiang, Meng Deyu, et al. Decidenet: Counting varying density crowds through attention guided detection and density estimation [C] // Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2018: 5197-5206
多列计数网络发展到这里,出现的问题是:
(1)多尺度表达的性能通常依赖于网络分支的数量,即尺度的多样性受限于分支数目;
(2)已有工作大多采用欧氏距离作为损失函数,如果像素之间互相独立,生成的密度图比较模糊。
[12] Cao Xinkun, Wang Zhipeng, Zhao Yanyun, et al. Scale aggregation network for accurate and efficient crowd counting [G] // LNCS 11209: Proc of the 15th European Conf on Computer Vision. Berlin: Springer, 2018: 734-750
[13] Szegedy C, Liu Wei, Jia Yangqing, et al. Going deeper with convolutions [C] // Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2015: 1-9
发展到这里,人们开始关注加入注意力机制来解决多尺度问题:
[14] Hossain M, Hosseinzadeh M, Chanda O, et al. Crowd counting using scale-aware attention networks [C] // Proc of the IEEE Winter Conf on Applications of Computer Vision. Piscataway, NJ: IEEE, 2019: 1280-1288
多分支结构的缺点:
所以,发展到这里人们开始思考构建一些新型的网络架构,例如空洞卷积网络(dilated convolutional networks)[15]、可形变卷积网络(deformable convolutional network)[16]、 GAN等。
[15] Yu F, Koltun V. Multi-scale context aggregation by dilated convolutions [EB/OL]. (2016-04-30)[2020-12-23]. https://arxiv.org/abs/1511.07122
[16] Dai Jifeng, Qi Haozhi, Xiong Yuwen, et al. Deformable convolutional networks [C] // Proc of the IEEE Int Conf on Computer Vision. Piscataway, NJ: IEEE, 2017: 764-773
[17] Li Yuhong, Zhang Xiaofan, Chen Deming. CSRNET: Dilated convolutional neural networks for understanding the highly congested scenes [C] // Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2018: 1091-1100
[18] Shen Zan, Xu Yi, Ni Bingbing, et al. Crowd counting via adversarial cross-scale consistency pursuit [C] // Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2018: 5245-5254
[19] Liu Ning, Long Yongchao, Zou Changqing, et al. ADCrowdNet: An attention-injective deformable convolutional network for crowd understanding [C] // Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2019: 3225-3234
优点:简单、训练速度快,计数效果较好,早期得到了较为广泛的应用。
缺点:鲁棒性较差,很容易因为个别像素点的极端情况而影响整体的计数效果。此外,欧氏距离损失是取所有像素点的平均,并不关注图片的结构化信息。对于同一张图片,容易出现人群密集区域预测值偏小,而人群稀疏区域预测值偏大的问题,但是最终的平均结果却没有体现这些问题,从而导致生成的密度图模糊、细节不清晰。
这个指标是在图像质量评价相关论文中由Wang 等人提出的图像质量评价标准,SSIM 从图像的亮度、对比度和结构这 3 个方面度量图像相似性,并通过均值、方差、协方差 3 个局部统计量计算2张图像之间的相似度。SSIM的取值范围在-1~1之间,SSIM 值越大,说明相似度越高。
GAN为解决图像转换问题提供了一个可行的思路,即可以通过生成网络和判别网络的不断博弈,进而使生成网络学习人群密度分布,生成密度图的质量逐渐趋好;判别网络也通过不断训练,提高本身的判别能力。
高质量密度图是人群计数算法成功的基础和关键, ground-truth 的生成方法将是人群计数领域未来的一个研究重点。为了训练计数网络,需要对人群图片中的目标进行标注,常见的做法是为图片中的每个人头标注中心坐标,然后再利用高斯核将坐标图转化为 ground-truth人群密度图,ground-truth 密度图生成的关键在于如何选择高斯核,设置不同的高斯核对网络性能的影响很大,以下介绍几种常用的高斯核设置方法。
由于存在透视效应,在人群图片中远近景目标的尺寸差异较大,不同位置人头对应着不同大小的像素区域.因此要想生成更精确的人群密度图,就需要考
虑透视畸变的影响,大人头应采用大尺寸高斯核,小人头则正好相反。
MCNN认为在拥挤的场景中,头部大小通常与相邻 2 个人中心点的距离有关。因此根据每个人与其k个邻居的平均距离来自适应地确定每个人的头部尺寸,也就是高斯卷积核的方差,然后将所有人头卷积后的结果进行累加,生成人群密度图。这种方法虽然考虑了多尺度差异,但是对于近处目标来说,人头间距远大于人头的实际尺寸,导致高斯核尺寸过大,近处人群的密度图会因为值过小而消失。如图 16 所示,密度图中只能看到远处有人群,而近处的人群极不明显。
该方法忽略了人头尺寸差异,以及自身与邻居的相似性,无论图片中哪个位置的人头均采用方差大小固定的高斯核对每个人头进行高斯模糊,采用固定高斯核的算法有 CP-CNN[36],其生成的 ground-truth 密度图如图 17 所示.固定高斯核法解决了几何自适应法中的近处人头消失的问题,但是由于高斯核大小固定,对于远处人头来说,高斯核尺寸可能过大,使得远处人头出现重叠,降低了密度图质量。
为解决上述 2 种方法存在的问题, Oghaz 等人[66]提出了一种通过内容感知标注技术生成密度图的方法。首先,用暴力最近邻(brute-force nearest neighbor)算 法 定 位 最 近 的 头 部 , 再 用 无 监 督 分 割 算 法Chan-Vese 分割出头部区域,然后依据邻居头部的大小计算高斯核尺寸,其生成的密度图如图 18 所示。该方法也是根据邻居情况灵活确定高斯核大小,但是与几何自适应法相比,它采用 brute-force 最近邻算法替代 k-d 树 空 间 划 分 法 (k-d tree space partitioning approach)来寻找最近邻,这样能确保寻找结果与实际相符。
在人群计数领域,常用的评价指标有:
1、对于目标计数方向,采集图像非常困难,且无法实现准确标注,此时可以考虑通过人工合成的方法生成图片,例如 GCC[20]通过生成对抗网络人工合成了大量图片,为构建数据集提供了新思路。
2、不同场景下(光照、天气、遮挡)的人群计数问题研究
3、人群计数的迁移学习
[20] Wang Qi, Gao Junyu, Lin Wei, et al. Learning from synthetic data for crowd counting in the wild [C] // Proc of the IEEE Conf on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2019: 8198-8207
参考文献:余鹰,朱慧琳,钱进,潘诚,苗夺谦.基于深度学习的人群计数研究综述.计算机研究与发展.