具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在自动驾驶领域中,交通灯状态的准确识别对于自动驾驶、辅助驾驶、驾驶路线规划等应用场景具有重要的作用。而现有技术的交通灯状态识别,通常是获取直行方向的检测图像,识别检测图像中是否存在交通灯,以及识别检测图像中的交通灯颜色等,但仅结合检测图像识别交通灯状态,存在较大的局限性,识别精度低,且应用场景有限。
为了改善上述技术问题,本申请的发明人提出了本申请提供的交通灯状态检测方法、装置、车辆及存储介质,该交通灯状态检测方法应用于车辆,该方法包括:通过获取车辆在行驶方向采集的检测图像,对检测图像进行识别处理,获得交通灯识别结果,且获取车辆的位姿信息,以基于位姿信息在预设地图中查找对应的交通灯检索结果,进一步融合交通灯识别结果和交通灯检索结果从而获得交通灯目标检测结果,以结合检测图像和预设地图确定交通灯状态,提高交通灯状态检测的准确性。
请参阅图1,本申请一实施例提供的一种交通灯状态检测方法,该交通灯状态检测方法可以应用于车辆,该交通灯状态检测方法可以包括:步骤S110至步骤S140。
步骤S110、获取车辆在行驶方向采集的检测图像。
在本申请的实施例中,车辆可以设置图像采集装置,图像采集装置可以采集车辆在行驶方向的检测图像。可选地,图像采集装置可以采用车载摄像头。
在一些实施方式中,车辆可以设置多个图像采集装置,从而可以分别获取每个图像采集装置在车辆行驶方向采集的检测图像。
在一些实施方式中,多个图像采集装置对应的拍摄范围可以不同,从而根据多个图像采集装置所采集的图像组合获得更大拍摄范围的检测图像,从而可以获取到更多的图像信息,以获得车辆行驶方向上完整的交通灯图像信息。
可选地,当车辆设置多个图像采集装置时,可以将多个图像采集装置在同一时刻采集的图像归为同一组图像,从而方便对该时刻交通灯的状态进行检测。将多组图像按采集时间的先后进行排序,从而方便获取交通灯的连续时刻的交通灯变化情况。
可选地,可以采用三目摄像头进行图像采集。三目摄像头可以采用三个不同视野、不同探测距离的摄像头,从而可以覆盖不同范围的场景,可以获取不同探测距离的高清晰度的图像。
可选地,图像采集装置可以按照预设频率采集检测图像,如20Hz等。可以根据实际使用设置预设频率,本申请对此不作限制。
步骤S120、对检测图像进行识别处理,获得交通灯识别结果。
在本申请的实施例中,通过对检测图像进行识别处理,以确定检测图像中的交通灯识别结果。
在一些实施方式中,当采用多个图像采集装置进行图像采集时,可以获得多个检测图像。分别对每个检测图像进行识别处理,获得每个检测图像对应的局部交通灯识别结果,进而融合多个图像采集装置对应的局部交通灯识别结果获得交通灯识别结果。
可选地,多个图像采集装置进行图像采集时,多个图像采集装置的图像采集范围可能存在部分重叠,假设存在三个图像采集装置,分别为第一图像采集装置、第二图像采集装置、第三采集装置,第一图像采集装置对应的检测图像包括交通灯A,第二图像采集装置对应的检测图像包括交通灯A和B,第三图像采集装置对应的检测图像包括交通灯C。为了获得交通灯识别结果,可以将三个图像装置对应的检测图像中的交通灯的位置投影到同一预设的坐标系,在同一坐标系中,相同交通灯对应的位置重叠,即投影到坐标系中之后,坐标系中存在两个重叠的交通灯A、交通灯B以及交通灯C。从而可以取重叠的交通灯A中的其中一个交通灯A对应的交通灯信息、交通灯B对应的交通灯信息以及交通灯C对应的交通灯信息作为交通灯识别结果。
可选地,可以根据检测图像中交通灯的位置和图像采集装置的相机参数将交通灯投影到预设的坐标系。相机参数可以包括但不限于图像采集装置的设置位置、角度、图像采集的范围、图像采集的深度等。
在一些实施方式中,当采用多个图像采集装置进行图像采集时,还可以将获得的多个检测图像拼接成完整图像,再对完整图像进行识别处理,以获得交通灯识别结果。
在一些实施方式中,识别处理包括对检测图像进行图像识别以获得检测图像中与所述交通灯相关的信息。例如,交通灯识别结果包括行驶方向上的检测交通灯信息。检测交通灯信息可以包括交通灯的状态,如直行方向红灯亮、左转方向绿灯亮等。可选地,识别处理可以采用图像识别算法,例如SIFT(Scale-invariant feature transform,尺度不变特征变换)算法、SURF(speed up robust features,加速鲁棒特征)算法等。可选地,识别处理还可以采用预先训练好的机器学习模型处理获得。
在一些实施方式中,可以基于预先训练好的图像模型对检测图像进行识别处理,获得交通灯识别结果,从而可以快速识别检测图像中的交通灯信息。
具体地,可以预先通过以下步骤获得训练好的图像模型:
(1)获取训练样本集。
在本申请的实施例中,在获取训练样本集之前,可以先采集图像采集装置获取的图像数据作为样本图像数据。
在本申请的实施例中,以图像采集装置为三目摄像头为例进行说明,可以理解的是,在其它实施方式中,图像采集装置也可以采用其它类型的装置进行实现,本申请对此不作限制。
在本申请的实施例中,三目摄像头包括三个不同拍摄范围的摄像头,示例性地,三目摄像头可以包括第一摄像头、第二摄像头和第三摄像头。
在进行模型训练时,可以为三目摄像头的每个摄像头分别训练对应的图像模型;例如,分别为第一摄像头训练用于识别第一摄像头采集的图像的第一图像模型;为第二摄像头训练用于识别第二摄像头采集的图像的第二图像模型;为第三摄像头训练用于识别第三摄像头采集的图像的第三图像模型。又如,也可以为三目摄像头的所有摄像头训练一个通用的图像模型,该通用的图像模型可以对三目摄像头每一个摄像头采集的图像进行识别。
在本申请的实施方式中,可以根据需要训练的图像模型,获取对应的样本图像数据。例如,需要训练的图像模型为第一摄像头对应的第一图像模型时,样本图像数据为第一摄像头采集的图像数据。需要训练的图像模型为第二摄像头对应的第二图像模型时,样本图像数据为第二摄像头采集的图像数据。需要训练的图像模型为第三摄像头对应的第三图像模型时,样本图像数据为第三摄像头采集的图像数据。又如,需要训练的图像模型为三目摄像头的所有摄像头通用的图像模型时,样本图像数据为三个摄像头采集的图像数据。
在一些实施方式中,可以将采集的样本图像数据进行时序同步,即按照采集时间的先后顺序对采集的图像数据进行排序。在样本图像数据为三个摄像头采集的图像数据时,可以将同一时间获取的三个摄像头采集的图像数据作为同一组图像数据,再按照采集时间的先后顺序对多组图像数据进行排序。
在一些实施方式中,为了采用获取的样本图像数据进行模型训练,需要预先对样本图像数据的图像属性信息进行标注。
可选地,图像属性信息可以包括但不限于交通灯的框体、交通灯的指示方向、交通灯的颜色信息、交通灯的亮灯情况等信息,具体可以根据模型训练的目的进行选择。例如,为了使训练的模型可以识别图像中交通灯的框体,以提升交通灯的识别精度,减少计算开销,图像属性信息可以包括交通灯的框体的标注信息。又如,为了使训练的模型可以识别图像中交通灯的亮灯情况,从而可以在能见度较低的场景(如夜晚场景、阴天场景)也能快速识别出交通灯,同时在交通灯中存在多个灯泡亮灯时,可以有效进行识别,图像属性信息还可以包括交通灯的亮灯情况的标注信息。
可选地,可以在样本图像数据中标注图像属性信息,例如,可以在样本图像数据中用线条画出交通灯的框体、用箭头标注交通灯所指示的方向等。
经过标注的样本图像数据可以按照预设比例划分为训练样本集和测试样本集。训练样本集用于进行模型训练,测试样本集用于对训练后的模型进行测试,以确保训练的模型可以达到预期的识别效果。
其中,预设比例可以根据实际使用需要进行设置,例如预设比例为1:1,则经过标注的样本图像数据中归属于训练样本集的样本图像数据的数量与归属于测试样本集的样本图像数据的数量之比为1:1。
可选地,可以随机地将样本图像数据分为训练样本集和测试样本集。
(2)对所述训练样本集进行预处理,获得输入图像集和图像标签。
在本申请的实施例中,为了让训练样本集尽可能的多样化,使得训练的模型具有更强的泛化能力,增加训练模型的鲁棒性和可推广性,在一些实施方式中,可以通过数据增广的方式增加训练样本集中样本图像数据的数量。可选地,数据增广的方式可以包括但不限于将训练样本集中的样本图像数据转换成灰度图像数据、将训练样本集中的样本图像数据进行旋转、平移、放大、缩小、加入噪声等变换以获得变换后的图像数据,从而将通过数据增广获得的图像数据与训练样本集中的样本图像数据一起构成输入图像集。
在一些实施方式中,图像标签可以包括图像中是否存在交通灯,例如存在交通灯、不存在交通灯。在一个示例中,可将存在交通灯的情况标记为Y,不存在交通灯的情况标记为N。
在一些实施方式中,图像标签还可以包括图像中交通灯的亮灯情况,例如直行方向亮红灯、左转方向亮绿灯、右转方向亮红灯等,在一个示例中,可将前述情况标记为0,1,2,即0代表直行方向亮红灯,1代表左转方向亮绿灯,2代表右转方向亮红灯等。
可以理解的是,具体图像标签的设置可以根据实际使用情况进行选择,本申请对此不作限制。
(3)基于初始图像模型与所述输入图像集,得到样本交通灯识别结果。
在本申请的实施例中,初始图像模型可以由深度神经网络(Deep NeuralNetworks,DNN)构建得到,如编码器-解码器模型(encoder-decoder模型)、沙漏网络、自编码网络等。初始图像模型也可以由机器学习模型构建得到。初始图像模型还可以由循环神经网络(Recurrent Neural Network,RNN)构建得到,具体可以根据实际使用需要进行选择,本申请对此不作限制。
在本申请的实施例中,采用基于深度残差网络(Deep Residual Networks)作为主干网络和基于多层卷积神经网络的识别网络构建得到初始图像模型,从而通过构建的初始图像模型对输入图像集中的图像数据进行图像特征的提取和识别,以确定图像属性信息的关键点信息,从而根据关键点信息确定图像数据中的图像属性信息。在本申请的实施例中,通过识别图像属性信息的关键点信息的方式确定图像属性信息,可以减少图像模型识别过程中的冗余计算,且有效提升检测精度。
以图像属性信息为交通灯框体为例进行说明,初始图像模型可以对图像数据进行处理以识别交通灯框体。具体地,初始图像模块在处理图像数据时,可以基于交通灯框体中心点建立高斯核,从而中心点位置对应的图像特征的权重会高于其它周边位置对应的图像特征的权重,最后输出权重最高的图像特征作为图像数据对应的交通灯框体中心。进而可以将该点作为锚点,回归图像框体长宽,实现框体检测。示例性地,假设交通灯的长为a,宽为b。在初始图像模型识别出交通灯框体中心O(0,0)时,可以进一步得到交通灯框体的四个顶点的位置,分别为A(-0.5a,0.5b)、B(-0.5a,-0.5b)、C(0.5a,0.5b)以及D(0.5a,-0.5b)。相对于之前,需要识别交通灯框体每个顶点的位置,本申请实施例通过识别交通框体的中心位置,再由交通框体的中心位置去确定交通灯框体每个顶点的位置,可以有效减少冗余计算,且可以提升检测精度。
可以理解的是,在其它一些可能的实施例中,还可以基于其它神经网络模型来对图像数据中的图像属性进行检测,在此不做限定。
(4)根据样本交通灯识别结果与输入图像集对应的图像标签,修正所述初始识别模型的网络参数。
(5)将包含修正后的网络参数的初始识别模型确定为训练好的交通灯识别模型。
在本申请的实施例中,可基于深度学习框架训练初始图像模型,其中,深度学习框架可以是ONNX(Open Neural Network,开放神经网络)、Tenorflow或其他,可以根据实际使用需要进行选择,本实施例对此不做限定。
在本申请的实施例中,损失函数可采用但不限于Softmax损失函数、交叉熵损失函数(Cross Entropy Loss)等。
在本申请的实施例中,基于损失函数,根据样本交通灯识别结果以及图像数据对应的图像标签,可得到图像数据对应的损失函数值。获取损失函数值后,可基于预定优化算法修正初始图像模型的模型参数,然后继续获取输入图像集中下一个图像数据进行下一轮训练,直到损失函数值满足预设收敛条件,可以停止对初始图像模型的训练,将包含修正后的模型参数的初始图像模型作为训练后的交通灯识别模型。
其中,预设收敛条件可以是一个预设阈值,当损失函数值小于该预设阈值时,可判定损失函数满足预设收敛条件,否则不满足。可以理解的是,预设阈值越小,模型训练的要求越高,最终损失函数满足预设收敛条件的初始图像模型可实现的效果可以越好。例如,若损失函数收敛到最小值附近可判定满足预设收敛条件,其中最小值可以是一个数值,以该最小值为中心可设置一个置信度范围,当损失函数收敛到该置信度范围时,即可认为收敛到最小值附近,进一步可判定损失函数满足预设收敛条件。
在一些实施例中,对于不同的图像属性信息可以采用不同的损失函数。例如,对于图像属性信息为交通灯框体中心点可以使用焦点损失函数(Focal Loss);对于图像属性信息为框体属性可以使用交叉熵损失函数等。在采用多个损失函数时,可以分别根据对应的损失函数确定每个图像属性信息对应的损失函数值,最后对损失函数值按照加权平均进行整合,确定总的损失函数值。
由于模型训练过程对运算力要求较高,在一些实施方式中,初始图像模型的训练过程也可以在云端工作站集群上使用GPU进行训练,从而提高模型训练的速度。
在一些实施方式中,为了将训练好的交通灯识别模型部署至车辆的车载模块,可以将训练好的交通灯识别模型进行格式转换,以适应车辆终端的使用。示例性地,若训练好的交通灯识别模型为Onnx格式,可以进一步将训练后的图像模型转换为TensorRT格式,TensorRT是一种高性能神经网络推理(Inference)引擎,用于在生产环境中部署深度学习应用程序,然后再将格式转换后的交通灯识别模型部署至车辆的车载模块。
在一些实施方式中,部署至车辆的训练好的交通灯识别模型可以对车辆行驶过程中采集的检测图像进行识别,以获得交通灯识别结果。例如,将检测图像输入至交通灯识别模型,通过前向网络传播,得到检测图像对应的交通灯识别结果。
在一些实施方式中,车辆设置的图像采集装置可以按照预设频率采集检测图像。以图像采集装置为三目摄像头为例,在每个采样时刻可以采集到三目摄像头采集的三张检测图像。其中,预设频率可以设置为15~25Hz,优选地,预设频率可以设置为20Hz,具体可以根据实际使用需要进行设置,本申请对此不作限制。
在本申请的实施例中,以三目摄像头为例,三目摄像头包括第一摄像头、第二摄像头以及第三摄像头,若当前采样时刻获取到第一摄像头的第一图像、第二摄像头的第二图像以及第三摄像头的第三图像时,则可以将第一图像输入至第一摄像头对应的交通灯识别模型或者通用的交通灯识别模型获得第一图像识别结果,将第二图像输入至第二摄像头对应的交通灯识别模型或者通用的交通灯识别模型获得第二图像识别结果,将第三图像输入至第三摄像头对应的交通灯识别模型或者通用的交通灯识别模型获得获得第三图像识别结果。最后将第一交通灯识别结果、第二交通灯识别结果以及第三交通灯识别结果进行融合得到当前采样时刻,三目摄像头对应的交通灯识别结果。
在本申请的实施例中,以三目摄像头为例,由于三目摄像头的每个摄像头的拍摄范围不同,每个摄像头的检测图像对应的交通灯识别结果不完整,为了获得当前采样时刻完整的交通灯识别结果,可以将每个摄像头对应的交通灯识别结果进行融合,从而获得完整的交通灯识别结果。
示例性地,可以将每个摄像头的检测图像都投影到同一个直角坐标系中,整合三个摄像头对应的交通灯识别结果,并进行去重,即将其中重叠部分的检测图像对应的交通灯识别结果进行去重,最后获得融合后的交通灯识别结果。
步骤S130、获取车辆的位姿信息。
在一些实施方式中,位姿信息可以包括车辆的位置。可以通过车辆的GPS(GlobalPositioning System)定位系统获取车辆的实时的位置信息。
在一些实施方式中,位姿信息还可以包括车辆的姿态信息。姿态信息用于表征车辆三维姿态,可以采用如欧拉角等方式进行表示。可选地,车辆还可以设置IMU(Inertialmeasurement unit,惯性测量单元),可以用于获得车辆的姿态信息。可选地,也可以通过车辆的前进方向和档位情况,确定车辆的姿态信息。可选地,还可以通过图像采集装置采集的检测图像和图像采集装置在车辆的安装位置确定车辆的朝向。可以理解的是,本申请并不限制于此,还可以采用其它方式确定车辆的姿态信息。
步骤S140、基于位姿信息在预设地图中查找对应的交通灯检索结果。
在一些实施方式中,预设地图可以例如是高精地图。高精地图也称高精度地图,高精地图具有精确的车辆位置信息和丰富的语意信息,语意信息可以包括但不限于:车道ID、车道线、车道方向、交通灯ID、交通灯位置、交通灯对应控制的车道和控制方向等信息,高精地图丰富的语意信息可以辅助车辆进行驾驶规划。
在本申请的实施例中,根据车辆的位姿信息可以在预设地图中定位车辆所在的位置以及车辆的行驶区域,进而可以根据车辆所在的位置和车辆的行驶区域在预设地图中查找位于车辆行驶区域中的交通灯,以及交通灯对应的语意信息。
在本申请的实施例中,位姿信息包括位置子信息和姿态子信息,具体地,步骤S140可以包括:步骤S141至步骤S144。
步骤S141、确定预设地图中与位置子信息对应的目标位置。
步骤S142、根据姿态子信息确定目标检测范围。
步骤S143、基于目标位置和目标检测范围在预设地图查找地图交通灯信息。
步骤S144、根据查找到的地图交通灯信息获得交通灯检索结果。
在本申请的实施例中,根据车辆的位置子信息可以确定车辆在预设地图中的位置作为目标位置。示例性地,车辆的位置子信息可以例如是GPS位置信息,可以在预设地图中与车辆的GPS位置信息对应的位置作为目标位置。
在本申请的实施例中,根据车辆的姿态子信息可以确定车辆的朝向。为了提高检索速度,可根据车辆的目标位置为起点位置,预设角度范围所覆盖的区域作为检索交通灯的目标检测范围。
可选地,车辆的朝向位于上述的预设角度范围。进一步地,车辆的朝向可以平分上述的预设角度范围,
可选地,预设角度范围的值设置越大,目标检测范围覆盖的区域越大,检索的区域越完整,但计算量也相应增加。因此,预设角度范围的值可以根据实际使用所需的精度要求和效率要求进行设置,本申请对此不作限制。
在本申请的实施例中,目标检测范围所覆盖的范围为车辆的行驶范围,在车辆的行驶范围内可能包含车辆行驶规划所需要的交通灯信息。进一步地,在以车辆的目标位置为起点位置,预设角度范围覆盖区域内,与车辆的距离在预设检测距离阈值内的区域作为目标检测范围,从而可以锁定主要检测区域,减少计算量。
在本申请的实施例中,在确定目标检测范围后,可以在预设地图的目标检测范围内检索查找交通灯。
可选地,还可以进一步设置地图交通灯的检索条件,例如可以设置在目标位置的目标检测角度上距离目标位置的距离在预设距离阈值范围内的交通灯作为地图交通灯。可以理解的是,本申请并不限制于此,还可以根据实际需要设置地图交通灯的检索条件。
在本申请的实施例中,将预设地图的目标检测范围内检索到的交通灯所对应的语意信息作为交通灯检索结果。交通灯检索结果可以包括但不限于检索到的地图交通灯的数量、位置、所控制的道路、所控制的方向等。
步骤S150、融合交通灯识别结果和交通灯检索结果获得交通灯目标检测结果。
在本申请的实施例中,交通灯识别结果包括行驶方向上的检测交通灯信息;交通灯检索结果包括地图交通灯信息。具体地,步骤S150可以包括:步骤S151至步骤S155。
步骤S151、根据检测交通灯信息确定检测交通灯在预设二维坐标系中的待融合位置。
步骤S152、根据地图交通灯信息确定地图交通灯在预设二维坐标系中的地图位置。
步骤S153、在地图位置中确定与待融合位置匹配的地图位置作为目标地图位置。
步骤S154、将目标地图位置对应的地图交通灯作为目标交通灯。
步骤S155、根据检测交通灯信息和目标交通灯对应的地图交通灯信息确定交通灯目标检测结果。
在本申请的实施例中,可以根据检测交通灯信息确定检测交通灯的位置,例如GPS位置等,并将检测交通灯的位置映射于预设二维坐标系中,以确定预设二维坐标系中与检测交通灯的位置对应的待融合位置。
在本申请的实施例中,可以根据交通灯检索结果中的地图交通灯信息确定地图交通灯的位置,例如GPS位置等,并将地图交通灯的位置映射于同一预设二维坐标系中,以确定预设二维坐标系中与地图交通灯的位置对应的地图位置。
在本申请的实施例中,可以理解的是,交通灯检索结果中可能包括一个或多个地图交通灯信息。将地图交通灯的位置和检测交通灯的位置映射于同一预设坐标系,可以用于确定地图交通灯中与检测交通灯对应的地图交通灯。
进一步地,可以根据检侧交通灯的待融合位置与地图交通灯的地图位置的距离,确定地图交通灯中与检测交通灯对应的地图交通灯。
在一些实施方式中,分别计算待融合位置与地图位置的检测距离,将检测距离小于预设距离阈值的地图位置作为目标地图位置,即目标地图位置对应的地图交通灯与检测交通灯对应。
从而可以将目标交通灯对应的地图交通灯信息作为交通灯目标检测结果,即可以将检测交通灯与预设地图中的地图交通灯进行关联,充分利用预设地图中的地图交通灯的语意信息,为用户提供更精确的交通灯信息。
在一些实施方式中,在步骤S150之后,交通灯状态检测方法还可以包括:根据交通灯目标检测结果建立对应的有限状态机模型。
具体地,车辆图像采集模块根据预设采样时间定时采集检测图像,以获得按采样时间先后排序的检测图像,依次检测每一检测图像可以获得交通灯目标检测结果,根据交通灯目标检测结果建立目标交通灯的状态队列,通过交通灯目标检测结果中关键帧的识别,例如红灯转换为绿灯的关键帧,建立目标交通灯的状态队列建立有限状态机模型。从而有限状态机模型可以预测交通灯的变化情况,方便下游模块根据目标交通灯的状态进行规划。
本申请实施例提供的交通灯状态检测方法,通过获取车辆在行驶方向采集的检测图像,对检测图像进行识别处理,获得交通灯识别结果,且获取车辆的位姿信息,以基于位姿信息在预设地图中查找对应的交通灯检索结果,进一步融合交通灯识别结果和交通灯检索结果从而获得交通灯目标检测结果,以结合检测图像和预设地图确定交通灯状态,提高交通灯状态检测的准确性。
请参阅图4,图4示出了本申请另一实施例提出的一种交通灯状态检测方法。在本申请的实施例中,交通灯状态检测方法可以包括:数据采集/标注阶段、模型训练阶段以及感知-地图融合阶段。下面将结合具体的实施例进行阐述。
本申请实施例的交通状态检测方法的数据采集/标注阶段可以包括步骤S201至步骤S206,在数据采集/标注阶段用于获取模型训练阶段所需的训练/测试数据集。
步骤S201、采集多目交通灯数据。
在本申请的实施例中,可以通过车辆的图像采集装置采集多目交通灯数据。图像采集装置可以例如是多目摄像头,如三目摄像头等。多目交通灯数据可以例如是图像采集装置采集的图像数据,又如,可以是图像采集装置采集的视频数据中图像帧,将视频数据中的图像帧作为多目交通灯数据。
步骤S202、原始数据上传至云端。
在本申请的实施例中,车辆采集得到的多目交通灯数据作为原始数据。进一步地,车辆可以通过网络将原始数据上传至云端,以便后续对原始数据的使用。
步骤S203、数据预处理。
在本申请的实施例中,上传至云端的原始数据可以先进行预处理,以减少后续工作的计算量。
可选地,预处理可以包括但不限于去除原始数据中的存在缺陷的图像数据,例如由于图像采集装置故障导致的采集图像分辨率低于预设分辨阈值、曝光度在预设曝光阈值范围之外、重影等存在缺陷的图像数据。去除缺陷的图像数据,可以减少对后续模型训练的干扰,也可以减少后续不必要的工作量。
可选地,预处理还可以包括对采集的原始数据进行时序同步。
步骤S204、标注员标注。
在本申请的实施例中,为了采用预处理后的数据进行模型训练,需要对预处理后的数据中的图像属性信息进行标注。在本申请的实施例中,可以通过标注员人工依次对预处理后的数据进行标注。
具体地,标注员可以通过与云端连接的终端设备下载云端的待标注的数据。进一步地,标注员还可以通过终端设备将标注完成的数据回传至云端。
步骤S205、质检员进行质检;若质检合格,则执行步骤S206;否则,执行步骤S204。
在本申请的实施例中,人工标注的信息存在一定的主观性和误差,而标注的准确性会影响模型训练的效果。为此,在本申请的实施例中,可以进一步对标注员标注的情况进行质检。
在一些实施方式中,质检员可以通过与云端连接的终端设备下载云端的已标注、待质检的数据。
在一些实施方式中,可以对所有标注员标注的数据进行全部质检,也可以按照预设的比例进行抽样质检。预设比例设置越高,可以提高标注数据的准确性,但同时需要花费更多的人力和时间,因此,预设比例可以根据实际使用时精度和效率的要求进行设置,本申请对此不作限制。
在本申请的实施例中,质检合格的数据才可以进入下面的流程,以作为模型训练所用的数据。而质检不合格的数据会返回至上一步骤,由标注员重新进行标注。
进一步地,可以为质检不合格的数据设置标签,以表征该数据的标注经过质检不合格。在该数据重新标注后再一次质检时,质检员可以对设置有该标签的数据进行重点检查,以确保重新标注的数据符合质检要求。
步骤S206、标注文件上传至云端。
具体地,质检员可以将质检合格的数据作为标注文件,并通过与云端连接的终端设备将标注文件上传至云端,以供后续模型训练使用。
本申请实施例的交通状态检测方法的模型训练阶段可以包括步骤S207至步骤S212,在模型训练阶段用于获取感知-地图融合阶段所需的检测模型。
步骤S207、训练/测试集。
在本申请的实施例中,云端可以分配预设区域用于放置经过质检合格的标注文件。标注文件可以用于后续进行模型训练。
进一步地,可以将标注文件按照预设比例随机分为训练集和测试集。训练集用于进行模型训练,测试集用于进行模型验证。
步骤S208、多摄像头模型。
在本申请的实施例中,可以为图像采集装置训练用于识别检测图像中图像属性信息的多摄像头模型。
可选地,若图像采集装置的数量为多个,可以分别为每个图像采集装置训练对应的多摄像头模型。也可以训练一个适用于所有图像采集装置的多摄像头模型。
具体地,可以采用深度网络模型等构建初始图像模型,然后采用训练集对构建的初始图像模型进行训练,根据训练结果对初始图像模型的参数进行修正,将修正后的初始模型模型作为多摄像头模型,具体的模型训练过程可以参照上述实施例的阐述,在此不再赘述。
步骤S209、模型量化。
步骤S210、模型转换。
步骤S211、模型部署。
在本申请的实施例中,为了使训练好的模型可以应用于车辆,可以对训练好的模型进行量化、转换和部署。
在云端训练好的多摄像头模型虽然可以对检测图像进行识别,但是模型所占体积较大且结构复杂,对运行设备的硬件条件要求较高。车辆的硬件设备条件有限,且还足够的运算力以支持车辆正常运行。为了使训练好的多摄像头模型也可以在车辆使用,且不影响车辆的正常运行,可以对训练好的多摄像头模型进行模型量化,以对多摄像头模型在损失精度少于预设精度的前提下进行压缩,以缩小模型的体积,模型量化后的多摄像头模型在车辆上运行时,可以减少对内存的占用,从而可靠运行于车辆。
可选地,模型量化的方法可以包括但不限于非对称算法(asymmetric)、对称算法(symmetric)、低比特量化法等,具体可以根据实际使用需要进行选择,本申请对此不作限制。
在本申请的实施例中,通常在云端训练得到的模型的格式与车辆所支持的模型的格式不同,为了将多摄像头模型部署至车辆,云端训练后的多摄像头模型的格式需要进行转换,以转换为车辆可以适配的格式,进而将格式转换后的多摄像头模型加载至车辆终端。
在其它一些实施方式中,多摄像头模型也可以部署于云端,车辆需要使用模型时,可以通过网络与云端交互,通过部署于云端的模型进行数据的处理,再由云端返回识别结果至车辆。
本申请实施例的交通状态检测方法的感知-地图融合阶段可以包括步骤S213至步骤S219,感知-地图融合阶段用于将模型的感知结果与地图的识别结果进行融合,以获得交通灯识别结果。
步骤S213、输出感知结果。
在本申请的实施例中,在实际使用时,车辆的图像采集装置可以实时采集检测图像,将检测图像输入至多摄像头模型,多摄像头模型识别后输出感知结果。感知结果包括但不限于检测图像中的图像属性信息,如是否存在交通灯、交通灯的位置、交通灯的亮灯情况等。
步骤S214、自车位姿。
步骤S215、检索地图交通灯信息。
步骤S216、地图交通灯重投影。
步骤S217、感知-地图融合。
在本申请的实施例中,车辆的自车位姿可以包括车辆的位置、车辆的姿态信息。通过车辆的自车位姿可以确定车辆的行驶范围。通过车辆的自车位姿可以在预设地图上车辆的行驶范围内检索是否存在地图交通灯,以及地图交通灯对应的语意信息。可以理解的是,在预设地图上检索到的地图交通灯数量可能有一个或多个,为了准确定位与检测图像的检测交通灯对应的地图交通灯,可以将检测交通灯与地图交通灯映射于同一预设二维坐标系中,与检测交通灯的距离小于预设阈值的地图交通灯可以作为目标交通灯,采用目标交通灯对应的语意信息进行车辆的后续行驶规划,具体的实现过程可以参照上述实施例,在此不再赘述。
步骤S218、时序信息融合。
步骤S219、输出交通灯检测识别结果至下游模块。
通过上述步骤,可以得到车辆每一检测图像对应的交通灯检测结果。可以理解的是,交通灯的状态会随着时间进行变化,例如:红灯在预设时间后会转变为绿灯。车辆的多个检测图像的交通灯检测结果的变化情况也可以用于辅助车辆进行后续行驶规划。例如:车辆在第一检测时刻采集到的第一检测图像中,直行交通灯为绿灯,车辆在第二检测时刻采集到的第二检测图像中,直行交通灯为红灯。从而,第二检测时刻为直行交通灯由绿灯转变为绿灯的起始时刻,通过已知的直行交通灯红灯的亮灯时间,假设为30s,可以预测在30s后,直行交通灯会转变为绿灯,即30s后道路的直行方向可以通行。
为了根据交通灯检测结果随时间变化情况对后续行驶进行规划,可以将交通灯检测结果与时间信息进行融合。可选地,可以为每一交通灯检测结果设置时间戳,时间戳对应的时间可以为交通灯检测结果对应的检测图像的采集时间。
请参阅图5,其示出了本发明一个实施例提供的交通灯状态检测装置,该交通灯状态检测装置200包括:检测图像获取模块210、识别模块220、位姿获取模块230、检索模块240以及融合模块250。
检测图像获取模块210用于获取车辆在行驶方向采集的检测图像。
识别模块220用于对检测图像进行识别处理,获得交通灯识别结果。
位姿获取模块230用于获取车辆的位姿信息。
检索模块240用于基于位姿信息在预设地图中查找对应的交通灯检索结果;
融合模块250用于融合所述交通灯识别结果和所述交通灯检索结果获得交通灯目标检测结果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图6,基于上述的交通灯状态检测方法,本申请实施例还提供的另一种包括可以执行前述交通灯状态检测方法的处理器的车辆300,车辆300还包括一个或多个处理器310、存储器320以及一个或多个应用程序。其中,该存储器320中存储有可以执行前述实施例中内容的程序,而处理器310可以执行该存储器320中存储的程序。
其中,处理器310可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器310利用各种接口和线路连接整个电子设备内的各个部分,通过运行或执行存储在存储器320内的指令、程序、代码集或指令集,以及调用存储在存储器320内的数据,执行车辆300的各种功能和处理数据。可选地,处理器310可以采用数字信号处理(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器310可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics ProcessingUnit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器中,单独通过一块通信芯片进行实现。
存储器320可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器320可用于存储指令、程序、代码、代码集或指令集。存储器可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如检测图像获取功能、识别处理功能、检索功能、融合功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端在使用中所创建的数据(比如检测图像、交通灯识别结果、位姿信息、交通灯检索结果)等。
请参考图7,其示出了本申请实施例提供的一种计算机可读取存储介质的结构框图。该计算机可读取存储介质400中存储有程序代码410,所述程序代码410可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读取存储介质400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读取存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码410可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实施方式中描述的交通灯状态检测方法。
综上所述,本申请提供的一种交通灯状态检测方法、装置、车辆及存储介质,通过获取车辆在行驶方向采集的检测图像,对检测图像进行识别处理,获得交通灯识别结果,且获取车辆的位姿信息,以基于位姿信息在预设地图中查找对应的交通灯检索结果,进一步融合交通灯识别结果和交通灯检索结果从而获得交通灯目标检测结果,以结合检测图像和预设地图确定交通灯状态,提高交通灯状态检测的准确性。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。