基于自编码器与k-means聚类的视频交通状态自动识别
2020-12-28张媛媛谢济铭王玉婷
彭 博,张媛媛,唐 聚,谢济铭,王玉婷
(1.山地城市交通系统与安全重庆市重点实验室,重庆 400074;2.重庆交通大学 交通运输学院,重庆 400074)
0 引言
随着城市的快速发展,城市机动车保有量持续增长,交通拥堵愈发严重。为了缓解交通拥挤、避免交通瘫痪,需要及时有效地识别道路交通状态。目前,国内外基于微波检测器[1]、地磁感应线圈[2]、视频检测器[3]、RFID[4]和浮动车[5]等技术手段提取的数据,对交通状态识别展开了大量研究。其中,随着城市交通视频资源越来越丰富,以及视频处理技术的快速发展,基于视频图像的交通状态识别研究获得了广泛关注。
国内外学者基于视频图像进行了一系列交通状态识别研究,Morton(2005)基于航拍图像实现了交通状态识别[6];Reinartz(2006)从航拍图像中获得高质量的交通数据[7];Lozano(2009)基于k-均值聚类方法提高了交通拥堵状态识别系统的鲁棒性[8];Liao(2014)利用支持向量机和遗传学算法建立了交通视频图像拥挤识别模型[9];Quiros(2016)基于模糊逻辑提出视频图像交通状态识别方法[10];崔华(2017)利用模糊C均值聚类算法对静态图像进行交通状态识别[11]。总体而言,这些研究可从图像中提取车辆位置、流量、速度等交通参数,进而识别交通状态。由于视频图像内容复杂多样,快速准确提取交通特征可能较为困难,不易实时处理快速增长的海量交通视频。
视频图像具有维度高、信息冗余复杂等特征,考虑到及时高效识别交通状态的重要性,一些学者尝试对视频图像进行有效降维。其中,自编码器是一种非线性无监督神经网络模型,能够对视频图像数据有效降维,进而实现图像分类,因此,基于自编码器的图像降维与模式识别研究受关注较多:Wang(2012)提出了一种基于传统自动编码器对称结构的折叠自动编码器,减小尺寸并降低了降维的计算成本[12];Gao(2015)提出一种基于有监督堆叠自动编码器的面部识别方法[13];Zhao(2017)将随机森林分类器引入堆叠式稀疏自动编码器以实现高光谱图像分类[14];Ge(2019)提出一种双重对抗性自动编码器用于图像聚类,并能达到有监督CNN算法的聚类精度[15]。由此可见,自编码器可有效获取图像降维特征、避免“维数灾难”,将其与聚类方法结合,可快速高效实现视频图像交通状态的无监督识别。
综上所述,为了有效降低图像维度、自动快速识别交通状态,本研究基于自编码器与k-means聚类提出了一种视频交通状态自动识别方法,并构建数据集进行测试分析。
1 方法简介
主要利用自编码器对高维度图像进行特征压缩,基于压缩后的低维数据,利用k-means聚类算法识别交通状态,流程如图1所示,主要包含3个步骤。
图1 方法流程
(1)自编码器图像数据集构建:将交通视频转化成帧图像,根据车辆密度及车间距等参数与人工经验对每一帧图像进行交通状态判定,形成包含畅通、缓行、拥堵3种交通状态的数据集。
(2)自编码器模型构建与测试:根据模型的主要结构参量,包括输入数据维度、隐藏层数量、降维数据维度等,构建自编码器备选模型,并进行测试与选优。
(3)k-means聚类:将最优自编码器输出的降维数据进行k-means聚类,获得图像交通状态。
2 交通状态识别模型构建
交通状态识别模型主要包含自编码器和k-means聚类两部分,训练自编码器获得编码数据,以作为k-means聚类的输入数据,进而判定图像交通状态。
2.1 自编码器构建
构建自编码器以交通视频图像为输入,编码与解码过程均有N个隐藏层,各层之间采用全连接结构,如图2所示。对于样本量为Q的图像集中第g张图像为例,自编码器运算过程如下。
图2 自编码器结构
(1)将第g张图像转化为1×M的一维向量Xg,g∈[1,Q],M=τ1×τ2,τ1和τ2为图像的宽度(像素)和高度(像素);
(1)
(2)
(3)
根据输入数据维度、隐藏层数量、降维数据维度设计48个自编码器模型结构,如表1所示。基于数据集A1对这些模型结构进行测试,结果显示当输入数据维度为64×64、降维数据维度为3维或者5维时测试效果较好,因此确定了6个备选模型,结构如表2所示。
表1 自编码器交叉试验
2.2 k-means聚类
表2 自编码器备选模型结构参数
(4)
式中,p=(bp1,bp2,…,bpv)和q=(bq1,bq2,…,bqv)为两个具有v维特征的向量。
(4)遍历完数据集中所有对象后,利用式(5)更新簇中心。
(5)
(5)根据最近邻原则,重新将数据集中的对象进行划分,并计算新的簇中心,直到平方误差准则函数满足要求。平方误差准则函数定义如下:
(6)
(6)将所有样本聚类为k簇,即k类交通状态S1,S2,…,Sk。
3 试验数据与环境
3.1 试验数据
道路交通视频原始数据来源于某城市主要干道的交通视频,图像分辨率为704×576像素。为提高运行效率,裁剪提取目标区域图像并划分为畅通、缓行、拥堵3种交通状态,记为状态0,1,2。据此构建了3个数据集A1,A2,A3,样本量Qj(j=1,2,3)分别为1 500,3 000,4 500。数据集制作过程与结果如图3所示。
图3 图像数据集制作
3.2 试验环境
试验平台为64位windows7操作系统的工作站,内存4 GB+CPU Nvidia GeForce 820M,配置Pytorch+Spyder3.6等环境,搭建Pytorch深度学习框架,采用Python 3.5作为编程语言。
4 自编码器模型训练与选优
4.1 模型训练
针对数据集A1,A2,A3与模型Ⅰ~模型Ⅵ,进行了18组训练试验。为了对比备选模型效果,针对每个样本集的模型Ⅰ~模型Ⅵ均采用相同的训练参数,如表3所示。
表3 训练参数
训练过程中采用Adam迭代优化算法[16],利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,其公式如下:
mt=λ×mt-1+(1-λ)×gt,
(7)
(8)
(9)
(10)
(11)
4.2 评价指标
针对模型Ⅰ~模型Ⅵ在数据集A1,A2,A3下的测试情况,采用兼顾准确率和召回率的平均F1值作为效果评价指标,计算过程如下。
(1)计算模型对数据集每类交通状态的样本聚类准确率、召回率与F1值。
(12)
(13)
(14)
(2)计算模型对各个数据集的交通状态平均分类准确率、召回率及F1值。
(15)
(16)
(17)
4.3 确定最优自编码器
基于数据集A1,对前文2.1节的48个自编码器模型结构进行测试,计算F1值,结果显示,F1值高于0.9的试验自编码器结构为(64×64,64),(64,64),(64,12),(12,5),即输入数据维度64×64、8个编码及解码隐藏层、5维编码数据;其次,F1值介于0.8~0.9时,模型降维数据均为3维或5维。据此,设计了6个自编码器备选模型,即模型Ⅰ~模型Ⅵ。
表4 备选模型评价指标值
为进一步验证AE*对每一类交通状态的识别效果,基于数据集A3计算分析各类状态的识别准确率、召回率与F1值,结果如表5所示。可以看出,AE*对畅通、缓行、拥堵的识别准确率为0.87~1.00,对缓行状态识别准确率最高;AE*对畅通、缓行、拥堵的识别召回率为0.86~1.00,对畅通状态识别召回率最高。综合来看,AE*对畅通、缓行、拥堵的F1值为0.89~0.96,对每类交通状态识别效果均较好。
表5 AE*对数据集A3的评价指标
5 模型对比
将本文AE*与k-means相结合的交通状态识别模型命名为AE*-k-means,同理,将AE*与SVM[17],DNN_Linear[18],Linear[18]相结合的模型分别命名为AE*-SVM,AE*-DNN_Linear,AE*-Linear。利用数据集A1,A2,A3对上述模型进行训练测试,计算每个数据集的交通状态识别准确率、召回率以及F1值,结果如图4~图6所示。
图4 AE*结合各分类器的准确率
图5 AE*结合各分类器的召回率
图6 AE*结合各分类器的F1值
可以看出,平均F1值优劣排序为AE*-SVM(0.927),AE*-k-means(0.924),AE*-DNN_Linear (0.921),AE*-Linear(0.918),4个模型性能相近,AE*-k-means准确率、召回率处于最优或次优水平,表明AE*对图像降维效果较好,可为k-means,SVM,Linear,DNN_Linear等提供有效的特征数据。此外,k-means是一种典型的无监督聚类方法,而SVM,Linear,DNN_Linear则为有监督分类方法,与AE*-SVM,AE*-DNN_Linear,AE*-Linear相比,AE*-k-means在保证交通状态识别准确率和召回率的基础上,可有效减少人工数据标定、有监督训练等工作量及运算成本。
为进一步验证模型对畅通、缓行、拥堵3种交通状态识别效果,基于数据集A3进行了测试,结果显示,对于畅通状态,4个模型F1值为0.93~0.99,效果均较好;对于缓行状态,AE*-k-means的F1值为0.96,高出其余模型6%~9%;对于拥堵状态,AE*-k-means和AE*-SVM的F1值为0.89,比其余模型高4%。因此,对于数据集A3,AE*-k-means对3种交通状态识别效果总体最优。
6 结论
针对道路交通视频,提出了一种基于自编码器与k-means聚类的视频交通状态识别方法,可实现无监督条件下的视频交通状态快速自动识别。测试显示,本研究模型交通状态识别准确率、召回率及F1值均较高,既可有效减少人工数据标定,有效监督训练等工作量及运算成本,也可以获得较优的交通状态识别准确率、召回率和F1值。
本研究方法可有效降低算法复杂度、避免“维数灾难”,保证运行效率与识别效果,对于视频交通状态识别具有较大的理论和现实意义。由于交通场景复杂多样,对于自编码器结构、优化结合自编码器与分类器、构建海量数据集等方面还需进一步研究。