一. 应用背景
在安防大背景下,对敏感区域人流量的管控是一个重要的课题,防止人群骚乱、踩踏现象的发生,对非预期的人员汇聚进行预警等等,最常用的方法是检测到每个目标,然后借助 Perspective 矩阵完成到实际位置的映射,当然,在目标很难检测的情况下(密度极大、遮挡严重),基于回归的方法就派上了用场。
本节主要讲基于深度学习的回归方法来实现人群密度检测。
二. 人群密度之 Crowd Net
不想绕过这篇有代表性的论文:
论文:CrowdNet: A Deep Convolutional Network for Dense Crowd Counting 【点击下载】
Caffe代码:【Github】
先来看架构图:
论文采用了两个网络的融合,可以理解为不同的网络提取的特征不同,上面 Max Pool 对边缘特征(细节)提取较好,下面的 Shallow Net 采用 Avrg Pool 对于整体特征描述较好,两个网络通过一个 concat 进行连接,然后1*1的conv进行降维,非常简单。
这里面有两个细节要注意:
1)文中采用了膨胀卷积,提取整体特征,这个现在用的也比较多了,估计都很熟;
2)数据增广,采用了不同尺度的样本采样,Hard mining 策略,也都是老套路了;
实验效果自己看论文吧,只能说,这篇文章比较典型,作为普及性的输入材料是很不错的,这里有其巨大的贡献。
三. 基于视频的密度估计
论文:Spatiotemporal Modeling for crowd counting in videos 【点击下载】
Caffe代码:【Github】
在讲这篇文章之前,先来熟悉一下 RNN,LSTM,在图像领域应用不多,但在NLP、文本处理中发挥着巨大的价值。
在含有时间信息的视频中,RNN(LSTM)成为该问题的有效手段之一(当然还有 Two Stream,Conv3D等)。
1)RNN 循环神经网络
这个比较好理解,在计算当前帧的时候,加入了上一帧的信息。
2)LSTM
由于之前信息在多次迭代后的 vanish 问题,采用 gate 的方式实现信息的存储。
关于 LSTM 可以参考这篇Blog,讲的还是比较透彻的:【简书】
言归正传,如何通过时序信息来进行密度估计的呢?我们来看:
> ConvLSTM
ConvLSTM 是将 LSTM 中的全连接替换为卷积,将 LSTM的时序与 CNN的空间域特征结合起来,右边是公式。
> Bidirectional
双向 RNN,即用到前面序列,又用到后面序列,对实时性要求高的系统是不合适的,会有延迟。
> 实验效果
看一下实验效果还是很不错的: