发明内容
本申请实施例提供了一种交通标识的识别方法及装置、电子设备和存储介质,以至少解决在高精度地图标注交通标识时存在精度低、效率低的技术问题。
根据本申请实施例的一个方面,提供了一种交通标识的识别方法,包括:获取车辆行驶过程中采集的数据,其中,数据包括:图像以及点云数据;对图像进行检测,得到图像中的各交通标识的初始检测值序列,并分别从各交通标识的初始检测值序列中选择一个目标检测值,得到交通标识的目标检测值序列,其中,初始检测值序列中包括各交通标识在各个采集时刻下的检测值;对目标检测值序列中的目标检测值进行分组,并从点云数据中选取每个分组对应的点云数据;从每个分组对应的点云数据中确定每个分组中各交通标识对应的点云数据,并依据各交通标识对应的点云数据确定各交通标识在参考坐标系下的轮廓;依据各交通标识在参考坐标系下的轮廓在地图中标注各交通标识。
可选地,对图像进行检测,得到图像中的各交通标识的初始检测值序列,包括:将图像输入至目标检测模型,得到图像中各交通标识的检测值,其中,检测值包括:各交通标识在图像中的像素位置、各交通标识的类别、各交通标识的置信度以及各交通标识所在帧的图像的时间戳;对各交通标识进行多目标跟踪处理,得到各交通标识在各个时刻下的检测值。
可选地,分别从各交通标识的初始检测值序列中选择一个目标检测值,得到交通标识的目标检测值序列,包括:设置图像的目标检测范围以及预设面积阈值;依据目标检测范围以及预设面积阈值确定各交通标识的初始检测值序列中包括的检测值的检测得分;对各交通标识的检测值的检测得分进行排序,将检测得分最高的检测值作为各交通标识的目标检测值;对各交通标识的目标检测值按照采集时刻进行排序,得到目标检测值序列。
可选地,依据目标检测范围以及预设面积阈值确定各交通标识的初始检测值序列中包括的检测值的检测得分,包括:依据各交通标识的初始检测值序列中包括的检测值和预设面积阈值计算各检测值都对应的面积得分;依据各交通标识的初始检测值序列中包括的检测值和目标检测范围计算各检测值对应的位置得分;将各检测值的面积得分和位置得分的和作为各检测值的检测得分。
可选地,对目标检测值序列中的目标检测值进行分组,并从点云数据中选取每个分组对应的点云数据,包括:按照时间间隔对目标检测值序列中的目标检测值进行分组;确定每个分组中包含的目标检测值的起始采集时刻和结束采集时刻;从点云数据中分别确定每个分组的起始采集时刻和结束采集时刻的时间段内采集的点云数据,得到每个分组对应的点云数据。
可选地,从每个分组对应的点云数据中确定每个分组中各交通标识对应的点云数据,包括:分别将每个分组对应的点云数据进行拼接;对拼接之后的每个分组对应的点云数据进行语义分割,得到每个分组中的交通标识对应的点云数据;分别从每个分组中的交通标识对应的点云数据中确定每个分组中各交通标识对应的点云数据。
可选地,分别将每个分组对应的点云数据进行拼接,包括:将每个分组对应的点云数据在雷达坐标系下的坐标转换为在车辆的车身坐标系下的坐标;将每个分组对应的点云数据在车身坐标系下的坐标转换为在世界坐标系下的坐标;依据每个分组对应的点云数据在世界坐标系下的坐标对点云数据进行拼接。
可选地,将每个分组对应的点云数据在雷达坐标系下的坐标转换为在车辆的车身坐标系下的坐标,包括:依据雷达坐标系到车辆的车载相机的相机坐标系的转换矩阵,将每个分组对应的点云数据在雷达坐标系下的坐标转换为在相机坐标系下的坐标;依据车载相机的外参矩阵,将每个分组对应的点云数据在相机坐标系下的坐标转换为在车身坐标系下的坐标。
可选地,将每个分组对应的点云数据在车身坐标系下的坐标转换为在世界坐标系下的坐标,包括:依据车身坐标系到世界坐标系的转换矩阵,将每个分组对应的点云数据在车身坐标系下的坐标转换为在世界坐标系下的坐标,其中,车身坐标系到世界坐标系的转换矩阵依据车辆的轨迹数据确定,轨迹数据包括车辆在世界坐标系下不同时刻的位姿。
可选地,分别从每个分组中的交通标识对应的点云数据中确定每个分组中各交通标识对应的点云数据,包括:将每个分组中的交通标识对应的点云数据在世界坐标系下的坐标转换为在车身坐标系下的坐标;将每个分组中的交通标识对应的点云数据在车身坐标系下的坐标转换为在相机坐标系下的坐标;依据车载相机的内参矩阵,将每个分组中的交通标识对应的点云数据在相机坐标系下的坐标转换为在图像坐标系下的坐标,其中,图像坐标系是以图像的左上角为原点建立的坐标系;依据各交通标识的目标检测值中的交通标识类别和每个分组中的交通标识对应的点云数据在图像坐标系下的坐标,确定每个分组中各交通标识对应的点云数据。
可选地,参考坐标系为世界坐标系,依据各交通标识对应的点云数据确定各交通标识在参考坐标系下的轮廓,包括:删除各交通标识对应的点云数据中的噪声点;依据删除噪声点之后的各交通标识对应的点云数据确定各交通标识在车辆的车载相机的相机坐标系下的轮廓;将各交通标识在相机坐标系下的轮廓转换为在世界坐标系下的轮廓,得到各交通标识的候选轮廓;去除各交通标识的候选轮廓中重合度大于设定阈值的候选轮廓,得到各交通标识在世界坐标系下的轮廓。
可选地,删除各交通标识对应的点云数据中的噪声点,包括:从各交通标识对应的点云数据中随机选取至少三个点;依据至少三个点确定一个物理平面;分别计算各交通标识对应的点云数据中的每个点到物理平面的距离;如果距离大于第一预设阈值,确定距离对应的点为噪声点,并计算噪声点占各交通标识对应的点云数据的比例;选取比例最低的物理平面作为目标物理平面;依据各交通标识对应的点云数据中的每个点到目标物理平面的距离删除各交通标识对应的点云数据中的噪声点。
可选地,去除各交通标识的候选轮廓中重合度大于设定阈值的候选轮廓,包括:分别计算每两个交通标识的候选轮廓的欧氏距离;如果欧氏距离小于第二预设阈值,计算该两个交通标识的候选轮廓面积的重合度;如果重合度超过第三预设阈值,将该两个交通标识的检测值中置信度较低的一个交通标识删除。
可选地,得到各交通标识在世界坐标系下的轮廓之后,上述方法还包括:获取对各交通标识的目标检测值以及其在世界坐标系下的轮廓进行人工校验的校验指令;依据校验指令对各交通标识进行校验。
根据本申请实施例的另一方面,还提供了一种交通标识的识别装置,包括:获取模块,用于获取车辆行驶过程中采集的数据,其中,数据包括:图像以及点云数据;检测模块,用于对图像进行检测,得到图像中的各交通标识的初始检测值序列,并分别从各交通标识的初始检测值序列中选择一个目标检测值,得到交通标识的目标检测值序列,初始检测值序列中包括各交通标识在各个采集时刻下的检测值;分组模块,用于对目标检测值序列中的目标检测值进行分组,并从点云数据中选取每个分组对应的点云数据;确定模块,用于从每个分组对应的点云数据中确定每个分组中各交通标识对应的点云数据,并依据各交通标识对应的点云数据确定各交通标识在参考坐标系下的轮廓;标注模块,用于依据各交通标识在参考坐标系下的轮廓在地图中标注各交通标识。
根据本申请实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行以上的交通标识的识别方法。
根据本申请实施例的再一方面,还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现以上的交通标识的识别方法。
在本申请实施例中,采用获取车辆行驶过程中采集的数据,其中,数据包括:图像以及点云数据;对图像进行检测,得到图像中的各交通标识的初始检测值序列,并分别从各交通标识的初始检测值序列中选择一个目标检测值,得到交通标识的目标检测值序列,其中,初始检测值序列中包括各交通标识在各个采集时刻下的检测值;对目标检测值序列中的目标检测值进行分组,并从点云数据中选取每个分组对应的点云数据;从每个分组对应的点云数据中确定每个分组中各交通标识对应的点云数据,并依据各交通标识对应的点云数据确定各交通标识在参考坐标系下的轮廓;依据各交通标识在参考坐标系下的轮廓在地图中标注各交通标识的方式,从而实现了提高了在高精度地图中标注交通标识的精度和效率的技术效果,进而解决了在高精度地图标注交通标识时存在精度低、效率低技术问题。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本申请实施例,提供了一种交通标识的识别方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的一种交通标识的识别方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取车辆行驶过程中采集的数据,其中,数据包括:图像以及点云数据;
根据本申请的一个可选的实施例,在执行步骤S102时,车辆在行驶的过程中按照预设时间间隔采集数据。车辆包括车载相机、车载雷达、车载定位模块。
上述车载雷达包括但不限于激光雷达,且车载相机和车载激光雷达都是经过准确地标定的,标定数据如下:
车载相机的内参矩阵 :
,其中,
,
为摄像机镜头的焦距,
,
为图像中心。
以车辆的惯性测量单元(Inertial Measurement Unit,IMU)作为参考点,摄像头外参矩阵:
,其中,R为旋转矩阵,T为位移向量。
以摄像头作为参考点,激光雷达到车载相机的转换矩阵:
上述摄像头外参矩阵和激光雷达到车载相机的转换矩阵中的R11-R33,T11-T13表示两个矩阵中的参数类型的表现形式相同,并不代表两个转换矩阵中的具体数值相同。定位模块用于获取车辆的轨迹数据。轨迹数据、车载相机采集的图像以及车载雷达的点云数据带有同一时钟下的时间戳。
步骤S104,对图像进行检测,得到图像中的各交通标识的初始检测值序列,并分别从各交通标识的初始检测值序列中选择一个目标检测值,得到交通标识的目标检测值序列,其中,初始检测值序列中包括各交通标识在各个采集时刻下的检测值;
需要说明的是,交通标识指交通指示标识、信号灯等,例如,禁止通行标识、禁止停车标识、红绿灯等。
步骤S106,对目标检测值序列中的目标检测值进行分组,并从点云数据中选取每个分组对应的点云数据;
步骤S108,从每个分组对应的点云数据中确定每个分组中各交通标识对应的点云数据,并依据各交通标识对应的点云数据确定各交通标识在参考坐标系下的轮廓;
步骤S110,依据各交通标识在参考坐标系下的轮廓在地图中标注各交通标识。
通过上述步骤,将车辆采集的图像和点云数据作为数据源,通过对图像检测得到图像中各交通标识的检测值,根据各交通标识的检测值从点云数据中筛选出各交通标识对应的点云数据,然后根据各交通标识对应的点云数据确定各交通标识的轮廓,最后利用各交通标识的轮廓在地图中标注各交通标识,从而实现了提高在高精度地图中标注交通标识的精度和效率的技术效果。
根据本申请的一个可选的实施例中,执行步骤S104时,对图像进行检测,得到图像中的各交通标识的初始检测值序列,包括以下步骤:将图像输入至目标检测模型,得到图像中各交通标识的检测值,其中,检测值包括:各交通标识在图像中的像素位置、各交通标识的类别、各交通标识的置信度以及各交通标识所在帧的图像的时间戳;对各交通标识进行多目标跟踪处理,得到各交通标识在各个时刻下的检测值。
在本步骤中,首先可基于对Center Net模型的训练得到图像检测模型,用于检测每一帧图像中的交通标识。设一帧图像检测得到n个交通标识,则每个交通标识的检测值为:
其中,
为交通标识在图像中的坐标,如图2所示,h和w分别为交通标识的高和宽;
分别为交通标识左上角顶点的坐标。Class为交通标识的类别,
为交通标识的置信度,timestamp为该交通标识所在的图像的时间戳。Center Net是一种目标检测网络模型,在检测速度和检测精度上有优势。
然后,可基于多目标跟踪算法-Deepsort对每个交通标识进行多目标跟踪,每一个交通标识经过多目标跟踪算法后带有唯一的识别标识track ID,最终得到采集数据中所有出现在图像中的交通标识的初始检测值序列,初始检测值序列例如为交通标识列表,列表中每一个交通标识的数据形式如下:
根据本申请的另一个可选的实施例,在执行步骤S104时,分别从各交通标识的初始检测值序列中选择一个目标检测值,得到交通标识的目标检测值序列,通过以下方法实现:设置图像的目标检测范围以及预设面积阈值;依据目标检测范围以及预设面积阈值确定各交通标识的初始检测值序列中包括的检测值的检测得分;对各交通标识的检测值的检测得分进行排序,将检测得分最高的检测值作为各交通标识的目标检测值;对各交通标识的目标检测值按照采集时刻进行排序,得到目标检测值序列。
在本申请的一个可选的实施例中,依据目标检测范围以及预设面积阈值确定各交通标识的初始检测值序列中包括的检测值的检测得分,包括以下步骤:依据各交通标识的初始检测值序列中包括的检测值和预设面积阈值计算各检测值都对应的面积得分;依据各交通标识的初始检测值序列中包括的检测值和目标检测范围计算各检测值对应的位置得分;将各检测值的面积得分和位置得分的和作为各检测值的检测得分。
经过图像检测和多目标跟踪之后,得到交通标识的初始检测值序列,此时的每一个交通标识带有唯一识别标识track ID,这个序列中的每个检测值是同一个交通标识不同采集时刻下的状态,通过其在图像中的位置,选择一个最佳的检测值作为后续测量其在世界坐标系中的位置的输入。选择方法如下:
1)根据图像质量和图像检测模型性能确定图像最佳检测位置,如图3所示,最佳检测位置实质上是一个检测范围,分别包括在图像坐标系的X轴方向和Y轴方向的最大值和最小值;
2)设定面积阈值S;
3)计算某一时刻的检测值的检测得分;
设某一时刻的检测值为:
,其中,
为检测值对应的面积得分,
为检测值对应的位置得分。
交通标识的检测值如果位于图3所示的检测范围外,
。
4)对所有的检测值得分进行排序,取得分最高的检测值作为上述目标检测值。
经过筛选后,根据各目标检测值的采集时刻(即各目标检测值中的时间戳timestamp)进行升序排序,得到交通标识的目标检测值序列
。
在本申请的一些可选的实施例中,步骤S106通过以下方法实现:按照时间间隔对目标检测值序列中的目标检测值进行分组;确定每个分组中包含的目标检测值的起始采集时刻和结束采集时刻;从点云数据中分别确定每个分组的起始采集时刻和结束采集时刻的时间段内采集的点云数据,得到每个分组对应的点云数据。
根据预设的时间跨度阈值T,对交通标识目标检测值序列
进行分组,例如以
的
为起始采集时刻,则第一组目标检测值的时间戳范围为
,假设
的时间戳
>
,
的时间戳
<
,则
至
为一组。再以
为起始采集时刻依次往后分组。
对
进行分组后,得到每一组目标检测值的起始采集时刻和结束采集时刻,根据起始采集时刻和结束采集时刻可以得到每一组目标检测值相对应的激光雷达三维点云数据,为了保证每一个交通标识有足够的三维点云数据,激光雷达数据的时间戳可以进行适当的放宽,例如每一组目标检测值的起始采集时刻往前取1s,结束采集时刻往后取1s。
根据本申请的一个可选的实施例,在执行步骤S108时,从每个分组对应的点云数据中确定每个分组中各交通标识对应的点云数据,包括以下步骤:分别将每个分组对应的点云数据进行拼接;对拼接之后的每个分组对应的点云数据进行语义分割,得到每个分组中的交通标识对应的点云数据;分别从每个分组中的交通标识对应的点云数据中确定每个分组中各交通标识对应的点云数据。
通过对该时间段内的所有激光雷达三维点云数据进行拼接,拼接之后可以将比较稀疏的单帧点云变为比较稠密的拼接点云,有利于提高点云分割模型的分割精度和准确率。进行点云拼接时,首先需要将点云数据的坐标转换到世界坐标系下。
在一个可选的实施例中,分别将每个分组对应的点云数据进行拼接,通过以下方法实现:将每个分组对应的点云数据在雷达坐标系下的坐标转换为在车辆的车身坐标系下的坐标;将每个分组对应的点云数据在车身坐标系下的坐标转换为在世界坐标系下的坐标;依据每个分组对应的点云数据在世界坐标系下的坐标对点云数据进行拼接。
可选地,将每个分组对应的点云数据在雷达坐标系下的坐标转换为在车辆的车身坐标系下的坐标,包括以下步骤:依据雷达坐标系到车辆的车载相机的相机坐标系的转换矩阵,将每个分组对应的点云数据在雷达坐标系下的坐标转换为在相机坐标系下的坐标;依据车载相机的外参矩阵,将每个分组对应的点云数据在相机坐标系下的坐标转换为在车身坐标系下的坐标。
可选地,将每个分组对应的点云数据在车身坐标系下的坐标转换为在世界坐标系下的坐标,包括以下步骤:依据车身坐标系到世界坐标系的转换矩阵,将每个分组对应的点云数据在车身坐标系下的坐标转换为在世界坐标系下的坐标,其中,车身坐标系到世界坐标系的转换矩阵依据车辆的轨迹数据确定,轨迹数据包括车辆在世界坐标系下不同时刻的位姿。
图4是根据本申请实施例的一种车辆在车身坐标系和世界坐标系的示意图,如图4所示,车辆轨迹数据记录了车辆在地图坐标系下的不同时刻的位姿,可以根据某一时刻的车辆位姿
得到车辆的车身坐标系到世界坐标系的转换矩阵
:
根据激光雷达到车载相机的转换矩阵
和摄像头外参矩阵
可以将激光雷达坐标系下的点云数据转换到车辆的车身坐标系下:
再根据车辆的车身坐标系到世界坐标系的转换矩阵将点云数据的坐标转换到世界坐标系下:
在对拼接之后的每个分组对应的点云数据进行语义分割中,基于KPConv PointNet训练得到三维点云语义分割模型,用于拼接点云的语义分割得到每一份拼接点云中属于交通标识类别的三维点云数据,需要说明的是,KPConv Point Net是一种适用于点云数据的神经网络卷机模型。
在本申请的一些可选的实施例中,分别从每个分组中的交通标识对应的点云数据中确定每个分组中各交通标识对应的点云数据,通过以下方法实现:将每个分组中的交通标识对应的点云数据在世界坐标系下的坐标转换为在车身坐标系下的坐标;将每个分组中的交通标识对应的点云数据在车身坐标系下的坐标转换为在相机坐标系下的坐标;依据车载相机的内参矩阵,将每个分组中的交通标识对应的点云数据在相机坐标系下的坐标转换为在图像坐标系下的坐标,其中,图像坐标系是以图像的左上角为原点建立的坐标系;依据各交通标识的目标检测值中的交通标识类别和每个分组中的交通标识对应的点云数据在图像坐标系下的坐标,确定每个分组中各交通标识对应的点云数据。
此时已经得到了每一组交通标识对应的拼接点云分割结果,为了得到该组中每一个交通标识在世界坐标中的坐标,需要结合交通标识的点云坐标。由于拼接点云中的点云坐标是世界坐标系下的,需要将其转换到相机坐标系下 ,参见图4,可以根据该交通标识的时间戳timestamp得到车辆的位姿,并得到该时刻车辆的车身坐标系到世界坐标系的转换矩阵I2Map,将点云坐标从世界坐标系转换到车辆的车身坐标系下:
再根据相机的标定参数将点云数据的坐标从车辆的车身坐标系转换到相机坐标系下:
点云数据的坐标转换到相机坐标系之后,可以通过相机内参矩阵将其坐标投影到图像坐标系(图像坐标系是以图像的左上角为原点建立的坐标系)中:
根据交通标识在图像坐标系中的位置(可以从交通标识的检测值中确定),可以提取出在交通标识的框内的点云数据。上文中已经得到了三维点云中每一个点的类别,因此只要根据类别就可以筛选出属于每个交通标识的点云数据:
根据本申请的另一个可选的实施例,步骤S108中提到的参考坐标系为世界坐标系,此外,执行步骤S108时,依据各交通标识对应的点云数据确定各交通标识在参考坐标系下的轮廓,通过如下方式实现:删除各交通标识对应的点云数据中的噪声点;依据删除噪声点之后的各交通标识对应的点云数据确定各交通标识在车辆的车载相机的相机坐标系下的轮廓;将各交通标识在相机坐标系下的轮廓转换为在世界坐标系下的轮廓,得到各交通标识的候选轮廓;去除各交通标识的候选轮廓中重合度大于设定阈值的候选轮廓,得到各交通标识在世界坐标系下的轮廓。
在一个可选的实施例中,删除各交通标识对应的点云数据中的噪声点,包括以下步骤:从各交通标识对应的点云数据中随机选取至少三个点;依据至少三个点确定一个物理平面;分别计算各交通标识对应的点云数据中的每个点到物理平面的距离;如果距离大于第一预设阈值,确定距离对应的点为噪声点,并计算噪声点占各交通标识对应的点云数据的比例;选取比例最低的物理平面作为目标物理平面;依据各交通标识对应的点云数据中的每个点到目标物理平面的距离删除各交通标识对应的点云数据中的噪声点。
在上文中,已经得到了每个交通标识的三维点云数据(3D Points),此时的三维点云数据可能包含各种噪声点。因为交通标识的点云数据基本没有厚度且都处于同一个平面,利用RANSAC算法提取一个物理平面,根据设定的阈值筛除噪声点。剔除噪声点之后,提取交通标识的轮廓,找到交通标识的三维点云的上下左右边界,具体流程如下:
3)计算
中每一个点到该物理平面的距离,根据投影原理,点在平面上的投影点坐标为:
则点到物理平面的距离为:
4)若一个点到平面的距离大于设定的距离阈值则判断为噪声点,计算噪声点的比例;
5)循环m次后,选取计算噪声点的比例最低的物理平面作为最终的物理平面,根据该最终的物理平面提取剔除噪声点之后的三维点云数据(
),具体地,若一个点到该最终的物理平面的距离大于设定的距离阈值则判断为噪声点;
6)
作为输入,提取交通标识的上下左右边界,输出最后的矩形轮廓(相机坐标系下),如图5所示,得到最终的完整输出:
由于得到的交通标识的轮廓坐标是在相机坐标系下,为了得到其在世界坐标系下的坐标,需要进行坐标系转换。首先从相机坐标系转换到车辆的车身坐标系:
然后根据该交通标识的时间戳timestamp找到该时刻车辆轨迹位置,并得到车辆的车身坐标系到世界坐标系的坐标转换矩阵I2Map,将交通标识的轮廓坐标从车辆的车身坐标系转换到世界坐标系下:
最终可以得到每一个交通标识的完整信息:
在本申请的一些可选的实施例中,去除各交通标识的候选轮廓中重合度大于设定阈值的候选轮廓,通过以下方法实现:分别计算每两个交通标识的候选轮廓的欧氏距离;如果欧氏距离小于第二预设阈值,计算该两个交通标识的候选轮廓面积的重合度;如果重合度超过第三预设阈值,将该两个交通标识的检测值中置信度较低的一个交通标识删除。
得到每一个交通标识在世界坐标下轮廓(
),每一组交通标识中可能存在重复的交通标识,因此需要做一次后校验剔除重复的交通标识。首先计算两两交通标识之间的欧式距离,如图6所示(左上点和右下点),计算两个关键点的欧式距离d = d1+d2。若d小于第二预设阈值,则需要计算两两交通标识的候选轮廓面积之间的重合度,如图7所示,以IOU为准则计算两两交通标识的候选轮廓面积之间的重合度,第一交通标识的候选轮廓的面积为
, 第二交通标识的候选轮廓的面积为
, IOU 计算公式见公式为:
其中,
是第一目标和第二目标的面积的交集,
是第一目标和第二目标的面积的并集。
若两两目标之间的重合度(IOU)超过第三阈值,则保留置信度较高的一个。
IOU是一种测量在特定数据集中检测相应物体准确度的一个标准。IOU是两个区域重叠的部分除以两个区域的集合得出的结果。
根据本申请的一个可选的实施例,执行步骤S108时:将每个交通标识对应的目标检测值、每个交通标识对应的标号、每个交通标识的目标点云数据以及每个交通标识在世界坐标系下的轮廓作为每个交通标识的目标信息。
最终得到每一个交通标识的完整信息为:
为每个交通标识对应的目标检测值,
为每个交通标识对应的标号,
为每个交通标识的目标点云数据,
为每个交通标识在世界坐标系下的轮廓。
在本申请的另一些可选的实施例中,得到各交通标识在世界坐标系下的轮廓之后,还需要获取对各交通标识的目标检测值以及其在世界坐标系下的轮廓进行人工校验的校验指令;依据校验指令对各交通标识进行校验。
经过目标去重之后,输出在该段采集数据中地图上的交通标识列表。最后经过人工后校验,得到高精度地图中的所有交通标识分布位置。
本申请实施例提供的上述方法,以车辆采集的数据作为输入源,结合人工智能自动构建和人工后检验的方式,在保证高召回率和高精度的情况下,高效率地构建高精度地图中的交通标识。首先基于深度学习的方法自动检测图像和激光雷达三维点云中的交通标识,完成人工智能自动构建,提升制图效率,然后人工后校验修正输出结果,保证其精度和召回率 。
图8是根据本申请实施例的一种交通标识的识别装置的结构框图,如图8所示,该装置包括:
获取模块80,用于获取车辆行驶过程中采集的数据,其中,数据包括:图像以及点云数据;
检测模块82,用于对图像进行检测,得到图像中的各交通标识的初始检测值序列,并分别从各交通标识的初始检测值序列中选择一个目标检测值,得到交通标识的目标检测值序列,初始检测值序列中包括各交通标识在各个采集时刻下的检测值;
分组模块84,用于对目标检测值序列中的目标检测值进行分组,并从点云数据中选取每个分组对应的点云数据;
确定模块86,用于从每个分组对应的点云数据中确定每个分组中各交通标识对应的点云数据,并依据各交通标识对应的点云数据确定各交通标识在参考坐标系下的轮廓;
标注模块88,用于依据各交通标识在参考坐标系下的轮廓在地图中标注各交通标识。
需要说明的是,图8所示实施例的优选实施方式可以参见图1所示实施例的相关描述,此处不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行以上的交通标识的识别方法。
上述非易失性存储介质用于存储执行以下功能的程序:获取车辆行驶过程中采集的数据,其中,数据包括:图像以及点云数据;对图像进行检测,得到图像中的各交通标识的初始检测值序列,并分别从各交通标识的初始检测值序列中选择一个目标检测值,得到交通标识的目标检测值序列,其中,初始检测值序列中包括各交通标识在各个采集时刻下的检测值;对目标检测值序列中的目标检测值进行分组,并从点云数据中选取每个分组对应的点云数据;从每个分组对应的点云数据中确定每个分组中各交通标识对应的点云数据,并依据各交通标识对应的点云数据确定各交通标识在参考坐标系下的轮廓;依据各交通标识在参考坐标系下的轮廓在地图中标注各交通标识。
本申请实施例还提供了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令,以实现以上的交通标识的识别方法。
上述处理器用于运行执行以下功能的程序:获取车辆行驶过程中采集的数据,其中,数据包括:图像以及点云数据;对图像进行检测,得到图像中的各交通标识的初始检测值序列,并分别从各交通标识的初始检测值序列中选择一个目标检测值,得到交通标识的目标检测值序列,其中,初始检测值序列中包括各交通标识在各个采集时刻下的检测值;对目标检测值序列中的目标检测值进行分组,并从点云数据中选取每个分组对应的点云数据;从每个分组对应的点云数据中确定每个分组中各交通标识对应的点云数据,并依据各交通标识对应的点云数据确定各交通标识在参考坐标系下的轮廓;依据各交通标识在参考坐标系下的轮廓在地图中标注各交通标识。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。