【技术实现步骤摘要】
基于redis的过车数据去重方法
本专利技术涉及数据处理
,尤其涉及一种基于redis的过车数据去重方法。
技术介绍
现有的公共交通道路中,一条路或者一个路口有多个卡口和电警,每个设备拍摄的图片经解析后的车辆数据中主体车最多有一个。现实中,一辆车同一时间间隔如2分钟内会被设备拍摄多张照片,甚至同一秒钟会被拍摄多次,而每张照片经解析之后又有很多辆过车数据,这样就造成了重复数据过多。因此,过车数据去重就显得尤为重要,但如何保留所有有效数据并且去除重复数据,其中包括但不限于优先保存主体车(每张图片的主要车辆信息)以及保证每张图片都至少有一张最优数据已成为本技术最大难点,此外,还需要考虑性能问题,处理太慢会严重影响后续业务。现有技术以及常规思路是将这些过车数据存到java的Map中或者保存到数据库中,而且根据的是消费时间而不是拍摄时间去重,并且不考虑数据是不是主体车数据,只考虑车牌号、路口以及缓存时间,这将带来的如下问题:1、如果一张图片有主体车和非主体车,如果非主体车的数据比主体车的数据先经过去重程序,则可能将非主体车数据保存下来,而主体车数据被删掉,此种情况很显然应该优先保存主体车;2、单纯依靠车牌和路口以及保存的时间来去重,可能会丢失很多原本应该保存下来的数据,比如第一张图片有车牌A,保存下来了,第二张图片有车牌A以及一些无牌的数据,第二张图片一条数据也不保存,此种情况很显然应该每张图片至少保留一条最优过车数据;3、单纯依靠车牌和路口以及保存的时间来去重,可能会造成去除原本应该保存的过车数据,比如2分钟之内来了两条过车数据,他们车牌和路口一样,但是拍摄 ...
【技术保护点】
1.一种基于redis的过车数据去重方法,其特征在于,包括步骤:解析过车图片结果的json字符串,得到过车数据列表,所述过车数据列表中包括主体车数据、非主体车数据、无车牌机动车数据和非机动车数据的至少一种混合数据;设置逻辑变量,所述逻辑变量为给当前过车数据是所述过车数据列表最后一条数据时判断使用,其中,所述变量包括:所述过车数据是否有当即保存的主体车或带车牌的非主体车布尔型变量A,设置为false表示没有;带车牌的非主体车对象C;是否有无车牌有车型的数据保存的布尔型变量B,设置为false表示没有;所述过车数据最后一条无车牌无车型的机动车的json字符串L;其中,A为sendFlag,B为noPlateButInfoFlag,C为carnoVsd,L为lastNoPlateNoCarInfoVehicleModelJson;对所述过车数据进行处理,处理流程具体为:遍历所述过车数据列表;当前过车数据为非机动车数据时,执行非机动车数据处理流程,并判断所述当前过车数据是否为所述过车数据列表的最后一条;当前过车数据为无车牌的机动车数据时,执行无车牌的机动车数据处理流程,并判断所述当前过车数据是 ...
【技术特征摘要】
1.一种基于redis的过车数据去重方法,其特征在于,包括步骤:解析过车图片结果的json字符串,得到过车数据列表,所述过车数据列表中包括主体车数据、非主体车数据、无车牌机动车数据和非机动车数据的至少一种混合数据;设置逻辑变量,所述逻辑变量为给当前过车数据是所述过车数据列表最后一条数据时判断使用,其中,所述变量包括:所述过车数据是否有当即保存的主体车或带车牌的非主体车布尔型变量A,设置为false表示没有;带车牌的非主体车对象C;是否有无车牌有车型的数据保存的布尔型变量B,设置为false表示没有;所述过车数据最后一条无车牌无车型的机动车的json字符串L;其中,A为sendFlag,B为noPlateButInfoFlag,C为carnoVsd,L为lastNoPlateNoCarInfoVehicleModelJson;对所述过车数据进行处理,处理流程具体为:遍历所述过车数据列表;当前过车数据为非机动车数据时,执行非机动车数据处理流程,并判断所述当前过车数据是否为所述过车数据列表的最后一条;当前过车数据为无车牌的机动车数据时,执行无车牌的机动车数据处理流程,并判断所述当前过车数据是否为所述过车数据列表的最后一条;当前过车数据为主体车数据时,执行主体机动车数据处理流程,并判断所述当前过车数据是否为所述过车数据列表的最后一条;当前过车数据为非主体车数据时,且redis中主体车数据缓存存在时,执行非主体车数据且主体车数据缓存存在的处理流程,并判断所述当前过车数据是否为所述过车数据列表的最后一条;当前过车数据为非主体车数据时,且redis中主体车数据缓存不存在,非主体车数据缓存存在时,执行非主体车数据且主体车数据缓存不存在、非主体车数据缓存存在的处理流程,并判断所述当前过车数据是否为所述过车数据列表的最后一条;当前过车数据为非主体车数据时,且redis中主体车数据缓存不存在,非主体车数据缓存不存在时,执行非主体车数据且主体车数据缓存不存在、非主体车数据缓存不存在的处理流程,并判断所述当前过车数据是否为所述过车数据列表的最后一条;当前过车数据为所述过车数据列表的最后一条时,执行当前数据是过车数据列表最后一条的处理流程。2.根据权利要求1所述的基于redis的过车数据去重方法,其特征在于,所述主体车数据和所述非主体车数据保存在redis中缓存,其中,所述主体车数据设置一个键值对,键由主体车标识、过车数据的车牌号和过车数据的路口组成,值为对应的过车数据json字符串;所述非主体车数据包括非主体车原数据和非主体车副本数据,设置两个键值对,分别是:非主体车原数据对应的键由非主体车标识、过车数据的车牌号和过车数据的路口组成、值为空;非主体车副本数据对应的键由非主体车副本标识、非主体车标识、过车数据的车牌号和过车数据的路口组成、值为对应的过车数据json字符串。3.根据权利要求1所述的基于redis的过车数据去重方法,其特征在于,所述非机动车数据处理流程,进一步为,将所述非机动车数据发送到消息队列kafka。4.根据权利要求1所述的基于redis的过车数据去重方法,其特征在于,所述执行无车牌的机动车数据处理流程,进一步为,当前过车数据是有车型的无车牌机动车数据时,则将所述当前过车数据发送到消息队列kafka,并赋值所述布尔型变量B为true;当前过车数据是无车型的无车牌机动车数据时,则将所述当前过车数据赋值为所述过车数据列表最后一条无车牌无车型的机动车的json字符串L。5.根据权利要求2所述的基于redis的...
【专利技术属性】
技术研发人员:郝敬全,于广范,吴永,辛国茂,李占强,李善宝,李庆功,马述杰,
申请(专利权)人:泰华智慧产业集团股份有限公司,
类型:发明
国别省市:山东,37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。