交通标志识别方法和装置与流程

文档序号:17937506发布日期:2019-06-18 22:44阅读:292来源:国知局
交通标志识别方法和装置与流程

概括地说,本发明涉及图像处理和汽车安全辅助驾驶领域,具体地说,本发明涉及交通标志(特别是红绿灯)识别方法和装置。



背景技术:

随着技术的发展,机器人驾驶交通工具(例如,“uav”或“无人机”)自动驾驶技术开始逐渐成为热点。在自动驾驶领域,交通信号灯检测技术是机器人驾驶交通工具的关键技术之一。如果无法正确地检测和分类交通信号灯,则可能违反交通规则,并可能造成严重的交通事故而导致死亡、损伤、和/或具有明显的损坏性。

传统的交通信号灯检测方案主要是基于传统特征的方法,主要利用颜色直方图和hog(方向梯度直方图)特征来刻画交通信号灯的颜色和形状,如红色的直行灯、绿色的左转灯等。但是,这种方案对环境的鲁棒性不强,比如会受到光照、信号灯的大小、位置等等很大的影响。因此,在自动驾驶领域,需要能够可靠地并且智能地检测和分类交通信号灯的智能计算机化系统。



技术实现要素:

有鉴于此,本发明公开内容提供了交通标志识别的方法、装置、设备和计算机存储介质。faster(快速)rcnn是适合于检测交通信号灯的比较好的一种基于深度学习的检测方法。但传统的fasterrcnn速度较慢,本发明公开内容提出了一种新型的快速rcnn模型,其通过优化fasterrcnn模型的结构等等技术手段来实现检测的加速和识别的准确。

在一个方面,本发明的实施例提供了一种交通标志识别方法,该方法包括:从相机获取图像数据;利用深度学习技术来检测所述图像数据的当前帧的感兴趣区域以获得初始交通标志检测结果;对所述初始交通标志检测结果进行追踪,以获得最终交通标志检测结果;根据所述最终交通标志检测结果,预测下一帧的感兴趣区域。

在本发明公开内容的一个实施例中,利用深度学习技术来检测所述图像数据的当前帧的感兴趣区域以获得初始交通标志检测结果,包括:使用新型快速rcnn模型对所述图像数据中的交通标志进行检测;根据该新型快速rcnn模型给出的置信度对所述检测结果进行过滤以获得高置信度结果和低置信度结果。

在本发明公开内容的一个实施例中,对所述初始交通标志检测结果进行追踪,以获得最终交通标志检测结果包括:将上一帧检测结果与当前帧的所述高置信度结果进行匹配;如果所述上一帧检测结果与当前帧的所述高置信度结果匹配,则检测到所述交通标志;如果所述上一帧检测结果与当前帧的所述高置信度结果不匹配,则将所述上一帧检测结果与当前帧的所述低置信度结果进行匹配;如果所述上一帧检测结果与当前帧的所述低置信度结果匹配,则检测到所述交通标志。

在本发明公开内容的一个实施例中,所述交通标志可以是红绿灯或者其它类型的交通信号灯。

在本发明公开内容的一个实施例中,预测下一帧的感兴趣区域包括:对所述最终交通标志检测结果的检测框进行扩展,以获得感兴趣区域。

在本发明公开内容的一个实施例中,当所述新型快速rcnn模型给出的所述置信度大于0.7时,认为是高置信度检测结果。当所述新型快速rcnn模型给出的所述置信度小于0.7但大于0.5时,认为是低置信度检测结果。当然,置信度也可以设为其它阈值。

在本发明公开内容的一个实施例中,通过以下至少之一改进,在fasterrccn基础上实现新型快速rcnn模型:改善基础网络;改进rpn(区域建议网络)的锚点选取;使用roi-align来替代roi-pooling;使用难样本进行在线挖掘。

在本发明公开内容的一个实施例中,所述基础网络是基于inception和resnet网络的组合,提升所述基础网络获得的特征图与原图的比例并扩大基础网络获得的特征图,其中所述新型快速rcnn模型的conv3层的stride为1。

在本发明公开内容的一个实施例中,改进所述rpn中的锚点的选取,以将所述锚点的宽高比设置为1:1。

各个实施例还可以包括具有交通信号灯检测装置的机器人驾驶交通工具,该交通信号灯检测装置包括收发机、存储器、以及配置有处理器可执行指令以执行上面所概述的方法的操作的处理器。各个实施例包括用于在机器人驾驶交通工具中使用的处理设备,其配置为执行上面所概述的方法的操作。各个实施例包括存储有处理器可执行指令的非临时性处理器可读介质,所述处理器可执行指令被配置为使机器人驾驶交通工具的处理器执行上面所概述的方法的操作。

本发明的实施例使得对交通信号灯的检测识别更加准确,对于颜色、形状的识别更加鲁棒。同时,本发明的实施例使用上一帧图像的检测结果引导下一帧图像的检测等追踪方法,减少了环境中车灯等因素对交通信号灯的检测的干扰,并降低了模型错检的影响。

附图说明

并入本文并且构成本说明书一部分的附图,描绘了示例性实施例,并且连同上面给出的概括描述以及下面给出的详细描述一起来解释各个实施例的特征。

图1示出了适于用来实现本发明实施例的环境或系统;

图2是根据本发明实施例,示出用于在机器人驾驶交通工具中使用的交通信号灯检测设备的组件的框图;

图3根据本发明实施例,示出了快速rcnn的网络架构;

图4根据本发明实施例,示出了新型快速rcnn的网络架构以及对相应网络结构进行的改善的说明;

图5根据本发明实施例,示出了一种用于基于深度学习的交通标志识别的方法的示意性流程图;

图6根据本发明实施例,示出了用于利用深度学习技术对图像的感兴趣区域进行检测以获得交通信号灯检测结果的方法的示意性流程图;

图7根据本发明实施例,示出了用于对当前帧的检测结果进行追踪的方法的示意性流程图;

图8根据本发明实施例,示出了一种用于基于深度学习的交通标志识别的装置的示意性框图。

在附图中,相同或相似的标号被用来表示相同或相似的元素。

具体实施方式

为了说明性起见,给出了本文档中所描述的本发明的实施例、附图和例子,以便提供对本发明的一个或多个实施例的理解,这些实施例包括用于实施本发明的当前最佳预期模式的实施例。

这些实施例、附图和例子不应被解释为是穷举的,也不应将本发明的实施例限制于这里所描述的实施例,它们仅仅是为了说明本发明的一般性原理。对于本领域普通技术人员来说,不脱离这些示例和实施例的保护范围和精神的本发明的众多其它修改和变型将是显而易见的。选择本文档中使用的术语是为了最好地解释这些示例和实施例的基本原理,以便相对于已知技术和产品来说明本发明的实际应用和技术改进,使本领域普通技术人员能够更好地理解这里所公开的示例和实施例。

本文所使用的“示例性的”一词意味着“用作例子、例证或说明”。本文中描述为“示例性”的任何方面不应被解释为比其它方面更优选或更具优势。

如本文所使用的,术语“机器人驾驶交通工具”和“无人机”、“无人车”指代:包括有被配置为提供一些自主或半自主能力的车载计算设备的各种类型的车辆中的一种。机器人驾驶交通工具的示例包括但不限于:诸如无人驾驶飞行器(uav)之类的飞行器;地面车辆(例如,自动驾驶汽车或半自动驾驶汽车等等);水基车辆(即,被配置为在水面上或水下作业的车辆);天基车辆(例如,航天器或太空探测器);和/或其某种组合。在一些实施例中,机器人驾驶交通工具可以是有人驾驶的。在其它实施例中,机器人驾驶交通工具可以是无人驾驶的。在一些实现中,机器人驾驶交通工具可以是飞行器(无人驾驶或有人驾驶),该飞行器可以是旋翼飞行器或有翼飞行器。

如本文所使用的,术语“交通标志”可以指代红绿灯或其它类型的交通信号灯。

各个实施例可以在各种机器人驾驶交通工具中实现,在图1中示出了可以适合于结合各种实施例使用的示例。

参见图1,系统或环境1可以包括一个或多个机器人驾驶交通工具10和交通标志20。图1中的机器人驾驶交通工具10可以与任何通信网络进行通信,也可以不与这些通信网络进行通信。交通标志20可以是待检测识别的交通指示灯,例如交通标志20可以是红绿灯(上中下分别为红黄绿灯)或其它类型的交通信号灯。

在各个实施例中,机器人驾驶交通工具10可以包括一个或多个相机140,所述一个或多个相机140被配置为捕获图像,将图像数据提供给机器人驾驶交通工具10的处理设备110。交通标志20可以在机器人驾驶交通工具10的相机140的捕获范围内。

机器人驾驶交通工具10可以包括处理设备110,处理设备110可以被配置为监测和控制机器人驾驶交通工具10的各种功能、子系统和/或其它组件。例如,处理设备110可以被配置为监测和控制机器人驾驶交通工具10的各种功能,例如与推进、动力管理、传感器管理、导航、通信、致动、转向、制动和/或车辆操作模式管理相关的模块、软件、指令、电路、硬件。

处理设备110可以容纳用于控制机器人驾驶交通工具10的操作的各种电路和设备。例如,处理设备110可以包括指示机器人驾驶交通工具10的控制的处理器120。处理器120可以包括一个或多个处理器,其被配置为执行处理器可执行指令(例如,应用程序、例程、脚本、指令集等)以控制机器人驾驶交通工具10的操作(其包括本文的各种实施例的操作)。在一些实施例中,处理设备110可以包括耦合到处理器120的存储器122,其被配置为存储数据(例如,获得的图像数据、接收的消息、应用程序等等)。处理器120和存储器122以及其它元件可以被配置成或者包括片上系统(soc)115。处理设备110可以包括一个以上的soc115,从而增加处理器120和处理器核的数量。处理设备110还可以包括不与soc115相关联的处理器120。各个处理器120可以是多核处理器。

如本文所使用的术语“片上系统”或“soc”是指一组互连的电子电路,其通常(但不排外地)包括一个或多个处理器(例如,120)、存储器(例如,122)和通信接口。soc115可以包括各种不同类型的处理器120和处理器核,比如通用处理器、中央处理单元(cpu)、数字信号处理器(dsp)、图形处理单元(gpu)、加速处理单元(apu)、处理设备的特定组件的子系统处理器(例如,用于交通信号灯检测装置(如,130)的图像处理器或者用于显示器的显示处理器、辅助处理器、单核处理器和多核处理器)。soc115还可以包括其它硬件和硬件组合,例如现场可编程门阵列(fpga)、专用集成电路(asic)、其它可编程逻辑器件、离散门逻辑、晶体管逻辑、性能监测硬件、看门狗硬件和时间基准。可以对集成电路进行配置,使得集成电路的组件驻留在单片半导体材料(例如,硅)上。

处理设备110还可以包括或连接到一个或多个传感器136,处理器120可以使用所述一个或多个传感器136来确定与车辆操作相关联的信息和/或与机器人驾驶交通工具10相对应的外部环境相关联的信息,以控制机器人驾驶交通工具10上的各种处理。这种传感器136的示例包括加速度计、陀螺仪和电子指南针,它们被配置为向处理器120提供关于机器人驾驶交通工具10的方向和运动的变化的数据。可以通过各种电路(例如,总线或其它类似电路),将处理设备110和/或soc115内的各种组件耦合在一起。

处理设备110还可以包括交通信号灯检测装置130,后者可以从相机140从相机获取包含交通标志20的图像数据,利用深度学习技术来检测图像数据的当前帧的感兴趣区域以获得初始交通标志检测结果,对交通标志检测结果进行追踪以获得最终交通标志检测结果,该最终交通标志检测结果可以是追踪结果,根据追踪结果可以预测下一帧的感兴趣区域。

虽然图中将处理设备110的各个组件示为单独的组件,但是可以将一些或所有的组件(例如,处理器120、存储器122和其它单元)一起集成在单个设备或模块(例如,片上系统模块)中。

各个实施例可以在机器人驾驶交通工具的交通信号灯检测设备200中实现,在图2中示出了其一个示例。参见图1-2,适用于各种实施例的交通信号灯检测设备200可以包括相机140、处理器208、存储器210和交通信号灯检测单元212。

相机140可以包括至少一个图像传感器204和至少一个光学系统206(例如,一个或多个透镜)。相机140可以获得一个或多个数字图像(本文有时称为图像帧)。相机140可以包括单个单目相机、立体相机和/或全向相机。在一些实施例中,相机140可以与交通信号灯检测设备200物理地分离,例如位于机器人驾驶交通工具的外部并且经由数据线缆(没有示出)连接到处理器208。在一些实施例中,相机140可以包括另一个处理器(没有示出),其可以配置有处理器可执行指令以执行各种实施例方法的操作中的一个或多个操作。

在一些实施例中,可以在相机140内实现存储器210或者诸如图像缓冲器(没有示出)之类的另一种存储器。例如,相机140可以包括被配置为在对来自图像传感器204的图像数据进行处理(例如,由处理器208进行处理)之前,对该数据进行缓存(即,临时地存储)。在一些实施例中,交通信号灯检测设备200可以包括图像数据缓冲器,其被配置为对来自相机140的图像数据进行缓存(即,临时地存储)。这样的缓存图像数据可以提供给处理器208,或者可以由处理器208或者被配置为执行各种实施例中的一些或全部操作的其它处理器访问。

在一些实施例中,交通信号灯检测单元212可以被配置为使用从相机140捕获的图像数据,进行基于深度学习的交通标志识别,提高对交通信号灯检测的鲁棒性以及减少环境对交通信号灯检测的干扰,从而确定用于在相应环境下进行自动驾驶的各种控制指令,以便在机器人驾驶交通工具10的环境内进行导航。在各个实施例中,可以对相机140的一个或多个相机捕获的图像中的一个或多个加时间戳。

处理器208可以耦合到相机140、一个或多个图像传感器204、一个或多个光学系统206、存储器210和交通信号灯检测单元212(例如,与它们进行通信)。处理器208可以是通用单芯片或多芯片微处理器(例如,arm处理器),特殊用途微处理器(例如,数字信号处理器(dsp))、微控制器、可编程门阵列等等。处理器208可以称为中央处理单元(cpu)。虽然在图2中示出了单个处理器208,但交通信号灯检测设备200可以包括多个处理器(例如,多核处理器)或者不同类型的处理器(例如,arm和dsp)的组合。

处理器208可以被配置为实现各个实施例的方法,以进行基于深度学习的交通标志识别和/或在环境中导航机器人驾驶交通工具10。

存储器210可以存储数据(例如,图像数据、时间戳、与交通信号灯检测单元212相关联的数据等等)、以及可以由处理器208执行的指令。在各种实施例中,可以存储在存储器210中的指令和/或数据的示例可以包括图像数据、陀螺仪测量数据、相机自动校准指令等等。存储器210可以是能够存储电子信息的任何电子组件,其包括例如随机存取存储器(ram)、只读存储器(rom)、磁盘存储介质、光存储介质、ram中的闪存设备、处理器附带的板载存储器、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、寄存器等等(包括其组合)。

当然,本领域普通技术人员应当理解,该交通信号灯检测设备200例如可以是服务器或者计算机,也可以是智能终端,例如电子锁、智能手机、智能平板等,本发明并不受此限制。

下面将具体描述本发明实施例的机制和原理。除非特别声明,在下文和权利要求中使用的术语“基于”表示“至少部分地基于”。术语“包括”表示开放性包括,即“包括但不限于”。术语“多个”表示“两个或更多”。术语“一个实施例”表示“至少一个实施例”。术语“另一实施例”表示“至少一个另外的实施例”。其他术语的定义将在下文描述中给出。

图3根据本发明实施例,示出了快速rcnn的网络架构。如图3中所示,快速rcnn包括基础网络、rpn(区域建议网络)、roipooling(roi池化)和分类与位置精修等部分。

快速rcnn算法使用两阶段算法,在基于深度学习的检测算法中准确度较高,但缺点是速度相对较慢。在第一阶段中,快速rcnn通过一系列的卷积层和池化层(其统称为基础网络,由于这些卷积层设计参数等方面的原因造成了快速rcnn运算速度相对较慢)来提取图像的特征,以得到全局特征图。然后,将全局特征图送入rpn(区域建议网络),以获得多个候选的检测框。但这些检测框通常比较粗糙,只是神经网络认为这里有值得看的东西。之后,在第二阶段中,针对候选检测框,在特征图上提取每个检测框的特征。每个检测框的大小可能不同,但由于用于分类的网络必须需要固定尺寸的输入数据,因此可以使用roipooling技术,针对每个检测框提取6x6x256(宽x高x通道数)大小的特征图。使用这种经过roipooling的特征图,对相应检测框内的内容进行分类,判断是哪种颜色的红绿灯、哪种形状的红绿灯或者还是背景,并同时对检测框的位置进行精修,使得检测框与被检测物体更加紧致。

图4根据本发明实施例,示出了新型快速rcnn的网络架构以及对相应网络结构进行的改善的说明。本发明给出的新型快速rcnn的网络架构类似于图3的快速rcnn的网络架构,但对于图3中的基础网络、rpn、以及roipooling的相应部分和参数进行了改进,从而在不损失对交通信号灯检测的精确性的同时可以提高运算速度。

首先,对快速rcnn的基础网络进行改善,也就是改变卷积层的排布方式,从而提高相应的运算速度。现有技术中使用vgg16网络在第一阶段中提取全局特征图。但是该基础网络在现在看来速度较慢,并且提取出的特征较不丰富。近几年提出的残差神经网络(resnet)使用残差学习的思想,避免梯度消失,使得训练更深层的网络更容易。而inception的结构,通过使用不同数量的卷积核,保持了网络感受野(receptivefield)的多样性,并且通过1x1卷积降低了通道数,减少了参数,提高了速度。感受野可以通过卷积核的大小体现,卷积核越大越多,看到的区域就越广。1x1的卷积不改变图像的大小,比如一个200x200x32的宽x高x通道数的图像,进入1x1卷积后,通过调整1x1卷积核的通道数,可以获得200x200x8的图像。

本发明公开内容的实施例对inception和resnet二者(inception和resnet各有自己的卷积层的设计)进行组合,在inception结构外再加上残差结构,这样一来,既有inception的结构,也有resnet的结构。可以保证网络感受野的大小以及性能,并达到足够快的速度。其中,resnet网络是为了更深,inception网络是为了更宽。

在组合inception和resnet网络的基础上,该基础网络获得的特征图就扩大或增多了。通常,通过该网络获得的特征图是原图大小的1/16。但这样一来,对于小物体而言,在特征图上只有很少的特征,其导致后续处理的精度降低。为此,我们通过改变conv3层的stride,从2改为1,使得最后得到的特征图大小为原图大小的1/8,并且将上一层的1/4大小的特征图下采样到1/8,将下一层的1/16大小的特征图上采样到1/8,这样总共能获得3个都是与原图大小1/8的特征图,作为最后提供给后续网络(rpn和roipooling)的特征图。经过相应参数的改进,上层的特征有更丰富的特征,并且由于下层的特征通过了更多卷积层,有更抽象的语义信息,因此将它们进行融合,可以获得更好的特征图。因此,经过相应的改进,可以在不降低精度的基础上,同时充分利用inception和resnet网络的益处来提高运算速度。

此外,本发明公开内容改善了rpn中的锚点。在rpn中,要获取候选的检测框,则需要在预设的锚点上进行预测,因此预测的锚点的大小对后续的预测有很重要的影响。通过先验信息发现,交通信号灯的宽高比均为1:1,所以将锚点的宽高比都设为1:1,使得模型预测候选检测框更加容易,从而获得的候选检测框也更加准确。

还有,本发明公开内容使用roi-align来替代roi-pooling。因为红绿灯在图像中都比较小,若使用原来的roipooling进行池化,会因为四舍五入带来一定的量化误差,损失一定的空间精度。因为候选检测框的位置是有小数的,但特征图只有整数上才有值,因此为了处理的简便,就将检测框的小数去除,这相当于选取离目标点最近的点,对应到特征图上之后再提取每个检测框的特征。因为特征图与原图还有1/8的比例,所以对应到原图上,检测框提取的特征会有一定的偏移,对于小物体而言,这种偏移的影响很大。因此,本发明中使用roi-align,对于有小数点的位置,通过双线性插值的方法,利用旁边的4个整数点来计算出它的特征值,从而减少偏移的误差。

最后,使用难样本在线挖掘。在训练时,使用难样本在线挖掘(onlinehardexamplemining)的技术,对每个检测框使用神经网络先计算一遍损失值,选取损失值大的检测框进行反向传播,从而使模型自动对检测困难的样本给予更多关注(简单来说,就是对检测效果不好的检测框给予更多关注)。之后,根据模型算法给出相应检测框的置信度,其中置信度一般是0到1之间的实数。在一个实施例中,可以将交通信号灯检测置信度大于0.7的结果认为是高置信度检测结果,认为交通信号灯检测置信度小于0.7但大于0.5是低置信度检测结果,而对于小于0.5的检测结果,则进行忽略,认为其是不可信的检测结果或者是其它对象。

通过改善基础网络、改进rpn的锚点选取、使用roi-align来替代roi-pooling、以及使用难样本进行在线挖掘技术,本发明公开内容提出的新型rcnn模型可以在不损失对交通信号灯检测的精确性的同时提高运算速度,从而有助于机器人驾驶交通工具10能够在现实环境中快速可靠地并且智能地检测和分类交通信号灯。

图5根据本发明实施例,示出了一种用于基于深度学习的交通标志识别的方法500的示意性流程图。方法500可以由参照图1所描述的交通信号灯检测装置130、参照图2所描述的交通信号灯检测设备200来执行。下面结合图5详细描述方法500中包括的各步骤。

方法500始于步骤502,从相机获取图像数据。本领域普通技术人员可以理解,这里获取图片数据例如可以是获取采集的图片数据,也可以是获取经过处理后的采集的图片数据,或其它方式。本发明并不受此限制。

在步骤504,利用深度学习技术来检测所述图像数据的当前帧的感兴趣区域以获得初始交通标志检测结果。在一个方面,该交通标志可以是红绿灯或者其它类型的交通信号灯。

一般而言,不需要关心出现在图像边缘的红绿灯,因为此时要么和红绿灯距离很近,要么很远。当我们到达路口时,红绿灯总是位于图像的上半部分。因此,在较优实施例中,将感兴趣区域默认设定在图像中间,之后用每一帧的检测结果去更新感兴趣区域。通过设定感兴趣区域,相当于通过先验数据证明只需要在这块较小区域中检测红绿灯即可,这样可以减小输入图像,并且排除一些在图像中过低或过高的干扰(如路灯、车灯、其他灯光等)。

在步骤506,对初始交通标志检测结果进行追踪,以获得最终交通标志检测结果,该最终交通标志检测结果可以是追踪结果。

在步骤508,根据最终交通标志检测结果,预测下一帧的感兴趣区域。

图6根据本发明实施例,示出了用于利用深度学习技术对图像的感兴趣区域进行检测以获得交通信号灯检测结果的方法600的示意性流程图。方法600可以由参照图1所描述的交通信号灯检测装置130、参照图2所描述的交通信号灯检测设备200、以及参照图8所描述的检测模块804来执行。方法600可以是方法500中的步骤504的详细说明。

在步骤602,利用参照图4所描述的新型快速rcnn模型对在步骤502获得的图像数据中的交通标志进行检测。

在一个方面,通过改善基础网络、改进rpn的锚点选取、使用roi-align来替代roi-pooling、使用难样本进行在线挖掘,在fasterrccn基础上实现新型快速rcnn模型。该新型快速rcnn模型的基础网络是inception和resnet网络的组合,提升基础网络获得的特征图与原图的比例并扩大基础网络获得的特征图,其中该新型快速rcnn模型的基础网络的conv3层的stride为1。

在一个方面,该新型快速rcnn模型的rpn的锚点的选取,是将锚点的宽高比设置为1:1。

在步骤604,根据该新型快速rcnn模型给出的置信度,对检测结果进行过滤,以获得高置信度结果和低置信度结果。在一个方面,当新型快速rcnn模型给出的置信度大于0.7时,认为是高置信度检测结果。当新型快速rcnn模型给出的置信度小于0.7但大于0.5时,认为是低置信度检测结果。当然,置信度也可以设为其它阈值。

图7根据本发明实施例,示出了用于对当前帧的检测结果进行追踪的方法700的示意性流程图。方法700可以由参照图1所描述的交通信号灯检测装置130、参照图2所描述的交通信号灯检测设备200、以及参照图8所描述的追踪模块806来执行。方法700可以是方法500中的步骤506的详细说明。

在判断框702处,将上一帧检测结果与当前帧的高置信度结果进行匹配。如果上一帧检测结果与当前帧的高置信度结果匹配,则检测到交通标志,方法700转到方框706处。如果上一帧检测结果与当前帧的高置信度结果不匹配,则转到判断框704处。

在判断框704处,将该上一帧检测结果与当前帧的低置信度结果进行匹配。如果上一帧检测结果与当前帧的低置信度结果匹配,则检测到交通标志,方法700转到方框706处。

在判断框702和704的一个方面,在将上一帧的检测结果与高置信度的检测结果进行匹配时,如果是起始帧,则认为上一帧的检测结果为空。这里的匹配是根据两帧图像上交通信号灯中心点的距离以及交通信号灯大小来进行的,图像上距离越近,大小越接近,则认为两帧图像中交通信号灯越可能是同一个。如果上一帧的检测结果与当前帧匹配了,则认为这是可靠的检测结果。如果没有匹配上,则去当前帧的低置信度检测结果中继续匹配。如果匹配上了,则是可靠的检测结果,如果不能,则认为是不可靠的检测结果。如果当前帧的检测结果置信度非常高,就直接认为这是可靠的检测结果。

在方框706处,对来自判断框702和判断框704的检测到的交通标志进行融合,以获得最终交通标志检测结果。

在方框708处,对最终交通标志检测结果的检测框进行扩展,以获得感兴趣区域。在一个方面,最终交通标志检测结果可以是追踪结果。从追踪结果中能获得交通信号灯的位置,取所有追踪结果的中心点,将其扩展预先设定的范围。在一个实施例中,可以以获得的所有追踪结果的中心作为中心,取一个1200x600像素大小的区域,作为下一帧图像的感兴趣区域,下一帧的交通信号灯检测只在该感兴趣区域范围中进行。

图8根据本发明实施例,提供了一种用于基于深度学习的交通标志识别的装置800的示意性框图。

该装置800包括获取模块802,其被配置为从相机获取图像数据。该装置800还包括检测模块804,其被配置为利用深度学习技术来检测图像数据的当前帧的感兴趣区域以获得初始交通标志检测结果。该装置800还包括追踪模块806,其被配置为:对初始交通标志检测结果进行追踪,以获得最终交通标志检测结果;根据最终交通标志检测结果,预测下一帧的感兴趣区域。该装置800还包括匹配子模块808,其被配置为将上一帧检测结果与当前帧的所述高置信度结果进行匹配,如果上一帧检测结果与当前帧的高置信度结果匹配,则检测到交通标志。该装置800还包括重匹配子模块810,其被配置为在上一帧检测结果与当前帧的高置信度结果不匹配时,将上一帧检测结果与当前帧的低置信度结果进行匹配,如果上一帧检测结果与当前帧的低置信度结果匹配,则检测到交通标志。该装置800还包括结果融合子模块812,其被配置为对匹配子模块808和重匹配子模块810的结果进行融合。

本实施例提供的装置800的具体实现可以参照相应的方法实施例,在此不再赘述。

为清晰起见,图8中没有示出装置800所包括的所有可选单元或者子单元,并使用虚线来示出了可选的模块。上述方法实施例以及通过参考和结合能够得到的实施例所描述的所有特征和操作分别适用于装置800,故在此不再赘述。

本领域技术人员可以理解,装置800中单元或子单元的划分不是限制性的而是示例性的,而是为了更方便本领域技术人员理解,从逻辑上描述其主要功能或操作。在装置800中,一个单元的功能可以由多个单元来实现;反之,多个单元也可由一个单元来实现。本发明并不对此加以限制。

同样的,本领域技术人员可以理解,可以采用各种方式来实现装置800所包含的单元,其包括但不限于软件、硬件、固件或其任意组合,本发明并不对此加以限制。

本发明可以是具有任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。该计算机程序产品可以包括计算机可读存储介质(或媒体),其上具有用于使处理器执行本发明的方面的计算机可读程序指令。

计算机可读存储介质可以是有形设备,其可以保持和存储用于供指令执行设备使用的指令。计算机可读存储介质可以是例如但不限于:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者前述的任何适当组合。计算机可读存储介质的更具体示例的非详尽列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字通用光盘(dvd)、记忆棒、软盘、机械编码装置(例如,在其上记录有指令的凹槽中的穿孔卡或凸起结构)、以及前述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为本身是暂时性信号,例如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或者通过电线传输的电信号。

本文所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质或外部计算机或外部存储设备下载到相应的计算/处理设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或者网络接口从网络接收计算机可读程序指令,转发这些计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、用于集成电路的配置数据、或者以一种或多种编程语言(其包括诸如smalltalk、c++等等之类的面向对象的编程语言、以及诸如“c”编程语言之类的过程编程语言、或者类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全地在用户的计算机上执行、作为独立的软件包部分地在用户的计算机上执行、部分地在用户的计算机上和部分地在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(其包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网进行连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化电子电路,来执行计算机可读程序指令,以执行本发明的方面。

可以将这些计算机可读程序指令提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以生产机器,使得通过计算机的处理器或其它可编程数据处理装置执行的指令,创建用于实现流程图和/或框图块或块集合中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,该计算机可读存储介质可以指示计算机、可编程数据处理装置和/或其它设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括具有指令的制品,其中这些指令实现流程图和/或框图块或者块集合中指定的功能/动作的方面。

计算机可读程序指令还可以加载到计算机、其它可编程数据处理装置或者其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤产生计算机实现的处理,使得在计算机、其它可编程装置或者其它设备上执行的指令实现在流程图和/或框图块或块集合中指定的功能/动作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1