技术领域
[0001] 本发明涉及分割领域,并且尤其涉及提供分割掩码的方法,该分割掩码指示图像的序列中的图像的一个或多个对象类的单独的实例。
相关背景技术
[0002] 出于安全和其他监视目的,对诸如建筑物、人、动物、道路和车辆等对象的视频监控变得越来越普遍。然而,即使是被训练的注意力集中的观看者也无法从视频中提取有意义的信息。作为结果,对能够使用计算机监视技术检测用于监视和监控目的的对象的监视系统的需求持续增长。最近,深度学习已经允许对来自分布式相机和云计算监控系统的视频进行更复杂的分析。
[0003] 深度学习是一种类型的机器学习,可能涉及训练模型,通常称为深度学习模型。深度学习模型可以基于一组算法,该一组算法被设计成通过使用多个处理层来对数据中的抽象事物进行建模。处理层可以由非线性变换组成,并且每个处理层可以在将变换后的数据传递给后续处理层之前变换数据。数据的变换可以通过处理层的权重和偏置来执行。处理层可以完全连接。作为示例而非限制,深度学习模型可以包括神经网络和卷积神经网络。卷积神经网络可以由可训练滤波器的层次结构组成,与非线性和池化交错。卷积神经网络可以用于大规模对象识别任务。
[0004] 深度学习模型可以在有监督或者无监督的设定中训练。在有监督设定中,深度学习模型使用标记的数据集进行训练,以对数据进行分类或者准确预测结果。当输入数据被输入到深度学习模型中时,模型调整其权重,直到模型被适当地拟合,这作为交叉验证过程的一部分发生。在无监督的设定中,使用未标记的数据集来训练深度学习模型。深度学习模型从未标记的数据集中发现可以用于将数据集中的数据聚类成具有共同属性的数据组的模式。常见的聚类算法是层次模型、k均值模型和高斯混合模型。因此,深度学习模型可以被训练以学习数据的表示。
[0005] 随着深度学习的发展,从相机网络的实时视频流中更快并且更准确地识别对象成为可能。这种识别的一种技术是分割或者图像分割。分割的目的是根据所描述的内容来标记图像区域。被确定为描述对象(或者对象集合)的图像区域形成分割掩码。图像的分割结果或者分割产物包括一个或多个分割掩码。
[0006] 常见的分割类型有语义分割和实例分割。在语义分割中,属于相同对象类的每个像素被分割为一个对象,并且因此是一个分割掩码的一部分。例如,被检测为人的所有像素被分割为一个对象,而被检测为汽车的所有像素被分割为另一个对象。另一方面,实例分割旨在检测图像的每个不同的对象实例。例如,图像中的每个人被分割成单独的对象,并且因此形成一个分割掩码。另一种已知类型的分割是全景分割,全景分割可以被描述为语义和实例分割的组合。在全景分割中,旨在从语义上区分不同的对象,以及检测图像中不同对象类的单独的实例。
[0007] 本申请和所公开的发明涉及分割技术,其旨在至少检测图像中一个或多个对象类的单独的实例。这种分割技术的示例包括所提到的实例分割和全景分割。
[0008] 分割的任务可以使用深度学习模型来执行,该深度学习模型被配置和训练成执行实例分割。实例分割可以是全景分割过程或者实例分割过程的一部分。从一般级别来看,这种深度学习模型的输入是要分割的一个或多个图像(诸如监控视频图像)的图像数据,并且输出是在像素级别上表示图像数据的一个或多个对象类的置信度评分的张量。换句话说,深度学习模型为每个像素确定该像素描述一个或多个对象类中的每一个的对象的概率。
[0009] 存在多种不同适用于被配置和训练成执行实例分割的深度学习模型的的深度学习网络,并且输入和输出的详细形式(即输入图像数据要求什么格式以及输出张量具有什么格式)可以在这些网络之间变化。还应注意,虽然术语“张量(tensor)”是当前构建的深度学习模型的输出的合适表示,但是用于来自深度学习模型或者用于提供实例分割目的的其他方法或者算法结构的输出的其他未来术语应当被视为等同物。换句话说,在本发明的未来应用中,以某种方式表示图像的多个对象类之一的置信度评分的数据结构可以实现与本文讨论的张量相同的目的,并且应当被视为张量的等同物。术语张量因此与表示图像的对象类的置信度评分的数据结构的未来术语是可互换的。
[0010] 来自深度学习模型的输出被解释为,可能与来自附加的深度学习模型的结果一起以形成图像的分割掩码,即由图像区域形成的掩码,该图像区域至少标记有由一个或多个深度学习模型检测到的它们的对象类。一种用于解释的标准技术是阈值化,其中通过为每个对象类设定置信度评分阈值来解释来自执行实例分割的深度学习模型的张量输出。阈值设定了像素被解释为描述相应对象类所需的最小置信度评分。阈值化是非平凡的任务,并且在如何最佳地设定阈值上存在多种构思。通常,过低的阈值导致包含多种错误对象检测的有噪声的分割掩码,而过高的阈值导致无法包含肯定的对象检测的不良的分割掩码。
[0011] 专利申请US2009/0310822中公开了一种阈值化技术。该文献公开了对象分割过程,其中所谓对象预测信息在分割期间用于在像素级别上调整置信度评分阈值。对象预测信息的示例是对象运动信息、对象类别信息、环境信息、对象深度信息和交互信息。根据预测信息,像素被初步确定为预测前景像素或者预测背景像素。如果假设该像素是前景像素,则降低该像素的阈值以提高分割过程的灵敏度。否则,增加阈值以降低灵敏度。
[0012] 即使存在各种解决方案来提供精确的分割掩码,仍然需要在例如处理效率和精度方面进行改进的方法。
具体实施方式
[0045] 图1示出了根据一个实施例的相机10,相机10具有适用于执行为所获取的图像生成分割掩码的方法的配置。相机10是可以被适配为监控目的的数字相机。相机10例如可以是固定的监视相机,其被配置成生成由位于远程的用户观看的场景的视频。相机10包括用于根据已知的数字成像技术获取图像的图像传感器101和用于经由有线或者无线通信向接收器发送视频(即,一个或多个图像序列)的发送器106。在发送视频之前,相机10调整并处理其获取的图像数据。图像处理流水线(IPP)103对获取的图像数据执行已知的预编码增强,诸如增益和白平衡调整。提供编码处理器102用于编码原始或者预编码处理后的图像数据。编码处理器102被适配为使用基于预测编码的视频压缩算法来编码图像数据。合适的视频压缩算法的非限制性示例包括H.264和H.265视频压缩标准。预测编码或者时间编码包括帧内(I帧)编码和帧间(P帧或者B帧)编码。在预测编码期间,运动向量通常在宏块级别以已知方式确定。运动向量表示一个图像中的宏块与先前获取的图像中相同或者相似宏块的位置相对的位置。宏块大小在不同的视频压缩标准之间有所不同。例如,宏块可以由8×8或者16×16相邻像素的像素组形成。编码处理器102的输出是编码的图像数据。
[0046] 相机10进一步包括分割处理器104,其被配置成执行包括实例分割的图像分割。换句话说,图像分割处理器104被适配为处理图像,更具体地,处理原始或者预编码处理的图像数据,以生成分割掩码,该分割掩码指示捕获图像的一个或多个对象类的单独的实例。可以对图像序列的所有图像或者所选择的图像执行分割。
[0047] 图像分割处理器104和编码处理器104可以实施为软件,其中电路形成相应的处理器,例如微处理器,其与存储在贮存器105上的计算机代码指令相关联,贮存器105是(非暂时性的)计算机可读介质,诸如非易失性存储器,使得相机10执行本文公开的任何方法(的部分)。非易失性贮存器的示例包括只读贮存器、闪存贮存器、铁电RAM、磁性计算机存储装置、光盘等。
[0048] 相机10可以包括满足与本发明无关的其他目的的其他模块。
[0049] 应当注意,分割处理器104不需要成为相机10的组成部分。在替代实施例中,分割处理器104位于相机10的远程位置处。因此,可以在例如连接到相机10的服务器上远程执行图像分割,其中相机10向服务器发送图像数据,并且可以从服务器接收图像分割结果。
[0050] 现在将进一步参考图2来提供实施例的概览。图2示出了根据实施例的相机10中关于图像分割和编码的图像处理以及它们之间的交互的流程图。通过图像捕获201,图像数据被获取,并且可选地进行预编码处理。图像数据被提供给用于图像分割的分割处理器104和编码处理器102。在编码处理器102中,视频压缩102与本文未示出的其他编码步骤一起执行。视频压缩102包括确定运动向量作为预测编码的一部分。为了编码的目的,运动向量用于以比特有效的方式表示图像序列。另外,根据实施例,运动向量还用于分割。因此,来自视频压缩202的运动向量被提取到分割中,特别是分割中的阈值化步骤204。阈值化204的目的是确定用于生成图像的最终分割结果的置信度评分阈值。置信度评分阈值设定了应当被解释为肯定检测的置信度评分和应当被解释为否定检测的置信度评分之间的边界值。要被解释的置信度评分在从先前分割203输出的张量中给出。如所讨论,分割203包括以已知方式处理图像数据以生成确定的置信度评分。置信度评分是在像素级别上确定的,并且可以是例如1和100之间的值,该值指示像素描述特定对象类的对象的概率。分割203可以确定用于多个对象类的置信度评分,这意味着每个像素可以被给予多个置信度评分。根据在分割203中使用的算法,输出的格式即如何表示置信度评分是可以变化的。在本申请中,术语张量表示可以用于本发明目的的分割算法的任何输出。张量表示图像中每个像素的一个或多个置信度评分,其中置信度评分是针对一个或多个对象类给出的。对象类的非限制性示例包括车辆、人、汽车、前景、背景、头部和自行车。因此,分割算法可以在一般级别上进行分割,例如找到对象的单个实例而无需进一步确定对象的类型,或者分割算法可以在更具体的级别上进行分割,例如找到自行车和汽车的单个实例。
[0051] 回到阈值化步骤204,通过使用从视频压缩202中提取的运动向量,实施例提供了以高效方式确定图像的置信度评分阈值的方式。首先,分析运动向量以确定待分割的图像的一个或多个相干区域。分析包括估计运动向量以识别相邻运动向量,即相邻宏块的运动向量,它们具有相似的方向和相似的幅度,从而定义了相干区域。所识别的相干区域指出了描述以相干方式运动的场景部分,例如行走的人的图像区域,并且图像的剩余部分可能不描述任何运动对象。该信息被用于阈值化204中,以指导关于在哪里设法查找提供精确掩码的置信度评分阈值的过程。具体地,阈值化204在识别到的相干区域中应用迭代搜索来查找合适的置信度评分阈值,因为这些区域比剩余区域更有可能描述对象。将较少的处理花费在查找剩余图像区域的置信度评分阈值上,该剩余图像区域可以被视为背景区域,并且被分配默认置信度评分阈值,或者在图像分割中完全不被处理。因此,根据一个实施例,方法可以假设仅在相干区域中存在对象,并且因此不花费任何资源来尝试在相干区域之外的图像区域中进行分割,即确定对象类的实例。在一个实施例中,为图像识别的一组相干区域在用于阈值化204之前被预处理。预处理的目的是滤除相关相干区域,并丢弃可能由场景中不相关的对象或者运动引起的相干区域。预处理可以包括将该组相干区域与一组分割掩码进行比较,该分割掩码通过使用一个或多个基本置信度评分阈值解释张量来识别。可以在图像的不同区域中使用不同的基本置信度评分阈值。基本置信度评分阈值可以是预定义值,或者可以在图像捕获期间动态调整。例如,基本置信度评分阈值可以采用与用于先前捕获的图像中的空间对应图像区域的置信度评分阈值相同的值,该先前捕获的图像优选地是刚刚捕获的图像。该组相干区域被过滤,使得与该组分割掩码中的分割掩码至少部分重叠的相干区域被保留,重叠的程度可选地在阈值以上,而不重叠或者重叠程度在阈值以下的相干区域被丢弃并从该组相干区域中移除。相干区域集合中的剩余相干区域,可以被称为相关相干区域,此后被用于如本文所公开的阈值化204。即使在本描述的其余部分中没有提到术语相关相干区域,但是应当理解,以上公开的用于滤除相关相干区域的相干区域的可选预处理可以用于任何公开的实施例中。
[0052] 现在将进一步参考图3a至图3c更详细地描述在一个或多个确定的相干区域中迭代搜索合适的置信度评分阈值。图3a示出了在图像捕获201中获得的图像序列30。待分割的图像31描述了一辆移动的汽车和三个生物。(右边的)两个生物静止不动,并且(左边的)一个生物在移动。在图像31的编码期间,确定参考图像序列30中其他图像的运动向量。如上所述,分析为图像31确定的运动向量,以识别图3b所示的相干区域32a、32b。由于相干区域32a、32b在像素组级别通常是宏块级别上确定,因此它们提供了描述相干运动的图像区域的粗略指示。尽管运动向量的估计是当前确定相干区域的优选方式,但是应当注意,存在确定这些区域的替代方式。例如,相干区域32a、32b可以通过执行图像31的图像分析来识别。
用于对象检测或者运动检测的已知图像分析算法可以用于查找相干区域的目的。另一种替代方案是使用除了图像传感器之外的传感器。传感器可以是例如雷达或者其他距离传感器。相干区域可以通过由传感器识别移动对象并确定它们在图像中的相应空间坐标来确定。这两种替代方案,即通过图像分析或者通过使用一个或多个附加传感器来确定相干区域,对于本领域技术人员而言都是可能的,而不需要更多的细节。
[0053] 对于每个相干区域,阈值化204生成一系列临时分割掩码。图3c示出了为相干区域32b生成的一系列临时分割掩码33。通过使用不同的临时置信度评分阈值解释从分割203输出的张量,生成一系列临时分割掩码33中的每个掩码。根据张量的解释,分割掩码的黑色像素指示该像素描述了对象,并且形成了临时分割掩码的一部分,而白色像素指示该像素没有描述对象,并且不是临时分割掩码的一部分。如图所示,可以通过解释相干区域中的张量以及周围区域来生成临时分割掩码。在这种情况下,所估计的区域中的所有黑色像素即所有肯定的解释是临时分割掩码的一部分。应当注意,临时分割掩码可以由单独的掩码片段组成。
[0054] 按照对象类生成一系列临时分割掩码33,这意味着针对单个对象类来估计张量。在所示出的实施例中,一系列临时分割掩码33是为卡车对象类生成的,这意味着通过解释张量中卡车对象类的置信度评分来生成掩码。使用第一初始临时置信度评分阈值生成第一临时分割掩码34。使用第二临时置信度评分阈值生成第二临时分割掩码35,该阈值降低了将置信度评分解释为肯定检测的阈值。使用已经被进一步降低的第N临时置信度评分来生成第N临时分割掩码36。使用与第N临时置信度评分相比已经进一步降低的第(N+1)临时置信度评分来生成第(N+1)临时分割掩码37。如图所示,一系列临时分割掩码33包括第二临时分割掩码35和第N临时分割掩码36之间的临时分割掩码。
[0055] 在该实施例中,在一系列临时分割掩码33中使用的临时置信度评分阈值遵循递减方案。因此,对于每个生成的临时分割掩码,置信度评分阈值被调整以降低用于将置信度评分解释为肯定检测的阈值。
[0056] 除了生成一系列临时分割掩码33之外,阈值化204还对这些掩码执行估计,以确定任何掩码是否满足对象掩码条件。对象掩码条件是分割掩码被视为表示对象的预定义条件。因此,通过估计任何临时分割掩码33是否满足对象掩码条件,由相干区域指示的目标的假定存在可以被验证或者丢弃。对象掩码条件定义了临时分割掩码33的一个或多个特征。特征的非限制性示例包括非片段的,意味着掩码不是由多个孤立的掩码片段组成的,以及平滑的掩码边缘。掩码边缘的平滑度可以由掩码边缘的曲率给出。对象掩码条件可以被定义为掩码边缘的最大允许曲率。或者,对象掩码条件可被定义为掩码边缘曲率的最大允许偏差或者差异。对象掩码条件可以是特定于对象类的,这意味着用于验证车辆的对象掩码条件可以与用于验证生物的对象掩码条件不同。
[0057] 可以在序列生成期间,或者当完整的序列已经生成时,估计临时分割掩码33的序列。另外,可以在个体级别或者组级别上估计一系列临时分割掩码。例如,在示出的实施例中,可以单独估计一系列临时分割掩码33中的每个掩码34、35、36、37,以确定它们中的任何一个是否具有平滑掩码边缘,该平滑掩码边缘由为卡车的对象类定义的对象掩码条件来定义。或者,可以估计掩码34、35、36、37,以确定掩码34、35、36、37是否由单独的片段组成,这些片段在整个系列33的一部分或者全部中合并成合并掩码。在图3c中提供了合并片段的示例,其中第一临时分割掩码34包括孤立的片段,并且稍后生成的第二临时分割掩码35包括与先前生成的掩码34相比更少的片段。在这个示例中,对象掩码条件可以包括在掩码之间的一系列临时分割掩码33中检测合并片段,即减少片段的数量,其中临时置信度阈值已经被调整以降低肯定检测的阈值。在又一个替代方案中,可以估计掩码34、35、36、36,以找到与对象掩码条件的最佳拟合。例如,与先前掩码和随后的第(N+1)掩码37相比较,可以发现第N掩码36具有对由平滑掩码边缘定义的掩码对象条件的最大最佳拟合。因此,该估计可以被描述为找到满足对象掩码条件的最优值。
[0058] 当相干区域32b已经相对于对象掩码条件进行估计时,设定相干区域32b的像素或者其中的像素或者宏块的子集的最终置信度评分阈值。如果临时分割掩码的估计成功,并且因此发现掩码满足或者符合对象掩码条件,则最终置信度评分阈值被设定为满足对象掩码条件的掩码的临时置信度评分阈值。在这种情况下,为满足对象掩码条件的临时分割掩码的像素设定最终置信度评分阈值。如果发现满足对象掩码条件的一个以上的临时分割掩码,则必须选择哪个临时分割掩码和相应的临时置信度评分阈值。该选择可以包括确定和选择最符合对象掩码条件的掩码,或者利用表示肯定检测的最低阈值的临时置信度评分阈值生成的掩码。
[0059] 然而,如果任何一个临时分割掩码都不满足对象掩码条件,则最终置信度评分阈值被设定为默认置信度评分阈值。默认置信度评分阈值可以是预定义的固定阈值,或者是与在先前图像中的相干区域的分割中所确定的阈值相同的阈值,该先前图像优选地是紧接在之前的图像。预定义的固定阈值可以与像素或者相干区域的周围区域的阈值相同。
[0060] 如所例示的,最终置信度评分阈值可以被临时存储以用于后续图像的分割。第一图像的最终置信度评分阈值可以被用作稍后获取的第二图像的分割中的初始临时置信度评分阈值。在另一个实施例中,在第二图像中与第一图像的相干区域相对应的图像区域中应用最终置信度评分,即使在该图像区域中没有确定相干区域。因此,即使对象在第二图像中不移动,也可以很好地分割在第一图像中运动并由相干区域识别的对象,并且因此不会引起相干区域的检测。
[0061] 在又一实施例中,当分割检测到第二相干区域的第二后续图像时,使用第一图像的第一相干区域的最终置信度评分阈值。在该实施例中,估计第一和第二相干区域是否由相同的对象引起。该估计可以包括分析相干区域的运动向量的相似性,分析相干区域之间的空间关系,或者通过利用单独的跟踪算法,例如多对象跟踪算法,该算法确定并跟踪图像中的各个对象。根据跟踪算法,通过确定相干区域中是否存在具有相同身份的对象,可以确定相干区域是由相同对象引起的。在确定是这种情况时,通过任何例示的或者其他估计方法,为第一图像的相干区域或者其中的像素的子集设定的最终置信度评分阈值可以被用作在为第二图像的相干区域生成第一临时分割掩码时使用的初始置信度评分阈值。该实施例的优点在于,通过生成已经被发现适用于所描述的对象的掩码来开始生成临时分割掩码,第二图像的相干区域的临时分割掩码可以更快地满足对象掩码条件。
[0062] 对于在图像31中确定的所有相干区域32a、32b,执行查找合适的最终置信度评分阈值的过程。过程还可以针对不同的对象类为单个相干区域32a、32b多次执行,以便为每个对象类确定合适的最终置信度评分阈值。为了生成图像31的最终分割掩码,为掩码合成205提供不同图像区域和不同对象类的最终置信度评分阈值。掩码合成205不仅针对相干区域,还针对整个图像执行掩码组合。对于相干区域之外的图像区域,可以通过使用置信度评分阈值解释张量来执行分割,该置信度评分阈值被设定为标准,或者基于例如在先前图像中所使用的阈值。掩码合成205根据用于生成最终分割结果的已知原理而起作用。不同的已知算法和条件可以被应用于基于接收到的最终阈值来选择图像区域最有可能描述的对象类。此外,设定不同对象类的分割掩码之间的空间边界也可以是掩码合成205的任务。因此,根据已知方法并基于最终置信度评分阈值和张量,最终分割结果被确定并提供给输出合成
206。输出合成206还接收来自视频压缩202的编码的图像数据,并组合来自相机10的图像处理的输出。编码的图像数据和最终分割掩码的输出格式遵循传统标准。例如,编码的图像数据可以以视频流的形式从相机10发送,并且最终的分割掩码可以作为元数据发送。
[0063] 图4示出了具有最终分割结果的合成图像41的示例,最终分割结果包括表示图像31的移动生物的第一分割掩码44和表示图像31的移动车辆的第二分割掩码42。第一和第二分割掩码44、42通过使用本文公开的方法来确定,即通过迭代地确定临时分割掩码以找到要使用的合适的置信度评分阈值。最终分割结果还包括分割掩码45、46,分割掩码45、46通过利用标准或者基本置信度评分阈值解释张量而通过分割来确定。
[0064] 图5提供了根据实施例的用于生成图像的最终分割结果的方法5的概览,其中方法5的每个步骤已经在上文讨论和例示。
[0065] 图像(即图像的图像数据)被处理501以确定相干区域。例如,可以在编码器过程中(在编码器处理器中)或者分割过程中(在分割处理器中)确定相干区域。图像还被处理502以确定表示一个或多个对象类的像素特定置信度评分的张量。步骤501和步骤502可以并行或者串行执行。步骤501和步骤502中的任何一个在另一个之前执行并不重要。当已经执行步骤501和步骤502时,即当阈值化所需的相干区域和张量可用于阈值化时,执行图像分割过程中的阈值化。如果步骤501和步骤502中的一个在另一个之前完成,则第一个完成步骤的结果可以被本地存储在相机的例如贮存器中,并且当第二个完成步骤的结果可用时由分割处理器检索。接下来,方法5包括为一个或多个相干区域中的每一个生成503一系列临时分割掩码的步骤。如前所述,在步骤501中确定的一个或多个相干区域可能已经被处理以滤除相关相干区域。在这种情况下,为一个或多个相关相干区域中的每一个执行生成503一系列临时分割掩码的步骤。
[0066] 根据所讨论的方法估计504一系列临时分割掩码。方法5还包括基于估计504的结果,为临时分割掩码的像素或者为相干区域设定505最终置信度评分阈值。在几个相干区域的情况下,为每个区域设定最终置信度评分阈值。另外,可以为不属于任何相干区域的剩余图像区域的像素设定一个或多个最终置信度评分阈值。其后,方法5包括基于一个或多个最终置信度评分生成506图像的最终分割结果。如所讨论,最终分割结果的生成可以包括用于估计不同对象类的分割掩码的已知方法,以选择最终分割结果应当包括哪些分割掩码。