发明内容
本申请提出图像分割方法、装置、设备及存储介质,提高了整体分割速度和准确度。
本申请第一方面实施例提出了图像分割方法,包括:
获取多个原始人物图像;
基于第一图像分割模型和预设抠图模型,对每个原始人物图像中各人体区域进行标注,得到训练数据集;
构建基于注意力机制的语义分割网络结构;
根据所述训练数据集,对所述语义分割网络结构进行训练,得到用于进行人体区域分割的第二图像分割模型。
在本申请的一些实施例中,所述基于第一图像分割模型和预设抠图模型,对每个原始人物图像中各人体区域进行标注,得到训练数据集,包括:
基于所述原始人物图像,采用第一图像分割模型获得所述原始人物图像各人体区域的语义分割结果;
通过预设抠图模型对所述原始人物图像对应的语义分割结果进行修正;
根据修正后的语义分割结果,标注所述原始人物图像中的各人体区域;
将标注后的原始人物图像存储在训练数据集中。
在本申请的一些实施例中,通过预设抠图模型对所述原始人物图像对应的语义分割结果进行修正,包括:
通过预设抠图模型对所述原始人物图像进行抠图处理,划分出所述原始人物图像的前景像素区域和背景像素区域;
若抠图结果指示第一像素点为背景像素,且所述语义分割结果指示所述第一像素点为前景像素,则将所述第一像素点的语义分割结果修正为背景像素;
若抠图结果指示所述第一像素点为前景像素,且所述语义分割结果指示所述第一像素点为背景像素,则确定距离所述第一像素点最近且与所述第一像素点的语义分割结果不同的目标像素点,将所述目标像素点的语义分割结果确定为所述第一像素点的语义分割结果。
在本申请的一些实施例中,所述基于所述原始人物图像,采用第一图像分割模型获得所述原始人物图像各人体区域的语义分割结果,包括:
计算对所述原始人物图像和第一图像分割模型的预设标准图像进行人脸对齐操作所要使用的仿射变换矩阵;
基于所述仿射变换矩阵对所述原始人物图像进行矩阵变换,得到所述原始人物图像对应的变换后图像;
基于所述原始人物图像和所述变换后图像,采用第一图像分割模型获得所述原始人物图像对应的语义分割结果。
在本申请的一些实施例中,基于仿射变换矩阵对原始人物图像进行矩阵变换,得到所述原始人物图像对应的变换后图像,包括:
将所述仿射变换矩阵进行分解,分别得到旋转矩阵、平移矩阵及缩放矩阵;
分别基于所述旋转矩阵、所述平移矩阵及所述缩放矩阵对所述原始人物图像进行旋转、平移变换及缩放变换,得到第一变换后图像;
基于所述缩放矩阵和预设放大倍数的所述缩放矩阵对应的图像尺寸分别对所述第一变换后图像进行裁剪,得到多个第二变换后图像。
在本申请的一些实施例中,所述基于所述原始人物图像和所述变换后图像,采用第一图像分割模型获得所述原始人物图像对应的语义分割结果,包括:
基于所述原始人物图像和所述第二变换后图像,采用语义分割模型分别获得所述原始人物图像各人体区域的语义分割结果和各第二变换后图像各人体区域的语义分割结果;
根据各第二变换后图像各人体区域的语义分割结果对所述原始人物图像各人体区域的语义分割结果进行修正,获得所述原始人物图像对应的语义分割结果。
在本申请的一些实施例中,所述根据各第二变换后图像各人体区域的语义分割结果对所述原始人物图像各人体区域的语义分割结果进行修正,获得所述原始人物图像对应的语义分割结果,包括:
确定所述原始人物图像和各第二变换后图像的分割结果置信度;所述分割结果置信度与所在图像的尺寸成反比例关系;
对于原始人物图像的每个像素点,确定其所在的原始人物图像和/或各第二变换后图像的分割结果置信度,
将对应分割结果置信度最高的语义分割结果作为该像素点的语义分割结果。
在本申请的一些实施例中,所述将标注后的原始人物图像存储在训练数据集中,包括:
通过数据增强库对所述标注后的原始人物图像进行数据增强,得到增强数据集;
对增强数据集中的部分图像进行多尺度的随机裁剪,得到所述训练数据集。
在本申请的一些实施例中,根据所述训练数据集对基于注意力机制的分割模型进行训练,得到用于对人物图像进行分割的第二图像分割模型,包括:
将训练数据集中的样本图像输入基于注意力机制的分割模型,得到样本图像的分割结果;
根据每个样本图像的分割结果和标注信息,计算当前训练周期的整体损失值;
通过优化器和学习率调度器对每个周期训练后的基于注意力机制的分割模型进行优化。
在本申请的一些实施例中,所述计算当前训练周期的整体损失值,包括:
根据每个样本图像的分割结果和标注信息,通过交叉熵损失函数计算当前训练周期的交叉熵损失值;
根据每个样本图像的分割结果和标注信息,通过Dice损失函数计算所述当前训练周期的的Dice损失值;
根据所述交叉熵损失值和所述Dice损失值计算当前训练周期的整体损失值。
在本申请的一些实施例中,所述方法还包括:
获取待分割的人物图像;
通过训练好的第二图像分割模型对所述人物图像进行分割。
本申请第二方面的实施例提供了图像分割装置,包括:
样本获取模块,用于获取获取多个原始人物图像;
数据集获取模块,用于基于第一图像分割模型和预设抠图模型,对每个原始人物图像中各人体区域进行标注,得到训练数据集;
模型构建模块,用于构建基于注意力机制的语义分割网络结构;
模型训练模块,用于根据所述训练数据集,对所述语义分割网络结构进行训练,得到用于进行人体区域分割的第二图像分割模型。
本申请第三方面的实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现上述第一方面所述的方法。
本申请第四方面的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述第一方面所述的方法。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
在本申请实施例中,对用于对人物图像进行图像分割的第二图像分割模型进行训练时,采用了基于第一图像分割模型和预设抠图模型对每个训练数据集的原始人物图像中各人体区域进行标注预处理,可以较为准确地确定原始人物图像的个人体部位的类别,因此该标注过程可以大幅度提高图像标注效率及标注准确性,从而有效提高训练数据集的获取效率。采用基于该标注过程获得的训练数据对基于注意力机制的语义分割网络结构进行训练,可以提高训练得到的第二图像分割模型的图像分割速度和准确度,从而对于距离人脸较远的颈部和身体部位也能得到很好的分割效果。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变的明显,或通过本申请的实践了解到。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
下面结合附图来描述根据本申请实施例提出的图像分割方法、装置、设备及存储介质。
目前,相关技术中需要对人物图像进行分割时,基于分割结果和分割时长的综合考虑,大多会选用处理速度相对较高的face-parsing人脸语义分割模型,其可以将人物图像分为19类区域,包括五官,人脸,头发,帽子,脖子,衣服等区域。但该模型基于对齐的人脸图片进行训练,在对齐的人脸图片中脖子和衣服区域并不完整,导致应用该模型分割出的脖子和衣服区域的分割结果不是很准确。
基于此,本申请实施例提供了一种图像分割方法,该方法训练了用于对人物图像进行图像分割的第二图像分割模型,且训练过程中采用基于第一图像分割模型和预设抠图模型对每个原始人物图像中各人体区域进行标注,该标注过程可以大幅度提高图像标注效率及标注准确性,从而有效提高训练数据集的获取效率。采用基于该标注过程获得的训练数据对基于注意力机制的语义分割网络结构进行训练,可以提高训练得到的第二图像分割模型的图像分割速度和准确度,对于距离人脸较远的颈部和身体部位也能得到很好的分割效果。
在通过上述分割模型来对人物图像进行图像分割之前,如图1,先通过如下步骤S1-S3的操作来训练上述语义分割网络结构,具体包括:
S1:获取多个原始人物图像。
获取大量原始人物图像,每个原始人物图像中可以包括一个或多个人物区域,对于包括多个人物区域的原始人物图像,从该原始人物图像中分别截取出每个人物区域的图像,得到多个仅包括一个人物区域的原始人物图像。在截取人物区域的图像时可以仅上半身包含人脸、颈部及身体的人物图像。
具体地,原始人物图像可以是网上公开的人物图像,也可以是通过图像获取装置获取的人物图像,本实施例对此不做具体限定。
S2:基于第一图像分割模型和预设抠图模型,对每个原始人物图像中各人体区域进行标注,得到训练数据集。
通过上述方式获得多个原始人物图像后,可基于每个原始人物图像,采用第一图像分割模型获得原始人物图像各人体区域的语义分割结果。其中,第一图像分割模型可以为face-parsing模型,该模型不仅可以对人脸进行解析,准确识别五官,也可以为人体其他部分进行识别,采用该语义分割模型对人物图像进行语义分割,可快速获得较为准确人体各部位分割结果。本实施例对第一图像分割模型不做具体限定,只要其能够对原始人物图像的人体各部位进行分割即可。
可先通过预设的五官关键点检测模型检测得到该原始人物图像的多个五官关键点,根据预设标准五官关键点和该原始人物图像的多个五官关键点,获取使原始人物图像和预设标准图像进行人脸对齐所要应用的仿射变换矩阵。该预设标准图像通常为对第一图像分割模型进行训练所使用的图像,该预设标准图像的尺寸可以根据具体的第一图像分割模型进行确定。例如,对于face-parsing模型,预设标准图像的尺寸通常为512*512,也可以为224*224或226*226等。本实施例对检测的五官关键点的具体数目不做具体限定,其可以是106个或117个等。另外也可以对原始人物图像的人脸关键点进行检测,只要能够使原始人物图像和上述预设尺寸的第一图像进行对齐操作即可。
其中,预设标准五官关键点可以包括预设的左眼标准中心点、右眼标准中心点、鼻尖标准点、左嘴角标准点和右嘴角标准点等。将检测的该原始人物图像的多个五官关键点中包括的左眼中心点、右眼中心点、鼻尖点、左嘴角点和右嘴角点等分别与预设标准五官关键点包括的左眼标准中心点、右眼标准中心点、鼻尖标准点、左嘴角标准点和右嘴角标准点等进行一一对齐。例如,将该原始人物图像上的左眼中心点与左眼标准中心点对齐,将该原始人物图像上的右眼标准中心点与右眼标准中心点对齐,等等。
获得上述仿射变换矩阵之后,可基于该仿射变换矩阵对原始人物图像进行矩阵变换,以使原始人物图像和上述预设标准图像进行人脸对齐,以便于应用第一图像分割模型对原始人物图像进行语义分割。
具体地,可以先将仿射变换矩阵进行分解,以分别得到旋转矩阵、平移矩阵及缩放矩阵。然后,可以先基于平移矩阵和旋转矩阵对原始人物图像分别进行平移变换和旋转变换,其产生的误差相对较小,之后再对平移和旋转变换后的图像进行缩放变换,而缩放变换通常产生的误差相对较大。如此,先进行误差较小的平移变换和旋转变换,再进行误差较大的缩放变换,可有效降低整体变换的叠加误差,从而有效保障变换后图像的真实度。
需要说明的是,上述先进行平移变换和旋转变换,再进行缩放变换的方案只是本实施例的较佳实施方式,本实施例并不以此为限,在实际应用中,可基于旋转矩阵、平移矩阵及缩放矩阵,采用任意顺序对原始人物图像进行矩阵变换。
本实施例将原始人物图像基于上述旋转矩阵、平移矩阵及缩放矩阵进行变换后,得到第一变换后图像,该第一变换后图像可与上述预设标准图像的人脸对齐。
在得到上述第一变换后图像之后,为了得到较好的语义分割结果,可以基于一定的规律对该第一变换后图像进行裁剪,以得到一系列不同尺寸的变换后图像,然后对原始人物图像和对应的一系列变换后图像分别进行语义分割,得到该原始人物图像的语义分割结果(可记为初始语义分割结果)和对应的一系列变换后图像的语义分割结果,并根据该原始人物图像对应的一系列变换后图像的语义分割结果对其初始语义分割结果进行修正,得到该原始人物图像的语义分割结果。
在本实施例中,可基于缩放矩阵和预设放大倍数的缩放矩阵对应的图像尺寸对第一变换后图像进行裁剪,得到一系列不同尺寸的第二变换后图像。具体地,如图2,基于缩放矩阵对应的图像尺寸,也就是预设标准图像的尺寸,对第一变换后图像进行裁剪,可以得到图2中的中心位置最小的图像。然后基于该缩放矩阵对应的图像尺寸,按照预设放大倍数进行多次放大,直至下次放大后的图像尺寸大于原始人物图像的尺寸,如此得到多个图像尺寸,每次均比上次放大相同的倍数,采用该多个图像尺寸分别对第一变换后图像进行裁剪,即可对应每个原始人物图像得到一系列不同尺寸的第二变换后图像。
得到上述一系列不同尺寸的第二变换后图像之后,可基于原始人物图像及其对应的第二变换后图像,采用第一图像分割模型获得原始人物图像对应的语义分割结果。
采用第一图像分割模型,先基于原始人物图像和其对应的第二变换后图像,分别获得原始人物图像各人体区域的初始语义分割结果和各第二变换后图像各人体区域的语义分割结果。具体地,可依次将原始人物图像和其对应的第二变换后图像输入第一图像分割模型,得到的模型输出结果即语义分割结果。
然后,可根据各第二变换后图像各人体区域的语义分割结果对原始人物图像各人体区域的语义分割结果进行修正,获得原始人物图像对应的语义分割结果,以使得原始人物图像的语义分割结果更加准确。
基于原始人物图像的初始语义分割结果和其对应的各第二变换后图像各人体区域的语义分割结果,对于原始人物图像的每个像素点,确定其所在的原始人物图像和/或各第二变换后图像的分割结果置信度,分割结果置信度与所在图像的尺寸成反比例关系。
如图2,最小尺寸(即缩放矩阵对应的图像尺寸)的第二变换后图像,其可对应原始人物图像行业每一个第二变换后图像分别得到一个语义分割结果,而每一个语义分割结果可对应一个分割结果置信度。该分割结果置信度用于表示分割结果的可信度或准确度,在上述得到的所有第二变换后图像中,图像尺寸越小越接近预设分割模型训练使用的图像尺寸,所以,图像尺寸越小的第二变换后图像对应的分割结果置信度越高。
在确定原始人物图像和各第二变换后图像的分割结果置信度之后,对于原始人物图像的每个像素点,可确定其所在位置,即位于哪个或哪几个第二变换后图像上。如图2中,位于最小尺寸的第二变换后图像上的每个像素点,均同时位于所有图像(包括原始人物图像和每一个第二变换后图像)上。而位于最小尺寸的第二变换后图像外,且位于其它尺寸(图中预设放大倍数的缩放矩阵对应的图像尺寸)的第二变换后图像上的每个像素点,可位于原始人物图像和某个或某几个第二变换后图像上。而位于所有第二变换后图像之外的像素点,则仅位于原始人物图像上。
上述原始人物图像的每个像素点位于几个图像(包括变换后图像和原始人物图像)上,则对应几个分割结果置信度,可将对应分割结果置信度最高的语义分割结果作为该像素点的语义分割结果,以进一步提高第一图像分割模型对原始人物图像的语义分割结果准确度。
在一些实施方式中,鉴于语义分割模型的局限性,其可能存在一些客观误差,本实施例为进一步提高对原始人物图像的语义分割结果准确度,可通过其它识别模型或分类模型对上述原始人物图像的语义分割结果进行进一步的修正。例如,可通过抠图模型的抠图结果对上述原始人物图像对应的语义分割结果进行修正。需要说明的是,本实施例可不限于采用抠图模型的抠图结果对原始人物图像对应的语义分割结果进行修正,只要是能对人物图像的各部位进行准确分类,以能够对语义分割结果进行修正即可。
通常情况下,抠图模型能够准确识别前景像素区域和背景像素区域。即,将原始人物图像输入抠图模型,经过抠图模型的抠图处理,可准确划分出原始人物图像的前景像素区域和背景像素区域。
采用预设抠图模型对原始人物图像对应的语义分割结果进行修正时,若某一像素点的抠图结果和语义分割结果不一致,则将抠图结果作为该像素点的语义分割结果。
具体地,若抠图结果指示第一像素点为背景像素,而语义分割结果指示第一像素点为前景像素,则将第一像素点的语义分割结果修正为背景像素。若抠图结果指示第一像素点为前景像素,而语义分割结果指示第一像素点为背景像素,则确定距离第一像素点最近且与第一像素点的语义分割结果不同的目标像素点,将目标像素点的语义分割结果确定为第一像素点的语义分割结果。
在完成对原始人物图像对应的语义分割结果进行修正后,可根据修正后的语义分割结果,标注原始人物图像中的各人体区域。
本实施例中,为进一步提高颈部和身体(衣服)之间的分割准确度,标注同学可利用pixelannotationtools对上述多个原始人物图像进行进一步修正,具体可对衣服语义信息进行调整,将所有衣服的区域,即去掉头和脖子的剩下区域,均标记为身体,以得到标注有面部、颈部和身体的语义分割数据。
需要说明的是,上述根据修正后的语义分割结果标注原始人物图像中的各人体区域,是在修正后的语义分割结果的基础上进行的进一步修改,其只是本实施例的较佳实施方式,本实施例并不以此为限,即使不存在修正后的语义分割结果,依然可以标注原始人物图像中的各人体区域。且在标注的过程中,也可以对语义分割结果进行修正。
可将上述标注后的原始人物图像存储在训练数据集中,以用于对基于注意力机制的分割模型构建的网络结构进行模型训练。
本实施例中,在获得上述标注后的原始人物图像后,可通过数据增强库对标注后的原始人物图像进行数据增强,得到增强数据集。
具体地,可使用数据增强效果较好的数据增强应用库albumentations对原始人物图像进行增强,数据增强应用库albumentations基于高度优化的OpenCV库,其处理速度较快,可实现原始人物图像的快速数据增强。且支持同时转换图像、面具、关键点和包围框,更易于扩展到其他任务。而针对不同的图像处理任务,如分割,检测等,可以提供特有的API接口,更易于实现数据集的个性化定制。且易于添加到其它框架,比如PyTorch,尤其是在医学图像处理上效果较好。
另外,虽然使用统一尺寸的图片,更容易训练模型。但这样训练得到的模型鲁棒性会差一些,如果待分割的图片和训练使用的图片宽高比有差异,图片语义范围有差异,比如只有人脸部分,或只有脖子衣服部分。模型推理结果表现不够好。故,本实施例对增强数据集中的部分图像进行多尺度的随机裁剪,以得到更多宽高比不同、图片语义范围差异性较大的图像,并基于上述增强数据集及经过多尺度的随机裁剪后的结果,得到上述用于对基于注意力机制的分割模型构建的网络结构进行模型训练的训练数据集。
S3:构建基于注意力机制的语义分割网络结构。
本实施例旨在构建准确度更高、处理速度更快的第二图像分割模型,基于该目的,对现有能够用于图像分割的网络结构进行分析研究,研究结果发现,基于注意力机制的分类网络,将其作为backbone(骨干网络),不仅可以进行分类,还可以进行目标检测、语义分割的模型迁移学习等,且该基于注意力机制的分类网络进行语义分割的效果要明显优于很多同类型网络结构,所以,本实施例基于注意力机制的网络结构来构建用于对人物图像进行人体分割的分割模型,以期达到更加准确、处理速度更快的人物图像分割结果。
本实施例在构建上述语义分割网络结构时,采用了transformer模型的改进模型Swin-transformer模型,该Swin-transformer模型采用transformer模型的基本网络结构,且为了得到更好的图像分割结果和更加高效的第二图像分割模型,对ransformer模型的网络结构做了以下改进:1)引入CNN(Convolutional Neural Networks,卷积神经网络)中常用的层次化构建方式构建层次化Transformer。2)引入locality思想(局部敏感,即空间中距离较近的点映射后发生冲突的概率高,空间中距离较远的点映射后发生冲突的概率低),对无重合的window区域(无重叠数据的区域)内进行self-attention计算。
本实施例的第二图像分割模型的具体的网络架构采用金字塔结构或者层级结构,即将模型分成不同的层(stage)。如图3,该Swin-transformer模型的网络结构可包括图像输入层、像素块划分(Patch Partition)层以及四个计算层。其应用过程如下:
首先将人物图像自图像输入层输入至像素划分层中进行像素分块,通常每4x4相邻的像素为一个Patch,然后在通道(channel)方向展平(flatten)。以RGB三通道,尺寸[H,W,3]的人物图像为例,每个patch有4x4=16个像素,然后每个像素有R、G、B三个值,展平后是16x3=48,所以通过Patch Partition后,人物图像的shape(形状尺寸)由[H,W,3]变成了[H/4,W/4,48]。
然后进行第一层计算,先通过线性嵌入(Linear Embeding)层对每个像素的channel数据做线性变换,由每个像素B值由48变成C,即输出的人物图像的shape再由[H/4,W/4,48]变成[H/4,W/4,C]。再堆叠两个Swin Transformer Block。
然后再进行第二层计算,先通过一个Patch Merging(像素合并)层进行下采样,用于缩小分辨率,调整通道数进而形成层次化的设计,同时也能节省一定运算量。假设输入Patch Merging的是一个4x4大小的单通道特征图(feature map),Patch Merging会将每个2x2的相邻像素划分为一个patch,然后将每个patch中相同位置(同一颜色)像素给拼在一起就得到了4个feature map。接着将这四个feature map在深度方向进行concat拼接,然后在通过一个LayerNorm层。最后通过一个全连接层在feature map的深度方向做线性变化,将feature map的深度由C变成C/2。通过这个简单的例子可以看出,通过Patch Merging层后,feature map的高和宽会减半,深度会翻倍。然后,再堆叠两个Swin TransformerBlock,每次下采样可设为两倍,则在行方向和列方向上,间隔2选取像素。然后拼接在一起作为一整个张量,最后展开,此时通道数是原先的4倍,通过全连接层调整,使得通道数变为原来的2倍,输出的人物图像的shape再由[H/4,W/4,C]变成[H/4,W/4,2C]。
依次进行第三层计算及第四层计算,第三层计算和第四层计算与第二层计算基本相同,可设置堆叠相同或不同个数的Swin Transformer Block。
上述Swin Transformer Block的结构如图4,可以为图4中两种结构中的任意一种,也可以两种结构堆叠应用。其中,进入到第一个Block中的过程包括:首先特征图(上一层的输出数据)经过一个Layer Norm(LN)层,然后经过W-MSA(Windows Multi-head Self-Attention),之后进行一个连接;连接后的特征图再次经过Layer Norm层,然后经过全连接层MLP,之后进行一个连接。之后进入到第二个Block中,与进入到第一个Block的过程类似,特征图先经过一个Layer Norm层,然后经过SW-MSA,之后进行一个连接,连接后的特征图再次经过Layer Norm层,然后经过全连接层MLP,之后进行一个连接。
其中,W-MSA可以将特征图按照M*M(例如,M=2)大小划分成多个Windows,然后单独对每个Windows内部进行Self-Attention,以减少计算量。SW-MSA(Shifted WindowsMulti-Head Self-Attention,进行偏移的W-MSA),与W-MSA不同的地方在于SW-MSA存在滑动,滑动的距离可以为win_size/2。这里W-MSA和SW-MSA可以成对使用,假设第L层使用的是W-MSA,第L+1层使用的是SW-MSA,则该两个模型窗口(Windows)发生了偏移(可以理解成窗口从左上角分别向右侧和下方各偏移了若干像素)。从而能够使第L层的两个窗口信息进行交流。
需要说明的是,本实施例上述获取训练数据集的步骤(S1和S2)和构建语义分割网络结构的步骤(S3)的具体实施顺序不做具体限定,即也可以先进行步骤S3,构建基于注意力机制的语义分割网络结构,然后再进行步骤S1和步骤S2,其不影响对模型训练的结果。
S4:根据训练数据集,对语义分割网络结构进行训练,得到用于进行人体区域分割的第二图像分割模型。
在构建了上述语义分割网络结构之后,可以采用上述训练数据集中的数据对该模型结构进行训练,以得到分割结果准确度更高、分割效率更大的第二图像分割模型。
每个训练周期从训练数据集中获取的样本图像的数目可以为多个。可以将获取的样本图像输入构建的Swin Transformer模型中,该Swin Transformer模型中顺次连接的各层结构用于提取样本图像中的特征,并基于提取出的特征图像进行self-attention计算,得到样本图像的分割结果。
在一些实施方式中,样本图像中仅标注了身体和头颈标签。相对应地,分割结果中可仅包括样本图像中各区域的属于身体或属于头颈的概率。
根据上述每个样本图像的分割结果和标注信息,计算当前训练周期的整体损失值。具体地,鉴于在只有前景和背景的情况下,小目标一旦有部分像素预测错误,就会导致loss大幅度的变动,从而导致梯度变化剧烈,训练不稳定等原因,若仅应用交叉熵损失函数,则对小目标是十分不利,因此,本实施例在应用原始损失函数交叉熵损失函数之外,还使用Generalized Dice损失函数对上述Swin Transformer模型进行训练。且Dice损失和交叉熵损失可以设置预设比例,如1:1。
本实施例根据每个样本图像的分割结果和标注信息,通过交叉熵损失函数包括的公式(1)计算当前训练周期的交叉熵损失值。根据每个样本图像的分割结果和标注信息,通过Dice损失函数包括的公式(2)计算当前训练周期的的Dice损失值;然后,根据交叉熵损失值和Dice损失值,通过公式(3)计算当前训练周期的整体损失值。
Ltotal=λ1Lce+λ2Lgd (3)
上述公式(1)和(2)中,L
ce表示交叉熵损失值,L
gd表示Generalized Dice损失值,N表示总的像素位置数,i表示像素位置,c表示标注类别(分割结果),m表示总标注类别数,p
ic表示第i个位置的分割结果,y
ic表示第i个位置的真实标注类别,
表示第i个位置预测为真实标注类别的概率,λ
1和λ
2分贝表示L
ce和L
gd的权重(本实施例中λ
1=1,λ
2=1)。
在原有loss的基础上,引入了人像检测中每一项分割的检测权重w,每个类别的权重
根据像素面积占比进行计算,如此,可平衡各类(包括背景类)目标区域对loss的贡献。
为了进一步优化上述Swin Transformer模型,本实施例还通过优化器和学习率调度器对每个周期训练后的基于注意力机制的分割模型进行优化。具体地,可使用流行的Adamw优化器,其更容易训练出和SGD+Moment等同的模型性能,SGD+Moment需要复杂的调参。通过余弦退火学习率使模型跳出局部最优解,从而训练得到更好的模型。其中,学习率调度器公式可如公式(4)。
上述公式(4)中,ηmin表示最小学习率,ηmax表示最大学习率,Tcur为上次学习率重置后的epochs(训练轮数),Ti表示经过多少epochs(训练轮数)后学习率进行重置,当Tcur=Ti时,设置ηt=ηmin,当学习率重置后,Tcur=0时,设置ηt=ηmax。
在另一些实施方式中,本实施例在训练了上述第二图像分割模型之后,还应用该第二图像分割模型对人物图像进行分割。具体地,该图像分割方法,还包括:
S5:获取待分割的人物图像。
获取待分割图像,该待分割图像中至少包括一个人物图像。可通过人体识别技术识别出待分割图像中包括的每个人物图像。然后从待分割图像中截取出每个人物图像分别作为待分割的人物图像。在截取的人物图像中可以截取上半身以上包括完整头部区域的图像。
S6:通过训练好的第二图像分割模型对人物图像进行分割。
对于待分割图像中包括的每个人物图像,可以进行图像对齐、去噪等预处理操作,然后将每个待分割的人物图像输入通过上述步骤S1-S4训练的第二图像分割模型中,该第二图像分割模型对输入的每个人物图像进行图像分割,并输出每个人无图像对应的人体各区域属于各人体类别的概率。
在一种实现方式中,训练的该第二图像分割模型仅输出人物图像属于的人体各区域属于各人体类别的概率,各人体类别包括身体和头颈部,若人物图像的某人体区域属于身体的概率大于0.5,属于头颈部的概率小于0.5,则表明该人体区域为身体,则表明该人体区域不是身体,而是头颈部。
在本申请实施例中,对用于对人物图像进行图像分割的第二图像分割模型进行训练时,采用了基于第一图像分割模型和预设抠图模型对每个训练数据集的原始人物图像中各人体区域进行标注预处理,可以较为准确地确定原始人物图像的个人体部位的类别,因此该标注过程可以大幅度提高图像标注效率及标注准确性,从而有效提高训练数据集的获取效率。采用基于该标注过程获得的训练数据对基于注意力机制的语义分割网络结构进行训练,可以提高训练得到的第二图像分割模型的图像分割速度和准确度,从而对于距离人脸较远的颈部和身体部位也能得到很好的分割效果。
基于上述图像分割方法相同的构思,本申请实施例还提供一种图像分割装置,该装置用于执行上述任一实施例提供的图像分割方法,如图5,该装置包括:
样本获取模块,用于获取获取多个原始人物图像;
数据集获取模块,用于基于第一图像分割模型和预设抠图模型,对每个原始人物图像中各人体区域进行标注,得到训练数据集;
模型构建模块,用于构建基于注意力机制的语义分割网络结构;
模型训练模块,用于根据训练数据集,对语义分割网络结构进行训练,得到用于进行人体区域分割的第二图像分割模型。
数据集获取模块,还用于基于原始人物图像,采用第一图像分割模型获得原始人物图像各人体区域的语义分割结果;通过预设抠图模型对原始人物图像对应的语义分割结果进行修正;根据修正后的语义分割结果,标注原始人物图像中的各人体区域;将标注后的原始人物图像存储在训练数据集中。
数据集获取模块,还用于通过预设抠图模型对原始人物图像进行抠图处理,划分出原始人物图像的前景像素区域和背景像素区域;
若抠图结果指示第一像素点为背景像素,且语义分割结果指示第一像素点为前景像素,则将第一像素点的语义分割结果修正为背景像素;
若抠图结果指示第一像素点为前景像素,且语义分割结果指示第一像素点为背景像素,则确定距离第一像素点最近且与第一像素点的语义分割结果不同的目标像素点,将目标像素点的语义分割结果确定为第一像素点的语义分割结果。
数据集获取模块,还用于包括:计算对原始人物图像和第一图像分割模型的预设标准图像进行人脸对齐操作所要使用的仿射变换矩阵;基于仿射变换矩阵对原始人物图像进行矩阵变换,得到原始人物图像对应的变换后图像;基于原始人物图像和变换后图像,采用第一图像分割模型获得原始人物图像对应的语义分割结果。
数据集获取模块,还用于基于仿射变换矩阵对原始人物图像进行矩阵变换,得到原始人物图像对应的变换后图像,包括:将仿射变换矩阵进行分解,分别得到旋转矩阵、平移矩阵及缩放矩阵;分别基于旋转矩阵、平移矩阵及缩放矩阵对原始人物图像进行旋转、平移变换及缩放变换,得到第一变换后图像;基于缩放矩阵和预设放大倍数的缩放矩阵对应的图像尺寸分别对第一变换后图像进行裁剪,得到多个第二变换后图像。
数据集获取模块,还用于基于原始人物图像和第二变换后图像,采用语义分割模型分别获得原始人物图像各人体区域的语义分割结果和各第二变换后图像各人体区域的语义分割结果;根据各第二变换后图像各人体区域的语义分割结果对原始人物图像各人体区域的语义分割结果进行修正,获得原始人物图像对应的语义分割结果。
数据集获取模块,还用于确定原始人物图像和各第二变换后图像的分割结果置信度;分割结果置信度与所在图像的尺寸成反比例关系;对于原始人物图像的每个像素点,确定其所在的原始人物图像和/或各第二变换后图像的分割结果置信度,将对应分割结果置信度最高的语义分割结果作为该像素点的语义分割结果。
数据集获取模块,还用于通过数据增强库对标注后的原始人物图像进行数据增强,得到增强数据集;对增强数据集中的部分图像进行多尺度的随机裁剪,得到训练数据集。
模型训练模块,还用于将训练数据集中的样本图像输入基于注意力机制的分割模型,得到样本图像的分割结果;根据每个样本图像的分割结果和标注信息,计算当前训练周期的整体损失值;通过优化器和学习率调度器对每个周期训练后的基于注意力机制的分割模型进行优化。
模型训练模块,还用于根据每个样本图像的分割结果和标注信息,通过交叉熵损失函数计算当前训练周期的交叉熵损失值;根据每个样本图像的分割结果和标注信息,通过Dice损失函数计算当前训练周期的的Dice损失值;根据交叉熵损失值和Dice损失值计算当前训练周期的整体损失值。
本申请的上述实施例提供的图像分割装置与本申请实施例提供的图像分割方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种电子设备,以执行上述图像分割方法。请参考图6,其示出了本申请的一些实施方式所提供的一种电子设备的示意图。如图6所示,电子设备8包括:处理器800,存储器801,总线802和通信接口803,处理器800、通信接口803和存储器801通过总线802连接;存储器801中存储有可在处理器800上运行的计算机程序,处理器800运行计算机程序时执行本申请前述任一实施方式所提供的图像分割方法。
其中,存储器801可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口803(可以是有线或者无线)实现该装置网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线802可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。其中,存储器801用于存储程序,处理器800在接收到执行指令后,执行程序,前述本申请实施例任一实施方式揭示的图像分割方法可以应用于处理器800中,或者由处理器800实现。
处理器800可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器800中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器800可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器800读取存储器801中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的电子设备与本申请实施例提供的图像分割方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的图像分割方法对应的计算机可读存储介质,请参考图7,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的图像分割方法。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的图像分割方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
需要说明的是:
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下示意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。