Towards perspective-free object counting with deep learning
概要
文章提出了一种精确估算交通拥堵环境下车辆数量或密集人群中人数的模型。
组成部分:
- CountingCNN:回归模型,学习从图像样本到对应的目标密度图的映射
- HydraCNN:多规模的非线性回归模型,使用不同规模下的图像样本生成密度预测
具体方法
生成密度图
对于训练图像中每一个标定的目标位置,使用高斯函数生成针对该点的密度分布:
其中AI是图像I中所有标记的2D点,μ和∑是高斯函数的均值和协方差矩阵。
整张图像的密度图即为针对所有标记点所生成的密度图的累加:
CountingCNN
CountingCNN包含6个卷积层:
- 7x7x32卷积核,2x2最大值池化,Relu
- 7x7x32卷积核,2x2最大值池化,Relu
- 5x5x64卷积核,2x2最大值池化,Relu
- 1x1x1000卷积核,Relu
- 1x1x400卷积核,Relu
- 1x1x1卷积核,得到密度图
网络结构:
损失函数为欧几里得回归损失:
作者训练时使用了Caffe框架和随机梯度下降算法。
HydraCNN
为解决视角各不相同的问题,文章使用了包含多个头部和一个躯干的HydraCNN(名称取自古代希腊罗马神话中的九头蛇),其中每个头部负责学习某个规模的图像。
在训练过程中,给每个头部对应的网络输入经过不同系数缩放的图像,使得各网络的输出结果分别对应图像在对应规模上的输出结果,并一起作为躯干部分的输入。
躯干部分即HydraCNN负责学习合并所有输入,输出最终的密度图像的映射。网络前两个全连接层分别有512个神经元,且都使用Relu和dropout。最后一个全连接层有324个神经元,对应输出的密度图像。
网络结构:
训练HydraCNN时使用相同的损失函数,作者也使用了Caffe工具和随机梯度下降算法。