发明内容
本发明针对现有技术中均存在城市道路车流量统计的不足,提供了一种融合深度学习与背景差法的车流统计方法。
本发明解决其技术问题所采用的技术方案具体包括以下步骤:
步骤(1)用混合高斯背景建模分离原视频帧图像的前景和背景,提取前景图像,对前景图像进行预处理,二值化、中值滤波和形态学操作;
步骤(2)将提取出的前景图像中位于车辆驶入方向20米之内的目标切割成251*251像素的图片,人工对切割好的前景图像进行标记,依据车长将切割后前景图像中的汽车标记成5类:类Ⅰ为3到6米,类Ⅱ为6-9米,类Ⅲ为9-12米,类Ⅳ为12-15米,类Ⅴ为15-18米。具体分类如下:
2-1.选取100辆车计算成像比例prop,取平均值。通过测量原视频帧图像中车辆长度即成像车长length_img,查询该车辆实际车长length_real,确定车辆的成像比例,计算如下:
prop=length_real/length_img (1)
2-2.根据式(1)中所得成像比例prop,确定车辆驶入方向20米在前景图像中的位置,即确定待分类车辆所在区域zone。
zone=20/prop (2)
2-3.根据式(1)中所得成像比例prop,测量原视频帧图像中车辆长度length_img,计算待标记车辆实际车长length_real:
length_real=prop*length_img (3)
2-4.根据式(3)中计算所得实际车长length_real,对前景图像中待标记车辆进行分类标记;
步骤(3)选取五类汽车图片各500张作为训练样本,采用如下处理方案:
3-1.划分数据区:
数据集有五类图像,其中每一类别有500张,对每一类分别取出100张作为测试集,则总共有500张图像的测试集不会参与模型的训练,而是用来验证模型识别图像的准确率。
3-2.数据增广:
对数据集中除测试集之外的图像进行基于OpenCV的处理来扩增图像数量。具体采用以下技术手段:
A.对图像进行水平翻转或者随机角度的旋转;
B.对图像进行随机裁剪至227x227像素;
C.在原视频帧图像上添加一些随机噪音和细微的颜色抖动;
D.PCA均值化处理;
3-3.创建生成式对抗网络GAN:
GAN启发来自于博弈论中的二人零和游戏,GAN模型中的两位博弈方分别有生成模型(G)和判别模型(D)充当。生成模型G捕捉样本数据的分布,用服从某一分布(均匀分布,高斯分布等)的噪声z生成一个类似真实训练数据的样本,追求效果是越像真实样本越好;判别模型D是一个二分类器,估计一个样本来自于训练数据(而非生成数据)的概率,如果样本来自于真实的训练数据,D输出大概率,否则,D输出小概率。
GAN训练过程中固定一方,更新另外一方的网络权重,交替迭代。在此过程中,双方都极力的优化自己的网络,从而形成竞争到对抗,直到双方达到纳什均衡。此时判别模型和生成模型都可以深刻地获取对应真实数据的分布特点!
上述过程的公式如下:
该公式参考自Goodfellow I J,Pouget-Abadie J,Mirza M,et al.GenerativeAdversarial Networks[J].Advances in Neural Information Processing Systems,2014,3:2672-2680.
整个式子由两项构成。x表示真实图片,z表示输入G网络的噪声,而G(z)表示G网络生成的图片。
D(x)表示D网络判断真实图片是否真实的概率(因为x就是真实的,所以对于D来说,这个值越接近1越好)。而D(G(z))是D网络判断G生成的图片的是否真实的概率。
G的目的:上面提到过,D(G(z))是D网络判断G生成的图片是否真实的概率,G应该希望自己生成的图片“越接近真实越好”。也就是说,G希望D(G(z))尽可能得大,这时V(D,G)会变小。因此我们看到式子的最前面的记号是min_G。
D的目的:D的能力越强,D(x)应该越大,D(G(x))应该越小。这时V(D,G)会变大。因此式子对于D来说是求最大(max_D)
当固定生成网络G的时候,对于判别网络D应该如此优化:输入的若是真实数据,D优化网络使得结果输出为1;输入的数据如果高仿的(来自于生成模型的创造),D优化网络使得结果输出为0。当固定判别网络D时,G优化网络使其输出的数据分布和真实数据一样,并且该样本在经过D的判别之后输出较高概率!
此时,我们为每一种类型构建一个对应的GAN对抗网络,用每一类的4000张训练集图像作为真实数据来不断提高鉴别器D和生成器G。最后我们选取优秀的鉴别器G来识别该类,并且规定:当G输出概率大于等于90%,我们返回值1;当输出概率小于90%时,我们返回0。
由于有五个类别,我们则可以构造出五个鉴别模型,分别为GAN_D1,GAN_D2,GAN_D3,GAN_D4,GAN_D5。当五个GAN鉴别器构建完成之后,我们依次使用五个GAN鉴别器对一张输入图像进行鉴别,用一个全局变量result来记录每个GAN鉴别器的结果。
3-4.构建基于卷积神经网络(CNN)的分类器:
当不止一个GAN鉴别器返回1,则说明同时有多个鉴别器D认为输入的图像是属于他们的类别,这就说明一个图像属于多种类别,但是一张图像有且仅属于一类,因此需要构建一个CNN分类器来对此图像进行再分类。
3-4-1.设计一个能够完全提取灰度图像车流特征的网络架构;该架构包含33层结构,架构中包含卷积层、池化层、归一化层、激活层、残差层和全连接层;用训练集的总共2万张图像训练该网络架构,最终选取最优的模型作为五分类识别器。该网络架构能够充分提取该灰度图中汽车特征,并且给出精准的唯一分类结果:
3-4-2.通过五种GAN的鉴别器分别判定图像属于哪一个种类。如果只有一个GAN鉴别器返回1(true),则该图像就属于该鉴别器所对应的类别,否则执行第二步操作。
3-4-3.用基于深度学习的卷积神经网络分类器对该输入的图像进行识别再分类,最终输入唯一精确的所属类别。
步骤(4)从视频帧图像中车辆驶入方向20米内获取待识别目标,将各个车道内的目标图像切割后分别交给步骤(3)进行识别分类,获得分类结果。
步骤(5)针对不同类别的车辆,动态确定判定轴和车辆检测识别区域,进行计数。具体如下:
5-1.依据步骤(4)中的分类结果,确定判定轴,类Ⅰ为6米,类Ⅱ为9米,类Ⅲ为12米,类Ⅳ为15米,类Ⅴ为18米;相应的识别区域为车辆驶入方向0米到判定轴。
5-2.在视频帧图像中识别出车辆时,计数器加1,设置监控标志位为0(不可再计数),设置车辆检测识别区域为该车所属分类对应的识别区域。
5-3.在最近一辆已计数车辆所对应判定轴的0.5至1.5倍区间内,若有车辆在该区间内被识别,则监控标志位为1(可在计数),重置车辆检测识别区域。
本发明有益效果如下:
针对红外检测、地感应线圈检测、超声波检测等方法的缺陷,本发明先使用背景差法获取图像内目标,交由深度学习进行训练分类。通过CNN和GAN网络对待识别目标进行分类,针对分类结果动态设置判定轴和识别区域,对车辆进行识别计数。该方法在多种环境中有比较高的统计精度,适应训练样本不丰富的情况下的模型训练,能够更加准确的提取数据特征,从而提高模型的分类准确性。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
如图1-3所示,一种融合深度学习与背景差法的平安城市车流统计方法,具体包括如下步骤:
(1)用混合高斯背景建模分离视频的前景和背景,提取前景图像,对前景图像进行预处理,二值化、中值滤波和形态学操作;
(2)将提取出的前景图像中位于车辆驶入方向20米之内的目标切割成251*251像素的图片,人工对切割好的前景图像进行标记,依据车长将切割后前景图像中的汽车标记成5类:类1为3到6米,类2为6-9米,类3为9-12米,类4为12-15米,类5为15-18米。具体分类如下:
取100辆车计算成像比例(prop),取平均值。通过测量原图中车辆长度即成像车长(length_img),查询该车辆实际车长(length_real),确定车辆的成像比例,计算如下:
prop=length_real/length_img (1)
据式(1)中所得比例(prop)确定车辆驶入方向20米在图像中的位置即确定待分类车辆所在区域(zone)。
zone=20/prop (2)
据式(1)中所得比例(prop),测量所得图像中车辆长度length_img,计算待标记车辆图像实际车长length_real:
length_real=prop*length_img (3)
根据式(2)中计算所得实际车长length_real对图像车辆进行标记;
(3)选取5类汽车图片各500张作为训练样本,采用如下处理方案:
A)划分数据区:数据集有五类灰度图像,其中每一类别有500张。这里我们对每一类分别取出100张作为测试集,则总共有500张测试集不会参与模型的训练,其用来验证模型识别图像的准确率。
B)数据增广:我们对除测试集之外的图片进行基于OpenCV的一些处理来扩增图片数量。主要采用以下技术手段:
a对图像进行水平翻转或者随机角度的旋转;
b对图像进行随机裁剪至227x227像素
c在原始图像上添加一些随机噪音和细微的颜色抖动
d PCA均值化处理。
我们为把一张图像扩增至10张,这样我们的每一类训练数据集可以扩增至4000张图像。
C)创建生成式对抗网络GAN:GAN启发来自于博弈论中的二人零和游戏,GAN模型中的两位博弈方分别有生成模型(G)和判别模型(D)充当。生成模型G捕捉样本数据的分布,用服从某一分布(均匀分布,高斯分布等)的噪声z生成一个类似真实训练数据的样本,追求效果是越像真实样本越好;判别模型D是一个二分类器,估计一个样本来自于训练数据(而非生成数据)的概率,如果样本来自于真实的训练数据,D输出大概率,否则,D输出小概率。
GAN训练过程中固定一方,更新另外一方的网络权重,交替迭代。在此过程中,双方都极力的优化自己的网络,从而形成竞争到对抗,直到双方达到纳什均衡。此时判别模型和生成模型都可以深刻地获取对应真实数据的分布特点!
上述过程的公式如下:
当固定生成网络G的时候,对于判别网络D应该如此优化:输入的若是真实数据,D优化网络使得结果输出为1;输入的数据如果高仿的(来自于生成模型的创造),D优化网络使得结果输出为0。当固定判别网络D时,G优化网络使其输出的数据分布和真实数据一样,并且该样本在经过D的判别之后输出较高概率!
此时,我们为每一种类型构建一个对应的GAN对抗网络,用每一类的4000张训练集图像作为真实数据来不断提高鉴别器D和生成器G。最后我们选取优秀的鉴别器G来识别该类,并且规定:当G输出概率大于等于90%,我们返回值1;当输出概率小于90%时,我们返回0。
由于有五个类别,我们则可以构造出五个鉴别模型,分别为GAN_D1,GAN_D2,GAN_D3,GAN_D4,GAN_D5。当五个GAN鉴别器构建完成之后,我们依次使用五个GAN鉴别器对一张输入图像进行鉴别,用一个全局变量result来记录每个GAN鉴别器的结果。
D)构建基于卷积神经网络(CNN)的分类器:当不止一个GAN鉴别器返回1,则说明同时又多个鉴别器D认为输入的图像是属于他们的类别,这就说明一个图像属于多种类别,但是一张图像有且仅属于一类。此时我们构建一个CNN分类器来对此图像进行再分类。
首先我们需要设计一个能够完全提取灰度图像车流特征的网络架构,架构图为附图1。
该架构包含33层结构,架构中包含卷积层,池化层,归一化层,激活层,残差层,全连接层。我们用训练集的总共2万张图像作为训练集训练该网络,最终选取最优的模型作为五分类识别器。该网络架构可以充分提取该灰度图中汽车特征,并且给出精准的唯一分类结果。
伪代码如下:
以上分类识别过程,大致可以划分为两大步:
1通过五种GAN的鉴别器分别判定图像属于哪一个种类。如果只有一个GAN鉴别器返回1(true),则该图像就属于该鉴别器所对应的类别,否则执行第二步操作。
2用基于深度学习的卷积神经网络分类器对该输入的图像进行识别再分类,最终输入唯一精确的所属类别。
(4)从视频帧中车辆驶入方向20米内获取待识别目标,将各个车道内的目标图像切割后分别交给步骤(3)进行识别分类,获得分类结果。
(5)针对不同类别的车辆,动态确定判定轴和车辆检测识别区域,进行计数。具体如下:
A)依据步骤(4)中的分类结果,确定判定轴,类1为6米,类2为9米,类3为12米,类4为15米,类5为18米。相应的识别区域为车辆驶入方向0米到判定轴。
B)在视频帧中识别出车辆时,计数器加1,设置监控标志位为0(不可再计数),设置车辆检测识别区域为该车所属分类对应的识别区域。
C)在最近一辆已计数车辆所对应判定轴的0.5至1.5倍区间内,若有车辆在该区间内被识别,则监控标志位为1(可在计数),重置车辆检测识别区域。
通过以上步骤即可较为准确统计出车流量。