基于场景连续性来诊断感知系统
文献发布时间:2023-06-19 11:45:49
引言
本节中提供的信息旨在概括介绍本公开的背景。在本节中描述的范围内,当前署名的发明人的工作,以及在提交时可能不符合现有技术的描述方面,既不明确也不隐含地被认为是针对本公开的现有技术。
技术领域
本公开总体上涉及在自主车辆中使用的感知系统,并且更特别地,涉及用于基于场景连续性来诊断感知系统的系统和方法。
背景技术
自主车辆中使用的感知系统利用各种传感器来感测车辆的周围环境。感知系统从这些传感器接收关于车辆周围环境的数据。例如,这些传感器包括摄像机和位于车辆内和车辆外部各种位置处的其他(例如,雷达、激光雷达、声纳等)传感器,传感器向感知系统提供数据。感知系统处理从这些传感器接收的数据,并确定车辆的周围环境。例如,周围环境可包括其他车辆、行人、路标、交通标志、建筑物、地标等。自主车辆的子系统可以基于这些确定来控制车辆。这些确定也可以用于通知和警告驾驶员车辆周围的情况。
发明内容
系统包括感知模块和故障检测模块。感知模块被配置成从车辆的车载传感器接收关于车辆周围环境的一个或多个帧的数据,并基于来自所述一个或多个帧的数据识别车辆周围的对象。故障检测模块被配置成:确定与来自所述一个或多个帧的数据相关联的语义信息;基于每个所识别的对象与语义信息的相关性来为每个所识别的对象生成分数;以及基于所识别的对象的分数来为所述一个或多个帧生成分数。故障检测模块被配置成:响应于所述一个或多个帧的分数小于第一阈值,确定感知模块正在正常操作;响应于所述一个或多个帧的分数大于第二阈值,确定感知模块具有故障;以及响应于分数在第一和第二阈值之间,确定感知模块需要检查。
在其他特征中,故障检测模块被配置成基于所识别的对象的分数来确定感知模块是否误识别了对象中的一个。误识别的对象或者不存在于所述一个或多个帧中,或者被识别为与存在于所述一个或多个帧中的对象不同的对象。
在其他特征中,感知模块包括第一神经网络和第一滤波器。第一神经网络被配置成输出用于从来自所述一个或多个帧的数据中识别对象的提议。每个提议都包括对象类别、坐标和概率。第一滤波器被配置成从提议中过滤具有小于或等于第三阈值的重叠坐标和概率的提议的子集,并且在从提议中过滤提议的子集之后输出所识别的对象。
在其他特征中,故障检测模块包括第二神经网络和第二滤波器。第二神经网络被配置成接收提议,并基于每个提议与语义信息的相关性将分数分配给提议。第二滤波器被配置成从提议中过滤具有小于或等于第三阈值的重叠坐标和概率的提议的子集,并且在从提议中过滤提议的子集之后输出具有分数的所识别的对象。
在其他特征中,故障检测模块包括第一神经网络和第二神经网络。第一神经网络被配置成从来自所述一个或多个帧的数据中提取特征。这些特征表示与来自所述一个或多个帧的数据相关联的语义信息。第二神经网络被配置成接收所识别的对象和特征,并输出所识别的对象的分数。
在另一个特征中,第二神经网络被配置成一次一个地接收所识别的对象,并且一次一个地输出分数。
在另一个特征中,故障检测模块还被配置成基于所识别的对象的分数的加权平均值来确定所述一个或多个帧的分数。
在另一个特征中,该系统还包括故障缓解模块,该故障缓解模块被配置成响应于故障检测模块确定感知模块具有故障而执行缓解程序。
在另一个特征中,缓解程序包括警告车辆驾驶员和解除自动驾驶特征。
在另一个特征中,该系统还包括激活模块,该激活模块被配置成根据车辆的周围环境来激活或停用故障检测模块。
在又其他特征中,方法包括从车辆的车载传感器接收关于车辆周围环境的一个或多个帧的数据。该方法包括使用感知模块基于来自所述一个或多个帧的数据识别车辆周围的对象。该方法包括确定与来自所述一个或多个帧的数据相关联的语义信息。该方法包括基于每个识别的对象与语义信息的相关性,为每个识别的对象生成分数。该方法包括基于所识别的对象的分数为所述一个或多个帧生成分数。该方法包括:响应于所述一个或多个帧的分数小于第一阈值,确定感知模块正在正常操作;响应于所述一个或多个帧的分数大于第二阈值,确定感知模块具有故障;以及响应于分数在第一和第二阈值之间,确定感知模块需要检查。
在其他特征中,该方法还包括基于所识别的对象的分数来确定感知模块是否已误识别了对象中的一个。误识别的对象或者不存在于所述一个或多个帧中,或者被识别为与存在于所述一个或多个帧中的对象不同的对象。
在其他特征中,该方法还包括基于来自所述一个或多个帧的数据输出用于识别对象的提议。每个提议都包括对象类别、坐标和概率。该方法还包括从提议中过滤具有小于或等于第三阈值的重叠坐标和概率的提议的子集。该方法还包括在从提议中过滤提议的子集之后输出所识别的对象。
在其他特征中,该方法还包括基于每个提议与语义信息的相关性将分数分配给提议。该方法还包括从提议中过滤具有小于或等于第三阈值的重叠坐标和概率的提议的子集。该方法还包括在从提议中过滤提议的子集之后,输出具有分数的所识别的对象。
在其他特征中,该方法还包括从来自所述一个或多个帧的数据中提取特征。这些特征表示与来自所述一个或多个帧的数据相关联的语义信息。该方法还包括基于特征和所识别的对象输出所识别的对象的分数。
在另一个特征中,该方法还包括一次一个地接收所识别的对象,并且一次一个地输出分数。
在另一个特征中,该方法还包括基于所识别的对象的分数的加权平均值来确定所述一个或多个帧的分数。
在另一个特征中,该方法还包括响应于确定感知模块具有故障而执行缓解程序。
在另一个特征中,缓解程序包括警告车辆驾驶员和解除自动驾驶特征。
在另一个特征中,该方法还包括根据车辆的周围环境来激活或停用故障检测模块。
本发明提供了以下技术方案:
1. 一种系统,包括:
感知模块,其被配置成从车辆的车载传感器接收关于所述车辆的周围环境的一个或多个帧的数据,并基于来自所述一个或多个帧的数据识别所述车辆周围的对象;和
故障检测模块,其被配置成:
确定与来自所述一个或多个帧的数据相关联的语义信息;
基于每个所识别的对象与所述语义信息的相关性,为每个所识别的对象生成分数;
基于所识别的对象的分数为所述一个或多个帧生成分数;和
确定:
响应于所述一个或多个帧的分数小于第一阈值,所述感知模块正在正常操作;
响应于所述一个或多个帧的分数大于第二阈值,所述感知模块具有故障;以及
响应于所述分数在所述第一阈值和所述第二阈值之间,所述感知模块需要检查。
2. 根据技术方案1所述的系统,其中,所述故障检测模块被配置成基于所识别的对象的分数来确定所述感知模块是否已经误识别了所述对象中的一个,其中,误识别的对象或者不存在于所述一个或多个帧中,或者被识别为与存在于所述一个或多个帧中的对象不同的对象。
3. 根据技术方案1所述的系统,其中,所述感知模块包括:
第一神经网络,其被配置成输出用于从来自所述一个或多个帧的数据识别对象的提议,其中,每个所述提议包括对象类别、坐标和概率;和
第一滤波器,其被配置成从提议中过滤具有小于或等于第三阈值的重叠坐标和概率的提议的子集,并且在从所述提议中过滤所述提议的子集之后输出所识别的对象。
4. 根据技术方案3所述的系统,其中,所述故障检测模块包括:
第二神经网络,其被配置成接收提议,并基于每个所述提议与所述语义信息的相关性将分数分配给所述提议;和
第二滤波器,其被配置成从提议中过滤具有小于或等于第三阈值的重叠坐标和概率的提议的子集,并且在从提议中过滤所述提议的子集之后输出具有分数的所识别的对象。
5. 根据技术方案1所述的系统,其中,所述故障检测模块包括:
第一神经网络,其被配置成从来自所述一个或多个帧的数据中提取特征,其中,所述特征表示与来自所述一个或多个帧的数据相关联的语义信息;和
第二神经网络,其被配置成接收所识别的对象和特征,并输出所述所识别的对象的分数。
6. 根据技术方案5所述的系统,其中,所述第二神经网络被配置成一次一个地接收所识别的对象,并且一次一个地输出分数。
7. 根据技术方案1所述的系统,其中,所述故障检测模块还被配置成基于所识别的对象的分数的加权平均值来确定所述一个或多个帧的分数。
8. 根据技术方案1所述的系统,还包括故障缓解模块,所述故障缓解模块被配置成响应于所述故障检测模块确定所述感知模块具有故障而执行缓解程序。
9. 根据技术方案8所述的系统,其中,所述缓解程序包括警告所述车辆的驾驶员并解除自动驾驶特征。
10. 根据技术方案1所述的系统,还包括激活模块,所述激活模块被配置成根据车辆的周围环境来激活或停用所述故障检测模块。
11. 一种方法,包括:
从车辆的车载传感器接收关于车辆周围环境的一个或多个帧的数据;
基于来自所述一个或多个帧的数据,使用感知模块来识别车辆周围的对象;
确定与来自所述一个或多个帧的数据相关联的语义信息;
基于每个识别的对象与所述语义信息的相关性,为每个识别的对象生成分数;
基于所识别的对象的分数为所述一个或多个帧生成分数;和
确定:
响应于所述一个或多个帧的分数小于第一阈值,所述感知模块正在正常操作;
响应于所述一个或多个帧的分数大于第二阈值,所述感知模块具有故障;以及
响应于所述分数在所述第一阈值和所述第二阈值之间,所述感知模块需要检查。
12. 根据技术方案11所述的方法,还包括基于所识别的对象的分数来确定所述感知模块是否误识别了所述对象中的一个,其中,所述误识别的对象或者不存在于所述一个或多个帧中,或者被识别为与存在于所述一个或多个帧中的对象不同的对象。
13. 根据技术方案11所述的方法,进一步包括:
基于来自一个或多个帧的数据输出用于识别对象的提议,其中,每个提议包括对象类别、坐标和概率;
从提议中过滤具有小于或等于第三阈值的重叠坐标和概率的提议的子集;以及
在从所述提议中过滤所述提议的子集之后,输出所识别的对象。
14. 根据技术方案13所述的方法,进一步包括:
基于每个所述提议与所述语义信息的相关性,将分数分配给所述提议;
从所述提议中过滤具有小于或等于所述第三阈值的重叠坐标和概率的提议的子集;以及
在从所述提议中过滤所述提议的子集之后,输出具有分数的所识别的对象。
15. 根据技术方案11所述的方法,进一步包括:
从来自所述一个或多个帧的数据中提取特征,其中,所述特征表示与来自所述一个或多个帧的数据相关联的语义信息;和
基于所述特征和所识别的对象输出所识别的对象的分数。
16. 根据技术方案15所述的方法,还包括一次一个地接收所识别的对象,并且一次一个地输出分数。
17. 根据技术方案11所述的方法,还包括基于所识别的对象的分数的加权平均值来确定所述一个或多个帧的分数。
18. 根据技术方案11所述的方法,还包括响应于确定所述感知模块具有故障而执行缓解程序。
19. 根据技术方案18所述的方法,其中,所述缓解程序包括警告所述车辆的驾驶员并解除自动驾驶特征。
20. 根据技术方案11所述的方法,还包括根据车辆的周围环境来激活或停用所述故障检测模块。
从详细描述、权利要求和附图中,本公开的其他应用领域将变得显而易见。详细描述和具体示例仅旨在说明的目的,并且不旨在限制本公开的范围。
附图说明
从详细描述和随附附图将会更全面地理解本公开,其中:
图1示出了检测结果、地面实况结果、边界框和表格,该表格示出了由车辆周围的感知系统检测到的对象的多个检测结果及其类别、边界框坐标和概率;
图2示出了用于检测感知系统中的故障的第一系统;
图3示出了用于检测感知系统中的故障的第二系统;
图4示出了用以缓解由第一或第二系统检测到的故障的故障缓解系统的示例;
图5示出了用于检测感知系统中的故障的第一方法;
图6示出了用于检测感知系统中的故障的第二方法;
图7A示出了可以实施图1-6所示的系统和方法的分布式计算系统的简化示例;和
图7B示出了图7A的分布式计算系统的服务器的简化示例。
在附图中,附图标记可以重复使用来标识相似和/或相同的元件。
具体实施方式
用于确定车辆周围环境的感知系统会经受故障,这些故障需要被检测到。感知系统的在线诊断会是有挑战性的,因为当车辆在道路上行驶时,难以实时确定地面实况,其中地面实况是由直接观察提供的参考信息(即实证证据),而不是由推断提供的信息。本公开提供了在没有地面实况的情况下诊断感知系统的系统和方法。该系统和方法通过计算感知结果的场景连续性来诊断感知系统,并基于不连续性来确定故障。该系统和方法可以在运行时间期间在运行中动态地检测、识别和缓解感知系统中的故障。
场景连续性表示感知结果在多大程度上适合(即,与在其中检测到的其他对象一致)基于由各种传感器捕获的关于车辆周围环境的数据生成的当前场景或图像。如下文详细解释的,使用诸如深度神经网络(仅在整个公开中使用)的特定模型来计算场景连续性。将计算的场景连续性与阈值进行比较,以检测错误。可以基于检测到的错误来执行故障缓解。例如,该系统和方法可以解除自动驾驶特征,向驾驶员发送警报,平稳地靠边停车,和/或忽略融合中的故障感知通道(即,当通道冗余可用时,隔离并忽略故障通道)。该系统和方法通过提供故障警报和优化车队管理来改善用户体验。该系统和方法提高了感知系统的可靠性,并增强了车辆的感知质量,而无需额外的硬件。
更具体地,场景连续性是基于图像的语义信息或由车辆的车载传感器捕获的原始数据来确定的。基于原始数据生成的感知结果提供关于在帧或图像中检测到的对象的信息。场景连续性表示在一帧或一小批帧中识别的对象之间的相关性。注意,相关性不在时间序列中的帧之间,并且因此连续性不是时间连续性。相反,相关性是一个对象与一个或多个帧中的其他对象的相关性。因此,场景连续性表示一个或多个帧中不同对象之间的相关性。如下所述,一个或多个帧中的对象相关性或场景连续性可以用于隔离感知系统中的故障。
例如,当车辆在道路上行驶时,感知系统可识别帧或图像中的N个对象,其中N是大于1的整数。感知系统可能错误地识别这N个对象中的一个。例如,错误识别的对象实际上可能不存在(例如,高速公路车道上的行人或自行车)。作为另一个示例,实际存在的对象可能被误识别为另一个对象(例如,摩托车可能被识别为汽车)。本公开的故障检测系统的目标是通过感知系统来识别这种故障或异常对象检测。
对于由感知系统在帧中检测到的每个对象,故障检测系统从感知系统接收对象信息,诸如对象ID(例如,分配给帧中的对象的编号)、对象类别(例如,汽车、卡车、船等)、边界框数据(解释如下)和概率分数(也解释如下)。故障检测系统基于帧中对象的语义信息来计算每个对象的连续性分数。
例如,在特定的帧中,当车辆在城市街道上行驶时,故障检测系统可以将场景连续性分数1分配给帧中识别的大多数汽车,因为汽车基于帧中检测到的对象的语义信息“适合”帧中的场景,其中大多数可能是汽车。然而,感知系统还可识别帧中的船,其在帧中的城市街道上被意外地检测到,并且也被感知模块分配了高概率分数。故障检测系统可以将场景连续性分数0分配给船,因为船不“适合”帧中基于帧中检测到的对象的语义信息的场景,大多数帧中检测到的对象是汽车。因此,故障检测系统可以识别感知系统的故障,在该示例中,该故障是当实际上船不存在时对帧中的船的错误识别。类似的方法可以用于检测感知系统错误地识别实际存在于帧中的对象的故障(例如,当感知系统将自行车误识别为摩托车时,等等)。
在感知系统中,当车辆的车载传感器捕获来自车辆周围的对象的数据时,来自传感器的原始数据被发送到感知系统以进行处理。例如,感知系统可使用深度神经网络(DNN)来实施。对于从原始数据生成的给定图像,神经网络输出针对图像中检测到的每个对象的信息,包括类别、边界框和概率。感知系统在有界框中提供对象的表示,其中,对象的位置坐标指示在感测对象时对象的位置。感知系统进一步对对象进行分类(例如,提供关于对象的类型或类别的指示,对象是否是车辆、交通标志、地标、行人等等)。感知系统然后给检测到的对象分配概率。该概率指示感知系统(例如,DNN)检测对象的置信度水平。例如,如果一辆汽车在图像中有点模糊,但仍然被神经网络捕获,那么它可具有低概率。反过来说,如果一辆汽车在图像中是清晰的,那么它可具有高概率。
图1示出了当检测到的对象是汽车时的检测结果或感知结果的示例。图1还示出了针对被检测对象(该示例中为汽车)的地面实况。图1进一步示出了针对被检测对象的边界框的示例。因此,感知系统可以输出如图1中的表格所示的多个检测结果,其中该表格包括每个识别的对象、ID、类别、边界框坐标和概率分数。本公开添加了场景连续性分数,该分数如下文详细描述的那样生成。
本公开提供了用于检测车辆感知系统中的故障的故障检测系统的两种实施方式。在第一实施方式中,故障检测系统确定白盒感知模块的场景连续性;也就是说,当感知系统及其操作已知或可知且故障检测系统因此可以访问感知系统的元件或部件时。在第二实施方式中,故障检测系统确定黑盒感知系统的场景连续性;也就是说,当感知系统及其操作未知或不可知且故障检测系统因此不能访问感知系统的元件或部件时。
图2示出了第一实施方式,其中,感知系统100是白盒。感知系统100包括感知模块102,其从车辆的车载传感器104接收一帧或一批帧的数据D
根据感知模块102使用的模型,提议可以呈固定大小(诸如N×6)的矩阵形式,其中N表示构成矩阵行的提议或候选的数量;并且作为示例,数字6表示每个候选的信息类型(例如,类别(1列)、边界框坐标(4列)和概率分数(1列))。数字N可以相对地高(例如,数百)。例如,参见图1所示的表格。给定感知模块的提议数量可以是固定的,而不管是单个帧还是一批帧被输入到感知模块。这个示例中的场景是N个提议的集合。
感知模块102为每个候选分配概率分数,概率分数指示在接收到的帧中被正确检测为对象的可能性。然而,这些N个候选中的许多可能具有相对低的概率分数,并且可能需要被过滤掉。例如,这些N个候选对象中的许多可能具有相对低的概率分数,因为这些候选可包括诸如交通标志、树之类的对象,以及小的、远的、模糊的和/或具有重叠边界框且因此不可识别或无效的候选。
滤波器106过滤提议,以去除这些具有相对低概率分数的候选,并生成检测结果R
故障检测系统110,也称为故障检测模块110,包括连续性确定模块112,其包括第二DNN,该第二DNN被训练为生成由感知模块102生成的提议P
故障检测模块110包括类似于感知系统100的滤波器106的滤波器114,其使用与由感知系统100使用的滤波器相同的滤波器来过滤第二DNN(即,连续性确定模块112)的输出。再次,可以使用相同的滤波器,因为感知模块102是白盒,并且因此滤波器106是已知的或可知的。滤波器114的输出呈大小为M×1的矩阵S
如果M个对象中的一个具有相对低的场景连续性分数,则故障检测模块110可以确定感知模块102在检测结果R
训练模块120用于在将故障检测模块110部署在车辆中以检测运行时间期间感知模块102中的错误(即,当具有感知模块102的车辆正在道路上行驶时,在运行中)之前,在工厂处对第二DNN如下进行训练。运行时间期间不使用训练模块120。训练模块120包括相关模块122,相关模块122接收由感知模块102的DNN为一批帧生成的N个提议P
在训练期间,输入到相关模块122的相同提议也被输入到故障检测模块110的第二DNN(即,连续性确定模块112)。第二DNN(即,连续性确定模块112)也如上所述生成大小为N×1的连续性分数矩阵S
在上面的等式中,下标2表示L2范数,并且上标2指示使用L2范数获得的逐元素(element-wise)的平方错误。如果两个矩阵相同,则损失函数为零。如果损失函数非零,则递归训练第二DNN,直到损失函数最小化。
图3示出了第二实施方式,其中感知模块200是黑盒。因此,只有由感知模块200生成的最终检测结果R
在第二实施方式中,在任何给定时间处,感知模块200输出M个检测结果,M是任何非负整数。如果M等于零,则可跳过故障检测过程,因为没有要诊断的检测结果。故障检测系统202,也称为故障检测模块202,包括选择模块204,其一次选择M个检测结果,并且故障检测模块202的剩余部分通过依次选择M个检测结果中的每一个来迭代地执行下面描述的处理。因此,选择模块204的输出r
故障检测模块202还包括特征提取模块208,其包括从接收到的帧的原始数据D
为下一个对象r
在将故障检测模块202部署在车辆中以检测运行时间期间感知模块200中的错误之前(即,当具有感知模块200的车辆正在道路上行驶时,在运行中),训练模块220用于在工厂处对第一DNN如下进行训练。运行时间期间不使用训练模块220。训练模块220包括相关模块222,其接收一批帧的所选对象或检测结果r
在训练期间,输入到相关模块222的相同的所选对象r
同样,在上面的等式中,下标2表示L2范数,并且上标2指示使用L2范数获得的逐元素的平方错误。如果两个矩阵相同,则损失函数为零。如果损失函数非零,则递归训练第一DNN,直到损失函数最小化。对每个所选对象r
注意,在任一实施方式中,场景连续性分数不是二进制值0或1。相反,场景连续性分数是0到1之间的任何值;即大于或等于0且小于或等于1。虽然该信息在感知系统是否已经识别出不存在的对象或者已经错误地识别出存在的对象之间进行区分时可能是有用的,但是故障检测系统检测场景连续性分数是更接近0还是更接近1,基于此,故障检测系统检测感知系统中的故障。
还要注意,在第一实施方式中,已知的感知模块也可以被认为(即,被处理)为黑盒,如在第二实施方式中所解释的。因此,第二实施方式也可以与已知的感知模块一起使用。
图4示出了诊断模块250和缓解模块252,它们可以与任一实施方式的故障检测模块110或202结合使用或集成。也就是说,这些模块是图2和3所示的故障检测系统的一部分。一旦故障检测模块110、202基于场景连续性分数检测到感知系统100或200检测到故障条件或异常对象的可能性,诊断模块250如下对检测到的对象的场景连续性分数进行分析。基于这些分析,诊断模块250诊断感知系统100或200是否有故障、感知系统100或200是否正在正常操作(即没有故障),或者感知系统100或200是否需要检查。
诊断模块250将一组场景连续性分数S
然后,诊断模块250使用以下等式使用权重来计算整个帧或整批帧的场景不连续性分数。以下等式中的权重可以是1或者可以被调整(例如,校准)以强调一个或多个组来改善故障识别。
如果场景不连续性分数大于第三阈值θ
当故障检测系统(例如,诊断模块250)检测到感知系统中的故障时,缓解模块252缓解故障。由缓解模块252执行的缓解程序的非限制性示例包括以下内容。例如,如果故障检测系统指示传感器故障(例如,其中一个摄像机正在不正常地工作),则缓解程序可以包括忽略该传感器并使用另一个传感器(例如,另一个摄像机)来代替。例如,如果故障检测系统指示感知系统中的故障(即,如果感知系统结果不正确),则缓解程序可以包括警告乘客立即控制车辆并解除自动驾驶特征。例如,这样的警告消息可以经由车辆的信息娱乐子系统视听输出。根据故障的严重程度,缓解程序还可以包括将车辆停在路边(例如,使用车辆的自主子系统)。还考虑了缓解程序的附加示例。
故障检测系统(例如,缓解模块252)可与车辆的各种子系统260通信。例如,子系统260可以包括但不限于信息娱乐子系统(例如,提供警报)、自主或自动驾驶子系统(例如,控制车辆、缓解故障等)、制动子系统、速度控制子系统、导航子系统、通信子系统(例如,与图7A和7B所示的基于云的后端系统通信)等。
故障检测系统可以基于许多不同的条件被触发。这种条件的非限制性示例包括如下内容。例如,可以周期性地执行故障检测(例如,每隔N分钟、在每次点火之后、在每次点火之后的X分钟之后、在车辆在停止之后开始移动之后的Y分钟之后(诸如在交通灯或标志处),等等)。例如,故障检测可以在车辆每次接近或经过可能存在感知错误的特定十字路口或位置(例如,在市区)时触发。例如,故障检测可以在高速公路上比在城市中更不频繁地被触发。
用户可以基于自己的喜好触发(即开启)故障检测。车队经理可根据车队中车辆正在行驶的情况来触发故障检测。例如,与当出租车正从机场驶往城市时相比,当出租车正从机场驶往高速公路旁的停车场和乘车场时,出租车中的故障检测系统可能更少地被触发。替代的,故障检测可以连续执行,而不考虑任何触发条件。可以考虑可以触发故障检测的附加因素或考虑(基础)的其他示例。
图5示出了根据本公开的用于故障检测的第一方法300。例如,图2和4中所示的一个或多个元件可以实施第一方法300的一个或多个步骤。在302处,控制从她车辆的车载传感器接收一个或多个帧的数据。在304处,控制使用诸如深度神经网络的模型基于数据来生成用于检测对象的提议。在306处,控制基于数据过滤提议,以为检测到的对象生成检测结果。
在308处,控制为提议分配场景连续性分数。在310处,如上面参考图2所述,控制用场景连续性分数过滤提议。在312处,控制使用分组、加权和阈值,基于具有场景连续性分数的过滤提议,确定检测结果中的一个是否有故障,如上面参考图4所述。
在314处,基于在312处执行的分析,控制确定感知系统是否正在正常操作(即,没有任何故障)。如果感知系统正在正常操作,则该方法结束。然而,如果感知系统没有正常操作,则在316处,控制基于在312处执行的分析来确定在感知系统中是否检测到故障。在318处,如果在感知系统中检测到故障,则控制如上所述缓解故障。然而,如果没有检测到故障,但是感知系统也没有正常操作(如通过在上述分析期间与各种阈值的比较所指示的),则在320处控制建议对感知系统进行检查。
图6示出了根据本公开的用于故障检测的第二方法350。例如,图3和4中所示的一个或多个元件可以实施第一方法350的一个或多个步骤。在352处,控制从她车辆的车载传感器接收一个或多个帧的数据。在354处,控制基于数据为检测到的对象生成检测结果。在356处,控制使用诸如深度神经网络的模型基于数据生成特征。
在358处,控制选择第一检测结果。在360处,控制将特征和所选的检测结果输入到第二深度神经网络。在362处,控制使用第二深度神经网络基于特征将场景连续性分数分配给所选的检测结果。在364处,控制确定是否处理了所有检测结果。如果没有处理所有的检测结果,则在366处,控制选择下一个检测结果并进行到360。在368处,在处理完所有检测结果之后,控制将检测结果与它们相应的场景连续性分数相结合,如上面参考图3所述。
在370处,控制基于使用分组、加权和阈值的场景连续性分数的检测结果来确定检测结果中的一个是否有故障,如上文参考图4所述。在372处,基于在370处执行的分析,控制确定感知系统是否正在正常操作(即,没有任何故障)。如果感知系统正在正常操作,则该方法结束。然而,如果感知系统没有正常操作,则在374处,控制基于在370处执行的分析来确定在感知系统中是否检测到故障。在376处,如果在感知系统中检测到故障,则控制如上所述缓解故障。然而,如果没有检测到故障但是感知系统也没有正常操作(如通过在上述分析期间与各种阈值的比较所指示的),则在378处控制建议对感知系统进行检查。
下面是分布式计算环境的简单示例,在分布式计算环境中可以实施本公开的系统和方法。在整个描述中,对诸如服务器、客户端装置、应用等术语的引用仅仅是为了说明的目的。术语服务器和客户端装置应被广义地理解为表示具有一个或多个处理器和被配置成执行机器可读指令的存储器的计算装置。术语应用和计算机程序应被广义地理解为表示可由计算装置执行的机器可读指令。
图7A示出了分布式计算系统400的简化示例。分布式计算系统400包括分布式通信系统410、一个或多个车辆420-1、420-2、…、和420-M(统称为车辆420)、以及一个或多个服务器430-1、430-2、…、和430-N(统称为服务器430)。M和N是大于或等于1的整数。
分布式通信系统410可包括局域网(LAN)、诸如因特网的广域网(WAN)或其他类型的网络。车辆420和服务器430可位于不同的地理位置处,并且可经由分布式通信系统410彼此通信。例如,服务器430可位于云中的数据中心中。车辆420和服务器430可使用无线和/或有线连接来连接到分布式通信系统410。
车辆420可包括上文参照图1-6所示和所述的系统,其可执行软件应用,诸如上文参照图1-6所述的各种方法。服务器430可向客户端装置420提供多种服务。例如,服务器430可执行由一个或多个供应商开发的软件应用(例如,用于检测和缓解故障的后端系统)。服务器430可托管软件应用在向车辆420的用户提供服务时所依赖的多个数据库。
图7B示出了服务器430-1的简化示例。服务器430-1通常包括一个或多个CPU或处理器470、网络接口478、存储器480和大容量存储器482。在一些实施方式中,服务器430-1可以是通用服务器,并且包括一个或多个输入装置472(例如,键盘、触摸板、鼠标等)和包括显示器476的显示子系统474。
网络接口478将服务器430-1连接到分布式通信系统410。例如,网络接口478可包括有线接口(例如,以太网接口)和/或无线接口(例如,Wi-Fi、蓝牙、近场通信(NFC)或其他无线接口)。存储器480可包括易失性或非易失性存储器、高速缓存或其他类型的存储器。大容量存储器482可包括闪存、一个或多个磁性硬盘驱动器(HDD)或其他大容量存储装置。
服务器430-1的处理器470执行操作系统(OS)484和一个或多个服务器应用程序486(例如,用于检测和缓解故障和/或用于进一步分析次要或非关键故障的后端系统),其可被容纳在虚拟机管理程序或容器化架构中。大容量存储器482可存储一个或多个数据库488,数据库488存储由服务器应用程序486用来执行相应功能的数据结构。
以上描述本质上仅是说明性的并且决不旨在限制本公开、其应用或用途。本公开的广泛教导可以多种形式实施。因此,虽然本公开包括特定示例,但是本公开的真正范围不应该限制于此,因为当研究附图、说明书、和以下权利要求书之后其它修改将变得显而易见。应当理解的是,在方法内的一个或多个步骤可以不同次序(或同时)执行而不改变本公开的原理。另外,虽然以上将实施例中的每一者描述为具有某些特征,但是关于本公开的任何实施例描述的那些特征中的任何一个或多个均可在任何其它实施例的特征中实施和/或结合任何其它实施例的特征实施,即使该接合没有明确描述。换句话来说,所描述实施例不是相互排斥的,并且一个或多个实施例彼此的置换仍保留在本公开的范围内。
使用各种术语描述了在元件之间(例如,在模块、电路元件、半导体层等之间)的空间和功能关系,这些术语包括“连接”、“接合”、“联接”、“相邻”、“紧靠”、“在……顶上”、“在……上方”、“在……下方”和“设置”。除非明确描述为“直接”,否则当在以上公开中描述在第一元件与第二元件之间的关系时,该关系可为其中在第一元件与第二元件之间不存在其它介入元件的直接关系,但是也可为其中在第一元件与第二元件之间(不论空间上或功能上)存在一个或多个介入元件的间接关系。如在本文中使用的,短语A、B、和C中的至少一个应被解释为意味着使用非排它性逻辑“或”的逻辑(A或B或C),且不应被解释为“A中的至少一个、B中的至少一个、和C中的至少一个”。
在视图中,由箭头指示的箭头方向大体表示说明所关注的信息(诸如数据或指令)的流。例如,当元件A和元件B交换多种信息,但从元件A传输到元件B的信息与图示相关时,则箭头可从元件A指向元件B。该单向箭头并不暗示不存在从元件B传输到元件A的其它信息。此外,对于从元件A发送到元件B的信息,元件B可向元件A发送该信息的请求或者该信息的接收确认。
在包括以下定义的本申请中,术语“模块”或术语“控制器”可以用术语“电路”代替。术语“模块”可指代以下项、是以下项的一部分、或包括以下项:专用集成电路(ASIC);数字、模拟、或混合式模拟/数字离散电路;数字、模拟、或混合式模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器电路(共享、专用或成组);存储由处理器电路执行的代码的存储器电路(共享、专用或成组);提供所描述功能的其它合适的硬件部件;或上述中的一些或所有的组合,诸如在系统芯片中。
模块可包括一个或多个接口电路。在一些示例中,接口电路可包括连接到局域网(LAN)、因特网、广域网(WAN)、或其组合的有线或无线接口。本公开的任何给定模块的功能都可在经由接口电路连接的多个模块中分布。例如,多个模块可允许负载平衡。在进一步的示例中,服务器(又称为远程服务器、或云服务器)模块可代表客户端模块完成某些功能。
如上文使用的,术语代码可包括软件、固件、和/或微代码,并且可指代程序、例程、功能、类别、数据结构、和/或对象。术语共享处理器电路涵盖执行来自多个模块的一些或所有代码的单个处理器电路。术语成组处理器电路涵盖结合另外的处理器电路来执行来自一个或多个模块的一些或所有代码的处理器电路。对多个处理器电路的指代涵盖离散裸片上的多个处理器电路、单个裸片上的多个处理器电路、单个处理器电路的多个核、单个处理器电路的多个线程、或上述的组合。术语共享存储器电路涵盖存储来自多个模块的一些或所有代码的单个存储器电路。术语成组存储器电路涵盖结合另外的存储器来存储来自一个或多个模块的一些或所有代码的存储器电路。
术语存储器电路是术语计算机可读介质的子集。如在本文中使用的,术语计算机可读介质并不涵盖(诸如在载波上)通过介质传播的暂时性电或电磁信号;术语计算机可读介质可因此视为是有形且非暂时性的。非暂时性的有形计算机可读介质的非限制示例为:非易失性存储器电路(诸如快闪存储器电路、可擦除可编程只读存储器电路、或掩码只读存储器电路)、易失性存储器电路(诸如静态随机存取存储器电路或动态随机存取存储器电路)、磁性存储介质(诸如模拟或数字磁带或硬盘驱动)、以及光学存储介质(诸如CD、DVD、或蓝光光盘)。
在本申请中描述的设备和方法可部分地或完全地由专用计算机实施,该计算机是通过配置通用计算机以执行在计算机程序中体现的一个或多个特定功能而创建的。上文描述的功能块、流程图部件、和其它元件用作为软件规范,其可以通过本领域技术人员或程序员的常规作业而转译为计算机程序。
计算机程序包括存储在至少一个非暂时性、有形计算机可读介质上的处理器可执行指令。计算机程序还可包括或依赖于所存储的数据。计算机程序可涵盖与专用计算机的硬件交互的基本输入/输出系统(BIOS)、与专用计算机的特定装置交互的装置驱动器、一个或多个操作系统、用户应用程序、背景服务、背景应用程序等。
计算机程序可包括:(i)待解析的描述性文本,诸如HTML(超文本标记语言)、XML(可扩展标记语言)、或JSON(JavaScript对象表示法),(ii)汇编代码,(iii)由编译器从源代码生成的目标代码,(iv)用于由解释器执行的源代码,(v)用于由即时编译器编译和执行的源代码等。仅作为示例,源代码可使用来自以下语言的语法编写,所述语言包括:C、C++、C#、Objective-C、Swift、Haskell、Go、SQL、R、Lisp、Java
- 基于场景连续性来诊断感知系统
- 用于基于传感器数据的时间连续性来诊断车辆的感知系统的系统和方法