发明内容
本申请实施例提供了一种图像处理方法、电子设备及存储介质。
本申请实施例第一方面提供一种图像处理方法,包括:
获取N组实例分割输出数据,其中,所述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且所述N组实例分割输出数据具有不同的数据结构,所述N为大于1的整数;
基于所述N组实例分割输出数据,得到所述图像的集成语义数据和集成中心区域数据,其中,所述集成语义数据指示所述图像中位于实例区域的像素点,所述集成中心区域数据指示所述图像中位于实例中心区域的像素点;
基于所述图像的集成语义数据和集成中心区域数据,获得所述图像的实例分割结果。
在一种可选的实施方式中,所述基于所述N组实例分割输出数据,得到所述图像的集成语义数据和集成中心区域数据,包括:
基于所述N个实例分割模型中每个实例分割模型的实例分割输出数据,得到所述每个实例分割模型的语义数据和中心区域数据;
基于所述N个实例分割模型中每个实例分割模型的语义数据和中心区域数据,得到所述图像的集成语义数据和集成中心区域数据。
在一种可选的实施方式中,所述基于所述N个实例分割模型中每个实例分割模型的实例分割输出数据,得到所述每个实例分割模型的语义数据和中心区域数据,包括:
基于所述实例分割模型的实例分割输出数据,确定在所述实例分割模型中所述图像的多个像素点中每个像素点对应的实例标识信息;
基于所述实例分割模型中所述多个像素点中每个像素点对应的实例标识信息,得到所述每个像素点在所述实例分割模型中的语义预测值,其中,所述实例分割模型的语义数据包括所述图像的多个像素点中每个像素点的语义预测值。
在一种可选的实施方式中,所述基于所述N个实例分割模型中每个实例分割模型的实例分割输出数据,得到所述每个实例分割模型的语义数据和中心区域数据,还包括:
基于所述实例分割模型的实例分割输出数据,确定在所述实例分割模型中,所述图像中位于实例区域的至少两个像素点;
基于所述实例分割模型中位于实例区域的至少两个像素点的位置信息,确定所述实例分割模型的实例中心位置;
基于所述实例分割模型的实例中心位置和所述至少两个像素点的位置信息,确定所述实例分割模型的实例中心区域。
在一种可选的实施方式中,在基于所述实例分割模型的实例分割输出数据,确定在所述实例分割模型中,所述图像中位于实例区域的至少两个像素点之前,还包括:
对所述实例分割模型的实例分割输出数据进行腐蚀处理,得到实例分割模型的腐蚀数据;
所述基于所述实例分割模型的实例分割输出数据,确定在所述实例分割模型中,所述图像中位于实例区域的至少两个像素点,包括:
基于所述实例分割模型的腐蚀数据,确定在所述实例分割模型中,所述图像中位于实例区域的至少两个像素点。
在一种可选的实施方式中,所述基于所述实例分割模型中位于实例区域的至少两个像素点的位置信息,确定所述实例分割模型的实例中心位置,包括:
将所述位于实例区域的至少两个像素点的位置的平均值,作为所述实例分割模型的实例中心位置。
在一种可选的实施方式中,所述基于所述实例分割模型的实例中心位置和所述至少两个像素点的位置信息,确定所述实例分割模型的实例中心区域,包括:
基于所述实例分割模型的实例中心位置和所述至少两个像素点的位置信息,确定所述至少两个像素点与所述实例中心位置的最大距离;
基于所述最大距离,确定第一阈值;
将所述至少两个像素点中与所述实例中心位置之间的距离小于或等于所述第一阈值的像素点确定为实例中心区域的像素点。
在一种可选的实施方式中,所述基于所述N个实例分割模型中每个实例分割模型的语义数据和中心区域数据,得到所述图像的集成语义数据和集成中心区域数据,包括:
基于所述N个实例分割模型中每个实例分割模型的语义数据,确定所述图像的多个像素点中每个像素点的语义投票值;
对所述多个像素点中每个像素点的语义投票值进行二值化处理,得到所述图像中每个像素点的集成语义值,其中,所述图像的集成语义数据包括所述多个像素点中每个像素点的集成语义值。
在一种可选的实施方式中,所述对所述多个像素点中每个像素点的语义投票值进行二值化处理,得到所述图像中每个像素点的集成语义值,包括:
基于所述多个实例分割模型的个数N,确定第二阈值;
基于所述第二阈值,对所述多个像素点中每个像素点的语义投票值进行二值化处理,得到所述图像中每个像素点的集成语义值。
在一种可选的实施方式中,所述第二阈值为N/2的向上取整结果。
在一种可选的实施方式中,所述基于所述图像的集成语义数据和集成中心区域数据,获得所述图像的实例分割结果,包括:
基于所述图像的集成中心区域数据,得到所述图像的至少一个实例中心区域;
基于所述至少一个实例中心区域和所述图像的集成语义数据,确定所述图像的多个像素点中每个像素点所属的实例。
在一种可选的实施方式中,所述基于所述至少一个实例中心区域和所述图像的集成语义数据,确定所述图像的多个像素点中每个像素点所属的实例,包括:
基于所述图像的多个像素点中每个像素点的集成语义值和所述至少一个实例中心区域,进行随机游走,得到所述每个像素点所属的实例。
本申请实施例第二方面提供一种电子设备,包括:获取模块、转换模块和分割模块,其中:
所述获取模块,用于获取N组实例分割输出数据,其中,所述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且所述N组实例分割输出数据具有不同的数据结构,所述N为大于1的整数;
所述转换模块,用于基于所述N组实例分割输出数据,得到所述图像的集成语义数据和集成中心区域数据,其中,所述集成语义数据指示所述图像中位于实例区域的像素点,所述集成中心区域数据指示所述图像中位于实例中心区域的像素点;
所述分割模块,用于基于所述图像的集成语义数据和集成中心区域数据,获得所述图像的实例分割结果。
在一种可选的实施方式中,所述转换模块包括第一转换单元和第二转换单元,其中:
所述第一转换单元,用于基于所述N个实例分割模型中每个实例分割模型的实例分割输出数据,得到所述每个实例分割模型的语义数据和中心区域数据;
所述第二转换单元,用于基于所述N个实例分割模型中每个实例分割模型的语义数据和中心区域数据,得到所述图像的集成语义数据和集成中心区域数据。
在一种可选的实施方式中,所述第一转换单元具体用于:
基于所述实例分割模型的实例分割输出数据,确定在所述实例分割模型中所述图像的多个像素点中每个像素点对应的实例标识信息;
基于所述实例分割模型中所述多个像素点中每个像素点对应的实例标识信息,得到所述每个像素点在所述实例分割模型中的语义预测值,其中,所述实例分割模型的语义数据包括所述图像的多个像素点中每个像素点的语义预测值。
在一种可选的实施方式中,所述第一转换单元具体还用于:
基于所述实例分割模型的实例分割输出数据,确定在所述实例分割模型中,所述图像中位于实例区域的至少两个像素点;
基于所述实例分割模型中位于实例区域的至少两个像素点的位置信息,确定所述实例分割模型的实例中心位置;
基于所述实例分割模型的实例中心位置和所述至少两个像素点的位置信息,确定所述实例分割模型的实例中心区域。
在一种可选的实施方式中,所述转换模块还包括腐蚀处理单元,用于对所述实例分割模型的实例分割输出数据进行腐蚀处理,得到实例分割模型的腐蚀数据;
所述第一转换单元具体用于,基于所述实例分割模型的腐蚀数据,确定在所述实例分割模型中,所述图像中位于实例区域的至少两个像素点。
在一种可选的实施方式中,所述第一转换单元具体用于,将所述位于实例区域的至少两个像素点的位置的平均值,作为所述实例分割模型的实例中心位置。
在一种可选的实施方式中,所述第一转换单元具体还用于:
基于所述实例分割模型的实例中心位置和所述至少两个像素点的位置信息,确定所述至少两个像素点与所述实例中心位置的最大距离;
基于所述最大距离,确定第一阈值;
将所述至少两个像素点中与所述实例中心位置之间的距离小于或等于所述第一阈值的像素点确定为实例中心区域的像素点.
在一种可选的实施方式中,所述转换模块,具体用于:
基于所述N个实例分割模型中每个实例分割模型的语义数据,确定所述图像的多个像素点中每个像素点的语义投票值;
对所述多个像素点中每个像素点的语义投票值进行二值化处理,得到所述图像中每个像素点的集成语义值,其中,所述图像的集成语义数据包括所述多个像素点中每个像素点的集成语义值。
在一种可选的实施方式中,所述转换模块,具体还用于:
基于所述多个实例分割模型的个数N,确定第二阈值;
基于所述第二阈值,对所述多个像素点中每个像素点的语义投票值进行二值化处理,得到所述图像中每个像素点的集成语义值。
在一种可选的实施方式中,所述第二阈值为N/2的向上取整结果。
本申请实施例第三方面提供另一种电子设备,包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序被配置成由所述处理器执行,所述处理器用于执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
本申请实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序使得计算机执行如本申请实施例第三方面任一方法中所描述的部分或全部步骤。
本申请实施例获取N组实例分割输出数据,其中,上述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且上述N组实例分割输出数据具有不同的数据结构,上述N为大于1的整数,再基于上述N组实例分割输出数据,得到上述图像的集成语义数据和集成中心区域数据,其中,上述集成语义数据指示上述图像中位于实例区域的像素点,上述集成中心区域数据指示上述图像中位于实例中心区域的像素点,进而基于上述图像的集成语义数据和集成中心区域数据,获得上述图像的实例分割结果,可以在图像处理的实例分割问题中,实现各个实例分割模型的优势互补,不再要求各个模型具有相同结构或含义的数据输出,在实例分割问题中取得更高的精度。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的电子设备可以允许多个其他终端设备进行访问。上述电子设备包括终端设备,具体实现中,上述终端设备包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素点强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。
同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分。不同的学习框架下建立的学习模型很是不同。例如,卷积神经网络(Convolutional neuralnetwork,CNN)就是一种深度的监督学习下的机器学习模型,也可称为基于深度学习的网络结构模型,而深度置信网(Deep Belief Net,DBN)就是一种无监督学习下的机器学习模型。
下面对本申请实施例进行详细介绍。应理解,本公开实施例可以应用于对图像进行细胞核分割或者其他类型的实例分割,例如任意具有封闭性结构的实例分割,本公开实施例对此不做限定。
请参阅图1,图1是本申请实施例公开的一种图像处理方法的流程示意图,该方法可以由任意电子设备执行,例如终端设备、服务器或者处理平台等,本公开实施例对此不做限定。如图1所示,该图像处理包括如下步骤。
101、获取N组实例分割输出数据,其中,上述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且上述N组实例分割输出数据具有不同的数据结构,上述N为大于1的整数。
首先,图像处理中的实例分割问题定义为:对于一张输入图像,要对每一个像素点进行独立的判断,判断其所属语义类别以及实例ID。例如图像中有三个细胞核1、2、3,其语义类别都是细胞核,而实例分割结果却是不同的对象。
在一些可能的实现方式中,实例分割可以依靠卷积神经网络(ConvolutionalNeural Network,CNN),主要有如下两种算法的变体:名叫MaskRCNN(Mask Regions withCNN features)和简单梳理全卷积网络(Fully Convolutional Network,FCN)的目标实例分割框架。MaskRCN的缺点在于参数繁多,对于具体问题要求从业人员具备很高的专业认知才能得到较好的结果,且该方法运行缓慢;FCN需要特殊的图像后处理才能把粘合的同语义多目标分离成多个实例,这也需要从业人员较高的专业知识。
在另一个可能的实现方式中,实例分割也可以依靠实例分割算法来实现,例如基于支持向量机的实例分割算法等机器学习模型,本公开实施例对实例分割模型的具体实现不作限定。
不同的实例分割模型各有其优势与缺点,本公开实施例通过集成多个实例分割模型来整合不同单模型的优点。
本申请实施例中,可选地,在执行步骤101之前,可以使用不同的实例分割模型对图像分别进行处理,比如使用MaskRCNN和FCN分别对图像进行处理,获得实例分割输出结果。假设有N个实例分割模型,可以获取N个实例分割模型中每个实例分割模型的实例分割结果(以下称为实例分割输出数据),即获得N组实例分割输出数据。或者,可以从其他设备处获取该N组实例分割输出数据,本公开实施例对获取N组实例分割输出数据的方式不作限定。
可选地,在使用实例分割模型对图像进行处理之前,还可以对图像进行预处理,例如对比度和/或灰度调整,或者裁剪、水平和垂直翻转、旋转、缩放、噪声去除等一种或任意多项操作,以使得预处理后的图像满足实例分割模型对于输入图像的要求,本公开实施例对此不做限定。
在本公开实施例中,N个实例分割模型输出的实例分割输出数据可以具有不同的数据结构或含义。举例来讲,对于一个维度为[高,宽,3]的图像的输入,实例分割输出数据包括[高,宽]的数据,其中,实例ID为0表示背景,大于0的不同数字表示不同的实例。假设有3个实例分割模型,不同的实例分割模型对应不同的算法或者神经网络结构,其中,第1个实例分割模型的实例分割输出数据是[边界、目标、背景]的三分类概率图;第2个实例分割模型的实例分割输出数据是[边界、背景]的二分类概率图和维度为[目标、背景]的二分类图;第3个实例分割模型的实例分割输出数据是[中心区域、目标整体、背景]的三分类概率图,等等。不同的实例分割模型拥有不同意义的数据输出。此时,无法使用任意加权平均算法来整合各个实例分割模型的输出以取得更稳定、更高精度的结果。本申请实施例中的方法可以在此N组具有不同数据结构的实例分割输出数据的基础上进行跨实例分割模型的集成。
在获取上述N组实例分割输出数据之后,可以执行步骤102。
102、基于上述N组实例分割输出数据,得到上述图像的集成语义数据和集成中心区域数据,其中,上述集成语义数据指示上述图像中位于实例区域的像素点,上述集成中心区域数据指示上述图像中位于实例中心区域的像素点。
具体的,电子设备可以将上述N组实例分割输出数据进行转换处理,获得图像的集成语义数据和集成中心区域数据。
本申请实施例中提到的语义分割是计算机视觉中的基本任务,在语义分割中我们需要将视觉输入分为不同的语义可解释类别,即分类类别在真实世界中是有意义的。图像是由许多像素点(Pixel)组成,而语义分割顾名思义就是将像素点按照图像中表达语义含义的不同进行分组(Grouping)/分割(Segmentation)。例如,我们可能需要区分图像中属于汽车的所有像素点,并把这些像素点涂成蓝色。
像素级别的语义分割可以对图像中的每个像素点都划分出对应的类别,即实现像素级别的分类;而类的具体对象,即为实例,那么实际上实例分割不但要进行像素级别的分类,还需在具体的类别基础上区别开不同的实例。比如说图像中有三个人甲、乙、丙,其语义分割结果都是人,而实例分割结果却是不同的对象。
上述实例区域可以理解为图像中的实例所在的区域,即除去背景区域以外的区域,上述集成语义数据则可以指示上述图像中位于实例区域的像素点,比如针对细胞核分割的处理,上述集成语义数据可以包括位于细胞核区域的像素点的判断结果。
而上述集成中心区域数据可以指示上述图像中位于实例中心区域的像素点。
可以将实例中心所属的一小块区域定义为实例中心区域,即实例中心区域是在该实例区域内并且小于该实例区域的区域,并且该实例中心区域的几何中心与该实例区域的几何中心重叠或邻近,例如,实例中心区域的中心为实例中心。可选地,该实例中心区域可以为圆形、椭圆或其他形状,上述实例中心区域可以根据需要进行设置,本申请实施例对实例中心区域的具体实现不做限制。
具体的,可以先基于上述N个实例分割模型中每个实例分割模型的实例分割输出数据,得到上述每个实例分割模型的语义数据和中心区域数据,即一共N组语义数据和N组中心区域数据,再基于上述N个实例分割模型中每个实例分割模型的语义数据和中心区域数据进行集成处理,得到上述图像的集成语义数据和集成中心区域数据。
对于N个实例分割模型的每个实例分割模型中每个实例分割模型的实例分割输出数据,可以确定在该实例分割模型中的每个像素点对应的实例标识信息(实例ID),再基于上述实例分割模型中所述多个像素点中每个像素点对应的实例标识信息,得到每个像素点在上述实例分割模型中的语义预测值。其中,上述实例分割模型的语义数据包括上述图像的多个像素点中每个像素点的语义预测值。
本申请实施例中提到的二值化(Thresholding)是图像分割的一种简单的方法。二值化可以把灰度图像转换成二值图像,可以把大于某个临界灰度值的像素点灰度设为灰度极大值,把小于这个值的像素点灰度设为灰度极小值,从而实现二值化。
在本公开实施例中,二值化处理可以为固定阈值的二值化处理或者自适应阈值的二值化处理。例如双峰法、P参数法、迭代法和OTSU法等,本公开实施例对二值化处理的具体实现不做限定。
在本公开实施例中,可以通过对第一图像进行处理,得到第一图像包含的多个像素点中每个像素点的语义预测结果。在一些可能的实现方式中,通过判断像素点的语义预测值与上述第一阈值之间的大小关系,来获得像素点的语义预测结果。可选地,上述二值化处理的第一阈值可以是预设的或者是根据实际情况确定的,本公开实施例对此不做限定。
在得到上述图像的集成语义数据和集成中心区域数据之后,可以执行步骤103。
103、基于上述图像的集成语义数据和集成中心区域数据,获得上述图像的实例分割结果。
在一些可能的实现方式中,可以基于上述图像的集成中心区域数据,得到上述图像的至少一个实例中心区域,基于上述至少一个实例中心区域和上述图像的集成语义数据,确定上述图像的多个像素点中每个像素点所属的实例。
上述集成语义数据指示图像中位于实例区域的至少一个像素点,例如,集成语义数据可以包括图像的多个像素点中每个像素点的集成语义值,集成语义值用于指示像素点是否位于实例区域,或用于指示像素点位于实例区域或背景区域。上述集成中心区域数据指示上述图像中位于实例中心区域的至少一个像素点,例如,集成中心区域数据包括图像的多个像素点中每个像素点的集成中心区域预测值,集成中心区域预测值用于指示像素点是否位于实例中心区域。
可选地,通过上述集成语义数据可以确定图像的实例区域中包含的至少一个像素点,通过上述集成中心区域数据可以确定图像的实例中心区域中包含的至少一个像素点。基于上述图像的集成中心区域数据和集成语义数据,则可以确定上述图像的多个像素点中每个像素点所属的实例,获得图像的实例分割结果。
通过上述方法获得的实例分割结果集成了N个实例分割模型的实例分割输出结果,整合了不同实例分割模型的优点,不再要求不同实例分割模型拥有相同含义的数据输出,并且提高了实例分割精度。
本申请实施例通过获取N组实例分割输出数据,其中,上述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且上述N组实例分割输出数据具有不同的数据结构,上述N为大于1的整数,再基于上述N组实例分割输出数据,得到上述图像的集成语义数据和集成中心区域数据,其中,上述集成语义数据指示上述图像中位于实例区域的像素点,上述集成中心区域数据指示上述图像中位于实例中心区域的像素点,进而基于上述图像的集成语义数据和集成中心区域数据,获得上述图像的实例分割结果,可以在图像处理的实例分割问题中,实现各个实例分割模型的优势互补,不再要求各个模型具有相同结构或含义的数据输出,在实例分割问题中取得更高的精度。
请参阅图2,图2是本申请实施例公开的另一种图像处理方法的流程示意图,图2是在图1的基础上进一步优化得到的。该方法可以由任意电子设备执行,例如终端设备、服务器或者处理平台等,本公开实施例对此不做限定。如图2所示,该图像处理方法包括如下步骤:
201、获取N组实例分割输出数据,其中,上述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且上述N组实例分割输出数据具有不同的数据结构,上述N为大于1的整数。
其中,上述步骤201可以参考图1所示实施例的步骤101中的具体描述,此处不再赘述。
202、基于上述实例分割模型的实例分割输出数据,确定在上述实例分割模型中,上述图像中位于实例区域的至少两个像素点。
可以将实例中心所属的一小块区域定义为实例中心区域,即实例中心区域是在该实例区域内并且小于该实例区域的区域,并且该实例中心区域的几何中心与该实例区域的几何中心重叠或邻近,例如,实例中心区域的中心为实例中心。可选地,该实例中心区域可以为圆形、椭圆或其他形状,上述实例中心区域可以根据需要进行设置,本申请实施例对实例中心区域的具体实现不做限制。可选地,实例分割输出数据可以包括图像中位于实例区域的至少两个像素点中每个像素点对应的实例标识信息,例如,实例ID为1、2或3等大于0的整数,或者也可以为其他数值,位于背景区域的像素点对应的实例标识信息可以为预设值,或者位于背景区域的像素点不对应任何实例标识信息。这样可以基于实例分割输出数据中多个像素点中每个像素点对应的实例标识信息,确定图像中位于实例区域的至少两个像素点。
可选地,实例分割输出数据也可以不包括每个像素点对应的实例标识信息,此时,可以通过对实例分割输出数据进行处理,得到图像中位于实例区域的至少两个像素点,本公开实施例对此不做限定。
在确定上述图像中位于实例区域的至少两个像素点之后,可以执行步骤203。
203、基于上述实例分割模型中位于实例区域的至少两个像素点的位置信息,确定上述实例分割模型的实例中心位置。
在确定了上述实例分割模型中位于实例区域的至少两个像素点之后,可以获得上述至少两个像素点的位置信息,其中,可选地,该位置信息可以包括像素点在图像中的坐标,但本公开实施例不限于此。
可以根据上述至少两个像素点的位置信息,确定上述实例分割模型的实例中心位置,上述实例中心位置不局限于为该实例的几何中心位置,而是为实例区域中预测的该实例区域的中心位置,用于进一步确定实例中心区域,即可以理解为上述实例中心区域中的任一位置。
可选的,可以将上述位于实例区域的至少两个像素点的位置的平均值,作为上述实例分割模型的实例中心位置。
具体可以将上述位于实例区域的至少两个像素点的坐标取平均值,作为上述实例分割模型的实例中心位置的坐标,以确定上述实例中心位置。
204、基于上述实例分割模型的实例中心位置和上述至少两个像素点的位置信息,确定上述实例分割模型的实例中心区域。
具体的,可以基于上述实例分割模型的实例中心位置和上述至少两个像素点的位置信息,确定上述至少两个像素点与上述实例中心位置的最大距离,再基于上述最大距离,确定第一阈值,然后,可以将上述至少两个像素点中与上述实例中心位置之间的距离小于或等于上述第一阈值的像素点确定为实例中心区域的像素点。
比如,可以基于上述实例分割模型的实例中心位置和上述至少两个像素点的位置信息,计算其中每一个像素点到达该实例中心位置的距离(像素点距离),电子设备中可以预先设置上述第一阈值的算法,比如上述第一阈值可以设置为上述像素点距离中最大距离的30%,在确定上述像素点距离中最大距离之后,可以计算获得上述第一阈值,以此为基础,保留像素点距离小于上述第一阈值的像素点,确定这些像素点为上述实例中心区域的像素点,即确定了上述实例中心区域。
可选地,还可以对样本图像进行腐蚀处理,得到腐蚀处理后的样本图像,并基于腐蚀处理后的样本图像确定实例中心区域。
图像的腐蚀操作是表示用某种结构元素对图像进行探测,以便找出在图像内部可以放下该结构元素的区域。本申请实施例中提到的图像腐蚀处理可以包括上述腐蚀操作,腐蚀操作是结构原中心在被腐蚀图像中平移填充的过程。从腐蚀后的结果来看,图像前景区域缩小,区域边界变模糊,同时一些比较小的孤立的前景区域被完全腐蚀掉,达到了滤波的效果。
比如,针对每一个实例蒙版,首先利用5×5的卷积核对实例蒙版(mask)进行图像腐蚀处理,然后,将实例包括的多个像素点的坐标进行平均,得到实例的中心位置,并确定实例中的所有像素点到达该实例的中心位置的最大距离,并将与实例的中心位置之间的距离小于上述最大距离的30%的像素点确定为实例的中心区域的像素点,即得到实例的中心区域。这样,由样本图像中的实例蒙版缩小一圈后,进行图像二值化处理获得中心区域预测的二值图蒙版。
此外,可选地,可以基于样本图像中标注的实例中包含的像素点的坐标以及实例的中心位置,获得像素点的中心相对位置信息,即上述像素点与实例中心之间的相对位置信息,例如由像素点到实例中心的向量,并将该相对位置信息作为监督进行神经网络的训练,但本公开实施例不限于此。
205、基于上述N个实例分割模型中每个实例分割模型的语义数据,确定上述图像的多个像素点中每个像素点的语义投票值。
电子设备可以基于上述N个实例分割模型中每个实例分割模型的语义数据,对多个像素点中每个像素点进行语义投票,确定上述图像的多个像素点中每个像素点的语义投票值,比如使用基于滑动窗口的投票对上述实例分割模型的语义数据进行处理,确定上述每个像素点的语义投票值,进而可以执行步骤206。
206、对上述多个像素点中每个像素点的语义投票值进行二值化处理,得到上述图像中每个像素点的集成语义值,其中,上述图像的集成语义数据包括上述多个像素点中每个像素点的集成语义值。
上述确定的语义投票值来自上述N个实例分割模型,进一步地,可以对每个像素点的语义投票值进行二值化处理,得到上述图像中每个像素点的集成语义值,可以理解为不同实例分割模型得到的语义蒙版相加得到集成语义蒙版。
具体的,可以基于上述多个实例分割模型的个数N,确定第二阈值;
基于上述第二阈值,对上述多个像素点中每个像素点的语义投票值进行二值化处理,得到上述图像中每个像素点的集成语义值。
上述多个像素点中每个像素点的取值有实例分割模型个数的取值可能性,可以基于上述多个实例分割模型的个数N,确定第二阈值,比如,上述第二阈值可以为N/2的向上取整结果。
可以以第二阈值为该步骤中二值化处理的判断依据,得到上述图像中每个像素点的集成语义值。电子设备中可以存储有上述第二阈值的计算方法,比如规定上述预设像素点阈值为N/2,若N/2不为整数则向上取整。举例来讲,比如4个实例分割模型获得的4组实例分割输出数据,则N=4,4/2=2,此时的第二阈值是2,比较上述语义投票值和上述第二阈值,语义投票值大于等于2的截断为1,小于2的截断为0,由此得到上述图像中每个像素点的集成语义值,此时输出的数据具体可以为集成语义二值图。上述集成语义值可以理解为上述每个像素点的语义分割结果,可以以为基础确定该像素点所属的实例,实现实例分割。
207、基于上述图像的多个像素点中每个像素点的集成语义值和上述至少一个实例中心区域,进行随机游走,得到上述每个像素点所属的实例。
随机游走(random walk)也称随机漫步,随机行走等,是指基于过去的表现,无法预测将来的发展步骤和方向。核心概念是指任何无规则行走者所带的守恒量都各自对应着一个扩散运输定律,接近于布朗运动,是布朗运动理想的数学状态。本申请实施例中针对图像处理的随机游走的基本思想是,将图像看成由固定的顶点和边组成的连通带权无向图,从未标记顶点开始随机漫步,首次到达各类标记顶点的概率代表了未标记点归属于标记类的可能性,把最大的概率所在类的标签赋给未标记顶点,完成分割。
基于上述图像的多个像素点中每个像素点的集成语义值和上述至少一个实例中心区域,进行随机游走,即使用随机游走的形式通过像素点的集成语义值判断像素点的分配情况,得到上述每个像素点所属的实例,比如可以将离像素点最近的实例中心区域对应的实例确定为该像素点所属的实例。本申请实施例可以通过得到最终的集成语义图和集成中心区域图,结合上述连通区域搜索和随机游走的一种具体实现(就近分配)确定实例的像素点分配,获得最后的实例分割结果。
通过上述方法获得的实例分割结果集成了N个实例分割模型的实例分割输出结果,整合了这些实例分割模型的优点,不再要求不同实例分割模型拥有相同含义的连续概率图输出,并且提高了实例分割精度。
本申请实施例中的方法,适用于任意实例分割问题中,例如在临床的辅助诊断中。在医生获得了病人的器官组织切片数字扫描图像后,将该图像输入本申请实施例的处理步骤,可以获得每一个独立细胞核的像素点蒙版,医生可以以此为依据,计算该器官的细胞密度、细胞形态特征,进而得出医学判断。又如在蜂巢四周,饲养员获得了蜂巢四周密集的蜜蜂飞舞图像后,可以使用本算法,获得每一只独立蜜蜂的实例像素点蒙版,可进行宏观的蜜蜂计数、行为模式计算等,具有很大的实用价值。
本申请实施例的具体应用中,对于自底向上的方法,可以优选应用UNet模型。UNet首先被开发用于语义分割,并有效地从多个尺度融合信息。对于自顶向下的方法,可以应用MaskR-CNN模型,MaskR-CNN通过为分割任务添加头部来扩展更快的R-CNN。此外,所提出的MaskR-CNN中可以将跟踪特征与输入对齐,避免了双线性插值的任何量化。对齐对于像素点级任务,比如实例分割任务是十分重要的。
UNet模型的网络结构由收缩路径(contracting path)和扩张路径(expandingpath)组成。其中,收缩路径用于获取上下文信息(context),扩张路径用于精确的定位(localization),且两条路径相互对称。该网络能够从极少图像端对端进行训练,并且对于分割电子显微镜中的神经元等细胞结构的表现好于以前最好的方法(滑动窗口卷积网络)。除此之外运行速度也非常快,
在一种具体的实施方式中,可以利用UNet和Mask R-CNN模型对实例进行分割预测,得到每个实例分割模型的语义蒙版,并通过像素点投票(Vote)进行集成。然后通过腐蚀处理来计算每个实例分割模型的中心蒙版,并对中心蒙版进行集成。最后,利用随机游走算法从集成的语义蒙版和中心蒙版中获得实例分割结果。
针对上述结果可以采用交叉验证(Cross-validation)方法进行评估。交叉验证主要用于建模应用中。在给定的建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立的模型进行预报,并求这小部分样本的预报误差,记录它们的平方加和。本申请实施例中可采用3倍交叉验证进行评估,将三个AJI(5)分数为0.605,0.599,0.589的UNet模型与和一个AJI(5)得分0.565的MaskR-CNN模型结合,使用本申请实施例的方法获得的结果最后的AJI(5)得分为0.616,可见本申请的图像处理方法具有明显的优势。
本申请实施例通过获取N组实例分割输出数据,其中,上述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且上述N组实例分割输出数据具有不同的数据结构,上述N为大于1的整数,基于上述实例分割模型的实例分割输出数据,确定在上述实例分割模型中,上述图像中位于实例区域的至少两个像素点,基于上述实例分割模型中位于实例区域的至少两个像素点的位置信息,确定上述实例分割模型的实例中心位置,基于上述实例分割模型的实例中心位置和上述至少两个像素点的位置信息,确定上述实例分割模型的实例中心区域,基于上述N个实例分割模型中每个实例分割模型的语义数据,确定上述图像的多个像素点中每个像素点的语义投票值,对上述多个像素点中每个像素点的语义投票值进行二值化处理,得到上述图像中每个像素点的集成语义值,其中,上述图像的集成语义数据包括上述多个像素点中每个像素点的集成语义值,基于上述图像的多个像素点中每个像素点的集成语义值和上述至少一个实例中心区域,进行随机游走,得到上述每个像素点所属的实例,可以在图像处理的实例分割问题中,实现各个实例分割模型的优势互补,不再要求各个模型具有相同结构或含义的数据输出,在实例分割问题中取得更高的精度。
请参阅图3,图3是本申请实施例公开的一种细胞实例分割的图像表现形式示意图,如图所示,以细胞实例分割为例,使用本申请实施例中的方法进行处理,可以获得精度更高的实例分割结果。使用N种实例分割模型(图中仅展示4种)分别给出输入图片的实例预测蒙版,图中不同色彩表示不同的细胞实例,将之转换为使用语义预测分割的语义蒙版和使用中心预测分割的中心区域蒙版后,分别进行像素点投票,再进行集成,最终获得实例分割结果,可以看出,在该过程中修复了方法1的右侧三细胞漏检两个的错误,修复了方法2的中间两细胞粘合的错误,还修复了4个方法都没能发现的左下角其实是三个细胞,中间还有个小细胞存在的现象。该集成方法可以在任意实例分割模型上集成,整合了不同方法的优点。通过上述举例可以更加清晰地了解前述实施例的具体过程及其优势。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参阅图4,图4是本申请实施例公开的一种电子设备的结构示意图。如图4所示,该电子设备400包括:获取模块410、转换模块420和分割模块430,其中:
所述获取模块410,用于获取N组实例分割输出数据,其中,所述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且所述N组实例分割输出数据具有不同的数据结构,所述N为大于1的整数;
所述转换模块420,用于基于所述N组实例分割输出数据,得到所述图像的集成语义数据和集成中心区域数据,其中,所述集成语义数据指示所述图像中位于实例区域的像素点,所述集成中心区域数据指示所述图像中位于实例中心区域的像素点;
所述分割模块430,用于基于所述图像的集成语义数据和集成中心区域数据,获得所述图像的实例分割结果。
可选的,所述转换模块420包括第一转换单元421和第二转换单元422,其中:
所述第一转换单元421,用于基于所述N个实例分割模型中每个实例分割模型的实例分割输出数据,得到所述每个实例分割模型的语义数据和中心区域数据;
所述第二转换单元422,用于基于所述N个实例分割模型中每个实例分割模型的语义数据和中心区域数据,得到所述图像的集成语义数据和集成中心区域数据。
可选的,所述第一转换单元421具体用于:
基于所述实例分割模型的实例分割输出数据,确定在所述实例分割模型中所述图像的多个像素点中每个像素点对应的实例标识信息;
基于所述实例分割模型中所述多个像素点中每个像素点对应的实例标识信息,得到所述每个像素点在所述实例分割模型中的语义预测值,其中,所述实例分割模型的语义数据包括所述图像的多个像素点中每个像素点的语义预测值。
可选的,所述第一转换单元421具体还用于:
基于所述实例分割模型的实例分割输出数据,确定在所述实例分割模型中,所述图像中位于实例区域的至少两个像素点;
基于所述实例分割模型中位于实例区域的至少两个像素点的位置信息,确定所述实例分割模型的实例中心位置;
基于所述实例分割模型的实例中心位置和所述至少两个像素点的位置信息,确定所述实例分割模型的实例中心区域。
可选的,所述转换模块420还包括腐蚀处理单元423,用于对所述实例分割模型的实例分割输出数据进行腐蚀处理,得到实例分割模型的腐蚀数据;
所述第一转换单元421具体用于,基于所述实例分割模型的腐蚀数据,确定在所述实例分割模型中,所述图像中位于实例区域的至少两个像素点。
可选的,所述第一转换单元421具体用于,将所述位于实例区域的至少两个像素点的位置的平均值,作为所述实例分割模型的实例中心位置。
可选的,所述第一转换单元421具体还用于:
基于所述实例分割模型的实例中心位置和所述至少两个像素点的位置信息,确定所述至少两个像素点与所述实例中心位置的最大距离;
基于所述最大距离,确定第一阈值;
将所述至少两个像素点中与所述实例中心位置之间的距离小于或等于所述第一阈值的像素点确定为实例中心区域的像素点。
可选的,所述转换模块420,具体用于:
基于所述N个实例分割模型中每个实例分割模型的语义数据,确定所述图像的多个像素点中每个像素点的语义投票值;
对所述多个像素点中每个像素点的语义投票值进行二值化处理,得到所述图像中每个像素点的集成语义值,其中,所述图像的集成语义数据包括所述多个像素点中每个像素点的集成语义值。
可选的,所述转换模块420,具体还用于:
基于所述多个实例分割模型的个数N,确定第二阈值;
基于所述第二阈值,对所述多个像素点中每个像素点的语义投票值进行二值化处理,得到所述图像中每个像素点的集成语义值。
可选的,所述第二阈值为N/2的向上取整结果。
可选的,所述分割模块430,包括中心区域单元431和确定单元432,其中:
所述中心区域单元431,用于基于所述图像的集成中心区域数据,得到所述图像的至少一个实例中心区域;
所述确定单元432,用于基于所述至少一个实例中心区域和所述图像的集成语义数据,确定所述图像的多个像素点中每个像素点所属的实例。
可选的,所述确定单元432,具体用于基于所述图像的多个像素点中每个像素点的集成语义值和所述至少一个实例中心区域,进行随机游走,得到所述每个像素点所属的实例。
实施图4所示的电子设备400,电子设备400可以获取N组实例分割输出数据,其中,上述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且上述N组实例分割输出数据具有不同的数据结构,上述N为大于1的整数,再基于上述N组实例分割输出数据,得到上述图像的集成语义数据和集成中心区域数据,其中,上述集成语义数据指示上述图像中位于实例区域的像素点,上述集成中心区域数据指示上述图像中位于实例中心区域的像素点,进而基于上述图像的集成语义数据和集成中心区域数据,获得上述图像的实例分割结果,可以在图像处理的实例分割问题中,实现各个实例分割模型的优势互补,不再要求各个模型具有相同结构或含义的数据输出,在实例分割问题中取得更高的精度。
请参阅图5,图5是本申请实施例公开的另一种电子设备的结构示意图。如图5所示,该电子设备500包括处理器501和存储器502,其中,电子设备500还可以包括总线503,处理器501和存储器502可以通过总线503相互连接,总线503可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中,电子设备500还可以包括输入输出设备504,输入输出设备504可以包括显示屏,例如液晶显示屏。存储器502用于存储计算机程序;处理器501用于调用存储在存储器502中的计算机程序执行上述图1和图2实施例中提到的部分或全部方法步骤。
实施图5所示的电子设备500,电子设备500可以获取N组实例分割输出数据,其中,上述N组实例分割输出数据分别为N个实例分割模型对图像进行处理获得的实例分割输出结果,且上述N组实例分割输出数据具有不同的数据结构,上述N为大于1的整数,再基于上述N组实例分割输出数据,得到上述图像的集成语义数据和集成中心区域数据,其中,上述集成语义数据指示上述图像中位于实例区域的像素点,上述集成中心区域数据指示上述图像中位于实例中心区域的像素点,进而基于上述图像的集成语义数据和集成中心区域数据,获得上述图像的实例分割结果,可以在图像处理的实例分割问题中,实现各个实例分割模型的优势互补,不再要求各个模型具有相同结构或含义的数据输出,在实例分割问题中取得更高的精度。
本申请实施例还提供一种计算机可读存储介质,其中,该计算机可读存储介质用于存储计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种图像处理方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元(模块)可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。