本发明涉及图像处理技术领域,更具体地涉及一种实例分割方法及装置。
背景技术:
物体检测和图像分割是两种不同的计算机视觉基础任务。物体检测要求算法把各种物体从图像中识别并定位出来,图像分割要求算法把图像的每一个像素加上类别标注。将物体检测和图像分割两者结合起来称为实例分割,实例分割要求算法找到每一个待检测的物体并把物体所在的像素标注出来。
现有的物体分割方法(例如DeepMask、SharpMask、Instance FCN等)在对图片中的实例(指图片中的待分割对象,例如人、车等)进行分割时通常包括如下步骤:首先,对待处理图像的尺度(scale)进行调整以形成包括多张不同尺度图片的图片金字塔;然后,利用神经网络(例如DeepMask网络)的身体网络(body module)从每个调整后的图片中提取全特征张量(full feature map),从而得到多个尺度不同的特征张量;最后,利用固定尺度的滑动窗口(fixed-size sliding window)对该多个尺度不同的特征图进行操作得到对应数目的窗口特征张量,利用神经网络的头网络(head module)确定每个窗口特征张量的置信度并基于置信度完成分割操作。
现有的上述方法在解决实例分割时存在着两个问题:其一,在不依靠图片金字塔的情况下,无法解决多尺度问题,即,不能对同一输入图片中的不同尺度的物体同时进行分割而只能分割出图片中给定大小的物体;其二,由于待检测物体之间和背景对于待检测物体存在噪声的原因,在待分割物体十分拥挤的图片上分割效果表现不佳。
技术实现要素:
为了解决上述问题中的至少一个而提出了本发明。根据本发明一方面,提供了一种实例分割方法,所述实例分割方法包括:接收待处理图像;通过第一神经网络对所述待处理图像进行处理以生成第一特征张量;通过第二神经网络对所述第一特征张量进行处理以生成不同尺度的多个第二特征张量,其中每个所述第二特征张量表示相应尺度的所述待处理图像;以及通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割。
在本发明的一个实施例中,所述第二神经网络包括至少两个子网络,每个子网络用于生成一种预定尺度的所述第二特征张量。
在本发明的一个实施例中,所述子网络之间是残余连接并共享参数的,后一个子网络基于前一个子网络的输出生成另一种预定尺度的所述第二特征张量。
在本发明的一个实施例中,基于所述后一个子网络生成的第二特征张量的尺度小于基于所述前一个子网络生成的第二特征张量的尺度。
在本发明的一个实施例中,所述子网络包括卷积层和池化层。
在本发明的一个实施例中,所述通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度;以及基于所述置信度和所述窗口特征张量生成所述待处理图像的实例分割。
在本发明的一个实施例中,所述通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度,选择存在物体的置信度大于预定阈值的窗口特征张量作为有效窗口特征张量;基于每个所述有效窗口特征张量生成相应的注意力矩阵,其中所述注意力矩阵包括相应的所述有效窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述有效窗口特征张量以生成第三特征张量;以及基于所述第三特征张量生成所述待处理图像的实例分割。
在本发明的一个实施例中,所述通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于每个所述窗口特征张量生成相应的注意力矩阵和所述滑动窗口中存在物体的置信度,其中所述注意力矩阵包括相应的所述窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述窗口特征张量以生成第三特征张量;以及基于所述第三特征张量以及所述滑动窗口中存在物体的置信度生成所述待处理图像的实例分割。
在本发明的一个实施例中,所述注意力矩阵通过由全连接层组成的注意力生成器而生成。
在本发明的一个实施例中,所述第三神经网络中还包括上采样层,所述上采样层用于提高所生成的实例分割结果的分辨率。
根据本发明另一方面,提供了一种实例分割装置,所述实例分割装置包括:接收模块,用于接收待处理图像;第一神经网络模块,用于对所述待处理图像进行处理以生成第一特征张量;第二神经网络模块,用于对所述第一特征张量进行处理以生成不同尺度的多个第二特征张量,其中每个所述第二特征张量表示相应尺度的所述待处理图像;以及第三神经网络模块,用于对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割。
在本发明的一个实施例中,所述第二神经网络模块包括至少两个子网络,每个子网络用于生成一种预定尺度的所述第二特征张量。
在本发明的一个实施例中,所述子网络之间是残余连接并共享参数的,后一个子网络基于前一个子网络的输出生成另一种预定尺度的所述第二特征张量。
在本发明的一个实施例中,基于所述后一个子网络生成的第二特征张量的尺度小于基于所述前一个子网络生成的第二特征张量的尺度。
在本发明的一个实施例中,所述子网络包括卷积层和池化层。
在本发明的一个实施例中,所述第三神经网络模块进一步用于:通过滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度;以及基于所述置信度和所述窗口特征张量生成所述待处理图像的实例分割。
在本发明的一个实施例中,所述第三神经网络模块进一步用于:通过滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度,选择存在物体的置信度大于预定阈值的窗口特征张量作为有效窗口特征张量;基于每个所述有效窗口特征张量生成相应的注意力矩阵,其中所述注意力矩阵包括相应的所述有效窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述有效窗口特征张量以生成第三特征张量;以及基于所述第三特征张量生成所述待处理图像的实例分割。
在本发明的一个实施例中,所述第三神经网络模块进一步用于:通过滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于每个所述窗口特征张量生成相应的注意力矩阵和所述滑动窗口中存在物体的置信度,其中所述注意力矩阵包括相应的所述窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述窗口特征张量以生成第三特征张量;以及基于所述第三特征张量以及所述滑动窗口中存在物体的置信度生成所述待处理图像的实例分割。
在本发明的一个实施例中,所述第三神经网络模块包括由全连接层组成的注意力生成器,所述注意力矩阵通过所述注意力生成器而生成。
在本发明的一个实施例中,所述第三神经网络模块包括上采样层,所述上采样层用于提高所生成的实例分割结果的分辨率。
根据本发明又一方面,提供了一种实例分割装置,所述实例分割装置包括处理器、存储器以及存储于所述存储器中的计算机程序,其中,所述计算机程序在被所述处理器运行时执行如下步骤:接收待处理图像;通过第一神经网络对所述待处理图像进行处理以生成第一特征张量;通过第二神经网络对所述第一特征张量进行处理以生成不同尺度的多个第二特征张量,其中每个所述第二特征张量表示相应尺度的所述待处理图像;以及通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割。
根据本发明实施例的实例分割方法及装置基于包括新的网络组件的新的网络架构同时进行物体检测与图像分割,使得不需要使用图片金字塔就能够一次生成所有的物体分割,解决了多尺度问题,同时提高了算法的速度。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1示出用于实现根据本发明实施例的实例分割方法和装置的示例电子设备的示意性框图;
图2示出根据本发明实施例的实例分割方法的流程图;
图3示出根据本发明实施例的实例分割方法的示意图;
图4示出根据本发明实施例的第二神经网络所包括的子网络及其操作的示意图;
图5示出根据本发明另一实施例的实例分割方法的流程图;
图6示出根据本发明实施例的第三神经网络的部分操作的示意图;
图7示出根据本发明又一实施例的实例分割方法的流程图;
图8示出根据本发明实施例的实例分割装置的示意性框图;以及
图9示出根据本发明实施例的实例分割系统的示意性框图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
首先,参照图1来描述用于实现本发明实施例的实例分割方法和装置的示例电子设备100。
如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108以及图像传感器110,这些组件通过总线系统112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的客户端功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述图像传感器110可以拍摄用户期望的图像(例如照片、视频等),并且将所拍摄的图像存储在所述存储装置104中以供其它组件使用。
示例性地,用于实现根据本发明实施例的实例分割方法和装置的示例电子设备可以被实现为诸如智能手机、平板电脑等。
下面,将参考图2所示的根据本发明实施例的实例分割方法的流程图以及图3所示的根据本发明实施例的实例分割方法的示意图描述根据本发明实施例的实例分割方法200。
在步骤S210,接收待处理图像。
在一个实施例中,所接收的待处理图像(如图3的示意图中所示的待处理图像)为用于进行物体检测和图像分割的图像。在一个示例中,所接收的待处理图像可以为实时采集的图像。在其他示例中,所接收的待处理图像也可以为来自任何源的图像。此处,所接收的待处理图像可以为视频数据,也可以为图片数据。
在步骤S220,通过第一神经网络对所述待处理图像进行处理以生成第一特征张量。
在一个实施例中,第一神经网络可以为实例分割网络架构中的身体网络(如图3的示意图中所示的身体网络),例如Deepmask的网络架构中的身体网络,其例如可以包括经典图像分类深度神经网络的卷积部分。身体网络的结构为本领域普通技术人员所已知的,因此为了简洁,此处不再赘述。基于在步骤S210所接收的待处理图像,通过第一神经网络(身体网络)生成第一特征张量(feature map),该第一特征张量为第一神经网络对待处理图像进行处理后所输出的特征张量,将其称为第一特征张量仅是为了与后续将描述的第二特征张量、第三特征张量等相区别,并不起到任何限定作用。类似地,将第一神经网络(身体网络)称为第一神经网络也仅为了与后续将描述的第二神经网络、第三神经网络等相区别,并不起到任何限定作用。
在步骤S230,通过第二神经网络对所述第一特征张量进行处理以生成不同尺度的多个第二特征张量,其中每个所述第二特征张量表示相应尺度的所述待处理图像。
在一个实施例中,第二神经网络为本发明提出的新的网络组件,为了与前面描述的身体网络与后面将描述的头部网络相对应,可以将第二神经网络称为脖子网络(如图3的示意图中所示的脖子网络)。通过该脖子网络,可在不需要图片金字塔的情况下将身体网络所生成的特征张量生成不同尺度的多个(指至少两个)特征张量,为了与身体网络所生成的第一特征张量相区别(而非起到任何限定作用),将通过第二神经网络(脖子网络)所生成的不同尺度的多个特征张量称为多个第二特征张量。
此处,每个第二特征张量表示一种相应尺度的待处理图像。例如,每个第二特征张量是为待处理图像的大小的N倍的特征张量。在一个示例中,N为0到1之间的实数。在该示例中,可以将第二神经网络(脖子网络)所生成的第二特征张量看作是以任何尺度缩放的待处理图像。在一个示例中,N也可以等于1,即第二特征张量也包括未经任何尺度变换的待处理图像本身,或者说在生成的多个第二特征张量中存在一个与第一特征张量完全相同的第二特征张量。基于第二神经网络所生成的多尺度特征张量,可在不需要图片金字塔的情况下实现多尺度的物体分割,即对同一图像的不同尺度的物体实例进行分割。
在一个示例中,第二神经网络(脖子网络)可以包括至少两个子网络,每个子网络可以生成一种尺度的待处理图像。例如,第一子网络可以生成待处理图像的二分之一大小的特征张量,第二子网络可以生成第一特征张量的待处理图像大小的特征张量,第三子网络可以生成待处理图像的八分之一大小的特征张量等等。在其他示例中,第二神经网络(脖子网络)所包括的子网络可以生成任何期望尺度的待处理图像。虽然在图3中将第二神经网络(脖子网络)示出为包括3个子网络,但其仅是示例性的,第二神经网络(脖子网络)可以根据需要包括任意数目的子网络。
在一个示例中,第二神经网络(脖子网络)所包括的子网络之间可以是残余连接并共享参数的,后一个子网络基于前一个子网络的输出生成另一种尺度的所述第一特征张量。示例性地,基于后一个子网络生成的第二特征张量的尺度小于基于前一个子网络生成的第二特征张量的尺度。例如,在上一个示例中,第一子网络可以生成待处理图像的二分之一大小的特征张量,第二子网络可以基于第一子网络的输出生成待处理图像的四分之一大小的特征张量,第三子网络可以基于第二子网络的输出生成待处理图像的八分之一大小的特征张量等。这样使得每个子网络可通过相同或相似的结构实现相同或相似的操作,结构简单,易于实现。
图4示出了根据本发明实施例的第二神经网络(脖子网络)所包括的一个子网络的示例性结构示意图。如图4所示,根据本发明实施例的第二神经网络(脖子网络)所包括的一个子网络可以包括卷积层和池化层,第一神经网络(身体网络)所生成的第一特征张量输入到3×3卷积层中和池化层1中,3×3卷积层的输出再输入到1×1卷积层中,1×1卷积层的输出输入到池化层2中,池化层1和池化层2的输出再经组合生成第二特征张量。虽然在图4中将卷积层示出为3×3卷积层和1×1卷积层,但其仅是示例性的,还可以采用其他尺度的卷积层。此外,图4所示出的子网络仅是一个示例,第二神经网络(脖子网络)所包括的子网络也可以是其他任何合适的可以生成不同尺度特征张量的结构。
现在回到图2继续描述根据本发明实施例的实例分割方法200的步骤。
在步骤S240,通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割。
在一个实施例中,第三神经网络可以为实例分割网络架构中的头部网络(如图3的示意图中所示的),例如Deepmask的网络架构中的头部网络,其例如可以包括滑动窗口和全连接层。头部网络的结构为本领域普通技术人员所已知的,因此为了简洁,此处不再赘述。此处,将第三神经网络(头部网络)称为第三神经网络也仅为了与前面描述的第一神经网络(身体网络)、第二神经网络(脖子网络)等相区别,并不起到任何限定作用。
基于在步骤S230所生成的第二特征张量,通过第三神经网络(头部网络)生成待处理图像的实例分割。在一个示例中,通过第三神经网络对多个第二特征张量进行处理以实现对待处理图像的实例分割的步骤可以包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度;以及基于所述置信度和所述窗口特征张量生成所述待处理图像的实例分割。在该示例中,通过第三神经网络(头部网络)的滑动窗口(如图3的示意图中所示的)从第二特征张量中提取窗口特征张量;基于窗口特征张量生成滑动窗口中存在物体的置信度;当所述置信度大于预定阈值,即确定滑动窗口中存在物体时,生成物体的实例分割。
在另一个示例中,通过第三神经网络对多个第二特征张量进行处理以实现对待处理图像的实例分割的步骤可以包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于每个所述窗口特征张量生成相应的注意力矩阵和所述滑动窗口中存在物体的置信度,其中所述注意力矩阵包括相应的所述窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述窗口特征张量以生成第三特征张量;以及基于所述第三特征张量以及所述滑动窗口中存在物体的置信度生成所述待处理图像的实例分割。该示例将在下面结合图5和图6进行描述。
在又一个示例中,通过第三神经网络对多个第二特征张量进行处理以实现对待处理图像的实例分割的步骤可以包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度,选择存在物体的置信度大于预定阈值的窗口特征张量作为有效窗口特征张量;基于每个所述有效窗口特征张量生成相应的注意力矩阵,其中所述注意力矩阵包括相应的所述有效窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述有效窗口特征张量以生成第三特征张量;以及基于所述第三特征张量生成所述待处理图像的实例分割。该示例将在下面结合图7进行描述。
在一个示例中,第三神经网络(头部网络)还可以包括上采样层(如图3的示意图中所示的),所述上采样层可用于提高所生成的实例分割结果的分辨率。
基于上面的描述,根据本发明实施例的实例分割方法200基于包括新的网络组件(脖子网络)的新的网络架构(“身体-脖子-头部”的网络架构)同时进行物体检测与图像分割,使得不需要使用图片金字塔就能够一次生成所有的物体分割,解决了多尺度问题,同时提高了算法的速度。
示例性地,根据本发明实施例的实例分割方法可以在具有存储器和处理器的设备、装置或者系统中实现。
根据本发明实施例的实例分割方法可以部署在个人终端处,诸如智能电话、平板电脑、个人计算机等。替代地,根据本发明实施例的实例分割方法还可以部署在服务器端(或云端)。替代地,根据本发明实施例的实例分割方法还可以分布地部署在服务器端(或云端)和个人终端处。
在其他实施例中,根据本发明的实例分割方法还可包括其他的操作,下面结合图5进行描述。
图5示出了根据本发明另一实施例的实例分割方法500的示意性流程图。如图5所示,实例分割方法500可以包括如下步骤:
在步骤S510,接收待处理图像。
在步骤S520,通过第一神经网络对所述待处理图像进行处理以生成第一特征张量。
在步骤S530,通过第二神经网络对所述第一特征张量进行处理以生成不同尺度的多个第二特征张量,其中每个所述第二特征张量表示相应尺度的所述待处理图像。
此处,步骤S510、S520和S530分别与图2中所描述的实例分割方法200的步骤S210、S220和S230类似,为了简洁,此处不再赘述。
下面将描述的步骤S540到S570可以看作是步骤S240在图5所示实施例中的具体细化,与图2所示的实施例相比,图5所示的实施例中增加了注意力机制,下面结合图5和图6详细描述这些步骤。
在步骤S540,通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量。
在步骤S550,基于每个所述窗口特征张量生成相应的注意力矩阵和所述滑动窗口中存在物体的置信度,其中所述注意力矩阵包括相应的所述窗口特征张量上的每一点位于待检测物体所在区域内的置信度值。
在步骤S560,将每个所述注意力矩阵广播乘相应的所述窗口特征张量以生成第三特征张量。
在步骤S570,基于所述第三特征张量以及所述滑动窗口中存在物体的置信度生成所述待处理图像的实例分割。
在图5所示的实施例中,可以首先通过第三神经网络(头部网络)的滑动窗口从多个第二特征张量中的每个提取窗口特征张量。然后,对于每个窗口特征张量,生成滑动窗口中存在物体的置信度(如图6所示的,可通过由全连接层构成的置信度解码器来生成置信度分数)。同时,对于每个窗口特征张量,可以将其输入到一个由全连接层组成的注意力生成器中(如图6所示的),由该注意力生成器生成注意力矩阵(如图6所示的)。注意力矩阵可以包括窗口特征张量上的每一点位于待检测物体所在区域内的置信度值。用这个注意力矩阵对滑动窗口特征张量进行广播乘(broadcast product),可得到过滤噪声后的特征张量(即第三特征张量)。该第三特征张量为将第一神经网络(身体网络)所生成的特征张量(第一特征张量)经由第二神经网络(脖子网络)变为多尺度(第二特征张量)后、再经由增加注意力机制的第三神经网络(头部网络)生成的新的特征张量,为了与前述第一特征张量、第二特征张量相区别,称其为第三特征张量,“第三”同样不起到任何限定作用。
如上所述,第三特征张量为去掉了背景以及待检测物体以外的物体产生的噪声的特征张量,因此有助于第三神经网络生成更准确的实例分割。基于该第三特征张量以及滑动窗口中存在物体的置信度可生成待处理图像的实例分割。如图6中所示的,通过由全连接层构成的掩码解码器生成最终的掩码分数张量(mask score map),与最右侧的相对应的图片小块相比,可知最终的实例分割非常精确。
基于上面的描述,根据本发明实施例的实例分割方法500基于包括新的网络组件(脖子网络)的新的网络架构(“身体-脖子-头部”的网络架构)同时进行物体检测与图像分割,使得不需要使用图片金字塔就能够一次生成所有的物体分割,解决了多尺度问题,同时提高了算法的速度。此外,在本发明的一个具体实现方式中,实例分割方法500通过增加注意力机制可以消除物体周围的背景以及物体与物体之间的噪声,从而在物体十分拥挤的图片上也依然可以实现精确的实例分割。
此外,也可以将S550到S570的步骤稍作改动,形成另一种实施方式,下面结合图7描述该实施方式。
图7示出了根据本发明又一实施例的实例分割方法700的示意性流程图。如图7所示,实例分割方法700可以包括如下步骤:
在步骤S710,接收待处理图像。
在步骤S720,通过第一神经网络对所述待处理图像进行处理以生成第一特征张量。
在步骤S730,通过第二神经网络对所述第一特征张量进行处理以生成不同尺度的多个第二特征张量,其中每个所述第二特征张量表示相应尺度的所述待处理图像。
此处,步骤S710、S720和S730分别与图2中所描述的实例分割方法200的步骤S210(或S510)、S220(或S520)和S230(或S530)类似,为了简洁,此处不再赘述。
下面将描述的步骤S740到S780可以看做是步骤S240在图7所示实施例中的具体细化,与图2所示的实施例相比,图7所示的实施例中增加了注意力机制,下面结合图7详细描述这些步骤。
在步骤S740,通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量。
在步骤S750,基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度,选择存在物体的置信度大于预定阈值的窗口特征张量作为有效窗口特征张量。
在步骤S760,基于每个所述有效窗口特征张量生成相应的注意力矩阵,其中所述注意力矩阵包括相应的所述有效窗口特征张量上的每一点位于待检测物体所在区域内的置信度值。
在步骤S770,将每个所述注意力矩阵广播乘相应的所述有效窗口特征张量以生成第三特征张量。
在步骤S780,基于所述第三特征张量生成所述待处理图像的实例分割。
在图7所示的实施例中,基于从多个第二特征张量中提取的相应的窗口特征张量,可以首先确定这些窗口特征张量中的有效窗口特征张量。示例性地,有效窗口特征张量可以定义为窗口特征张量中存在物体的置信度大于预定阈值的窗口特征张量。在一个示例中,可以基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度,并且选择置信度大于预定阈值的窗口特征张量作为有效窗口特征张量以用于生成注意力矩阵。然后,将注意力矩阵与有效窗口特征张量进行广播乘来生成第三特征张量,最后基于第三特征张量生成待处理图像的示例分割。在该实施例中,先确定滑动窗口中是否存在物体,可去除不存在物体的情况,减小运算量,提高运算速度。
基于上面的描述,根据本发明实施例的实例分割方法700基于包括新的网络组件(脖子网络)的新的网络架构(“身体-脖子-头部”的网络架构)同时进行物体检测与图像分割,使得不需要使用图片金字塔就能够一次生成所有的物体分割,解决了多尺度问题,同时提高了算法的速度。此外,根据本发明实施例的实例分割方法700通过增加注意力机制可以消除背景以及物体与物体之间的噪声,从而在物体十分拥挤的图片上也依然可以实现精确的实例分割。此外,根据本发明实施例的实例分割方法700先确定有效窗口张量以用于注意力矩阵的计算,可减小运算量,提高运算速度。
以上示例性地描述了根据本发明实施例的实例分割方法所包括的示例性步骤流程。值得注意的是,根据本发明实施例的实例分割方法可以不包括上述的步骤全部而得以实现。例如,根据本发明实施例的实例分割方法500(或700)可以不包括步骤S530(或S730),且后续步骤S540(或S740)中的第二特征张量由第一特征张量代替。在这样的实施例中的实例分割方法可仅解决背景以及物体与物体之间的噪声问题,忽略多尺度问题,即注意力机制可用在没有脖子网络的“身体-头部”的网络架构中。
下面结合图8描述本发明另一方面提供的实例分割装置。图8示出了根据本发明实施例的实例分割装置800的示意性框图。
如图8所示,根据本发明实施例的实例分割装置800包括接收模块810、第一神经网络模块820、第二神经网络模块830以及第三神经网络模块840。所述各个模块可分别执行上文中结合图2、图5和图7描述的实例分割方法的各个步骤/功能。以下仅对实例分割装置800的各单元的主要功能进行描述,而省略以上已经描述过的细节内容。
接收模块810用于接收待处理图像。第一神经网络模块820用于对所述待处理图像进行处理以生成第一特征张量。第二神经网络模块830用于对所述第一特征张量进行处理以生成不同尺度的多个第二特征张量,其中每个所述第二特征张量表示相应尺度的所述待处理图像。第三神经网络模块840用于对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割。接收模块810、第一神经网络模块820、第二神经网络模块830以及第三神经网络模块840均可以由图1所示的电子设备中的处理器102运行存储装置104中存储的程序指令来实现。
在一个实施例中,第一神经网络模块820的第一神经网络可以为实例分割网络架构中的身体网络,例如Deepmask的网络架构中的身体网络,其例如可以包括经典图像分类深度神经网络的卷积部分。
在一个实施例中,第二神经网络模块830的第二神经网络为本文提出的新的网络组件,为了与前面描述的身体网络与后面将描述的头部网络相对应,可以将第二神经网络称为脖子网络。通过该脖子网络,可在不需要图片金字塔的情况下将身体网络所生成的特征张量生成不同尺度的特征张量。
在一个示例中,第二神经网络模块830的第二神经网络(脖子网络)可以包括至少两个子网络,每个子网络可以生成一种尺度的待处理图像。例如,第一子网络可以生成待处理图像的二分之一大小的特征张量,第二子网络可以生成待处理图像的四分之一大小的特征张量,第三子网络可以生成待处理图像的八分之一大小的特征张量等等。在其他示例中,第二神经网络模块830的第二神经网络(脖子网络)所包括的子网络可以生成任何期望尺度的待处理图像。
在一个示例中,第二神经网络模块830的第二神经网络(脖子网络)所包括的子网络之间可以是残余连接并共享参数的,后一个子网络基于前一个子网络的输出生成另一种尺度的所述第一特征张量。示例性地,基于后一个子网络生成的第二特征张量的尺度小于基于前一个子网络生成的第二特征张量的尺度。例如,在上一个示例中,第一子网络可以生成待处理图像的二分之一大小的特征张量,第二子网络可以基于第一子网络的输出生成待处理图像的四分之一大小的特征张量,第三子网络可以基于第二子网络的输出生成待处理图像的八分之一大小的特征张量等。这样使得每个子网络可通过相同或相似的结构实现相同或相似的操作,结构简单,易于实现。第二神经网络(脖子网络)所包括的子网络可以包括卷积层和池化层,如图4所示的。
在一个实施例中,第三神经网络模块840的第三神经网络可以为实例分割网络架构中的头部网络,例如Deepmask的网络架构中的头部网络,其例如可以包括滑动窗口和全连接层。
在一个实施例中,第三神经网络模块840可进一步用于:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度;以及基于所述置信度和所述窗口特征张量生成所述待处理图像的实例分割。
在另一个实施例中,第三神经网络模块840还可以用于:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于每个所述窗口特征张量生成相应的注意力矩阵和所述滑动窗口中存在物体的置信度,其中所述注意力矩阵包括相应的所述窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述窗口特征张量以生成第三特征张量;以及基于所述第三特征张量以及所述滑动窗口中存在物体的置信度生成所述待处理图像的实例分割。在该实施例中,第三神经网络模块840的操作可以参考上文中结合图5和图6所描述的,为了简洁,此处不再赘述。在该实施例中,第三神经网络模块可包括由全连接层组成的注意力生成器,所述注意力矩阵通过所述注意力生成器而生成。
在又一个实施例中,第三神经网络模块840还可以用于:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度,选择存在物体的置信度大于预定阈值的窗口特征张量作为有效窗口特征张量;基于每个所述有效窗口特征张量生成相应的注意力矩阵,其中所述注意力矩阵包括相应的所述有效窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述有效窗口特征张量以生成第三特征张量;以及基于所述第三特征张量生成所述待处理图像的实例分割。在该实施例中,第三神经网络模块840的操作可以参考上文中结合图7所描述的,为了简洁,此处不再赘述。在该实施例中,第三神经网络模块可包括由全连接层组成的注意力生成器,所述注意力矩阵通过所述注意力生成器而生成。
在一个实施例中,第三神经网络模块840的第三神经网络(头部网络)还可以包括上采样层,所述上采样层可用于提高所生成的实例分割结果的分辨率。
基于上面的描述,根据本发明实施例的实例分割装置基于包括新的网络组件(脖子网络)的新的网络架构(“身体-脖子-头部”的网络架构)同时进行物体检测与图像分割,使得不需要使用图片金字塔就能够一次生成所有的物体分割,解决了多尺度问题,同时提高了算法的速度。此外,根据本发明实施例的实例分割装置通过增加注意力机制可以消除背景以及物体与物体之间的噪声,从而在物体十分拥挤的图片上也依然可以实现精确的实例分割。
图9示出了根据本发明实施例的实例分割系统900的示意性框图。实例分割系统900包括存储装置910以及处理器920。
其中,存储装置910存储用于实现根据本发明实施例的实例分割方法中的相应步骤的程序代码。处理器920用于运行存储装置910中存储的程序代码,以执行根据本发明实施例的实例分割方法的相应步骤,并且用于实现根据本发明实施例的实例分割装置中的相应模块。此外,实例分割系统900还可以包括图像采集装置(未在图8中示出),其可以用于采集待处理图像。当然,图像采集装置不是必需的,可直接接收来自其他源的待处理图像。
在一个实施例中,在所述程序代码被处理器920运行时使得实例分割系统900执行以下步骤:接收待处理图像;通过第一神经网络对所述待处理图像进行处理以生成第一特征张量;通过第二神经网络对所述第一特征张量进行处理以生成不同尺度的多个第二特征张量,其中每个所述第二特征张量表示相应尺度的所述待处理图像;以及通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割。
在一个实施例中,所述第二神经网络包括至少两个子网络,每个子网络用于生成一种预定尺度的所述第二特征张量。
在一个实施例中,所述子网络之间是残余连接并共享参数的,后一个子网络基于前一个子网络的输出生成另一种预定尺度的所述第二特征张量。
在一个实施例中,基于所述后一个子网络生成的第二特征张量的尺度小于基于所述前一个子网络生成的第二特征张量的尺度。
在一个实施例中,所述子网络包括卷积层和池化层。
在一个实施例中,在所述程序代码被处理器920运行时使得实例分割系统900执行的所述通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割的步骤包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度;以及基于所述置信度和所述窗口特征张量生成所述待处理图像的实例分割。
在一个实施例中,在所述程序代码被处理器920运行时使得实例分割系统900执行的所述通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割的步骤包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度,选择存在物体的置信度大于预定阈值的窗口特征张量作为有效窗口特征张量;基于每个所述有效窗口特征张量生成相应的注意力矩阵,其中所述注意力矩阵包括相应的所述有效窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述有效窗口特征张量以生成第三特征张量;以及基于所述第三特征张量生成所述待处理图像的实例分割。
在一个实施例中,在所述程序代码被处理器920运行时使得实例分割系统900执行的所述通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割的步骤包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于每个所述窗口特征张量生成相应的注意力矩阵和所述滑动窗口中存在物体的置信度,其中所述注意力矩阵包括相应的所述窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述窗口特征张量以生成第三特征张量;以及基于所述第三特征张量以及所述滑动窗口中存在物体的置信度生成所述待处理图像的实例分割。
在一个实施例中,所述注意力矩阵通过由全连接层组成的注意力生成器而生成。
在一个实施例中,所述第三神经网络中还包括上采样层,所述上采样层用于提高所生成的实例分割结果的分辨率。
此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的实例分割方法的相应步骤,并且用于实现根据本发明实施例的实例分割装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合,例如一个计算机可读存储介质包含接收待处理图像的计算机可读的程序代码,另一个计算机可读存储介质包含通过第一神经网络生成第一特征张量的计算机可读的程序代码,再一个计算机可读存储介质包含通过第二神经网络生成第二特征张量的计算机可读的程序代码,又一个计算机可读存储介质包含通过第三神经网络生成待处理图像的实例分割的计算机可读的程序代码。
在一个实施例中,所述计算机程序指令在被计算机运行时可以实现根据本发明实施例的实例分割装置的各个功能模块,并且/或者可以执行根据本发明实施例的实例分割方法。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行以下步骤:接收待处理图像;通过第一神经网络对所述待处理图像进行处理以生成第一特征张量;通过第二神经网络对所述第一特征张量进行处理以生成不同尺度的多个第二特征张量,其中每个所述第二特征张量表示相应尺度的所述待处理图像;以及通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割。
在一个实施例中,所述第二神经网络包括至少两个子网络,每个子网络用于生成一种预定尺度的所述第二特征张量。
在一个实施例中,所述子网络之间是残余连接并共享参数的,后一个子网络基于前一个子网络的输出生成另一种预定尺度的所述第二特征张量。
在一个实施例中,基于所述后一个子网络生成的第二特征张量的尺度小于基于所述前一个子网络生成的第二特征张量的尺度。
在一个实施例中,所述子网络包括卷积层和池化层。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割的步骤包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度;以及基于所述置信度和所述窗口特征张量生成所述待处理图像的实例分割。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割的步骤包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于所述窗口特征张量生成所述滑动窗口中存在物体的置信度,选择存在物体的置信度大于预定阈值的窗口特征张量作为有效窗口特征张量;基于每个所述有效窗口特征张量生成相应的注意力矩阵,其中所述注意力矩阵包括相应的所述有效窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述有效窗口特征张量以生成第三特征张量;以及基于所述第三特征张量生成所述待处理图像的实例分割。
在一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述通过第三神经网络对所述多个第二特征张量进行处理以实现对所述待处理图像的实例分割的步骤包括:通过所述第三神经网络的滑动窗口分别从所述多个第二特征张量中提取相应的窗口特征张量;基于每个所述窗口特征张量生成相应的注意力矩阵和所述滑动窗口中存在物体的置信度,其中所述注意力矩阵包括相应的所述窗口特征张量上的每一点位于待检测物体所在区域内的置信度值;将每个所述注意力矩阵广播乘相应的所述窗口特征张量以生成第三特征张量;以及基于所述第三特征张量以及所述滑动窗口中存在物体的置信度生成所述待处理图像的实例分割。
在一个实施例中,所述注意力矩阵通过由全连接层组成的注意力生成器而生成。
在一个实施例中,所述第三神经网络中还包括上采样层,所述上采样层用于提高所生成的实例分割结果的分辨率。
根据本发明实施例的实例分割装置中的各模块可以通过根据本发明实施例的实例分割的电子设备的处理器运行在存储器中存储的计算机程序指令来实现,或者可以在根据本发明实施例的计算机程序产品的计算机可读存储介质中存储的计算机指令被计算机运行时实现。
根据本发明实施例的实例分割方法、装置、系统以及存储介质基于包括新的网络组件(脖子网络)的新的网络架构(“身体-脖子-头部”的网络架构)同时进行物体检测与图像分割,使得不需要使用图片金字塔就能够一次生成所有的物体分割,解决了多尺度问题,同时提高了算法的速度。此外,根据本发明实施例的实例分割方法、装置、系统以及存储介质通过增加注意力机制可以消除背景以及物体与物体之间的噪声,从而在物体十分拥挤的图片上也依然可以实现精确的实例分割。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的物品分析设备中的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。