发明内容
为解决或部分解决相关技术中存在的问题,本申请提供一种交通信号灯信息处理方法、装置及设备,能够提高交通信号灯的倒计时信息输出的准确性,避免车辆安全受到影响,提高自动驾驶安全性。
本申请第一方面提供一种交通信号灯信息处理方法,应用于处理器,所述方法包括:
由卷积神经网络接收输入的交通信号灯图像;
按预设检测频率检测所述交通信号灯图像不同帧的倒计时数值;
根据构建的奖励方程确定当前时刻输出的倒计时数值,或根据构建的时间队列确定当前时刻输出的倒计时数值,其中所述奖励方程根据跃迁矩阵对应值、当前时刻可能的倒计时数值的概率值、前一帧奖励值进行设定运算。
在一实施方式中,所述根据构建的奖励方程确定当前时刻输出的倒计时数值,包括:
通过构建的奖励方程得到当前时刻各帧的奖励值;
根据当前帧奖励值与前n帧奖励值的差值再除以n得到奖励比较值,其中所述n为大于1的自然数;
根据奖励比较值与预设比较阈值的比较结果,确定当前时刻输出的倒计时数值。
在一实施方式中,所述根据奖励比较值与预设比较阈值的比较结果,确定当前时刻输出的倒计时数值,包括:
在所述奖励比较值大于或等于预设比较阈值时,确定当前帧的的倒计时数值为当前时刻输出的倒计时数值;或,
在所述奖励比较值小于预设比较阈值时,确定前一帧的的倒计时数值为当前时刻输出的倒计时数值。
在一实施方式中,所述通过构建的奖励方程得到当前时刻各帧的奖励值,包括:
如果当前时刻可能的倒计时数值的概率值大于预设概率阈值时,当前帧奖励值由跃迁矩阵对应值与当前时刻可能的倒计时数值的概率值进行相乘运算后再与前一帧奖励值进行相加得到,或,
如果当前时刻可能的倒计时数值的概率值小于或等于预设概率阈值时,当前帧奖励值取前一帧奖励值的数值。
在一实施方式中,所述当前时刻可能的倒计时数值选取置信度高时所对应的倒计时数值。
在一实施方式中,所述根据构建的时间队列确定当前时刻输出的倒计时数值,包括:
在不同的时间列表中选取不同帧的倒计时数值发生1次数值变化的时间列表;
根据所述时间列表中最后一个倒计时数值出现的次数确定最后一帧的倒计时数值;
根据所述最后一帧的倒计时数值,确定当前时刻输出的倒计时数值。
在一实施方式中,所述确定当前时刻输出的倒计时数值之后,还包括:
将所述当前时刻输出的倒计时数值减去延时公差,得到最终的当前时刻输出的倒计时数值。
在一实施方式中,所述延时公差通过采样每一次倒计时数值变化的时间点计算得到。
在一实施方式中,所述方法还包括:
将所述当前时刻输出的倒计时数值、由所述卷积神经网络识别出的交通信号灯的位置信息和颜色信息,标记在输入的所述交通信号灯图像上并输出。
本申请第二方面提供一种交通信号灯信息处理装置,应用于处理器,所述装置包括:
输入接收模块,用于由卷积神经网络接收输入的交通信号灯图像;
倒计时检测模块,用于按预设检测频率检测所述交通信号灯图像不同帧的倒计时数值;
输出处理模块,用于根据构建的奖励方程确定当前时刻输出的倒计时数值,或根据构建的时间队列确定当前时刻输出的倒计时数值,其中所述奖励方程根据跃迁矩阵对应值、当前时刻可能的倒计时数值的概率值、前一帧奖励值进行设定运算。
在一实施方式中,所述输出处理模块包括:
第一输出处理模块,用于通过构建的奖励方程得到当前时刻各帧的奖励值;
根据当前帧奖励值与前n帧奖励值的差值再除以n得到奖励比较值,其中所述n为大于1的自然数;
根据奖励比较值与预设比较阈值的比较结果,确定当前时刻输出的倒计时数值。
在一实施方式中,所述输出处理模块包括:
第二输出处理模块,用于在不同的时间列表中选取不同帧的倒计时数值发生1次数值变化的时间列表;
根据所述时间列表中最后一个倒计时数值出现的次数确定最后一帧的倒计时数值;
根据所述最后一帧的倒计时数值,确定当前时刻输出的倒计时数值。
本申请第三方面提供一种人工智能芯片,包括如上所述的交通信号灯信息处理装置。
本申请第四方面提供一种计算设备,所述计算设备包括上述的人工智能芯片。
本申请第五方面提供一种板卡,所述板卡包括:存储器件、接口装置和控制器件以及上述人工智能芯片;
其中,所述人工智能芯片与所述存储器件、所述控制器件以及所述接口装置分别连接;
所述存储器件,用于存储数据;
所述接口装置,用于实现所述人工智能芯片与外部设备之间的数据传输;
所述控制器件,用于对所述人工智能芯片的状态进行监控。
本申请第六方面提供一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
本申请第七方面提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被计算设备的处理器执行时,使所述处理器执行如上所述的方法。
本申请提供的技术方案可以包括以下有益效果:
相关技术主要是通过增强交通信号灯检测和文本信息分类卷积神经网络的能力来提高在自动驾驶场景下交通信号灯文本信息的预测,但容易由于遮挡和天气原因等导致预测不准确。本申请提供的方法,应用于处理器,是从实际角度出发,以交通信号灯倒计时的连续变化和卷积神经网络会出现误检等方向进行思考,在卷积神经网络接收输入的交通信号灯图像后,按预设检测频率检测所述交通信号灯图像不同帧的倒计时数值,然后根据构建的奖励方程确定当前时刻输出的倒计时数值,或根据构建的时间队列确定当前时刻输出的倒计时数值。通过这样的处理,能够更加准确预测倒计时数值,提高交通信号灯的倒计时信息输出的准确性,避免车辆安全受到影响,提高自动驾驶安全性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
具体实施方式
下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
相关技术中交通信号灯的倒计时状态的文本信息检测不准确,容易引起车辆的急停和闯红灯,影响驾驶安全。针对上述问题,本申请实施例提供一种交通信号灯信息处理方法,能够提高交通信号灯的倒计时信息输出的准确性,避免车辆安全受到影响。
本申请方法可应用于处理器中,该处理器可以是通用处理器,例如CPU(CentralProcessing Unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器。人工智能运算可包括机器学习运算、类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。该人工智能处理器例如包括人工智能芯片处理器、GPU(Graphics Processing Unit,图形处理单元)、NPU(Neural-Network Processing Unit,神经网络处理单元)、DSP(Digital Signal Process,数字信号处理单元)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)芯片中的一种或组合。
该人工智能处理器可以是应用于人工智能芯片中的处理器。其中人工智能芯片例如可以是神经网络芯片或其他芯片,神经网络芯片例如可以是卷积神经网络推理芯片、ASIC芯片等。本申请对处理器的具体类型不作限制。
在一种可能的实现方式中,本申请中所提及的处理器可包括多个处理单元,每个处理单元可以独立运行所分配到的各种任务,如:卷积运算任务、池化任务或全连接任务等。本申请对处理单元及处理单元所运行的任务不作限制。处理器中的多个处理单元既可共用部分存储空间,例如共用部分RAM存储空间和寄存器堆,又可同时拥有各自的存储空间。
以下结合附图详细描述本申请实施例的技术方案。
图1是本申请实施例示出的交通信号灯信息处理方法的流程示意图。该方法可应用于处理器,该处理器可以包括通用处理器、人工智能处理器等,其中人工智能处理器可以是人工智能芯片处理器或GPU等。
参见图1,该方法包括:
S101、由卷积神经网络接收输入的交通信号灯图像。
该步骤中,卷积神经网络接收从含有交通信号灯的原始图像中所截出的交通信号灯图像。卷积神经网络可以根据接收的车辆的前视车载摄像头抓拍到的含有交通信号灯的原始图像,得到表示交通信号灯位置状态的位置信息和表示颜色状态的颜色信息,然后可以通过交通信号灯的位置信息,在原始的图像上截出交通信号灯图像。
S102、按预设检测频率检测交通信号灯图像不同帧的倒计时数值。
本申请方案可以按照预设检测频率进行检测,预设检测频率例如可以是1秒10帧但不局限于此。
S103、根据构建的奖励方程确定当前时刻输出的倒计时数值,或根据构建的时间队列确定当前时刻输出的倒计时数值,其中奖励方程根据跃迁矩阵对应值、当前时刻可能的倒计时数值的概率值、前一帧奖励值进行设定运算。
其中,根据构建的奖励方程确定当前时刻输出的倒计时数值,可以包括:通过构建的奖励方程得到当前时刻各帧的奖励值;根据当前帧奖励值与前n帧奖励值的差值再除以n得到奖励比较值,其中n为大于1的自然数;根据奖励比较值与预设比较阈值的比较结果,确定当前时刻输出的倒计时数值。
其中,根据奖励比较值与预设比较阈值的比较结果,确定当前时刻输出的倒计时数值,包括:在奖励比较值大于或等于预设比较阈值时,确定当前帧的的倒计时数值为当前时刻输出的倒计时数值;或,在奖励比较值小于预设比较阈值时,确定前一帧的的倒计时数值为当前时刻输出的倒计时数值。
其中,通过构建的奖励方程得到当前时刻各帧的奖励值,包括:如果当前时刻可能的倒计时数值的概率值大于预设概率阈值时,当前帧奖励值由跃迁矩阵对应值与当前时刻可能的倒计时数值的概率值进行相乘运算后再与前一帧奖励值进行相加得到,或,如果当前时刻可能的倒计时数值的概率值小于或等于预设概率阈值时,当前帧奖励值取前一帧奖励值的数值。
其中,根据构建的时间队列确定当前时刻输出的倒计时数值,可以包括:在不同的时间列表中选取不同帧的倒计时数值发生1次数值变化的时间列表;根据时间列表中最后一个倒计时数值出现的次数确定最后一帧的倒计时数值;根据最后一帧的倒计时数值,确定当前时刻输出的倒计时数值。
其中,在确定当前时刻输出的倒计时数值之后,还可以包括:将当前时刻输出的倒计时数值减去延时公差,得到最终的当前时刻输出的倒计时数值。延时公差通过采样每一次倒计时数值变化的时间点计算得到。
从该示例可以看出,相关技术主要是通过增强交通信号灯检测和文本信息分类卷积神经网络的能力来提高在自动驾驶场景下交通信号灯文本信息的预测,但容易由于遮挡和天气原因等导致预测不准确。本申请提供的方法,应用于处理器,是从实际角度出发,以交通信号灯倒计时的连续变化和卷积神经网络会出现误检等方向进行思考,在卷积神经网络接收输入的交通信号灯图像后,按预设检测频率检测所述交通信号灯图像不同帧的倒计时数值,然后根据构建的奖励方程确定当前时刻输出的倒计时数值,或根据构建的时间队列确定当前时刻输出的倒计时数值。通过这样的处理,能够更加准确预测倒计时数值,提高交通信号灯的倒计时信息输出的准确性,避免车辆安全受到影响,提高自动驾驶安全性。
图2是本申请实施例示出的交通信号灯信息处理方法的检测场景示意图。
本申请的检测场景可以参见图2所示。车辆可以通过视觉传感器例如前视车载摄像头抓拍到含有交通信号灯的原始图像,将该原始图像通过ISP(Image SignalProcessing,图像信号处理)硬件进行处理之后,输入到执行检测任务的卷积神经网络(简称检测网络)中,并由检测卷积神经网络输出表示交通信号灯位置状态的位置信息和表示颜色状态的颜色信息。
其中,检测卷积神经网络可以通过交通信号灯的位置信息,在原始的图像上截出交通信号灯图像,将该交通信号灯图像图像输入到执行分类任务的卷积神经网络(检测分类网络)中,并由该分类卷积神经网络进行检测处理后输出该交通信号灯的倒计时数值(也可以称为倒计时状态),该倒计时数值也是交通信号灯的文本信息,例如最终输出的倒计时数值为3。最后,可以将交通信号灯的位置信息、颜色信息和倒计时数值标记在原始输入的原始图像中,作为最后的输出结果。
从上述检测场景示意图的检测流程中,可以分析出交通信号灯的倒计时数值由检测网络输出的位置信息作为输入而处理得到,因此倒计时数值可能由于检测网络输出的不准确而出现误差。在实际场景中,也经常会出现由于天气、距离、遮挡等原因导致输入的原始图像信息模糊、信息缺失等情况发生,这会影响后续交通信号灯的倒计时数值输出的准确性。
例如,当由于外部环境干扰和神经网络算法不够强壮时,可能会出现的交通信号灯的倒计时数值如表1所示。在本申请方案中,可以采用1~9来表示交通信号灯上的倒计时数值,其中数值11代表卷积神经网络无法判断的倒计时信号。本申请方案按照预设检测频率进行检测,例如倒计时检测的速度为1秒10帧但不局限于此。
6 |
6 |
6 |
6 |
8 |
6 |
5 |
5 |
6 |
5 |
5 |
6 |
5 |
5 |
5 |
11 |
5 |
4 |
4 |
9 |
4 |
4 |
9 |
4 |
4 |
6 |
4 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
1 |
1 |
表1交通信号灯倒计时检测结果
6 |
6 |
6 |
6 |
6 |
6 |
6 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
5 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
4 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
3 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
2 |
1 |
1 |
1 |
表2交通信号灯倒计时实际结果
表1中第1行和第2行数值为卷积神经网络对交通信号灯倒计时的检测结果,表2中第1行和第2行数值为交通信号灯倒计时实际结果。表1和表2中列举了5秒的数据,一共50帧,其中第1行代表前25帧,第2行代表后25帧。对比表1和表2可以发现,卷积神经网络在输出交通信号灯的倒计时数值时出现误检的概率较大,特别是在远距离检测时,在倒计时数值为“6”、“5”时的误检几率较高,例如表2中的倒计时数值“6”被误检为“8”和“5”,表2中的倒计时数值“5”被误检为“6”。而本申请提供的技术方案,可以提高交通信号灯的倒计时信息输出的准确性,避免车辆安全受到影响。
图3是本申请另一实施例示出的交通信号灯信息处理方法的流程示意图。参见图3,该方法包括:
S301、由分类卷积神经网络接收输入的交通信号灯图像。
该步骤中,执行检测任务的检测卷积神经网络接收车辆的前视车载摄像头抓拍到的含有交通信号灯的原始图像,并输出表示交通信号灯位置状态的位置信息和表示颜色状态的颜色信息。
进一步的,可以通过交通信号灯的位置信息,在原始的图像上截出交通信号灯图像,将该交通信号灯图像图像输入到执行分类任务的分类卷积神经网络中。
执行分类任务的分类卷积神经网络,接收检测卷积神经网络截出的交通信号灯图像图像。
S302、按预设检测频率检测交通信号灯图像不同帧的倒计时数值。
本申请方案可以按照预设检测频率进行检测,例如倒计时检测的速度为1秒10帧但不局限于此。
本申请为了解决表1中不合理的倒计时数值的输出,提出平滑处理方案。该步骤中,首先针对每一个交通信号灯,当前时刻可能的倒计时数值选取置信度高时所对应的倒计时数值。例如,仅提取分类卷积神经网络输出的置信度最高时所对应的倒计时数值。
如以下表3所示,第一行为倒计时数值(倒计时状态),第二行为分类卷积神经网络判断对应倒计时数值的置信度。因此,对于该当前时刻输入的交通信号灯,置信度最高的是0.52,分类卷积神经网络只保留输出的倒计时数值“6”和对应的置信度0.52(也即概率0.52)。
“1” |
“2” |
“3” |
“4” |
“5” |
“6” |
“7” |
“8” |
“9” |
“11” |
0.08 |
0.04 |
0.02 |
0.04 |
0.20 |
0.52 |
0.02 |
0.03 |
0.04 |
0.01 |
表3分类网络输出
S303、通过构建的奖励方程得到当前时刻各帧的奖励值。
如以下表3所示,该步骤构建交通信号灯状态的跃迁矩阵(其中空白处均为0)。
表3交通信号灯倒计时状态跃迁矩阵
1)构建当前时刻倒计时数值的奖励方程(也可称为跃迁方程),如公式1所示:
其中,构建award_list的列表用于保存每一帧时间戳的最高奖励值,上式中的i代表第i帧时戳。
top1、conf1分别代表分类卷积神经网络判断当前输入的交通信号灯上最有可能的第一倒计时数值和对应的可能的第一概率值;top2、conf2分别代表分类卷积神经网络判断当前输入的交通信号灯上最有可能的第二倒计时数值和可能的第二概率值。
last_digit代表前一帧倒计时数值,matrix表示表3所示的跃迁矩阵,跃迁矩阵的横轴方向代表前一帧倒计时数值,纵轴代表当前分类卷积神经网络判断出的倒计时数值。
其中奖励方程根据跃迁矩阵对应值、当前时刻可能的倒计时数值的概率值、前一帧奖励值进行设定运算。该奖励方程的本质是将分类卷积神经网络输出的最可能倒计时数值与前一帧倒计时数值建立相关性,当分类结果与前一帧的联系满足倒计时状态的变化连续性时,当前帧奖励值是跃迁矩阵对应值乘以top1或top2的概率值再加上前一帧奖励值,也即当前帧奖励值由跃迁矩阵对应值与当前时刻可能的倒计时数值的概率值进行相乘运算后再与前一帧奖励值进行相加得到。
S304、根据当前帧奖励值与前n帧奖励值的差值再除以n得到奖励比较值,根据奖励比较值与预设比较阈值的比较结果,确定当前时刻输出的倒计时数值。
在分类卷积神经网络检测准确的情况下(假设检测速度为1秒10帧),如果当前场景存在交通信号灯,列表award_list的每一帧奖励值应当是连续增加的;如果当前场景不存在交通信号灯,则award_list的趋势是一条平滑的直线。因此,可以通过如公式2所示的方式来判断分类卷积神经网络是否检测准确,当检测不准确时跳过误检信息。
公式2如下所示:
其中,award_list[i]代表当前帧奖励值,n作为超参数来得到前n帧的奖励值。其中n为大于1的自然数,通常n可以设置为3但不局限于此。在存在交通信号灯场景同时分类卷积神经网络检测准确的情况下,当前帧奖励值与前n帧奖励值的差值除以n一般是大于0.25。
由于matrix[last_digit][top1]*conf1中跃迁矩阵的值是0.5,top1的置信度(即conf1)是大于0.5,因此两者的乘积为0.25。
如公式2所示,通过构建的奖励方程得到当前时刻各帧的奖励值后,根据当前帧奖励值与前n帧奖励值的差值再除以n得到奖励比较值,根据奖励比较值与预设比较阈值的比较结果,确定当前时刻输出的倒计时数值。其中,在奖励比较值大于或等于预设比较阈值时,确定当前帧的的倒计时数值为当前时刻输出的倒计时数值;或,在奖励比较值小于预设比较阈值时,确定前一帧的的倒计时数值为当前时刻输出的倒计时数值。
也就是说,该步骤中,可以对每一帧奖励值都按照公式2进行判断,当公式2成立时,当前帧倒计时数值为分类卷积神经网络的输出top1或top2;当公式2不成立时,当前帧倒计时数值为前一帧倒计时数值,此时确定前一帧的的倒计时数值为当前时刻输出的倒计时数值。
需说明的是,在步骤S304之后,还可以包括:将当前时刻输出的倒计时数值、由卷积神经网络识别出的交通信号灯的位置信息和颜色信息,标记在输入的交通信号灯图像上并输出。
可以发现,本申请提供的技术方案,是根据构建的奖励方程确定当前时刻输出的倒计时数值,例如可以将输入的交通信号灯转换为平滑的倒计时数组来表达自动驾驶车辆在行驶过程中所检测到的交通信号灯的文本信息。由于本申请方案中进行了平滑处理,倒计时数组将不会再出现干扰运动规划的噪声,从而提高了交通信号灯的倒计时信息输出的准确性,避免自动驾驶车辆的急停和闯红灯的发生,避免车辆安全受到影响,提高自动驾驶安全性。
图4是本申请另一实施例示出的交通信号灯信息处理方法的流程示意图。
参见图4,该方法包括:
S401、由分类卷积神经网络接收输入的交通信号灯图像。
该步骤中,执行检测任务的检测卷积神经网络接收车辆的前视车载摄像头抓拍到的含有交通信号灯的原始图像,并输出表示交通信号灯位置状态的位置信息和表示颜色状态的颜色信息。进一步的,可以通过交通信号灯的位置信息,在原始的图像上截出交通信号灯图像,将该交通信号灯图像图像输入到执行分类任务的分类卷积神经网络中。
执行分类任务的分类卷积神经网络,接收检测卷积神经网络截出的交通信号灯图像图像。
S402、按预设检测频率检测交通信号灯图像不同帧的倒计时数值。
本申请方案可以按照预设检测频率进行检测,例如倒计时检测的速度为1秒10帧但不局限于此。
为了更精确输出交通信号灯的倒计时数值,在分类卷积神经网络按1秒10帧的检测速率进行检测的情况下,以10帧为单位记录经过平滑处理之后的时间数值,如表4所示。
ListNum1 |
8 |
8 |
8 |
8 |
7 |
7 |
7 |
7 |
7 |
7 |
ListNum2 |
8 |
11 |
8 |
8 |
8 |
11 |
7 |
7 |
7 |
7 |
ListNum3 |
9 |
9 |
9 |
9 |
8 |
8 |
7 |
7 |
7 |
7 |
表4 10帧内的倒计时数值信号
由于检测的速度是1秒10帧,因此在1秒内真实的倒计时数值(倒计时信号)仅变化一次。上述列举了3种情况,其中ListNum1、ListNum2为合法输出。其中ListNum2为合法输出的原因为:容许在10帧内出现11,也就是unknown,但是出现次数应小于2。为了保证输出准确的交通信号灯的倒计时数值,本申请只保留1次数值转变的时间列表,例如表4中,ListNum1只有从“8”变到“7”只变化1次,ListNum2只有从“8”变到“7”只变化1次,ListNum3从“9”变到“8”,再从“8”变到“7”是变化2次,因此保留时间列表ListNum1、ListNum2。需说明的是,其中“11”代表由于遮挡,图像不清晰导致当前帧无法判断出时间数值。
S403、根据构建的时间队列确定当前时刻输出的倒计时数值。
本申请方案,可以根据时间列表中最后一个倒计时数值出现的次数确定最后一帧的倒计时数值;根据最后一帧的倒计时数值,确定当前时刻输出的倒计时数值。
如表4所示,根据时间列表中最后一个倒计时数值的数字在时间列表中出现的次数来得到最后一帧准确的倒计时值。例如ListNum1中“7”出现了6次,因此计算过程为7-6*0.1=6.4,最终ListNum1的倒计时值为6.4。也就是说,如果将1秒的时间拆成10份,每份0.1秒,并且每个数字只会出现10次(10fps),如果7已经出现了6次,那么当前时刻为7-0.1*6=6.4秒。例如ListNum1中“7”出现了4次,因此计算过程为7-4*0.1=6.6,最终ListNum2的倒计时值为6.6。根据最终ListNum1的倒计时值为6.4和最终ListNum2的倒计时值为6.6,向上取整后输出为7s,因此可以确定当前时刻输出的倒计时数值为7。通过该变形方法,可以将倒计时的检测时间最小误差控制为0.1s。
S404、将当前时刻输出的倒计时数值减去延时公差,得到最终的当前时刻输出的倒计时数值。
进一步的,为了减少检测误差,在平滑处理过程中还可以引入延时公差的概念。由于卷积神经网络在运算和数据处理过程中都存在硬件耗时,因此从摄像头采集数据到卷积神经网络平滑处理输出倒计时数值存在一定的延时。
图5是本申请图4实施例中的倒计时数值的真实值与预测值的延时示意图。如图5所示,蓝线51代表实际场景下交通信号灯的倒计时时间轴,橙线52代表平滑处理输出预测结果的时间轴。
为了减少延时所造成的输出误差,本申请可以通过采样每一次倒计时变化的时间点来计算延时公差。如图5所示,t1表示倒计时由“8”变至“7”在真实场景和平滑处理输出之间的时间间隔,同理t2表示由“7”变至“6”的时间间隔,t3代表由“6”变至“5”的时间间隔。因此,延时公差t=max(t1,t2,t3),从t1、t2、t3中选择最大值作为延时公差。需说明的是,因为有3次倒计时变化的时间点,所以从中取最大的延时作为延时公差,如果有6次倒计时变化,则选6次中延时最大的延时作为延时公差。
最终在平滑处理后,将输出的时间数值减去延时公差可以得到更加准确的交通信号灯的倒计时数值,也即根据最后一帧的倒计时数值,确定当前时刻输出的倒计时数值之后,将当前时刻输出的倒计时数值减去延时公差,得到最终的当前时刻输出的倒计时数值。
从该示例可以看出,本申请提供的方法,基于时间队列的倒计时计算方式和延时公差进行处理,根据构建的时间队列确定当前时刻输出的倒计时数值。通过这样的处理,能够更加准确预测倒计时数值,提高交通信号灯的倒计时信息输出的准确性,避免车辆安全受到影响,提高自动驾驶安全性。
综上所描述,相关技术主要是通过增强交通信号灯检测和文本信息分类卷积神经网络的能力来提高在自动驾驶场景下交通信号灯文本信息的预测,但容易由于遮挡和天气原因等导致预测不准确。本申请方案从实际角度出发,以交通信号灯倒计时的连续变化和卷积神经网络会出现误检等方向进行思考,设计出能够更加准确预测倒计时数值的平滑处理方案。例如可以基于奖励方程和奖励函数的平滑处理算法进行处理,或者基于时间队列的倒计时计算方式和延时公差进行处理,最终输出的倒计时数值更加准确,能够提高交通信号灯的倒计时信息输出的准确性,避免车辆安全受到影响,提高自动驾驶安全性。
与前述应用功能实现方法实施例相对应,本申请还提供了一种交通信号灯信息处理装置、计算设备、芯片、板卡及相应的实施例。
图6是本申请实施例示出的交通信号灯信息处理装置的结构示意图。
参见图6,本申请实施提供一种交通信号灯信息处理装置60,应用于处理器,交通信号灯信息处理装置60包括:输入接收模块61、倒计时检测模块62、输出处理模块63。
输入接收模块61,用于由卷积神经网络接收输入的交通信号灯图像。
倒计时检测模块62,用于按预设检测频率检测交通信号灯图像不同帧的倒计时数值。
输出处理模块63,用于根据构建的奖励方程确定当前时刻输出的倒计时数值,或根据构建的时间队列确定当前时刻输出的倒计时数值,其中奖励方程根据跃迁矩阵对应值、当前时刻可能的倒计时数值的概率值、前一帧奖励值进行设定运算。
本申请提供的装置,应用于处理器,以交通信号灯倒计时的连续变化和卷积神经网络会出现误检等方向进行思考,在卷积神经网络接收输入的交通信号灯图像后,按预设检测频率检测所述交通信号灯图像不同帧的倒计时数值,然后根据构建的奖励方程确定当前时刻输出的倒计时数值,或根据构建的时间队列确定当前时刻输出的倒计时数值。通过这样的处理,能够更加准确预测倒计时数值,提高交通信号灯的倒计时信息输出的准确性,避免车辆安全受到影响,提高自动驾驶安全性。
图7是本申请另一实施例示出的交通信号灯信息处理装置结构示意图。
参见图7,本申请实施提供一种交通信号灯信息处理装置60,应用于处理器,交通信号灯信息处理装置60包括:输入接收模块61、倒计时检测模块62、输出处理模块63、标记处理模块64。
其中,输出处理模块63包括:第一输出处理模块631、第二输出处理模块632。
第一输出处理模块631,用于通过构建的奖励方程得到当前时刻各帧的奖励值;根据当前帧奖励值与前n帧奖励值的差值再除以n得到奖励比较值,其中n为大于1的自然数;根据奖励比较值与预设比较阈值的比较结果,确定当前时刻输出的倒计时数值。第一输出处理模块631可以在奖励比较值大于或等于预设比较阈值时,确定当前帧的的倒计时数值为当前时刻输出的倒计时数值;或,在奖励比较值小于预设比较阈值时,确定前一帧的的倒计时数值为当前时刻输出的倒计时数值。其中,通过构建的奖励方程得到当前时刻各帧的奖励值,包括:如果当前时刻可能的倒计时数值的概率值大于预设概率阈值时,当前帧奖励值由跃迁矩阵对应值与当前时刻可能的倒计时数值的概率值进行相乘运算后再与前一帧奖励值进行相加得到,或,如果当前时刻可能的倒计时数值的概率值小于或等于预设概率阈值时,当前帧奖励值取前一帧奖励值的数值。当前时刻可能的倒计时数值选取置信度高时所对应的倒计时数值。
第二输出处理模块632,用于在不同的时间列表中选取不同帧的倒计时数值发生1次数值变化的时间列表;根据时间列表中最后一个倒计时数值出现的次数确定最后一帧的倒计时数值;根据最后一帧的倒计时数值,确定当前时刻输出的倒计时数值。第二输出处理模块632确定当前时刻输出的倒计时数值之后,还可以包括:将当前时刻输出的倒计时数值减去延时公差,得到最终的当前时刻输出的倒计时数值。延时公差通过采样每一次倒计时数值变化的时间点计算得到。
标记处理模块64,用于将输出处理模块63当前时刻输出的倒计时数值、由卷积神经网络识别出的交通信号灯的位置信息和颜色信息,标记在输入的交通信号灯图像上并输出。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
应该理解,上述的装置实施例仅是示意性的,本申请的装置还可通过其它的方式实现。例如,上述实施例中单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本申请各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,处理器可以是任何适当的硬件处理器,比如CPU(Central Processing Unit,中央处理单元)、GPU(Graphics Processing Unit,图形处理器)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、DSP(Digital Signal Processor,数字信号处理器)和ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)等等。若无特别说明,存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive RandomAccess Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
图8是本申请实施例示出的人工智能芯片的结构框图。
参见图8,本申请还提供了一种人工智能芯片120,其包括了上述交通信号灯信息处理装置60。交通信号灯信息处理装置60的结构可以参见图6和图7中的描述。人工智能芯片120例如可以是神经网络芯片或其他芯片,神经网络芯片例如可以是卷积神经网络推理芯片、ASIC芯片等。
本申请还提供了一种板卡,其包括存储器件、接口装置和控制器件以及上述人工智能芯片;其中,人工智能芯片与存储器件、控制器件以及接口装置分别连接;存储器件,用于存储数据;接口装置,用于实现人工智能芯片与外部设备之间的数据传输;控制器件,用于对人工智能芯片的状态进行监控。
图9是本申请实施例示出的板卡的结构框图,参阅图9,上述板卡除了包括上述人工智能芯片1289以外,还可以包括其他的配套部件,该配套部件包括但不限于:存储器件1290、接口装置1291和控制器件1292;
存储器件1290与人工智能芯片1289通过总线连接,用于存储数据。存储器件1290可以包括多组存储单元1293。每一组存储单元1293与人工智能芯片1289通过总线连接。可以理解,每一组存储单元1293可以是DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器)。
DDR不需要提高时钟频率就能加倍提高SDRAM的速度。DDR允许在时钟脉冲的上升沿和下降沿读出数据。DDR的速度是标准SDRAM的两倍。在一个实施例中,存储装置可以包括4组存储单元1293。每一组存储单元1293可以包括多个DDR4颗粒(芯片)。在一个实施例中,人工智能芯片1289内部可以包括4个72位DDR4控制器,上述72位DDR4控制器中64bit用于传输数据,8bit用于ECC校验。可以理解,当每一组存储单元1293中采用DDR4-3200颗粒时,数据传输的理论带宽可达到25600MB/s。
在一个实施例中,每一组存储单元1293包括多个并联设置的双倍速率同步动态随机存储器。DDR在一个时钟周期内可以传输两次数据。在芯片中设置控制DDR的控制器,用于对每个存储单元1293的数据传输与数据存储的控制。
接口装置1291与人工智能芯片1289电连接。接口装置1291用于实现人工智能芯片1289与外部设备(例如服务器或计算机)之间的数据传输。例如在一个实施例中,接口装置1291可以为标准PCIE接口。比如,待处理的数据由服务器通过标准PCIE接口传递至芯片,实现数据转移。优选的,当采用PCIE 3.0X 16接口传输时,理论带宽可达到16000MB/s。在另一个实施例中,接口装置1291还可以是其他的接口,本申请并不限制上述其他的接口的具体表现形式,接口单元能够实现转接功能即可。另外,人工智能芯片1289的计算结果仍由接口装置传送回外部设备(例如服务器)。
控制器件1292与人工智能芯片1289电连接。控制器件1292用于对人工智能芯片1289的状态进行监控。具体的,人工智能芯片1289与控制器件1292可以通过SPI接口电连接。控制器件1292可以包括单片机(Micro Controller Unit,MCU)。人工智能芯片1289可以包括多个处理芯片、多个处理核或多个处理电路,可以带动多个负载。因此,人工智能芯片1289可以处于多负载和轻负载等不同的工作状态。通过控制器件1292可以实现对人工智能芯片中多个处理芯片、多个处理和或多个处理电路的工作状态的调控。
在一种可能的实现方式中,本申请还提供一种计算设备,其包括了上述人工智能芯片。该计算设备包括数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、服务器、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、交通工具、家用电器、和/或医疗设备。交通工具包括飞机、轮船和/或车辆;家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;医疗设备包括核磁共振仪、B超仪和/或心电图仪。
图10是本申请实施例示出的计算设备的结构示意图。
参见图10,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可执行代码,当可执行代码被处理器1020处理时,可以使处理器1020执行上文述及的方法中的部分或全部。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本申请还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机指令代码),当可执行代码(或计算机程序或计算机指令代码)被电子设备(或服务器等)的处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。