一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于图像误分类的安全监测器的制作方法

2022-02-22 09:58:05 来源:中国专利 TAG:

用于图像误分类的安全监测器


背景技术:

1.相关技术描述
2.一种新兴技术领域是机器学习,其中神经网络是一种类型的机器学习模型。神经网络在诸如手写数字分类和面部检测的任务方面表现出优异的性能。另外,神经网络还显示出在其他的更具挑战性的视觉分类任务中表现良好的潜力。神经网络的其他应用包括语音辨识、语言建模、情感分析、文本预测及其他。
3.在机器学习算法的典型部署中,软件应用程序向推理加速器硬件引擎供应神经网络。当推理加速器在安全关键环境下操作时,需要对推理加速器进行监测,以检查异常行为。用于监测推理加速器的典型实现方式是将监测逻辑插入到推理加速器处理硬件子框中。例如,机器检查架构是一种机制,在这种机制中,处理硬件中的监测逻辑检查异常行为。然而,这些检查虽然在较低的硬件级别上提供了监测,但可能会忽略只有在推理加速器输出时才能观察到的故障。这种方法也不会在神经网络级别上检测到随机的间歇性故障。例如,推理加速器可能具有误分类错误,诸如未能检测到感兴趣的对象。
附图说明
4.通过结合附图参考以下描述可以更好地理解本文所描述的方法和机制的优点,在附图中:
5.图1是计算系统的一个实现方式的框图。
6.图2是在安全关键系统中执行的安全关键推理应用程序的一个实现方式的框图。
7.图3是推理故障检测框架的一个实现方式的框图。
8.图4是根据一个实现方式的从安全关键应用程序发送到安全监测框架的图像的实例。
9.图5是根据一个实现方式的已由安全监测框架从原始图像生成的所修改图像。
10.图6是示出用于操作推理加速器的安全监测框架的方法的一个实现方式的一般化流程图。
11.图7是示出用于实现安全监测框架的方法的一个实现方式的一般化流程图。
12.图8是示出用于生成由安全关键应用程序使用的置信指示符的方法的一个实现方式的一般化流程图。
13.图9是示出用于确定哪个对象用于修改图像的方法的一个实现方式的一般化流程图。
14.图10是示出用于安全监测框架改变操作模式的方法的一个实现方式的一般化流程图。
具体实施方式
15.在以下描述中,阐述了许多特定细节以提供对本文呈现的方法和机制的透彻理解。然而,本领域普通技术人员应认识到,可以在没有这些具体细节的情况下实践各种实现
方式。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免混淆本文所述的方法。应了解,出于说明简明和清楚起见,在图中示出的元件不一定按比例绘制。例如,一些元件的尺寸可以相对于其他元件被放大。
16.本文公开了用于实现安全关键神经网络应用程序的安全监测框架的系统、装置和方法。在一个实现方式中,系统包括安全关键神经网络应用程序、安全监测器和推理加速器引擎。安全监测器从安全关键神经网络应用程序接收输入图像、测试数据(例如,测试向量)和神经网络规范(例如,层和权重)。在一个实现方式中,测试数据包括具有已知良好对象/图像的图像列表和这些对象/图像的对应分类。在一个实现方式中,安全监测器修改输入图像以在输入图像的边界之外添加附加对象。在这种实施方案中,所修改图像比输入图像更大,以容纳原始图像的边界之外的附加对象。在一个实现方式中,所修改图像的配置(即,插入额外空间和附加对象的位置)存储在数据结构(即,元数据)中,所述数据结构通过系统流与所修改图像一起传递。
17.在一个实现方式中,附加对象包括一个或多个冗余对象,所述一个或多个冗余对象与前一个输入图像中发现的对象相同。在另一个实现方式中,附加对象包括在测试向量中提供的一个或多个对象。安全监测器将所修改图像提供给推理加速器。推理加速器处理所修改图像,并将输出提供回到安全监测器。安全监测器基于由推理加速器生成的输出确定对原始输入图像进行误分类的概率。在一个实现方式中,安全监测器将已知良好结果和与修改相关联的输出进行比较,以确定对原始输入图像进行误分类的概率。安全监测器将误分类概率的指示符提供给安全关键应用程序。通过这种方法,安全监测器补充了总体故障覆盖范围,并防止了仅可在神经网络的输出处观察到的故障。
18.现在参考图1,示出计算系统100的一个实现方式的框图。在一个实现方式中,计算系统100包括至少推理加速器引擎105、一个或多个处理器110a-b、输入/输出(i/o)接口120、总线125以及一个或多个存储器子系统130。在其他实现方式中,计算系统100可以包括其他部件和/或计算系统100可以不同地布置。在一个实现方式中,推理加速器引擎105在一个或多个处理器110b上实现。推理加速器引擎105表示软件、固件和/或硬件的任何组合,以用于在一个或多个处理器110b上实现各种机器学习算法或机器学习模型。
19.在一个实现方式中,推理加速器引擎105实现卷积神经网络的一个或多个层。例如,在这种实现方式中,推理加速器引擎105实现一个或多个卷积层和/或一个或多个完全连接层。在另一个实现方式中,推理加速器引擎105实现循环神经网络的一个或多个层。一般来讲,“推理引擎”或“推理加速器引擎”被定义为接收图像数据并生成图像数据的一个或多个标签概率的硬件和/或软件。在一些情况下,“推理引擎”或“推理加速器引擎”称为“分类引擎”或“分类器”。
20.推理加速器引擎105在可以在根据实现方式变化的多种不同应用程序中的任一种中利用。例如,在一个实现方式中,推理加速器引擎105分析图像或视频帧以生成帧的一个或多个标签概率。例如,可能的使用案例包括至少眼睛跟踪、对象辨识、点云估计、射线追迹、光场建模、深度跟踪等。对于眼睛跟踪使用案例,由推理加速器引擎105生成的概率是基于学习模式、停留、转变角度、眨眼等。在其他实现方式中,推理加速器引擎105针对其他类型的使用案例进行训练和定制。
21.推理加速器引擎105可以在根据实现方式变化的多种不同安全关键应用程序中的
任一种中使用。例如,在一个实现方式中,推理加速器引擎105在汽车应用程序中使用。例如,推理加速器引擎105控制自动驾驶车辆(即,自主车辆)、驾驶辅助车辆或高级驾驶辅助系统的一个或多个功能。在其他实现方式中,针对其他类型的使用案例训练和定制推理加速器引擎105。根据实现方式,推理加速器引擎105针对在输入图像或视频帧中检测到的各种对象生成分类结果概率。
22.一个或多个处理器110a-b表示任何数量和类型的处理单元(例如,中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic))。在一个实现方式中,与推理加速器引擎105相关联的处理中的一些由一个或多个处理器110b执行。另外,使用任何这些类型的处理单元和/或其他类型的处理元件来实现推理加速器引擎105。存储器子系统130包括任意数量和类型的存储器设备。例如,存储器子系统130中的存储器类型可以包括高带宽存储器(hbm)、非易失性存储器(nvm)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、nand闪存存储器、nor闪存存储器、铁电随机存取存储器(feram)或其他。存储器子系统130可以由推理加速器引擎105和一个或多个处理器110a-b访问。i/o接口120表示任何数量和类型的i/o接口(例如,外围部件互连(pci)总线、pci扩展(pci-x)、pcie(pci express)总线、吉比特以太网(gbe)总线、通用串行总线(usb))。各种类型的外围设备可以联接到i/o接口120。此类外围设备包括(但不限于)显示器、键盘、鼠标、打印机、扫描仪、操纵杆或其他类型的游戏控制器、媒体记录装置、外部存储装置、网络接口卡等等。
23.在各种实现方式中,计算系统100是计算机、膝上型电脑、移动设备、游戏控制台、服务器、流式传输设备、可穿戴设备或各种其他类型的计算系统或设备中的任一种。在一些实现方式中,整个计算系统100或其一个或多个部分被整合在机器人系统、自动驾驶车辆、自主无人机、手术工具或其他类型的机械设备或系统中。应注意,计算系统100的部件的数量因实现方式的不同而不同。例如,在其他实现方式中,存在与图1中示出的数量相比更多或更少的每种部件。还应注意,在其他实现方式中,计算系统100包括图1中未示出的其他部件。另外,在其他实现方式中,计算系统100以与图1中所示不同的方式进行结构化。
24.现转向图2,示出在安全关键系统200中执行的安全关键推理应用程序220的一个实现方式的框图。在一个实现方式中,安全关键系统200至少包括一个或多个处理单元205和210,所述一个或多个处理单元表示任何数量和类型的处理单元。应注意,安全关键系统200也可以包括任何数量的其他部件,所述其他部件未示出以避免模糊附图。在一个实现方式中,一个或多个处理单元205包括一个或多个中央处理单元(cpu)。在其他实现方式中,一个或多个处理单元205可以包括其他类型的处理单元。在一个实现方式中,一个或多个处理单元210包括一个或多个图形处理单元(gpu)。在其他实现方式中,一个或多个处理单元210可以包括其他类型的处理单元(例如,数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic))。
25.在一个实现方式中,安全关键推理应用程序220在一个或多个处理单元205上执行。安全关键推理应用程序220表示在安全是高度重要的危险环境中执行的任何类型的软件应用程序。例如,在一个实现方式中,安全关键推理应用程序220控制自动驾驶或驾驶辅助车辆或其他车辆。在其他实现方式中,安全关键推理应用程序220在机器人内作为飞机中的自动导航控制机构,或者作为各种具有挑战性、高风险环境中的其他系统的一部分操作。
26.在一个实现方式中,安全监测框架230的第一部分(即,安全监测框架230a)在一个或多个处理单元205上执行,并且安全监测框架230的第二部分(即,安全监测框架230b)在一个或多个处理单元210上执行。在其他实现方式中,安全监测框架230完全在一个或多个处理单元205或完全在一个或多个处理单元210上执行。推理加速器240表示用于实现一个或多个机器学习推理算法和/或机器学习推理模型的软件和/或硬件的任何组合。在一个实现方式中,使用专用硬件(例如,fpga、asic、ip核)实现推理加速器240。在另一个实现方式中,推理加速器240包括被设计为在一个或多个处理单元210上执行的软件指令。在其他实现方式中,推理加速器240可以是软件和/或硬件的任何合适组合。在一个实现方式中,推理加速器240根据由安全关键推理应用程序220提供的拓扑和权重/偏差进行操作。
27.安全关键推理应用程序220提供图像以供推理加速器240处理。在一个实现方式中,安全监测框架230接收正在从安全关键推理应用程序220发送到推理加速器240的输入,并且安全监测框架230修改这些输入中的一个或多个,然后将所修改的输入发送到安全关键推理应用程序220。在推理加速器240已处理所修改的输入之后,推理加速器240经由安全监测框架230将处理结果发送到安全关键推理应用程序220。安全监测框架230分析结果,以确定推理加速器240是否发生故障。在一个实现方式中,安全监测框架230生成置信指示符,所述置信指示符指定安全监测框架230在以下方面的置信程度:推理加速器240准确地处理由安全关键推理应用程序220生成的输入。安全监测框架230将置信指示符和修改版本的处理结果传输到安全关键推理应用程序220。在一个实现方式中,如果置信指示符不满足阈值,则安全关键推理应用程序220采取一个或多个校正动作(例如,关闭、重新启动系统、重新尝试相同图像、为用户生成警告信号、降低车速、改变操作模式)。
28.现在参考图3,示出推理故障检测框架300的一个实现方式的框图。在一个实现方式中,计算系统310包括安全监测框架315和推理加速器硬件350。在一个实现方式中,安全监测框架315包括测试生成单元320、缩放器单元325、结果过滤器330、测试验证单元335、推理堆栈340和推理驱动器345。在其他实现方式中,安全监测框架315包括其他部件,并且/或者以其他合适的方式布置。在一个实现方式中,安全监测框架315被设计为兼容自动安全完整性级别(asil)风险分类方案。在其他实现方式中,安全监测框架315可以被设计为符合其他类型环境中的其他风险分类方案。
29.在一个实现方式中,安全关键推理应用程序305将图像、测试向量和推理网络规范传输到安全监测框架315。在一个实现方式中,测试生成单元320接收并使用测试向量来确定将哪些对象添加到原始图像中。测试向量还用于确定由推理加速器硬件350生成的结果是否准确。在一个实现方式中,将冗余对象添加到原始图像,其中该冗余对象与先前图像中存在的对象相同。在另一个实现方式中,将先前图像中不存在的给定对象添加到原始图像。例如,在一个实现方式中,给定对象是在测试向量中被识别为一个或多个测试图像中的已知良好对象的对象。如本文所用,“已知良好对象”被定义为具有高概率被推理加速器硬件350以一致的方式正确地识别或处理的对象。在一个实现方式中,添加到原始图像的给定对象的选择至少部分地基于在正被处理的图像中出现的高概率。测试生成单元320将一个或多个额外的给定对象添加到原始图像,以创建所修改图像。推理堆栈340将所修改图像和推理网络规范传输到推理加速器硬件350。在一个实现方式中,所修改图像和推理网络规范经由推理驱动器345传输到推理加速器硬件350。
30.推理加速器硬件350根据所提供的推理网络规范处理所修改图像,然后推理加速器硬件350将处理结果返回到推理堆栈340。结果过滤器330分析结果,并也过滤结果,以移除添加到原始图像的任何额外的对象。结果过滤器330将对象和分类结果传输到应用程序305。对象和分类结果可以包括任何类型的数据,其中类型根据实现方式而不同。例如,在一个实现方式中,如果应用程序305正在寻找原始图像中的对象数量,则所述结果将包括对象的数量及其在原始图像内的位置。在其他实现方式中,可以在对象和分类结果中传输其他数据,这取决于应用程序305在原始图像中搜索的是什么。
31.在一个实现方式中,通过测试验证单元335对来自推理加速器硬件350的结果进行分析。测试验证单元335确定添加到原始图像的一个或多个额外对象是否被推理加速器硬件350正确地处理和/或分类。在其他实现方式中,测试验证单元335可以使用其他合适的技术来验证由推理加速器硬件350生成的结果。如果测试验证单元335确定推理加速器硬件350正确地处理了已知良好对象,则测试验证单元335将合格测试结果指示符返回到应用程序305。否则,如果已知良好对象被不正确地处理,则测试验证单元335将失败测试结果指示符返回到应用程序305。响应于接收到失败测试结果指示符,应用程序305可以采取各种校正动作(例如,重启、生成错误、重放相同的图像)中的任一种。
32.现在参考图4,示出根据一个实现方式的从安全关键应用程序发送到安全监测框架的图像400a的实例。在图4示出的实例中,图像400a包括卡车402、人404、狗406、马408和另一个人410。应当理解,包括这些对象的图像400a的此实例仅指示一个特定实现方式。还将检测和正确识别的概率示出在每个识别对象周围的虚线框的顶部。在一个实现方式中,这些概率是在目标推理加速器引擎的训练阶段确定的。在一个实现方式中,在测试数据中提供这些概率,安全关键应用程序针对特定神经网络和/或针对正在处理图像的目标推理加速器引擎将所述测试数据提供给安全监测框架。
33.现在参考图5,示出根据一个实现方式的已由安全监测框架从原始图像400a生成的所修改图像400b。修改图像400b旨在表示在由安全监测框架(例如,图3的安全监测框架315)修改之后的图像400a(图4的)。如所示,修改图像400b包括原始图像400a以及已知良好对象区域505,所述已知良好对象区域已被添加到原始图像400a的边界(右侧)之外的所修改图像400b。原始图像400a位于修改图像400b左侧的区域保持不变。因此,修改图像400b的原始图像400a部分包括所有原始对象,因为它们显现在(图4的)图像400a中。
34.在一个实现方式中,已知良好对象区域505包括人510,其表示在测试向量图像中的一个中发现的已知良好对象。在其他实现方式中,已知良好对象区域505可以包括其他数量和/或类型的对象。根据实现方式,在已知良好对象区域505中示出的对象可以包括冗余对象,这些冗余对象是原始图像中对象的精确复制品,和/或没有作为原始图像400a的一部分而包括在内的新对象。另外,虽然已知良好对象区域505示出在修改图像400b的右侧,但应当理解,这仅旨在表示一个特定实现方式。在其他实现方式中,已知良好对象区域505可以添加到原始图像400a的顶部、左侧和/或底部。在一些实现方式中,原始图像的一部分用作已知良好对象区域505。例如,如果图像的一部分由于某些原因被认为是非必要的(例如,确定特定区域中的图像内容对处理结果没有功能影响),则该特定区域可以用作已知良好对象区域。
35.在生成修改图像400b之后,安全监测框架将所修改图像400b传输到推理加速器引
擎(例如,图3的推理加速器硬件350)。推理加速器引擎处理修改图像400b,然后基于此处理将输出传输到安全监测框架。安全监测框架确定添加到已知良好对象区域505的对象根据先前提供的测试数据是否被识别和/或处理。如果这些添加的对象被正确地识别和/或适当地处理,则安全监测框架向安全关键应用程序提供合格指示符。安全监测框架还通过排除已知良好对象区域505中的对象来过滤与原始图像400a相关的处理结果。然后,安全监测框架将这些过滤结果提供给安全关键应用程序。
36.另一方面,如果所添加的对象被不正确地识别和/或错误地处理,则安全监测框架向安全关键应用程序提供失败指示符。响应于接收到失败指示符,安全关键应用程序采取一个或多个校正应用程序。例如,在一个实现方式中,安全关键应用程序响应于接收到失败指示符而终止。在另一个实现方式中,响应于接收到失败指示符,安全关键应用程序生成相同帧以供推理加速器引擎重新处理。在其他实现方式中,安全关键应用程序响应于接收到失败指示符而执行其他动作。
37.现在参考图6,示出用于操作推理加速器的安全监测框架的方法600的一个实现方式。出于讨论的目的,按照连续的次序示出此实现方式中的步骤和图7至图9的步骤。然而,应注意,在所描述方法的各种实现方式中,所描述元素中的一个或多个同时执行、按与所示不同的次序执行、或者被完全省略。也可根据需要执行其他另外的元素。本文描述的各种系统或装置中的任何一个均可以被配置来实现方法600。
38.安全监测框架从安全关键推理应用程序接收测试数据和神经网络规范(框605)。测试数据可以包括训练信息、测试向量和/或其他元数据。在一些情况下,测试数据在方法600开始之前由安全监测框架提前供应或接收。在一个实现方式中,测试向量包括先前已被识别并且/或者在被处理的图像中被识别的概率高的对象。此外,安全监测框架从安全关键推理应用程序接收输入图像(框610)。在一个实现方式中,输入图像是需要针对实时应用程序而进行处理的真实图像。接下来,安全监测框架基于测试数据从所输入图像生成所修改图像(框615)。在一个实现方式中,所修改图像包括所输入图像,其中一个或多个额外对象被添加到所输入图像的边界之外。例如,在一个实现方式中,安全监测框架检测先前输入图像内的第一对象。在此实现方式中,如果第一对象在测试数据中已被识别为具有超过阈值的概率被推理加速器引擎所识别,则安全监测框架将第一对象添加到原始输入图像之外的空间中。在此实例中,所修改图像包括原始输入图像以及第一对象。应注意,可以将任何数量的对象添加到原始输入图像之外的区域。所修改图像是由原始输入图像和额外区域的组合创建的。
39.然后,安全监测框架将所修改图像传输到推理加速器引擎(框620)。接下来,推理加速器引擎处理所修改图像(框625)。应注意,推理加速器引擎并不知道原始图像已被修改。因此,推理加速器引擎执行正常处理,就好像图像是直接从安全关键应用程序接收的并且没有修改一样。然后,推理加速器引擎将来自处理所修改图像的输出传输到安全监测框架(框630)。安全监测框架检查所述输出以确定推理加速器引擎是正常操作还是发生故障(框635)。例如,如果添加到所修改图像的一个或多个额外对象以预期方式进行处理,则安全监测框架得出结论,推理加速器引擎操作正常。否则,如果来自推理加速器引擎处理一个或多个额外对象的结果是预期之外的并且/或者与来自所修改图像的原始图像部分中一个或多个相同对象的结果不匹配,则安全监测框架得出结论,推理加速器引擎发生故障。
40.如果安全监测框架确定推理加速器引擎发生故障(条件框640,“是”支路),则安全监测框架生成错误消息并将错误消息传输到安全关键推理应用程序(框645)。在框645中,安全监测框架还可以将来自推理加速器引擎的其他输出提供到安全关键应用程序。响应于接收到错误消息,安全关键应用程序执行一个或多个校正动作(框650)。应注意,在一些情况下,安全关键应用程序可以任选地决定继续将后续图像发送到推理加速器引擎进行处理,这取决于检测到的错误类型和/或安全关键应用程序的当前状态。替代地,响应于接收到错误消息,安全关键应用程序可以决定终止。如果安全监测框架确定推理加速器引擎正常运行(条件框640,“否”支路),则安全监测框架生成非错误消息并将非错误消息传输到安全关键应用程序(框655)。在框655中,安全监测框架还可以将来自推理加速器引擎的其他输出(例如,过滤后的结果)提供到安全关键应用程序。响应于接收到非错误消息,安全关键应用程序向安全监测框架提供另一个图像,然后方法600返回到框610。
41.现在参考图7,示出用于实现安全监测框架的方法700的一个实现方式。安全监测框架从安全关键应用程序接收输入图像和测试数据(框705)。安全监测框架确定在测试数据中识别的任何对象是否存在于先前图像中(框710)。出于本讨论的目的,假设输入图像是连续图像序列的一部分,诸如相机输入流。如果由测试数据识别的一个或多个对象中的任一个存在于先前图像中(条件框715,“是”支路),则安全监测框架通过将这些识别的对象中的一个或多个的冗余副本添加到原始图像边界之外来修改输入图像(框720)。然后,安全监测框架将所修改图像传输到推理加速器引擎(框725)。如果先前图像中不存在由测试数据识别的任何对象(条件框715,“否”支路),则安全监测框架将输入图像传递给推理加速器引擎,并以传统方式执行处理(框730)。在框730之后,方法700结束。
42.在框725之后,推理加速器引擎处理所修改图像并将第一组处理结果返回给安全监测框架(框735)。安全监测框架分析第一组处理结果以生成错误状态消息(框740)。应注意,错误状态消息指的是推理加速器引擎的错误状态或其概率。在一个实现方式中,错误状态消息是指示推理加速器引擎正常运行或发生故障的单个位。安全监测框架还将第一组处理结果转换为第二组处理结果(框745)。在一个实现方式中,安全监测框架通过从第一组处理结果移除与对原始图像的修改相关联的任何结果数据来将第一组处理结果转换为第二组处理结果。换句话说,第二组处理结果是在原始图像而不是所修改图像已被推理加速器引擎处理的情形下,处理结果会是什么样子。接下来,安全监测框架将错误状态消息和第二组处理结果传输到安全关键应用程序(框750)。在框750之后,方法700结束。
43.现在参考图8,示出用于生成由安全关键应用程序使用的置信指示符的方法800的一个实现方式。安全监测框架截获正在从安全关键应用程序发送到推理加速器引擎的图像(框805)。在一个实现方式中,安全监测框架被置于安全关键应用程序和推理加速器引擎之间。在一个实现方式中,安全关键应用程序和推理加速器引擎都不知道安全监测框架被置于它们之间。然而,在其他实现方式中,安全关键应用程序和/或推理加速器引擎知道安全监测框架位于它们之间。安全监测框架对图像进行一次或多次修改,然后将所修改图像传输到推理加速器引擎(框810)。在一个实现方式中,一次或多次修改包括向原始图像之外的空间添加一个或多个额外对象。针对视频流,在对象识别情况下,提高置信水平的一种方法是将一个类似对象和一个不同对象嵌入到下一视频帧的额外空间中(假设所述对象以接近的时间距离仍在下一个捕获帧中)。
44.在推理加速器引擎处理所修改图像之后,安全监测框架截获正在从推理加速器引擎发送到安全关键应用程序的结果(框815)。安全监测框架分析结果以确定推理加速器引擎正确地处理图像的概率(框820)。例如,在一个实现方式中,安全监测框架确定结果是否指示出现了误分类。如果来自对图像进行处理修改的结果与测试数据提供的结果不一致,则安全监测框架将得出结论,推理加速器不正确地处理原始输入图像的概率相对较高。在一个实现方式中,推理加速器不正确地处理图像的相对较高的概率用相对较低(即,接近于零)的置信指示符来表示。
45.接下来,安全监测框架生成置信指示符以指定推理加速器引擎正确地处理图像的概率(框825)。此外,安全监测框架通过过滤掉与对原始图像所做的修改相关的任何结果来修改结果(框830)。然后,安全监测框架将置信指示符和所修改结果传输回安全关键应用程序(框835)。在框835之后,方法800结束。
46.现在参照图9,示出用于确定哪个对象用于修改图像的方法900的一个实现方式。安全监测器接收测试数据,所述测试数据包括已知良好对象及其在真实图像中出现的概率(框905)。在一个实现方式中,安全关键应用程序将测试数据传输到安全监测器。此外,安全监测器分析先前图像的所检测到的输出以跟踪先前图像中各种对象的检测频率(框910)。
47.安全监测器确定是否任何对象具有大于第一阈值的出现概率和先前图像中的大于第二阈值的检测频率两者(条件框915)。应注意,第一阈值和第二阈值的值可根据实现方式而变化。如果任何对象具有大于第一阈值的出现概率和先前图像中的大于第二阈值的检测频率两者(条件框915,“是”支路),则安全监测器将这些对象中的一个或多个添加到正在传输到推理加速器引擎的下一个图像(框920)。否则,如果没有对象具有大于第一阈值的出现概率和先前图像中的大于第二阈值的检测频率两者(条件框915,“否”支路),则安全监测器向下一个图像添加具有大于第一阈值的出现概率或先前图像中的大于第二阈值的检测频率的至少一个对象(框925)。如果没有对象具有大于第一阈值的出现概率或先前图像中的大于第二阈值的检测频率,则安全监测器可选择向下一个图像添加另一种类型的对象或选择不添加任何对象。应注意,如果没有对象具有大于第一阈值的出现概率和先前图像中的大于第二阈值的检测频率两者,则安全监测器可减小第一阈值的值和/或第二阈值的值。在框920和925之后,方法900结束。
48.现在参考图10,示出用于安全监测框架改变操作模式的方法1000的一个实现方式。具有安全关键应用程序和推理加速器引擎的安全关键系统中的安全监测器通过在第一模式下操作而启动(框1005)。在一个实现方式中,当在第一模式下操作时,安全监测器将真实图像数据发送到推理加速器引擎以进行分类。如果安全监测器检测到第一条件(条件框1010,“是”支路),则安全监测器切换到用于监测推理加速器引擎的第二模式(框1015)。应注意,“第二模式”在本文也可以称为“安全模式”。在一个实现方式中,当在第二模式下操作时,安全监测器生成实验图像数据并将实验图像数据传输到推理加速器引擎以进行分类。应注意,“实验图像数据”在本文也可以称为“已知良好对象图像数据”。在此实现方式中,在推理加速器引擎针对实验图像数据生成分类结果之后,安全监测器基于对分类结果的分析生成置信指示符,其中置信指示符表示结果准确的概率。
49.在一个实现方式中,第一条件是从安全关键应用程序接收应执行增强监测的信号。例如,可以检测到应用程序内特别重要的代码段,应用程序可以确定在正在执行此代码
段的时间段期间需要对推理加速器引擎加强审查。在另一个实现方式中,第一条件是检测到与推理加速器引擎相关联的异常行为。在另外的实现方式中,第一条件是定时器到期。在其他实现方式中,第一条件可以是其他类型的条件。
50.在一个实现方式中,当在第一模式下操作时,安全监测器修改每n个图像中的一个,其中n是大于一的正整数。在此实现方式中,当在第二模式下操作时,安全监测器修改每m个图像中的一个,其中m是小于n的正整数。如果安全监测器并未检测到第一条件(条件框1010,“否”支路),则安全监测器保持在第一模式(框1020)。在框1020之后,方法1000返回至条件框1010。
51.在框1015之后,如果安全监测器检测到第二条件(条件框1020,“是”支路),则安全监测器返回到第一模式(框1025)。在一个实现方式中,第二条件是从安全关键应用接收重新进入第一模式的信号。在另一个实现方式中,第二条件是检测推理加速器引擎返回到正常行为。在另外的实现方式中,第二条件是定时器的值在特定范围内。在其他实现方式中,第二条件可以是其他类型的条件。在框1025之后,方法1000返回至条件框1010。否则,如果安全监测器并未检测到第二条件(条件框1020,“否”支路),则安全监测器保持在第二模式(框1030)。在框1030之后,方法1000返回至条件框1020。应当理解,在其他实现方式中,安全监测器在多于两种不同类型的模式下操作。在这些实现方式中,可以根据应用程序和/或推理加速器引擎的状态以更精细的粒度调整推理加速器的频率。例如,安全监测器可以从修改每十帧、每九帧、每八帧、每七帧等等改变。替代地,安全监测器可以在每隔一帧、每三帧、每四帧等生成实验图像数据之间进行切换。
52.在各种实现方式中,使用软件应用程序的程序指令实现本文所述的方法和/或机制。例如,设想到可由通用处理器或专用处理器执行的程序指令。在各种实现方式中,此类程序指令可以由高级编程语言表示。在其他实现方式中,程序指令可以从高级编程语言编译成二进制形式、中间形式或其他形式。替代地,可以编写描述硬件的行为或设计的程序指令。此类程序指令可以由高级编程语言(诸如c)表示。替代地,可以使用硬件设计语言(hdl),诸如verilog。在各种实现方式中,程序指令存储在多种非暂时性计算机可读存储介质中的任一种上。存储介质可由计算系统在使用期间访问以将程序指令提供给计算系统以用于程序执行。一般来讲,这种计算系统包括至少一个或多个存储器和被配置来执行程序指令的一个或多个处理器。
53.应强调,上述实现方式仅是实现方式的非限制性实例。一旦完全了解以上公开内容,各种变化和修改对本领域的那些技术人员将变得明显。所附权利要求意图被解释为涵盖所有此类变型和修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献