发明内容
本发明所要解决的问题:图片人头计数问题。
为解决上述问题,本发明采用的方案如下:
根据本发明的一种基于卷积神经网络的图片人头计数的方法,该方法包括模型计算步骤;所述模型计算步骤用于通过人头计数卷积神经网络模型计算得到人群密度图;
其中,所述人头计数卷积神经网络模型包括前端网络、中端网络和后端网络;
所述前端网络包括第一前端特征网络、第二前端特征网络、第三前端特征网络、第四前端特征网络和前端特征融合网络;
所述第一前端特征网络包括按顺序相连的第一前端卷积层、第二前端卷积层和第一前端池化层;所述第一前端卷积层的输入即为所述第一前端特征网络的输入,也即为所述前端网络的输入;所述第一前端特征网络的输出即为所述第一前端池化层的输出,输出通道数为64、尺寸大小为输入图像1/2的第一前端特征图ff1;
所述第一前端卷积层中,输入通道数为3,输出通道数为64,卷积核大小为3*3,步长为1,填充为1;所述第二前端卷积层中,输入通道数为64,输出通道数为64,卷积核大小为3*3,步长为1,填充为1;所述第一前端池化层中,池化核为2*2,步长为2,填充为0,采用最大池化;
所述第二前端特征网络包括按顺序相连的第三前端卷积层、第四前端卷积层和第二前端池化层;所述第二前端特征网络的输入即为所述第三前端卷积层的输入,连接所述第一前端特征网络的输出;所述第二前端特征网络的输出即为所述第二前端池化层的输出,输出通道数为128、尺寸大小为输入图像1/4的第二前端特征图ff2;
所述第三前端卷积层中,输入通道数为64,输出通道数为128,卷积核大小为3*3,步长为1,填充为1;所述第四前端卷积层中,输入通道数为128,输出通道数为128,卷积核大小为3*3,步长为1,填充为1;所述第二前端池化层中,池化核大小为2*2,步长为2,填充为0,采用最大池化;
所述第三前端特征网络包括按顺序相连的第五前端卷积层、两个第六前端卷积层和第三前端池化层;所述第三前端特征网络的输入即为所述第五前端卷积层的输入,连接所述第二前端特征网络的输出;所述第三前端特征网络的输出即为所述第三前端池化层的输出,输出通道数为256、尺寸大小为输入图像1/8的第三前端特征图ff3;
所述第五前端卷积层中,输入通道数为128,输出通道数为256,卷积核大小为3*3,步长为1,填充为1;所述第六前端卷积层中,输入通道数为256,输出通道数为256,卷积核大小为3*3,步长为1,填充为1;所述第三前端池化层中,池化核大小为2*2,步长为2,填充为0,采用最大池化;
所述第四前端特征网络包括按顺序相连的第七前端卷积层和两个第八前端卷积层;所述第四前端特征网络的输入即为所述第七前端卷积层的输入,连接所述第三前端特征网络的输出;所述第四前端特征网络的输出即为位于尾端的所述第八前端卷积层的输出,输出通道数为512、尺寸大小为输入图像1/8的第四前端特征图ff4;
所述第七前端卷积层中,输入通道数为256,输出通道数为512,卷积核大小为3*3,步长为1,填充为1;所述第八前端卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为1;
所述前端特征融合网络包括第一特征修整网络、第五前端池化层、前端特征堆叠层和第十前端卷积层;所述前端特征融合网络的输入连接所述第一前端特征网络、第二前端特征网络、第三前端特征网络和第四前端特征网络的输出;其中,所述第一特征修整网络的输入连接所述第一前端特征网络的输出;所述第五前端池化层的输入连接所述第二前端特征网络的输出;所述前端特征堆叠层的输入连接所述第一特征修整网络的输出、所述第五前端池化层的输出、第三前端特征网络和第四前端特征网络的输出;所述第十前端卷积层的输入连接所述前端特征堆叠层的输出;所述前端特征融合网络的输出,即为所述第十前端卷积层的输出,也即为所述前端网络的输出,输出通道数为512、尺寸大小为输入图像1/8的前端融合特征图ffv;
所述第一特征修整网络包括按顺序相连的两个第四前端池化层和第九前端卷积层;所述第一特征修整网络的输入也即为位于前端的所述第四前端池化层的输入;所述第一特征修整网络的输出也即为所述第九前端卷积层的输出,输出通道数为128、尺寸大小为输入图像1/8的第五前端特征图ff5;
所述前端特征堆叠层用于将所述第一特征修整网络输出的通道数为128、尺寸大小为输入图像1/8的第五前端特征图ff5、所述第五前端池化层输出的通道数为128、尺寸大小为输入图像1/8的第六前端特征图ff6、所述第三前端特征网络输出的通道数为256、尺寸大小为输入图像1/8的第三前端特征图ff3、所述第四前端特征网络输出的通道数为512、尺寸大小为输入图像1/8的第四前端特征图ff4在通道维度上堆叠,堆叠成通道数为1024、尺寸大小为输入图像1/8的第七前端特征图ff7;
所述第四前端池化层中,池化核大小为2*2,步长为2,填充为0,采用最大池化;所述第九前端卷积层中,输入通道数为64,输出通道数为128,卷积核大小为1*1,步长为1,填充为0;所述第五前端池化层中,池化核大小为2*2,步长为2,填充为0,采用最大池化;所述第十前端卷积层中,输入通道数为1024,输出通道数为512,卷积核大小为1*1,步长为1,填充为0;
所述前端网络中,每个前端卷积层后设有激活函数ReLU;
所述中端网络包括第一中端卷积层、第二中端卷积层、第三中端卷积层、第四中端卷积层、中端特征堆叠层和第五中端卷积层;所述第一中端卷积层、第二中端卷积层、第三中端卷积层和第四中端卷积层按顺序依次相连;所述第一中端卷积层的输入,即为所述中端网络的输入,连接所述前端网络的输出;所述中端特征堆叠层的输入连接所述第一中端卷积层、第二中端卷积层、第三中端卷积层和第四中端卷积层的输出;所述第五中端卷积层的输入连接所述中端特征堆叠层的输出;所述第五中端卷积层的输出,也即为所述中端网络的输出,输出通道数为512、尺寸大小为输入图像1/8的中端融合特征图fmv;
所述中端特征堆叠层用于将所述第一中端卷积层、第二中端卷积层、第三中端卷积层和第四中端卷积层输出的通道数为512、尺寸大小为输入图像1/8的图像在通道维度上堆叠,堆叠成通道数为2048、尺寸大小为输入图像1/8的第五中端特征图像fm5;
所述第一中端卷积层、第二中端卷积层、第三中端卷积层和第四中端卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为1;所述第五中端卷积层中,输入通道数为2048,输出通道数为512,卷积核大小为1*1,步长为1,填充为0;
所述中端网络中,每个中端卷积层后不设置激活函数;
所述后端网络包括第一空洞卷积融合网络、第二空洞卷积融合网络和第三空洞卷积融合网络;所述后端网络的输入连接所述前端网络和中端网络的输出;
所述第一空洞卷积融合网络包括第一空洞卷积层、第二空洞卷积层、第一后端堆叠层、第一后端卷积层;所述第一空洞卷积层的输入连接所述中端网络的输出;所述第二空洞卷积层的输入连接所述第一空洞卷积层的输出;所述第一后端堆叠层的输入连接所述第二空洞卷积层的输出和所述前端网络的输出;所述第一后端卷积层的输入连接所述第一后端堆叠层的输出;所述第一后端卷积层的输出,即为所述第一空洞卷积融合网络的输出,输出通道数为512、尺寸大小为输入图像1/8的第一空洞融合图像fl1;
所述第一后端堆叠层用于将所述前端网络输出的通道数为512、尺寸大小为输入图像1/8的前端融合特征图ffv和所述第二空洞卷积层输出的通道数为512、尺寸大小为输入图像1/8的图像在通道维度上堆叠,堆叠成通道数为1024、尺寸大小为输入图像1/8的图像;
所述第一空洞卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为1,空洞率为1;所述第二空洞卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为2,空洞率为2;所述第一后端卷积层中,输入通道数为1024,输出通道数为512,卷积核大小为1x1,步长为1,填充为0;
所述第二空洞卷积融合网络包括第三空洞卷积层、第四空洞卷积层、第二后端卷积层、第二后端堆叠层和第三后端卷积层;所述第三空洞卷积层的输入连接所述第一空洞卷积融合网络的输出;所述第四空洞卷积层的输入连接所述第三空洞卷积层的输出;所述第二后端卷积层的输入连接所述中端网络的输出;所述第二后端堆叠层的输入连接所述第二后端卷积层的输出和所述第四空洞卷积层的输出;所述第三后端卷积层的输入连接所述第二后端堆叠层的输出;所述第三后端卷积层的输出,也即为所述第二空洞卷积融合网络的输出,输出通道数256、尺寸大小为输入图像1/8的第二空洞融合图像fl2;
所述第二后端堆叠层用于将所述第二后端卷积层输出的通道数为256、尺寸大小为输入图像1/8的图像和所述第四空洞卷积层输出的通道数为256、尺寸大小为输入图像1/8的图像在通道维度上堆叠,堆叠成通道数为512、尺寸大小为输入图像1/8的图像;
所述第三空洞卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3x3,步长为1,填充为1,空洞率为1;所述第四空洞卷积层中,输入通道数为512,输出通道数为256,卷积核大小为3x3,步长为1,填充为2,空洞率为2;所述第二后端卷积层中,输入通道数为512,输出通道数为256,卷积核大小为1x1,步长为1,填充为0;所述第三后端卷积层中,输入通道数为512,输出通道数为256,卷积核大小为1x1,步长为1,填充为0;
所述第三空洞卷积融合网络包括按顺序相连的第五空洞卷积层、第六空洞卷积层和第四后端卷积层;所述第三空洞卷积融合网络的输入即为所述第五空洞卷积层的输入,连接所述第二空洞卷积融合网络的输出;所述第四后端卷积层的输出,也即为所述第三空洞卷积融合网络的输出,也即为所述后端网络的输出,也即为所述人头计数卷积神经网络模型的输出,输出人群密度图;
所述第五空洞卷积层中,输入通道数为256,输出通道数为128,卷积核大小为3x3,步长为1,填充为1,空洞率为1;所述第六空洞卷积层中,输入通道数为128,输出通道数为64,卷积核大小为3x3,步长为1,填充为2,空洞率为2;所述第四后端卷积层中,输入通道数为64,输出通道数为1,卷积核大小为1x1,步长为1,填充为0;
所述后端网络中,每个后端卷积层和每个空洞卷积层后设有激活函数ReLU。
进一步,根据本发明的基于卷积神经网络的图片人头计数的方法,该方法还包括模型初始化步骤、数据初始化步骤、图片预处理步骤和人头计数步骤;
所述模型初始化步骤,用于:初始化所述人头计数卷积神经网络模型;
所述数据初始化步骤,用于:获取所述人头计数卷积神经网络模型训练得到的模型特征矩阵数据,然后将所述模型特征矩阵数据加载至所述人头计数卷积神经网络模型;
所述图片预处理步骤,用于:以边缘切断的方式对输入的图片尺寸进行修整,使得图片的长宽尺寸均为8倍数,并以均值0.485、0.456、 0.406和标准差0.229、0.224、0.225在三个通道上标准化像素值,使得图像在三个通道上归一化至区间[0,1],得到预处理图像fp;
所述人头计数步骤,用于:将所述预处理图像fp输入至所述数据初始化后的人头计数卷积神经网络模型,经所述人头计数卷积神经网络模型计算得到人群密度图;然后通过人群密度图进行积分累加得到所输入的图片中的人数。
进一步,根据本发明的基于卷积神经网络的图片人头计数的方法,该方法还包括获取训练数据集的步骤和模型训练步骤;所述模型训练步骤用于将所述训练数据集中的图片经所述图片预处理步骤后,输入至所述人头计数卷积神经网络模型进行模型计算,得到所述模型特征矩阵数据。
进一步,根据本发明的基于卷积神经网络的图片人头计数的方法,所述模型训练步骤中采用如下损失函数对所述模型特征矩阵数据进行评估:
其中,θ是所述模型特征矩阵数据,Ii为所述训练数据集中第i幅图片,Di(Ii, θ)为所述训练数据集中第i幅图片通过所述人头计数步骤得到的人群密度图,Dgi为所述训练数据集中第i幅图片通过手工编辑得到的期望密度图,N为所述训练数据集中的图片数。
进一步,根据本发明的基于卷积神经网络的图片人头计数的方法,所述通过人群密度图进行积分累加采用如下公式:
其中,Sum为图片总人数,P(xi)表示人群密度图中第i个像素点的像素值。
根据本发明的一种基于卷积神经网络的图片人头计数的装置,该装置包括模型计算模块;所述模型计算模块用于通过人头计数卷积神经网络模型计算得到人群密度图;
其中,所述人头计数卷积神经网络模型包括前端网络、中端网络和后端网络;
所述前端网络包括第一前端特征网络、第二前端特征网络、第三前端特征网络、第四前端特征网络和前端特征融合网络;
所述第一前端特征网络包括按顺序相连的第一前端卷积层、第二前端卷积层和第一前端池化层;所述第一前端卷积层的输入即为所述第一前端特征网络的输入,也即为所述前端网络的输入;所述第一前端特征网络的输出即为所述第一前端池化层的输出,输出通道数为64、尺寸大小为输入图像1/2的第一前端特征图ff1;
所述第一前端卷积层中,输入通道数为3,输出通道数为64,卷积核大小为3*3,步长为1,填充为1;所述第二前端卷积层中,输入通道数为64,输出通道数为64,卷积核大小为3*3,步长为1,填充为1;所述第一前端池化层中,池化核为2*2,步长为2,填充为0,采用最大池化;
所述第二前端特征网络包括按顺序相连的第三前端卷积层、第四前端卷积层和第二前端池化层;所述第二前端特征网络的输入即为所述第三前端卷积层的输入,连接所述第一前端特征网络的输出;所述第二前端特征网络的输出即为所述第二前端池化层的输出,输出通道数为128、尺寸大小为输入图像1/4的第二前端特征图ff2;
所述第三前端卷积层中,输入通道数为64,输出通道数为128,卷积核大小为3*3,步长为1,填充为1;所述第四前端卷积层中,输入通道数为128,输出通道数为128,卷积核大小为3*3,步长为1,填充为1;所述第二前端池化层中,池化核大小为2*2,步长为2,填充为0,采用最大池化;
所述第三前端特征网络包括按顺序相连的第五前端卷积层、两个第六前端卷积层和第三前端池化层;所述第三前端特征网络的输入即为所述第五前端卷积层的输入,连接所述第二前端特征网络的输出;所述第三前端特征网络的输出即为所述第三前端池化层的输出,输出通道数为256、尺寸大小为输入图像1/8的第三前端特征图ff3;
所述第五前端卷积层中,输入通道数为128,输出通道数为256,卷积核大小为3*3,步长为1,填充为1;所述第六前端卷积层中,输入通道数为256,输出通道数为256,卷积核大小为3*3,步长为1,填充为1;所述第三前端池化层中,池化核大小为2*2,步长为2,填充为0,采用最大池化;
所述第四前端特征网络包括按顺序相连的第七前端卷积层和两个第八前端卷积层;所述第四前端特征网络的输入即为所述第七前端卷积层的输入,连接所述第三前端特征网络的输出;所述第四前端特征网络的输出即为位于尾端的所述第八前端卷积层的输出,输出通道数为512、尺寸大小为输入图像1/8的第四前端特征图ff4;
所述第七前端卷积层中,输入通道数为256,输出通道数为512,卷积核大小为3*3,步长为1,填充为1;所述第八前端卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为1;
所述前端特征融合网络包括第一特征修整网络、第五前端池化层、前端特征堆叠层和第十前端卷积层;所述前端特征融合网络的输入连接所述第一前端特征网络、第二前端特征网络、第三前端特征网络和第四前端特征网络的输出;其中,所述第一特征修整网络的输入连接所述第一前端特征网络的输出;所述第五前端池化层的输入连接所述第二前端特征网络的输出;所述前端特征堆叠层的输入连接所述第一特征修整网络的输出、所述第五前端池化层的输出、第三前端特征网络和第四前端特征网络的输出;所述第十前端卷积层的输入连接所述前端特征堆叠层的输出;所述前端特征融合网络的输出,即为所述第十前端卷积层的输出,也即为所述前端网络的输出,输出通道数为512、尺寸大小为输入图像1/8的前端融合特征图ffv;
所述第一特征修整网络包括按顺序相连的两个第四前端池化层和第九前端卷积层;所述第一特征修整网络的输入也即为位于前端的所述第四前端池化层的输入;所述第一特征修整网络的输出也即为所述第九前端卷积层的输出,输出通道数为128、尺寸大小为输入图像1/8的第五前端特征图ff5;
所述前端特征堆叠层用于将所述第一特征修整网络输出的通道数为128、尺寸大小为输入图像1/8的第五前端特征图ff5、所述第五前端池化层输出的通道数为128、尺寸大小为输入图像1/8的第六前端特征图ff6、所述第三前端特征网络输出的通道数为256、尺寸大小为输入图像1/8的第三前端特征图ff3、所述第四前端特征网络输出的通道数为512、尺寸大小为输入图像1/8的第四前端特征图ff4在通道维度上堆叠,堆叠成通道数为1024、尺寸大小为输入图像1/8的第七前端特征图ff7;
所述第四前端池化层中,池化核大小为2*2,步长为2,填充为0,采用最大池化;所述第九前端卷积层中,输入通道数为64,输出通道数为128,卷积核大小为1*1,步长为1,填充为0;所述第五前端池化层中,池化核大小为2*2,步长为2,填充为0,采用最大池化;所述第十前端卷积层中,输入通道数为1024,输出通道数为512,卷积核大小为1*1,步长为1,填充为0;
所述前端网络中,每个前端卷积层后设有激活函数ReLU;
所述中端网络包括第一中端卷积层、第二中端卷积层、第三中端卷积层、第四中端卷积层、中端特征堆叠层和第五中端卷积层;所述第一中端卷积层、第二中端卷积层、第三中端卷积层和第四中端卷积层按顺序依次相连;所述第一中端卷积层的输入,即为所述中端网络的输入,连接所述前端网络的输出;所述中端特征堆叠层的输入连接所述第一中端卷积层、第二中端卷积层、第三中端卷积层和第四中端卷积层的输出;所述第五中端卷积层的输入连接所述中端特征堆叠层的输出;所述第五中端卷积层的输出,也即为所述中端网络的输出,输出通道数为512、尺寸大小为输入图像1/8的中端融合特征图fmv;
所述中端特征堆叠层用于将所述第一中端卷积层、第二中端卷积层、第三中端卷积层和第四中端卷积层输出的通道数为512、尺寸大小为输入图像1/8的图像在通道维度上堆叠,堆叠成通道数为2048、尺寸大小为输入图像1/8的第五中端特征图像fm5;
所述第一中端卷积层、第二中端卷积层、第三中端卷积层和第四中端卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为1;所述第五中端卷积层中,输入通道数为2048,输出通道数为512,卷积核大小为1*1,步长为1,填充为0;
所述中端网络中,每个中端卷积层后不设置激活函数;
所述后端网络包括第一空洞卷积融合网络、第二空洞卷积融合网络和第三空洞卷积融合网络;所述后端网络的输入连接所述前端网络和中端网络的输出;
所述第一空洞卷积融合网络包括第一空洞卷积层、第二空洞卷积层、第一后端堆叠层、第一后端卷积层;所述第一空洞卷积层的输入连接所述中端网络的输出;所述第二空洞卷积层的输入连接所述第一空洞卷积层的输出;所述第一后端堆叠层的输入连接所述第二空洞卷积层的输出和所述前端网络的输出;所述第一后端卷积层的输入连接所述第一后端堆叠层的输出;所述第一后端卷积层的输出,即为所述第一空洞卷积融合网络的输出,输出通道数为512、尺寸大小为输入图像1/8的第一空洞融合图像fl1;
所述第一后端堆叠层用于将所述前端网络输出的通道数为512、尺寸大小为输入图像1/8的前端融合特征图ffv和所述第二空洞卷积层输出的通道数为512、尺寸大小为输入图像1/8的图像在通道维度上堆叠,堆叠成通道数为1024、尺寸大小为输入图像1/8的图像;
所述第一空洞卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为1,空洞率为1;所述第二空洞卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为2,空洞率为2;所述第一后端卷积层中,输入通道数为1024,输出通道数为512,卷积核大小为1x1,步长为1,填充为0;
所述第二空洞卷积融合网络包括第三空洞卷积层、第四空洞卷积层、第二后端卷积层、第二后端堆叠层和第三后端卷积层;所述第三空洞卷积层的输入连接所述第一空洞卷积融合网络的输出;所述第四空洞卷积层的输入连接所述第三空洞卷积层的输出;所述第二后端卷积层的输入连接所述中端网络的输出;所述第二后端堆叠层的输入连接所述第二后端卷积层的输出和所述第四空洞卷积层的输出;所述第三后端卷积层的输入连接所述第二后端堆叠层的输出;所述第三后端卷积层的输出,也即为所述第二空洞卷积融合网络的输出,输出通道数256、尺寸大小为输入图像1/8的第二空洞融合图像fl2;
所述第二后端堆叠层用于将所述第二后端卷积层输出的通道数为256、尺寸大小为输入图像1/8的图像和所述第四空洞卷积层输出的通道数为256、尺寸大小为输入图像1/8的图像在通道维度上堆叠,堆叠成通道数为512、尺寸大小为输入图像1/8的图像;
所述第三空洞卷积层中,输入通道数为512,输出通道数为512,卷积核大小为3x3,步长为1,填充为1,空洞率为1;所述第四空洞卷积层中,输入通道数为512,输出通道数为256,卷积核大小为3x3,步长为1,填充为2,空洞率为2;所述第二后端卷积层中,输入通道数为512,输出通道数为256,卷积核大小为1x1,步长为1,填充为0;所述第三后端卷积层中,输入通道数为512,输出通道数为256,卷积核大小为1x1,步长为1,填充为0;
所述第三空洞卷积融合网络包括按顺序相连的第五空洞卷积层、第六空洞卷积层和第四后端卷积层;所述第三空洞卷积融合网络的输入即为所述第五空洞卷积层的输入,连接所述第二空洞卷积融合网络的输出;所述第四后端卷积层的输出,也即为所述第三空洞卷积融合网络的输出,也即为所述后端网络的输出,也即为所述人头计数卷积神经网络模型的输出,输出人群密度图;
所述第五空洞卷积层中,输入通道数为256,输出通道数为128,卷积核大小为3x3,步长为1,填充为1,空洞率为1;所述第六空洞卷积层中,输入通道数为128,输出通道数为64,卷积核大小为3x3,步长为1,填充为2,空洞率为2;所述第四后端卷积层中,输入通道数为64,输出通道数为1,卷积核大小为1x1,步长为1,填充为0;
所述后端网络中,每个后端卷积层和每个空洞卷积层后设有激活函数ReLU。
进一步,根据本发明的基于卷积神经网络的图片人头计数的装置,该装置还包括模型初始化模块、数据初始化模块、图片预处理模块和人头计数模块;
所述模型初始化模块,用于:初始化所述人头计数卷积神经网络模型;
所述数据初始化模块,用于:获取所述人头计数卷积神经网络模型训练得到的模型特征矩阵数据,然后将所述模型特征矩阵数据加载至所述人头计数卷积神经网络模型;
所述图片预处理模块,用于:以边缘切断的方式对输入的图片尺寸进行修整,使得图片的长宽尺寸均为8倍数,并以均值0.485、0.456、 0.406和标准差0.229、0.224、0.225在三个通道上标准化像素值,使得图像在三个通道上归一化至区间[0,1],得到预处理图像fp;
所述人头计数模块,用于:将所述预处理图像fp输入至所述数据初始化后的人头计数卷积神经网络模型,经所述人头计数卷积神经网络模型计算得到人群密度图;然后通过人群密度图进行积分累加得到所输入的图片中的人数。
进一步,根据本发明的基于卷积神经网络的图片人头计数的装置,该装置还包括获取训练数据集的模块和模型训练模块;所述模型训练模块用于将所述训练数据集中的图片经所述图片预处理模块后,输入至所述人头计数卷积神经网络模型进行模型计算,得到所述模型特征矩阵数据。
进一步,根据本发明的基于卷积神经网络的图片人头计数的装置,所述模型训练模块中采用如下损失函数对所述模型特征矩阵数据进行评估:
其中,θ是所述模型特征矩阵数据,Ii为所述训练数据集中第i幅图片,Di(Ii, θ)为所述训练数据集中第i幅图片通过所述人头计数模块得到的人群密度图,Dgi为所述训练数据集中第i幅图片通过手工编辑得到的期望密度图,N为所述训练数据集中的图片数。
进一步,根据本发明的基于卷积神经网络的图片人头计数的装置,所述通过人群密度图进行积分累加采用如下公式:
其中,Sum为图片总人数,P(xi)表示人群密度图中第i个像素点的像素值。
本发明的技术效果如下:本发明采用单列卷积神经网络,可以有效减少模型参数量,一定程度上提高人群计数的效率;通过单列卷积神经网络来生成人群密度图,虽然精度略不如多列网络,但是一定程度上也解决了人群技术问题,特别是在一般密度场景下,比如校园场景大多为一般密度场景,故本文解决了校园场景下的人群计数问题。当然本发明也可以用于其他一般密度场景的人群计数问题。
具体实施方式
下面结合附图对本发明做进一步详细说明。
本实施例涉及一种人流流量分析系统,如图4所示,包括设置在机房内的服务器100和设置在监测点的若干个前端摄像头200。前端摄像头200通过网络300连接服务器100。服务器100通过前端摄像头200获取监测点的现场场景实时图像,然后通过本发明的一种基于卷积神经网络的图片人头计数方法对所获取的实时图像进行分析,统计出人数,进而计算人流流量。
本发明的基于卷积神经网络的图片人头计数方法是通过软件程序实现的方法。该方法包括以下步骤:包括模型初始化步骤、数据初始化步骤、图片预处理步骤和人头计数步骤。其中,模型初始化步骤,用于:初始化人头计数卷积神经网络模型。数据初始化步骤,用于:获取人头计数卷积神经网络模型预先训练得到的模型特征矩阵数据,然后将模型特征矩阵数据加载至人头计数卷积神经网络模型。图片预处理步骤,用于:以边缘切断的方式对输入的图片尺寸进行修整,使得图片的长宽尺寸均为8倍数,并以均值0.485、0.456、 0.406和标准差0.229、0.224、0.225在三个通道上标准化像素值,使得图像在三个通道上归一化至区间[0,1],得到预处理图像fp。人头计数步骤,用于将预处理图像fp输入至数据初始化后的人头计数卷积神经网络模型,经人头计数卷积神经网络模型计算得到人群密度图;然后通过人群密度图进行积分累加得到所输入的图片中的人数。
其中,图片预处理步骤中“输入的图片”即为图像。“以边缘切断的方式对输入的图片尺寸进行修整,使得图片的长宽尺寸均为8倍数”以数学公式表示为:Wo=8*int(Wi/8),Ho=8*int(Hi/8)。其中Wi和Hi分别为输入图片的宽和高,Wo和Ho分别为边缘切断后图片的宽和高,int为取整函数。“三个通道上标准化像素值”中的三个通道通常是指图像或图片的RGB通道。人头计数步骤中的“将预处理图像fp输入至数据初始化后的人头计数卷积神经网络模型,经人头计数卷积神经网络模型计算得到人群密度图”为即为本发明所指的模型计算步骤。本发明模型计算步骤通过人头计数卷积神经网络模型计算得到人群密度图。本发明的人头计数卷积神经网络模型是在卷积神经网络模型平台系统中所构建的模型,该卷积神经网络模型平台系统提供模型初始化、模型训练、模型特征矩阵数据输出、模型特征矩阵数据加载、模型计算等接口。前述的模型初始化步骤、数据初始化步骤通过调用卷积神经网络模型平台系统所提供的接口所实现。
如图1所示,本发明的人头计数卷积神经网络模型包括前端网络S1、中端网络S2和后端网络S3。参照图2,前端网络S1包括第一前端特征网络S11、第二前端特征网络S12、第三前端特征网络S13、第四前端特征网络S14和前端特征融合网络S15。
第一前端特征网络S11包括按顺序相连的第一前端卷积层S111、第二前端卷积层S112和第一前端池化层S113。这里的按顺序相连是指输入输出相连,前者的输出连接后者的输入。第一前端卷积层S111的输入即为第一前端特征网络S11的输入,也即为前端网络S1的输入。第一前端特征网络S11的输出即为第一前端池化层S113的输出,输出通道数为64、尺寸大小为输入图像1/2的第一前端特征图ff1。第一前端卷积层S111是输入通道数为3,输出通道数为64,卷积核大小为3*3,步长为1,填充为1的卷积层。第二前端卷积层S112是输入通道数为64,输出通道数为64,卷积核大小为3*3,步长为1,填充为1的卷积层。第一前端池化层S113是池化核为2*2,步长为2,填充为0,采用最大池化的池化层。
第二前端特征网络S12包括按顺序相连的第三前端卷积层S121、第四前端卷积层S122和第二前端池化层S123。第二前端特征网络S12的输入即为第三前端卷积层S121的输入,连接第一前端特征网络S11的输出,即连接第一前端池化层S113的输出。第二前端特征网络S12的输出即为第二前端池化层S123的输出,输出通道数为128、尺寸大小为输入图像1/4的第二前端特征图ff2。第三前端卷积层S121是输入通道数为64,输出通道数为128,卷积核大小为3*3,步长为1,填充为1的卷积层。第四前端卷积层S122是输入通道数为128,输出通道数为128,卷积核大小为3*3,步长为1,填充为1的卷积层。第二前端池化层S123是池化核大小为2*2,步长为2,填充为0,采用最大池化的池化层。
第三前端特征网络S13包括按顺序相连的第五前端卷积层S131、两个第六前端卷积层和第三前端池化层S134。两个第六前端卷积层分别为第六前端卷积层S132和第六前端卷积层S133。第三前端特征网络S13的输入即为第五前端卷积层S131的输入,连接第二前端特征网络S12的输出,也即连接第二前端池化层S123的输出。第三前端特征网络S13的输出即为第三前端池化层S134的输出,输出通道数为256、尺寸大小为输入图像1/8的第三前端特征图ff3。第五前端卷积层S131是输入通道数为128,输出通道数为256,卷积核大小为3*3,步长为1,填充为1的卷积层。第六前端卷积层是输入通道数为256,输出通道数为256,卷积核大小为3*3,步长为1,填充为1的卷积层。第三前端池化层S134是池化核大小为2*2,步长为2,填充为0,采用最大池化的池化层。
第四前端特征网络S14包括按顺序相连的第七前端卷积层S141和两个第八前端卷积层。两个第八前端卷积层分别为第八前端卷积层S142和第八前端卷积层S143。第四前端特征网络S14的输入即为第七前端卷积层S141的输入,连接第三前端特征网络S13的输出。第四前端特征网络S14的输出即为位于尾端的第八前端卷积层的输出,输出通道数为512、尺寸大小为输入图像1/8的第四前端特征图ff4。位于尾端的第八前端卷积层也就是第八前端卷积层S143。第七前端卷积层S141是输入通道数为256,输出通道数为512,卷积核大小为3*3,步长为1,填充为1的卷积层。第八前端卷积层是输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为1的卷积层。
前端特征融合网络S15包括第一特征修整网络S151、第五前端池化层S152、前端特征堆叠层S153和第十前端卷积层S154。前端特征融合网络S15的输入连接第一前端特征网络S11、第二前端特征网络S12、第三前端特征网络S13和第四前端特征网络S14的输出。其中,第一特征修整网络S151的输入连接第一前端特征网络S11的输出,也即连接第一前端池化层S113的输出。第五前端池化层S152的输入连接第二前端特征网络S12的输出,也就连接第二前端池化层S123的输出。前端特征堆叠层S153的输入连接第一特征修整网络S151的输出、第五前端池化层S152的输出、第三前端特征网络S13和第四前端特征网络S14的输出。第十前端卷积层S154的输入连接前端特征堆叠层S153的输出。前端特征融合网络S15的输出,即为第十前端卷积层S154的输出,也即为前端网络S1的输出,输出通道数为512、尺寸大小为输入图像1/8的前端融合特征图ffv。
第一特征修整网络S151包括按顺序相连的两个第四前端池化层和第九前端卷积层S1513。两个第四前端池化层也就是第四前端池化层1511和第四前端池化层1512。第一特征修整网络S151的输入也即为位于前端的第四前端池化层的输入。位于前端的第四前端池化层也就是第四前端池化层1511。第一特征修整网络S151的输出也即为第九前端卷积层S1513的输出,输出通道数为128、尺寸大小为输入图像1/8的第五前端特征图ff5。
前端特征堆叠层S153用于将第一特征修整网络S151输出的通道数为128、尺寸大小为输入图像1/8的第五前端特征图ff5、第五前端池化层S152输出的通道数为128、尺寸大小为输入图像1/8的第六前端特征图ff6、第三前端特征网络S13输出的通道数为256、尺寸大小为输入图像1/8的第三前端特征图ff3、第四前端特征网络S14输出的通道数为512、尺寸大小为输入图像1/8的第四前端特征图ff4在通道维度上堆叠,堆叠成通道数为1024、尺寸大小为输入图像1/8的第七前端特征图ff7,然后再由第十前端卷积层S154将通道数调整为512。
第四前端池化层是池化核大小为2*2,步长为2,填充为0,采用最大池化的池化层。第九前端卷积层S1513是输入通道数为64,输出通道数为128,卷积核大小为1*1,步长为1,填充为0的卷积层。第五前端池化层S152是池化核大小为2*2,步长为2,填充为0,采用最大池化的池化层。第十前端卷积层S154是输入通道数为1024,输出通道数为512,卷积核大小为1*1,步长为1,填充为0的卷积层。
前端网络S1中,通过VGG(Visual Geometry Group)的前十层卷积层检测人群图像基础特征。这十层卷积层分别是指第一前端卷积层S111、第二前端卷积层S112、第三前端卷积层S121、第四前端卷积层S122、第五前端卷积层S131、两个第六前端卷积层即第六前端卷积层S132和S133、第七前端卷积层S141、两个第八前端卷积层即第八前端卷积层S142和S143。这些前端卷积层的卷积核均为3*3。其中,相连的第一前端卷积层S111和第二前端卷积层S112以及相连的第三前端卷积层S121和第四前端卷积层S122相当于一个卷积核为5*5的卷积层。第三前端特征网络中,第五前端卷积层S131和两个第六前端卷积层相连相当于一个卷积核为7*7的卷积层。第四前端特征网络中,第七前端卷积层S141和两个第八前端卷积层相连相当于一个卷积核为7*7的卷积层。上述的每个前端卷积层后均设有激活函数ReLU。第九前端卷积层S1513和第十前端卷积层的卷积核为1*1,实际未起到卷积效果,仅用作通道数的调整。
中端网络S2包括第一中端卷积层S21、第二中端卷积层S22、第三中端卷积层S23、第四中端卷积层S24、中端特征堆叠层S25和第五中端卷积层S26。第一中端卷积层S21、第二中端卷积层S22、第三中端卷积层S23和第四中端卷积层S24按顺序依次相连。第一中端卷积层S21的输入,即为中端网络S2的输入,连接前端网络S1的输出,也即连接第十前端卷积层S154的输出。中端特征堆叠层S25的输入连接第一中端卷积层S21、第二中端卷积层S22、第三中端卷积层S23和第四中端卷积层S24的输出。第五中端卷积层S26的输入连接中端特征堆叠层S25的输出。第五中端卷积层S26的输出,也即为中端网络S2的输出,输出通道数为512、尺寸大小为输入图像1/8的中端融合特征图fmv。
中端特征堆叠层S25用于将第一中端卷积层S21、第二中端卷积层S22、第三中端卷积层S23和第四中端卷积层S24输出的通道数为512、尺寸大小为输入图像1/8的图像在通道维度上堆叠,堆叠成通道数为2048、尺寸大小为输入图像1/8的第五中端特征图像fm5,然后再由第五中端卷积层S26将通道数调整为512。
第一中端卷积层S21、第二中端卷积层S22、第三中端卷积层S23和第四中端卷积层S24均为输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为1的卷积层。第五中端卷积层S26是输入通道数为2048,输出通道数为512,卷积核大小为1*1,步长为1,填充为0的卷积层。
中端网络S2用于检测人群图像的多尺度特征,每个中端卷积层后不设置激活函数。终端卷积层也就是第一中端卷积层S21、第二中端卷积层S22、第三中端卷积层S23、第四中端卷积层S24以及第五中端卷积层S26。
参照图3,后端网络S3包括第一空洞卷积融合网络S31、第二空洞卷积融合网络S32和第三空洞卷积融合网络S33。后端网络S3的输入连接前端网络S1和中端网络S2的输出。
第一空洞卷积融合网络S31包括第一空洞卷积层S311、第二空洞卷积层S312、第一后端堆叠层S313、第一后端卷积层S314。第一空洞卷积层S311的输入连接中端网络S2的输出,也即连接第五中端卷积层S26的输出。第二空洞卷积层S312的输入连接第一空洞卷积层S311的输出。第一后端堆叠层S313的输入连接第二空洞卷积层S312的输出和前端网络S1的输出。第一后端卷积层S314的输入连接第一后端堆叠层S313的输出。第一后端卷积层S314的输出,即为第一空洞卷积融合网络S31的输出,输出通道数为512、尺寸大小为输入图像1/8的第一空洞融合图像fl1。
第一后端堆叠层S313用于将前端网络S1输出的通道数为512、尺寸大小为输入图像1/8的前端融合特征图ffv和第二空洞卷积层S312输出的通道数为512、尺寸大小为输入图像1/8的图像在通道维度上堆叠,堆叠成通道数为1024、尺寸大小为输入图像1/8的图像,然后再由第一后端卷积层S314将通道数调整为512。
第一空洞卷积层S311是输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为1,空洞率为1的卷积层。第二空洞卷积层S312是输入通道数为512,输出通道数为512,卷积核大小为3*3,步长为1,填充为2,空洞率为2的卷积层。第一后端卷积层S314是输入通道数为1024,输出通道数为512,卷积核大小为1x1,步长为1,填充为0的卷积层。
第二空洞卷积融合网络S32包括第三空洞卷积层S321、第四空洞卷积层S322、第二后端卷积层S323、第二后端堆叠层S324和第三后端卷积层S325。第三空洞卷积层S321的输入连接第一空洞卷积融合网络S31的输出。第四空洞卷积层S322的输入连接第三空洞卷积层S321的输出。第二后端卷积层S323的输入连接中端网络S2的输出。第二后端堆叠层S324的输入连接第二后端卷积层S323的输出和第四空洞卷积层S322的输出。第三后端卷积层S325的输入连接第二后端堆叠层S324的输出。第三后端卷积层S325的输出,也即为第二空洞卷积融合网络S32的输出,输出通道数256、尺寸大小为输入图像1/8的第二空洞融合图像fl2。
第二后端堆叠层S324用于将第二后端卷积层S323输出的通道数为256、尺寸大小为输入图像1/8的图像和第四空洞卷积层S322输出的通道数为256、尺寸大小为输入图像1/8的图像在通道维度上堆叠,堆叠成通道数为512、尺寸大小为输入图像1/8的图像,再由第三后端卷积层S325将通道数调整成256。
第三空洞卷积层S321是输入通道数为512,输出通道数为512,卷积核大小为3x3,步长为1,填充为1,空洞率为1的卷积层。第四空洞卷积层S322中,输入通道数为512,输出通道数为256,卷积核大小为3x3,步长为1,填充为2,空洞率为2的卷积层。第二后端卷积层S323是输入通道数为512,输出通道数为256,卷积核大小为1x1,步长为1,填充为0的卷积层。第三后端卷积层S325是输入通道数为512,输出通道数为256,卷积核大小为1x1,步长为1,填充为0的卷积层。
第三空洞卷积融合网络S33包括按顺序相连的第五空洞卷积层S331、第六空洞卷积层S332和第四后端卷积层S333。第三空洞卷积融合网络S33的输入即为第五空洞卷积层S331的输入,连接第二空洞卷积融合网络S32的输出,也即连接第三后端卷积层S325的输出。第四后端卷积层S333的输出,也即为第三空洞卷积融合网络S33的输出,也即为后端网络S3的输出,也即为人头计数卷积神经网络模型的输出,输出人群密度图。输出的人群密度图的通道数为1。
第五空洞卷积层S331是输入通道数为256,输出通道数为128,卷积核大小为3x3,步长为1,填充为1,空洞率为1的卷积层。第六空洞卷积层S332是输入通道数为128,输出通道数为64,卷积核大小为3x3,步长为1,填充为2,空洞率为2的卷积层。第四后端卷积层S333是输入通道数为64,输出通道数为1,卷积核大小为1x1,步长为1,填充为0的卷积层。
后端网络S3用于通过空洞卷积提高感受野,每个空洞卷积层后设有激活函数ReLU。
在执行模型计算步骤时,人头计数卷积神经网络模型每个卷积层、池化层以及堆叠层等价于一个计算执行的步骤,并按照前述输入输出的连接关系按顺序执行。
模型计算后得到人群密度图,然后根据人群密度图即可计算出图片中的人数。根据人群密度图计算图片中的人数采用积分累加,具体为:
其中,Sum为图片总人数,P(xi)表示人群密度图中第i个像素点的像素值。
如前,数据初始化步骤中的模型特征矩阵数据通过模型训练学习得到。为训练得到上述的模型特征矩阵数据,本实施例的方法,还包括获取训练数据集的步骤和模型训练步骤。模型训练步骤用于将训练数据集中的图片前述的图片预处理步骤后,输入至人头计数卷积神经网络模型进行模型计算,得到模型特征矩阵数据。模型训练步骤中采用如下损失函数对模型特征矩阵数据进行评估:
其中,θ是模型特征矩阵数据,Ii为训练数据集中第i幅图片,Di(Ii, θ)为训练数据集中第i幅图片通过人头计数步骤得到的人群密度图,Dgi为训练数据集中第i幅图片通过手工编辑得到的期望密度图,N为训练数据集中的图片数。这里的期望密度图也可以视为真实的人群密度图。
本实施例以ShanghaiTech数据集作为训练和测试数据集。ShanghaiTech数据集是上海科技大学公开的一个数据集,分为Part_A、Part_B两个部分,共有1198张图片,总共标注了330165个人。本实施例在ShanghaiTech数据集Part_A、Part_B上实验取得了良好的效果,Part_A上的平均误差为87.0,均方根误差为134.8,Part_B上的平均误差为14.2,均方根误差为23.3。其中,数据集Part_A为高密度人群场景下的数据集,数据集Part_B为一般人群密度场景下的数据集。通过对比得知,虽然本发明在数据集Part_A的高密度人群场景下的误差表现比多列卷积神经网络的方法差;但在一般人群密度场景下的数据集Part_B实验测试结果下,本发明方法的误差与现有已知方法对比是最小的,也就是在一般人群密度场景下,本发明的方法精度优于现有已知的各种方法。