基于高位摄像头的街区路面智慧泊车行为检测方法
文献发布时间:2023-06-19 09:24:30
技术领域
本发明涉及街区路面智慧泊车行为检测领域,特别涉及一种基于高位摄像头的街区路面智慧泊车行为检测方法。
背景技术
目前智慧泊车行为检测技术主要广泛应用于地下停车场、路面停车场等特定场景,主要使用地锁、地磁等技术,锁定车位并依赖注册用户输入车牌、泊位等信息,方案简单,但存在损伤车辆风险,受干扰严重,依赖性较强等缺点。对于街区路面泊车,目前主要还是依靠人工进行进出行为判定并核算收费,该方案实现简单,但存在人工成本高,覆盖范围有限,且容易漏检等问题。
发明内容
本发明的目的是提供一种基于高位摄像头的街区路面智慧泊车行为检测方法,能够解决路边停车收费的难题,只利用摄像头识别出路边停车区域的车辆的进出事件,以及车辆的车牌信息,入场/立场时间,并用来停车收费。
本发明解决其技术问题,采用的技术方案是:基于高位摄像头的街区路面智慧泊车行为检测方法,包括如下步骤:
步骤1、获取高位摄像头视频画面,并检测出当前视频帧画面中每辆车的相关信息,所述相关信息包括运动方向、车辆的边框及类型、车牌的边框及类型、车牌号和追踪编号;
步骤2、以车辆为单位,将车辆及对应的相关信息逐一添加到队列中,并将所述相关信息按照追踪编号进行分组;
步骤3、按组对车辆的相关信息进行分析,判断车辆当前是否有越线行为或者车辆已处于越线状态:若是,则在当前车辆的运动方向为进场方向或离场方向时,判断此时车辆是否停稳,若停稳,则进入步骤4,若未停稳,则进入步骤1;否则回到步骤1;
步骤4、判断车辆是否在停车位区域内,若运动方向为进场方向的车辆被判定在区域内或者运动方向为离场方向的车辆被判断不在区域内,则将对应的车辆入场信息或者离场信息上报至前端客户端,并清空当前车辆的相关信息,回到步骤1,若运动方向为进场方向的车辆被判定不在区域内或者运动方向为离场方向的车辆被判定在区域内,则不上报,并清空当前车辆的相关信息,并回到步骤1。
进一步的是,步骤1中,所述检测包括:
对当前视频帧画面进行车辆、车型及厂商检测;以及,
对检测到的车辆进行追踪;以及,
分析车辆的运动方向;以及,
对检测到的每个车辆框内的画面进行车牌检测;以及,
对检测到的车牌进行车牌识别。
进一步的是,步骤2中,在以车辆为单位,将车辆及对应的相关信息逐一添加到队列中之后,在将所述相关信息按照追踪编号进行分组之前,还包括:对车牌号进行记录及对追踪的车辆ID的修正;
所述对车牌号进行记录具体包括:通过一个字典存储被成功识别到的所有车牌号,所述字典包括key和value,字典的key为车辆的编号,value为一个列表,列表中存了所属同一个编号的所有被识别到的车牌号;
所述对追踪的车辆ID的修正具体包括:当发现一个新的ID的车辆的时,将这个新的ID的车辆和之前存储的ID的车辆对比,若为同一辆车,则将ID更新为所述新的ID,并同步更新字典的key。
进一步的是,步骤3中,当车辆的运动方向为进场方向时,判断此时车辆是否停稳的依据为:
如果车辆的框能一直能被识别,则查看运动方向检测的结果,如果这辆车之前拥有运动方向,并且之后在一段时间内都保持没有运动方向,则认为车辆已停稳;或者,
如果车辆框不能被识别,并保持一定时间内不能被识别,则认为车辆已停稳。
进一步的是,步骤3中,当车辆的运动方向为离场方向时,判断此时车辆是否停稳的依据为:
如果车辆的框能一直能被识别,则查看运动方向检测的结果,如果这辆车之前拥有运动方向,并且之后在一段时间内都保持没有运动方向,则认为车辆已停稳;或者,
如果车辆框不能被识别,并保持一定时间内不能被识别,则认为车辆已停稳。
进一步的是,步骤4中,在判断车辆是否在停车位区域内时,计算每组中的车辆边框和停车区域的重叠变化值一,以及车辆边框中心点到停车区域中心点的距离变化值二,以及车辆边框的下底边和停车区域下底边的垂直距离,若变化值一、变化值二和垂直距离均在规定范围内时,则判定车辆在停车区域内。
本发明的有益效果是,通过上述基于高位摄像头的街区路面智慧泊车行为检测方法,仅利用高位摄像头对街区路面停车区域进行监控与识别,代替人工完成智慧泊车行为检测,并上报必要的关键信息(车辆行为的轨迹、车牌、泊位、时刻等)用于后台业务系统对注册车辆进一步收取费用。
附图说明
图1为本发明实施例的基于高位摄像头的街区路面智慧泊车行为检测方法的流程图。
具体实施方式
下面结合附图及实施例,详细描述本发明的技术方案。
实施例
本实施例提供了一种基于高位摄像头的街区路面智慧泊车行为检测方法,其流程图见图1,其中,该方法包括如下步骤:
步骤1、获取摄像头画面。
步骤2、对取回来的当前摄像头画面(当前帧)进行车辆、车型和厂商检测。
步骤3、对检测到的车辆进行追踪。
步骤4、分析车辆的运动方向。
步骤5、对检测到的每个车辆框内的画面进行车牌检测。
步骤6、对检测到的车牌进行车牌识别。
步骤7、将步骤2-6中产生的信息综合一下,每辆车都包含了1.运动方向;2.车辆的边框,类型;3.追踪编号;4.车牌的边框,类型;5.车牌号这五项内容。以车辆作为单位,将车辆以及其相关信息逐一添加到一个长度为N的队列Vehicles中。这个队列的目的是方便算法获取车辆的历史信息(历史帧中发生的事)。
步骤8.1、车牌号的记录:由于车辆在某些情况下(车速太快或者车牌被遮挡)模型并不能成功识别到车牌,因此我们用一个字典来存储识别到的车牌,字典的key为车辆的编号,value则是一个列表,保存了这辆车在运动过程中曾经被成功识别到的所有车牌号。
步骤8.2、追踪ID的修正:由于追踪算法会在某些情况下丢失追踪,表现为在下一帧将一个新的ID赋给同一个物体,因此算法中当发现一个新的ID的车辆的时候,会将这个新的ID的车辆拿去和老ID的车辆对比,如果对比结果表明新ID的车辆其实和老Id的车辆为同一辆车,则将老ID都修改为这个新ID,记录车牌号的字典中的key也会同步更改。对比依据有1.车牌号;2.车辆类型;3.车辆颜色;4.车辆厂商;5.车框的相似度。
步骤9、将Vehicles队列中的车辆信息按照追踪编号进行分组。
步骤10、对每组(有着相同编号的)车辆的信息进行分析。比如Vehicles里面有3辆不同的车,那就会有三组信息,这三组信息可以并行处理。
步骤11、判断这辆车当前是否有越线行为或者这辆车曾经是否有越线行为(处于已越线状态),如果是的话,跳至步骤12,如果否的话,跳至步骤1。
步骤12、察看越线当时车辆的运动方向,如果是进场方向,跳至步骤13,如果是离场方向,跳至步骤14。
步骤13、判断此时车辆是否停稳,停稳则跳至步骤15,没停稳则跳至步骤1。
此时,判断停稳的依据为:
如果车辆的框能一直能被识别,则去看运动方向检测的结果,如果这辆车之前是拥有运动方向的,并且之后在一段时间内都保持没有运动方向,则认为车辆停稳了;
或者,如果车辆框不能被识别(车辆驶离摄像头观测空间,车辆驶入停车区域被遮挡等),并保持一定时间内不能被识别,则认为车辆停稳。
步骤14、判断此时车辆是否停稳,停稳则跳至步骤16,没停稳则跳至步骤1。
此时,判断停稳的依据为:如果车辆的框能一直能被识别,则去看运动方向检测的结果,如果这辆车之前是拥有运动方向的,并且之后在一段时间内都保持没有运动方向,则认为车辆停稳了;
或者,如果车辆框不能被识别(车辆驶离摄像头观测空间,车辆驶入停车区域被遮挡等),并保持一定时间内不能被识别,则认为车辆停稳。
步骤15、计算出每组中的1.车辆边框和停车区域的重叠度变化;2.车辆边框中心点到停车区域中心点的距离变化;3.车辆边框的下底边和停车区域下底边的垂直距离。并依据这些判断车辆是否在停车位区域内,如果在,跳至步骤17,如果不在,跳至步骤19。
步骤16、计算出每组中的1.车辆边框和停车区域的重叠度变化;2.车辆边框中心点到停车区域中心点的距离变化;3.车辆边框的下底边和停车区域下底边的垂直距离。并依据这些判断车辆是否在停车位区域内,如果在,跳至步骤19,如果不在,跳至步骤18。
此时,判断是否在停车位区域内的依据为:
如果随着时间的变化,重叠度变化符合规定的递增变化趋势,垂直距离在规定的停车区域范围内或者逐渐变为在规定的停车区域范围内,则认为车辆在停车区域;
或者,如果重叠度变化符合规定的递减变化趋势,中心点距离变化符合规定的递增变化趋势,则认为车辆不在停车区域。
步骤17、筛选出最可信的车牌,并将车辆入场信息(车牌,进入时间,停靠车位等)上报至前端客户端,跳至步骤19。
步骤18、筛选出最可信的车牌,并将车辆离场信息(车牌,离开时间,驶离车位等)上报至前端客户端,跳至步骤19。
步骤19、清空这辆车的相关信息,并跳至步骤1。
通过本实施例提供的技术方案,不需要人工进行路边停车收费,不需要其他设备,只需要一个摄像头。追踪过程中追踪ID会丢失,我们利用车辆的一些信息将不同追踪ID但实际上是同一辆的车进行匹配,修正了追踪ID。
同时,我们将line crossing detection(LC)和运动方向检测的思想利用在路边停车这一应用场景中,LC和运动方向作为停车行为分析的触发条件,未触发不会进行后续的计算,减少了运算量也减少了误上报停车行为的概率。
另外,多维度利用车辆框这一信息来判断车辆的位置,减少模型在不同时刻识别出来的同一辆车的车位框大小浮动带来的影响。
最终,在16段本地视频中测试,其中包含了33次车辆进出场行为判断,30次有效车牌识别,车辆进出场行为判定成功率为96.9%(32/33),车牌识别成功率为100%(30/30)。
- 基于高位摄像头的街区路面智慧泊车行为检测方法
- 一种基于YOLOv4改进算法的电力智慧工地违规行为检测方法