发明内容
本发明提供一种信号灯识别方法、装置、设备、介质及产品,用以解决目前的信号灯识别方式在识别多语义的临时信号灯时,识别的准确率低的问题。
本发明实施例第一方面提供一种信号灯识别方法,包括:
获取待识别的目标图像;所述目标图像包括第一信号灯组图像;
根据预设的图像处理策略对所述目标图像进行相应的处理,以确定第二信号灯组图像;其中,所述第二信号灯组图像中的信号灯排列方向为水平方向;
将所述第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状;所述信号灯图像识别模型在水平方向上从左往右识别图像;
根据所述信号灯的颜色和形状确定信号灯识别结果。
可选的,如上所述的方法,所述根据预设的图像处理策略对所述目标图像进行相应的处理,以确定第二信号灯组图像,包括:
将所述目标图像输入预设的目标检测模型,以输出所述第一信号灯组图像的轮廓坐标;
根据所述轮廓坐标从所述目标图像中裁剪出所述第一信号灯组图像;
确定所述第一信号灯组图像中信号灯排列方向是否为水平方向;
若信号灯排列方向不是水平方向,则调整所述第一信号灯组图像,以使调整后的第一信号灯组图像中信号灯排列方向为水平方向;将信号灯排列方向为水平方向的第一信号灯组图像确定为第二信号灯组图像;
若信号灯排列方向是水平方向,则将第一信号灯组图像确定为第二信号灯组图像。
可选的,如上所述的方法,所述确定所述第一信号灯组图像中信号灯排列方向是否为水平方向,包括:
确定所述第一信号灯组图像的高度和宽度;
判断所述高度是否大于所述宽度;
若确定所述高度大于所述宽度,则确定所述第一信号灯组图像中信号灯排列方向为竖直方向;
若确定所述高度小于或等于所述宽度,则确定所述第一信号灯组图像中信号灯排列方向为水平方向。
可选的,如上所述的方法,所述调整所述第一信号灯组图像,包括:
将所述第一信号灯组图像逆时针旋转90°或顺时针旋转270°。
可选的,如上所述的方法,所述根据所述信号灯的颜色和形状确定信号灯识别结果,包括:
若所述第一信号灯组图像中信号灯排列方向为水平方向,则将所述信号灯的颜色和形状确定为信号灯识别结果;
若所述第一信号灯组图像中信号灯排列方向不是水平方向,则根据所述信号灯的颜色和形状和预设的信号灯旋转结果映射表确定所述信号灯识别结果;其中,所述预设的信号灯旋转结果映射表存储有所述信号灯的颜色和形状,与所述信号灯识别结果之间的映射关系。
可选的,如上所述的方法,所述信号灯图像识别模型包括卷积神经网络模型和循环神经网络模型;
所述将所述第二信号灯组图像输入训练至收敛的信号灯图像识别模型之前,还包括:
获取训练样本,所述训练样本中包括:信号灯组图像样本;
将所述训练样本输入到预设信号灯图像识别模型中,以对所述预设信号灯图像识别模型进行训练;
采用CTC损失函数判断所述预设信号灯图像识别模型是否满足收敛条件;
若所述预设信号灯图像识别模型满足收敛条件,则将满足收敛条件的预设信号灯图像识别模型确定为训练至收敛的信号灯图像识别模型。
本发明实施例第二方面提供一种信号灯识别装置,包括:
获取模块,获取待识别的目标图像;所述目标图像包括第一信号灯组图像;
图像确定模块,用于根据预设的图像处理策略对所述目标图像进行相应的处理,以确定第二信号灯组图像;其中,所述第二信号灯组图像中的信号灯排列方向为水平方向;
输出模块,用于将所述第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状;所述信号灯图像识别模型在水平方向上从左往右识别图像;
信号灯确定模块,用于根据所述信号灯的颜色和形状确定信号灯识别结果。
可选的,如上所述的装置,所述图像确定模块,具体用于:
将所述目标图像输入预设的目标检测模型,以输出所述第一信号灯组图像的轮廓坐标;根据所述轮廓坐标从所述目标图像中裁剪出所述第一信号灯组图像;确定所述第一信号灯组图像中信号灯排列方向是否为水平方向;若信号灯排列方向不是水平方向,则调整所述第一信号灯组图像,以使调整后的第一信号灯组图像中信号灯排列方向为水平方向;将信号灯排列方向为水平方向的第一信号灯组图像确定为第二信号灯组图像;若信号灯排列方向是水平方向,则将第一信号灯组图像确定为第二信号灯组图像。
可选的,如上所述的装置,所述图像确定模块在确定所述第一信号灯组图像中信号灯排列方向是否为水平方向时,具体用于:
确定所述第一信号灯组图像的高度和宽度;判断所述高度是否大于所述宽度;若确定所述高度大于所述宽度,则确定所述第一信号灯组图像中信号灯排列方向为竖直方向;若确定所述高度小于或等于所述宽度,则确定所述第一信号灯组图像中信号灯排列方向为水平方向。
可选的,如上所述的装置,所述图像确定模块在调整所述第一信号灯组图像时,具体用于:
将所述第一信号灯组图像逆时针旋转90°或顺时针旋转270°。
可选的,如上所述的装置,所述信号灯确定模块,具体用于:
若所述第一信号灯组图像中信号灯排列方向为水平方向,则将所述信号灯的颜色和形状确定为信号灯识别结果;若所述第一信号灯组图像中信号灯排列方向不是水平方向,则根据所述信号灯的颜色和形状和预设的信号灯旋转结果映射表确定所述信号灯识别结果;其中,所述预设的信号灯旋转结果映射表存储有所述信号灯的颜色和形状,与所述信号灯识别结果之间的映射关系。
可选的,如上所述的装置,所述信号灯图像识别模型包括卷积神经网络模型和循环神经网络模型;所述装置还包括:
训练模块,用于获取训练样本,所述训练样本中包括:信号灯组图像样本;将所述训练样本输入到预设信号灯图像识别模型中,以对所述预设信号灯图像识别模型进行训练;采用CTC损失函数判断所述预设信号灯图像识别模型是否满足收敛条件;若所述预设信号灯图像识别模型满足收敛条件,则将满足收敛条件的预设信号灯图像识别模型确定为训练至收敛的信号灯图像识别模型。
本发明实施例第三方面提供一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为由所述处理器执行第一方面任一项所述的信号灯识别方法。
本发明实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面任一项所述的信号灯识别方法。
本发明实施例第五方面提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的信号灯识别方法。
本发明实施例提供的一种信号灯识别方法、装置、设备、介质及产品,该方法包括:获取待识别的目标图像;所述目标图像包括第一信号灯组图像;根据预设的图像处理策略对所述目标图像进行相应的处理,以确定第二信号灯组图像;其中,所述第二信号灯组图像中的信号灯排列方向为水平方向;将所述第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状;所述信号灯图像识别模型在水平方向上从左往右识别图像;根据所述信号灯的颜色和形状确定信号灯识别结果。本发明实施例的信号灯识别方法,首先获取包含第一信号灯组图像的目标图像,并根据预设的图像处理策略对所述目标图像进行相应处理,以确定图像中信号灯排列方向为水平方向的第二信号灯组图像。将第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状,从而可以根据信号灯的颜色和形状确定信号灯识别结果。本发明实施例的信号灯识别方法不依赖高精地图,通过目标图像结合训练至收敛的信号灯图像识别模型可以更准确的识别出信号灯的形状和颜色,提高了识别的准确性。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
为了清楚理解本申请的技术方案,首先对现有技术的方案进行详细介绍。目前自动驾驶领域中,信号灯识别技术是其中重要的一环。传统的信号灯识别,先通过拍摄设备拍摄的图像中识别信号灯,然后对信号灯进行分类并与高精地图中的信号灯匹配。高精地图中会随时更新道路信号灯的实际运行状况,因而,将信号灯与高精地图中的信号灯匹配后,可以完成信号灯的检测识别。传统的信号灯识别方式,在面对多语义的临时信号灯时,由于临时信号灯的语义比较复杂,且与普通的信号灯差异较大,识别时需要非常复杂的处理。因而导致识别该种信号灯的准确率较低。
所以针对现有技术中目前的信号灯识别方式在识别多语义的临时信号灯时,识别的准确率低的问题,发明人在研究中发现,为了解决目前识别的准确率低的问题,可以通过设置信号灯图像识别模型对拍摄的图像中信号灯组进行识别,省去与高精地图的匹配过程,从而支持多种语义信号灯的识别,提高识别的准确性。具体的,首先获取包含第一信号灯组图像的目标图像,并根据预设的图像处理策略对目标图像进行相应处理,以确定图像中信号灯排列方向为水平方向的第二信号灯组图像。将第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状,从而可以根据信号灯的颜色和形状确定信号灯识别结果。本发明实施例的信号灯识别方法不依赖高精地图,通过目标图像结合训练至收敛的信号灯图像识别模型可以更准确的识别出信号灯的形状和颜色,提高了识别的准确性。
发明人基于上述的创造性发现,提出了本申请的技术方案。
下面对本发明实施例提供的信号灯识别方法的应用场景进行介绍。如图1所示,其中,1为电子设备,2为拍摄设备。本发明实施例提供的信号灯识别方法对应的应用场景的网络架构中包括:电子设备1和拍摄设备2。拍摄设备2可以是车辆上的摄像头等设备,电子设备1可以是车辆的控制器。拍摄设备2实时拍摄车辆前方的景象,尤其是包括信号灯组的图像,并将拍摄的图像发送至电子设备1。在进行信号灯识别时,电子设备1从拍摄设备2中获取包含第一信号灯组图像的目标图像。同时,电子设备1根据预设的图像处理策略对目标图像进行相应的处理,以确定第二信号灯组图像,预设的图像处理策略包括裁剪、旋转等处理。其中,第二信号灯组图像中的信号灯排列方向为水平方向。电子设备1将第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状。最后,根据信号灯的颜色和形状确定信号灯识别结果。在确定出信号灯识别结果后,可以根据信号灯识别结果确定信号灯的语义,比如信号灯分别为红色圆灯、黑色圆灯(即灭灯)、黑色圆灯,即可以确定目前信号灯的状态为禁止直行。同时,也可以根据信号灯的状态判断车辆是否可以继续行驶,以及可以往哪个方向行驶等。
下面结合说明书附图对本发明实施例进行介绍。
图2为本发明第一实施例提供的信号灯识别方法的流程示意图,如图2所示,本实施例中,本发明实施例的执行主体为信号灯识别装置,该信号灯识别装置可以集成在电子设备中。则本实施例提供的信号灯识别方法包括以下几个步骤:
步骤S101,获取待识别的目标图像。目标图像包括第一信号灯组图像。
本实施例中,待识别的目标图像可以是图片或者视频帧,目标图像可以由车辆的拍摄设备拍摄,比如通过车辆的前置摄像头可以实时的拍摄车辆前方的场景。拍摄设备拍摄了图像后,将该图像发送至信号灯识别装置。信号灯组可以是常见的机动车红绿灯组也可以是非机动车红绿灯组等,信号灯组中每个信号灯可以是圆形、方向箭等形状。同时,信号灯组可以是横向从左往右的排列,也可以是竖向,从上往下排列。比如常见的横向信号灯组中,从左往右,分别是红灯、黄灯、绿灯,按照实际的场景不同的灯会在不同时刻分别亮起。竖向从上往下排列的同理。
步骤S102,根据预设的图像处理策略对目标图像进行相应的处理,以确定第二信号灯组图像。其中,第二信号灯组图像中的信号灯排列方向为水平方向。
本实施例中,预设的图像处理策略可以包括对目标图像进行裁剪、旋转等处理。由于目标图像中不仅包含信号灯组图像,还会包括背景图像,因而,可以通过对目标图像进行裁剪以得到信号灯组图像。同时,若第一信号灯组图像的信号灯排列方向为竖直方向,则还可以对该第一信号灯组图像进行旋转,以使旋转后的信号灯组图像中的信号灯排列方向为水平方向。使信号灯组图像中的信号灯排列方向为水平方向是为了满足后续信号灯图像识别模型识别的要求。
步骤S103,将第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状。信号灯图像识别模型在水平方向上从左往右识别图像。
本实施例中,信号灯图像识别模型包括卷积神经网络模型和循环神经网络模型。因而,该模型需要在水平方向上从左往右识别图像,不能支持竖直方向上从上往下识别图像。
将第二信号灯组图像输入训练至收敛的信号灯图像识别模型后,可以输出信号灯的颜色和形状,当确定信号灯的颜色和形状后,可以根据信号灯的颜色和形状确定信号灯识别结果。
步骤S104,根据信号灯的颜色和形状确定信号灯识别结果。
本实施例中,由于第一信号灯组图像中信号灯的排列方向可能是水平方向也可能是竖直方向,因而,根据信号灯的颜色和形状需要进一步的处理才能确定最终信号灯识别结果。在确定信号灯识别结果后,可以根据信号灯识别结果是当前信号灯的状态,比如信号灯中从左至右分别为左箭头绿色、红色圆灯、黑色圆灯、黑色圆灯,则表示当前信号灯的状态为可左转不可直行。
本发明实施例提供的一种信号灯识别方法,该方法包括:获取待识别的目标图像。目标图像包括第一信号灯组图像。根据预设的图像处理策略对目标图像进行相应的处理,以确定第二信号灯组图像。其中,第二信号灯组图像中的信号灯排列方向为水平方向。将第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状。信号灯图像识别模型在水平方向上从左往右识别图像。根据信号灯的颜色和形状确定信号灯识别结果。本发明实施例的信号灯识别方法,首先获取包含第一信号灯组图像的目标图像,并根据预设的图像处理策略对目标图像进行相应处理,以确定图像中信号灯排列方向为水平方向的第二信号灯组图像。将第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状,从而可以根据信号灯的颜色和形状确定信号灯识别结果。本发明实施例的信号灯识别方法由于不依赖高精地图,通过目标图像结合训练至收敛的信号灯图像识别模型可以更准确的识别出信号灯的形状和颜色,提高了识别的准确性。
图3为本发明第二实施例提供的信号灯识别方法的流程示意图,如图3所示,本实施例提供的信号灯识别方法,是在本发明上一实施例提供的信号灯识别方法的基础上,对各个步骤进行了进一步的细化。则本实施例提供的信号灯识别方法包括以下步骤。
步骤S201,获取待识别的目标图像。目标图像包括第一信号灯组图像。
本实施例中,步骤201的实现方式与本发明上一实施例中的步骤101的实现方式类似,在此不再一一赘述。
步骤S202,将目标图像输入预设的目标检测模型,以输出第一信号灯组图像的轮廓坐标。
本实施例中,目标检测模型指深度学习中的目标检测模型,其可以是FasterRCNN、RetinaNet、CenterNet、Yolo系列等目标检测模型。通过目标检测模型可以检测目标图像中第一信号灯组图像的轮廓坐标,该轮廓坐标以目标图像的左上角为坐标原点。当确定第一信号灯组图像的轮廓坐标后,可以为后续对该第一信号灯组图像进行裁剪提供基础。
步骤S203,根据轮廓坐标从目标图像中裁剪出第一信号灯组图像。
本实施例中,将第一信号灯组图像从目标图像中裁剪出来,从而可以在后续确定第一信号灯组图像中信号灯的颜色和形状时,避免目标图像中背景图像的影响。
步骤S204,确定第一信号灯组图像中信号灯排列方向是否为水平方向。若是,则执行步骤S207,若否,则执行步骤S205。
本实施例中,信号灯组图像中信号灯排列方向一般只有两种,一种为水平方向从左至右,一种为竖直方向,从上至下。
可选的,本实施例中,确定第一信号灯组图像中信号灯排列方向是否为水平方向,包括:
确定第一信号灯组图像的高度和宽度。
判断高度是否大于宽度。
若确定高度大于宽度,则确定第一信号灯组图像中信号灯排列方向为竖直方向。
若确定高度小于或等于宽度,则确定第一信号灯组图像中信号灯排列方向为水平方向。
本实施例中,第一信号灯组图像的高度指图像边框中竖直的边框长度,宽度指图像边框中水平的边框长度。通过第一信号灯组图像的高度和宽度可以更简单且更效率的确定第一信号灯组图像中信号灯的排列方向。
步骤S205,调整第一信号灯组图像,以使调整后的第一信号灯组图像中信号灯排列方向为水平方向。
本实施例中,调整第一信号灯组图像可以是通过旋转的方式,将第一信号灯组图像进行旋转以使调整后的第一信号灯组图像中信号灯排列方向为水平方向。
可选的,本实施例中,调整第一信号灯组图像,包括:
将第一信号灯组图像逆时针旋转90°或顺时针旋转270°。
本实施例中,如图4和图5所示。当第一信号灯组图像中信号灯的排列方向为竖直方向时,需要将第一信号灯组图像逆时针旋转90°或顺时针旋转270°,以使旋转后的第一信号灯组图像中信号灯排列方向为水平方向。由于信号灯图像识别模型是从左往右对图像进行卷积操作,所以信号灯必须是横向排列。逆时针90°与顺时针旋转270°是一样的,都是为了保证旋转后,从上到下的子灯头变为从左往右的顺序,即不改变原有的信号灯中各个灯的排列顺序。
步骤S206,将信号灯排列方向为水平方向的第一信号灯组图像确定为第二信号灯组图像。
本实施例中,第二信号灯组图像为输入训练至收敛的信号灯图像识别模型的图像,因而,需要确保第二信号灯组图像中信号灯排列方向为水平方向。
步骤S207,将第一信号灯组图像确定为第二信号灯组图像。
本实施例中,由于第一信号灯组图像中信号灯排列方向为水平方向,因而,可以直接将第一信号灯组图像确定为第二信号灯组图像。
步骤S208,将第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状。
本实施例中,信号灯图像识别模型包括卷积神经网络模型和循环神经网络模型,其中,卷积神经网络模型和循环神经网络模型的英文简称为CRNN网络模型,其多用于光学字符识别,在本申请中,将此方法迁移到多语义的信号灯识别,从而获得每个信号灯的颜色与形状识别能力。CRNN网络模型,即是CNN+RNN,其中CNN表示卷积神经网络,RNN表示循环神经网络。
该CRNN网络模型的具体识别流程如下:首先将第二信号灯组图像缩放到固定尺寸CxHxW,C表示图片通道,彩图为3,H表示缩放后的高度,W表示缩放后的宽度。然后将缩放后的图像输入CNN网络,得到特征图C1x1xW1,C1表示特征图序列,W1表示特征图宽度,即图片按列进行卷积,得到了向量序列。将特征图输入RNN网络,输出W1x1xN的张量,N表示类别数目。比如,信号灯图像中每种颜色和形状的组合都代表一种类别数目。最后,使用softmax函数输出每个类别-W1x1的预测结果,合并预测结果,得到最终的预测输出。CRNN网络模型的类别为信号灯颜色与形状的编码,例如颜色有红、黄、绿3种,形状有圆、左箭头、上箭头、右箭头、下箭头5种,两两组合的编码类别有15种,再加上灭灯,即黑色圆灯,一共有16种类别。如果某个竖直信号灯从上到下,三个子灯头分别为红色圆灯、灭灯、灭灯,则CRNN模型输出类别序列:2,1,1(2表示红色圆灯,1表示灭灯,具体编码见表1)。从而根据输出的编码可以确定信号灯各个灯的颜色和形状。
表1信号灯颜色与形状的编码表
可选的,本实施例中,信号灯图像识别模型包括卷积神经网络模型和循环神经网络模型。
将第二信号灯组图像输入训练至收敛的信号灯图像识别模型之前,还包括:
获取训练样本,训练样本中包括:信号灯组图像样本。
将训练样本输入到预设信号灯图像识别模型中,以对预设信号灯图像识别模型进行训练。
采用CTC损失函数判断预设信号灯图像识别模型是否满足收敛条件。
若预设信号灯图像识别模型满足收敛条件,则将满足收敛条件的预设信号灯图像识别模型确定为训练至收敛的信号灯图像识别模型。
本实施例中,CTC(英文全称为:Connectionist Temporal Classification)是一种损失函数,用于进行固定序列的不定长表示,CTC损失函数与CRNN网络模型匹配,一般同时使用,组成CRNN+CTC网络。训练的信号灯组图像样本数量可以根据实际需求进行设置,精度要求越高,样本数量越多。
步骤S209,根据信号灯的颜色和形状确定信号灯识别结果。
本实施例中,步骤209的实现方式与本发明上一实施例中的步骤103的实现方式类似,在此不再一一赘述。
表2信号灯旋转结果映射表
信号灯形状 |
颜色 |
信号灯识别结果 |
圆灯 |
红/黄/绿 |
圆-红/黄/绿 |
左箭头 |
红/黄/绿 |
上箭头-红/黄/绿 |
上箭头 |
红/黄/绿 |
右箭头-红/黄/绿 |
右箭头 |
红/黄/绿 |
下箭头-红/黄/绿 |
下箭头 |
红/黄/绿 |
左箭头-红/黄/绿 |
表3信号灯旋转形状对应表
信号灯形状 |
是否旋转 |
真实形状 |
圆灯 |
是 |
圆 |
圆灯 |
否 |
圆 |
左箭头 |
是 |
上箭头 |
左箭头 |
否 |
左箭头 |
上箭头 |
是 |
右箭头 |
上箭头 |
否 |
上箭头 |
右箭头 |
是 |
下箭头 |
右箭头 |
否 |
右箭头 |
下箭头 |
是 |
左箭头 |
下箭头 |
否 |
下箭头 |
可选的,本实施例中,根据信号灯的颜色和形状确定信号灯识别结果,包括:
若第一信号灯组图像中信号灯排列方向为水平方向,则将信号灯的颜色和形状确定为信号灯识别结果。
若第一信号灯组图像中信号灯排列方向不是水平方向,则根据信号灯的颜色和形状和预设的信号灯旋转结果映射表确定信号灯识别结果。其中,预设的信号灯旋转结果映射表存储有信号灯的颜色和形状,与信号灯识别结果之间的映射关系。
本实施例中,如图4和图5所示。当第一信号灯组图像中信号灯的排列方向为竖直方向,并对其进行旋转后,信号灯的形状可能会发生变化。图4中,有左斜线的灯代表红灯,没有左斜线的灯代表灯灭。因而,图4中从上往下依次为红色圆灯,灭灯,灭灯。在经过裁剪以及旋转后,信号灯的排列顺序由竖直方向从上往下变为水平方向的从左至右。旋转后信号灯排列顺序为红色圆灯,灭灯,灭灯,与旋转前相同。而图5中,左斜线的箭头表示红色箭头,右斜线的箭头表示绿色箭头。因而,图5中从上往下依次为红色左箭头,红色上箭头,绿色右箭头。在经过裁剪以及旋转后,信号灯的排列顺序由竖直方向从上往下变为水平方向的从左至右。旋转后信号灯排列顺序为红色下箭头,红色左箭头,绿色上箭头,因而,旋转后信号灯的形状发生了改变。此时,针对旋转后的第一信号灯组图像对应输出的信号灯颜色和形状,需要结合预设的信号灯旋转结果映射表确定最终的信号灯识别结果,信号灯旋转结果映射表如表2所示。同时,信号灯形状是否旋转的形状变化如表3所示。
本实施例提供的一种信号灯识别方法,通过目标检测模型从目标图像中裁剪出第一信号灯组图像,并对第一信号灯组图像经过处理以生成信号灯排列方向为水平方向的第二信号灯组图像。通过训练至收敛的信号灯图像识别模型对该图像进行识别,以输出信号灯的形状和颜色,由于信号灯图像识别模型采用的CRNN网络模型,识别的精确度较高,不仅适用于普通信号灯、临时信号灯,也可以适用于非机动车如自行车信号灯等多种信号灯。
图6为本发明第三实施例提供的信号灯识别装置的结构示意图,如图6所示,信号灯识别装置的执行主体可以为车载装置。车载装置可以为一种驾驶脑,或车机、或DHU(娱乐主机和仪表的集成机器)、或IHU(Infotainment Head Unit,信息娱乐主机)、或IVI(In-Vehicle Infotainment,车载信息娱乐***)、或任意一种车载信息交互终端。本实施例中,该信号灯识别装置300包括:
获取模块301,获取待识别的目标图像。目标图像包括第一信号灯组图像。
图像确定模块302,用于根据预设的图像处理策略对目标图像进行相应的处理,以确定第二信号灯组图像。其中,第二信号灯组图像中的信号灯排列方向为水平方向。
输出模块303,用于将第二信号灯组图像输入训练至收敛的信号灯图像识别模型,以输出信号灯的颜色和形状。信号灯图像识别模型在水平方向上从左往右识别图像。
信号灯确定模块304,用于根据信号灯的颜色和形状确定信号灯识别结果。
本实施例提供的信号灯识别装置可以执行图2所示方法实施例的技术方案,其实现原理和技术效果与图2所示方法实施例类似,在此不再一一赘述。
同时,图7为本发明第四实施例提供的信号灯识别装置的结构示意图,如图7所示,本发明提供的信号灯识别装置在上一实施例提供的信号灯识别装置的基础上,对信号灯识别装置400进行了进一步的细化。
可选的,本实施例中,图像确定模块302,具体用于:
将目标图像输入预设的目标检测模型,以输出第一信号灯组图像的轮廓坐标。根据轮廓坐标从目标图像中裁剪出第一信号灯组图像。确定第一信号灯组图像中信号灯排列方向是否为水平方向。若信号灯排列方向不是水平方向,则调整第一信号灯组图像,以使调整后的第一信号灯组图像中信号灯排列方向为水平方向。将信号灯排列方向为水平方向的第一信号灯组图像确定为第二信号灯组图像。若信号灯排列方向是水平方向,则将第一信号灯组图像确定为第二信号灯组图像。
可选的,本实施例中,图像确定模块302在确定第一信号灯组图像中信号灯排列方向是否为水平方向时,具体用于:
确定第一信号灯组图像的高度和宽度。判断高度是否大于宽度。若确定高度大于宽度,则确定第一信号灯组图像中信号灯排列方向为竖直方向。若确定高度小于或等于宽度,则确定第一信号灯组图像中信号灯排列方向为水平方向。
可选的,本实施例中,图像确定模块302在调整第一信号灯组图像时,具体用于:
将第一信号灯组图像逆时针旋转90°或顺时针旋转270°。
可选的,本实施例中,信号灯确定模块304,具体用于:
若第一信号灯组图像中信号灯排列方向为水平方向,则将信号灯的颜色和形状确定为信号灯识别结果。若第一信号灯组图像中信号灯排列方向不是水平方向,则根据信号灯的颜色和形状和预设的信号灯旋转结果映射表确定信号灯识别结果。其中,预设的信号灯旋转结果映射表存储有信号灯的颜色和形状,与信号灯识别结果之间的映射关系。
可选的,本实施例中,信号灯图像识别模型包括卷积神经网络模型和循环神经网络模型。信号灯识别装置400还包括:
训练模块401,用于获取训练样本,训练样本中包括:信号灯组图像样本。将训练样本输入到预设信号灯图像识别模型中,以对预设信号灯图像识别模型进行训练。采用CTC损失函数判断预设信号灯图像识别模型是否满足收敛条件。若预设信号灯图像识别模型满足收敛条件,则将满足收敛条件的预设信号灯图像识别模型确定为训练至收敛的信号灯图像识别模型。
本实施例提供的信号灯识别装置可以执行图2-图5所示方法实施例的技术方案,其实现原理和技术效果与图2-图5所示方法实施例类似,在此不再一一赘述。
根据本发明的实施例,本发明还提供了一种电子设备、一种计算机可读存储介质和一种计算机程序产品。
如图8所示,图8是本发明第五实施例提供的电子设备的结构示意图。电子设备旨在各种形式适用于车辆的数字计算机,诸如,驾驶脑,或车机、或DHU(娱乐主机和仪表的集成机器)、或IHU(Infotainment Head Unit,信息娱乐主机)、或IVI(In-VehicleInfotainment,车载信息娱乐***)、或任意一种车载信息交互终端。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图8所示,该电子设备包括:处理器501、存储器502。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理。
存储器502即为本发明所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本发明所提供的信号灯识别方法。本发明的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本发明所提供的信号灯识别方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本发明实施例中的信号灯识别方法对应的程序指令/模块(例如,附图6所示的获取模块301、图像确定模块302、输出模块303和信号灯确定模块304)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的信号灯识别方法。
同时,本实施例还提供一种计算机产品,当该计算机产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述实施例一和二的信号灯识别方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明实施例的其它实施方案。本发明旨在涵盖本发明实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明实施例的一般性原理并包括本发明实施例未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明实施例的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明实施例的范围仅由所附的权利要求书来限制。