掌桥专利:专业的专利平台
掌桥专利
首页

神经网络训练方法及装置、图像分割方法

文献发布时间:2023-06-19 13:46:35


神经网络训练方法及装置、图像分割方法

技术领域

本公开涉及人工智能技术领域,更具体地涉及一种基于上下文编码的神经网络训练方法、装置、电子设备及可读存储介质以及图像分割方法。

背景技术

神经网络在各个领域的应用越来越广泛,在图像分割技术领域,神经网络需要进行训练后,再用于进行对图像进行分割。相关技术中,在进行图像分割神经网络训练时,由于样本数据库中存在正负样本分布不平衡,导致在神经网络的训练过程中,正负样本对神经网络训练的结果影响较大,最终导致图像分割的结果差异较大,无法准确的描绘出目标区域的边界,不能真实的反映图像分割的结果。

发明内容

鉴于上述问题,本公开提供了一种基于上下文编码的神经网络训练方法、装置、电子设备、可读存储介质以及图像分割方法。

根据本公开的第一个方面,提供了一种基于上下文编码的神经网络训练方法,所述神经网络包括特征编码器模块、上下文信息提取模块以及特征解码器模块,所述方法包括:将训练数据集和验证数据集输入至所述特征编码模块,得到特征图像,所述训练数据集和验证数据集均包括多个样本图像,所述样本图像包括正样本和负样本,所述训练数据集和所述验证数据集具有真实标签;将所述特征图像输入至所述上下文信息提取模块,提取上下文语义信息,并生成高级特征映射;将所述高级特征映射输入所述特征解码器模块,生成所述样本图像的预测分割结果;以及根据所述样本图像中的正样本和负样本的类型确定所述神经网络的损失函数,基于所述神经网络的损失函数计算预测分割结果和所述真实标签之间的损失值,并根据所述损失值更新所述神经网络的参数;判断所有样本图像的迭代次数是否达到第一阈值,在达到第一阈值后输出完成训练后的所述神经网络。

根据本公开的实施例,所述特征编码器模块和所述特征解码器模块均包含多级多尺度融合模块;所述特征编码器模块中相邻两级多尺度融合模块通过预定步长的卷积操作连接,所述卷积操作用于相互之间的特征添加操作;所述特征解码器模块中相邻两级的多尺度融合模块通过所述预定步长的转置卷积操作连接,所述卷积操作用于相互之间的特征添加操作。

根据本公开的实施例,所述多级多尺度融合模块中的每级多尺度融合模块包括:n个第一卷积层,第1个至第n-1个第一卷积层用于提取输入图像的第一特征,并将提取的第一特征与第n个第一卷积层提取的第一特征拼接,以获得从不同尺度的第一复杂特征,n为自然数;第二卷积层,所述第二卷积层用于提取输入图像的第二特征,并将提取的第二特征与所述第一复杂特征相加,得到生成第二复杂特征;激活函数层及归一化层,用于对所述第二复杂特征进行处理,并将处理结果输出。

根据本公开的实施例,在将训练数据集和验证数据集输入至所述特征编码模块之前,还包括对所述样本图像进行预处理,所述预处理包括:对所述样本图像进行格式转换,生成目标格式图像;对所述目标格式图像进行图像缩放,生成目标大小图像;对所述目标大小图像进行归一化处理以及二值化处理。

根据本公开的实施例,在对所述样本图像进行预处理之后,还包括将所述样本图像按照设定比例随机划分为训练数据集和验证数据集,并对所述训练数据集进行数据增强;其中,所述数据增强包括对二值化处理后的图像进行平移变换、随机裁剪、对比度变换中的至少一种。

根据本公开的实施例,所述根据所述样本图像中的正样本和负样本的类型确定所述神经网络的损失函数包括:在确定输入所述神经网络的样本图像为所述正样本的情况下,确定所述损失函数通过以下公式计算:

其中,G为真实标签,P为预测结果。

根据本公开的实施例,所述根据所述样本图像中的正样本和负样本的类型确定所述神经网络的损失函数还包括:在确定输入所述神经网络的样本图像为所述负样本的情况下,通过以下公式计算所述损失函数:

其中,G为真实标签,P为预测结果,N表示当训练数据集中负样本对应的激活值大于第二阈值的样本个数。

根据本公开的实施例,所述基于所述神经网络的损失函数计算预测分割结果和所述真实标签之间的损失值,并根据所述损失值更新所述神经网络的参数包括:使用基于训练数据集得到的所述损失函数,计算训练过程中的预测分割结果和所述真实标签之间的第一损失值;使用基于验证数据集得到的所述损失函数,计算验证过程中的预测分割结果和所述真实标签之间的第二损失值;在所述第二损失值小于所述第一损失值的情况下,更新所述神经网络的参数。

本公开的第二方面提供了一种图像分割方法,其中,将目标图像输入神经网络,得到图像分割结果;其中,所述神经网络是使用根据上文所述的方法训练的。

本公开的第三方面提供了一种基于上下文编码的神经网络训练装置,所述神经网络包括特征编码器模块、上下文信息提取模块以及特征解码器模块,所述装置包括:输入模块,配置为将训练数据集和验证数据集输入至所述特征编码模块,得到特征图像,所述训练数据集和验证数据集均包括多个样本图像,所述样本图像包括正样本和负样本,所述训练数据集和所述验证数据集具有真实标签;提取模块,配置为将所述特征图像输入至所述上下文信息提取模块,提取上下文语义信息,并生成高级特征映射;生成模块,配置为将所述高级特征映射输入所述特征解码器模块,生成所述样本图像的预测分割结果;以及更新模块,配置为根据所述样本图像中的正样本和负样本的类型确定所述神经网络的损失函数,基于所述神经网络的损失函数计算预测分割结果和所述真实标签之间的损失值,并根据所述损失值更新所述神经网络的参数;输出模块,配置为判断所有样本图像的迭代次数是否达到第一阈值,在达到第一阈值后输出完成训练后的所述神经网络。

根据本公开的实施例,神经网络训练装置还包括预处理模块,在将样本图像中的训练数据集和验证数据集输入至所述特征编码模块之前,还包括对所述样本图像进行预处理,所述预处理模块配置为对所述样本图像进行格式转换,生成目标格式图像;对所述目标格式图像进行图像缩放,生成目标大小图像;对所述目标大小图像进行归一化处理以及二值化处理。

根据本公开的实施例,神经网络训练装置还包括数据增强模块,在对所述样本图像进行预处理之后,将所述样本图像按照设定比例随机划分为训练数据集和验证数据集,并对所述训练数据集进行数据增强;所述数据增强模块配置为对二值化处理后的图像进行平移变换和/或随机裁剪和/或对比度变换。

根据本公开的实施例,所述更新模块包括更新子模块,所述更新子模块配置为使用基于训练数据集得到的所述损失函数,计算训练过程中的预测分割结果和所述真实标签之间的第一损失值;使用基于验证数据集得到的所述损失函数,计算验证过程中的预测分割结果和所述真实标签之间的第二损失值;在所述第二损失值小于所述第一损失值的情况下,更新所述神经网络的参数。

本公开的第四方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据上文所述的神经网络训练方法。

本公开的第五方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时,实现根据上文所述的神经网络训练方法。

本公开的第六方面提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理执行时实现根据上文所述的神经网络训练方法。

根据本公开的实施例,构建具有上下文信息提取模块的神经网络,在进行神经网络训练过程中,通过基于样本数据集中的正样本和负样本的类型确定损失函数,从而实现针对不同的样本类型采用不同的损失函数训练所述神经网络,可以有效避免神经网络在针对不同的正负样本的数量时梯度消失的情况,有效提高神经网络训练过程中的网络参数的精确度。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了可以应用本公开实施例的神经网络训练方法的系统架构的示意图;

图2示意性示出了根据本公开实施例的神经网络训练方法的流程图;

图3示意性示出了根据本公开实施例的神经网络的多尺度融合模块的结构示意图;

图4示意性示出了根据本公开实施例的神经网络的对样本图像进行预处理的流程图;

图5示意性示出了根据本公开实施例的神经网络的膨胀卷积模块的结构示意图;

图6示意性示出了根据本公开实施例的神经网络的多尺度池化模块的结构示意图;

图7示意性示出了根据本公开实施例的基于上下文编码的神经网络的结构示意图;

图8示意性示出了根据本公开实施例的基于上下文编码的神经网络的训练装置的结构框图;以及

图9示意性示出了根据本公开实施例的适于神经网络训练方法的电子设备的方框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

随着互联网金融行业的飞速发展,对用户信息安全的要求也在不断提高。为了保证用户信息的安全性,越来越多的安全技术被应用到信息安全技术领域,例如人脸识别技术。人脸信息具有不可复制、简便直观、不可盗取的特点,是当前安全技术应用的重点。然而,人脸信息在进行识别和核对等过程中,需要对采集的人脸信息进行处理,例如包括对人脸图像进行图像分割,以实现精确比对人脸信息。

相关技术中,研究人员将U-Net神经网络模型运用到人脸分割场景中,该模型采用编码器-解码器结构,也是分为下采样阶段和上采样阶段,网络结构中只有卷积层和池化层,没有全连接层,网络中较浅的高分辨率层用来解决像素定位的问题,较深的层用来解决像素分类的问题,从而可以实现图像语义级别的分割。但编码器中连续的合并操作或跨步卷积操作将会导致某些空间信息的丢失,虽然这种空间不变性在分类任务以及物体检测任务中是有益的,但是往往会阻碍需要详细空间信息的密集预测任务,限制了模型对形状变化的学习能力,导致当分割目标之间差异较大时(比如:人脸角度的不同,各个器官的肤色以及形状的不同)无法准确描绘出目标区域的边界。此外,在人脸分割任务中存在正负样本分布不平衡的情况,即使是同类样本其分类难度也不一样。

对此,本公开的实施例提供了一种基于上下文编码的神经网络训练方法及装置以及图像分割方法,其中,神经网络包括特征编码器模块、上下文信息提取模块以及特征解码器模块,该神经网络训练方法包括:将训练数据集和验证数据集输入至特征编码模块,得到特征图像,训练数据集和验证数据集均包括多个样本图像,样本图像包括正样本和负样本,训练数据集和所述验证数据集具有真实标签;将特征图像输入至上下文信息提取模块,提取上下文语义信息,并生成高级特征映射;将高级特征映射输入特征解码器模块,生成样本图像的预测分割结果;以及根据样本图像中的正样本和负样本的类型确定神经网络的损失函数,基于神经网络的损失函数计算预测分割结果和真实标签之间的损失值,并根据损失值更新神经网络的参数;判断所有样本图像的迭代次数是否达到第一阈值,在达到第一阈值后输出完成训练后的神经网络。

根据本公开的实施例,构建具有上下文信息提取模块的神经网络,在进行神经网络训练过程中,通过基于样本数据集中的正样本和负样本的类型确定损失函数,从而实现针对不同的样本类型采用不同的损失函数训练所述神经网络,可以有效避免神经网络在针对不同的正负样本的数量时梯度消失的情况,有效提高神经网络训练过程中的网络参数的精确度。

图1示意性示出了可以应用本公开实施例的神经网络训练方法的系统架构的示意图。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。需要说明的是,本公开实施例提供的基于上下文编码的神经网络训练方法和装置可用于人工智能技术领域、图像处理技术领域、金融领域在图像处理的相关方面,也可用于除金融领域之外的任意领域,本公开实施例提供的神经网络训练方法和装置对应用领域不做限定。

如图1所示,可以应用神经网络训练方法的示例性系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种图像获取类客户端应用,例如拍照类应用,可以根据用户的需求获取人脸图像等(仅为示例)。

终端设备101、102、103可以是具有显示屏并且支持人脸信息采集的各种电子设备,包括但不限于智能手机、智能电视、平板电脑、膝上型便携计算机和台式计算机等等。终端设备101、102、103可以通过人脸信息采集获取用户或者其他人的人脸图像信息,并通过网络104传输至服务器105。

服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所发送来的图片进行处理或存储的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户数据(例如人物图像)进行分析等处理,并将处理结果(例如图像处理后的分割或识别结果)反馈给终端设备。

需要说明的是,本公开实施例所提供的神经网络的训练方法一般可以由终端设备101、102、103或者服务器105执行。相应地,本公开实施例所提供的神经网络训练装置一般可以设置于终端设备101、102、103或者服务器105中。本公开实施例所提供的神经网络训练方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的神经网络训练装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

以下将通过图2至图7对公开实施例的基于上下文编码的神经网络训练方法进行详细描述。

图2示意性示出了根据本公开实施例的神经网络训练方法的流程图。根据本公开的实施例,所述神经网络包括特征编码器模块、上下文信息提取模块以及特征解码器模块。

如图2所示,本公开实施例的神经网络训练方法200包括操作S210至操作S250。

在操作S210中,将训练数据集和验证数据集输入至特征编码模块,得到特征图像,训练数据集和验证数据集均包括多个样本图像,样本图像包括正样本和负样本,训练数据集和验证数据集具有真实标签。

例如,对数据集中的多个待分割的图像进行处理,得到训练数据集和验证数据集,其中训练数据集是用于对神经网络进行训练的,验证数据集是用于对训练后的神经网络进行验证。训练数据集和验证数据集具有真实标签,可以根据真实标签来判断训练神经网络的训练结果以及对神经网络的参数进行调整等操作。在本公开的实施例中,样本图像中包括有正样本和负样本。例如,样本图像中的正样本和负样本的数量根据每次选取的数据集的不同而不同。

在操作S220中,将特征图像输入至上下文信息提取模块,提取上下文语义信息,并生成高级特征映射。

例如,上下文信息提取模块用于提取图片中的上下文语义信息,以生成高级特征映射。

在操作S230中,将高级特征映射输入特征解码器模块,生成样本图像的预测分割结果。

在操作S240中,根据样本图像中的正样本和负样本的类型确定神经网络的损失函数,基于神经网络的损失函数计算预测分割结果和真实标签之间的损失值,并根据损失值更新神经网络的参数。

例如,样本图像中包括正样本和负样本,对于正样本,其损失函数可以选用dice损失函数,可以计算预测分割结果和真实标签之间的损失值。而对于负样本,若选用dice损失函数,则会存在负样本的dice系数等于0,损失值等于1,梯度为0,训练过程中对神经网络模型不会产生影响,目标区域无法对每个像素点进行正确分类,导致背景区域和目标区域都倾向于被预测为背景区域。因此,通过在输入神经网络的样本为负样本时,则基于负样本重新确定与dice损失函数不同的新的损失函数。可以有效避免梯度为0的情况出现,提高神经网络训练过程中对背景区域和目标区域的识别准确率,提高神经网络训练的计算精度。

在本公开的实施例中,特征编码器模块和特征解码器模块均包含多级多尺度融合模块;特征编码器模块中相邻两级多尺度融合模块通过预定步长的卷积操作连接,卷积操作用于相互之间的特征添加操作;特征解码器模块中相邻两级的多尺度融合模块通过预定步长的转置卷积操作连接,卷积操作用于相互之间的特征添加操作。

例如,特征编码器模块包括4个多尺度融合模块,每相邻两个多尺度融合模块之间进行一个步长为2的3×3卷积操作。特征解码器模块包括4个多尺度融合模块,每相邻两个多尺度融合模块之间进行一个步长为2的3×3转置卷积操作。特征编码器模块中的多尺度融合模块和特征解码器模块中的多尺度融合模块一一对应,且相互之间特征进行特征添加操作。

图3示意性示出了根据本公开实施例的神经网络的多尺度融合模块300的结构示意图。

如图3所示,多尺度融合模块300中的每级多尺度融合模块包括:n个第一卷积层,第1个至第n-1个第一卷积层用于提取输入图像的第一特征,并将提取的第一特征与第n个第一卷积层提取的第一特征拼接,以获得从不同尺度的第一复杂特征,n为自然数;第二卷积层,所述第二卷积层用于提取输入图像的第二特征,并将提取的第二特征与所述第一复杂特征相加,得到生成第二复杂特征;激活函数层及归一化层,用于对所述第二复杂特征进行处理,并将处理结果输出。

例如,多尺度融合模块包括3个第一卷积层302、303、304,其中,第一卷积层可以是3×3卷积操作。第一个卷积操作302和第二个卷积操作303分别用于对输入301的图像的第一特征进行提取,第一卷积操作和第二卷积操作之后添加残差连接,即将第一卷积操作302和第二卷积操作303提取的第一特征与第三卷积操作304后得到的特征进行拼接,获得不同尺度的第一复杂特征。为了输入和输出的通道数保持相同,我们将三个连续的卷积层的filter数量分别设置为(0.2,0.3,0.5)×Input

例如,第二卷积层305例如可以是1×1卷积操作,用于提取输入图像301的第二特征,在输入之后添加1个1×1卷积操作,与前面得到的第一复杂特征相加,生成第二复杂特征。

例如,本公开的激活函数306可以是relu激活函数,归一化处理307例如可以是Batch Normalization,进行归一化处理后并将输出结果作为下一个卷积或转置卷积的输入,最终通过输出308端进行输出。

在操作S250中,判断所有样本图像的迭代次数是否达到第一阈值,在达到第一阈值后输出完成训练后的神经网络。

例如,第一阈值包括epoch值,判断数据集中的所有样本图像的迭代次数是否达到预先设定的epoch值,根据预先设定的epoch值,可以确定神经网络的训练程度。Epoch值例如可以是100-200次之间的值,例如epoch值设置为150次,在epoch值超过150次时,则停止训练,并输出训练后的神经网络。又例如,在判断epoch值未达到第一阈值时,则继续输入样本图像进行迭代,直到epoch值达到第一阈值时,结束训练过程,并输出训练后的神经网络。

图4示意性示出了根据本公开实施例的神经网络的对样本图像进行预处理的流程图。

在本公开的实施例中,在将样本图像中的训练数据集和验证数据集输入至所述特征编码模块之前,还包括对样本图像进行预处理,预处理包括:对样本图像进行格式转换,生成目标格式图像;对目标格式图像进行图像缩放,生成目标大小图像;对目标大小图像进行归一化处理以及二值化处理。

如图4所示,对样本图像进行预处理的流程400包括操作S410至操作S430。

在操作S410中,对样本图像进行格式转换,生成目标格式图像。

例如,在进行样本图像收集时,样本图像的格式存在差异,以及输入至神经网络的样本图像需要满足特定格式,则根据需要对样本图像进行格式转换,以生成满足要求的目标格式图像。

在操作S420中,对目标格式图像进行图像缩放,生成目标大小图像。

例如,对目标格式图像进行缩放,以生成满足要求大小的图像。例如,将图像的像素至设置为256×256。

在操作S430中,对目标大小图像进行归一化处理以及二值化处理。

例如,对缩放后的目标大小图像进行归一化处理,将其归一化到[0,1]区间。然后对归一化后的图像进行二值化处理。例如设置阈值为0.5,大于阈值的像素值处理为1,小于阈值的像素值处理为0。

根据本公开的实施例,在对样本图像进行预处理之后,还包括将样本图像按照设定比例随机划分为训练数据集和验证数据集,并对训练数据集进行数据增强。其中,数据增强包括对二值化处理后的图像进行平移变换、随机裁剪、对比度变换中的至少一种。

例如,将样本图像按照设定比例随机划分为训练数据集和验证数据集。例如按照7∶3的比例随机划分,一部分为训练集,另一部分为验证集。

在本公开的实施例中,通过训练数据集进行数据增强,可以提高训练的数据量,从而使训练得到的神经网络具有更高的准确度。

例如,数据增强可以是平移变换(shift),即对原始图片在图像平面内以某种方式(预先定义或者随机方式确定平移的步长、范围及其方向)进行平移。

数据增强也可以是随机裁剪(Random Crop),即随机定义感兴趣区域以裁剪图像,相当于增加随机扰动。

数据增强还可以是对比度变换(Contrast),即改变图像对比度,相当于在HSV空间中,保持色调分量H不变,而改变亮度分量V和饱和度S,用于模拟现实环境的光照变化。

在本公开的实施例中,根据样本图像中的正样本和负样本的类型确定神经网络的损失函数包括:在确定输入神经网络的样本图像为正样本的情况下,确定损失函数通过以下公式计算:

其中,G为真实标签,P为预测结果。

例如,在确定输入神经网络的样本图像为正样本的情况下,则损失函数选用的是现有的损失函数的计算公式。

在本公开的实施例中,根据样本图像中的正样本和负样本的类型确定神经网络的损失函数还包括:在确定输入神经网络的样本图像为负样本的情况下,将神经网络模型中输出大于第二阈值的元素的L1范数作为新的损失函数,通过以下公式计算所述损失函数:

其中,G为真实标签,P为预测结果,N表示当训练数据集中负样本对应的激活值大于第二阈值的样本个数。

例如,第二阈值的在0到1之间的范围,例如优选为0.001,

根据本公开的实施例,通过确定输入神经网络的样本类型的不同来确定不同的损失函数,可以避免在正负样本不一致时候导致的梯度为0的情况出现,提高神经网络训练过程中对背景区域和目标区域的识别准确率,提高神经网络训练的计算精度。

在本公开的实施例中,基于神经网络的损失函数计算预测分割结果和真实标签之间的损失值,并根据损失值更新神经网络的参数包括:使用基于训练数据集得到的损失函数,计算训练过程中的预测分割结果和真实标签之间的第一损失值;使用基于验证数据集得到的损失函数,计算验证过程中的预测分割结果和真实标签之间的第二损失值;在第二损失值小于所述第一损失值的情况下,更新神经网络的参数。

例如,第一损失值是训练过程中计算的损失值,第二损失值是验证过程中计算的损失值。若第二损失值大于第一损失值,则神经网络在训练过程中的神经网络的参数达到预期结果。则执行本公开实施例的操作S250。若第二损失值小于第一损失值,则说明在验证过程中的神经网络的参数满足要求,保存当前训练的神经网络模型更新网络参数,然后执行本公开实施例的操作S250。

在本公开的实施例中,神经网络的上下文信息提取模块由密集膨胀卷积模块和残差多尺度池化模块两部分组成。

图5示意性示出了根据本公开实施例的神经网络的膨胀卷积模块的结构示意图。

如图5所示,密集膨胀卷积模块以级联的方式进行堆叠,有四个级联分支,其中膨胀卷积的采样率从1到1、3、5依次递增,每个分支对应的感受野分别为3、7、9、19,从多个尺度上捕获特征信息。在每个膨胀卷积分支的最后都经过一个1×1的卷积层进行线性校正。最后,利用ResNet中快捷方式的机制,将原始特征与其他并行分支的输出特征逐位置进行相加。

图6示意性示出了根据本公开实施例的神经网络的多尺度池化模块的结构示意图。

如图6所示,多尺度池化模块使用四个不同大小的视场来对全局上下文信息进行编码,分别为2×2、3×3、5×5和6×6,四种级别的输出包含各种大小的特征图。此外,为了减少权重的维数和计算成本,在每个池化层之后都使用了一个1×1的卷积,将对应级别的通道数减小到原始输入的1/M,其中M表示原始输入中的通道数。之后,通过双线性插值法将每一级别所输出的低维特征图上采样到原始输入特征图的尺寸。最后,将原始特征与几个不同级别的上采样后的特征图拼接起来。

图7示意性示出了根据本公开实施例的基于上下文编码的神经网络的结构示意图。

如图7所示,神经网络包括特征编码器模块、上下文信息提取模块以及特征解码器模块。其中,特征编码器模块和特征解码器模块均包括4个多尺度融合模块,特征编码器模块的多尺度融合模块和特征解码器模块的多尺度融合模块一一对应且相互之间特征进行添加操作。其中,特征编码器模块中每个多尺度融合模块通过一个步长为2的3×3卷积进行连接。特征解码器中每个多尺度融合模块通过一个步长为2的3×3转置卷积连接。

在本公开的实施例中,在进行神经网络的训练过程中,首先需要对多个样本图像进行预处理,例如上文所述的格式转换、图像缩放、归一化处理以及二值化处理。接下来,将样本图像按照设定比例随机划分为训练数据集和验证数据集,并对训练数据集进行数据增强。接下来,使用训练数据集对神经网络进行训练,之后采用验证数据集对神经网络进行验证。例如,首先初始化神经网络的卷积核权重和损失函数为0;将训练数据集输入基于上下文编码的神经网络;将训练数据集与基于上下文编码的神经网络中各个节点参数进行计算,实现网络训练的向前传播;计算神经网络正向传播输出的预测分割结果与真实标签之间的差距,计算损失函数;对于正样本,采用上述的公式(1)计算损失函数,对于负样本,采用上述的公式(2)计算损失函数。接下来,将验证数据集输入至神经网络,进行验证。在验证过程中,基于上述同样的根据正负样本的类型确定损失函数的方法,计算验证过程中预测分割结果与真实标签之间的损失值。判断验证过程中的损失值是否小于之前验证过程中的最小损失值,若验证过程中的损失值小于之前验证过程中的最小损失值,则保存当前训练的神经网络参数。接下来,判断当前迭代次数是否达到预先设定的epoch值,若未达到则继续进行下一次迭代,若达到预先设定的epoch值,则表面神经网络训练完成,输出训练完成的神经网络。

在本公开的实施例中,还提供了一种图像分割方法,包括将目标图像输入神经网络,得到图像分割结果;其中,神经网络是使用根据上文所述的训练方法训练得到的。

根据本公开的实施例,将训练后的神经网络用于图像分割,例如,人脸识别技术中的图像分割,由于人脸角度不同,或者背景不同时,所获取的人脸图像的存在较大差异,在人脸图像分割过程中存在正负样本分布不平衡的情况,因此,通过上述训练方法所训练的神经网络来进行人脸图像的分割,能提高图像分割的准确性。

图8示意性示出了根据本公开实施例的基于上下文编码的神经网络的训练装置的结构框图。

如图8所示,本公开实施例的神经网络训练装置800包括输入模块810、提取模块820、生成模块830、更新模块840以及输出模块850。

其中,输入模块810配置为将训练数据集和验证数据集输入至特征编码模块,得到特征图像,训练数据集和验证数据集均包括多个样本图像,样本图像包括正样本和负样本,训练数据集和验证数据集具有真实标签。在一实施例中,输入模块810可以用于执行前文描述的操作S210,在此不再赘述。

提取模块820配置为将特征图像输入至上下文信息提取模块,提取上下文语义信息,并生成高级特征映射。在一实施例中,提取模块820可以用于执行前文描述的操作S220,在此不再赘述。

生成模块830配置为将高级特征映射输入特征解码器模块,生成样本图像的预测分割结果。在一实施例中,生成模块830可以用于执行前文描述的操作S230,在此不再赘述。

更新模块840配置为根据样本图像中的正样本和负样本的类型确定神经网络的损失函数,基于神经网络的损失函数计算预测分割结果和真实标签之间的损失值,并根据损失值更新神经网络的参数。在一实施例中,更新模块840可以用于执行前文描述的操作S240,在此不再赘述。

输出模块850配置为判断所有样本图像的迭代次数是否达到第一阈值,在达到第一阈值后输出完成训练后的神经网络。在一实施例中,输出模块850可以用于执行前文描述的操作S250,在此不再赘述。

在本公开的实施例中,神经网络训练装置还包括预处理模块,在将样本图像中的训练数据集和验证数据集输入至特征编码模块之前,还包括对样本图像进行预处理,预处理模块配置为对样本图像进行格式转换,生成目标格式图像;对目标格式图像进行图像缩放,生成目标大小图像;对目标大小图像进行归一化处理以及二值化处理。

在本公开的实施例中,神经网络训练装置还包括数据增强模块,在对样本图像进行预处理之后,将样本图像按照设定比例随机划分为训练数据集和验证数据集,并对训练数据集进行数据增强;数据增强模块配置为对二值化处理后的图像进行平移变换和/或随机裁剪和/或对比度变换。

在本公开的实施例中,更新模块包括更新子模块,更新子模块配置为使用基于训练数据集得到的损失函数,计算训练过程中的预测分割结果和真实标签之间的第一损失值;使用基于验证数据集得到的损失函数,计算验证过程中的预测分割结果和真实标签之间的第二损失值;在第二损失值小于第一损失值的情况下,更新神经网络的参数。

根据本公开的实施例,输入模块810、提取模块820、生成模块830、更新模块840、输出模块850、预处理模块、数据增强模块以及更新子模块中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,输入模块810、提取模块820、生成模块830、更新模块840、输出模块850、预处理模块、数据增强模块以及更新子模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,输入模块810、提取模块820、生成模块830、更新模块840、输出模块850、预处理模块、数据增强模块以及更新子模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图9示意性示出了根据本公开实施例的适于实现神经网络训练方法的电子设备的方框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的神经网络训练方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。

本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的神经网络训练方法。

在该计算机程序被处理器901执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。

在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

技术分类

06120113807011