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

用于执行对象分析的系统和方法与流程

2022-03-01 08:00:37 来源:中国专利 TAG:
用于执行对象分析的系统和方法与流程

本公开涉及用于执行对象分析的系统,例如用于在图像序列中执行对象分析的系统。此外,本公开涉及用于操作前述系统以在图像序列中执行对象分析的方法(即,前述系统的操作方法)。此外,本公开涉及一种计算机程序产品,其包括上面存储有计算机可读指令的非瞬态计算机可读存储介质,所述计算机可读指令可由包括处理硬件的计算机化装置执行以执行前述方法。前述系统采用自动深度学习分析来执行复杂信号的场景/对象检测、分类、识别和标记,借助于非限制性示例,复杂信号例如是图像和视频信号。为简单起见,本公开集中于视频信号的情况,但是技术人员能够容易地推导出相同的概念如何能够应用于除视频信号之外的其它类型的信号的自动分析。

背景技术

图像识别系统是已知的,例如欧洲专利申请EP79300903.6中所描述;鉴于EPO技术委员会的决定T208/84(Vicom),此申请是众所周知的。

应当理解,例如视频信号等时间演化信号通常借助于样本在时间上的序列(例如,速率为60Hz或每秒60个样本的样本在时间上的序列)表示,其中每个样本(例如,视频帧)包括多个颜色平面(例如RGB、YUV、HSV等),其中每个颜色平面包括大量像元(例如,对于超HD全分辨率平面,包括3840×2160个像元或大约8百万个像素),并且其中每个像元值都用给定的比特深度表示(例如,8比特、10比特等)。总而言之,应了解,未压缩的视频信号每秒需要极高的比特量才能从一个给定的位置传送到另一个位置,例如,对于4:2:2 UHD 10比特视频信号,仅一秒就需要12千兆比特(即,1.5GB)。

如在EP技术上诉委员会决定T208/84中所述,为了索引、标记、对象识别、OCR等目的而对视频信号进行自动分析和分类是众所周知的;这种自动分析和分类通常需要对给定信号执行多个分类“服务”。这些服务通常由集群计算系统的独立节点执行,其中每个独立节点都配备有合适的计算资源(例如,通常是针对深度学习计算优化的图形处理单元(GPU)或现场可编程门阵列(FPGA))。对于相同的给定信号,彼此不同的服务通常需要彼此不同的质量等级:例如,一些服务(例如面部识别)可以通过每十帧给定的原始视频序列仅分析一帧来成功执行,而其它服务(例如,用于在足球比赛中标识进球的场景检测)可能需要更精细的时间粒度;类似地,一些服务只能通过使用灰度才能成功执行,而其它服务可能需要所有颜色平面都可用,等等。

为了能够向彼此不同的服务提供彼此不同的视频帧,已知的最先进分类系统生成公共队列,其中每个帧都是可独立访问的。应理解,将未压缩的图像帧分发到集群中的多个节点是不切实际的,因为这种分发可能会产生一个或多个网络带宽和/或存储器带宽瓶颈;用于分发帧数据的大多数最先进的解决方案(例如,使用如图1所示的转码器110)独立地压缩每个帧。尽管理论上可以应用任何压缩方案,但大多数实施方案都选择使用JPEG,因为例如JPEG2000、AVC-I、WebP、HEVC-I或AVIF等更高效的格式的解码速度会很慢,从而产生处理瓶颈。图1提供了示出典型的最先进方案的示意图。

参考图1,通过以下操作来执行视频分类任务:例如由调度器130从队列120获取多个帧,然后对帧进行解码并将对应的解码帧传送到处理芯片(例如,图形处理单元(GPU)或现场可编程门阵列(FPGA))的操作存储器。处理芯片任选地预处理解码帧(例如,通过对其进行下采样、将其转换为灰度图像等),然后将其用作一个或多个深度神经网络(例如,在一个或多个节点140中实施)的输入数据。

在图像帧中执行对象分析的传统方法的一个显著限制是,解码帧的分辨率和颜色空间必须是给定系统的所有可能分类服务使用的解码帧的最小公分母,并且最小公分母的任何变化在一个或多个耗时的预处理操作方面都是代价高昂的(除了必须花费时间以比所需分辨率更高的分辨率对多个帧进行解码之外)。当颜色对于图像中的对象分析非常重要时,最先进的方法使用RGB 4:4:4格式作为卷积神经网络检测器的输入,与使用JPEG作为编码格式一致;应理解,对于JPEG格式,在YUV颜色空间中工作并不可行;这是本公开尝试解决的客观技术问题。



技术实现要素:

本公开尝试提供一种用于执行对象分析的改进系统,例如用于执行包含在图像序列中的对象的对象分析的改进系统。此外,本公开尝试提供一种使用前述改进系统来执行对象分析的改进方法(即,用于使用前述改进系统来执行对象分析的方法)。此外,本公开尝试提供一种改进的软件产品,其可在计算硬件上执行以实施前述改进方法。

根据第一方面,提供一种使用系统对输入信号的一个或多个元件进行分类的方法(即,用于使用系统对输入信号内的一个或多个元件进行分类的方法),其中所述方法包括:

接收所述输入信号的压缩版本,其中所述压缩版本包括层次结构中的至少两组压缩数据,其中每一组压缩数据在被解码时能够将所述信号重构到相应的质量等级;

通过对第一组压缩数据进行解码而将所述信号的所述压缩版本解码到第一质量等级,以生成第一重构信号;

对所述第一重构信号执行第一分类操作;

通过对第二组压缩数据进行解码而将所述信号的所述压缩版本解码到第二质量等级,以生成第二重构信号;以及

对所述第二重构信号执行一个或多个第二分类操作。

本发明的优点在于,使用层次结构中提供的压缩数据能够非常有效地解码压缩版本以用于分类目的,其中在分类的第一阶段以第一质量提供压缩版本,并且在分类的第二阶段以第二质量提供压缩图像,其中第二阶段的选择取决于在第一阶段实施的分类。

任选地,在所述方法中,当执行所述第一分类操作时,标识所述第一重构信号中的一个或多个感兴趣区域,并且仅针对那些一个或多个感兴趣区域将所述信号的所述压缩版本所述解码到第二质量等级。

任选地,在所述方法中,所述第一重构信号的分辨率与所述第二重构信号的分辨率彼此相同。

任选地,在所述方法中,所述第一重构信号的分辨率与所述第二重构信号的分辨率彼此不同。

任选地,在所述方法中,对所述第一重构信号中第一数量的帧执行所述第一分类,并且对所述第二重构信号中第二数量的帧执行所述一个或多个第二分类。

任选地,在所述方法中,对所述第一重构信号中的整个帧执行所述第一分类,并且对所述第二重构信号中的帧的一部分执行所述一个或多个第二分类。

任选地,在所述方法中,对所述第一重构信号中第一数量的颜色平面执行所述第一分类,并且对所述第二重构信号中至少第二数量的颜色平面执行所述一个或多个第二分类。

更任选地,在所述方法中,所述第一数量的颜色平面对应于所述第一重构信号中的所有所述平面,并且其中所述第二数量的颜色平面对应于所述第二重构信号中的所述颜色平面的子集。

更任选地,在所述方法中,还对所述第一重构信号中至少第三数量的颜色平面执行所述一个或多个第二分类,其中包含在所述第二数量的颜色平面中的所述颜色平面与包含在所述第三数量的颜色平面中的所述颜色平面彼此不同。

更任选地,在所述方法中,所述第一数量的颜色平面对应于三个并且包含平面Y、U和V,所述第二数量的颜色平面包含平面Y,并且其中所述第三数量的颜色平面对应包含颜色平面U和V。

更任选地,在所述方法中,一种信号包括多个颜色平面(YUV),并且每个颜色平面是亮度平面(Y)或色度平面(U、V)。

任选地,所述方法进一步包括:

通过对第三组压缩数据进行解码而将所述信号的所述压缩版本解码到第三质量等级,以生成第三重构信号;以及

对所述第三重构信号执行一个或多个第三分类操作。

更任选地,在所述方法中:

对所述第一重构信号中第一数量的颜色平面执行所述第一分类,并且对所述第二重构信号中至少第二数量的颜色平面执行所述一个或多个第二分类;

还对所述第一重构信号中至少第三数量的颜色平面执行所述一个或多个第二分类,其中包含在所述第二数量的颜色平面中的所述颜色平面与包含在所述第三数量的颜色平面中的所述平面彼此不同;并且

对所述第三重构信号中至少第四数量的颜色平面执行所述一个或多个第三分类。

更任选地,在所述方法中,所述第三重构信号对应于所述输入信号的一部分。又更任选地,在所述方法中,所述部分对应于所述输入信号的感兴趣区域。

任选地,在所述方法中,接收、解码和执行的步骤全都在同一处理单元(例如,同一图形处理单元(GPU))内执行。

任选地,在所述方法中,(例如,在图像分辨率方面定义的)所述第一质量等级低于所述第二质量等级。

任选地,在所述方法中,还部分地基于所述第一重构信号生成所述第二重构信号。

任选地,在所述方法中,重构信号对应于所述输入信号的一部分。

任选地,在所述方法中,以层次方式组织所述第一分类、一个或多个第二分类和一个或多个第三分类,使得所述第一分类是所述输入信号中的一些元素的粗略分类,并且所述一个或多个第二分类或所述一个或多个第三分类进一步细化所述输入信号中的所述元素的元素的所述粗略分类。

更任选地,所述方法进一步包括:

基于所述粗略分类,仅对所述第二组压缩数据中确定需要进一步分类的那些部分进行解码,并基于那些解码部分生成所述第二重构信号。

任选地,在所述方法中,使用一个或多个神经网络检测器(例如,多个神经网络检测器)来执行所述分类。任选地,所述神经网络检测器包含数据归一化阶段和后续数据比较阶段。任选地,所述神经网络检测器在数字硬件中(例如,在现场可编程门阵列(FPGA)中)、在被配置成执行软件产品以实施神经网络功能的计算硬件中或在两者的组合中实施。

根据第二方面,提供一种对输入信号内的一个或多个元件进行分类的方法(即,用于对输入信号内的一个或多个元件进行分类的方法),所述方法包括:

对所述输入信号的第一版本执行分类任务中的第一分类子任务;

对所述输入信号的第二版本执行所述分类任务中的一个或多个第二分类子任务,其中基于所述第一分类子任务的输出生成所述第二版本。

任选地,所述方法进一步包括:

对所述输入信号的第三版本执行所述分类任务中的一个或多个第三分类子任务,其中生成的所述第三版本是基于所述一个或多个第二分类子任务的输出。

任选地,在所述方法中,基于所述第一分类子任务的所述输出,所述第二版本仅包括所述输入信号的一部分。

任选地,在所述方法中,基于所述第一分类子任务的所述输出,所述第二版本仅包括形成所述输入信号的所述颜色平面的子集。

任选地,在所述方法中,每个版本对应于所述输入信号的解码版本,其中每个解码版本基于以下中的一项或多项与其它版本彼此不同:分辨率、所述解码版本参考的所述输入信号的部分、使用的平面数。

根据第三方面,提供一种重新配置对输入信号内的一个或多个元件进行分类的现场可编程门阵列(FPGA)的方法(即,用于重新配置FPGA的方法),所述方法包括:

利用第一解码过程配置所述FPGA以将所述输入信号的压缩版本解码到第一质量等级;

对第一组压缩数据进行解码以生成第一重构信号;

利用第一分类过程配置所述FPGA以检测所述第一重构信号中的第一元件;以及

对所述第一重构信号执行所述第一分类过程。

任选地,所述方法进一步包括:

利用第二解码过程配置所述FPGA以将所述输入信号的压缩版本解码到第二质量等级;

对第二组压缩数据进行解码以生成第二重构信号;

利用第二分类过程配置所述FPGA以检测所述第二重构信号中的第二元件;以及

对所述第二重构信号执行所述第二分类过程。

任选地,在所述第一方面和/或所述第二方面的方法中,对计算机处理单元(CPU)执行解码,并且对图形处理单元(GPU)执行分类。

根据第三方面,提供一种对多个输入信号内的一个或多个元件进行分类的方法(即,用于对多个输入信号内的一个或多个元件进行分类的方法),所述方法包括:

接收所述多个输入信号的压缩版本,其中所述压缩版本包括所述多个输入信号中的每一个的层次结构中的至少两组压缩数据,其中每一组压缩数据在被解码时能够将所述多个输入信号中的相应输入信号重构到相应的质量等级;

通过对第一组所述多个输入信号中的每一个信号的第一组压缩数据进行解码而将所述第一组所述多个输入信号的所述压缩版本解码到第一质量等级,以生成第一多个重构信号;

对所述第一多个重构信号执行第一分类操作;

通过对第二组所述多个输入信号中的每一个信号的第二组压缩数据进行解码而将所述第二组所述多个输入信号的所述压缩版本解码到第二质量等级,以生成第二多个重构信号;以及

对所述第二多个重构信号执行一个或多个第二分类操作。

任选地,在所述方法中,所述第一多个重构信号包括第一数量的颜色平面,并且所述第二多个重构信号包括第二数量的颜色平面。更任选地,在所述方法中,所述第一数量的颜色平面对应于三个并且包含平面Y、U和V,所述第二数量的颜色平面对应于1个并且包含平面Y。

任选地,在所述方法中,仅针对在先前执行的分类中标识的感兴趣区域将所述信号的所述压缩版本所述解码到第二质量等级。

任选地,在所述方法中,当执行所述第一分类操作时,标识所述第一重构信号中的一个或多个感兴趣区域,并且仅针对那些感兴趣区域将所述信号的所述压缩版本所述解码到第二质量等级。

任选地,在所述方法中,所述输入信号的所述第一版本和/或所述第二版本包括压缩数据。

根据第四方面,提供一种系统,其被配置成执行所述第一方面、所述第二方面和所述第三方面中的任一个的方法。

根据第五方面,提供一种现场可编程门阵列(FPGA),其被配置成执行所述第一方面、所述第二方面和所述第三方面中的任一个的方法。

根据第六方面,提供一种计算机程序产品,其包括上面存储有计算机可读指令的非瞬态计算机可读存储介质,所述计算机可读指令可由包括处理硬件的计算机化装置执行以执行所述第一方面、所述第二方面和所述第三方面中的任一个的前述方法。

本公开的实施例基本上消除或至少部分地解决了现有技术中的前述问题,并且能够更有效和更快速地分析图像序列中存在的对象。

本公开的额外方面、优点、特征和目标将从附图和结合所附权利要求解释的说明性实施例的详细描述中变得显而易见。

应理解,在不脱离由所附权利要求定义的本公开的范围的情况下,本公开的特征易于以各种组合进行组合。

附图说明

当结合附图阅读时,可以更好地理解上述发明内容以及说明性实施例的以下详细描述。出于示出本公开的目的,在图式中示出本公开的示例性构造。然而,本公开不限于本文所公开的特定方法和工具。此外,本领域的技术人员将理解,附图不是按比例绘制的。在可能的情况下,相似的元件用相同的数字表示。

现在将仅借助于示例,参考以下图式来描述本公开的实施例,其中:

图1是用于分析和分类包含在图像帧中的对象的已知系统的示意图;

图2到4是根据本公开的用于分析和分类包含在图像帧中的对象的系统的示意图;并且

图5是分析和分类包含在图像帧中的对象的方法(即,用于分析和分类包含在图像帧中的对象的方法)的步骤的流程图。

在附图中,带下划线的数字用于表示带下划线的数字所在的项目或带下划线的数字相邻的项目。无下划线的数字与由将无下划线的数字链接到项目的线标识的项目相关。当数字没有下划线且带有相关联箭头时,无下划线的数字用于标识箭头所指向的一般项目。

具体实施方式

以下详细描述示出本公开的实施例和可以实施这些实施例的方式。尽管已经公开了实现本公开的一些模式,但本领域的技术人员将认识到,用于实现或实践本公开的其它实施例也是可能的。

根据第一非限制性实施例,提供了一种分类方法,其使用适合于并行和感兴趣区域(“RoI”)解码的编码格式压缩帧序列,例如图像帧,从而生成序列的压缩数据。在优选实施例中,这种编码格式是层次编码格式,优选的是基于分层的编码格式。然后,序列的压缩数据有利地仍以压缩形式传送到负责执行分类任务的处理器节点的操作存储器。取决于要执行的分类任务,处理器节点任选地选择仅对序列的压缩数据的相关部分进行解码。对于多个分类任务,任选地(由相同或不同的处理节点,取决于实施例)使用相同的压缩数据,使用彼此不同的解码数据(例如,借助于非限制性示例、序列的帧的不同子集、不同图像分辨率等)作为一个或多个人工智能(AI)检测器的输入,所述AI检测器例如神经网络检测器,但不限于此。

在非限制性示例实施例中,处理器节点仅将序列中的帧解码到第一质量等级(例如,呈480×270分辨率),其中第一质量等级低于最高质量等级(例如,呈1920×1080分辨率)。在另一非限制性示例实施例中,处理器节点仅以YUV格式对序列中的帧进行解码(即,使得不需要执行YUV到RGB转换步骤)并将子采样的色度平面作为输入馈送到例如神经网络检测器的人工智能(AI)检测器,从而减少到例如神经网络检测器的AI检测器的输入的数量。在另一非限制性示例实施例中,处理器节点仅对Y(即,明度)颜色平面进行解码并将只有亮度的信息作为输入提供到例如神经网络检测器的AI检测器,从而显著减少到例如神经网络检测器的AI检测器的输入的数量。在另一非限制性示例中,处理器节点仅对指定帧的指定感兴趣区域(RoI)进行解码,这同样显著减少到例如神经网络检测器的AI检测器的输入的数量。

在本公开的实施例中,使用YUV信息是可行的,且因此可直接在YUV中进行处理,例如用于执行分类操作。使用利用色度子采样的YUV格式(例如,YUV 4:2:2或YUV 4:2:0)会限制所分析像素的数量,从而大幅提高实施例的效率。应了解,视频源往往是4:2:2(在高质量夹层的情况下)或4:2:0(在压缩H.264视频的情况下更常见),因此利用色度子采样的YUV格式与源视频更密切相关,因此在本公开的实施例中也避免了颜色格式转换的任何损失。另外,需要对处理芯片(例如,图形处理单元(GPU)芯片或现场可编程门阵列(FPGA)芯片)外部的帧进行解码,然后将对应的一系列未压缩帧传送到操作存储器,这使得高分辨率在要处理的存储器带宽方面极其昂贵(且因此在总处理时间上很昂贵);本公开的实施例规避了这一客观技术问题,即限制。

本公开中描述的独特创新方法通过更有效地管理存储器带宽瓶颈和允许对高分辨率信号有效地执行自动分类任务而允许深度学习系统绕过上述限制。具体地说,本文描述的实施例通过利用层次压缩技术重新定义整个分类过程来大幅减少总处理时间:通过使用大规模并行的基于分层的压缩格式,本文描述的方法以压缩形式将最大可能质量帧传送到处理芯片的操作存储器(而不是对这些帧进行解码并传送对应的未压缩呈现形式),然后仅对被视为对一个或多个特定分类任务很重要的帧的感兴趣区域(RoI)、质量等级和颜色平面执行解码。重要的是,以高分辨率对较低质量等级和/或特定感兴趣区域(RoI)进行的解码任选地完全在处理芯片(即,GPU或FPGA)上执行,并且不需要首先对给定帧进行完全解码,然后执行裁剪/重新缩放操作。快速解码整体数据中小得多的部分的可能性(即,处理时间比完全解码然后裁剪/重新缩放所花费的时间少几个数量级)还允许将单个分类任务分成多个深度学习任务,并逐步细化,允许采用简化的神经网络拓扑,同时提高整体分类精度。

参考图2,描绘了根据本公开的实施例的示例。在系统中,调度器200例如经由解码器210将压缩图像帧馈送到GPU节点220(但解码器210可以是GPU节点220的整体功能)。图像帧以层次结构进行编码,使得结构的每一层对应于不同的质量等级,例如不同的分辨率。GPU节点220被配置成对图像帧执行一个或多个分类任务。具体地说,第一节点对第一质量等级的解码帧执行第一分类任务#3,所述解码帧例如图像帧的低分辨率版本(即,480×270)。可使用所有颜色平面YUV来处理第一等级。第二节点(在重新配置后也可以是第一节点的第二实例)对第二质量等级的解码帧执行第二分类任务#2,所述解码帧例如帧的中等分辨率版本(例如,960×540)。任选地仅使用Y颜色平面来处理第二等级。在这种情况下,即使压缩帧包含所有YUV平面,也只对Y平面进行解码。第三节点对第三质量等级的解码帧执行第三分类任务#1,所述解码帧例如帧的最高分辨率版本(例如,1920×1080)。可使用所有颜色平面YUV来处理第三等级。任选地仅对帧的选定感兴趣区域(RoI)执行第三分类,从而减少要处理的信息量,所述RoI例如在先前分类任务期间标识的RoI。

在非限制性示例实施例中,调度器200任选地向例如给定GPU节点220的给定处理器节点传送压缩数据,并且处理器节点任选地多次使用相同的压缩数据,每次基于要执行的给定分类任务对信号的不同部分和/或质量等级进行解码。在非限制性实施例中,用于先前分类任务的仍然在给定处理节点的操作存储器中的解码部分可以重新用作后续分类任务的较高分辨率解码(或感兴趣区域解码)的基线。

在其它非限制性示例实施例中,调度器200任选地在集群中的多个处理节点上散布分类计算,并且仅向每个处理节点传送其执行任务所需的压缩数据的部分。

根据第二非限制性实施例,前述系统采用一种分类方法,所述分类方法有效地利用快速部分解码的可能性,以将给定的整体分类任务分成包括至少两个子任务的后续快速分类子任务的层次结构。第一分类任务是通过对包含在图像帧序列中的所有图像帧进行解码来执行的,但质量等级非常低(即,分辨率非常低):由于与低质量等级相关联的像素数较少,所以此任务执行得非常快,此任务的目的是检测视频中对于一个或多个给定分类任务不需要进一步处理的那些部分,以及检测和定位其中对于一个或多个给定分类任务需要进一步处理的感兴趣区域,并产生元数据以更好地引导必要的后续分类子任务。至少部分地基于第一分类任务的结果(例如,出于第二分类任务的目的而要解码的一个或多个指定感兴趣区域(RoI)的标识),对通过解码图像帧序列中的图像帧子集的指定感兴趣区域而获得的输入数据执行第二分类任务。以这种方式,第二分类任务还以有限数量的像素作为输入为特征,但选定感兴趣区域(RoI)任选地以最大可用分辨率解码,从而对分类精度产生积极影响(即,益处)。

接下来参考图3,示出了根据本公开的实施例的图示。压缩的一系列视频帧经由调度器馈送到多个GPU节点。一系列视频帧以层次结构进行编码,使得结构的每一层对应于不同的质量等级,例如对应于彼此不同的分辨率。GPU节点被配置成对一系列视频帧执行一个或多个分类任务。具体地说,第一节点对第一质量等级的一系列解码视频帧执行第一分类任务,所述解码视频帧例如帧的低分辨率版本(例如,480×270)。任选地使用所有颜色平面YUV来处理第一等级。第二节点(在重新配置后也可以是第一节点的第二实例)对第二质量等级的一系列解码视频帧的子集执行第二分类任务,例如仅对视频帧中的一个执行第二分类任务。所述任务任选地对帧的最高分辨率版本(例如,1920×1080)执行。任选地使用所有颜色平面YUV来处理第二等级。任选地仅对帧的选定感兴趣区域(RoI)执行第二分类,从而减少要处理的信息量,所述RoI例如在先前分类任务期间标识的RoI。

在非限制性实施例中,相同的第一等级分类子任务能够阻止由属于集群的多个处理节点并行执行的多个第二等级分类子任务。仅将压缩数据的相关部分传送到每个处理节点。

接下来参考图5,在非限制性实施例中,分类任务分成三个子任务。在第一步骤500中,通过基于低质量等级下的信号呈现形式快速检测视频序列中需要或者不需要进一步处理的那些部分(例如,一个或多个二级检测)来执行第一等级“粗略分类”。例如,可以进行这种“粗略分类”来检测在足球比赛中几乎没有或根本没有机会发现进球的帧序列,以便将这些帧排除在进一步分析之外,从而减少分类任务所需的计算工作。在第二步骤510中,针对每个检测任务,对于视频序列中第一等级粗略分类标识检测可能性的部分,触发第二等级检测任务,所述第二等级检测任务是对用于第一等级粗略分类的帧的子集操作的,但质量等级更高(例如,图像分辨率更高)。任选地以比第一遍更高的质量等级执行的每个第二等级检测任务旨在检测和定位应考虑识别的特定帧的感兴趣区域(RoI)。在第三步骤520中,当第二等级检测成功时,触发一个或多个第三等级识别子任务,所述第三等级识别子任务是对指定帧的指定感兴趣区域(RoI)操作的,以更高质量等级解码。

接下来参考图4,示出了根据本公开的实施例的示例。压缩的一系列视频帧经由调度器馈送到多个GPU节点。一系列视频帧以层次结构进行编码,使得结构的每一层对应于彼此不同的质量等级,例如彼此不同的分辨率。GPU节点被配置成对一系列视频帧执行一个或多个分类任务。具体地说,第一节点对第一质量等级的一系列解码视频帧执行第一分类任务,所述解码视频帧例如帧的低分辨率版本(例如,240×135)。任选地使用所有颜色平面YUV来处理第一等级。第二节点(在重新配置后也可以是第一节点的第二实例)对第二质量等级的一系列解码视频帧的子集执行第二分类任务,例如仅对视频帧中的一个执行第二分类任务。所述任务任选地对帧的中等分辨率版本(例如,480×270)执行。第三节点(在重新配置后也可以是第一节点的第二实例)对第三质量等级的一系列解码视频帧的子集执行第三分类任务,例如仅对视频帧中的一个执行第三分类任务。所述任务任选地对帧的最高分辨率版本(例如,1920×1080)执行。任选地使用所有颜色平面YUV或仅一些来处理第三等级。任选地仅对帧的选定感兴趣区域(RoI)执行第三分类,从而减少要处理的信息量,所述RoI例如在先前分类任务期间标识的RoI。

在非限制性示例实施例中,分类系统被配置成执行面部检测和识别,例如人脸检测和识别。系统接收输入视频,并针对每个给定的时间间隔,使用层次的基于分层的仅帧内压缩格式以4∶2:0YUV的源分辨率压缩输入视频的帧序列,为帧序列产生压缩数据。将压缩数据连同所需分类任务的描述一起发送到处理节点;例如,经由例如的数据通信网络传送压缩数据。处理器节点处理压缩数据并以第一(低)质量等级产生序列中帧的呈现形式。解码的呈现形式彼此相邻地放置(存储)在操作存储器中,并作为输入提供给第一人工智能(AI)检测器,例如神经网络检测器。神经网络检测器的第一神经网络执行面部检测,并为每个检测到的面部标识多个感兴趣区域(RoI)以用于识别,每个感兴趣区域属于不同的帧。对于要识别的每个面部,处理节点对指示帧中的已标识区域执行感兴趣区域(RoI)解码,将解码的感兴趣区域彼此相邻地放置在操作存储器中,并将其作为输入馈送给神经网络检测器的第二神经网络,所述第二神经网络执行识别。对要识别的每个面部重复所述过程。在其它非限制性实施例中,面部识别任务由集群中的多个处理节点并行(即,在时间上同时)执行,所述集群可以包括也可以不包括执行检测任务的处理节点。在其它非限制性实施例中,针对面部识别描述的相同方法也可用于对象/地标/主题/标签识别、品牌识别、情绪识别和文本/OCR识别,例如车辆号牌检测、复杂交通情况下的车辆检测、自驾车辆道路环境等。

在非限制性示例实施例中,处理节点不使用RGB颜色数据作为执行分类功能的例如神经网络检测器的人工智能(AI)检测器的输入,而是在获得YUV平面后停止解码,并将那些平面作为输入馈送到AI检测器。在其它非限制性示例实施例中,U和V平面相对于Y平面以较低(包含低得多)的质量等级(例如较低的分辨率)解码,从而进一步减少到例如神经网络检测器的AI检测器的输入的数量,从而减少总处理时间。

根据第三非限制性实施例,处理节点分析仍呈压缩形式或仅部分解码的数据。在这些实施例中,基于分层的层次编码格式使得每个信号(即,借助于非限制性示例,图像帧)能够利用以下后续操作进行解码:以第一(较低)质量等级重构信号,然后以第二(高一级的)质量等级预测信号的初步呈现形式,然后对残差数据进行并行解码以按第二质量等级修改信号的初步呈现形式,然后将初步呈现形式和残差数据组合以按第二质量等级重构信号的呈现形式,然后以第三(高一级的)质量等级预测信号的初步呈现形式,然后对残差数据进行并行解码以按第三质量等级修改信号的初步呈现形式,依此类推。值得注意的是,所有不可预测的信息都存在于残差数据的层次层(也称为“梯队”)中,所述层次层包含解码器无法仅基于较低数据梯队的可用性自行推断的数据。另外,根据这些实施例,残差数据以数据块(例如,借助于非限制性实施例,通过使用量化的变换系数)的形式构造,所述数据块可被独立解码以重构每个给定块的残差数据:因而,给定块中像素的所有信息都包含在量化的变换系数中。根据这些实施例,通过向例如神经网络检测器的AI检测器馈送仍然被部分压缩(部分或全部)的数据而不是对应的最终解码像素平面,节省了额外的解码时间。

在非限制性示例实施例中,分类任务需要以给定质量等级处理信号。处理单元不是将信号完全解码到给定的质量等级,而是将信号解码到第一(例如,低一级的)质量等级,然后以给定质量等级对重构残差数据梯队所需的变换系数进行熵解码。提供第一质量等级下的信号和变换系数梯队而不是给定质量下的完整信号作为例如神经网络检测器的AI检测器的输入。在此类非限制性示例实施例中,到例如神经网络检测器的AI检测器的输入的数量和信息内容与以给定质量等级对信号进行完整解码的情况相同;然而,不再需要实施解码过程,从而节省了大部分处理时间,并且在技术上非常有利。

根据第四非限制性实施例,处理节点使用可经由动态和部分重新配置进行实时重新配置的现场可编程门阵列(FPGA)装置。在这些实施例中,通过向FPGA装置加载后续不同的逻辑来执行部分解码、层次分类、较高分辨率下的感兴趣区域(RoI)解码和分类细化的后续操作。例如,FPGA装置包含数据存储器,表示一个或多个对象的参数被加载到所述数据存储器中;FPGA还具有数据存储器,可在其中加载给定质量等级下的图像。FPGA以给定质量等级对图像进行归一化,然后使表示一个或多个对象的参数与归一化图像的部分相关;当这种相关提供大于检测阈值的相关输出时,所述一个或多个对象被视为存在于归一化图像中。因此,有利地采用卡尔曼滤波器形式的算法。可以通过使用学习过程将前述归一化教给FPGA。

在非限制性示例实施例中,处理节点接收存储在操作存储器中的呈压缩形式的分类任务和信号样本(例如,借助于非限制性示例,视频帧)的序列。处理节点利用第一解码器加载FPGA装置,所述第一解码器能够以第一质量等级将压缩数据快速解码成序列的呈现形式。处理节点然后执行解码任务,并在操作存储器中组织解码数据,以便例如使用神经网络将所述解码数据馈送到第一AI检测器。然后,处理节点加载FPGA装置以便执行第一神经网络分类。然后,处理节点执行分类任务,并将输出写入到操作存储器。基于第一分类任务的输出,处理节点然后利用第二解码器加载FPGA装置,所述第二解码器能够例如使用神经网络将压缩数据快速解码成第二AI检测器的第二输入。处理节点然后执行第二解码任务,然后在操作存储器中组织解码数据,以便例如使用神经网络将所述解码数据馈送到第二AI检测器。在非限制性实施例中,第二解码操作包括利用仍然在操作存储器中的第一解码操作的一些解码输出。在其它非限制性实施例中,第二解码操作包括一个或多个帧的感兴趣区域(RoI)解码。在其它非限制性实施例中,任选地以彼此不同的质量等级对彼此不同的色度平面进行解码。在其它非限制性实施例中,第二解码操作以较高质量等级仅对在第一解码操作中解码的帧的子集进行解码。基于第一分类任务的输出,处理节点然后加载FPGA装置以执行第二AI分类,例如第二神经网络分类。然后,处理节点执行分类任务,并将输出写入到操作存储器。

在其它非限制性示例实施例中,采用上述相同方案执行多于两个后续分类任务。在此类实施例中的一个中,第一分类任务以相对低的质量等级在整个序列上执行,并且对于后续一系列分类任务是公共的,这些分类任务随后在集群中的不同处理节点上并行(即,在时间上同时)执行,每个处理节点只接收执行任务所需的压缩数据的一部分。

在另一非限制性实施例中,分类任务可以使用图形处理单元(GPU)执行,而解码可以使用计算机处理单元(CPU)执行。例如,GPU可以是基于硬件的,使其能够实现非常高的图像处理速率,其中CPU执行软件,从而允许在GPU中执行各种分类任务的高度可重配性。

以上描述和实施例提供了以有效方式对输入信号(例如,视频信号)内的元素进行分类的问题的有效解决方案。一般来说,本文提供的解决方案依赖于使用层次编码算法将更广泛的分类问题分成一个或多个子任务,每个子任务可以在彼此不同的层次结构等级下完成,从而使得对图像中存在的对象的检测更准确且更快。

具体地说,如果不离开GPU(通常在其中运行分类算法)就无法解码,则不可能在GPU之外解码,然后传送未压缩的数据。

具体地说,如果无法选择性地解码信号的部分(例如,信号的较低分辨率,或信号的一部分或感兴趣区域,或某一颜色空间),则每次以最大分辨率解码和/或然后以最大分辨率重新缩放到任何期望大小/裁剪都会耗费大量时间。例如,解码、传送和重新缩放20个UHD帧的过程将需要350毫秒(ms)到400毫秒的时间;使用具有上述特性的层次代码(例如,以不同分辨率处理分类任务、仅处理信号的部分等)只需要大约30毫秒。

此外,相同的压缩数据可重复用于多个分类任务,每次可能使用:

(a)不同数量的帧;

(b)不同的分辨率;

(c)全帧与感兴趣区域(RoI);

(d)彼此不同的分辨率下的色度平面与亮度平面;

例如,用低质量等级(和/或分辨率)下的所有帧以YUV 4:2:0有利地执行第一遍;仅用较高质量等级(和/或分辨率)下的几个帧仅针对仍在较低质量等级(和/或分辨率)下的亮度、色度平面执行第二遍;用最高质量等级(和/或分辨率)下的三个感兴趣区域使用YUV 4:2:0仅对选定帧执行第三遍。

在本公开的实施例中,通过使用部分解码的帧(例如,达到某一分辨率)进行更高质量等级的后续解码,可以实现进一步的效率;例如,解码的270p帧可重复用于以解码额外的2个质量等级(LoQ)以解码完整的1080p或1080p帧的感兴趣区域(RoI);这里的“p”是指图像像素。

此外,由于能够以任何分辨率实时灵活地解码任何帧/RoI,因此分类操作可以在后续分类任务的层次结构中执行。第一等级“粗略分类”可用于非常快速地确定视频的哪些部分不值得进一步处理(即,非常快地消除数据的较大部分是可行的,其中这种消除不仅对于减少离线存档标记的时间和成本特别有用,而且对于降低实时视频处理的平均成本也特别有用)。

以上方法,即使用本公开的系统、算法和方法,可以在现场可编程门阵列(FPGA)上执行,从而利用动态和部分重新配置来实现图像数据中的高级对象分析和检测。动态和部分FPGA重新配置是现有的选项,但很少使用。在本发明的实施例中,各种步骤显然适合于动态重新配置:首先用层次编解码器进行解码,然后执行第一神经网络,然后以不同的方式再次用层次编解码器进行解码,然后执行第二神经网络,以此类推。大约几毫秒(例如,<50毫秒)的重新配置时间对于许多实际应用来说是完全可接受的,并且本公开的总体方法能很容易地实现在少于100毫秒的时间内处理一秒持续时间的UHD视频。这种改进有着重大的技术效果,在工业应用中具有重大的商业意义,所述工业应用例如安全系统、机器人、国防设备、交通控制系统、自动驾驶车辆、自动化农业设备、导弹制导系统等。

此外,相同的第一等级分类可以在集群中的多个不同处理节点上阻止多个第二等级分类。仅分发压缩数据的相关部分,从而减少(例如,最小化)存储器带宽和传送时间。

另外,作为输入提供给神经网络检测器的数据还可以仅部分解码(例如,“在压缩空间中索引”);减少所需的解码程度还减少了实施本公开的实施例所需的计算工作。例如:

(a)在YUV(U和V平面经过子采样)处而不是在RGB处停止;

(b)在YUV处停止,U和V的质量等级(LoQ)较低(通常,色度信息非常粗略,LoQ甚至更低);

(c)仅Y平面(相当于灰度,但不需要先解码RGB再转换为灰度);

(d)只有较低分辨率的解码图像以及较高分辨率的变换系数(从而节省了相对耗时的上采样操作以及残差变换和残差相加操作)。

任选地在本公开的实施例中使用的一种潜在层次编码算法是来自V-Nova International Ltd.的专有PerseusTM Pro产品(其具有允许部分和并行解码的字节流格式元素,并且使用静态熵解码而不是自适应熵解码);来自V-Nova International Ltd的专有PerseusTM Pro产品也在特此以引用的方式并入的以下美国专利申请中进行了描述:

13/188,188、13/188,201、13/188,207、13/188,220、13/188,226、13/352,944、13/188,237、13/303,554、13/744,808、13/893,665、13/893,669、13/894,417、13/893,672、13/893,677、15/783,204、15/779,193、16/077,828、16/103,784、16/078,352、16/126,939、16/252,357、16/252,362、16/324,433、16/324,431、16/295,847、16/295,851、16/295,854,

并且在特此以引用的方式并入的以下PCT专利申请中进行了描述:

PCT/GB2017/053716、PCT/EP2018/075603、PCT/EP2018/082350、PCT/GB2018/053551、PCT/GB2018/053556、PCT/GB2018/053553、PCT/GB2019/050122、PCT/GB2018/053552、PCT/GB2019/051104、PCT/GB2018/053546、PCT/GB2018/053555、PCT/GB2018/053547、PCT/GB2018/053554、PCT/GB2018/053548。

本公开的实施例有利地使用当代FPGA来实施,例如使用英特尔公司(Intel Inc.)的装置来实施,所述装置例如AgilexTM F系列FPGA;这些FPGA提供高达58Gbps的收发器支持、增强的数字信号处理(DSP)功能、高系统集成度以及用于各种应用的第二代HyperflexTM架构;在实施本公开的实施例时,利用例如四核Arm Cortex-A53处理器的CPU进行的操作有利于提供高系统集成度。其它类型的FPGA可用于实施本公开的实施例。“TM”表示商标,而表示注册商标。

在前文中,描述了用于执行对象分类的人工智能(AI)检测器的用途。此外,如前所述,使用一个或多个神经网络方便地实施AI检测器。有利地,在层中实施神经网络,其中给定神经网络的给定层以层次分层方式将其输出馈送到神经网络的一个或多个其它层。层次结构中的较低层有利地用于执行前述第一分类操作,并且有利地在FPGA中实施,其中层次结构中的一个或多个较高层有利地使用被配置成执行用于第二分类操作和/或第三分类操作的软件的计算硬件来实施。通过这种方法,在FPGA上执行大部分处理后,可以在软件中重新配置AI检测器的功能。对于许多图像分类操作,前几个神经网络层通常由不同的神经网络共享,以提供一定程度的时间并行处理。正是神经网络的较高几层实际控制AI任务的具体执行,例如面部识别、情绪识别、微笑检测、号牌识别、车辆类型识别、农业中自动水果选择设备中的水果质量识别等。

如前所述,使用例如包含第一归一化阶段和第二比较阶段的多阶段过程来实施第一分类操作、第二分类操作和第三分类操作中的至少一个。应了解,数据归一化是神经网络的常见(任选)预处理阶段,有时对每个神经网络层执行。数据比较阶段通常出现在神经元的输出处,作为神经元非线性函数的一部分(例如,来自修正线性单元-ReLU函数)或作为一般AI系统的一部分(例如,类似于对对象类别的软概率值进行阈值处理,如“对象有80%是一辆汽车并且有20%是一辆摩托车”,以便做出最终/硬性决定,即“对象是一辆汽车”)。

有利的是配置AI检测器,当处理对象定向和/或大小不同的对象数据时,神经网络检测器被构建为具有旋转/大小弹性,使得神经网络检测器在运行期间不需要执行这些操作。相反,他们在较早的训练阶段使用旋转/缩放的图像。

尽管前文提到使用卡尔曼滤波器来执行分类操作作为实施本公开的实施例的任选方式,但应理解,其它方法是可能的并且是本公开的一部分。应了解,层次编解码器和基于AI的分类系统的组合是本公开的实施例的基本特征。

应理解,关于任何一个实施例所描述的任何特征可单独使用,或与所描述的其它特征结合使用,并且还可与任何其它实施例的至少一个特征或任何其它实施例的任何组合结合使用。此外,在不脱离所附陈述中限定的本发明的范围的情况下,也可采用上文未描述的等效物和修改。

再多了解一些

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

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

相关文献