用于人工神经网络系统和方法的低延迟中断警报与流程

文档序号:23233030发布日期:2020-12-08 15:23阅读:201来源:国知局
用于人工神经网络系统和方法的低延迟中断警报与流程

相关申请的交叉引用

本申请是于2019年3月1日提交的美国专利申请no.16/290,811的继续,该美国专利申请又要求于2018年3月9日提交的美国临时专利申请no.62/640,741的权益,其全部通过引用整体并入本文。

本公开总体上涉及人工神经网络,并且更具体地涉及此类具有减少延迟的网络。



背景技术:

人工神经网络(ann)通常被实现为用于执行复杂数据分析的可训练系统。ann通常包括多个节点(例如,也称为神经元)。节点被配置为接收数据,对所接收的数据进行加权,处理加权的数据(例如,通过应用传递函数、偏差、激活函数、设置阈值和/或其他过程),并且将经处理的数据传递给其他节点。节点可以布置在包括以下各项的层中:输入层,其接收提供给ann的数据;隐藏层,其执行大部分ann数据处理;以及输出层,其提供来自ann的结果(例如,也称为推理)。

在某些情况下,ann用于复杂的图像分析,诸如对图像数据(例如,视频帧或单个图像)执行对象表征(例如,对象识别)。由这样的ann生成的结果推理可以是数据的表征,诸如图像中出现的特定对象的标识。

不幸的是,为了执行这样的分析,常规的ann可能包括很多隐藏的节点层。因为任何数据输入都可能影响隐藏层的任何节点的处理,所以在生成推理之前,输入数据(例如,整个视频帧)通常必须由ann的所有层完全处理。这引起这样的ann从输入层接收数据的时间到输出层提供推理的时间为止表现出显著的延迟。不幸的是,这样的延迟对于可能需要快速响应于各种类型的推理的系统可能会是有问题的。

附图说明

图1示出了根据本公开的实施例的提供多个人工神经网络(ann)的系统的框图。

图2示出了根据本公开的实施例的示例硬件实现的框图。

图3示出了根据本公开的实施例的主ann、低延迟ann的框图、以及相关联的时序图。

图4示出了根据本公开的实施例的在顺序操作中主ann和低延迟ann的框图。

图5示出了根据本公开的实施例的在并行操作中主ann和低延迟ann的框图。

图6示出了根据本公开的实施例的具有预处理操作的主ann和低延迟ann的框图。

图7示出了根据本公开的实施例的操作主ann和低延迟ann的过程。

图8示出了根据本公开的实施例的主ann和低延迟ann的其他时序图。

通过参考下面的详细描述,将能够最好地理解本公开的实施例及其优点。应当理解,相同的附图标记用于标识在一个或多个附图中示出的相同的元素。

具体实施方式

根据本文中公开的实施例,提供了利用主人工神经网络(ann)和低延迟ann来促进不同处理需求的各种系统和方法。例如,图1示出了根据本公开的实施例的提供多个ann的系统100的框图。如图1所示,主ann110(例如,第一ann)和低延迟ann120(例如,第二ann)接收数据输入140,并且响应于此而分别生成相关联的推理150和160。推理150和160被提供给应用130,应用130可以响应于推理150和/或推理160而选择性地调节其操作。

值得注意的是,与主ann110相比,低延迟ann120表现了减少的延迟。在这点上,即使ann110和120同时都接收数据输入140,低延迟ann120也会在主ann110生成推理150之前生成推理160。如进一步讨论的,这种减少的延迟可以与例如低延迟ann120中包括的更少的层和/或节点、和/或由低延迟ann120正在处理的更少的数据输入140(例如,或不同的数据输入)相关联。

数据输入140可以是期望由系统100分析的任何类型的数据。尽管本文中总体上关于图像数据讨论数据输入140以及推理150和160,但是任何适当类型的数据输入和推理可以用于本文中提供的各种实施例。在一些实施例中,ann110和120都可以处理相同的数据输入140。在其他实施例中,与主ann110相比,低延迟ann120可以处理数目减少的数据输入140(例如,其子集)。在一些实施例中,可以向低延迟ann120提供更少的数据输入140,和/或在由低延迟ann120处理之前,可以对数据输入140进行预处理以减少其数目,降低其分辨率(例如,在图像处理的情况下降低像素分辨率),和/或减小其位深(例如,在图像处理的情况下减小像素深度)。

在一些实施例中,数据输入140可以包括诸如视频帧的数据流等图像数据,其中每个帧构成将由ann110和120处理的一组数据输入140。例如,数据输入140可以由视频文件、实时视频馈送和/或其他适当的来源提供。在该示例中,主ann110可以被配置为对数据输入140执行特征分析,以生成标识在数据输入140中识别的对象的推理。

同样,在该示例中,低延迟ann120可以被配置为对数据输入140执行不太复杂的分析,以生成标识在数据输入140中识别的事件的发生的推理。在这点上,由低延迟ann120执行的分析可能不如由主ann110执行的分析那样复杂(例如,由于低延迟ann120执行的处理减少)。例如,由低延迟ann120的示例推理160提供的事件(例如,视频图像的场景中对象的突然出现)的检测可能比由主ann110的示例推理150提供的事件(例如,出现在视频图像的场景中的对象的类型的识别)的进一步表征需要更少处理。

例如,由低延迟ann120提供的推理160可以对应于对需要应用130的快速响应的事件(例如,成像视频场景中的突然改变、场景中新对象的出现、和/或其他事件)的检测。如果推理160与这样的高优先级事件相关联,则低延迟ann120和/或应用130可以将其标识为触发应用130以调节其操作的中断警报。与由来自主ann110的推理150提供的复杂表征相比,这样的中断警报可能构成应用130更高优先级。例如,在视频图像处理的情况下,如果低延迟ann120检测到对象的突然出现,则可能优选的是,应用130响应于推理160(例如,在这种情况下为中断警报)而执行一个或多个快速动作(例如,指示包括系统100的车辆的引导系统操纵车辆以避免撞到检测到的对象),而不是等待附加的时间段过去,直到主ann110对特定类型的对象执行更具体的标识并且最终提供推理150。

系统100的各种特征可以在适当的硬件中实现。例如,图2示出了根据本公开的实施例的可以用于提供主ann110、低延迟ann120、应用130和数据输入140中的一个或多个的示例硬件实现的框图。如图所示,图2所示的实现提供了包括逻辑器件210、存储器220、通信接口230、显示器240、用户控件250和其他组件260的硬件系统。

逻辑器件210可以被实现为用于数据处理的任何适当的器件,诸如处理器(例如,微处理器、单核处理器和/或多核处理器)、微控制器、可编程逻辑器件(pld)(例如,现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld)、片上现场可编程系统(fpsc)或其他类型的可编程器件)、图形处理单元(gpu)、和/或其他器件。存储器220可以由提供机器可读介质的一个或多个存储器设备来实现,诸如易失性存储器(例如,随机存取存储器)、非易失性非暂态存储器(例如,只读存储器、电可擦除只读存储器、闪存)、或其他类型的存储器。在各种实施例中,存储器220可以存储根据本文中讨论的各种操作由逻辑器件120执行(例如,或用于配置逻辑器件120)的软件指令、与数据输入140相对应的数据、与推理150和160相对应的数据、和/或其他适当的信息。

通信接口230可以用适当的硬件来实现,以提供系统100的各个组件之间和/或系统100与其他设备之间的有线和/或无线数据通信。例如,在一些实施例中,通信接口230可以是网络接口(例如,以太网接口、wi-fi接口和/或其他网络接口)、串行接口、并行接口、和/或其他适当的类型。例如,可以提供一个或多个通信接口230以从外部设备(例如,从联网的相机或文件系统)接收数据输入140,在系统100的各个组件之间传递通信,和/或向外部设备提供数据输出。

显示器140可以用适当的硬件来实现以向系统100的用户呈现信息。例如,在一些实施例中,显示器140可以通过屏幕、触摸屏和/或其他适当的硬件来实现。可以用适当的硬件来实现用户控件250,以允许用户与系统100交互和/或操作系统100。例如,在一些实施例中,用户控件可以通过各种组件来实现,诸如键盘、鼠标、触控板、触摸屏(例如,在某些情况下与显示器140集成在一起)、按钮、滑杆、旋钮、和/或其他适当的硬件。可以提供其他组件260以实现适合于特定实现的任何其他硬件特征。

图3示出了根据本公开的实施例的主ann110、低延迟ann120的框图、以及相关联的时序图310和320。如先前讨论的,主ann110和低延迟ann120接收数据输入140并且响应于此而提供推理150和160。

如图所示,主ann110包括布置在包括输入层112、隐藏层114和输出层116在内的多层中的各种节点300。低延迟ann120包括布置在包括输入层122、隐藏层124和输出层126在内的多层中的各种节点301。然而,与主ann110相比,低延迟ann120可以包括减少数目的隐藏层124、以及输入层122、隐藏层124和输出层126中减少数目的节点301。与主ann110的节点300相比,与低延迟ann120的节点301相关联的处理可以减少。例如,在某些实施例中,低延迟ann120的节点301可以用二进制权重来实现(例如,低延迟ann120可以被实现为二进制ann和/或三进制ann),而主ann110的节点300可以被实现为非二进制权重。

尽管示出了特定数目的隐藏层114和124,但是在各种实施例中,可以提供任何期望数目的隐藏层。而且,尽管在层112、114、116、122、124和126中示出了特定数目的节点300/301,但是在各种实施例中,可以提供任何期望数目的节点300/301。

在一些实施例中,主ann110和低延迟ann120可以被实现为在复杂度和/或处理能力不同以适应ann110和120的不同处理特征的单独的硬件设备上并行运行。例如,在一些实施例中,主ann110可以在高性能逻辑器件(例如,gpu或其他处理器)中实现,而低延迟ann120可以在低功耗逻辑器件(例如,pld)中实现。在其他实施例中,主ann110和低延迟ann120可以被实现为顺序地(例如,使用单个处理核心)或并行地(例如,使用多个处理核心)在同一逻辑器件上运行。在各种实施例中,应用130可以在与主ann110和低延迟ann120中的一者或两者相同的逻辑器件上运行,或者在单独的逻辑器件上运行。

在主ann110的情况下,在提供推理150之前,通过所有层112、114和116处理全部数据输入140。在低延迟ann110的情况下,在提供推理160之前,可以通过所有层122、124和126处理数目减少的数据输入140。然而,与低延迟ann120的节点301的数目相比,主ann110利用数目更多的节点300来实现(例如,由于比隐藏层124数目更多的隐藏层114和/或比节点301数目更多的节点300)。结果,主ann110将表现出比低延迟ann120更大的延迟。因此,在主ann110生成推理150之前,将由低延迟ann120生成推理160。

这些不同的延迟分别在与主ann110和低延迟ann120相关联的时序图310和320中进一步说明。在时序图310和320的情况下,数据输入140对应于多个视频帧的数据流。在这点上,可以在时间330将第一视频帧f0作为数据输入140提供给主ann110和低延迟ann120。

响应于所接收的数据输入140,低延迟ann120在从时间330持续到生成推理160的时间340的时间段332期间处理视频帧f0。同样响应于所接收的数据输入140,主ann110在从时间330持续到生成推理150的时间350的时间段334期间处理视频帧f0。

如图所示,低延迟ann120表现出与时间段332相对应的从时间330延伸到时间340的延迟。主ann110表现出与时间段334相对应的从时间330延伸到时间350的延迟。因此,应当理解,低延迟ann120和主ann110表现出与从时间340持续到时间350的时间段336相对应的延迟差。结果,推理160将比推理150更早地可用于应用130。

如所讨论的,应用130可以响应于推理150和/或推理160而选择性地调节其操作。有利地,通过实现与主ann110相比具有减小的延迟的低延迟ann120,应用130将迅速地接收与中断警报相对应的任何推理160,并且可以响应于此而调节其操作,而不必等待主ann110生成其推理150。

如图3进一步所示,可以由ann110和120提供并且处理连续的视频帧(例如,视频帧f0,然后是视频帧f1,以此类推)。此外,在一些实施例中,由于低延迟ann120提供的延迟大大减少,应用130可以在处理当前视频帧(例如,f0)期间并且甚至在数据输入140处接收下一视频帧(例如,f1)之前响应于中断警报而调节其操作。

设想了用于主ann110和低延迟ann120的各种配置。例如,图4示出了根据本公开的实施例的在顺序操作中的主ann110和低延迟ann120的框图。在图4中,主ann110和低延迟ann120在共享逻辑器件400上实现,并且被配置用于所讨论的顺序操作。在这点上,在时间t0接收到数据输入140之后,低延迟ann120开始处理数据输入140并且在时间t1提供推理160(例如,表现出从时间t0到时间t1的延迟)。主ann110在时间t1接收并且开始处理数据输入140,并且在时间t2提供推理150(例如,表现出从时间t1到时间t2的延迟)。因此,在图4所示的顺序处理实施例中,推理160在时间t1较早到达,而推理150在时间t2较晚到达。

图5示出了根据本公开的实施例的在并行操作中主ann110和低延迟ann120的框图。在图5中,主ann110和低延迟ann120并行操作,并且可以在共享逻辑器件500上(例如,具有与ann110和120中的每个相关联的不同处理器核心)和/或在分离的逻辑器件上实现,如所讨论的。在图5中,主ann110和低延迟ann都在时间t0接收数据输入140并且开始处理。低延迟ann120在时间t1提供推理160,并且主ann110随后在时间t2提供推理150,这是因为其延迟较长。

图6示出了根据本公开的实施例的利用预处理操作实现的主ann110和低延迟ann120的框图。如所讨论的,在一些实施例中,可以在将数据输入140提供给低延迟ann120之前对数据输入140进行预处理。例如,可以对数据输入140进行预处理以减少其数目,降低其分辨率,降低其位深,和/或其他方式适当地修改以提供将由低延迟ann120进一步处理的经处理的数据输入630。

在图6中,主ann110由逻辑器件600实现,并且低延迟ann120由逻辑器件610实现。此外,预处理操作由逻辑器件620执行。尽管示出了各种逻辑器件600、610和620,但是可以适当地使用任何期望数目的共享和/或分离的逻辑器件来实现图6的各种特征。

如图所示,数据输入140最初被提供给逻辑器件620,该逻辑器件620对其进行预处理以提供经处理的数据输入630,以供低延迟ann120使用,如所讨论的。在一些实施例中,如图所示,如果需要,还可以将经处理的数据输入630提供给主ann110以进行处理。

在一些实施例中,可以在由主ann110执行的处理之前执行逻辑器件620的预处理操作,使得在时间t0分别将数据输入140和经处理的数据输入630提供给主ann110和低延迟ann120。如针对各种实施例所讨论的,低延迟ann120然后可以在时间t1处理数据输入630以提供推理160,并且主ann110可以在稍后的时间t2处理数据输入630以提供推理150。在其他实施例中,数据输入140可以被同时提供给主ann110和逻辑器件620的预处理操作,使得主ann110可以在由逻辑器件620执行预处理操作的同时开始处理数据输入140。

图7示出了根据本公开的实施例的操作主ann110和低延迟ann120的过程。在框701中,在适当的数据集上训练主ann110和低延迟ann120。在这点上,可以将已知数据集作为数据输入140提供给主ann110和低延迟ann120。权重、传递函数和与其各种节点300/301相关联的其他处理可以以迭代的方式进行调节(例如,通过适当的反馈、反向传播和/或其他技术),直到主ann110和低延迟ann120生成适当的推理150和160。例如,在将要分析视频帧的一些实施例中,可以在包括具有全分辨率和全位深的视频帧的数据集上训练主ann110,并且可以在包括分辨率降低和位深减小的视频帧的数据集上训练低延迟ann120(例如,提供给主ann110的视频帧的经预处理的版本,如图6所示)。在训练完成之后,主ann110和低延迟ann120可以开始正常操作。因此,在框702中,系统100接收数据输入140,诸如将由主ann110和低延迟ann120分析的视频帧。

如所讨论的,在各个实施例中,主ann110和低延迟ann120可以以并行或顺序方式操作。在图7中,示出了并行操作,其中组710的框通常与低延迟ann120相关联,而组730的框通常与主ann110相关联。然而,也可以提供顺序操作,其中组710的所有框中的一些框在组730的框之前执行。

图8示出了根据本公开的实施例的与主ann110和低延迟ann120相关联的组710和730的各种操作的附加时序图。特别地,图8示出了与分析在提供给数据输入140的数据流中接收的顺序视频帧f0和f1相关联的操作。

参考组710的框,在框712中,可选地对数据输入140执行预处理以生成经处理的数据输入630。在框714中,将数据输入140(或经处理的数据输入630)提供给低延迟ann120并且由其接收。在框716中,低延迟ann120处理数据输入140/630。在框718中,低延迟ann120生成推理160并且将其提供给应用130。

如所讨论的,在某些情况下,低延迟ann120和/或应用130可以将推理160标识为用于触发应用130以调节其操作的中断警报。因此,在框720中,如果低延迟ann120和/或应用130确定推理160与中断警报相关联,则该过程继续进行到框722。否则,该过程继续进行到框736,如图所示,其中主ann110继续其处理。

在框722中,应用130响应于中断警报而调节其操作。在一些实施例中,应用130可能不需要接收随后由主ann120提供的附加推理150,并且因此可以在最终生成推理150时忽略推理150。在其他实施例中,应用130可以在进一步处理中利用推理150。

现在参考组730的框,在框732中,数据输入140被提供给主ann110并且由其接收。如图所示,在一些实施例中,主ann110可以在预处理框712被执行的同时接收数据输入140,使得主ann110不需要等待就可以开始处理数据输入140。在框734中,主ann110开始处理数据输入140。在这点上,如前所述,在主ann110提供推理150之前,低延迟ann120可以提供推理160(框718),如图7和8所示。因此,即使在组710的框已经完成之后,主ann110也可以继续在框736中处理数据输入140。

在框738中,主ann110生成推理150并且将其提供给应用130。在框740中,应用130响应于推理150而调节其操作。

对于附加数据输入,诸如对于如图8所示的附加视频帧f1,可以重复框702至740,因此,系统100可以根据需要继续处理提供新数据输入140的集合的数据流,诸如以用于处理视频数据。

在适用的情况下,本公开提供的各种实施例可以使用硬件、软件或硬件和软件的组合来实现。同样,在适用的情况下,在不脱离本公开的精神的情况下,本文中阐述的各种硬件组件和/或软件组件可以被组合成包括软件、硬件和/或两者的复合组件。在适用的情况下,在不脱离本公开的精神的情况下,本文中阐述的各种硬件组件和/或软件组件可以被分成包括软件、硬件或两者的子组件。另外,在适用的情况下,可以预期,软件组件可以被实现为硬件组件,反之亦然。

根据本公开的软件(诸如程序代码和/或数据)可以存储在一个或多个计算机可读介质上。还预期,本文中标识的软件可以使用联网和/或以其他方式的一个或多个通用或专用计算机和/或计算机系统来实现。在适用的情况下,本文中描述的各个步骤的顺序可以改变,组合成复合步骤和/或分成子步骤以提供本文中描述的特征。

以上描述的实施例说明但不限制本发明。还应当理解,根据本发明的原理,可以进行多种修改和变化。因此,本发明的范围仅由所附权利要求书限定。

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