识别车道的方法、装置及计算设备与流程

文档序号:24155784发布日期:2021-03-05 11:33阅读:187来源:国知局
识别车道的方法、装置及计算设备与流程
识别车道的方法、装置及计算设备
[0001]
本申请要求于2019年08月28日提交的申请号为201910804345.5、发明名称为“一种识别视频中的车道线的方法、装置及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
[0002]
本申请涉及智能交通(intelligent transportation)技术领域,特别涉及一种识别车道的方法、装置及计算设备。


背景技术:

[0003]
随着智能交通的发展,当前常采用大量监控设备对交通道路的交通状态进行监控,进而根据监控设备记录的视频对交通道路的交通状态进行分析和调控。在使用监控设备记录的视频对交通状态进行分析和调控时,通常需要获得交通道路上的车道线在每个监控设备拍摄的视频中的位置,进而确定视频中的车道的位置。根据视频中的车道的位置,可以进行交通事件分析,例如,进行交通流量分析、交通违法违规事件确定等。确定视频中车道的位置的准确性直接影响后续交通事件和交通流量分析的准确性,所以需要一种准确性较高的确定方式。
[0004]
相关技术中,人工预先观察每个摄像头拍摄的视频图像,在每个摄像头拍摄的视频图像中标出车道线在视频中的位置(即根据视频画面预先确定车道线在每个摄像头拍摄的视频中的像素位置),系统对人工标记的车道线在视频中的位置进行存储。在后续交通事件的分析过程中,可在获取到监控设备拍摄的视频后,根据人工预先标定的车道在视频中的位置,确定交通事件等。然而在某些情况下(如监控设备的拍摄角度发生变化的情况),由于并不能及时地发现监控设备的拍摄角度已经发生变化,所以再将人工标定的车道应用于拍摄角度变化后拍摄的视频中时,会导致视频中标定的车道与当前车道在视频中的实际位置不重合,进而导致交通事件分析结果也不准确。


技术实现要素:

[0005]
本申请提供了一种识别车道的方法、装置及计算设备,用以动态的对视频中的车道进行识别,提高识别车道的准确性。
[0006]
第一方面,本申请提供了一种识别车道的方法,该方法可以由识别装置执行。具体的,识别装置可以获取设置于交通道路的监控设备拍摄的视频,视频中记录了交通道路上经过监控设备的拍摄范围的车辆。然后识别装置将视频输入至车辆检测模型,获得每个车辆在视频的多个视频帧中的位置(该位置为车辆在视频帧中的像素位置)。识别装置使用每个车辆在视频的多个视频帧中的位置,确定出每个车辆在视频中的行车轨迹。然后识别装置使用多个车辆在视频中的行车轨迹,识别出视频中的至少一条车道。
[0007]
上述方法可以动态地根据视频确定出视频中的车道,而不需要人工预先通过观察视频图像确定视频中的车道。即使监控设备的拍摄角度发生变化,识别装置也可以更为及
时地获取角度变化后的视频中的车道,进而可以提升交通事件分析结果的准确性。
[0008]
一种可能的实现方式中,识别装置可以将视频输入至车辆类型检测模型,获得视频中每个车辆的类型,车辆的类型可以包括公交车、小汽车、大客车等。识别装置可以确定每个车道中包括的行车轨迹,然后对于识别出的任一车道,识别装置可以使用每个车道包括的行车轨迹和该车道包括的行车轨迹所属的车辆的类型,确定出该车道的行驶类型。对于任一车道,该车道的行驶类型用于指示该车道上可以行驶的车辆的类型。
[0009]
这样,进一步识别出视频中已识别车道的行驶类型,为判定车辆是否在自身所能行驶的车道上行驶提供参考。
[0010]
一种可能的实现方式中,识别装置获取的视频为进入路口之前的视频,监控设备拍摄的交通道路包括路口,识别装置可以获取监控设备拍摄的延长视频,该延长视频为监控设备在拍摄视频的后一段时间拍摄的视频,那么延长视频为车辆经过路口的视频。识别装置可以将延长视频输入至车辆检测模型,获得每个车辆在延长视频的多个视频帧中的位置。识别装置使用每个车辆在延长视频的多个视频帧中的位置,确定出每个车辆在视频中的行车轨迹。然后识别装置可以根据多个车辆的在延长视频中的行车轨迹所属车辆的属性(如车牌号码)和视频中已获得的行车轨迹所属车辆的属性,确定属于同一车辆的行车轨迹。识别装置将属于同一车辆的行车轨迹中,车辆在路口的行车轨迹确定为视频中已获得的行车轨迹的延长行车轨迹。然后识别装置根据多个车辆在视频中的行车轨迹和多个车辆在延长视频中的延长行车轨迹,确定每条车道的属性。
[0011]
每条车道的属性可以包括以下属性中的任意一种及其组合:右转车道、左转车道、直行车道、右转直行车道、左转直行车道和混合车道。右转车道为仅用于车辆向右转弯的车道;左转车道为仅用于车辆向左转弯的车道;直行车道为仅用于车辆朝前方行驶的车道;右转直行车道为用于车辆向右转弯和朝前行驶的车道;左转直行车道为用于车辆向左转弯和朝前行驶的车道;混合车道为用于车辆向右转弯、向左转弯和朝前行驶的车道。
[0012]
这样,识别出车道的属性,可以为判定车辆经过路口时是否在正确的车道上行驶提供参考。
[0013]
一种可能的实现方式中,对于视频中的任意一条行车轨迹,假设该行车轨迹为第一车辆的行车轨迹,识别装置可以确定第一车辆的行车轨迹与已识别的车道中距离最近的车道,即获取第一车辆的行车轨迹的相邻车道。然后识别装置确定第一车辆的行车轨迹与该相邻车道的距离,判断该距离与第一车辆在视频中的像素宽度(简称为第一车辆的像素宽度)的大小。若第一车辆的行车轨迹与该相邻车道的距离大于第一车辆的像素宽度,则识别装置可以根据第一车辆的行车轨迹确定一条新的车道,该新的车道为视频中识别出的一条车道。另外,若第一车辆的行车轨迹与该相邻车道的距离小于或等于第一车辆的像素宽度,则识别装置可以确定第一车辆的行车轨迹属于第一车辆的行车轨迹的相邻车道。
[0014]
这样,对于任一车辆的行车轨迹,由于可以直接使用该车辆的像素宽度、该车辆的行车轨迹与该车辆的行车轨迹的相邻车道的距离,识别出一条新的车道,所以可以快速地识别出视频中的车道。
[0015]
一种可能的实现方式中,识别装置可以确定出视频中的车道后,可以确定属于各车道的行车轨迹,进一步确定各车道的行车轨迹的数目。识别装置将各车道一段时长内的行车轨迹的数目,确定为视频中的各车道的流量,为调整路口的交通指示灯的时长等提供
参考等。
[0016]
一种可能的实现方式中,识别装置在识别出视频中的车道后,可以获取视频中被检测的车道的实际数目(即预设数目)。然后识别装置可以判断识别出的车道的数目与预设数目的大小,在识别出的车道的数目不等于预设数目时,识别装置将多个车辆在视频中的行车轨迹和预设数目输入至聚合处理算法,输出则为多个车辆在视频中的行车轨迹聚合获得的预设数目条行车轨迹。识别装置根据相邻的两条行车轨迹确定出修正后的车道的车道线,获得视频中的至少一条修正后的车道。或者,识别装置获取车道识别线(用于标记所要识别的车道的直线),确定多个车辆在视频中的行车轨迹中每条行车轨迹与车道识别线的交点。然后识别装置将所有的交点的坐标和预设数目输入至聚合处理算法中,输出则为预设数目份交点。识别装置确定每份交点的中心点,将每份中心点所在的直线中垂直于车道识别线的直线,确定为车道的中心线。然后将相邻的两个中心线的中心线,确定为车道的车道线,此处对于左侧中心线所属的车道,该中心线即为该车道的右车道线,对于右侧中心线所属的车道,该中心线即为该车道的左车道线。这样,识别装置可以获得视频中的至少一条修正后的车道。
[0017]
这样,在识别的车道不准确时,还可以对视频中的车道进行修正,提高最终识别出的车道的准确性。
[0018]
一种可能的实现方式中,在识别车道之前,工作人员可以在视频的视频帧标记出车道识别线,该车道识别线可以覆盖要检测的车道。或者,识别装置获取到视频后,可以将视频的视频帧中距离视频帧底部预设距离,且平行于视频帧底部的线段,确定为车道识别线,该线段的长度为预设长度。识别装置可以获取车道识别线,然后将垂直于车道识别线且与车道识别线的左侧端点相交的直线,确定为待识别区域的左边界线,并且识别装置可以将垂直于车道识别线且与车道识别线的右侧端点相交的直线,确定为待识别区域的右边界线。这样,识别装置可以确定出待识别区域。然后识别装置可以根据多个车辆在视频中的待识别区域内的行车轨迹,识别视频中的待识别区域内的至少一条车道。
[0019]
这样,在视频中包括多条车道时,可以根据需求仅识别其中的部分车道,增强了本申请方案的适用性。
[0020]
一种可能的实现方式中,识别装置实时接收设置于交通道路的监控设备拍摄的视频流。这样,可以实时地识别视频中的车道。或者,识别装置周期性地获取设置于交通道路的监控设备拍摄的视频。这样,可以根据一段历史视频对该摄像头拍摄的视频中的车道进行识别。上述不同的获取视频的方法可以适用于不同的应用场景,使得方案的适用性更强。
[0021]
第二方面,本申请提供了一种识别车道的装置,该装置包括获取模块、确定模块和识别模块,其中,获取模块,用于获取设置于交通道路的监控设备拍摄的视频,所述视频记录了行驶在所述交通道路上的多个车辆。确定模块,用于确定所述多个车辆中的每个车辆在所述视频的多个视频帧中的位置,根据所述每个车辆在所述视频的多个视频帧中的位置,确定所述每个车辆在所述视频中的行车轨迹。识别模块,用于根据所述多个车辆在所述视频中的行车轨迹,识别所述视频中的至少一条车道。
[0022]
这样,由于识别装置可以根据视频,确定出视频中的车道,而不需要人工预先确定,所以即使监控设备的拍摄角度发生变化,识别装置也可以比较及时地获取角度变化后的视频中的车道,所以提升了车道识别的准确性,进而可以提升交通事件分析结果的准确
性。
[0023]
一种可能的实现方式中,该确定模块,还用于根据车辆类型检测模型确定所述每个车辆的类型;根据所述多个车辆的类型和所述多个车辆在所述视频中的行车轨迹,确定所述视频中的已识别的每条车道的行驶类型,所述行驶类型用于指示所述每条车道上可以行驶的车辆的类型。
[0024]
一种可能的实现方式中,该确定模块,还用于当所述监控设备拍摄的所述交通道路包括路口时,获取所述监控设备拍摄的延长视频,所述延长视频为所述监控设备在拍摄所述视频的后一段时间拍摄的视频;确定所述多个车辆在所述延长视频中的行车轨迹;根据所述多个车辆在所述视频中的行车轨迹和所述多个车辆在所述延长视频中的行车轨迹,确定所述视频中的已识别的每条车道的属性,每条车道的属性包括以下属性中的任意一种及其组合:右转车道、左转车道、直行车道、右转直行车道、左转直行车道和混合车道。
[0025]
一种可能的实现方式中,该识别模块,具体用于确定所述视频中的第一车辆的行车轨迹与相邻车道的距离,所述相邻车道为已识别的车道中与所述第一车辆的行车轨迹距离最近的车道,比较所述距离与所述第一车辆的像素宽度的大小,确定所述距离大于所述第一车辆的像素宽度,根据所述第一车辆的行车轨迹确定一条新的车道,所述新的车道为识别出的所述至少一条车道中的一条车道。
[0026]
一种可能的实现方式中,该确定模块,还用于统计视频中的每条车道的车流量。
[0027]
一种可能的实现方式中,该识别模块,还用于当识别出的车道的数目不等于预设数目时,根据所述预设数目和所述每个车辆在所述视频中的行车轨迹,获得所述视频中的至少一条修正后的车道;其中,预设数目为视频中被检测的车道的实际数目。
[0028]
一种可能的实现方式中,该确定模块,还用于确定视频中的待识别区域。该识别模块,具体用于根据多个车辆在视频中的待识别区域内的行车轨迹,识别视频中的待识别区域内的至少一条车道。
[0029]
一种可能的实现方式中,该获取模块,具体用于:实时接收设置于交通道路的监控设备拍摄的视频流;或者,周期性地获取设置于交通道路的监控设备拍摄的视频。
[0030]
第三方面,本申请提供了一种识别车道的计算设备,计算设备包括处理器和存储器,其中:存储器中存储有计算机指令,处理器执行计算机指令,以使所述计算设备实现第一方面及其可能的实现方式的方法。
[0031]
第四方面,本申请提供了一种计算机可读存储介质,其特征在于,计算机可读存储介质存储有计算机指令,当计算机可读存储介质中的计算机指令被计算设备执行时,使得计算设备执行第一方面及其可能的实现方式的方法,或者使得计算设备实现上述第二方面及其可能的实现方式的装置的功能。
[0032]
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算设备上运行时,使得计算设备执行上述第一方面及其可能的实现方式的方法,或者使得计算设备实现上述第二方面及其可能的实现方式的装置的功能。
附图说明
[0033]
图1是本申请一个示例性实施例提供的识别车道的系统架构图;
[0034]
图2是本申请一个示例性实施例提供的识别车道的系统架构图;
[0035]
图3是本申请一个示例性实施例提供的识别车道的系统架构图;
[0036]
图4是本申请一个示例性实施例提供的计算设备的结构示意图;
[0037]
图5是本申请一个示例性实施例提供的识别车道的系统的结构示意图;
[0038]
图6是本申请一个示例性实施例提供的训练装置600和识别装置的结构示意图;
[0039]
图7是本申请一个示例性实施例提供的识别车道的方法流程示意图;
[0040]
图8是本申请一个示例性实施例提供的车道识别线的示意图;
[0041]
图9是本申请一个示例性实施例提供的确定每条行车轨迹所属车道的流程示意图;
[0042]
图10是本申请一个示例性实施例提供的确定每条行车轨迹所属车道的示意图;
[0043]
图11是本申请一个示例性实施例提供的待修正的车道的示意图;
[0044]
图12是本申请一个示例性实施例提供的修正后的车道的示意图;
[0045]
图13是本申请一个示例性实施例提供的修正后的车道的示意图;
[0046]
图14是本申请一个示例性实施例提供的确定行车轨迹与待识别区域的边界线的延长线的关系的示意图;
[0047]
图15是本申请一个示例性实施例提供的识别车道的装置的结构示意图。
具体实施方式
[0048]
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0049]
为了便于对本申请实施例的理解,下面首先介绍本申请实施例所涉及到的名词的概念:
[0050]
1、车道,在本申请实施例中,车道指在设置于交通道路的摄像头拍摄的视频中的供单一纵列车辆行驶的部分。摄像头拍摄的不同的交通道路,车道的数目、车道的宽度也可能不相同。在本申请实施例中,识别车道指识别出交通道路上的车道在视频中的位置,即识别出车道在该视频中形成的像素坐标序列(或车道在该视频中的像素坐标和方向)。
[0051]
2、车道线,在本申请实施例中,车道线指视频中的车道在视频中的边界线,一个车道可以包括左车道线和右车道线。
[0052]
3、监控设备,用于监控交通区域中的车辆的行驶信息。在本申请实施例中,监控设备可以设置在路口或道路的某个位置(如道路上的中心位置或道路的边缘位置等),用于监控拍摄范围内的车辆,监控设备可以是能够捕捉到图像或视频的设备,如摄像头,或相机等。具体的,监控设备可以是卡口设备,用于对经过交通区域中的特定场所(如收费站、交通或治安检查站、路口、路段等)的车辆进行监控。监控设备还可以是电子警察监控设备,电子警察监控设备记录的数据的内容与卡口设备捕捉的数据的内容类似。
[0053]
在一个交通区域内,可以只在一些路口设置监控设备,如可以在该交通区域内的主干路段、交通容易拥堵的路段、事故发生密集的路段以及在关键路口处设置监控设备。路口的监控设备的视角(拍摄范围)可以覆盖该路口的所有车道,则在该路口上设置的监控设备可以拍摄到经过该路口的所有车道的车辆。路口上监控设备的视角(拍摄范围)也可以只覆盖该路口部分方向的车道,则在该路口上设置的监控设备也可以只拍摄经过该路口部分车道上的车辆。
[0054]
在交通领域中,路口的各个行车方向的车流量的确定、交通事件的检测等都需要在监控设备拍摄的视频中标定出车道。例如,在进行交通违规事件中压线行为的判别时,可以标定视频中车道的车道线,然后确定视频中的车辆是否覆盖在车道的车道线上,进而判定车辆是否存在压线行为。相关技术中,人工在视频中标定出车道,获得标定信息,标定信息可以包括视频中的车道的车道线的像素坐标序列、每条车道的宽度信息等,并将标定信息进行存储,后续交通事件的检测设备获取到监控设备拍摄到的视频后,直接根据标定信息确定视频中的车道,进而确定交通事件等。然而在某些情况下(如人为破坏、自然灾害、设置监控设备的支架故障等情况),监控设备的拍摄角度发生变化后,由于并不能及时地发现监控设备的拍摄角度已经发生变化,所以再将根据之前拍摄角度拍摄的视频标定的车道应用于当前拍摄的视频中,会导致标定的车道与视频中实际记录的车道不重合,进而会使交通事件的检测、车流量的检测不准确。所以需要提供一种可以根据视频的内容动态地识别视频中的车道的方式。
[0055]
在对本申请实施例提供的识别车道的方法介绍之前,对本申请实施例所适用的系统架构进行介绍。
[0056]
本申请实施例提供的识别车道的方法,可以用于识别视频中的车道。识别车道的方法可以由识别装置执行。识别装置既可以是一个硬件装置,如服务器、终端计算设备等,也可以是一个软件装置(如可以为运行在硬件装置上的一套软件程序)。
[0057]
识别装置的部署灵活,其可以部署在边缘环境。例如,识别装置可以是边缘环境中的一个边缘计算设备或运行在一个或多个边缘计算设备上的软件装置,该边缘环境指距离要检测的交通道路较近的数据中心或者边缘计算设备的集合,该边缘环境包括一个或多个边缘计算设备,边缘计算设备可以是设置在交通道路路边的具有计算能力的路侧设备。例如,如图1所示,识别装置部署在距离路口较近的位置,即识别装置是路边的边缘计算设备,或者识别装置是运行在路边的边缘计算设备的软件装置。该路口中设置有可联网的监控设备,监控设备拍摄到记录路口车辆过往的视频,并将视频通过网络发送至识别装置。识别装置根据视频,对该视频中的车道进行识别。
[0058]
识别装置还可以部署在云环境,云环境是云计算模式下利用基础资源向用户提供云服务的实体。云环境包括云数据中心和云服务平台,该云数据中心包括云服务提供商拥有的大量基础资源(包括计算资源、存储资源和网络资源),云数据中心包括的计算资源可以是大量的计算设备(例如服务器)。识别装置可以是云数据中心中用于对视频中的车道进行识别的服务器;识别装置也可以是创建在云数据中心中的用于对视频中的车道进行识别的虚拟机;识别装置还可以是部署在云数据中心中的服务器或者虚拟机上的软件装置,该软件装置用于对视频中的车道进行识别,该软件装置可以分布式地部署在多个服务器上、或者分布式地部署在多个虚拟机上、或者分布式地部署在虚拟机和服务器上。例如,如图2所示,识别装置部署在云环境中,设置于交通道路侧的可联网的监控设备将拍摄到的视频发送至云环境中的识别装置。识别装置根据视频,对该视频中的车道进行识别。
[0059]
识别装置可以由云服务提供商部署在云数据中心,云服务提供商将识别装置提供的功能抽象成为一项云服务,云服务平台供用户咨询和购买这项云服务。用户购买这项云服务后即可使用云数据中心的该识别装置提供的识别车道的服务。识别装置还可以由租户部署在租户租用的云数据中心的计算资源中(例如虚拟机),租户通过云服务平台购买云服
务提供商提供的计算资源云服务,在购买的计算资源中运行识别装置,使得识别装置对视频中的车道进行识别。
[0060]
当识别装置为软件装置时,识别装置可以在逻辑上分成多个部分,每个部分具有不同的功能(多个部分例如,识别装置可以包括获取模块、确定模块、识别模块等)。识别装置的几个部分可以分别部署在不同的环境或设备上,部署在不同环境或设备上的识别装置的各个部分之间协同实现识别车道的功能。例如,如图3所示,识别装置中的一部分(例如:获取模块)部署在边缘计算设备,识别装置的另一部分(例如:确定模块和识别模块)部署在云数据中心(例如,部署在云数据中心的服务器或虚拟机上)。设置在交通道路的监控设备将拍摄到的视频发送至部署在边缘计算设备中的获取模块,获取模块将视频发送至云数据中心,云数据中心上部署的确定模块和识别模块对视频进行分析,获得视频中的车道。应理解,本申请不对识别装置的各部分的划分进行限制性的限定,也不对识别装置具体部署在哪个环境进行限制性的限定。实际应用时可根据各计算设备的计算能力或具体应用需求进行适应性的部署。值得注意的是,在一种实施例中,监控设备还可以为具有一定计算能力的智能摄像头,识别装置还可以分三部分部署,其中,一部分部署在监控设备,一部分部署在边缘计算设备,一部分部署在云计算设备。
[0061]
当识别装置为软件装置时,识别装置也可以单独部署在任意环境(云环境、边缘环境、终端计算设备等)中的一个计算设备上;当识别装置为硬件设备时,识别装置可以是任意环境中的一个计算设备400。图4提供了一种计算设备400的结构示意图,图4所示的计算设备400包括存储器401、处理器402、通信接口403以及总线404。其中,存储器401、处理器402、通信接口403通过总线404实现彼此之间的通信连接。
[0062]
存储器401可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器401可以存储计算机指令,当存储器401中存储的计算机指令被处理器402执行时,处理器402和通信接口403用于执行识别车道的方法。存储器还可以存储数据,例如,存储器401中的一部分用来存储识别车道的方法所需的数据,以及用于存储程序执行过程中的中间数据或结果数据。
[0063]
处理器402可以采用通用的中央处理器(central processing unit,cpu),应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或其任意组合。处理器402可以包括一个或多个芯片,处理器402可以包括人工智能(artificial intelligence,ai)加速器,例如,神经网络处理器(neural processing unit,npu)。
[0064]
通信接口403使用例如但不限于收发器一类的收发模块,来实现计算设备400与其他设备或通信网络之间的通信。例如,可以通过通信接口403获取识别车道时所需的数据。
[0065]
总线404可包括在计算设备400各个部件(例如,存储器401、处理器402、通信接口403)之间传送信息的通路。
[0066]
当识别装置为软件装置时,识别装置还可以分布式地部署在同一环境或不同环境中的多个计算机上,因此,本申请还提供一种如图5所示的识别车道的系统,该识别车道的系统也可以称为一种识别车道的计算设备,这种计算设备包括多个计算机500,每个计算机500包括存储器501、处理器502、通信接口503以及总线504。其中,存储器501、处理器502、通信接口503通过总线504实现彼此之间的通信连接。
convolutional neural network,rcnn)模型或快速区域卷积神经网络(fast region convolutional neural network,fast-rcnn)模型等。被选择的用于被训练形成车辆检测模型的神经网络模型可以称为初始车辆检测模型。
[0076]
在本申请的一些实施例中,执行识别车道的方法需要用到的另一种神经网络模型是:用于对检测到的车辆进行类型检测的模型,称为车辆类型检测模型,车辆类型检测模型也可以是由业界已有的一些神经网络模型中的任意一种进行训练获得,例如,卷积神经网络(convolutional neural network,cnn)模型、残差网络(resnet)模型、稠密网络(densenet)模型、视觉几何组网络(visual geometry group net vggnet)模型等。被选择的用于被训练形成车辆类型检测模型的神经网络模型可以称为初始车辆类型检测模型。应理解,未来业界开发的可实现车辆检测和车辆类型检测的神经网络模型也可用于作为本申请实施例中的车辆检测模型和车辆类型检测模型,本申请对此不作限定。
[0077]
车辆检测模型和车辆类型检测模型在被用于识别车道之前可由训练装置进行训练,训练装置分别采用不同的训练集对初始车辆检测模型和初始车辆类型检测模型进行训练,经训练装置训练完成的车辆检测模型和车辆类型检测模型可被部署于识别装置中,由识别装置用于确定车辆的行车轨迹、以及车辆的类型。
[0078]
图6提供了一种训练装置600和识别装置的结构示意图。下面结合图6对训练装置600和识别装置的结构和功能进行介绍,应理解,本申请实施例仅对训练装置600和识别装置的结构和功能模块进行示例性划分,本申请并不对其具体划分做任何限定。
[0079]
训练装置600用于对初始车辆检测模型601和初始车辆类型检测模型602分别进行训练,对初始车辆检测模型601和初始车辆类型检测模型602进行训练需要两个训练集,分别称为车辆检测训练集和车辆类型检测训练集。采集装置获得的车辆检测训练集和车辆类型检测训练集被保存在数据库中。可由采集装置采集多个训练视频或训练图像,采集到的多个训练视频或训练图像由人工或采集装置进行处理和标注后构成一个训练集。当采集装置采集的是多个训练视频时,采集装置将训练视频中的视频帧作为训练图像,进而对训练图像进行处理和标注构建训练集。训练装置600在启动对初始车辆检测模型601进行训练时,初始化模块603首先对初始车辆检测模型601中的每层的参数进行初始化(即为每个参数赋予一个初始值),进而训练模块602读取数据库中的车辆检测训练集中的训练图像对初始车辆检测模型601进行训练,直到初始车辆检测模型601中的损失函数收敛且损失函数值小于特定阈值或车辆检测训练集中所有的训练图像被用于训练,则初始车辆检测模型601训练完成,获得训练完成的车辆检测模型605。同理,训练装置600在启动对初始车辆类型检测模型602进行训练时,初始化模块603首先对初始车辆类型检测模型602中的每层的参数进行初始化(即为每个参数赋予一个初始值),进而训练模块604读取数据库中的车辆类型检测训练集中的训练图像对初始车辆类型检测模型602进行训练,直到初始车辆类型检测模型602中的损失函数收敛且损失函数值小于特定阈值或者车辆类型检测训练集中所有的训练图像被用于训练,则初始车辆类型检测模型602训练完成,获得训练完成的车辆类型检测模型606。
[0080]
值得注意的是,车辆检测模型605和车辆类型检测模型606也可由两个训练装置分别进行训练获得,车辆检测模型605和/或车辆类型检测模型606还可以不需要由训练装置600进行训练,例如,车辆检测模型605和/或车辆类型检测模型606采用的是第三方已训练
好的,且对车辆检测和/或车辆类型检测具有较好精确度的神经网络模型。
[0081]
在本申请的一些实施例中,也可不需要采集装置采集训练图像或训练视频,也不需要构建车辆检测训练集和/或车辆类型检测训练集。例如,车辆检测训练集和/或车辆类型检测训练集从第三方直接获得。另外,值得注意的是,本申请中车辆检测训练集中的训练图像可以与车辆类型检测训练集中的训练图像内容相同但是标签不同,例如,采集装置在采集到1万张包含各个交通道路上行驶的车辆的图像。在构建车辆检测训练集时,将这1万张图像中的车辆用边界框进行标注,经过边界框标注后的这1万张训练图像就构成了车辆检测训练集。在构建车辆类型检测训练集时,将这1万张图像中的车辆用边界框进行标注,且每个边界框对应标注出该车辆的类型(如车型、车辆品牌等),经过边界框和类型标注后的这1万张训练图像就构成了车辆类型检测训练集。
[0082]
值得注意的是,在本申请的一个实施例中,识别装置在识别车道时也可以仅使用一个已训练的神经网络模型,可称为检测与识别模型,该检测与识别模型是一个包含车辆检测模型605和车辆类型检测模型606的全部功能的模型。该检测与识别模型既可以进行车辆位置的检测也可以对车辆进行识别,再对识别的车辆进行类型检测。对于检测与识别模型的训练与上述初始车辆检测模型601和初始车辆类型检测模型602的训练思想相同,在此不再赘述。
[0083]
经过训练装置600训练完成的车辆检测模型605和车辆类型检测模型606可分别被用于对监控设备拍摄的视频中的视频帧进行车辆检测和车辆类型检测。在本申请的一个实施例中,如图6所示,训练完成的车辆检测模型605和车辆类型检测模型606被部署至识别装置。
[0084]
下面将结合图7对本申请实施例提供的识别视频中的车道的方法进行说明,该方法可以由识别装置执行。如图7所示,该方法的处理流程如下:
[0085]
步骤701,识别装置获取设置于交通道路的监控设备拍摄的视频。
[0086]
其中,视频中记录了交通道路上经过监控设备的拍摄范围的车辆。
[0087]
本实施例中,识别装置与监控设备之间建立有通信连接,监控设备在拍摄到视频时,实时将视频传输至识别装置,或者监控设备周期性将拍摄到的视频发送至识别装置。这样识别装置可以获取到视频。
[0088]
步骤702,识别装置确定多个车辆中的每个车辆在视频的多个视频帧中的位置,根据每个车辆在视频的多个视频帧中的位置,确定每个车辆在视频中的行车轨迹。
[0089]
本实施例中,识别装置可以将获取到的视频输入至前述的车辆检测模型605,车辆检测模型605则会输出该视频的每个视频帧中的车辆所在边界框的位置。对于视频中的任一车辆,识别装置将该车辆所在边界框的位置,确定为该车辆在视频中的位置。对于任一边界框的位置,若边界框为矩形框,该位置可以为该边界框在视频帧中左上角的位置坐标和右下角的像素坐标,或者该位置可以为该边界框在视频帧中的中心点的像素坐标。
[0090]
然后识别装置可以将每个视频帧中包括的边界框的位置输入至预设的多目标跟踪算法,多目标跟踪算法获取到边界框的位置后,可以计算属于相邻的两个视频帧的两个边界框的距离,基于计算出的距离,将该两个视频帧中的边界框进行关联,获得多组关联好的边界框。例如,视频帧1和视频帧2为相邻的两个视频帧,视频帧1中包括3个边界框,视频帧2中包括3个边界框,对于视频帧1中的任一边界框,可以计算该边界框分别与视频帧2中3
个边界框之间的距离,将三个距离中最小距离所属的两个边界框,确定为关联的边界框。具体的,边界框之间的距离,可以使用边界框的中心位置之间的距离表示。
[0091]
可选的,识别装置还可以将每个视频帧中包括的边界框内车辆的属性信息(车辆的属性信息可以包括车型、车牌号码等),输入至预设的多目标跟踪算法,其中,车辆的属性信息可以由车辆检测模型605检测获得,也可以由其它专门用于检测车辆的属性的神经网络模型检测获得。多目标跟踪算法获取到边界框内车辆的属性信息后,可以计算属于相邻的两个视频帧的两个边界框内车辆属性信息的相似度,基于计算出的相似度,将该两个视频帧中的边界框进行关联,获得多组关联好的边界框。例如,视频帧1和视频帧2为相邻的两个视频帧,视频帧1中包括3个边界框,视频帧2中包括3个边界框,对于视频帧1中的任一边界框,可以计算该边界框内车辆的属性信息分别与视频帧2中3个边界框内车辆的属性信息的相似度,将三个相似度中最高相似度所属的两个边界框,确定为关联的边界框。具体的,对于任两个边界框内车辆的属性信息的相似度的计算方式可以为:确定车辆的每一类属性信息的相似度(如在车辆的属性信息为车牌号码时,两个边界框内车辆的车牌号码相同,在车牌号码这一类属性信息,两个边界框的相似度为100%),然后将不同类型的属性信息的相似度进行加权,获取到边界框内车辆的属性信息的相似度。
[0092]
每组关联好的边界框可以认为是同一个车辆在多个视频帧中的多个边界框,这样,识别装置可以将每组关联好的边界框的中心位置,按照所属视频帧的时间先后顺序进行拟合,得到多条行车轨迹。这样,识别装置可以获取到每个车辆在视频中的行车轨迹。
[0093]
此处需要说明的是,多目标跟踪算法可以存储在识别装置中,在识别装置确定车辆在视频中的行车轨迹时获取存储的多目标跟踪算法,或者多目标跟踪算法存储在其它设备中,在识别装置确定车辆在视频中的行车轨迹时从其它设备调用多目标跟踪算法。多目标跟踪算法可以为任意一种能够将多个视频帧中的边界框进行关联的目标跟踪算法,例如,卡尔曼滤波算法,具体的,将视频中边界框的位置或包含的车辆的属性信息输入多目标跟踪算法后,多目标跟踪算法输出关联好的边界框。
[0094]
需要说明的是,在步骤702确定出的行车轨迹是车辆在视频的各视频帧的位置变化,即是使用一个像素坐标序列表示车辆在视频中的行车轨迹,而不是在实际道路上的位置变化。
[0095]
步骤703,识别装置根据多个车辆在视频中的行车轨迹,识别视频中的至少一条车道。
[0096]
本实施例中,识别装置可以逐个识别每条行车轨迹在视频中所属的车道,基于每条行车轨迹在视频中所属的车道,确定出视频中的至少一条车道。具体如何识别行车轨迹在视频中所属的车道,在后文中进行说明。
[0097]
或者,在另一些实施例中,还可以采用行车轨迹聚合的方式确定视频中的车道。首先获取预设数目,预设数目为视频中车道的实际数目,预设数目可以由人工提前输入至识别装置。识别装置可以通过聚合处理算法将多个车辆在视频中的行车轨迹聚类为预设数目类,确定每类行车轨迹的中心线。识别装置将相邻两条中心线之间的区域,确定为一个车道。在此种情况下最右侧的车道为待识别区域(在后文中说明)的右边界线和与该右边界线相邻的中心线之间的区域,最左侧的车道为待识别区域的左边界线和与该左边界线相邻的中心线之间的区域。具体的,待识别区域的左边界线为属于待识别区域,且距离待识别区域
的最左侧最近,且平行于与该左边界线相邻的中心线的线。待识别区域的右边界线为属于待识别区域,且距离待识别区域的最右侧最近,且平行于与该左边界线相邻的中心线的线。
[0098]
需要说明的是,步骤703中确定出的车道是在视频中的车道,车道是使用像素坐标表示,而不是转换到道路上的实际车道。
[0099]
可选的,在某些情况下,视频的视频帧中不仅包括要识别的车道,还可能包括其他车道,所以需要确定视频中的待识别区域,待识别区域内的车道为要识别的车道。具体的,识别装置确定视频中的待识别区域的方法可以有多种,以下给出几种可行的方式:
[0100]
方式一,识别装置获取视频中的车道识别线,根据车道识别线,确定待识别区域。车道识别线是用于确定视频中待识别区域的标记线。
[0101]
在一些实施例中,在识别车道之前,识别装置提供了车道识别线的设置界面,工作人员可以触发显示车道识别线的设置界面。在该设置界面中工作人员可以在视频的视频帧画出车道识别线,该车道识别线可以覆盖要检测的车道。例如,如图8所示,工作人员在视频帧中标定了车道识别线,车道识别线指示仅检测车道1和车道2,并不检测车道3。然后识别装置可以将该车道识别线在视频中的信息进行保存,后续在进行车道识别时,识别装置可以获取到视频中的车道识别线。
[0102]
识别装置可以将垂直于车道识别线且与车道识别线的左侧端点相交的直线,确定为待识别区域的左边界线,并且识别装置可以将垂直于车道识别线且与车道识别线的右侧端点相交的直线,确定为待识别区域的右边界线。此处需要说明的是,车道识别线的左侧和右侧是在沿着车辆行驶方向的角度上描述的。这样,识别装置可以确定出待识别区域。
[0103]
后续识别装置可以基于待识别区域在视频的视频帧的位置信息,获取该待识别区域中的多条行车轨迹。
[0104]
方式二,识别装置可以将视频的视频帧中距离视频帧底部预设距离,且平行于视频帧底部的线段确定为车道识别线。根据车道识别线,确定待识别区域。
[0105]
其中,预设距离可以预设,如预设距离为视频帧高度的1/4等。
[0106]
本实施例中,识别装置获取到视频后,可以将视频的视频帧中距离视频帧底部预设距离,且平行于视频帧底部的线段,确定为车道识别线,该线段的长度等于视频帧的长度。然后识别装置可以使用车道识别线,确定出待识别区域(确定方式在上述方式一中进行描述,此处不再赘述)。
[0107]
当然,上述平行于视频帧底部的线段的长度也可以不等于视频帧的长度,而是一个预设长度,该预设长度小于视频帧的长度。
[0108]
此处需要说明的是,上述识别装置确定待识别区域是一个可选的过程,在视频中已经规定了待识别区域时,识别装置可以不进行该过程的处理。
[0109]
下面介绍前述步骤703的一种更具体的流程:
[0110]
在步骤703中,如图9所示,识别装置可以按照如下流程识别视频中的车道:
[0111]
步骤901,识别装置在当前未确定出所属车道的行车轨迹中,任意选取一条行车轨迹(可以称为是第一车辆的行车轨迹),作为当前行车轨迹。
[0112]
步骤902,识别装置在当前视频的待识别区域的已有车道中,确定当前行车轨迹对应的最近车道,最近车道指已有车道中距离当前行车轨迹最近的车道。
[0113]
在本实施例中,识别装置确定当前已有车道(即当前视频的待识别区域的已有车
道)的左车道线和右车道线的中心位置组成的线,该线可以称为是中心线。识别装置确定当前行车轨迹与车道识别线的交点的坐标,然后确定该交点与当前已有车道的中心线的距离(该距离为像素距离),具体在计算时,识别装置确定当前已有车道的中心线与车道识别线的交点的坐标,然后计算两个交点之间的距离(其中一个交点为当前行车轨迹与车道识别线的交点,另一个交点为中心线与车道识别线的交点),即为当前行车轨迹与当前已有车道的距离,此处的计算方式仅为一种举例形式,当然也可以采用其它方式。识别装置将确定出的距离中的最小距离所属的车道,确定为当前行车轨迹对应的最近车道。
[0114]
步骤903,识别装置判断目标距离是否大于目标宽度,目标距离为当前行车轨迹与当前行车轨迹对应的最近车道的距离,目标宽度为当前行车轨迹所属车辆所在的边界框的宽度。
[0115]
在本实施例中,识别装置确定当前行车轨迹所属车辆所在的边界框的宽度(该宽度为像素宽度),判断目标距离是否大于目标宽度。
[0116]
步骤904,若目标距离不大于目标宽度,则识别装置确定当前行车轨迹所属的车道为当前行车轨迹对应的最近车道。
[0117]
步骤905,若目标距离大于目标宽度,则识别装置根据当前行车轨迹对应的最近车道,确定当前行车轨迹所属的车道。
[0118]
在本实施例中,识别装置在当前行车轨迹对应的最近车道中,任意选择一条行车轨迹,确定该行车轨迹与当前行车轨迹的中心线。或者识别装置将当前行车轨迹对应的最近车道中包括的行车轨迹进行聚合处理,获得一条聚合后的行车轨迹,确定聚合后的行车轨迹与当前行车轨迹的中心线。这两种情况为最近车道包括多条行车轨迹的情况,若最近车道仅包括一条行车轨迹,则直接使用该行车轨迹与当前行车轨迹,确定中心线即可。具体的,两条行车轨迹(行车轨迹a和行车轨迹b)的中心线可以按照多种方式确定,以下给出但不限于如下三种计算方式:方式一,识别装置确定行车轨迹a与车道识别线的交点、以及行车轨迹b与车道识别线的交点,取这两个交点在车道识别线方向上的中心点。将包括该中心点且垂直于车道识别线的直线,确定为这行车轨迹a和行车轨迹b的中心线,方式一可应用于直线型车道;方式二,识别装置将车道识别线等距离的沿着行车轨迹a和行车轨迹b进行移动,每移动一段距离,确定行车轨迹a和行车轨迹b分别与车道识别线的交点,确定这两个交点的中心点。识别装置将所有的中心点进行连线,获得行车轨迹a和行车轨迹b的中心线。方式三,识别装置将行车轨迹a和行车轨迹b拟合,获得一条轨迹,该轨迹即为行车轨迹a和行车轨迹b的中心线。
[0119]
然后识别装置判断该最近车道中的行车轨迹与当前行车轨迹的位置关系。若该最近车道中的行车轨迹在当前行车轨迹的左侧,则识别装置将上述中心线,确定为该最近车道的右车道线,识别装置将上述中心线,确定为当前行车轨迹所属车道的左车道线,将该车道右侧相邻的车道线,确定为当前行车轨迹所属车道的右车道线。若该最近车道中的行车轨迹在当前行车轨迹的右侧,与上述结果恰好相反。这样,相当于新增当前行车轨迹所属的车道。此处需要说明的是,上述确定最近车道的中心线时,已经使用最近车道的左车道线和右车道线,此处又确定出最近车道的右车道线的原因为:该最近车道的右车道线原来采用的是待识别区域的右边界线,而不是该最近车道的真实车道线。
[0120]
步骤906,识别装置确定是否还存在未确定出所属车道的行车轨迹。
[0121]
步骤907,若存在未确定出所属车道的行车轨迹,则返回执行步骤901。
[0122]
步骤908,若未存在未确定出所属车道的行车轨迹,则识别装置结束确定行车轨迹所属车道的处理。
[0123]
识别装置在确定出视频中每条行车轨迹所属车道后,可以将确定出的车道,确定为视频中的车道。例如,视频中一共有50条行车轨迹,15条行车轨迹属于第一车道,20条行车轨迹属于第二车道,15条行车轨迹属于第三车道,可以确定出视频中的车道为第一车道、第二车道和第三车道。
[0124]
为了方便理解,本申请实施例还提供了图10所示的确定车道的直观过程,行车轨迹1为步骤901选取的第一条行车轨迹,当前默认仅有一个车道1。行车轨迹2为步骤901选取的第二条行车轨迹,新增车道2。行车轨迹3为步骤901选取的第三条行车轨迹,新增车道3。行车轨迹4为步骤901选取的第四条行车轨迹,新增车道4。
[0125]
需要说明的是,在图9所示的流程中,识别装置在当前未确定出所属车道的行车轨迹中,第一次任意选取的一条行车轨迹,作为当前行车轨迹时,默认待识别区域仅有一个车道,该车道的车道线为待识别区域的左边界线和待识别区域的右边界线,可以直接将该车道确定为当前行车轨迹所属的车道,而不执行步骤902至步骤908的处理。然后识别装置重新执行步骤901至步骤908的处理,直至为最后一条行车轨迹确定出所属车道,识别装置可以重新按照步骤902至步骤908的处理确定第一次任意选取的一条行车轨迹所属的车道。
[0126]
此处还需要说明的是,车辆一般是在车道的中间附近范围行驶,在行车轨迹距离最近车道的距离小于或等于边界框的宽度,说明该边界框所属的车辆很大概率在该最近车道行驶。而对于行车轨迹距离最近车道的距离大于边界框的宽度,说明该边界框所属的车辆很大概率不在该最近车道行驶。
[0127]
另外,在步骤904中,目标距离不大于目标宽度,说明当前行车轨迹属于自身对应的最近车道,可以将当前行车轨迹添加至该最近车道的历史轨迹列表,用于后续车道修正处理。此处每个车道的历史轨迹列表中可以存储当前一段时间内的一定数目条行车轨迹,如一定数目为50等。
[0128]
可选的,识别装置在执行步骤703确定出视频的车道之后,还可以包括步骤704。
[0129]
步骤704,判断确定出的车道是否正确,在不正确的情况下,识别装置对车道进行修正。
[0130]
相应的具体修正处理可以如下:
[0131]
识别装置在确定出的车道的数目不等于预设数目的情况下,根据预设数目和每个车辆在视频中的行车轨迹,获得视频中修正后的车道。
[0132]
本实施例中,识别装置可以获取预设数目,该预设数目可以由工作人员预先输入,识别装置保存该预设数目。预设数目为视频中被检测的车道的实际数目。
[0133]
识别装置可以将步骤703确定出的车道的数目与预设数目进行比较,若车道的数目不等于预设数目,则说明步骤703确定出的车道不准确。识别装置可以采用多种方式对待识别区域的车道进行修正处理,以下给出三种可行的方式:
[0134]
方式一,识别装置获取车道识别线,确定多个车辆在视频中的行车轨迹中每条行车轨迹与车道识别线的交点。然后识别装置将所有的交点的坐标和预设数目输入至聚合处理算法中,输出则为预设数目份交点。识别装置确定每份交点的中心点,将每份中心点所在
的直线中垂直于车道识别线的直线,确定为车道的中心线。然后将相邻的两个中心线的中心线,确定为车道的车道线,此处对于左侧中心线所属的车道,该中心线即为该车道的右车道线,对于右侧中心线所属的车道,该中心线即为该车道的左车道线。此处需要说明的是,对于最左侧的车道,该车道的左车道线为垂直于车道识别线且与车道识别线最左侧相交的直线(也可以为待识别区域的左边界线),对于最右侧的车道,该车道的右车道线为垂直于车道识别线且与车道识别线最右侧相交的直线(也可以为待识别区域的右边界线),聚合处理算法可以是k均值(k-means)聚类算法等。通过这种方式,即可确定出视频中修正后的所有车道。
[0135]
例如,如图11所示,步骤703中识别出的车道数目为5,但已知目标数目为4,车道修正前为:行车轨迹1属于车道1,行车轨迹2、3、4属于车道2,行车轨迹5属于车道3,行车轨迹6属于车道4,行车轨迹7属于车道5。车道修正后为图12,行车轨迹1属于车道1,行车轨迹2、3、4属于车道2,行车轨迹5属于车道3,行车轨迹6、7属于车道4。应理解,图11和图12中仅示出了部分行车轨迹。
[0136]
方式二,识别装置将多个车辆在视频中的行车轨迹和预设数目输入至聚合处理算法,输出则为多个车辆在视频中的行车轨迹聚合获得的预设数目条行车轨迹。识别装置确定任意相邻的两条行车轨迹的中心线(确定两条行车轨迹的中心线的方式在前文中有描述,此处不再赘述),将相邻的两条行车轨迹的中心线,确定为车道的车道线,此处对于左侧行车轨迹所属的车道,该中心线即为该车道的右车道线,对于右侧行车轨迹所属的车道,该中心线即为该车道的左车道线。此处需要说明的是,聚合处理算法可以是任意一种可以进行曲线拟合的算法,如最小二乘法等。
[0137]
方式三,识别装置根据多个车辆在视频中的行车轨迹、步骤703确定出的车道和聚类处理算法,获得视频中修正后的车道。
[0138]
在本实施中,识别装置获取车道识别线,确定多个车辆在视频中的行车轨迹中每条行车轨迹与车道识别线的交点。然后识别装置将所有的交点的坐标和预设数目输入至聚合处理算法中,输出则为预设数目份交点。识别装置确定每份交点的中心点,确定相邻两份交点的中心点连线的中点。
[0139]
对于确定出的每个中点,识别装置确定步骤703中确定的车道中距离该中点最近的车道的车道线,将过该中点且平行于该车道线的线,确定为该中点对应的新的车道线。按照这种方式,可以确定出每个中点对应的新的车道线。识别装置将相邻的新的车道线之间的区域,确定为车道。此处需要说明的是,对于待识别区域中最左侧的车道或者最右侧的车道,识别装置将待识别区域的左边界线与相邻的新的车道线之间的区域,确定为车道,识别装置将待识别区域的右边界线与相邻的新的车道线之间的区域,确定为车道。这样,识别装置实现对步骤703确定出的车道进行更新。
[0140]
例如,如图11所示,目标数目为4,步骤703中识别出的车道数目为5,车道修正前为:行车轨迹1属于车道1,行车轨迹2、3、4属于车道2,行车轨迹5属于车道3,行车轨迹6属于车道4,行车轨迹7属于车道5。通过计算确定出3个中点,识别装置确定距离每个中点最近的车道线,然后确定过每个中点且平行于最近的车道线的线,作为新的车道线。然后识别装置依次将待识别区域的左边界线、新的车道线和右边界线两两组成车道的车道线,即获得更新后的车道1、车道2、车道3和车道4,如图13所示。应理解,图13中仅示出了部分行车轨迹。
[0141]
这样,在步骤703确定出的车道不准确时,还可以对车道进行修正,以获得准确的车道。上述方式一和方式二是将重新确定的车道,确定为视频中的车道,而方式三是对已经确定出的车道进行修正,获得视频中的车道。
[0142]
由于本申请实施例可以实时获取视频,确定车道,所以在监控设备的拍摄角度发生改变之后,也可以确定出视频中的正确车道。
[0143]
可选的,在一种可能的实现方式中,确定了视频中的车道之后,识别装置还可以确定每个车道的行驶类型,具体处理为:
[0144]
识别装置根据车辆类型检测算法确定每个车辆的类型,根据多个车辆的类型和多个车辆在视频中的行车轨迹,确定视频中的已识别的每条车道的行驶类型,车道的行驶类型用于指示每条车道上可以行驶的车辆的类型。
[0145]
其中,车辆的类型可以包括小汽车、公交车、大客车等。
[0146]
本实施例中,识别装置还可以将视频中的每个视频帧输入至车辆类型检测模型中,获取每个边界框内的车辆的类型,即获取到视频中多个车辆中每个车辆的类型。
[0147]
然后识别装置确定视频中的每个车道包括的行车轨迹,对于任一车道,识别装置确定该车道中包括的行车轨迹所属的车辆的类型,若该车道仅包括一种车辆的类型,则将该类型确定为该车道的行驶类型,若该车道包括多种车辆的类型,但是某种车辆的类型的行车轨迹的数目远大于其他车辆的行车轨迹的数目(如车辆的类型1的行车轨迹的数目占总的行车轨迹的数目比例大于98%等),则可以确定该车道的行驶类型为占比较大的车辆的类型。例如,某个车道仅包括公交车的类型,该车道为公交车道。若该车道包括多种车辆的类型,且各种车辆的类型的行车轨迹中任意两种车辆的类型的行车轨迹的数目之差小于一定数值,则确定该车道的行驶类型为混合类型,也就是说该车道上可以行驶各种类型的车辆。
[0148]
可选的,在一种可能的实现方式中,监控设备拍摄的交通道路包括路口,待识别区域为该路口在视频中的区域。识别装置可以获取监控设备拍摄的延长视频,延长视频为监控设备拍摄视频的后一段时间拍摄的视频,也即监控设备拍摄视频的后一段时间拍摄的视频是车辆从步骤701拍摄的视频的车道中驶向路口的视频。此处以拍摄延长视频的监控设备与步骤701中的监控设备为同一监控设备为例进行说明,此前提是步骤701中的监控设备可以拍摄到车辆经过路口的视频。在步骤701中的监控设备拍摄不到车辆经过路口的视频的情况下,识别装置可以确定与步骤701的监控设备属于同一路口,且能拍摄到车辆经过路口的监控设备,然后获取该监控设备拍摄的拍摄时间在拍摄步骤701的视频之后一段时间内的视频(该一段时间比较短,如1分钟等),该视频即为延长视频。
[0149]
识别装置可以按照图7中的方式确定多个车辆在延长视频中的行车轨迹(后续可以称为是延长行车轨迹),然后识别装置可以根据多个车辆的在延长视频中的行车轨迹所属车辆的属性(如车牌号码)和步骤702中已获得的行车轨迹所属车辆的属性,确定属于同一车辆的行车轨迹。识别装置将属于同一车辆的行车轨迹中,车辆在路口的行车轨迹确定为步骤702中获得的行车轨迹的延长行车轨迹。在步骤703之后,识别装置还可以基于延长行车轨迹,确定每个车道的属性,车道的属性用于指示该车道上行驶的车辆所能行驶的方向,具体处理为:
[0150]
识别装置根据多个车辆在视频中的行车轨迹和多个车辆在延长视频中的行车轨
迹,确定视频中的车道的属性,每条车道的属性包括以下属性中的任意一种:右转车道、左转车道、直行车道、右转直行车道、左转直行车道和混合车道。
[0151]
其中,右转车道为仅用于车辆向右转弯的车道;左转车道为仅用于车辆向左转弯的车道;直行车道为仅用于车辆朝前方行驶的车道;右转直行车道为用于车辆向右转弯和朝前行驶的车道;左转直行车道为用于车辆向左转弯和朝前行驶的车道;混合车道为用于车辆向右转弯、向左转弯和朝前行驶的车道。
[0152]
本实施例中,对于视频中的任一车道,识别装置可以获取该车道中的行车轨迹的延长行车轨迹,然后确定属于该车道的每条行车轨迹的延长行车轨迹与待识别区域的边界线的延长线是否相交,基于是否相交,确定车道的属性。例如,如图14所示,表示出行车轨迹1的延长行车轨迹与待识别区域的左边界线的延长线相交,行车轨迹2的延长行车轨迹与待识别区域的右边界线的延长线相交,行车轨迹3的延长行车轨迹与待识别区域的左边界线的延长线、待识别区域的右边界线的延长线均不相交。
[0153]
若某个车道中大于或等于m%(如m为97等)的行车轨迹的延长行车轨迹与待识别区域的左边界线的延长线均相交,则确定该车道为左转车道。若某个车道中大于或等于m%的行车轨迹的延长行车轨迹与待识别区域的右边界线的延长线均相交,则确定该车道为右转车道。若某个车道大于或等于m%的行车轨迹的延长行车轨迹与待识别区域的左边界线的延长线不相交,且与待识别区域的右边界线的延长线也不相交,则确定该车道为直行车道。若属于某个车道的部分行车轨迹的延长行车轨迹与待识别区域的左边界线的延长线不相交,属于该车道的另一部分行车轨迹的延长行车轨迹与待识别区域的右边界线的延长线相交,则确定该车道为右转直行车道。若属于某个车道的部分行车轨迹的延长行车轨迹与待识别区域的右边界线的延长线不相交,属于该车道的另一部分行车轨迹的延长行车轨迹与待识别区域的左边界线的延长线相交,则确定该车道为左转直行车道。另外,若属于某个车道的部分行车轨迹的延长行车轨迹与待识别区域的左边界线的延长线相交,且属于该车道的另一部分行车轨迹的延长行车轨迹与待识别区域的右边界线的延长线相交,且属于该车道的另一部分行车轨迹的延长行车轨迹与待识别区域的右边界线的延长线、左边界线的延长线均不相交,则确定该车道为混合车道,混合车道可以用于各种行驶方向的车辆行驶。其中,待识别区域的边界线实际上是车道的车道线,该车道为待识别区域中最左侧的车道和最右侧的车道。例如,待识别区域属于车辆朝北行驶的路口,待识别区域的左边界线为该路口的最左侧车道的左车道线,待识别区域的右边界线为该路口的最右侧车道的右车道线。
[0154]
需要说明的是,为了使判断出的车道的属性更准确,识别装置在使用每个车道的行车轨迹,确定每个车道的属性时,使每个车道的行车轨迹的数目要尽可能的多,如数目要大于50等。
[0155]
还需要说明的是,上述识别装置确定属于该车道的每条行车轨迹的延长行车轨迹与待识别区域的边界线的延长线是否相交的方式可以有多种,可以使用但是不限于如下方式:
[0156]
识别装置可以判断行车轨迹的延长行车轨迹上的点是否分布于待识别区域的边界线的延长线的两侧。若行车轨迹的延长行车轨迹上的点分布于待识别区域的边界线的延长线的两侧,则确定行车轨迹的延长行车轨迹与待识别区域的边界线的延长线相交;若行
车轨迹的延长行车轨迹上的点没有分布于待识别区域的边界线的延长线的两侧,则确定行车轨迹的延长行车轨迹与待识别区域的边界线的延长线未相交。
[0157]
可选的,在确定了视频中的待识别区域的车道分布之后,后续识别装置还可以确定每个行车方向的车道的车流量,使用车道的属性和各车道的车流量,调整路口的交通指示灯的时长。
[0158]
在一种可能的实现方式中,在步骤703之后,识别装置可以确定出各车道的车流量,具体处理为:
[0159]
识别装置确定视频中的各车道的车流量。
[0160]
本实施例中,识别装置可以确定出视频中的车道后,可以确定属于各车道的行车轨迹,进一步确定各车道一段时间内的行车轨迹的数目,将各车道的行车轨迹的数目,确定为视频中的各车道的流量。
[0161]
另外,识别装置在确定出视频中的车道、车道的属性和车道的车流量后,可以发送至其他设备,其他设备可以基于视频中的车道、车道的属性和车道的车流量进行相应的处理。例如,其他设备可以基于视频中的车道,确定交通违规事件。再例如,其他设备可以基于车流量调控路口的交通指示灯等。再例如,其他设备可以基于视频中车道的属性,确定公交车的车道是否被其他非公交车车辆占用等。
[0162]
另外,本申请实施例中,识别装置还可以通过边界框在前后两个视频帧中的位置,确定出边界框所属车辆的行驶方向(如边界框在后一个视频帧的位置距离视频帧顶部的距离小于该边界框在前一个视频帧的位置距离视频帧顶部的距离,可以确定边界框所属车辆是向前行驶,反之向后行驶),进一步能确定出车道上车辆的行驶方向。另外,识别装置还可以确定出监控设备是正向安装,还是反向安装。正向安装指监控设备拍摄到车辆的车尾,反向安装指监控设备拍摄到车辆的车头。具体的,边界框在后一视频帧中的位置距离视频帧顶部的距离小于边界框在前一个视频帧的位置距离视频帧顶部的距离,可以确定监控设备是反向安装,反之为正向安装。
[0163]
另外,本申请实施例中由于不依赖于通过识别视频帧中拍摄到的车道线,来识别出车道,所以即使在低照度、恶劣天气导致拍摄的视频中的车道线模糊的情况下,也能识别出车道。
[0164]
另外,本申请实施例中,步骤701中识别装置可以实时从监控设备获取视频,所以可以实时确定出视频中的车道。
[0165]
本申请实施例中,识别装置可以获取设置于交通道路的监控设备拍摄的视频,视频记录了交通道路上行驶的多个车辆,确定每个车辆在视频的多个视频帧的位置。然后基于每个车辆在视频的多个视频帧的位置,确定出每个车辆在视频中的行车轨迹,最后根据每个车辆在视频中的行车轨迹,确定出视频中的车道。这样,由于识别装置可以动态的根据视频,确定出视频中的车道,而不需要人工预先确定,所以即使监控设备的拍摄角度发生变化,识别装置也可以比较及时地获取角度变化后的视频中的车道,进而可以提升交通事件分析结果的准确性。
[0166]
图15是本申请实施例提供的识别车道的装置(即识别装置)的结构图。该识别装置可以通过软件、硬件或者两者的结合实现成为识别装置中的部分或者全部。本申请实施例提供的识别装置可以实现本申请实施例图7和图9所述的流程,该识别装置包括:获取模块
1510、确定模块1520和识别模块1530,其中:
[0167]
获取模块1510,用于获取设置于交通道路的监控设备拍摄的视频,所述视频记录了行驶在所述交通道路上的多个车辆,具体可以用于实现步骤701中的获取功能以及执行步骤701包含的隐含步骤;
[0168]
确定模块1520,用于确定所述多个车辆中的每个车辆在所述视频的多个视频帧中的位置,根据所述每个车辆在所述视频的多个视频帧中的位置,确定所述每个车辆在所述视频中的行车轨迹,具体可以用于实现步骤702确定功能以及执行步骤702包含的隐含步骤;
[0169]
识别模块1530,用于根据所述多个车辆在所述视频中的行车轨迹,识别所述视频中的至少一条车道,具体可以用于实现步骤703识别功能以及执行步骤703包含的隐含步骤。
[0170]
在一种可能的实现方式中,所述确定模块1520,还用于:
[0171]
根据车辆类型检测模型确定所述每个车辆的类型;
[0172]
根据所述多个车辆的类型和所述多个车辆在所述视频中的行车轨迹,确定所述视频中的已识别的每条车道的行驶类型,所述行驶类型用于指示所述每条车道上可以行驶的车辆的类型。
[0173]
在一种可能的实现方式中,所述确定模块1520,还用于:
[0174]
当所述监控设备拍摄的所述交通道路包括路口时,获取所述监控设备拍摄的延长视频,所述延长视频为所述监控设备在拍摄所述视频的后一段时间拍摄的视频;
[0175]
确定所述多个车辆在所述延长视频中的行车轨迹;
[0176]
根据所述多个车辆在所述视频中的行车轨迹和所述多个车辆在所述延长视频中的行车轨迹,确定所述视频中的已识别的每条车道的属性,每条车道的属性包括以下属性中的任意一种及其组合:右转车道、左转车道、直行车道、右转直行车道、左转直行车道和混合车道。
[0177]
在一种可能的实现方式中,所述识别模块1530,具体用于:
[0178]
确定所述视频中的第一车辆的行车轨迹与相邻车道的距离,所述相邻车道为已识别的车道中与所述第一车辆的行车轨迹距离最近的车道;
[0179]
比较所述距离与所述第一车辆的像素宽度的大小,确定所述距离大于所述第一车辆的像素宽度;
[0180]
根据所述第一车辆的行车轨迹确定一条新的车道,所述新的车道为识别出的所述至少一条车道中的一条车道。
[0181]
在一种可能的实现方式中,所述确定模块1520,还用于:
[0182]
统计所述视频中的每条车道的车流量。
[0183]
在一种可能的实现方式中,所述识别模块1530,还用于:
[0184]
当识别出的车道的数目不等于预设数目时,根据所述预设数目和所述每个车辆在所述视频中的行车轨迹,获得所述视频中的至少一条修正后的车道;
[0185]
其中,所述预设数目为所述视频中被检测的车道的实际数目。
[0186]
在一种可能的实现方式中,所述确定模块1520,还用于:
[0187]
确定所述视频中的待识别区域;
[0188]
所述识别模块1530,具体用于:
[0189]
根据所述多个车辆在所述视频中的待识别区域内的行车轨迹,识别所述视频中的待识别区域内的至少一条车道。
[0190]
在一种可能的实现方式中,所述获取模块1510,具体用于:
[0191]
实时接收设置于所述交通道路的监控设备拍摄的视频流;或者,
[0192]
周期性地获取设置于所述交通道路的监控设备拍摄的所述视频。
[0193]
在一种更具体的实施例中,上述获取模块1510用于执行图7中获取监控设备拍摄的视频的流程。上述确定模块1520用于执行图7中确定行车轨迹的流程。上述识别模块1530用于执行图7中识别视频中的车道的处理,以及图9所示的流程。
[0194]
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成为一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0195]
本申请还提供了一种如图4所示的计算设备400,计算设备400中的处理器402读取存储器401存储的一组计算机指令以执行前述识别车道的方法。
[0196]
上述各个附图对应的流程的描述各有侧重,某个流程中没有详述的部分,可以参见其他流程的相关描述。
[0197]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。实现识别车道的计算机程序产品包括一个或多个识别车道的计算机指令,在计算机上加载和执行这些计算机程序指令时,全部或部分地实现本申请实施例图7和图9所述的流程或者实现本申请实施例图15所述的装置的功能。
[0198]
该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质存储有实现车辆的盲区检测的计算机程序指令的可读存储介质。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如ssd)。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1