具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
现有技术中,基于深度学习的图像检测方法,大多数是通过检测图像中水稻稻穗数量,来估算水稻产量。然而,随着水稻灌浆成熟,穗粒逐渐充实变重,穗轴由中下部开始向下弯曲,使得稻穗没入水稻剑叶以下,稻穗与稻穗、稻穗与叶片相互交错,导致很难检测出每一个稻穗,导致产量估算误差较大,适用性较差。
本申请人考虑到,采用语义分割的图像分割方法,该方法不强调单个稻穗,而是从整体上找出图像中所有视觉上可观察到的稻穗,语义分割是对图像中每个像素点的类别进行判断,从而分割得到稻穗区域,为水稻的产量估算提供了一种全新的思路。
目前的图像分割模型如Unet模型以及Unet的改进模型如Unet++、ResUnet、DenseUnet等模型。然而,Unet模型在编码(即下采样阶段)以及解码(即上采样阶段)均只采样了最大池化提取最显著的特征信息,进而导致部分特征细节信息丢失较多,而且上采样阶段以及下采样阶段也仅利用了相邻节点的输出信息,并未考虑非相邻节点之间的特征信息差异与融合,导致模型准确度较低。而对于Unet的改进模型如Unet++模型,其对Unet模型进行结构上的改进,虽然性能表现有较明显提升,但是相对于Unet模型其参数量和浮点计算量等也显著增加,比如,在相同的输入和模型上下采样主干通道数相同的条件下,Unet++模型的参数量增加了16%左右,浮点计算量增加了2.5倍,而浮点计算量的骤增会严重影响模型的推理速度,降低模型的运行效率等。
为此,本申请提出一种模型训练方法、图像分割方法以及图像分割系统,其能够减小在模型训练的采样阶段中的信息损失而导致的学习误差,有利于提高图像分割模型的准确度,降低误差。
本申请提供的模型训练方法,可以应用于图像分割系统,该图像分割系统中包含图像分割模型,该模型训练方法用于训练该图像分割模型,训练好的图像分割模型可用于图像分割方法中对待分割图像(如稻穗图像等)进行分割,以将稻穗图像中的稻穗区域与背景区域区分开,从而有利于准确地估算出水稻产量等。
相较于现有的图像分割模型,本申请图像分割系统中图像分割模型优化了各节点之间的数据连接方式,充分融合了相邻节点以及非相邻节点的输出信息,有利于丰富特征信息,提升特征细节信息。此外,本申请提供的图像分割模型还减少了参数量和计算量,使得模型训练速度更快,收敛更快,提高模型的运行效率。
图1为本申请模型训练方法一个实施例的方法示意图。如图1所示,上述模型训练方法可以包括:
S101、获取训练图像。
在本实施例中,该训练图像用于训练上述图像分割模型。该训练图像中可以包含多个标注信息,该标注信息用于标注训练图像中的目标区域,例如,训练图像为对稻田中稻穗进行拍摄得到的稻穗图像,该标注信息用于标注该稻穗图像中的稻穗区域,以用于将稻穗区域与背景区域区分开来。
举例地,步骤S101中,可以采用载有摄像装置的无人机从稻田中多个不同区域的上方(如垂直高度为4.3m等)向下(如竖直向下90°等)拍摄得到多张稻穗图像101,如图2A所示。每张稻穗图像101中包含对应拍摄区域内的所有稻穗,并利用标注工具(如labelme等)对每张稻穗图像101中的稻穗区域进行标注,得到训练图像102,如图2B所示,该训练图像102为标注后的稻穗图像,训练图像102中包含多个标注信息1021,标注信息1021如采用多边形标注框对稻穗区域进行标注等,该标注框的坐标点可以用于表示稻穗区域的边缘。
其中一种可能的实现方式中,在步骤S101之后,所述方法还可以包括:
对所述训练图像进行预处理,得到预处理后的训练图像。
在本实施例中,所述预处理可以至少包括将所述训练图像切分为多个目标尺寸的子训练图像1022,如图2C所示,以及根据所述训练图像的标注信息,制作与所述子训练图像1022相对应的掩码图1023,如图2D所示。该掩码图为用于模型训练的标签。
具体地,子训练图像1022的获取步骤可以包括:从训练图像的左上角开始,按照目标尺寸(如长512mm×宽512mm等),将训练图像切分为多个子训练图像1022,并舍弃最右侧以及最下侧不足512mm长度的图像。
掩码图1023的制作步骤可以包括:获取标注信息中标注框(如多边形标注框等)的坐标点集合,创建与训练图像大小一致(如长宽相等)且值为0的二维矩阵,将二维矩阵中与标准框相对应的位置区域内的数值均设为255,然后采用与训练图像相同的切分方式,对该二维矩阵进行切分,得到掩码图1023,即该掩码图1023为切分后的二维矩阵,且该掩码图1023的尺寸与子训练图像1022的尺寸相同。
因此,上述训练图像可用于对图像分割模型进行训练,以得到训练好的图像分割模型。
在本实施例中,所述图像分割模型中可以包含按顺序排列的多个下采样节点以及多个上采样节点,换句话说,图像分割模型为多层架构,同一层级中可以包括一个下采样节点以及一个上采样节点,该下采样节点用于实现模型训练过程中下采样阶段(或编码阶段)的信息处理,该上采样节点用于实现模型训练过程中上采样阶段(或解码阶段)的信息处理。
优选地,该图像分割模型为4层架构,包含5个下采样节点以及5个上采样节点,其中,最后一个下采样节点与第一个上采样节点可以为同一节点。按照排列顺序,多个下采样节点依次为第一下采样节点(或第一个下采样节点)、第二下采样节点(或第二个下采样节点)、第三下采样节点(或第三个下采样节点)、第四下采样节点(或第四个下采样节点)以及第五下采样节点(或第五个下采样节点),且按照排列顺序,各下采样节点的编号依次增大,例如,第一下采样节点的编号为0,其输出结果表示为X0,第二下采样节点的编号为1,其输出结果表示为X1,第三下采样节点的编号为2,其输出结果表示为X2,第四下采样节点的编号为3,其输出结果表示为X3,第五下采样节点的编号为4,其输出结果表示为X4。
相应地,按照排列顺序,多个上采样节点依次为第一上采样节点(或第一个上采样节点)、第二上采样节点(或第二个上采样节点)、第三上采样节点(或第三个上采样节点)、第四上采样节点(或第四个上采样节点)以及第五上采样节点(或第五个上采样节点),且按照排列顺序,各上采样节点的编号依次减小,例如,第一上采样节点与第五下采样节点为同一节点,即编号为4,其输出结果表示为X4,第二下采样节点的编号为3,其输出结果表示为Y3,第三下采样节点的编号为2,其输出结果表示为Y2,第四下采样节点的编号为1,其输出结果表示为Y1,第五下采样节点的编号为0,其输出结果表示为Y0。
因此,可以看出的是,同一层级(或同一层架构)中上采样节点与下采样节点的编号相同,例如,编号为0的第一下采样节点与第五上采样节点均处于第一层级,编号为1的第二下采样节点与第四上采样节点均处于第二层级,编号为2的第三下采样节点与第三上采样节点均处于第三层级,编号为3的第四下采样节点与第二上采样节点均处于第四层级。
S102、将所述训练图像输入第一个所述下采样节点中,得到第一个所述下采样节点的输出结果,并基于第一个所述下采样节点的输出结果,得到第二个所述下采样节点的输出结果。
也就是说,第一个下采样节点为上述第一下采样节点,其输出结果为X0。
举例地,图像的大小表示为[H,W,C],H表示图像的高(height),W表示图像的宽(Width),C表示图像的通道(channel),后面均采用H*W*C的形式来表示图像的大小。例如,输入第一个下采样节点的训练图像的大小为256*256*3。
在本实施例中,各节点用于对输入的图像进行特征提取操作,得到对应的输出结果。特征提取操作如经过两层CBR(n)的特征提取操作等,优选地,CBR(n)被定义为:输出通道为n的步长stride=1,padding=1的3*3二维卷积+二维BatchNorm+ReLU激活函数。
在本实施例中,步骤S102中可以包括:对输入的训练图像进行两层CBR(32)的特征提取操作,得到第一个下采样节点的输出结果X0,如第一个下采样节点的输出结果X0为256*256*32的输出图像。
S103、基于下一个下采样节点之前的所有所述下采样节点的输出结果,得到所述下一个下采样节点的输出结果,所述下一个下采样节点的输出结果中包含最后一个下采样节点的输出结果,所述下一个下采样节点之前的所有所述下采样节点中包含相邻下采样节点以及非相邻下采样节点,所述下一个下采样节点的输出结果基于所述相邻下采样节点的输出结果以及所述非相邻下采样节点的输出结果得到。
也就是说,在模型训练的采样阶段中,各个节点的输出结果不仅输出到下一个节点,而且还输出到下一个节点之后的所有节点,使得模型中各个节点在进行卷积操作(或上述特征提取操作等)时,不仅能接收来自上一个节点的输出结果,而且还能接收到来自上一个节点之前所有节点的输出结果,以减小在采样阶段中的信息损失而导致的学习误差,有利于提高图像分割模型的准确度,降低误差。
在现有技术的Unet模型中,其下采样阶段的各节点的输出结果的输出流程为:X0→X1→X2→X3→X4,以及上采样阶段的各节点的输出结果的输出流程为:X4→Y3→Y2→Y1→Y0,即在该Unet模型中,无论是下采样阶段还是上采样阶段,仅考虑了相邻节点的输出结果,而未考虑非相邻节点的输出结果,因此导致信息丢失较多,特对对于无人机视角下采集到的稻穗图像,图像本身特征较为复杂,稻穗区域与背景区域特征类似,分割难度较大,使得采样阶段中信息损失更多,从而导致模型训练的学习误差较大。
而本申请提供的图像分割模型中,如图3所示,在下采样阶段中,不仅保留了相邻的各下采样节点的输出结果的输出流程:X0→X1→X2→X3→X4,而且还增加了非相邻的各下采样节点的输出结果的输出流程:如X0→X2,X0→X3,X0→X4,X1→X3,X1→X4,X2→X4等,因此,有利于降低下采样阶段中的信息损失,降低模型训练学习误差,提高模型准确度。相应地,在上采样阶段中,不仅保留了相邻的各上采样节点的输出结果的输出流程:X4→Y3→Y2→Y1→Y0,而且还增加了非相邻的各上采样节点的输出结果的输出流程,如X4→Y2,X4→Y1,X4→Y0,Y3→Y1,Y3→Y0,Y2→Y0等,因此,有利于降低上采样阶段中的信息损失,降低模型训练学习误差,提高模型准确度。
其中一种可能的实现方式中,所述下一个下采样节点之前的所有所述下采样节点中包含相邻下采样节点以及非相邻下采样节点,所述基于下一个下采样节点之前的所有所述下采样节点的输出结果,得到所述下一个下采样节点的输出结果,包括:
S201、对所述相邻下采样节点的输出结果进行最大池化操作,得到所述相邻下采样节点的最大池化输出结果;
S202、对所述非相邻下采样节点的输出结果进行均值池化操作,得到所述非相邻下采样节点的均值池化输出结果;
S203、基于所述相邻下采样节点的最大池化输出结果以及所述非相邻下采样节点的均值池化输出结果,得到所述下一个下采样节点的输出结果。
也就是说,在下采样阶段中,在处理来自不同节点的输出结果的过程中,对相邻节点的输出结果进行最大池化操作,对非相邻节点的输出结果进行均值池化操作,有利于提高池化效果。
举例地,以第四下采样节点为例,第三下采样节点为第四下采样节点之前的相邻节点,第一下采样节点以及第二下采样节点为第四下采样节点之前的非相邻节点。因此,在步骤S201中,对第三下采样节点的输出结果进行最大池化操作,得到第三下采样节点的最大池化输出结果,在步骤S202中,对第一下采样节点以及第二下采样节点的输出结果分别进行均值池化操作,得到第一下采样节点的均值池化输出结果以及第二下采样节点的均值池化输出结果,在步骤S203中,根据第一下采样节点的均值池化输出结果、第二下采样节点的均值池化输出结果以及第三下采样节点的最大池化输出结果,得到第四下采样节点的输出结果。
其中一种可能的实现方式中,步骤S203可以包括:
S301、获取多个第一权重值;
S302、对所述非相邻下采样节点的均值池化输出结果进行卷积操作,得到卷积后的所述非相邻下采样节点的均值池化输出结果;
S303、基于多个所述第一权重值,对所述相邻下采样节点的最大池化输出结果以及卷积后的所述非相邻下采样节点的均值池化输出结果进行加权和操作,得到所述下一个下采样节点的输入图像;
S304、将所述下一个下采样节点的输入图像输入到所述下一个下采样节点中,得到所述下一个下采样节点的输出结果。
也就是说,为了减少参数量,本申请中,根据权重值对来自不同下采样节点的输出结果进行加权和操作。优选地,该第一权重值是可训练参数,通过模型训练学习来自不同节点的输出结果的权重分配,进一步地提高图像分割模型的准确度,降低误差。
举例地,在模型训练过程中,其下采样阶段的步骤或流程可以包含:
1)定义CBR(n)为:输出通道为n的步长stride=1,padding=1的3*3二维卷积+二维BatchNorm+ReLU激活函数。
2)编号0的第一下采样节点的输入图像为256*256*3大小的训练图像,经过两层
CBR(32)的特征提取操作之后,第一下采样节点的输出结果
为256*256*32大小的输出图
像。
3)对2)的输出结果进行2*2的最大池化操作,得到输出结果为128*128*32大小的输出图像。
4)以3)的输出结果作为编号1的第二下采样节点的输入图像,经过两层CBR(64)的
特征提取操作之后,第二下采样节点的输出结果
为128*128*64大小的输出图像。
5)对4)的输出结果进行2*2的最大池化操作,得到大小为64*64*64的输出结果(如输出图像)。
6)对2)的输出结果进行4*4的均值池化操作,得到大小为 64*64*32的输出结果。
7)对6)的输出结果进行输出通道为64的1*1卷积操作,得到大小为64*64*64的输出结果。
8)将5)的输出结果乘以第一权重ew2,以及7)的输出结果乘以第一权重ew0_2并进行加和操作,得到输出结果,其中,第一权重ew2和第一权重ew0_2优选为具有梯度信息的可训练参数,且分别赋予初始值0.5。
9)以8)的输出结果作为编号2的第三下采样节点的输入图像,经过两层CBR(128)
的特征提取操作之后,第三下采样节点的输出结果
为64*64*128大小的输出图像。
10)对9)的输出结果进行2*2的最大池化操作,得到大小为32*32*128的输出结果。
11)对2)的输出结果进行8*8的均值池化操作,得到大小为32*32*32的输出结果。
12)对11)的输出结果进行输出通道为256的1*1卷积操作,得到大小为32*32*128的输出结果。
13)对4)的输出结果进行4*4的均值池化操作,得到大小为32*32*64的输出结果。
14)对12)的输出结果进行输出通道为256的1*1卷积操作,得到大小为32*32*128的输出结果。
15)将10)的输出结果乘以第一权重ew3,12)的输出结果乘以第一权重ew0_3,以及14)的输出结果乘以第一权重ew1_3并进行加和操作,其中,第一权重ew3,ew0_3以及ew1_3优选为具有梯度信息的可训练参数,且分别赋予初始值0.33。
16)以15)的输出结果作为编号3的第四下采样节点的输入图像,经过两层CBR
(256)的特征提取操作之后,第四下采样节点的输出结果
为32*32*256大小的输出图像。
17)对16)的输出结果进行2*2的最大池化操作,得到大小为16*16*512的输出结果。
18)对2)的输出结果进行16*16的均值池化操作,得到大小为16*16*32的输出结果。
19)对18)的输出结果进行输出通道为512的1*1卷积操作,得到大小为16*16*256的输出结果。
20)对4)的输出结果进行8*8的均值池化操作,得到大小为16*16*64的输出结果。
21)对20)的输出结果进行输出通道为512的1*1卷积操作,得到大小为16*16*256的输出结果。
22)对9)的输出结果进行4*4的均值池化操作,得到大小为16*16*128的输出结果。
23)对22)的输出结果进行输出通道为512的1*1卷积操作,得到大小为16*16*256的输出结果。
24)将17)的输出结果乘以第一权重ew4,19)的输出结果乘以第一权重ew0_4,20)的输出结果乘以第一权重ew1_4,以及22)的输出结果乘以第一权重ew2_4并进行加和操作,其中,第一权重ew4, ew0_4, ew1_4及ew2_4为具有梯度信息的可训练参数,且分别赋予初始值0.25。
25)以24)的输出结果作为编号4的第五下采样节点的输入图像,经过两层CBR
(512)的特征提取操作之后,第五下采样节点的输出结果
为16*16*512大小的输出图像。
需要指出的是,最大池化操作、均值池化操作或卷积操作中参数大小的选择用于确定输出结果的大小,以使后续加权和操作过程中,来自不同节点的输出结果的大小可以保持一致,并使最后一个下采样节点(即第五下采样节点)的输出结果为第一目标大小(如16*16*512等)的输出图像。
其中一种可能的实现方式中,所述下采样节点的输入图像可以由公式:
其中,i为下采样节点的编号,且按照排列顺序,下采样节点的编号依次增大,
为编号i的下采样节点的输入图像,
为编号i的下采样节点的输出结果,
表示最
大池化操作,AP表示卷积后的均值池化操作,ew为第一权重值,且
,n=N-
1,N为上采样节点的数量。
S104、基于所述最后一个下采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型。
在本实施例中,第一个所述上采样节点与所述最后一个下采样节点为同一节点,
或者,令第一上采样节点的输出结果Y
4等于第五下采样节点的输出结果
。
其中一种可能的实现方式中,步骤S104可以包括:
S401、基于下一个上采样节点之前的所有所述上采样节点的输出结果,得到所述下一个上采样节点的输出结果,其中,所述下一个上采样节点的输出结果中包含最后一个上采样节点的输出结果;
S402、基于所述最后一个上采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型。
该输出结果中可以包含多个目标区域以及与每个目标区域对应的标注信息,其中,该目标区域可以用于表示稻穗区域,该标注信息用于标注该目标区域。
也就是说,在上采样阶段中,各上采样节点的输入图像中不仅融合了相邻节点的输出结果,而且还融合了非相邻节点的输出结果,以减少信息的损失,增强模型的学习能力。其中,最后一个上采样节点(如编号为0的第五上采样节点)的输出结果Y0为模型训练过程中采样阶段的最终输出结果,该最终输出结果可以用于调整图像分割模型中的可训练参数,如卷积参数或权重值等,经过多轮迭代训练,使得图像分割模型中的可训练参数逐渐收敛,最终得到训练好的图像分割模型。
其中一种可能的实现方式中,所述下一个上采样节点之前的所有所述上采样节点中包含相邻上采样节点以及非相邻上采样节点,步骤S401可以包括:
S501、对所述相邻上采样节点的输出结果进行基于双线性插值的上采样操作,得到所述相邻上采样节点的上采样输出结果;
S502、对所述非相邻上采样节点的输出结果进行维度转换操作,得到所述非相邻上采样节点的维度转换输出结果;
S503、基于所述相邻上采样节点的上采样输出结果以及所述非相邻上采样节点的维度转换输出结果,得到所述下一个上采样节点的输出结果。
也就是说,在上采样阶段中,在处理来自不同节点的输出结果的过程中,对相邻节点的输出结果进行基于双线性插值的上采样操作,对非相邻节点的输出结果进行维度转换操作,有利于降低信息的损失。可选地,该上采样操作还可以为其他插值方法,如三次曲线差值方法等,在此不受限制。
举例地,以第四上采样节点为例,第三上采样节点为第四上采样节点之前的相邻节点,第一上采样节点以及第二上采样节点为第四上采样节点之前的非相邻节点。因此,在步骤S501中,对第三上采样节点的输出结果进行基于双线性插值的上采样操作,得到第三上采样节点的上采样输出结果,在步骤S502中,对第一上采样节点以及第二上采样节点的输出结果分别进行维度转换操作,得到第一上采样节点的维度转换输出结果以及第二上采样节点的维度转换输出结果,在步骤S503中,根据第一上采样节点的维度转换输出结果、第二上采样节点的维度转换输出结果以及第三上采样节点的上采样输出结果,得到第四上采样节点的输出结果。
优选地,如图4所示,维度转换操作被实施为深度到空间转换操作,具体地,深度到空间转换操作用于表示对空间数据进行重组,输出一个输入张量的拷贝,其通道维度值移至高度和宽度上的维度。具体地,步骤S502可以包括步骤:
S601、从待转换矩阵201的左上角开始,选取目标大小(如[1,1,C])的一个张量202,其中,该待转换矩阵201为非相邻上采样节点的输出结果,其大小为[H,W,C]。
S602、将步骤S601中的张量202重组(reshape)为[b,b,C/(b*b)]大小的数据块203,其中,b表示数据块203的尺寸,b*b表示数据块203的大小。
S603、按照宽度从左至右,高度从上至下的方向,重复步骤S601和步骤S602。
S604、将重组得到的所有数据块203拼接得到目标矩阵204,该目标矩阵204为非相邻上采样节点的维度转换输出结果,其大小为[H*b,W*b,C/(b*b)]。
可选地,该维度还可以包含长度、宽度或高度等,在此不受限制。
其中一种可能的实现方式中,步骤S503可以包括:
S701、获取多个第二权重值;
S702、对所述非相邻上采样节点的维度转换输出结果进行卷积操作,得到卷积后的所述非相邻上采样节点的维度转换输出结果;
S703、基于多个所述第二权重值,对与所述下一个上采样节点相同层级的所述下采样节点的输出结果以及卷积后的所述非相邻上采样节点的维度转换输出结果进行加权和操作,得到所述下一个上采样节点的待拼接图像;
S704、对所述下一个上采样节点的待拼接图像与所述相邻上采样节点的上采样输出结果进行拼接操作,得到所述下一个上采样节点的输入图像;
S705、将所述下一个上采样节点的输入图像输入所述上一个上采样节点中,得到所述下一个上采样节点的输出结果。
也就是说,为了减少参数量,本申请中,根据权重值对来自不同上采样节点的输出结果进行加权和操作。优选地,该第二权重值是可训练参数,通过模型训练学习来自不同节点的输出结果的权重分配,进一步地提高图像分割模型的准确度,降低误差。
在步骤S704中,拼接操作用于表示将待拼接图像与上采样输出结果的在目标维度(如第三维度或高度)上相加,其他维度(如长度与宽度)不变。
举例地,在模型训练过程中,其上采样阶段的步骤或流程可以包含:
26)令第一上采样节点的输出结果等于第五下采样节点的输出结果
。
27)对26)中第一上采样节点的输出结果
进行基于双线性差值的2倍率的上采
样,得到大小为32*32*512的输出结果。
28)在第三维度上拼接16)和27)的输出结果,得到32*32*768的输出结果。
29)以28)的输出结果作为第二上采样节点的输入图像,经过两层CBR(256)的特征
提取操作之后,第二上采样节点的输出结果
为32*32*256大小的输出图像。
30)对29)的输出结果进行基于双线性插值的2倍率上采样操作,得到大小为64*64*256的输出结果。
31)对26)的输出结果进行深度到空间转换的4倍率的转换操作,得到64*64*32的输出结果。
32)对31)的输出结果进行输出通道为128的1*1卷积操作,得到大小为64*64*128的输出结果。
33)将9)的输出结果乘以第二权重dw2,以及32)的输出结果乘以第二权重dw4_2并进行加和操作,其中,第二权重dw2和第二权重dw4_2为具有梯度信息的可训练参数,且分别赋予初始值0.5。
34)在第三维度上拼接30)和33)的输出结果,得到64*64*384的输出结果。
35)以34)的输出结果作为第三上采样节点的输入图像,经过两层CBR(128)的特征
提取操作之后,第三上采样节点的输出结果
为64*64*128大小的输出图像。
36)对35)的输出结果进行基于双线性插值的2倍率上采样操作,得到大小为128*128*128的输出结果。
37)对26)的输出结果进行深度到空间转换的8倍率的转换操作,得到128*128*8的输出结果。
38)对37)的输出结果进行输出通道为64的1*1卷积操作,得到大小为128*128*64的输出结果。
39)对29)的输出结果进行维度到空间转换的4倍率的转换操作,得到128*128*16的输出结果。
40)对39)的输出结果进行输出通道为64的1*1卷积操作,得到大小为128*128*64的输出结果。
41)将4)的输出结果乘以第二权重dw1,38)的输出结果乘以第二权重dw4_1,以及40)的结果乘以第二权重dw3_1并进行加和操作,其中,第二权重dw1,第二权重dw4_1和第二权重dw3_1为具有梯度信息的可训练参数,且分别赋予初始值0.33。
42) 在第三维度上拼接35)和41)的输出结果,得到128*128*192的输出结果。
43)以42)的输出结果作为第四上采样节点的输入图像,经过两层CBR(64)的特征
提取操作之后,第四上采样节点的输出结果
为128*128 *64大小的输出图像。
44)对43)的输出结果进行基于双线性插值的2倍率上采样操作,得到大小为256*256*64的输出结果。
45)对26)的输出结果进行维度到空间转换的16倍率的sub-pixel操作,得到256*256*2的输出结果。
46)对45)的输出结果进行输出通道为32的1*1卷积操作,得到大小为256*256*32的输出结果。
47)对29)的输出结果进行维度到空间转换的8倍率的转换操作,得到256*256*4的输出结果。
48)对47)的输出结果进行输出通道为32的1*1卷积操作,得到大小为256*256*32的输出结果。
49)对35)的输出结果进行维度到空间转换的4倍率的转换操作,得到256*256*16的输出结果。
50)对49)的输出结果进行输出通道为32的1*1卷积操作,得到大小为256*256*32的输出结果。
51)将2)的输出结果乘以第二权重dw0,46)的输出结果乘以第二权重dw4_0,48)的输出结果乘以第二权重dw3_0,以及50)的输出结果乘以第二权重dw2_0并进行加和操作,其中,第二权重dw0,第二权重dw4_0,第二权重dw3_0以及第二权重dw2_0为具有梯度信息的可训练参数,且分别赋予初始值0.25。
52)在第三维度上拼接44)和51)的输出结果,得到256*256*96的输出结果。
53)以52)的输出结果作为第五上采样节点的输入图像,经过两层CBR(32)的特征
提取操作之后,第五上采样节点的输出结果
为256*256*32大小的输出图像。
54)对53)的输出结果进行输出通道为1的1*1卷积操作,得到256*256*1的最终输出结果。
需要指出的是,上采样操作、转换操作或卷积操作中参数大小的选择用于确定输出结果的大小,以使后续加权和操作过程中,来自不同节点的输出结果的大小可以保持一致,并使得最后一个上采样节点(即第五上采样节点)的输出结果为第二目标大小(如256*256*32等)的输出图像。
其中一种可能的实现方式中,所述上采样节点的输入图像可以由公式:
其中,i为上采样节点的编号,且按照排列顺序,上采样节点的编号依次减小,
为编号i的上采样节点的输入图像,
为与编号i的上采样节点相同层级的下采样节
点的输出结果,
表示上采样操作,D2S表示维度转换操作,[]表示矩阵拼接操作,dw为第二
权重值,且
,n=N-1,N为上采样节点的数量。
其中一种可能的实现方式中,步骤S104还可以包括:
按照所述梯度信息对所述第一权重值和/或所述第二权重值进行调整,得到调整后的所述第一权重值和/或所述第二权重值。
也就是说,经过多轮迭代训练,按照该梯度信息不断地对第一权重值和/或第二权重值进行调整,使得第一权重值和/或第二权重值逐渐收敛,得到第一权重值和/或第二权重值的最优值,从而得到训练好的图像分割模型,如图5所示。
进一步地,上述图像分割模型中可以包含损失函数,用于预测模型的输出结果与真实值之间的差异,以衡量该图像分割模型的好坏,以便于在模型训练过程中对该图像分割模型进行优化。优选地,该损失函数融合了二分类交叉熵损失函数(BCE Loss)和Dice损失函数(Dice Loss)。
具体地,二分类交叉熵损失函数的计算公式为:
其中,
为二分类交叉熵损失函数,
为one-hot向量,其元素只有0和1两种取
值,如该分类和样本的类别相同就取1,否则取0,
表示预测样本属于类别c的概率。
进一步地,Dice损失函数的计算公式为:
其中,
为Dice损失函数,X和Y表示两个轮廓区域所包含的点集,
,
用于表示两个轮廓区域的相似程度,其中,
表示X与Y的交集,
和
分别表示X和Y的
元素个数,由于X和Y可能存在重叠,导致上述公式的分母重复计算,因此,为保证dice取值
范围在[0,1]之间,需将分子乘以2。对于图像分割,X表示ground truth分割图像,ground
truth指的是用于有监督训练的训练集的分类准确性,Y表示预测的分割图像。
在本申请实施例中,损失函数的计算公式为:
L=wLbce+Ldice;
其中,L为损失函数,w为可选择参数,优选地,w为0.5。
值得一提的是,本申请中训练得到图像分割模型,其参数量与计算量与现有的Unet模型相差无几,但是分割效果却优于Unet模型。另外,本申请训练得到的图像分割模型相较于Unet++模型,分割效果相近,但是计算量却远低于Unet++模型,即本申请训练得到的图像分割模型在较少的计算量的情况下,可达到Unet++模型的分割效果。
进一步地,本实施例中,将本申请训练得到的图像分割模型、Unet模型以及Unet++模型的分割效果进行对比,其中,各模型的层数均设置为4,各层通道数分别设置为32、64、128、256以及512,各模型的参数设置下表所示:
将三个模型在同样的数据集上进行测试,其中,数据集包含由无人机采集到的成熟期水稻稻穗数据集,经过处理后,该数据集中包含大小为256*256的水稻稻穗图像的训练样本1418张,测试样本328张,评价指标包含mIoU(平均交并比,mean Intersection overUnion),PA(像素准确率,Pixel Accuracy)以及mPA(平均像素准确率, mean PixelAccuracy),测试结果如下表所示:
其中,对于上述评价指标,定义混淆矩阵:
设数据集含有n+1个类别(通常0表示背景)。
表示原本为i类,被预测为i类,即TP
和TN。
表示原本为i类,但是被预测为j类,即FP和FN。如果i为正类,i!=j,则
表示TP,
表示TN,
表示FP,
表示FN。
则,像素准确度的计算公式为:
其中,PA为像素准确度,用于表示标记正确的像素占总像素的百分比。
平均像素准确度的计算公式为:
其中,mPA为平均像素准确度,用于表示每个类别分类正确的像素数占所有预测为该类别像素的比例,然后累加求平均值。
平均交并比的计算公式为:
其中,mIOU用于表示对每一类的结果和真实值的交集与并集的比值求和求平均的结果。
根据上述三个评价指标,可以看出,本申请训练得到的图像分割模型在与Unet模型的参数量或计算量相近的情况下,可达到Unet++模型的分割效果。
可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
如图6所示为本申请图像分割方法一个实施例的示意图。如图6所示,图像分割方法可以包括:
S801、获取采集到的待分割图像;
S802、将所述待分割图像输入图像分割模型中,得到分割结果,其中,所述图像分割模型由图1所示方法实施例提供的模型训练方法得到。
该待分割图像301可以为对待估产稻田中稻穗进行拍摄得到的待识别稻穗图像,如图7A所示。该分割结果302中可以包含该待识别稻穗图像中的一个或多个稻穗区域303以及与每个稻穗区域对应的标注信息,该标识信息用于标注该稻穗区域303,如类别等,如图7B所示。
进一步地,根据该分割结果中的稻穗区域303,可以计算得到稻穗面积(如平面面积等),从而根据每粒稻粒所占的平均面积,计算出该分割图像中所有稻粒数量。然后,根据该待分割图像所对应的拍摄区域占稻田面积的比例以及每粒稻粒的平均重量,计算得到整个稻田的产量。
可以理解的是,上述实施例中的部分或全部步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照上述实施例呈现的不同的顺序来执行,并且有可能并非要执行上述实施例中的全部操作。
如图8所示为本申请模型训练装置100一个实施例的结构示意图。如图8所示,模型训练装置100用于训练图像分割模型,所述图像分割模型中包含按顺序排列的多个下采样节点,所述模型训练装置100可以包括:
获取模块110,用于获取训练图像;
输入模块120,用于将所述训练图像输入第一个所述下采样节点中,得到第一个所述下采样节点的输出结果,并基于第一个所述下采样节点的输出结果,得到第二个所述下采样节点的输出结果;
输出模块130,用于基于下一个下采样节点之前的所有所述下采样节点的输出结果,得到所述下一个下采样节点的输出结果,所述下一个下采样节点的输出结果中包含最后一个下采样节点的输出结果,所述下一个下采样节点之前的所有所述下采样节点中包含相邻下采样节点以及非相邻下采样节点,所述下一个下采样节点的输出结果基于所述相邻下采样节点的输出结果以及所述非相邻下采样节点的输出结果得到;
调整模块140,用于基于所述最后一个下采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型。
其中一种可能的实现方式中,所述输出模块130还用于:
对所述相邻下采样节点的输出结果进行最大池化操作,得到所述相邻下采样节点的最大池化输出结果;
对所述非相邻下采样节点的输出结果进行均值池化操作,得到所述非相邻下采样节点的均值池化输出结果;
基于所述相邻下采样节点的最大池化输出结果以及所述非相邻下采样节点的均值池化输出结果,得到所述下一个下采样节点的输出结果。
其中一种可能的实现方式中,所述输出模块130还用于:
获取多个第一权重值;
对所述非相邻下采样节点的均值池化输出结果进行卷积操作,得到卷积后的所述非相邻下采样节点的均值池化输出结果;
基于多个所述第一权重值,对所述相邻下采样节点的最大池化输出结果以及卷积后的所述非相邻下采样节点的均值池化输出结果进行加权和操作,得到所述下一个下采样节点的输入图像;
将所述下一个下采样节点的输入图像输入所述下一个下采样节点中,得到所述下一个下采样节点的输出结果。
其中一种可能的实现方式中,所述下采样节点的输入图像由公式:
其中,i为下采样节点的编号,且按照排列顺序,下采样节点的编号依次增大,
为编号i的下采样节点的输入图像,
为编号i的下采样节点的输出结果,
表示最
大池化操作,AP表示卷积后的均值池化操作,ew为第一权重值,且
,n=N-
1,N为上采样节点的数量。
其中一种可能的实现方式中,所述图像分割模型中还包含按顺序排列的多个上采样节点,第一个所述上采样节点与所述最后一个下采样节点为同一节点,所述调整模块140还用于:
基于下一个上采样节点之前的所有所述上采样节点的输出结果,得到所述下一个上采样节点的输出结果,其中,所述下一个上采样节点的输出结果中包含最后一个上采样节点的输出结果;
基于所述最后一个上采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型。
其中一种可能的实现方式中,所述下一个上采样节点之前的所有所述上采样节点中包含相邻上采样节点以及非相邻上采样节点,所述调整模块140还用于:
对所述相邻上采样节点的输出结果进行基于双线性插值的上采样操作,得到所述相邻上采样节点的上采样输出结果;
对所述非相邻上采样节点的输出结果进行维度转换操作,得到所述非相邻上采样节点的维度转换输出结果;
基于所述相邻上采样节点的上采样输出结果以及所述非相邻上采样节点的维度转换输出结果,得到所述下一个上采样节点的输出结果。
其中一种可能的实现方式中,所述调整模块140还用于:
获取多个第二权重值;
对所述非相邻上采样节点的维度转换输出结果进行卷积操作,得到卷积后的所述非相邻上采样节点的维度转换输出结果;
基于多个所述第二权重值,对与所述下一个上采样节点相同层级的所述下采样节点的输出结果以及卷积后的所述非相邻上采样节点的维度转换输出结果进行加权和操作,得到所述下一个上采样节点的待拼接图像;
对所述下一个上采样节点的待拼接图像与所述相邻上采样节点的上采样输出结果进行拼接操作,得到所述下一个上采样节点的输入图像;
将所述下一个上采样节点的输入图像输入所述下一个上采样节点中,得到所述下一个上采样节点的输出结果。
其中一种可能的实现方式中,所述上采样节点的输入图像由公式:
其中,i为上采样节点的编号,且按照排列顺序,上采样节点的编号依次减小,
为编号i的上采样节点的输入图像,
为与编号i的上采样节点相同层级的下采样节
点的输出结果,
表示上采样操作,D2S表示维度转换操作,[]表示矩阵拼接操作,dw为第二
权重值,且
,n=N-1,N为上采样节点的数量。
其中一种可能的实现方式中,所述第一权重值和/或所述第二权重值为具有梯度信息的可训练参数,所述调整模块140还用于:
按照所述梯度信息对所述第一权重值和/或所述第二权重值进行调整,得到调整后的所述第一权重值和/或所述第二权重值。
可以理解的是,图8所示实施例提供的模型训练装置100可用于执行本申请图1所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
图9所示为本申请图像分割装置200一个实施例的结构示意图。如图9所示,图像分割装置200包括:
采集模块210,用于获取采集到的待分割图像;
分割模块220,用于将所述待分割图像输入图像分割模型中,得到分割结果,其中,所述图像分割模型由图1所示方法实施例提供的所述模型训练方法得到。
可以理解的是,图9所示实施例提供的模型训练装置200可用于执行本申请图6所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
应理解以上图8所示的模型训练装置100或图9所述的图像分割装置200的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块以软件通过处理元件调用的形式实现,部分模块通过硬件的形式实现。例如,分割模块可以为单独设立的处理元件,也可以集成在电子设备的某一个芯片中实现。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit;以下简称:ASIC),或,一个或多个微处理器(Digital Singnal Processor;以下简称:DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array;以下简称:FPGA)等。再如,这些模块可以集成在一起,以片上系统(System-On-a-Chip;以下简称:SOC)的形式实现。
图10为本申请图像分割系统300一个实施例的结构示意图,如图10所示,上述图像分割系统300可以包括:图像采集装置310,用于采集图像;图像分割模型320,所述图像分割模型320中包含按顺序排列的多个下采样节点;控制装置330,以及执行装置340,执行装置340用于受控于控制装置330,以执行操作。
控制装置330,包括:
一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述系统执行时,使得所述系统执行以下步骤;
获取训练图像;
将所述训练图像输入第一个所述下采样节点中,得到第一个所述下采样节点的输出结果,并基于第一个所述下采样节点的输出结果,得到第二个所述下采样节点的输出结果;
基于下一个下采样节点之前的所有所述下采样节点的输出结果,得到所述下一个下采样节点的输出结果,所述下一个下采样节点的输出结果中包含最后一个下采样节点的输出结果,所述下一个下采样节点之前的所有所述下采样节点中包含相邻下采样节点以及非相邻下采样节点,所述下一个下采样节点的输出结果基于所述相邻下采样节点的输出结果以及所述非相邻下采样节点的输出结果得到;
基于所述最后一个下采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型。
其中一种可能的实现方式中,所述下一个下采样节点之前的所有所述下采样节点中包含相邻下采样节点以及非相邻下采样节点,当所述指令被所述系统执行时,使得所述系统执行所述基于下一个下采样节点之前的所有所述下采样节点的输出结果,得到所述下一个下采样节点的输出结果,包括:
对所述相邻下采样节点的输出结果进行最大池化操作,得到所述相邻下采样节点的最大池化输出结果;
对所述非相邻下采样节点的输出结果进行均值池化操作,得到所述非相邻下采样节点的均值池化输出结果;
基于所述相邻下采样节点的最大池化输出结果以及所述非相邻下采样节点的均值池化输出结果,得到所述下一个下采样节点的输出结果。
其中一种可能的实现方式中,当所述指令被所述系统执行时,使得所述系统执行所述基于所述相邻下采样节点的最大池化输出结果以及所述非相邻下采样节点的均值池化输出结果,得到所述下一个下采样节点的输出结果,包括:
获取多个第一权重值;
对所述非相邻下采样节点的均值池化输出结果进行卷积操作,得到卷积后的所述非相邻下采样节点的均值池化输出结果;
基于多个所述第一权重值,对所述相邻下采样节点的最大池化输出结果以及卷积后的所述非相邻下采样节点的均值池化输出结果进行加权和操作,得到所述下一个下采样节点的输入图像;
将所述下一个下采样节点的输入图像输入所述下一个下采样节点中,得到所述下一个下采样节点的输出结果。
其中一种可能的实现方式中,所述下采样节点的输入图像由公式:
其中,i为下采样节点的编号,且按照排列顺序,下采样节点的编号依次增大,
为编号i的下采样节点的输入图像,
为编号i的下采样节点的输出结果,
表示最
大池化操作,AP表示卷积后的均值池化操作,ew为第一权重值,且
,n=N-
1,N为上采样节点的数量。
其中一种可能的实现方式中,所述图像分割模型中还包含按顺序排列的多个上采样节点,第一个所述上采样节点与所述最后一个下采样节点为同一节点,当所述指令被所述系统执行时,使得所述系统执行所述基于所述最后一个下采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型,包括:
基于下一个上采样节点之前的所有所述上采样节点的输出结果,得到所述下一个上采样节点的输出结果,其中,所述下一个上采样节点的输出结果中包含最后一个上采样节点的输出结果;
基于所述最后一个上采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型。
其中一种可能的实现方式中,所述下一个上采样节点之前的所有所述上采样节点中包含相邻上采样节点以及非相邻上采样节点,当所述指令被所述系统执行时,使得所述系统执行所述基于下一个上采样节点之前的所有所述上采样节点的输出结果,得到所述下一个上采样节点的输出结果,包括:
对所述相邻上采样节点的输出结果进行基于双线性插值的上采样操作,得到所述相邻上采样节点的上采样输出结果;
对所述非相邻上采样节点的输出结果进行维度转换操作,得到所述非相邻上采样节点的维度转换输出结果;
基于所述相邻上采样节点的上采样输出结果以及所述非相邻上采样节点的维度转换输出结果,得到所述下一个上采样节点的输出结果。
其中一种可能的实现方式中,当所述指令被所述系统执行时,使得所述系统执行所述基于所述相邻上采样节点的上采样输出结果以及所述非相邻上采样节点的维度转换输出结果,得到所述下一个上采样节点的输出结果,包括:
获取多个第二权重值;
对所述非相邻上采样节点的维度转换输出结果进行卷积操作,得到卷积后的所述非相邻上采样节点的维度转换输出结果;
基于多个所述第二权重值,对与所述下一个上采样节点相同层级的所述下采样节点的输出结果以及卷积后的所述非相邻上采样节点的维度转换输出结果进行加权和操作,得到所述下一个上采样节点的待拼接图像;
对所述下一个上采样节点的待拼接图像与所述相邻上采样节点的上采样输出结果进行拼接操作,得到所述下一个上采样节点的输入图像;
将所述下一个上采样节点的输入图像输入所述下一个上采样节点中,得到所述下一个上采样节点的输出结果。
其中一种可能的实现方式中,所述上采样节点的输入图像由公式:
其中,i为上采样节点的编号,且按照排列顺序,上采样节点的编号依次减小,
为编号i的上采样节点的输入图像,
为与编号i的上采样节点相同层级的下采样节
点的输出结果,
表示上采样操作,D2S表示维度转换操作,[]表示矩阵拼接操作,dw为第二
权重值,且
,n=N-1,N为上采样节点的数量。
其中一种可能的实现方式中,所述第一权重值和/或所述第二权重值为具有梯度信息的可训练参数,当所述指令被所述系统执行时,使得所述系统执行所述对所述图像分割模型进行调整,包括:
按照所述梯度信息对所述第一权重值和/或所述第二权重值进行调整,得到调整后的所述第一权重值和/或所述第二权重值。
其中一种可能的实现方式中,当所述指令被所述系统执行时,使得所述系统还执行步骤:
获取采集到的待分割图像;
将所述待分割图像输入图像分割模型中,得到分割结果。
可以理解的是,图10所示实施例提供的图像分割系统300可用于执行本申请图1所示方法实施例的技术方案和/或图6所示方法实施例的技术方案,其实现原理和技术效果可以进一步参考方法实施例中的相关描述。
该图像分割模型300可以用于估算水稻产量。图像采集装置310如载有摄像装置的无人机等,用于对稻田进行拍摄,得到稻穗图像,该稻穗图像可以包含用于模型训练的图像样本或者待分割的稻穗图像等。
控制装置330可以根据用于模型训练的图像样本对图像分割模型320进行训练,以得到训练好的图像分割模型320,和/或,控制装置330可以根据待分割的稻穗图像,输出分割结果。执行装置340如产量估算装置等,用于根据控制装置330输出的分割结果,执行产量估算操作等,以估算得到水稻产量等。
应理解,本实施例图像分割系统300可以包括其他不同类型的操作机构,以受控于所述控制装置330,执行不同的操作,在此不受限制。
应理解,控制装置可以被实施为控制电路,控制装置中的处理器可以是片上系统SOC,该处理器中可以包括中央处理器(Central Processing Unit;以下简称:CPU),还可以进一步包括其他类型的处理器,例如:图像处理器(Graphics Processing Unit;以下简称:GPU)等。
图11为本申请电子设备一个实施例的结构示意图,如图11所示,上述电子设备可以包括:一个或多个处理器;存储器;以及一个或多个计算机程序。
其中,上述电子设备可以为计算机、智能设备或产量估算装置等。
其中上述一个或多个计算机程序被存储在上述存储器中,上述一个或多个计算机程序包括指令,当上述指令被上述设备执行时,使得上述设备执行以下步骤:
获取训练图像;
将所述训练图像输入图像分割模型中第一个所述下采样节点中,得到第一个所述下采样节点的输出结果,并基于第一个所述下采样节点的输出结果,得到第二个所述下采样节点的输出结果;
基于下一个下采样节点之前的所有所述下采样节点的输出结果,得到所述下一个下采样节点的输入图像,并将所述下一个下采样节点的输入图像输入所述下一个下采样节点中,得到所述下一个下采样节点的输出结果,所述下一个下采样节点的输出结果中包含最后一个下采样节点的输出结果,所述下一个下采样节点之前的所有所述下采样节点中包含相邻下采样节点以及非相邻下采样节点,所述下一个下采样节点的输出结果基于所述相邻下采样节点的输出结果以及所述非相邻下采样节点的输出结果得到;
基于所述最后一个下采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型。
其中一种可能的实现方式中,所述下一个下采样节点之前的所有所述下采样节点中包含相邻下采样节点以及非相邻下采样节点,当上述指令被上述设备执行时,使得上述设备执行所述基于下一个下采样节点之前的所有所述下采样节点的输出结果,得到所述下一个下采样节点的输出结果,包括:
对所述相邻下采样节点的输出结果进行最大池化操作,得到所述相邻下采样节点的最大池化输出结果;
对所述非相邻下采样节点的输出结果进行均值池化操作,得到所述非相邻下采样节点的均值池化输出结果;
基于所述相邻下采样节点的最大池化输出结果以及所述非相邻下采样节点的均值池化输出结果,得到所述下一个下采样节点的输出结果。
其中一种可能的实现方式中,当上述指令被上述设备执行时,使得上述设备执行所述基于所述相邻下采样节点的最大池化输出结果以及所述非相邻下采样节点的均值池化输出结果,得到所述下一个下采样节点的输出结果,包括:
获取多个第一权重值;
对所述非相邻下采样节点的均值池化输出结果进行卷积操作,得到卷积后的所述非相邻下采样节点的均值池化输出结果;
基于多个所述第一权重值,对所述相邻下采样节点的最大池化输出结果以及卷积后的所述非相邻下采样节点的均值池化输出结果进行加权和操作,得到所述下一个下采样节点的输入图像;
将所述下一个下采样节点的输入图像输入所述下一个下采样节点中,得到所述下一个下采样节点的输出结果。
其中一种可能的实现方式中,所述下采样节点的输入图像由公式:
其中,i为下采样节点的编号,且按照排列顺序,下采样节点的编号依次增大,
为编号i的下采样节点的输入图像,
为编号i的下采样节点的输出结果,
表示最
大池化操作,AP表示卷积后的均值池化操作,ew为第一权重值,且
,n=N-
1,N为上采样节点的数量。
其中一种可能的实现方式中,所述图像分割模型中还包含按顺序排列的多个上采样节点,第一个所述上采样节点与所述最后一个下采样节点为同一节点,当上述指令被上述设备执行时,使得上述设备执行所述基于所述最后一个下采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型,包括:
基于下一个上采样节点之前的所有所述上采样节点的输出结果,得到所述下一个上采样节点的输出结果,其中,所述下一个上采样节点的输出结果中包含最后一个上采样节点的输出结果;
基于所述最后一个上采样节点的输出结果,对所述图像分割模型进行调整,得到训练好的所述图像分割模型。
其中一种可能的实现方式中,所述下一个上采样节点之前的所有所述上采样节点中包含相邻上采样节点以及非相邻上采样节点,当上述指令被上述设备执行时,使得上述设备执行所述基于下一个上采样节点之前的所有所述上采样节点的输出结果,得到所述下一个上采样节点的输出结果,包括:
对所述相邻上采样节点的输出结果进行基于双线性插值的上采样操作,得到所述相邻上采样节点的上采样输出结果;
对所述非相邻上采样节点的输出结果进行维度转换操作,得到所述非相邻上采样节点的维度转换输出结果;
基于所述相邻上采样节点的上采样输出结果以及所述非相邻上采样节点的维度转换输出结果,得到所述下一个上采样节点的输出结果。
其中一种可能的实现方式中,当上述指令被上述设备执行时,使得上述设备执行所述基于所述相邻上采样节点的上采样输出结果以及所述非相邻上采样节点的维度转换输出结果,得到所述下一个上采样节点的输入图像,包括:
获取多个第二权重值;
对所述非相邻上采样节点的维度转换输出结果进行卷积操作,得到卷积后的所述非相邻上采样节点的维度转换输出结果;
基于多个所述第二权重值,对与所述下一个上采样节点相同层级的所述下采样节点的输出结果以及卷积后的所述非相邻上采样节点的维度转换输出结果进行加权和操作,得到所述下一个上采样节点的待拼接图像;
对所述下一个上采样节点的待拼接图像与所述相邻上采样节点的上采样输出结果进行拼接操作,得到所述下一个上采样节点的输入图像;
将所述下一个上采样节点的输入图像输入所述下一个上采样节点中,得到所述下一个上采样节点的输出结果。
其中一种可能的实现方式中,所述上采样节点的输入图像由公式:
其中,i为上采样节点的编号,且按照排列顺序,上采样节点的编号依次减小,
为编号i的上采样节点的输入图像,
为与编号i的上采样节点相同层级的下采样节
点的输出结果,
表示上采样操作,D2S表示维度转换操作,[]表示矩阵拼接操作,dw为第二
权重值,且
,n=N-1,N为上采样节点的数量。
其中一种可能的实现方式中,所述第一权重值和/或所述第二权重值为具有梯度信息的可训练参数,当上述指令被上述设备执行时,使得上述设备执行所述对所述图像分割模型进行调整,包括:
按照所述梯度信息对所述第一权重值和/或所述第二权重值进行调整,得到调整后的所述第一权重值和/或所述第二权重值。
其中一种可能的实现方式中,当上述指令被上述设备执行时,使得上述设备还执行:
获取采集到的待分割图像;
将所述待分割图像输入图像分割模型中,得到分割结果。
该设备可以用于执行本申请图1所示实施例提供的模型训练方法和/或图6所示实施例提供的图像分割方法中的功能/步骤。
如图11所示,电子设备900包括处理器910和存储器920。其中,处理器910和存储器920之间可以通过内部连接通路互相通信,传递控制和/或数据信号,该存储器920用于存储计算机程序,该处理器910用于从该存储器920中调用并运行该计算机程序。
上述存储器920可以是只读存储器(read-only memory,ROM)、可存储静态信息和指令的其它类型的静态存储设备、随机存取存储器(random access memory,RAM)或可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质等。
上述处理器910可以和存储器920可以合成一个处理装置,更常见的是彼此独立的部件,处理器910用于执行存储器920中存储的程序代码来实现上述功能。具体实现时,该存储器920也可以集成在处理器910中,或者,独立于处理器910。
除此之外,为了使得电子设备900的功能更加完善,该电子设备900还可以包括传感器930、电源940、输入单元950等中的一个或多个。
可选地,电源950用于给电子设备中的各种器件或电路提供电源。
应理解,图11所示的电子设备900能够实现本申请图1或图6所示实施例提供的方法的各个过程。电子设备900中的各个模块的操作和/或功能,分别为了实现上述方法实施例中的相应流程。具体可参见本申请图1或图6所示方法实施例中的描述,为避免重复,此处适当省略详细描述。
应理解,图11所示的电子设备900中的处理器910可以是片上系统SOC,该处理器910中可以包括中央处理器(Central Processing Unit;以下简称:CPU),还可以进一步包括其他类型的处理器,例如:图像处理器(Graphics Processing Unit;以下简称:GPU)等。
总之,处理器910内部的各部分处理器或处理单元可以共同配合实现之前的方法流程,且各部分处理器或处理单元相应的软件程序可存储在存储器920中。
本申请还提供一种电子设备,所述设备包括存储介质和中央处理器,所述存储介质可以是非易失性存储介质,所述存储介质中存储有计算机可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述计算机可执行程序以实现本申请图1或图6所示实施例提供的方法。
以上各实施例中,涉及的处理器可以例如包括CPU、DSP、微控制器或数字信号处理器,还可包括GPU、嵌入式神经网络处理器(Neural-network Process Units;以下简称:NPU)和图像信号处理器(Image Signal Processing;以下简称:ISP),该处理器还可包括必要的硬件加速器或逻辑处理硬件电路,如ASIC,或一个或多个用于控制本申请技术方案程序执行的集成电路等。此外,处理器可以具有操作一个或多个软件程序的功能,软件程序可以存储在存储介质中。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本申请图1或图6所示实施例提供的方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本申请图1或图6所示实施例提供的方法。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
本领域普通技术人员可以意识到,本文中公开的实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,任一功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory;以下简称:ROM)、随机存取存储器(Random Access Memory;以下简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。