一种车辆统计方法及装置与流程

文档序号:18456248发布日期:2019-08-17 01:37阅读:231来源:国知局
一种车辆统计方法及装置与流程
本发明涉及大数据处理
技术领域
,特别是涉及一种车辆统计方法及装置、电子设备、计算机可读存储介质。
背景技术
:随着社会的发展,车辆成为重要的交通工具,城市中行驶的车辆也越来越多。为了研究某一地区的车辆活跃程度,需要对该地区行驶的车辆及其过车次数进行统计,从而得到该地区的活跃车排名。活跃车排名,即在设定的时段内对车牌按照出现次数进行排序,比如,对于最近5天内某市区出现的车辆进行统计,按照出现次数对所出现的车牌进行排序。技术实现要素:本发明实施例的目的在于提供一种车辆统计方法、装置,以实现对设定时段内车辆及其过车次数的统计。具体技术方案如下:为达到上述目的,本发明实施例提供了一种车辆统计方法,所述方法包括:确定车辆统计时段;根据车辆统计信息表中所存储车辆统计信息对应的最新统计周期,确定所述车辆统计时段中的第一子时段和第二子时段,其中,所述第一子时段为:从所述车辆统计信息表中获得车辆统计信息的时段,所述第二子时段为:根据缓存中存储的过车数据获得车辆统计信息的时段;在第一子时段不为空的情况下,从所述车辆统计信息表中,获得在所述第一子时段内存在过车行为的车辆的车牌号以及过车次数;在第二子时段不为空的情况下,对缓存中存储的、且在所述第二子时段采集的过车数据进行统计,获得在所述第二子时段内存在过车行为的车辆的车牌号以及过车次数;根据所获得的车牌号以及过车次数,生成所述车辆统计时段内基于过车次数的统计结果。可选的,在所述车辆统计时段包含当前统计周期的情况下,还包括:生成所述基于过车次数的统计结果后,以第一预设时长为时间间隔,获得每一时间间隔内采集的过车数据;获得每一时间间隔内采集的过车数据后,按照车牌号,对所获得的过车数据进行统计,确定存在过车行为的车辆的车牌号以及过车次数,并按照车牌号,以过车次数累加的方式,将所确定的过车次数更新至所述基于过车次数的统计结果中。可选的,在当前统计周期结束后,所述方法还包括:对缓存中存储的、当前统计周期内采集的过车数据进行统计,获得当前统计周期内存在过车行为的车辆的车牌号和过车次数,并将所获得的车牌号和过车次数更新至所述车辆统计信息表;获得在目标统计周期内存在过车行为的车辆的车牌号和过车次数,其中,所述目标统计周期为:所述基于过车次数的统计结果对应的统计时段中距离当前统计周期时长最长的统计周期;按照所获得的在目标统计周期内存在过车行为的车辆的车牌号,以过车次数减少的方式,采用所获得的在目标统计周期内存在过车行为的车辆的过车次数对所述基于过车次数的统计结果进行更新。可选的,在所述按照车牌号,对每一时间间隔内采集的过车数据进行统计,获得每一时间间隔内存在过车行为的车辆的车牌号以及过车次数的步骤之前,还包括:对每一时间间隔内采集的过车数据进行数据合法性校验,如果合法,执行所述按照车牌号,对每一时间间隔内采集的过车数据进行统计,获得每一时间间隔内存在过车行为的车辆的车牌号以及过车次数的步骤。可选的,所述方法还包括:在生成所述基于过车次数的统计结果之后,按照过车次数对所述基于过车次数的统计结果中的车牌号进行排序,得到所述车辆统计时段对应的车牌号排名。可选的,所述车辆统计信息中还包括:车牌号所对应车辆的车辆特征;在生成所述基于过车次数的统计结果之后,所述方法还包括:按照车牌号,并根据所述基于过车次数的统计结果中的过车次数,对所述基于过车次数的统计结果中的车牌号所对应车辆的车辆特征进行统计,得到所述车辆统计时段内基于车辆特征的统计结果。可选的,所述基于过车次数的统计结果中包括:所获得的每一车牌号对应的过车次数队列,其中,过车次数队列中包含的元素为:sum(m-(m+i));m为:所述车辆统计时段内各个统计周期中距离当前统计周期时长最短的统计周期的标识,(m+i)为:按照距离当前统计周期的时长由短到长的顺序、所述车辆统计时段内第i个统计周期的标识,0≤i≤n,n为:所述车辆统计时段内各个统计周期中距离当前统计周期时长最长的统计周期的标识;sum(m-(m+i))表示:一个车牌号所对应车辆在目标时段内的过车次数,所述目标时段为:从标识为m的统计周期到标识为(m+i)的统计周期形成的时段。可选的,所述按照车牌号,并根据所述基于过车次数的统计结果中的过车次数,对所述基于过车次数的统计结果中的车牌号所对应车辆的车辆特征进行统计,得到所述车辆统计时段内基于车辆特征的统计结果的步骤,包括:对所述基于过车次数的统计结果中每一车牌号对应的过车次数队列进行去重处理,其中,去重处理后一个车牌号对应的过车次数队列中的一个元素表示:该车牌号所对应车辆在该元素对应的时段内是否存在过车行为;对所述基于过车次数的统计结果中特征相同的车辆的车牌号所对应过车次数队列进行统计,获得各个特征的车辆在过车次数队列的各个元素对应的时段内的过车统计信息;根据所获得的过车统计信息,生成所述车辆统计时段内基于车辆特征的统计结果。为达到上述目的,本发明实施例还提供了一种车辆统计装置,所述装置包括:第一确定模块,用于确定车辆统计时段;第二确定模块,用于根据车辆统计信息表中所存储车辆统计信息对应的最新统计周期,确定所述车辆统计时段中的第一子时段和第二子时段,其中,所述第一子时段为:从所述车辆统计信息表中获得车辆统计信息的时段,所述第二子时段为:根据缓存中存储的过车数据获得车辆统计信息的时段;第一获得模块,用于在第一子时段不为空的情况下,从所述车辆统计信息表中,获得在所述第一子时段内存在过车行为的车辆的车牌号以及过车次数;第二获得模块,用于在第二子时段不为空的情况下,对缓存中存储的、且在所述第二子时段采集的过车数据进行统计,获得在所述第二子时段内存在过车行为的车辆的车牌号以及过车次数;生成模块,用于根据所述第一获得模块和所述第二获得模块所获得的车牌号以及过车次数,生成所述车辆统计时段内基于过车次数的统计结果。可选的,所述装置还包括:第三获得模块,用于在所述车辆统计时段包含当前统计周期的情况下,生成所述基于过车次数的统计结果后,以第一预设时长为时间间隔,获得每一时间间隔内采集的过车数据;第一更新模块,用于获得每一时间间隔内采集的过车数据后,按照车牌号,对所获得的过车数据进行统计,确定存在过车行为的车辆的车牌号以及过车次数,并按照车牌号,以过车次数累加的方式,将所确定的过车次数更新至所述基于过车次数的统计结果中。可选的,所述装置还包括:第二更新模块,用于在当前统计周期结束后,对缓存中存储的、当前统计周期内采集的过车数据进行统计,获得当前统计周期内存在过车行为的车辆的车牌号和过车次数,并将所获得的车牌号和过车次数更新至所述车辆统计信息表;第四获得模块,用于获得在目标统计周期内存在过车行为的车辆的车牌号和过车次数,其中,所述目标统计周期为:所述基于过车次数的统计结果对应的统计时段中距离当前统计周期时长最长的统计周期;第三更新模块,用于按照所获得的在目标统计周期内存在过车行为的车辆的车牌号,以过车次数减少的方式,采用所获得的在目标统计周期内存在过车行为的车辆的过车次数对所述基于过车次数的统计结果进行更新。可选的,所述装置还包括:校验模块,用于对每一时间间隔内采集的过车数据进行数据合法性校验,如果合法,触发所述第一更新模块。可选的,所述装置还包括:排序模块,用于在生成所述基于过车次数的统计结果之后,按照过车次数对所述基于过车次数的统计结果中的车牌号进行排序,得到所述车辆统计时段对应的车牌号排名。可选的,所述车辆统计信息中还包括:车牌号所对应车辆的车辆特征;所述装置还包括:统计模块,用于在生成所述基于过车次数的统计结果之后,按照车牌号,并根据所述基于过车次数的统计结果中的过车次数,对所述基于过车次数的统计结果中的车牌号所对应车辆的车辆特征进行统计,得到所述车辆统计时段内基于车辆特征的统计结果。可选的,所述基于过车次数的统计结果中包括:所获得的每一车牌号对应的过车次数队列,其中,过车次数队列中包含的元素为:sum(m-(m+i));m为:所述车辆统计时段内各个统计周期中距离当前统计周期时长最短的统计周期的标识,(m+i)为:按照距离当前统计周期的时长由短到长的顺序、所述车辆统计时段内第i个统计周期的标识,0≤i≤n,n为:所述车辆统计时段内各个统计周期中距离当前统计周期时长最长的统计周期的标识;sum(m-(m+i))表示:一个车牌号所对应车辆在目标时段内的过车次数,所述目标时段为:从标识为m的统计周期到标识为(m+i)的统计周期形成的时段。可选的,所述统计模块,包括:去重子模块,用于对所述基于过车次数的统计结果中每一车牌号对应的过车次数队列进行去重处理,其中,去重处理后一个车牌号对应的过车次数队列中的一个元素表示:该车牌号所对应车辆在该元素对应的时段内是否存在过车行为;统计子模块,用于对所述基于过车次数的统计结果中特征相同的车辆的车牌号所对应过车次数队列进行统计,获得各个特征的车辆在过车次数队列的各个元素对应的时段内的过车统计信息;生成子模块,用于根据所获得的过车统计信息,生成所述车辆统计时段内基于车辆特征的统计结果。为达到上述目的,本发明实施例还提供了一种电子设备,包括处理器和存储器,其中:存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的车辆统计方法的方法步骤。为达到上述目的,本发明实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的车辆统计方法的方法步骤。本发明实施例提供的方案,预先按照统计周期对缓存中存储的、统计周期内采集的过车数据进行统计得到车辆统计信息,并将车辆统计信息存储在车辆统计信息表中,在确定车辆统计时段后,根据车辆统计信息表中所存储车辆统计信息对应的最新统计周期,可以将车辆统计时段划分为两个子时段,并分别从车辆统计信息表和缓存中获取这两个子时段内的车牌号以及过车次数,从而生成车辆统计时段内基于过车次数的车辆统计结果。可见,本发明实施例提供的方案,可以实现对设定时段内车辆及其过车次数的统计,并且由于按照统计周期将统计周期内对应的车辆统计信息存储在车辆统计信息表中,因此在生成车辆统计时段内基于过车次数的车辆统计结果时,可以直接从车辆统计信息表中获得第一子时段内的车辆统计信息,减小了计算量,提高了车辆统计时段内基于过车次数的统计结果的生成速度。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种车辆统计方法的流程示意图;图2为本发明实施例提供的另一种车辆统计方法的流程示意图;图3为本发明实施例提供的再一种车辆统计方法的流程示意图;图4为本发明实施例提供的一个具体实施例的流程示意图;图5为本发明实施例提供的一种车辆统计装置的结构示意图;图6为本发明实施例提供的另一种车辆统计装置的结构示意图;图7为本发明实施例提供的再一种车辆统计装置的结构示意图;图8为本发明实施例提供的一种电子设备的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为解决现有技术的问题,本发明实施例提供了一种车辆统计方法及装置、电子设备、计算机可读存储介质。下面首先对本发明实施例提供的一种车辆统计方法进行介绍。需要说明的是,本发明实施例提供的一种车辆统计方法方法的执行主体,可以为一种车辆统计装置,具体的,该车辆统计装置可以位于电子设备中,电子设备可以为服务器、移动终端等,此处不作限定。参见图1,图1为本发明实施例提供的一种车辆统计方法的流程示意图,包括:s101,确定车辆统计时段。在一种实现方式中,车辆统计时段可以为任意指定的包含任意个统计周期的时间段,假设以24小时为统计周期,若指定统计170901-170910这个包含10个统计周期的时间段内的车辆统计信息,那么确定的车辆统计时段为170901-170910。另外,车辆统计时段也可以为指定的从当前统计周期开始往前的预设统计时长,比如指定统计7天内的车辆统计信息,那么确定的车辆统计时段为从当前日期开始往前的连续7天。s102,根据车辆统计信息表中所存储车辆统计信息对应的最新统计周期,确定该车辆统计时段中的第一子时段和第二子时段。其中,第一子时段为:从车辆统计信息表中获得车辆统计信息的时段,第二子时段为:根据缓存中存储的过车数据获得车辆统计信息的时段。车辆统计信息表中存储的车辆统计信息为:按照统计周期对缓存中存储的、统计周期内采集的过车数据进行统计得到的数据,车辆统计信息包括:各个车牌号在各个统计周期对应的过车次数。可见,车辆统计信息表是按照统计周期进行更新的,统计周期可以为以预设时长为时间间隔,例如24小时、12小时等。在一种实现方式中,统计周期为24小时,可以在每天的零点对缓存中存储的、前24小时内采集的过车数据进行统计得到前24小时这个统计周期内存在过车行为的车辆的车牌号以及过车次数,并根据车牌号和过车次数更新车辆统计信息表。车辆统计信息表的结构可以如表1所示:表1rowkey列名时间戳value2-测a12345column=cf:property15042835388151,5,62-测a12345column=cfd:17090215042835388154101,41012-测a12345column=cfd:17090315043699461005105,92062-测a12345column=cfd:17090415044563757888387,175932-测a12345column=cfd:17090515045427649144532,22125由于车辆的车牌是通过车牌上的文字以及车牌颜色进行区分的,因此可以用车牌上的文字以及车牌颜色来唯一标识一辆车的车牌。例如车辆a的车牌为蓝色,车牌上的文字为测a12345,则车辆a的车牌号可以表示为:蓝-测a12345,或者2-测a12345,其中2表示蓝色。因此,表1中“2-测a12345”表示车辆的车牌号。车辆统计信息表中还可以包括车牌号所对应的车辆的车辆特征。可以理解的,车辆特征表示车辆的属性特点,车辆特征可以由在道路上设置的前端抓拍相机分析得到,例如车身颜色、车辆类型、车辆品牌等基本特征,以及一些可以通过深度学习系统分析出的年款、年检标、挂饰、纸巾盒、遮阳板、安全带等二次识别特征。如表1中cf:property列对应的value值可以用于标识车辆的车辆特征,表1中value有三个值,第一个值用于标识车辆的品牌,第二个值用于标识车辆的类型,第三个值用于标识车辆的颜色,例如,第一个值为1表示车辆品牌为大众,第二个值为5表示车辆的类型为汽车,第三个值为6表示车辆的颜色为白色。需要说明的是,表1中用不同的数字表示不同的颜色或不同的车辆特征,某一特定的数字所表示的颜色或者特征可以预先设定,并且颜色或者特征所对应的数字之间可以是独立的,互不干扰,例如,数字2可以用于表示车牌颜色为蓝色,也可以用于表示车辆类型为本田,还可以用于表示车辆颜色为蓝色。表1中cfd:170903表示在2017年9月4号的零点统计的2017年9月3号当天的过车数据,value为5105,9206,表示该车辆在2017年9月3号这天出现了5105次且累计出现9206次。表1中每一行所对应的时间戳,表示该行数据添加到车辆统计信息表的时间,其中第一行和第二行的时间戳相同,表示该车辆在2017年9月2号当天首次被采集到过车行为。以表1为例,表1所示的车辆统计信息表中所存储车辆统计信息对应的最新统计周期为170905(即2017年9月5号),如果步骤s101所确定的车辆统计时段为170902-170906,则根据最新统计周期将车辆统计时段分为两个子时段,分别为:第一子时段170902-170905、第二子时段170906;如果步骤s101所确定的车辆统计时段为170902-170904,则根据最新统计周期将车辆统计时段分为两个子时段,分别为:第一子时段170902-170904、第二子时段为空;如果步骤s101所确定的车辆统计时段为170906,则根据最新统计周期将车辆统计时段分为两个子时段,分别为:第一子时段为空、第二子时段为170906。s103,第一子时段不为空的情况下,从车辆统计信息表中,获得在第一子时段内存在过车行为的车辆的车牌号以及过车次数。以上述表1为例,如果第一子时段为170902-170905,则获得在第一子时段内存在过车行为的车辆的车牌号为2-测a12345,过车次数为22125。s104,在第二子时段不为空的情况下,对缓存中存储的、且在第二子时段采集的过车数据进行统计,获得在第二子时段内存在过车行为的车辆的车牌号以及过车次数。第二子时段不为空,也就是第二子时段处于当前统计周期中,这种情况下,第二子时段内采集的过车数据由于未到统计周期而没有被统计并存储在车辆统计信息表中,因此,第二子时段内存在过车行为的车辆的车牌号以及过车次数需要从缓存中获得。根据缓存中存储的过车数据获得第二子时段的车辆统计信息,该车辆统计信息可以包括在第二子时段内存在过车行为的各车辆所对应的车牌号、车牌颜色、车辆特征、过车次数及统计日期。例如,若第二子时段为170906,则从缓存中获得在2017年9月6日存在过车行为的各车辆对应的包括车牌号以及过车次数的车辆统计信息。s105,根据所获得的车牌号以及过车次数,生成该车辆统计时段内基于过车次数的统计结果。当第一子时段和第二子时段均不为空时,对于所获得车牌号以及过车次数,可以按照车牌号将过车次数进行求和计算,得到每一车牌号在该车辆统计时段内的过车次数,从而生成该车辆统计时段内各个车牌号基于过车次数的统计结果。例如,第一子时段为170902-170905,车牌号为2-测a12345在第一子时段内的过车次数为22125;第二子时段为170906,车牌号为2-测a12345在第二子时段内的过车次数为1000;那车牌号为2-测a12345在车辆统计时段内的过车次数为23125。进一步的,在步骤s105生成基于过车次数的统计结果之后,还可以按照过车次数对基于过车次数的统计结果中的车牌号进行排序,得到该车辆统计时段对应的车牌号排名。过车次数越多,车牌号排名越靠前,表示该车牌号对应的车辆在该车辆统计时段内越活跃。由上述可知,本发明实施例提供的方案,可以实现对设定时段内车辆及其过车次数的统计,并且由于按照统计周期将统计周期内对应的车辆统计信息存储在车辆统计信息表中,因此在生成车辆统计时段内基于过车次数的车辆统计结果时,可以直接从车辆统计信息表中获得第一子时段内的车辆统计信息,减小了计算量,提高了车辆统计时段内基于过车次数的统计结果的生成速度。本领域技术人员可以理解的是,由于安装在道路上的前端抓拍相机持续在采集道路上的过车数据,因此,如果上述车辆统计时段包含当前统计周期,则该车辆统计时段内基于过车次数的统计结果也是动态变化的。因此,为了获得该车辆统计时段内基于过车次数的实时统计结果,在一种实现方式中,如图2所示,在图1所示实施例的基础上,在车辆统计时段包含当前统计周期的情况下,该车辆统计方法还可以包括:s106,生成基于过车次数的统计结果后,以第一预设时长为时间间隔,获得每一时间间隔内采集的过车数据。第一预设时长可以设置为5分钟、10分钟等,为了得到更加实时的统计结果,也可以设置为5秒、10秒等,在此不做限定。s107,获得每一时间间隔内采集的过车数据后,按照车牌号,对所获得的过车数据进行统计,确定存在过车行为的车辆的车牌号以及过车次数,并按照车牌号,以过车次数累加的方式,将所确定的过车次数更新至基于过车次数的统计结果中。其中,上述按照车牌号,以过车次数累加的方式,将所确定的过车次数更新至基于过车次数的统计结果中的步骤,一种实现方式为:按照车牌号,将当前时间间隔内的过车次数累加至之前时间间隔所累加的过车次数,再按照车牌号,将累加后的过车次数更新至步骤s105生成的基于过车次数的统计结果中;另一种实现方式为:按照车牌号,直接将当前时间间隔内的过车次数累加至上个时间间隔更新后的基于过车次数的统计结果中。另外,由于获得的每一时间间隔内采集的过车数据可能存在为空或者不可用的情况,因此为了保证基于过车次数的统计结果的准确性,在上述步骤s107按照车牌号,对每一时间间隔内采集的过车数据进行统计,获得每一时间间隔内存在过车行为的车辆的车牌号以及过车次数之前,还可以对每一时间间隔内采集的过车数据进行数据合法性校验,如果合法,再执行上述步骤s107按照车牌号,对每一时间间隔内采集的过车数据进行统计,获得每一时间间隔内存在过车行为的车辆的车牌号以及过车次数。如果不合法,则返回执行获得下一个时间间隔内采集的过车数据的步骤。可以理解的,当当前统计周期结束并进入新的统计周期后,还可以继续对车辆进行基于过车次数的实时统计,但是此时的车辆统计时段也相应的发生了变化。举例而言,仍以上述表1所表示的车辆统计信息表为例,若步骤s101中确定的车辆统计时段为170902-170906,则当前统计周期结束后,车辆统计时段相应的变为170903-170907。在一种实现方式中,在当前统计周期结束后,为了继续对车辆的过车次数进行实时统计,该车辆统计方法还可以包括:对缓存中存储的、当前统计周期内采集的过车数据进行统计,获得当前统计周期内存在过车行为的车辆的车牌号和过车次数,并将所获得的车牌号和过车次数更新至车辆统计信息表;获得在目标统计周期内存在过车行为的车辆的车牌号和过车次数,其中,所述目标统计周期为:基于过车次数的统计结果对应的统计时段中距离当前统计周期时长最长的统计周期;按照所获得的在目标统计周期内存在过车行为的车辆的车牌号,以过车次数减少的方式,采用所获得在目标统计周期内存在过车行为的车辆的的过车次数对基于过车次数的统计结果进行更新。其中,上述目标统计周期内存在过车行为的车辆的车牌号和过车次数的获得方式,可以从车辆统计信息表中获得,也可以从缓存中获得,在此不做限定。需要说明的是,若步骤s102所确定的第一子时段为空,则目标统计周期内存在过车行为的车辆的车牌号和过车次数应当从缓存中获得。下面对上述按照所获得的在目标统计周期内存在过车行为的车辆的车牌号,以过车次数减少的方式,采用所获得在目标统计周期内存在过车行为的车辆的的过车次数对基于过车次数的统计结果进行更新的步骤进行举例说明。再次以上述表1所表示的车辆统计信息表为例,若步骤s101中确定的车辆统计时段为170902-170906,即统计5天内存在过车行为的车辆的车牌号和过车次数,且当前统计周期为170906,那么在2017年9月7日的零点时刻当前统计周期结束,此时车辆统计时段相应的变为170903-170907,因此,需要获得目标统周期170902(170902这个统计周期是车辆统计时段中距离当前统计周期时长最长的统计周期)内存在过车行为的车辆的车牌号和过车次数,然后按照车牌号,从170902-170906这个车辆统计时段内基于过车次数的统计结果中减去170902这个统计周期内存在过车行为的车辆的过车次数,从而对基于过车次数的统计结果进行更新。例如,在170902-170906这个车辆统计时段内基于过车次数的统计结果中,车牌号2-测a12345的过车次数为22125,车牌号为2-测a12346的过车次数为20025;从车辆统计信息表中获得在目标统计周期170902内,车牌号2-测a12345的过车次数为1000,车牌号为2-测a12346的过车次数为0;因此,按照所获得的目标统计周期170902内存在过车行为的车辆的车牌号,以过车次数减少的方式,采用所获得的目标统计周期170902内存在过车行为的车辆的过车次数对基于过车次数的统计结果进行更新,更新后的基于过车次数的统计结果中,车牌号2-测a12345的过车次数为21125,车牌号为2-测a12346的过车次数为20025。可见,应用图2所示实施例,在车辆统计时段包含当前统计周期的情况下,在生成车辆统计时段内基于过车次数的统计结果后,可以继续对车辆的过车次数进行实时统计。本领域技术人员可以理解的是,为了获得设定时段内车辆特征排名情况,在车辆统计信息中还可以包括:车牌号所对应车辆的车辆特征,如表1中cf:property列对应的value值。为了获得车辆特征统计结果,在生成基于过车次数的统计结果之后,如图3所示,在图1所示实施例的基础上,该车辆统计方法还可以包括:s108,按照车牌号,并根据基于过车次数的统计结果中的过车次数,对基于过车次数的统计结果中的车牌号所对应车辆的车辆特征进行统计,得到车辆统计时段内基于车辆特征的统计结果。在一种实现方式中,基于过车次数的统计结果中可以包括:所获得的每一车牌号对应的过车次数队列,其中,过车次数队列中包含的元素为:sum(m-(m+i));m为:车辆统计时段内各个统计周期中距离当前统计周期时长最短的统计周期的标识,(m+i)为:按照距离当前统计周期的时长由短到长的顺序、车辆统计时段内第i个统计周期的标识,0≤i≤n,n为:车辆统计时段内各个统计周期中距离当前统计周期时长最长的统计周期的标识;sum(m-(m+i))表示:一个车牌号所对应车辆在目标时段内的过车次数,目标时段为:从标识为m的统计周期到标识为(m+i)的统计周期形成的时段。举例而言,若m=0,n=30,则过车次数队列表示为[sum0,sum(0-1),sum(0-2),…,sum(0-30)],即车辆统计时段为从当前统计周期到当前统计周期往前第30个统计周期所形成的时段,该车辆统计时段包含了31个统计周期。若m=1,n=30,则过车次数队列表示为[sum1,sum(1-2),sum(1-3),…,sum(1-31)],即车辆统计时段为从当前统计周期的前一个统计周期到当前统计周期往前第31个统计周期所形成的时段,该车辆统计时段也包含了31个统计周期。根据上述基于过车次数的统计结果的表现形式,在一种实现方式中,上述按照车牌号,并根据基于过车次数的统计结果中的过车次数,对基于过车次数的统计结果中的车牌号所对应车辆的车辆特征进行统计,得到车辆统计时段内基于车辆特征的统计结果的步骤,可以包括:对基于过车次数的统计结果中每一车牌号对应的过车次数队列进行去重处理,其中,去重处理后一个车牌号对应的过车次数队列中的一个元素表示:该车牌号所对应车辆在该元素对应的时段内是否存在过车行为;对基于过车次数的统计结果中特征相同的车辆的车牌号所对应过车次数队列进行统计,获得各个特征的车辆在过车次数队列的各个元素对应的时段内的过车统计信息;根据所获得的过车统计信息,生成车辆统计时段内基于车辆特征的统计结果。可以理解的是,对过车次数队列进行去重处理,可以避免在统计车辆特征时由于车辆过车次数导致的重复统计。一种对过车次数队列进行去重处理的方式为:将过车次数队列转换为0-1矩阵格式,即若过车次数队列中的元素sum(m-(m+i))大于0,则去重后的过车次数队列中的该元素为1,若过车次数队列中的元素sum(m-(m+i))等于0,则去重后的过车次数队列中的该元素为0。可以理解的,根据过车次数队列中的元素的数据特点,当过车次数队列中的某一位元素为1,则该位元素后的所有元素均为1。例如,若某车牌号对应的过车次数队列[sum0,sum(0-1),sum(0-2),…,sum(0-30)]=[0,0,10,20,30,40,…,300],则去重后的过车次数队列为[0,0,1,1,1,1,…,1],第一个元素和第二个元素为0,表示该车牌号所对应车辆在这两个元素对应的时段内不存在过车行为。当然还可以采用其它方式进行去重处理,例如,若过车次数队列中的元素sum(m-(m+i))大于0,则去重后的过车次数队列中对应的元素为a,若过车次数队列中的元素sum(m-(m+i))等于0,则去重后的过车次数队列中对应的元素为a。即去重后的过车次数队列中的元素a表示车牌号所对应车辆在该元素对应的时段内存在过车行为,去重后的过车次数队列中的元素a表示车牌号所对应车辆在该元素对应的时段内不存在过车行为。以0-1矩阵的方式为例,若基于过车次数的统计结果中包含6个车牌号所对应车辆的过车次数以及车辆特征,对各个车牌号的过车次数进行去重处理后如表2所示。表2车牌号特征类型1:特征类型2:特征类型3:去重后的过车次数队列111111112[0,1,1,1,1,1,1]222222212[0,0,0,0,0,1,1]333333221[0,0,1,1,1,1,1]444444321[0,0,0,1,1,1,1]555555212[1,1,1,1,1,1,1]666666121[0,0,0,0,0,0,1]若需要得到特征类型为车辆品牌的各个特征的统计结果,则根据表2中“特征类型1:车辆品牌”列和“去重后的过车次数队列”列,将车辆品牌相同的车牌号所对应去重后的过车次数队列进行统计,获得各个车辆品牌的车辆在过车次数队列的各个元素对应的时段内的过车统计信息,如表3所示:表3特征类型1:过车统计信息1[0,1,1,1,1,1,2]2[1,1,2,2,2,3,3]3[0,0,0,1,1,1,1]表3中车辆品牌为1的特征对应的过车统计信息为[0,1,1,1,1,1,2],其中,第1个元素为0表示:在该元素对应的时段内,没有具有该特征的车辆存在过车行为,第7个元素为2表示:在该元素对应的时段内,有2辆具有该特征的车辆存在过车行为。根据所获得的过车统计信息,可以生成车辆统计时段内基于车辆特征的统计结果,还可以对基于车辆特征的统计结果中的各个特征进行排序,得到各个特征在各个时段内的排名。如表3中,在第7个元素对应的时段内,车辆品牌特征的排名为:车辆品牌2、车辆品牌1、车辆品牌3。需要说明的是,采用0-1矩阵的方式对过车次数队列进行去重处理,利用矩阵计算过车统计信息,能够快速处理去重问题,大大提高了性能。应用图3所示实施例,在实现对设定时段内车辆及其过车次数的统计的基础上,还可以实现对设定时段内车辆特征的统计。下面以一个具体实施例对本发明实施例提供的车辆统计方法进行说明。本发明实施例所提供的方法可以基于分布式系统实现,通过kafka系统获取在道路上设置的前端抓拍相机采集的过车数据,其中,kafka系统是一个分布式发布-订阅消息系统,实时数据首先发送到kafka中,利用其消费者接口可对数据进行建立elasticsearch索引和持久化到数据库中,elasticsearch是一个基于lucene的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎。采集的过车数据作为实时数据发送至kafka,然后实时读取kafka中的实时数据建立elasticsearch索引并将实时数据持久化到数据库中。设定每天凌晨的定时任务从elasticsearch分析前一天的过车数据,统计出前一天存在过车行为的车辆的车牌号以及过车次数,并将统计车牌号以及过车次数更新到车辆统计信息表中。考虑到前端抓拍相机采集的过车数据的数据量比较大,而采集的过车数据作为实时数据传输至kafka的时候会发生延迟,即可能存在当天传输昨天采集的过车数据到kafka的情形。在这种情形下,可以将昨天采集的过车数据也当做实时数据处理,即对于车辆统计时段包括当天或昨天的情况,均需要按照实时统计的流程处理。实时统计的处理流程可参见图4,在图4所示的流程图中,若车辆统计时段为30天,则起始时间为当天的前第30天,终止时间为当天,设当天为第0天,前一天为第1天,以此类推,则起始时间为第30天。在图4中,步骤s401首先利用spark(spark是专为大规模数据处理而设计的快速通用的计算引擎,可用来构建大型的、低延迟的数据分析应用程序)分布式处理车辆统计信息表,从车辆统计信息表中获得前2天-前30天的统计结果,再执行步骤s402从elasticsearch中获得第1天的车牌号及对应的过车次数的统计结果、步骤s403从elasticsearch中获得第0天的车牌号及对应的过车次数的统计结果,然后在步骤s404中按照车牌号合并上述三个步骤中所获得的统计结果,得到基准车辆统计信息benchmarkrdd(在spark中数据组织结构抽象为rdd,表示不可变已分区的数据集)。举例而言,本具体实施例以车辆特征包括车辆品牌、车辆类型、车辆颜色为例进行阐述。利用spark分布式计算从数据库中加载车辆统计信息表并进行累加操作以及从elasticsearch按车牌颜色-车牌号码分组获取结果,两者结果合并可得基准信息benchmarkrdd并存入多级缓存(多级缓存,即在整个系统架构的不同系统层级进行数据缓存,以提升数据读写效率),benchmarkrdd的数据格式如表4所示,其中sum0为从elasticsearch获取的当天的过车次数累加值,sum1为从elasticsearch获取的前一天的过车次数累加值,sum2为从车辆统计信息表获取的第2天的过车次数,sum(2-30)为从车辆统计信息表获取的第2天到第30天的过车次数累加值,以此类推。表4在获得基准车辆统计信息benchmarkrdd后,执行步骤s405利用spark-streaming(park-streaming是一种大规模流式数据处理框架,构建在spark之上,能够将流式计算转化成为一系列短时间间隔的无状态、确定性的批处理)按batch间隔从kafka中获取实时数据,然后执行步骤s406对所获得的实时数据进行数据合法性校验,如果校验通过,则执行步骤s407更新按batch累加的第0天和第1天的实时数据。例如,spark-streaming每隔batch时间从kafka中获取一批实时数据,合法性校验后,按车牌颜色-车牌号码分组并利用累加状态信息函数updatestatebykey返回前面累加的全部批次的车牌分组信息,累加的实时数据rdd的数据格式如表5所示,其中sum0为实时获取的当天的过车次数累加值,sum1为实时获取的昨天的过车次数累加值。表5key第0天实时累加值第1天实时累加值车牌号码-车牌颜色sum0sum1接下来,执行步骤s408,合并步骤s404和步骤s407所获得的数据,得到本批次的计算统计信息computerdd,即本批次的车辆统计信息。表6为computerdd的数据格式,以上述表4和表5为例,根据key(车牌颜色-车牌号码)合并表4、表5的数据,合并表4、表5中对应的sum0、sum1,并根据表5中的sum0、sum1更新表4中的累加值,结果如表6所示。表6在得到计算统计信息computerdd之后,执行步骤s409可以根据computerdd中累加值列表中的各个累加值,得到从第0天开始到31天内的任意一天的车牌号对应车辆的过车次数排名(即车牌topn),并将车牌排名情况存入分布式缓存redis(redis是一种基于内存的分布式key-value数据库)中。在得到计算统计信息computerdd之后,还可以执行步骤s410,根据computerdd计算车辆特征排名并存入分布式缓存redis。具体的,特征统计根据computerdd进行,将每一车牌号码-车牌颜色所对应车辆的特征值与累加值信息转换成“0-1矩阵”格式,list中某一元素大于0则在“0-1矩阵”该元素为1,某一元素等于0则在“0-1矩阵”该元素为0,且根据数据特点,当list中前一位为1,其后所有的元素都为1,表7为特征的0-1矩阵。表7特征1特征2特征3“0-1矩阵”车辆品牌车辆类型车辆颜色[0,0,0,1,1,1…1]例如,如果要计算第0天开始的7天数据的车辆品牌排名,则只需获取表7中第一列和根据表6中第0天累加值列表生成的“0-1矩阵”,如表8所示,重写spark的reducebykey函数,根据表6中key对应项相加后排序可得车辆品牌的统计结果,如表9所示。表8车辆品牌“0-1矩阵”1[0,1,1,1,1,1,1]2[0,0,0,0,0,1,1]2[0,0,1,1,1,1,1]2[1,1,1,1,1,1,1]表9车辆品牌“0-1矩阵”1[0,1,1,1,1,1,1]2[1,1,2,2,2,3,3]图4所示流程图中的步骤s411判断是否正在进行全量更新,其中全量更新即为更新benchmarkrdd,具体为,在每天零点将benchmarkrdd数据结构中的sum0和sum1以及最后一天的数据清零,然后根据最新一天的数据信息更新benchmarkrdd中的累加值列表list。在全量更新完成之后,再返回执行步骤s405利用spark-streaming按batch间隔从kafka中获取实时数据的步骤,继续进行车辆的实时统计流程。进一步的,本具体实施例提供的方案还可以实现统计结果的查询功能,具体分为历史数据查询和实时数据查询。其中历史数据查询可以通过分布式处理车辆统计信息表获得,例如,假设当天日期为20170911,如果要查询0902-0910这9天内的统计结果,则从车辆统计信息表中获得在这9天内存在过车行为的车辆的车牌号以及对应的过车次数,并针对各个车牌号以列表的形式展示统计结果。例如车辆统计信息表中车牌号为“2-测a88888”的车辆在20170910-20170902每天出现10次,则“2-测a8888”在该时段内的统计结果如表10所示。分布式处理所有车牌号后按照topn将统计结果持久化到数据库。表100910090909080907090609050904090309020910102030405060708090可将通过上述图4所示流程获得的实时统计结果和通过分布式处理车辆统计信息表获得的历史统计结果可以用如表11的形式记录,提高查询效率,其中a0-a8、b0-b8为实时统计结果,c0-c8、d0-d8、e0-e8等为历史统计结果。假设用户查询0912-0905时段内的统计结果则从分布式缓存中直接获取a7,查询0910-0906时段内的统计结果则从数据库中获取c4。表110912091109100909090809070906090509040912a0a1a2a3a4a5a6a7a80911b0b1b2b3b4b5b6b70910c0c1c2c3c4c5c60909d0......0908e0……由以上可知,本具体实施例的有益效果为:1、利用车辆统计信息表的设计,便于进行历史快照和实时统计逻辑处理,可支持多个特征的排名问题,可扩展性强;2、实时统计的处理流程中采用实时流处理和快照计算相结合,引入分布式计算引擎并能快速合并统计信息,处理结果采用多级缓存存储,实时统计结果从分布式缓存中获取,历史统计结果从数据库中获取,提升查询速度的同时也能保证系统的稳定性;3、将车辆特征信息采用矩阵标识,最终利用矩阵计算,能够快速处理去重问题并能够批量计算,提高性能。相应于上述车辆统计方法实施例,本发明实施例提供了一种车辆统计装置,与图1所示方法实施例相对应,图5为本发明实施例提供的一种车辆统计装置的结构示意图,该装置可以包括:第一确定模块501,用于确定车辆统计时段;第二确定模块502,用于根据车辆统计信息表中所存储车辆统计信息对应的最新统计周期,确定所述车辆统计时段中的第一子时段和第二子时段,其中,所述第一子时段为:从所述车辆统计信息表中获得车辆统计信息的时段,所述第二子时段为:根据缓存中存储的过车数据获得车辆统计信息的时段;第一获得模块503,用于在第一子时段不为空的情况下,从所述车辆统计信息表中,获得在所述第一子时段内存在过车行为的车辆的车牌号以及过车次数;第二获得模块504,用于在第二子时段不为空的情况下,对缓存中存储的、且在所述第二子时段采集的过车数据进行统计,获得在所述第二子时段内存在过车行为的车辆的车牌号以及过车次数;生成模块505,用于根据所述第一获得模块503和所述第二获得模块504所获得的车牌号以及过车次数,生成所述车辆统计时段内基于过车次数的统计结果。应用本发明实施例提供的方案,可以实现对设定时段内车辆及其过车次数的统计,并且由于按照统计周期将统计周期内对应的车辆统计信息存储在车辆统计信息表中,因此在生成车辆统计时段内基于过车次数的车辆统计结果时,可以直接从车辆统计信息表中获得第一子时段内的车辆统计信息,减小了计算量,提高了车辆统计时段内基于过车次数的统计结果的生成速度。作为本发明实施例的一种实施方式,与图2所示的方法实施例相对应,图6为本发明实施例提供的另一种车辆统计装置的结构示意图,该装置还可以包括:第三获得模块506,用于在所述车辆统计时段包含当前统计周期的情况下,生成所述基于过车次数的统计结果后,以第一预设时长为时间间隔,获得每一时间间隔内采集的过车数据;第一更新模块507,用于获得每一时间间隔内采集的过车数据后,按照车牌号,对所获得的过车数据进行统计,确定存在过车行为的车辆的车牌号以及过车次数,并按照车牌号,以过车次数累加的方式,将所确定的过车次数更新至所述基于过车次数的统计结果中。作为本发明实施例的一种实施方式,所述装置还可以包括:第二更新模块,用于在当前统计周期结束后,对缓存中存储的、当前统计周期内采集的过车数据进行统计,获得当前统计周期内存在过车行为的车辆的车牌号和过车次数,并将所获得的车牌号和过车次数更新至所述车辆统计信息表;第四获得模块,用于获得在目标统计周期内存在过车行为的车辆的车牌号和过车次数,其中,所述目标统计周期为:所述基于过车次数的统计结果对应的统计时段中距离当前统计周期时长最长的统计周期;第三更新模块,用于按照所获得的在目标统计周期内存在过车行为的车辆的车牌号,以过车次数减少的方式,采用所获得的在目标统计周期内存在过车行为的车辆的过车次数对所述基于过车次数的统计结果进行更新。作为本发明实施例的一种实施方式,所述装置还可以包括:校验模块,用于对每一时间间隔内采集的过车数据进行数据合法性校验,如果合法,触发所述第一更新模块。作为本发明实施例的一种实施方式,所述装置还可以包括:排序模块,用于在生成所述基于过车次数的统计结果之后,按照过车次数对所述基于过车次数的统计结果中的车牌号进行排序,得到所述车辆统计时段对应的车牌号排名。作为本发明实施例的一种实施方式,所述车辆统计信息中还包括:车牌号所对应车辆的车辆特征;与图3所示的方法实施例相对应,图7为本发明实施例提供的再一种车辆统计装置的结构示意图,所述装置还可以包括:统计模块508,用于在生成所述基于过车次数的统计结果之后,按照车牌号,并根据所述基于过车次数的统计结果中的过车次数,对所述基于过车次数的统计结果中的车牌号所对应车辆的车辆特征进行统计,得到所述车辆统计时段内基于车辆特征的统计结果。作为本发明实施例的一种实施方式,所述基于过车次数的统计结果中包括:所获得的每一车牌号对应的过车次数队列,其中,过车次数队列中包含的元素为:sum(m-(m+i));m为:所述车辆统计时段内各个统计周期中距离当前统计周期时长最短的统计周期的标识,(m+i)为:按照距离当前统计周期的时长由短到长的顺序、所述车辆统计时段内第i个统计周期的标识,0≤i≤n,n为:所述车辆统计时段内各个统计周期中距离当前统计周期时长最长的统计周期的标识;sum(m-(m+i))表示:一个车牌号所对应车辆在目标时段内的过车次数,所述目标时段为:从标识为m的统计周期到标识为(m+i)的统计周期形成的时段。作为本发明实施例的一种实施方式,所述统计模块508,可以包括:去重子模块,用于对所述基于过车次数的统计结果中每一车牌号对应的过车次数队列进行去重处理,其中,去重处理后一个车牌号对应的过车次数队列中的一个元素表示:该车牌号所对应车辆在该元素对应的时段内是否存在过车行为;统计子模块,用于对所述基于过车次数的统计结果中特征相同的车辆的车牌号所对应过车次数队列进行统计,获得各个特征的车辆在过车次数队列的各个元素对应的时段内的过车统计信息;生成子模块,用于根据所获得的过车统计信息,生成所述车辆统计时段内基于车辆特征的统计结果。本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,存储器803,用于存放计算机程序;处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:确定车辆统计时段;根据车辆统计信息表中所存储车辆统计信息对应的最新统计周期,确定所述车辆统计时段中的第一子时段和第二子时段,其中,所述第一子时段为:从所述车辆统计信息表中获得车辆统计信息的时段,所述第二子时段为:根据缓存中存储的过车数据获得车辆统计信息的时段;在第一子时段不为空的情况下,从所述车辆统计信息表中,获得在所述第一子时段内存在过车行为的车辆的车牌号以及过车次数;在第二子时段不为空的情况下,对缓存中存储的、且在所述第二子时段采集的过车数据进行统计,获得在所述第二子时段内存在过车行为的车辆的车牌号以及过车次数;根据所获得的车牌号以及过车次数,生成所述车辆统计时段内基于过车次数的统计结果。关于该方法各个步骤的具体实现以及相关解释内容可以参见上述图1所示的方法实施例,在此不做赘述。另外,处理器801执行存储器803上所存放的程序而实现的车辆统计方法的其他实现方式,与前述方法实施例部分所提及的实现方式相同,这里也不再赘述。本发明实施例提供的电子设备,可以实现对设定时段内车辆及其过车次数的统计,并且由于按照统计周期将统计周期内对应的车辆统计信息存储在车辆统计信息表中,因此在生成车辆统计时段内基于过车次数的车辆统计结果时,可以直接从车辆统计信息表中获得第一子时段内的车辆统计信息,减小了计算量,提高了车辆统计时段内基于过车次数的统计结果的生成速度。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的车辆统计方法。通过运行本发明实施例提供的计算机程序产品,可以实现对设定时段内车辆及其过车次数的统计,并且由于按照统计周期将统计周期内对应的车辆统计信息存储在车辆统计信息表中,因此在生成车辆统计时段内基于过车次数的车辆统计结果时,可以直接从车辆统计信息表中获得第一子时段内的车辆统计信息,减小了计算量,提高了车辆统计时段内基于过车次数的统计结果的生成速度。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备以及计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1