一种基于深度学习的烟叶图像活动轮廓分割方法

未命名 09-13 阅读:91 评论:0


1.本发明涉及深度学习图像分割,特别是一种基于深度学习的烟叶图像活动轮廓分割方法。


背景技术:

2.烟叶分割是烟草生产过程中的重要环节之一,其目的是将烟叶按照不同的品种、等级、用途等要求进行分类和加工,以保证烟草制品的质量和口感。当前,烟叶分割技术已经发展到了较为成熟的阶段,主要包括了机械分割和人工分割两种方式。机械分割是利用机械设备将烟叶进行分割,按照切割方式的不同可分为切刀式、压缩式、撕裂式、旋转式和冲击式等几种方法。机械分割的优点是工作效率高、分割精度高、生产成本低等,但其局限性也比较明显,对于较柔软或含水率较高的烟叶容易形成堵塞或卡住机器等问题,同时也容易产生烤成不均匀、布局不合理等问题。人工分割是指利用人工对烟叶进行手工分割,按照操作方式可以分为刀割式、手揉式、手捻式和手掐式等几种方式。人工分割的优点是可根据烟叶的质地和根据制作经验进行相应的加工,保证了烟叶的整体质量,与此同时,人工分割的成本较高,工作效率也不如机械分割高。与此同时,随着科技的不断发展,在烟叶分割方面也涌现出了一些新的研究成果,利用深度学习技术对烟叶图像进行分割,是提高烟叶分割的效率、精度和质量的有效方法。
3.烟叶图像分割是将数字图像中的烟叶部分从其它的背景部分分离出来,这是烟草加工中非常重要的步骤。烟叶图像分割技术的好坏直接影响到烟草行业的生产效率和产品质量。由于烟草生产中需要对烟叶进行各种繁琐、高精度操作,如分级、制丝、包装等,因此,烟叶图像分割技术的准确度、速度和稳定性是至关重要的。目前,烟叶图像分割技术已经有了很多研究和应用。传统的烟叶图像分割技术包括基于统计学、颜色模型、边缘检测、特征提取等方法。但是,这些方法存在一些缺陷,如输入图像大小有一定的限制、无法处理复杂的图像背景、分割精度较低、分割速度慢等问题。


技术实现要素:

4.发明目的:本发明的目的是提供一种基于深度学习的烟叶图像活动轮廓分割方法,使得分割模型能够处理任意大小的输入图像,自动提取图像中的高级特征,处理各种形状、尺寸和背景的烟叶图像,从而有效提高烟叶图像分割的精度、速度和准确性。
5.技术方案:本发明所述的一种基于深度学习的烟叶图像活动轮廓分割方法,包括以下步骤:
6.s1、获取原始烟叶图像,对其进行图像预处理;
7.s1.1、获取原始烟叶图像,对其进行图像预处理,获得更准确的图像数据,再将预处理后的图像随机分为训练集、验证集和测试集;所述的图像预处理包括图像增强、归一化、裁剪、去除噪声。
8.s1.2、对烟叶图像进行标注:利用labeling工具手动对烟叶图像进行标注,分割目
标分为烟叶区域和非烟叶区域两类。
9.s2、基于pytorch框架构建烟叶图像的分割模型:基于改进segnet算法的模型,用于对烟叶图像进行分割。
10.所述的改进segnet算法的模型分为encoder、bottleneck、decoder和softmax层;
11.encoder使用resnet网络,对图像进行特征提取、下采样和参数拟合;在resnet网络中添加批量归一化层来加速resnet网络的收敛,减少过拟合,能够更有效的对图像特征进行提取,在resnet网络的卷积层中使用空洞卷积来扩大感受野,在各个层之间经过残差连接,防止梯度消失和坍塌问题;在u-net网络中引入skip connection,即跳跃连接,主要用于解决梯度消失问题,其结构通常是将神经网络的某一层(或多层)的输入直接连接到网络的后续层,以便输入信号能够跳过一些卷积或全连接层,直接传到网络的最后一层或输出;u-net网络中引入skip connection,可以将编码器中较低层的特征图与解码器中对应的较高层特征图相连接,实现更好的特征融合,避免上采样过程中导致信息丢失的问题。
12.bottleneck包括fpn结构和pan结构,用于连接encoder和decoder,并将encoder中提取的图像特征图转换为decoder需要的低分辨率特征图。
13.decoder使用u-net网络,用于对图像进行上采样、参数拟合、尺寸匹配、特征融合和分类和预测。
14.softmax层作为激活函数,用于将decoder产生的特征图进行像素级别的分类,得到每个像素点属于不同类别的概率分布。
15.s3、对烟叶图像的分割模型进行训练;
16.s3.1、数据准备:获取步骤s1中预处理过的标注烟叶图像数据集;
17.s3.2、定义数据加载器:使用pytorch的dataloader对标注烟叶图像数据集进行加载;
18.s3.3、定义模型结构:根据改进segnet算法模型的结构,在pytorch中定义分割模型;
19.s3.4、定义交叉熵损失函数:
20.l(f,h)=-1/n*sumi(sumj[h
i,j
*log fij+(1-hij)*log(1-fij)])
[0021]
其中,fij表示segnet模型预测类别为正类的概率,hij为标注图像中该像素的真实类别,n表示烟叶图像中所有像素的总数;
[0022]
s3.5、定义优化器:使用pytorch的sgd优化器来训练模型;
[0023]
s3.6、定义超参数:定义学习率、训练轮数、批量大小等超参数进行模型训练;
[0024]
s3.7、训练模型:使用pytorch的训练函数,开始训练模型,通过记录训练损失和验证损失来监测训练模型的进展;
[0025]
s3.8、进行模型验证:通过测试数据集,验证模型的效果,使用iou作为计算分割准确性和绘制预测结果方法来进行模型验证;
[0026]
s3.9、模型保存:将模型保存下来,以便后续的测试和使用。
[0027]
s4、将预处理后的新烟叶图像输入到建立好的分割模型中,分别输出对应的分割结果,即得到烟叶和非烟叶的图像区域,实现活动轮廓分割。
[0028]
s4.1、加载模型:将已训练好的分割模型加载到内存中;
[0029]
s4.2、加载图像数据:将需要分割的烟叶图像加载到内存中,对图像进行预处理,
使其符合分割模型的输入要求;
[0030]
s4.3、图像分割:将预处理后的新烟叶图像输入到分割模型中,得到分割结果;
[0031]
s4.3.1、将预处理后的新烟叶图像输入resnet网络进行卷积和池化操作,并输出为c3×
h/32
×
w/32
的特征图,c表示通道数,即特征图的深度,h表示高度,w表示宽度;
[0032]
s4.3.2、通过四个stage(即stage1~stage4)对特征进行提取和下采样,其中每个stage中都含有多个卷积模块(convolutional block)和恒等模块(identity block);
[0033]
s4.3.3、将stage4的输出特征图经过全局平均池化操作得到一个2048维向量表示的图像特征,该向量能够表示为:
[0034][0035]
其中,h和w分别表示原始图像的高度和宽度;
[0036]
将经过resnet网络的提取的特征向量h输入到bottleneck网络中,进行如下操作:
[0037]hout
=decoder(encoder(h
in
)

fpn/pan(encoder(h
in
))
[0038]
其中,encoder(h
in
)表示从encoder中提取的特征图,fpn/pan(encoder(h
in
))表示bottleneck操作将不同尺度的encoder特征图融合后得到的特征图,

表示特征图乘法操作,decoder表示解码器用来将高分辨率的特征图转换为低分辨率的特征图,h
out
和h
out
分别表示输入图像和输出特征图;
[0039]
通过上述公式,bottleneck结构将encoder中提取的特征图融合并转换为decoder需要的低分辨率特征图,从而协调encoder和decoder之间的信息流,提高模型的性能和精度;
[0040]
利用u-net网络将输入的图像特征h在反卷积层进行反卷积操作,得到分割结果g;反卷积表示为h(x),x是反卷积的输入参数,h是反卷积操作;
[0041]
g=decoder(h(h)),在反卷积的过程中,通常使用转置卷积(transpose convolution)来实现;
[0042]
g=w(h(h))+b,其中,w表示反卷积操作的权重矩阵,b为偏置项;
[0043]
具体而言,转置卷积的实现表示为:
[0044][0045]gi,j,k
表示反卷积(转置卷积)生成的特征图g在第i行、第j列、第k个通道的像素值;
[0046]
表示对三个变量r、s、t进行求和;该公式用于计算特征图g在第i行、第j列、第k个通道的像素值,需要对反卷积核的每个权值w
r,s,t,j,k
和上一层特征图的部分像素值h
i+r-1,j+s-1,t
进行加权叠加,完成反卷积操作;
[0047]wr,s,t,j,k
表示反卷积核的权值,r、s、t分别表示反卷积核在第一个、第二个和第三个维度上的位置,j、k分别表示反卷积核的输入和输出通道数;
[0048]hi+r-1,j+s-1,t
表示上一层特征图在转置卷积操作之后,对反卷积核进行卷积操作时使用的像素值,i、j、t分别表示上一层特征图在第一个、第二个和第三个维度上的位置,r、s分别表示反卷积核在第一个和第二个维度上的位置。需要注意的是,在计算位置时需要将r、s调整到和反卷积核中心像素重合的位置(即:r+s-1=i+r-1+1=j+s-1+1),这样能够避
免对目标区域产生贡献的位置产生重复计算;
[0049]bk
表示反卷积操作的偏置项,与卷积操作中的偏置项作用类似。
[0050]
s4.4、结果输出:将分割结果保存到磁盘上或在界面上展示出来。
[0051]
一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的一种基于深度学习的烟叶图像活动轮廓分割方法。
[0052]
一种计算机设备,包括储存器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的一种基于深度学习的烟叶图像活动轮廓分割方法。
[0053]
有益效果:与现有技术相比,本发明具有如下优点:
[0054]
1、本发明采用深度学习、图像分割技术,对烟叶图像进行分割,提高了图像分割的准确性和速度;
[0055]
2、烟叶图像分割模型采用基于改进segnet算法模型,利用resnet网络作为encoder,u-net网络作为decoder,具备了更好的特征提取能力、信息传递机制和抑制过拟合能力;
[0056]
3、传统的分割方法需要对图像进行繁杂的预处理和手动选取特征,而本发明所述方法基于深度学习,大大降低了操作难度和工作量;
[0057]
4、本发明使用能够自动学习图像的特征并分割出烟叶图像的活动轮廓,能够充分利用烟叶图像信息,学习到更复杂、抽象的特征,得到更好的分割性能。
附图说明
[0058]
图1为本发明所述方法的步骤流程图;
[0059]
图2为本发明实施例中基于改进segnet算法模型的结构示意图;
[0060]
图3为resnet网络的结构示意图;
[0061]
图4为u-net网络的结构示意图。
具体实施方式
[0062]
下面结合附图对本发明的技术方案作进一步说明。
[0063]
如图1所示,一种基于深度学习的烟叶图像活动轮廓分割方法,包括以下步骤:
[0064]
s1、获取原始烟叶图像,对其进行图像预处理,具体为:
[0065]
s1.1、获取原始烟叶图像,对其进行图像预处理,包括图像增强、归一化、裁剪、去除噪声等操作,获得更准确的图像数据,再将预处理后的图像随机分为训练集、验证集和测试集。
[0066]
s1.2、对烟叶图像进行标注,具体为:利用labeling工具手动对烟叶图像进行标注,分割目标分为两类:烟叶区域和非烟叶区域。
[0067]
s2、基于pytorch框架构建烟叶图像的分割模型。
[0068]
采用pytorch框架构建基于改进segnet算法的烟叶分割模型,segnet网络结构如图2所示,利用基于改进segnet算法的神经网络用于对烟叶图像进行分割,具体为:
[0069]
resnet网络作为encoder,对图像进行特征提取、下采样和参数拟合,具体为:
[0070]
resnet网络结构如图3所示,与许多其他卷积神经网络中采用的“堆叠层”方式不
同,resnet通过使用残差块(residual block)的方式来建立深层网络;在残差块中,输入特征映射通过跨层连接(shortcut connection)传递到网络另一侧,使得特征可以直接跳过某些层而得到保留,避免了梯度消失的问题;segnet网络的encoder部分采用resnet网络,这可以有效地提取输入图像的特征,具体为:
[0071]
特征提取具体为:
[0072]
从输入图像中提取出不同级别的特征,以捕捉不同尺度、不同语义的图像信息。通常采用的方法是使用不同大小的卷积核分别对输入图像进行卷积操作,得到不同尺度和不同语义的特征图,然后将这些特征图在一个多分支的网络中进行融合,最终得到更为全面和丰富的特征表示。具体公式可以表示为:
[0073]
f1=conv(x,w1)
[0074]
f2=conv(x,w2)
[0075]
...
[0076]fn
=conv(x,wn)
[0077]
f=concat(f1,f2,...,fn)
[0078]
其中,x为输入图像,wi为不同大小的卷积核权重,conv(.,.)表示卷积操作,concat(.,.)表示多个特征图的拼接操作,f表示最终的特征表示
[0079]
下采样具体为:
[0080]
对提取出的特征图进行双线性插值,其具体为:
[0081]
基于像素之间的线性插值,对目标图片进行放缩。假设目标图像为f,其宽高分别为w和h;原图像为g,其宽高分别为m和n。在目标图像上任意一点(x,y)处的像素值我们可以通过如下公式计算:
[0082][0083]
其中g(xi,yj)表示原图像上距离(x,y)最近的一个像素点的灰度值,w(x)表示插值函数,通常使用线性函数,其表达式为:
[0084][0085]
参数拟合具体为:
[0086]
通过卷积、池化等操作对特征进行多个卷积和池化层的处理,以对特征进行进一步的抽象与综合,从而进一步强化特征的表征能力。在每个卷积层或池化层结束时,都会生成一个对应的特征图,作为下一层操作的输入。
[0087]
bottleneck网络包括fpn结构和pan结构,用于连接encoder和decoder,并将encoder中提取的图像特征图转换为decoder需要的低分辨率特征图;
[0088]
bottleneck fpn结构具体为:
[0089]
是在原始fpn结构的基础上进行改进,通过在每个fpn层中添加一个3x3的卷积层和一个bottleneck块来增强特征表示能力。这个bottleneck块包含一个1x1的卷积层用于降低通道数,并使用stride=2的步幅对输入进行下采样,然后使用2个3x3的卷积层进行特征图升采样和通道数的增加,最后再与上一层的特征图进行融合。
[0090]
pan结构是由多个特征金字塔合并而成的一种网络结构。在pan结构中,先对输入
图像进行下采样,然后将这些下采样的特征图输入到多个不同的fpn中进行特征金字塔构建。接下来,通过panet模块将多个fpn中的特征图进行特征融合,使得多尺度的特征信息能够共同用于物体检测和分割任务。
[0091]
decoder使用u-net网络,用于对图像进行上采样、参数拟合、尺寸匹配、特征融合和分类和预测,具体为:
[0092]
u-net网络如图4所示,这里的卷积层是转置卷积层,用于上采样特征图,将其恢复成原始图像的尺寸,在每个转置卷积层前还有一个relu激活函数和一个batch normalization批归一化层。
[0093]
在进行上采样之前,segnet网络结构还要进行反池化(unpooling)操作,这个操作是将池化(pooling)时记录的最大值位置提取出来,新增加的像素值设为1,其他的为0,然后将其放回原始特征图的对应位置。这样做可以恢复特征图的空间信息,保留细节。
[0094]
上采样具体为:
[0095]
对编码器中经过下采样操作所得到的特征图进行最大池化(max pooling),还原特征图的尺寸,使其与原始图像具有相同的大小,具体为:
[0096]
最大池化是指在输入的特征图上,选取每个小区域内的最大值作为该小区域的输出。
[0097][0098]
其中,pool(m,n)表示在位置(m,n)处特征图的值,r
i,j
表示以(i,j)为中心的小区域,out
i,j
是经过池化后的输出特征图的(i,j)处的值。
[0099]
参数拟合具体为:
[0100]
与encoder部分相似,decoder部分也由多个卷积层和池化层组成,这些层的作用是对特征进行进一步的抽象和综合,以便更好地还原原始图像中的语义信息。设输入特征向量为y,i为当前层的编号,xi表示第i层的输出,wi为卷积核权重,bi为偏置项,则decoder部分的计算可以用以下公式表述:
[0101]
x1=g1(y)
[0102]
xi=gi(x
i-1)=f(wix
i-1
+bi)
[0103]
其中f为激活函数,i=2,3,...,n,n为decoder的总层数。
[0104]
尺寸匹配具体为:
[0105]
输入的特征图和decoder进行卷积后得到的特征图的维度可能不匹配,1x1卷积将通道数进行调整,常用于将大通道数的特征图进行压缩,或者让多个特征图在通道维度上进行拼接,以便进行特征融合操作。假设输入特征图为卷积层的卷积核大小为1x1,输出特征图为则可以使用下列公式表示1x1卷积操作:
[0106][0107]
其中,w
k,c
∈r表示卷积核中的权重,i=1,2,...h,j=1,2,...w,k=1,2,...c2,c1和c2分别表示输入特征图和输出特征图的通道数。该公式的含义是将输入特征图中不同通道之间的像素值进行加权平均,得到输出特征图中对应位置和通道的像素值。
[0108]
特征融合具体为:
[0109]
将encoder中特征提取的语义信息和decoder还原出的图像特征进行拼接、叠加等操作,使得网络能够更好地还原原始图像的语义信息。假设特征提取的语义信息为z,decoder还原出的图像特征为x,则将二者拼接成一个特征向量y=[z;x],并通过一些中间层的全连接层和激活函数进行加工和转换,得到最终的还原图像的特征。具体公式可以表示为:
[0110]
h1=f(w1y+b1)
[0111]
h2=f(w2y+b2)
[0112]
...
[0113]hn
=f(w
nhn-1
+bn)
[0114]
其中,wi和bi表示第i层全连接层的权重和偏置项,f表示激活函数,hn表示最终输出的特征向量。
[0115]
分类和预测具体为:
[0116]
在最后一层卷积层中,该层的卷积核数量等于类别数目,通过卷积操作实现对每个像素的分类和预测。其中m为卷积核大小,wj为卷积核权重,x
i+j-m/2
为输入数据中对应的像素值,bi为偏置项,yi为第i个输出结果,最终通过softmax函数将输出结果转换为概率分布进行分类预测。
[0117]
softmax层作为激活函数,用于将decoder产生的特征图进行像素级别的分类,得到每个像素点属于不同类别的概率分布,具体为:
[0118]
segnet网络的decoder结构产生的特征图被送入一层softmax层,用于将每个像素点的特征向量转化为对应的概率分布。在这个过程中,softmax层会对特征向量进行指数运算,然后对每个像素点的指数结果进行归一化,得到对不同类别的置信度分布。这样就可以将每个像素点分配到最可能的类别中。
[0119]
s3、对烟叶图像的分割模型进行训练,具体为:
[0120]
s3.1、数据准备:获取步骤s1中预处理过的标注烟叶图像数据集;
[0121]
s3.2、定义数据加载器:使用pytorch的dataloader对标注烟叶图像数据集进行加载;
[0122]
s3.3、定义模型结构:根据改进segnet算法模型的结构,在pytorch中定义分割模型;
[0123]
s3.4、定义交叉熵损失函数,具体为:
[0124]
l(f,h)=-1/n*sumi(sumj[h
i,j
*log fij+(1-hij)*log(1-fij)])
[0125]
其中,fij表示segnet模型预测类别为正类的概率,hij为标注图像中该像素的真实类别,n表示烟叶图像中所有像素的总数。
[0126]
s3.5、定义优化器:使用pytorch的sgd优化器来训练模型,具体为:
[0127]
pytorch中的sgd优化器(stochastic gradient descent)是一种基于随机梯度下降算法的优化器,用于更新模型的参数使其能够更好地拟合训练数据。具体而言,sgd优化器在每个训练迭代中根据当前的梯度计算出下一次的参数值,从而逐渐使模型的损失函数最小化。
[0128]
s3.6、定义超参数:定义学习率、训练轮数、批量大小等超参数进行模型训练;
[0129]
s3.7、训练模型:使用pytorch的训练函数,开始训练模型。可以通过记录训练损失和验证损失来监测训练模型的进展。
[0130]
s3.8、进行模型验证:通过测试数据集,验证模型的效果。使用iou作为计算分割准确性和绘制预测结果方法来进行模型验证。
[0131]
s3.9、模型保存:将模型保存下来,方便后续的测试和使用。
[0132]
s4、将预处理后的新烟叶图像输入到建立好的分割模型中,分别输出对应的分割结果,即得到烟叶和非烟叶的图像区域,实现活动轮廓分割,具体为:
[0133]
s4.1、加载模型:将已训练好的分割模型加载到内存中;
[0134]
s4.2、加载图像数据:将需要分割的烟叶图像加载到内存中,对图像进行预处理,使其符合分割模型的输入要求;
[0135]
s4.3、图像分割:将预处理后的新烟叶图像输入到分割模型中,得到分割结果,具体为:
[0136]
s4.3.1、将预处理后的新烟叶图像输入resnet网络进行卷积和池化操作,并输出为c3×
h/32
×
w/32
的特征图;
[0137]
c表示通道数(即特征图的深度),h表示高度,w表示宽度;
[0138]
s4.3.2、通过四个stage(即stage1~stage4)对特征进行提取和下采样,其中每个stage中都含有多个卷积模块(convolutional block)和恒等模块(identity block)。
[0139]
s4.3.3、将stage4的输出特征图经过全局平均池化操作得到一个2048维向量表示的图像特征;
[0140]
该向量可以表示为:
[0141][0142]
其中,h和w分别表示原始图像的高度和宽度;
[0143]
将经过resnet网络的提取的特征向量h输入到bottleneck网络中,进行如下操作;
[0144]hout
=decoder(encoder(h
in
)

fpn/pan(encoder(h
in
))
[0145]
其中,encoder(h
in
)表示从encoder中提取的特征图,fpn/pan(encoder(h
in
))表示bottleneck操作将不同尺度的encoder特征图融合后得到的特征图,

表示特征图乘法操作,decoder表示解码器用来将高分辨率的特征图转换为低分辨率的特征图,h
out
和h
out
分别表示输入图像和输出特征图。通过这个公式,bottleneck结构能够将encoder中提取的特征图融合并转换为decoder需要的低分辨率特征图,从而协调encoder和decoder之间的信息流,提高模型的性能和精度。
[0146]
再利用u-net网络将输入的图像特征h在反卷积层进行反卷积操作,得到分割结果g;反卷积可表示为h(x),x是反卷积的输入参数,h是反卷积操作;
[0147]
g=decoder(h(h))
[0148]
在反卷积的过程中,我们通常使用转置卷积(transpose convolution)来实现。转置卷积是卷积操作的一种逆操作,将输入特征图通过插空的方式,扩展到更高的维度。
[0149]
g=w(h(h))+b
[0150]
其中,w表示反卷积操作的权重矩阵,b为偏置项。
[0151]
具体而言,转置卷积的实现可以表示为:
[0152][0153]gi,j,k
表示反卷积(转置卷积)生成的特征图g在第i行、第j列、第k个通道的像素值。
[0154]
表示对三个变量r、s、t进行求和。该公式用于计算特征图g在第i行、第j列、第k个通道的像素值,需要对反卷积核的每个权值w
r,s,t,j,k
和上一层特征图的部分像素值h
i+r-1,j+s-1,t
进行加权叠加,完成反卷积操作。
[0155]wr,s,t,j,k
表示反卷积核的权值,r、s、t分别表示反卷积核在第一个、第二个和第三个维度上的位置,j、k分别表示反卷积核的输入和输出通道数。
[0156]hi+r-1,j+s-1,t
表示上一层特征图在转置卷积操作之后,对反卷积核进行卷积操作时使用的像素值,i、j、t分别表示上一层特征图在第一个、第二个和第三个维度上的位置,r、s分别表示反卷积核在第一个和第二个维度上的位置。需要注意的是,在计算位置时需要将r、s调整到和反卷积核中心像素重合的位置(即:r+s-1=i+r-1+1=j+s-1+1),这样可以避免对目标区域产生贡献的位置产生重复计算。
[0157]bk
表示反卷积操作的偏置项,与卷积操作中的偏置项作用类似。
[0158]
s4.4、结果输出:将分割结果保存到磁盘上或在界面上展示出来。

技术特征:
1.一种基于深度学习的烟叶图像活动轮廓分割方法,其特征在于,包括以下步骤:s1、获取原始烟叶图像,对其进行图像预处理;s2、基于pytorch框架构建烟叶图像的分割模型;s3、对烟叶图像的分割模型进行训练;s4、将预处理后的新烟叶图像输入到建立好的分割模型中,分别输出对应的分割结果,即得到烟叶和非烟叶的图像区域,实现活动轮廓分割。2.根据权利要求1所述的一种基于深度学习的烟叶图像活动轮廓分割方法,其特征在于,所述步骤s1具体为:s1.1、获取原始烟叶图像,对其进行图像预处理,获得更准确的图像数据,再将预处理后的图像随机分为训练集、验证集和测试集;s1.2、对烟叶图像进行标注:利用labeling工具手动对烟叶图像进行标注,分割目标分为烟叶区域和非烟叶区域两类。3.根据权利要求2所述的一种基于深度学习的烟叶图像活动轮廓分割方法,其特征在于,所述的图像预处理包括图像增强、归一化、裁剪、去除噪声。4.根据权利要求1所述的一种基于深度学习的烟叶图像活动轮廓分割方法,其特征在于,步骤s2中具体为:基于改进segnet算法的模型,用于对烟叶图像进行分割。5.根据权利要求4所述的一种基于深度学习的烟叶图像活动轮廓分割方法,其特征在于,所述的改进segnet算法的模型分为encoder、bottleneck、decoder和softmax层;encoder使用resnet网络,对图像进行特征提取、下采样和参数拟合;bottleneck包括fpn结构和pan结构,用于连接encoder和decoder,并将encoder中提取的图像特征图转换为decoder需要的低分辨率特征图;decoder使用u-net网络,用于对图像进行上采样、参数拟合、尺寸匹配、特征融合和分类和预测;softmax层作为激活函数,用于将decoder产生的特征图进行像素级别的分类,得到每个像素点属于不同类别的概率分布。6.根据权利要求1所述的一种基于深度学习的烟叶图像活动轮廓分割方法,其特征在于,所述步骤s3具体为:s3.1、数据准备:获取步骤s1中预处理过的标注烟叶图像数据集;s3.2、定义数据加载器:使用pytorch的dataloader对标注烟叶图像数据集进行加载;s3.3、定义模型结构:根据改进segnet算法模型的结构,在pytorch中定义分割模型;s3.4、定义交叉熵损失函数:l(f,h)=-1/n*sum
i
(sum
j
[h
i,j
*log f
i
j+(1-h
i
j)*log(1-f
i
j)])其中,f
i
j表示segnet模型预测类别为正类的概率,h
i
j为标注图像中该像素的真实类别,n表示烟叶图像中所有像素的总数;s3.5、定义优化器:使用pytorch的sgd优化器来训练模型;s3.6、定义超参数:定义学习率、训练轮数、批量大小等超参数进行模型训练;s3.7、训练模型:使用pytorch的训练函数,开始训练模型,通过记录训练损失和验证损失来监测训练模型的进展;s3.8、进行模型验证:通过测试数据集,验证模型的效果,使用iou作为计算分割准确性
和绘制预测结果方法来进行模型验证;s3.9、模型保存:将模型保存下来,以便后续的测试和使用。7.根据权利要求1所述的一种基于深度学习的烟叶图像活动轮廓分割方法,其特征在于,所述步骤s4具体为:s4.1、加载模型:将已训练好的分割模型加载到内存中;s4.2、加载图像数据:将需要分割的烟叶图像加载到内存中,对图像进行预处理,使其符合分割模型的输入要求;s4.3、图像分割:将预处理后的新烟叶图像输入到分割模型中,得到分割结果;s4.4、结果输出:将分割结果保存到磁盘上或在界面上展示出来。8.根据权利要求7所述的一种基于深度学习的烟叶图像活动轮廓分割方法,其特征在于,所述步骤s4.3具体为:s4.3.1、将预处理后的新烟叶图像输入resnet网络进行卷积和池化操作,并输出为c3×
h/32
×
w/32
的特征图,c表示通道数,即特征图的深度,h表示高度,w表示宽度;s4.3.2、通过四个stage对特征进行提取和下采样,其中每个stage中都含有多个卷积模块和恒等模块;s4.3.3、将stage4的输出特征图经过全局平均池化操作得到一个2048维向量表示的图像特征,该向量能够表示为:其中,h和w分别表示原始图像的高度和宽度;将经过resnet网络的提取的特征向量h输入到bottleneck网络中,进行如下操作:h
out
=decoder(encoder(h
in
)

fpn/pan(encoder(h
in
))其中,encoder(h
in
)表示从encoder中提取的特征图,fpn/pan(encoder(h
in
))表示bottleneck操作将不同尺度的encoder特征图融合后得到的特征图,

表示特征图乘法操作,decoder表示解码器用来将高分辨率的特征图转换为低分辨率的特征图,h
out
和h
out
分别表示输入图像和输出特征图;通过上述公式,bottleneck结构将encoder中提取的特征图融合并转换为decoder需要的低分辨率特征图,从而协调encoder和decoder之间的信息流,提高模型的性能和精度;利用u-net网络将输入的图像特征h在反卷积层进行反卷积操作,得到分割结果g;反卷积表示为h(x),x是反卷积的输入参数,h是反卷积操作;g=decoder(h(h)),在反卷积的过程中,通常使用转置卷积来实现;g=w(h(h))+b,其中,w表示反卷积操作的权重矩阵,b为偏置项;具体而言,转置卷积的实现表示为:g
i,j,k
表示反卷积生成的特征图g在第i行、第j列、第k个通道的像素值;表示对三个变量r、s、t进行求和;该公式用于计算特征图g在第i行、第j列、第k个通道的像素值,需要对反卷积核的每个权值w
r,s,t,j,k
和上一层特征图的部分像素值h
i+r-1,j+s-1,t
进行加权叠加,完
成反卷积操作;w
r,s,t,j,k
表示反卷积核的权值,r、s、t分别表示反卷积核在第一个、第二个和第三个维度上的位置,j、k分别表示反卷积核的输入和输出通道数;h
i+r-1,j+s-1,t
表示上一层特征图在转置卷积操作之后,对反卷积核进行卷积操作时使用的像素值,i、j、t分别表示上一层特征图在第一个、第二个和第三个维度上的位置,r、s分别表示反卷积核在第一个和第二个维度上的位置;b
k
表示反卷积操作的偏置项,与卷积操作中的偏置项作用类似。9.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-8中任一项所述的一种基于深度学习的烟叶图像活动轮廓分割方法。10.一种计算机设备,包括储存器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-8中任一项所述的一种基于深度学习的烟叶图像活动轮廓分割方法。

技术总结
本发明公开了一种基于深度学习的烟叶图像活动轮廓分割方法,包括以下步骤:获取原始烟叶图像,对其进行图像预处理;基于Pytorch框架构建烟叶图像的分割模型;对烟叶图像的分割模型进行训练;将预处理后的新烟叶图像输入到建立好的烟叶图像的分割模型中,分别输出对应的分割结果,即得到烟叶和非烟叶的图像区域,实现活动轮廓分割。本发明使用基于深度学习的烟叶活动轮廓分割方法可以克服传统方法的不足,能够充分利用烟叶图像信息,学习到更复杂、抽象的特征,得到更好的分割性能。得到更好的分割性能。得到更好的分割性能。


技术研发人员:静大海 沈浩
受保护的技术使用者:河海大学
技术研发日:2023.06.09
技术公布日:2023/9/12
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐