基于深度学习的斑马线礼让行人违法二次检测方法转让专利

申请号 : CN201910550547.1

文献号 : CN110321823B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 洪青阳刘俊周诚彪韦伟李万清陈教唐建斌胡程袁友伟

申请人 : 杭州诚道科技股份有限公司

摘要 :

本发明公开了一种基于深度学习的斑马线礼让行人违法二次检测方法,属于图像识别领域。本发明的基于深度学习的斑马线礼让行人违法二次检测方法其基本步骤为,读入违法图片及其车道配置信息,对驾驶机动车的行人进行判断和剔除,识别人行道内行人和车辆,再对人行道中的行人以及车辆分区域计数,最终基于计数结果进行违法判定。本方法可有效提高违法数据筛选的效率,进而达到节省人力的效果。经过该方法对礼让行人违法数据二次识别,可为人工筛选出大量违法图片。

权利要求 :

1.一种基于深度学习的斑马线礼让行人违法二次检测方法,其特征在于,步骤如下:

S1:获取由目标路口的固定摄像头拍摄的违法图像数据,其中每组违法图像数据中含有一张车辆进入人行道区域前的第一抓拍图片和一张车辆进入人行道区域后的第二抓拍图片;

S2:对该摄像头的抓拍视域中的人行道区域和车道区域进行标记,其中车道数量为N,而人行道区域被划分为N+2个子区域,每一条车道的行车路径上均对应有一个人行道子区域,剩余两个人行道子区域分别位于所有行车区域的两侧;

S3:对于任一组违法图像数据,通过目标检测模型识别两张抓拍图片中所有的行人、机动车和非机动车;然后基于行人边界框和非机动车边界框的位置关系,筛选并剔除每张抓拍图片中的驾驶非机动车的行人,得到每张图片中的行人数据和机动车数据;

S4:针对每张抓拍图片中的行人数据,获取每个行人边界框中的行人落脚点,然后将落脚点位于人行道区域外的行人进行剔除,得到每张抓拍图片的有效行人数据;所述有效行人数据中含有每个行人所站立的人行道子区域编号;

S5:针对每张抓拍图片中的机动车数据,计算每辆机动车边界框与人行道区域的重合面积,将重合面积占该机动车边界框面积比例超过第一阈值的机动车判定为驶入人行道,得到每张抓拍图片中的驶入人行道车辆数据;所述驶入人行道车辆数据中含有每辆机动车所驶入的人行道子区域编号;

S6:分别针对每组违法图像数据中每张抓拍图片的有效行人数据和驶入人行道车辆数据,对每个车道以及每个人行道子区域中的行人和车辆进行计数,获得:行人列表数据personlist1,记录有第一抓拍图片中每个人行道子区域所含的行人数量;

车辆列表数据carlist2,记录有第二抓拍图片中每个车道所含的驶入人行道的车辆数量;

行人列表数据personlist2,记录有第二抓拍图片中每个人行道子区域所含的行人数量;

S7:分别针对每组违法图像数据进行斑马线礼让行人违法识别,如果在carlist2的任意第i个车道LAi中存在驶入人行道的车辆,则根据斑马线礼让行人违法判断规则,通过personlist1和personlist2判断车辆是否在当前车道LAi正前方或者左右两侧的人行道子区域中存在行人时依然驶入人行道;若满足违法判断规则或者是否违法存疑时,对该组违法图像数据进行标记和保存,用于进行后续人工判断;

所述的步骤S7中,针对每组违法图像数据进行斑马线礼让行人违法识别的具体方法如下:

S71:读取当前违法图像数据对应的列表数据personlist1、carlist2、personlist2;

S72:判断在carlist2中是否存在ci=1,i=1,…,N,若存在则依次对每一个取值为1的ci执行S73,若不存在则判定当前违法图像数据中不存在斑马线礼让行人违法车辆;

S73:根据取值为1的ci的下标i,从personlist1中提取数据[pi-1,pi,pi+1],从personlist2中提取数据[p'i-1,p'i,p'i+1],然后进行以下判定:若[pi-1,pi,pi+1]=[1,0,0]或者[1,1,0],则[p'i-1,p'i,p'i+1]中只要p'i-1与p'i中至少存在一个取值1则判定存在斑马线礼让行人违法车辆,反之为不存在;

若[pi-1,pi,pi+1]=[0,0,1]或者[0,1,1],则[p'i-1,p'i,p'i+1]中只要p'i与p'i+1中至少存在一个取值1则判定存在斑马线礼让行人违法车辆,反之为不存在;

若[pi-1,pi,pi+1]=[0,1,0],则[p'i-1,p'i,p'i+1]中当p'i取值为1时则判定存在斑马线礼让行人违法车辆,反之为不存在;

若[pi-1,pi,pi+1]=[1,0,1]或者[1,1,1],则[p'i-1,p'i,p'i+1]中当p'i取值为1时则判定存在斑马线礼让行人违法车辆,当p'i-1、p'i和p'i+1取值全为0则不存在斑马线礼让行人违法车辆,其他情况标记为存疑;

S74:对于carlist2中每一个取值为1的ci执行完S73步骤后,若存在斑马线礼让行人违法车辆则对该组违法图像数据标记为违法,若不存在斑马线礼让行人违法车辆但具有存疑情况则对该组违法图像数据标记为存疑,其余情况则对该组违法图像数据标记为不违法。

2.如权利要求1所述的基于深度学习的斑马线礼让行人违法二次检测方法,其特征在于,所述的步骤S2中,人行道区域和车道区域的标记方法如下:S21:将该摄像头的抓拍视域中的车道区域以车道线为界进行划分,第i条车道记为LAi,车道总数为N,i=1,…,N;

S22:对于任意一条车道LAi,将其两侧的车道线进行延伸,在人行道区域中划分出一个与该车道对应的人行道子区域CRi,i=1,…,N;除了所有车道的行车区域,继续在人行道区域中靠近道路边缘一侧划分出一个人行道子区域CR0,在人行道区域中靠近道路中心线一侧划分出一个人行道子区域CRN+1。

3.如权利要求1所述的基于深度学习的斑马线礼让行人违法二次检测方法,其特征在于,所述的步骤S3中,从抓拍图片中筛选并剔除驾驶非机动车的行人的方法为:两两遍历每张抓拍图片中识别出的行人与非机动车,计算行人边界框和非机动车边界框的重叠面积,若重叠面积占行人边界框面积的比例超过第二阈值且行人边界框顶部高于非机动车边界框顶部时,判定该行人为驾驶非机动车的行人,将其作为脏数据进行剔除。

4.如权利要求1所述的基于深度学习的斑马线礼让行人违法二次检测方法,其特征在于,所述的步骤S3中,目标检测模型采用Yolo模型。

5.如权利要求1所述的基于深度学习的斑马线礼让行人违法二次检测方法,其特征在于,所述的步骤S4中,每个行人的落脚点选择该行人的边界框底边的中点。

6.如权利要求1所述的基于深度学习的斑马线礼让行人违法二次检测方法,其特征在于,所述的步骤S4中,行人落脚点是否位于人行道区域外,通过求向量叉积进行判断。

7.如权利要求1所述的基于深度学习的斑马线礼让行人违法二次检测方法,其特征在于,所述的步骤S6中,列表数据personlist1、carlist2、personlist2的获取方法如下:S61:对第一抓拍图片的有效行人数据进行读取,基于每个行人所站立的人行道子区域编号,统计每个人行道子区域中的行人数量,构建行人列表数据personlist1=[p0,p1,…,pN,pN+1],第一抓拍图片中第k个人行道子区域中存在行人时pk取值为1,反之取值为0;k范围为0~N+1;

S62:对于第二抓拍图片中的驶入人行道车辆数据进行读取,基于每辆机动车所驶入的人行道子区域编号,统计每条车道对应的人行道子区域中所驶入的车辆数量,构建车辆列表数据carlist2=[c1,…,cN],其中第i条车道对应的人行道子区域CRi中存在驶入车辆时ci取值为1,反之取值为0,i=1,…,N;

S63:对第二抓拍图片的有效行人数据进行读取,基于每个行人所站立的人行道子区域编号,统计每个人行道子区域中的行人数量,构建行人列表数据personlist2=[p'0,p'1,…,p'N,p'N+1],第二抓拍图片中第j个人行道子区域CRj中存在行人时p'j取值为1,反之取值为0,j=0,1,…,N,N+1。

8.如权利要求1所述的基于深度学习的斑马线礼让行人违法二次检测方法,其特征在于,被标记为存在斑马线礼让行人违法车辆以及被标记为存疑的违法图像数据,均发送至人工审核端,用于最终确定车辆是否存在斑马线礼让行人违法行为。

9.如权利要求1所述的基于深度学习的斑马线礼让行人违法二次检测方法,其特征在于,所述的违法图像数据直接调用已由前端的礼让行人违法抓拍设备抓拍到的违法图像。

说明书 :

基于深度学习的斑马线礼让行人违法二次检测方法

技术领域

[0001] 本发明属于深度学习领域,具体涉及到一种基于深度学习的斑马线礼让行人违法二次检测方法。

背景技术

[0002] 斑马线是行人过街的安全线,机动车礼让斑马线折射的是对生命的尊重,彰显的是城市文明。近三年来全国共在斑马线上发生机动车与行人的交通事故1.4万起,造成3898人死亡;从统计情况看,机动车未按规定让行导致的事故占了全国事故的90%。
[0003] 今年以来,全国共查处不礼让斑马线违法行为同比上升3.4倍,因不礼让斑马线造成人员伤亡的事故起数、死亡人数同比分别下降18%和9.39%由此不难看出,斑马线秩序关乎生命安全,整治行动可以有效提升行人和非机动车通行的安全系数,是一项城市管理者必须高度重视的安全工程、民心工程。目前交通部门也出台了礼让行为新规,对于不礼让行为处以扣3分罚款50元的处罚。进而有效降低交通事故。但是由于目前前端违法监控摄像头的技术不足,往往存在许多错拍情况。这样一来在违法监控抓拍后达到交通中心的数据往往需要人工筛选出确实违法的与错拍的数据,这无疑需要巨大的人力物力。而且人工筛选往往存在许多客观因素,同时也难免出错。因此,有必要提出一种基于深度学习的礼让行人违法行为二次识别检测方法。

发明内容

[0004] 本发明的目的在于解决现有技术存在的问题,并提供一种基于深度学习的斑马线礼让行人违法二次检测方法。该方法可有效减轻相关人员的工作量,并且能够提高违法数据的准确率防止人为过失。
[0005] 本发明所采用的具体技术方案如下:
[0006] 一种基于深度学习的斑马线礼让行人违法二次检测方法,其步骤如下:
[0007] S1:获取由目标路口的固定摄像头拍摄的违法图像数据,其中每组违法图像数据中含有一张车辆进入人行道区域前的第一抓拍图片和一张车辆进入人行道区域后的第二抓拍图片;
[0008] S2:对该摄像头的抓拍视域中的人行道区域和车道区域进行标记,其中车道数量为N,而人行道区域被划分为N+2个子区域,每一条车道的行车路径上均对应有一个人行道子区域,剩余两个人行道子区域分别位于所有行车区域的两侧;
[0009] S3:对于任一组违法图像数据,通过目标检测模型识别两张抓拍图片中所有的行人、机动车和非机动车;然后基于行人边界框和非机动车边界框的位置关系,筛选并剔除每张抓拍图片中的驾驶非机动车的行人,得到每张图片中的行人数据和机动车数据;
[0010] S4:针对每张抓拍图片中的行人数据,获取每个行人边界框中的行人落脚点,然后将落脚点位于人行道区域外的行人进行剔除,得到每张抓拍图片的有效行人数据;所述有效行人数据中含有每个行人所站立的人行道子区域编号;
[0011] S5:针对每张抓拍图片中的机动车数据,计算每辆机动车边界框与人行道区域的重合面积,将重合面积占该机动车边界框面积比例超过第一阈值的机动车判定为驶入人行道,得到每张抓拍图片中的驶入人行道车辆数据;所述驶入人行道车辆数据中含有每辆机动车所驶入的人行道子区域编号;
[0012] S6:分别针对每组违法图像数据中每张抓拍图片的有效行人数据和驶入人行道车辆数据,对每个车道以及每个人行道子区域中的行人和车辆进行计数,获得:
[0013] 行人列表数据personlist1,记录有第一抓拍图片中每个人行道子区域所含的行人数量;
[0014] 车辆列表数据carlist2,记录有第二抓拍图片中每个车道所含的驶入人行道的车辆数量;
[0015] 行人列表数据personlist2,记录有第二抓拍图片中每个人行道子区域所含的行人数量;
[0016] S7:分别针对每组违法图像数据进行斑马线礼让行人违法识别,如果在carlist2的任一个车道LAi中存在驶入人行道的车辆,则根据斑马线礼让行人违法判断规则,通过personlist1和personlist2判断车辆是否在当前车道LAi正前方或者左右两侧的人行道子区域中存在行人时依然驶入人行道;若满足违法判断规则或者是否违法存疑时,对该组违法图像数据进行标记和保存,用于进行后续人工判断。
[0017] 在上述方案的基础上,各步骤的具体参数和做法可采用如下优选方式实现。
[0018] 作为优选,所述的步骤S2中,人行道区域和车道区域的标记方法如下:
[0019] S21:将该摄像头的抓拍视域中的车道区域以车道线为界进行划分,第i条车道记为LAi,车道总数为N,i=1,…,N;
[0020] S22:对于任意一条车道LAi,将其两侧的车道线进行延伸,在人行道区域中划分出一个与该车道对应的人行道子区域CRi,i=1,…,N;除了所有车道的行车区域两侧,继续在人行道区域中靠近道路边缘一侧划分出一个人行道子区域CR0,在人行道区域中靠近道路中心线一侧划分出一个人行道子区域CRN+1。
[0021] 作为优选,所述的步骤S3中,从抓拍图片中筛选并剔除驾驶非机动车的行人的方法为:两两遍历每张抓拍图片中识别出的行人与非机动车,计算行人边界框和非机动车边界框的重叠面积,若重叠面积占行人边界框面积的比例超过第二阈值且行人边界框顶部高于非机动车边界框顶部时,判定该行人为驾驶非机动车的行人,将其作为脏数据进行剔除。
[0022] 作为优选,所述的步骤S3中,目标检测模型采用Yolo模型。
[0023] 作为优选,所述的步骤S4中,每个行人的落脚点选择该行人的边界框底边的中点。
[0024] 作为优选,所述的步骤S4中,行人落脚点是否位于人行道区域外,通过求向量叉积进行判断。
[0025] 作为优选,所述的步骤S6中,列表数据personlist1、carlist2、personlist2的获取方法如下:
[0026] S61:对第一抓拍图片的有效行人数据进行读取,基于每个行人所站立的人行道子区域编号,统计每个人行道子区域中的行人数量,构建行人列表数据personlist1=[p0,p1,…,pN,pN+1],第一抓拍图片中第k个人行道子区域中存在行人时pk取值为1,反之取值为0;
[0027] S62:对于第二抓拍图片中的驶入人行道车辆数据进行读取,基于每辆机动车所驶入的人行道子区域编号,统计每条车道对应的人行道子区域中所驶入的车辆数量,构建车辆列表数据carlist2=[c1,…,cN],其中第i条车道对应的人行道子区域CRi中存在驶入车辆时ci取值为1,反之取值为0,i=1,…,N;
[0028] S63:对第二抓拍图片的有效行人数据进行读取,基于每个行人所站立的人行道子区域编号,统计每个人行道子区域中的行人数量,构建行人列表数据personlist2=[p'0,p'1,…,p'N,p'N+1],第二抓拍图片中第j个人行道子区域CRj中存在行人时p'j取值为1,反之取值为0,j=0,1,…,N,N+1。
[0029] 作为优选,所述的步骤S7中,针对每组违法图像数据进行斑马线礼让行人违法识别的具体方法如下:
[0030] S71:读取当前违法图像数据对应的列表数据personlist1、carlist2、personlist2;
[0031] S72:判断在carlist2中是否存在ci=1,i=1,…,N,若存在则依次对每一个取值为1的ci执行S73,若不存在则判定当前违法图像数据中不存在斑马线礼让行人违法车辆;
[0032] S73:根据取值为1的ci的下标i,从personlist1中提取数据[pi-1,pi,pi+1],从personlist2中提取数据[p'i-1,p'i,p'i+1],然后进行以下判定:
[0033] 若[pi-1,pi,pi+1]=[1,0,0]或者[1,1,0],则[p'i-1,p'i,p'i+1]中只要p'i-1与p'i中至少存在一个取值1则判定存在斑马线礼让行人违法车辆,反之为不存在;
[0034] 若[pi-1,pi,pi+1]=[0,0,1]或者[0,1,1],则[p'i-1,p'i,p'i+1]中只要p'i与p'i+1中至少存在一个取值1则判定存在斑马线礼让行人违法车辆,反之为不存在;
[0035] 若[pi-1,pi,pi+1]=[0,1,0],则[p'i-1,p'i,p'i+1]中当p'i取值为1时则判定存在斑马线礼让行人违法车辆,反之为不存在;
[0036] 若[pi-1,pi,pi+1]=[1,0,1]或者[1,1,1],则[p'i-1,p'i,p'i+1]中当p'i取值为1时则判定存在斑马线礼让行人违法车辆,当p'i-1、p'i和p'i+1取值全为0则不存在斑马线礼让行人违法车辆,其他情况标记为存疑;
[0037] S74:对于carlist2中每一个取值为1的ci执行完S73步骤后,若存在斑马线礼让行人违法车辆则对该组违法图像数据标记为违法,若不存在斑马线礼让行人违法车辆但具有存疑情况则对该组违法图像数据标记为存疑,其余情况则对该组违法图像数据标记为不违法。
[0038] 作为优选,被标记为存在斑马线礼让行人违法车辆以及被标记为存疑的违法图像数据,均发送至人工审核端,用于最终确定车辆是否存在斑马线礼让行人违法行为。
[0039] 作为优选,所述的违法图像数据直接调用已由前端的礼让行人违法抓拍设备抓拍到的违法图像。
[0040] 本发明相对于现有技术而言,具有以下有益效果:本发明可对固定摄像头拍摄的违法图像数据进行自动检测,从而从中提取出明确存在或者可能存在斑马线礼让行人违法车辆的图像数据。利用该方法对人工筛选的数据进行测试,结果表明人工确认违法的数据,该方法也都能够判定为违法数据;人工确认不违法的数据,该方法可判定出90%的数据为不违法,仅有10%的错误。因此使用本方法可有效提高违法数据筛选的效率,进而达到节省人力的效果。经过该方法对礼让行人违法数据二次识别,可为人工筛选出大量违法图片。

附图说明

[0041] 图1为本发明的流程图;
[0042] 图2为一实施例中车辆进入人行道区域前的第一抓拍图片;
[0043] 图3为一实施例中车辆进入人行道区域后的第二抓拍图片;
[0044] 图4为本实施例中2车道路口的车道和人行道划分示意图;
[0045] 图5为识别出的驾驶摩托车的行人脏数据;
[0046] 图6为检测出来的行人区域;
[0047] 图7为检测出来的行人和机动车辆;
[0048] 图8为检测出来的进入人行道区域的行人边界框和机动车辆边界框;
[0049] 图9为另一实施例中1车道路口的车道和人行道划分示意图;
[0050] 图10为另一实施例中1车道路口车辆进入人行道区域前的第一抓拍图片;
[0051] 图11为另一实施例中1车道路口车辆进入人行道区域后的第二抓拍图片。

具体实施方式

[0052] 下面结合附图和具体实施方式对本发明做进一步阐述和说明。本发明中各个实施方式的技术特征在没有相互冲突的前提下,均可进行相应组合。
[0053] 如图1所示,本发明的基于深度学习的斑马线礼让行人违法二次检测方法其基本步骤为,读入违法图片及其车道配置信息,对驾驶机动车的行人进行判断和剔除,识别人行道内行人和车辆,再对人行道中的行人以及车辆分区域计数,最终基于计数结果进行违法判定。下面通过实施例来具体说明其实现的过程。
[0054] 在本实施例中,基于深度学习的斑马线礼让行人违法二次检测方法,主要用于对固定摄像头拍摄的违法图像数据进行初步筛选,排除明显不存在违法行为的图像数据,以减少人工审核识别的工作量。目前城市中已大量安装电子眼等违法抓拍设备,其中部分设备具有礼让行人违法抓拍功能,可以初步抓拍得到车辆未礼让行人的违法图像证据。但由于目前前端违法监控摄像头的技术不足,往往存在许多错拍情况,因此本发明的方法可以直接调用已由前端的礼让行人违法抓拍设备抓拍到的违法图像,对其进行二次检测,筛除脏数据。
[0055] 基于深度学习的斑马线礼让行人违法二次检测方法的具体步骤如下:
[0056] S1:获取由目标路口的摄像头拍摄的违法图像数据,其中每组违法图像数据中含有一张车辆进入人行道区域前的第一抓拍图片和一张车辆进入人行道区域后的第二抓拍图片。
[0057] 本实施例中的摄像头采用固定的定点摄像头,其安装位置、拍摄角度、拍摄参数均保持相同,由此保证拍摄图像中除了车辆之外的背景(包括车道线位置)也保持相同。如图2与图3所示,为本实施例中导入同一卡口号的其中一组违法数据(即为前端违法抓拍摄像头抓拍的违法数据),由两张违法图片组成,图2为车辆进入人行道区域前的第一抓拍图片,图3为车辆进入人行道区域后的第二抓拍图片。
[0058] S2:对该摄像头的抓拍视域(即被摄像头的传感器捕获的图像范围)中的人行道区域和车道区域进行标记,由于摄像头位置长期不会变动,故针对统一卡口的摄像头仅需标记一次,就能够对此摄像头下抓拍的违法数据进行二次检测识别,如果摄像头因为检修等原因出现了移动则需要重新进行标记。其中若该路口的车道数量为N,那么人行道区域需要划分为N+2个子区域,每一条车道的行车路径上均对应有一个人行道子区域,剩余两个人行道子区域分别位于所有行车区域的两侧。人行道区域和车道区域的标记方法的基本过程如下:
[0059] S21:将该摄像头的抓拍视域中的车道区域以车道线为界进行划分,第i条车道记为LAi,车道总数为N,i=1,…,N;
[0060] S22:对于任意一条车道LAi,将其两侧的车道线进行延伸,在人行道区域中划分出一个与该车道对应的人行道子区域CRi,i=1,…,N。除了所有车道的行车区域两侧,继续在人行道区域中靠近道路边缘(路沿位置)一侧划分出一个人行道子区域CR0,在人行道区域中靠近道路中心线(双黄线或者单黄线)一侧划分出一个人行道子区域CRN+1。其中CR0代表行人尚未开始穿越斑马线或刚站在斑马线起始位置时的区域,CRN+代表行人已经越过一个方向的所有车道准备进入对向车道对应人行道时所处的区域,大概位于两个方向的车道中心分界线的两侧,处于这两个区域时机动车也应当进行礼让。
[0061] 在本实施例中,以图4的2车道路口为例,在实际标记时,可首先将人行道区域用不规则四边形标记出(顶点为四个点:x1,x5,x6,x10),图像中人行道区域的上边界和下边界分别为路口的两条停止线,左侧边界为道路的左侧边缘路沿,右侧边界为中心双黄线。然后再将人行区域按照车道的延长线进行划分,同时预留车道旁的人行道子区域CR0和CRN+1。图4中共有2条车道,因此人行道区域划分为四个区域,故需六个点:x2,x3,x4,x7,x8,x9进行划分。最终标记后的人行道区域和车道区域如图4。其中区域1对应CR0,区域2和3分半对应2条车道,区域4对应CRN+1。
[0062] 至此我们得到了两张违法图像数据以及车道、人行道配置信息(即图4所示标记得到的10个点坐标信息),就能够通过本发明方法对礼让行人违法数据进行识别判定了。
[0063] S3:对于任一组违法图像数据,通过目标检测模型识别两张抓拍图片中所有的行人、机动车和非机动车。本实施例中载入的目标检测模型为Yolo模型,对Yolo模型进行调整使得其能够识别出我们需要的3种目标类别,即:行人、非机动车、机动车以及它们的位置信息(bounding box,边界框)。
[0064] 然后基于行人边界框和非机动车边界框的位置关系,筛选并剔除每张抓拍图片中的驾驶非机动车的行人,得到每张图片中的行人数据和机动车数据;
[0065] 通过前一步我们能够得到图片中所有的行人、机动车、非机动车的位置信息。依照礼让行人违法规定,机动车不需要礼让骑有非机动车的行人。故而使用目标检测模型识别出的行人会存在骑行行人,我们称之为行人脏数据(如图所示5的骑着摩托车的行人数据)。虽然目标检测模型是不能识别出驾驶机动车的行人,但是可以分别识别出机动车及行人,故而可基于行人边界框和非机动车边界框的位置关系进行判定,符合区域范围则判定为前面所提的脏数据,该行人数据无效,不作最终违法判定。本实施例中脏数据的去除,即从抓拍图片中筛选并剔除驾驶非机动车的行人的方法为:两两遍历每张抓拍图片中识别出的行人与非机动车,计算行人边界框和非机动车边界框的重叠面积,若重叠面积占行人边界框面积的比例超过阈值A且行人边界框顶部高于非机动车边界框顶部时,判定该行人为驾驶非机动车的行人,将其作为脏数据进行剔除。阈值A的具体取值可以根据实际进行调整优化,此处优选为50%,由此将图5中驾驶摩托车的行人数据进行剔除。
[0066] 通过本步骤已经检测出行人及其位置信息,并且筛选出骑行行人,得到了整张违法图片中真正的行人数据,每个行人记为person(left1,top1,right1,bottom1),(left1,top1)为该行人边界框的左上角顶点坐标,(right1,bottom1)为该行人边界框的右下角顶点坐标。但是由于行人数据为整张图片中的数据,部分行人并不在人行道区域内,因此需进一步对行人数据进行筛选,找出人行道区域(图4中x1,x5,x6,x10四点围成的区域)内的行人数据。
[0067] 同样的,本步骤中也得到了整张违法图片中车辆位置信息,每辆车辆记为car(left2,top2,right2,bottom2),(left2,top2)为该车辆边界框的左上角顶点坐标,(right2,bottom2)为该车辆边界框的右下角顶点坐标。
[0068] S4:由于检测出来的行人区域(如图6与7)是不规则的,如果使用行人进入人行道面积占检测出行人标定框面积的比例作为判定依据,显然不符合常理。针对此类情况,如何判定该行人是否在人行道内,本方法使用只取用目标检测模型中检测到的行人坐标数据(left1,top1,right1,bottom1)中的c点(定义为行人的落脚点),将c点代替行人位置判定是否在人行道区域内,如若在则存入,不在则剔除。每个行人的落脚点选择该行人的边界框底边的中点,即(left1+right1/2,bottom)点。具体做法为:
[0069] 针对每张抓拍图片中的行人数据,获取每个行人边界框中的行人落脚点,然后将落脚点位于人行道区域外的行人进行剔除,得到每张抓拍图片的有效行人数据。行人落脚点是否位于人行道区域外,可通过多种方式进行判断,其中一种方式是通过求向量叉积进行判断,判定原理为凸多边形内部的点都在凸多边形的边所在的向量的同一侧,利用求叉积:
[0070] 假设四边形四个顶点依次为A(x1,y1),B(x2,y2),C(x3,y3),D(x4,y4),需要判断的点为P(x,y),如果点P在四边形内部,则向量AB*AP(这就是求叉积,也就等于(x2-x1)*(y-y1)-(y2-y1)*(x-x1))的值与BC*BP、CD*CP、DA*DP的值同号(若有等于零的情况,则表示P在边上)。即四个值同为正或同为负,则点P在ABCD内部,否则在外部。
[0071] 经过本步骤,即可剔除没有站立于人行道区域的行人,保留最终真正站立于人行道区域的行人,这些行人是准备过马路或者正在过马路的行人,机动车需要对其进行礼让。为了后续统计方便,本步骤中保存的有效行人数据中需要记录每个行人所站立的人行道子区域编号,以及行人的边界框等数据。
[0072] S5:由于S3中得到的车辆数据为整张图片中的数据,需对车辆数据进行筛选,找出驶入人行道区域内(图4中x1,x5,x6,x10围成区域)的车辆数据。可以将车辆位置信息代入人行道区域内,判断是否进入人行道,进入人行道则保留该车辆数据,否则去除该车辆数据。但是不同的是,车辆已经不能按照行人进入人行道内的方法判定了。由于车和人的定位是存在较大差异的,故而用行人数据的“落脚点”来判断车辆是否进入人行道是不和逻辑的。因此在这里采用车辆驶入人行道面积判断车辆是否进入人行道区域,具体做法为:
[0073] 针对每张抓拍图片中的机动车数据,计算每辆机动车边界框与人行道区域的重合面积,将重合面积占该机动车边界框面积比例超过阈值B的机动车判定为驶入人行道,得到每张抓拍图片中的驶入人行道车辆数据。阈值B的具体取值可以根据实际进行调整优化,此处优选为30%,当车辆与人行道重叠面积占车辆的边界框面积超过30%则认定为车辆进入了人行道。按照此判定规则,对驶入人行道的车辆数据保留,未驶入则去除。由此将图8上方的三辆车进行了剔除。
[0074] 为了后续统计方便,驶入人行道车辆数据中含有每辆机动车所驶入的人行道子区域编号,该人行道子区域对应的车道编号以及机动车的边界框等数据。
[0075] S6:分别针对每组违法图像数据中每张抓拍图片的有效行人数据和驶入人行道车辆数据,对每个车道以及每个人行道子区域中的行人和车辆进行计数,获得三种列表数据,分别为:
[0076] 行人列表数据personlist1,该列表中记录有第一抓拍图片中每个人行道子区域所含的行人数量;
[0077] 车辆列表数据carlist2,该列表中记录有第二抓拍图片中每个车道所含的驶入人行道的车辆数量;
[0078] 行人列表数据personlist2,该列表中记录有第二抓拍图片中每个人行道子区域所含的行人数量;
[0079] 上述列表数据personlist1、carlist2、personlist2的获取方法如下:
[0080] S61:对第一抓拍图片的有效行人数据进行读取,基于每个行人所站立的人行道子区域编号,统计每个人行道子区域中的行人数量,构建行人列表数据personlist1=[p0,p1,…,pN,pN+1],第一抓拍图片中第k个人行道子区域中存在行人时pk取值为1,反之取值为0;
[0081] S62:对于第二抓拍图片中的驶入人行道车辆数据进行读取,基于每辆机动车所驶入的人行道子区域编号,统计每条车道对应的人行道子区域中所驶入的车辆数量,构建车辆列表数据carlist2=[c1,…,cN],其中第i条车道对应的人行道子区域CRi中存在驶入车辆时ci取值为1,反之取值为0,i=1,…,N;
[0082] S63:对第二抓拍图片的有效行人数据进行读取,基于每个行人所站立的人行道子区域编号,统计每个人行道子区域中的行人数量,构建行人列表数据personlist2=[p'0,p'1,…,p'N,p'N+1],第二抓拍图片中第j个人行道子区域CRj中存在行人时p'j取值为1,反之取值为0,j=0,1,…,N,N+1。
[0083] 以图4的路口为例,在本实施例中,将人行道区域划分出区域1、区域2、区域3和区域4。因此按照行人、车辆进入人行道的规则对车辆数据划分为区域2和区域3,分别进行计数,也就是将驶入人行道车辆数据分成两组,用carlist=[c1,c2]表示,c1,c2取值为0或1。如若区域2存在车辆则c1取值为1,若区域2不存在车辆c1取值为0。同样的,若区域3存在车辆则c2取值为1,若区域3不存在车辆c2取值为0。同理有效行人数据划分为区域1、区域2、区域3和区域4,第一张抓拍图片用personlist1=[p0,p1,p2,p3]表示,第二张抓拍图片用personlist2=[p'0,p'1,p'2,p'3]表示,p0,p1,p2,p3,p'0,p'1,p'2,p'3取值为0或1,1表示该人行道子区域存在行人,0则为不存在。经过前述处理后,对于一组违法图像数据(两张违法图片)得到以下数据:第一张图片的(carlist1,personlist1),第二张图片的(carlist2,personlist2)。其中carlist1和carlist2是长度为2的一维列表,personlist1和personlist2是长度为4的一维列表。当然,在后续的判定过程中,carlist1实际并未用到。
[0084] S7:分别针对每组违法图像数据进行斑马线礼让行人违法识别,如果在carlist2的任一个车道LAi中存在驶入人行道的车辆,则根据斑马线礼让行人违法判断规则,通过personlist1和personlist2判断车辆是否在当前车道LAi正前方或者左右两侧的人行道子区域中存在行人时依然驶入人行道;若满足违法判断规则或者是否违法存疑时,对该组违法图像数据进行标记和保存,用于进行后续人工判断。
[0085] 针对每组违法图像数据进行斑马线礼让行人违法识别的具体方法,可以通过如下子步骤实现:
[0086] S71:读取当前违法图像数据对应的列表数据personlist1、carlist2、personlist2;
[0087] S72:判断在carlist2中是否存在ci=1,i=1,…,N,若存在则依次对每一个取值为1的ci执行S73,若不存在则判定当前违法图像数据中不存在斑马线礼让行人违法车辆;
[0088] S73:根据取值为1的ci的下标i,从personlist1中提取数据[pi-1,pi,pi+1],从personlist2中提取数据[p'i-1,p'i,p'i+1],然后进行以下判定:
[0089] 若[pi-1,pi,pi+1]=[1,0,0]或者[1,1,0],则[p'i-1,p'i,p'i+1]中只要p'i-1与p'i中至少存在一个取值1则判定存在斑马线礼让行人违法车辆,反之为不存在;
[0090] 若[pi-1,pi,pi+1]=[0,0,1]或者[0,1,1],则[p'i-1,p'i,p'i+1]中只要p'i与p'i+1中至少存在一个取值1则判定存在斑马线礼让行人违法车辆,反之为不存在;
[0091] 若[pi-1,pi,pi+1]=[0,1,0],则[p'i-1,p'i,p'i+1]中当p'i取值为1时则判定存在斑马线礼让行人违法车辆,反之为不存在;
[0092] 若[pi-1,pi,pi+1]=[1,0,1]或者[1,1,1],则[p'i-1,p'i,p'i+1]中当p'i取值为1时则判定存在斑马线礼让行人违法车辆,当p'i-1、p'i和p'i+1取值全为0则不存在斑马线礼让行人违法车辆,其他情况标记为存疑;
[0093] S74:对于carlist2中每一个取值为1的ci执行完S73步骤后,若存在斑马线礼让行人违法车辆则对该组违法图像数据标记为违法,若不存在斑马线礼让行人违法车辆但具有存疑情况则对该组违法图像数据标记为存疑,其余情况则对该组违法图像数据标记为不违法。
[0094] 由于当路口的车道数量不同时,其判定过程存在差异。为了更容易理解,我们在图4的双车道路口基础上,再引入另一个仅有一个车道的路口图像,如图9所示。对于该路口的违法图像数据,我们可以得到第一张图片的personlist1,第二张图片的carlist2,personlist2。其中carlist2=[c1]是长度为1的一维列表(c1为1表明车道前方的人行道子区域内存在车辆,0表示不存在),personlist1=[p0,p1,p2]和personlist2=[p'0,p'1,p'2]是长度为3的一维列表。
[0095] A.首先我们讨论对于一车道(违法数据中只有1个车道,图9)的违法数据:
[0096] 根据斑马线礼让行人违法判定规则:第一张违法图片中当机动车进入摄像头抓拍区域,如果该机动车位于该车道内或给车道内相邻车道内存在行人。那么在第二张违法图片中抓拍到违法车辆进入人行道并且行人未通过该违法车辆所在车道,并且行人仍在原来车道内,则该车辆违法。如图10和图11所示的一组违法数据按照该规则应当判定为存在违法车辆。
[0097] 利用本发明的步骤S7的方法进行分析步骤如下:
[0098] 1.当carlist2即第二张违法图片中人行道区域存在违法车辆,c1取值为1,则对personlist1和personlist2进行分析进入第2步,反之则分析为不存在违法车辆。
[0099] 2.根据personlist1=[p0,p1,p2]和personlist2=[p'0,p'1,p'2]中的各元素取值进行判定:
[0100] 当pesonlist1中数据为[1,0,0]或者[1,1,0],那么personlist2=[p'0,p'1,p'2]中数据只要p'0与p'1中取值至少存在一个1则判定存在斑马线礼让行人违法车辆,反之为不存在斑马线礼让行人违法车辆。
[0101] 当pesonlist1中数据为[0,0,1]或者[0,1,1],那么personlist2=[p'0,p'1,p'2]中数据只要p'1与p'2中取值至少存在一个1则判定存在斑马线礼让行人违法车辆,反之为不存在斑马线礼让行人违法车辆。
[0102] 当pesonlist1中数据为[0,1,0],那么personlist2=[p'0,p'1,p'2]中数据只有当p'1取值仍为1则判定存在斑马线礼让行人违法车辆,反之为不存在斑马线礼让行人违法车辆。
[0103] 当pesonlist1中数据为[1,0,1],那么personlist2=[p'0,p'1,p'2]中数据只有当p'1取值仍为1则判定存在斑马线礼让行人违法车辆,当p'0,p'1,p'2中取值全为0则不存在斑马线礼让行人违法车辆,其他情况为存疑。
[0104] 当pesonlist1中数据为[1,1,1],那么personlist2=[p'0,p'1,p'2]中数据只有当p'1取值仍为1则判定存在斑马线礼让行人违法车辆,当p'0,p'1,p'2中取值全为0则不存在斑马线礼让行人违法车辆,其他情况为存疑。
[0105] 3.经过第1步、第2步我们就能够得到该组抓拍数据中是否存在违法车辆,对于存疑的车辆可通过人工进行进一步核实判断。
[0106] B.根据一车道判定方法原理,可以得到多车道判定方法。下面以图4中的二车道为例进行说明:
[0107] 根据前述的步骤,我们得到了第一张图片的personlist1=[p0,p1,p2,p3],第二张图片的carlist2=[c1,c2],personlist2=[p'0,p'1,p'2,p'3]。其中carlist2是长度为2的一维列表,personlist1和personlist2是长度为4的一维列表。
[0108] 利用本发明的步骤S7的方法进行分析步骤如下:
[0109] 1.当carlist2为[1,0]或[0,1]或[1,1]时,则对personlist1和personlist2进行分析进入第2步,反之则分析为不存在违法车辆。
[0110] 2.根据carlist2=[c1,c2]中的各元素取值进行判定:
[0111] 当carlist2为[1,0]或[0,1],则将personlist1=[p0,p1,p2,p3],personlist2=[p'0,p'1,p'2,p'3]拆分为1车道数据:若carlist2为[1,0]时取personlist1和personlist2的前3条数据personlist1=[p0,p1,p2],personlist2=[p'0,p'1,p'2]代入前述1车道判定方法中判断。同理当carlist2为[0,1],即取personlist1和personlist2的后3条数据personlist1=[p1,p2,p3],personlist2=[p'1,p'2,p'3]代入,以此判断是否存在违法。
[0112] 3.当carlist2为[1,1],同样将personlist1=[p0,p1,p2,p3],personlist2=[p'0,p'1,p'2,p'3]拆分为1车道数据:
[0113] 先取personlist1和personlist2的前3条数据代入1车道判定方法中,判断得到是否违法的判定结果zq1(取值分三种:0-违法,1-不违法,2-存疑)。
[0114] 然后再取personlist1和personlist2的后3条数据代入1车道判定方法中,判断得到是否违法的判定结果zq2(取值分三种:0-违法,1-不违法,2-存疑)。
[0115] 当zq1或zq2中存在一个取值1则为违法;当zq1或zq2中存在一个取值2,不存在取值1则存疑;其余情况不违法。
[0116] 当然,若路口存在比两车道更多的车道,也基于相同的原理进行判断。
[0117] 被标记为存在斑马线礼让行人违法车辆以及被标记为存疑的违法图像数据,均需要发送至人工审核端,用于最终确定车辆是否存在斑马线礼让行人违法行为。
[0118] 为了测试本发明的检测准确性,将本发明的上述方法应用于已经经过人工判断的数据集中。结果表明,对于人工确认违法的图像数据,该方法也都能够将其判定为违法数据;对于人工确认不违法的图像数据,该方法将会判定出90%的图像数据为不违法,仅有10%的错误。因此,使用本方法进行筛选后,后续的人工判定仅需要对本发明的判定结果进行进一步确认,从中排出判定错误的结果,这将有效提高违法数据筛选的效率,进而达到节省人力的效果。
[0119] 以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。