一种乳状液液滴识别系统、方法、计算机设备及存储介质

文档序号:30453097发布日期:2022-06-18 02:29阅读:94来源:国知局
一种乳状液液滴识别系统、方法、计算机设备及存储介质

1.本发明属于乳状液液滴识别领域,涉及一种乳状液液滴识别系统、方法、计算机设备及存储介质。


背景技术:

2.观测乳状液粒径大小及其分布是分析乳状液稳定性的前提条件,对掌握乳状液微观特征、指导溶液乳化和破乳过程非常重要。乳状液粒径研究的第一步是要能够准确的识别出乳状液液滴。显微镜下拍摄的乳状液图片容易受到设备的干扰,产生噪声,且背景复杂,识别困难。
3.现有的识别乳状液液滴的方法主要有两种:一种为使用全局阈值二值化算法识别乳状液液滴。基本思路是首先找到图像中所有像素的最大值和最小值,取中点作为阈值。将图像中低于某个阈值的像素设置为黑色,其他设置为白色。但是如果图像过拟合或者欠曝光,图像可能会全黑或者全白,无法进行乳状液的液滴识别。
4.第二种方法是对乳状液液滴进行边缘检测,边缘检测的目的是找到图像中亮度变化剧烈的像素点构成的集合,这些集合往往就是目标的轮廓,但在实际中对乳状液显微图检测时,边缘的变化并没有预想中的简单明显,并且算法的过程较为复杂,对初始图像的要求较高,算法鲁棒性较差,对不同类型的乳状液识别时,有着不同的成功率,算法推广性不强。


技术实现要素:

5.本发明提供了一种乳状液液滴识别系统、方法、计算机设备及存储介质,解决了现有乳状液液滴识别难、精度低的问题。
6.为了达到上述发明目的,本发明采用的技术方案为:
7.一种乳状液液滴识别方法,包括以下步骤:
8.步骤1、获取乳状液原始图像,对乳状液原始图像进行预处理,得到乳状液序列图像;
9.步骤2、对乳状液序列图像进行处理,生成掩膜图像;
10.步骤3、将得到的掩膜图像以及步骤1得到的乳状液序列图像共同作为乳状液图像数据集,将乳状液图像数据集输入unet神经网络进行多轮训练,获得最优权重参数,得到训练好的的乳状液液滴识别模型;
11.步骤4、使用训练好的乳状液液滴识别模型对待识别的乳状液图片进行识别,输出乳状液显微图片液滴识别结果图。
12.进一步,步骤1中,用显微镜获取不同类型的乳状液原始图像。
13.进一步,步骤1中,所述预处理用于对乳状液原始图像进行数据扩充,数据扩充的方式为水平翻转、垂直翻转、随机剪裁、旋转或加噪声。
14.进一步,步骤2中,使用lableme软件标注乳状液序列图像,将乳状液液滴区域标注
名设置为target,生成与乳状液序列图像对应的json文件;
15.使用json文件和步骤1得到的乳状液序列图像生成掩膜图像。
16.进一步,步骤3中,unet神经网络包含5个下采样层和5个上采样层,最后一个下采样层和第一个上采样层连接,前四个下采样层和后四个上采样层之间存在跳跃连接链,最后一个上采样层连接全连接层输出识别结果。
17.进一步,步骤3中,unet神经网络所使用的激活函数为relu函数。
18.进一步,步骤3中,unet神经网络进行第n轮训练时,首先得到训练集中乳状液序列图像各像素点的分类结果数据,使用损失函数将此分类结果数据与步骤2中得到的掩模图的各像素点的值做计算,得出损失值;
19.将损失值反向传播至unet神经网络进行参数更新,之后利用参数更新后的unet网络模型对验证集图片进行前向推理,使用推理的结果和步骤2中得到的掩模图计算miou值;
20.将计算的miou值与前n-1轮中最高的miou值作比较,将拥有最高miou值的网络结构以及模型参数保存,作为最优的乳状液液滴识别模型。
21.本发明还公开了一种乳状液液滴识别系统,包括:
22.数据预处理模块,用于对乳状液原始图像进行预处理,得到乳状液序列图像;
23.掩膜图像生成模块,用于对乳状液序列图像进行标注,生成包含标注名称与标注位置的json文件;使用json文件和乳状液序列图像生成掩膜图像;
24.unet神经网络模块,用于将得到的掩膜图像以及乳状液序列图像共同作为乳状液图像数据集,将乳状液图像数据集输入unet神经网络进行训练,获得最优权重参数,得到训练好的的乳状液液滴识别模型;
25.图像检测模块,用于对乳状液显微图像进行液滴识别,将乳状液显微图像输入到训练好的乳状液液滴识别模型,得出乳状液显微图片液滴识别结果图。
26.本发明还公开了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述乳状液液滴识别方法的步骤。
27.本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述乳状液液滴识别方法的步骤。
28.与现有技术相比,本发明具有以下有益效果:
29.本发明公开了一种乳状液液滴识别方法,可以充分利用深度学习的优势,通过一次标注之后可以对多种背景、类别的乳状液图像端到端批量识别,普适性、泛化能力较强,解决了传统图像处理方法针对场景单一,需对每类场景设计特定解决方法的问题,省去了复杂算法的设计与实现,提高了工作效率。另一方面,传统的图像处理方法因其关注的信息较少,识别精度较低,分割效果差,本发明提出的乳状液液滴识别方法基于unet网络结构,其上采样和下采样之间有大量的通道连接,可以有效的利用图像的深层、浅层特征,保留图像的底层细节,提高乳状液液滴的识别精度,且具有较强的泛化能力,实现了乳状液液滴的自动识别。
30.进一步,保存最终的网络识别模型时,只保留拥有最高miou值的网络模型,不仅保证了识别模型的准确率、可靠性,也避免了保留过多模型造成的存储空间占用过大、以及最终筛选最优模型的额外工作量。
附图说明
31.图1为本发明的流程示意图;
32.图2为本发明的unet神经网络结构图;
33.图3为本发明进行检测的乳状液显微图像原图;
34.图4为本发明乳状液显微图像的unet网络检测结果图。
具体实施方式
35.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
36.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或装置不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或装置固有的其它步骤或单元。
37.下面结合附图对本发明做进一步详细描述:
38.如图1所示,本发明公开了一种乳状液液滴识别方法,包括以下步骤:
39.步骤1、获取乳状液原始图像,对乳状液原始图像进行预处理,得到乳状液序列图像;
40.步骤2、对乳状液序列图像进行处理,生成掩膜图像;
41.步骤3、将得到的掩膜图像以及步骤1得到的乳状液序列图像共同作为乳状液图像数据集,将乳状液图像数据集输入unet神经网络进行多轮训练,获得最优权重参数,得到训练好的的乳状液液滴识别模型;
42.步骤4、使用训练好的乳状液液滴识别模型对待识别的乳状液图片进行识别,输出如图4所示的乳状液显微图片液滴识别结果图。
43.具体地步骤如下:
44.一、数据集制作
45.如图3所示,将采集到的乳状液显微图像作为乳状液原始图像,对乳状液原始图像进行预处理,得到乳状液序列图像;
46.预处理具体为:使用python的opencv库对图像进行批量的水平、垂直翻转、裁剪或加噪声等进行数据增强,增强网络模型的鲁棒性。
47.使用labelme软件标注数据,将乳状液滴标注名设为target。标注完成之后,每张图片会生成对应的json文件。
48.使用python语言及opencv库对乳状液显微图像原图和对应的json文件批量处理生成掩膜图像。
49.之后将乳状液显微图像和生成的同名掩膜图像分别放置到两个文件夹,取名为img和label,输入到unet网络中训练。
[0050]“掩模图”通俗的来说就是人工给的一个“标准答案”,在训练过程中,网络如何确
定自己现在训练的结果正确率如何,就是通过对比“掩模图”来确定的,而网络每轮训练之后的预测值与掩模图(真实值)差距是通过损失函数来计算,计算之后更新参数,进行下一轮的训练,直到越来越接近真实值。所以乳状液图像数据集是包含两部分的,一部分为乳状液的原图,一部分就是生成的掩模图。
[0051]
二、网络模型搭建
[0052]
unet深度学习网络框架被广泛用于语义分割,对数据量的要求不高,因此能方便高效的应用到各类场景。unet网络主要由下采样编码、上采样解码、跳跃链接组成。下采样编码对网络中的输入图像进行卷积、归一化、最大池化操作降低图像尺寸,提取图像的不同尺度的浅层特征。上采样解码将提取到的图像的不同尺度的特征运用插值、卷积的方法恢复图像尺寸,提取图像的深层特征。跳跃连接将每次下采样提取到的不同尺度特征与对应的上采样提取到的特征进行特征融合,结合深层次与浅层次的特征,细化图像,之后进行识别。
[0053]
如附图2所示,本发明建立的用来识别乳状液液滴的unet神经网络由5个下采样层、5个上采样层组成。每个下采样层会进行两次卷积操作,前四个下采样层之间由池化层连接。每个上采样层也会进行两次卷积,后4个上采样层之间通过反卷积层连接。前4个下采样层和后4个上采样层之间连接有4个跳跃连接链。第5下采样层和第1个上采样层连接,第5个上采样之后接全连接层,输出识别结果。此网络中激活函数使用的是relu。
[0054]
上采样层是利用大量的卷积核来对乳状液显微图像进行特征提取的过程。此发明实例中的网络,卷积核取用的大小为3x3,步长为1。卷积核矩阵与乳状液显微图像矩阵进行数学运算,将原始图像中3x3窗口中的像素变为1个像素,运算完成之后卷积核向右滑动一个步长,继续运算。在此网络结构中padding填充值为1,因此经过卷积操作之后输出图像的尺寸不变。每经过一个上采样层,卷积核的数目增加1倍。
[0055]
池化层位于两个下采样层之间,本发明使用最大池化方法,池化核大小为2x2,步长为2。池化层可以对提取到的特征信息进行降维,一方面使得特征图变小,简化网络计算复杂度,在一定程度上避免过拟合的出现,一方面进行特征压缩,提取主要特征。池化操作之后特征图的长度和宽度会缩小一半。
[0056]
激活函数是在神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数。比起其他几种激活函数,relu激活函数没有饱和区,不存在梯度消失问题,没有复杂的指数运算,计算简单,效率高,实际收敛速度快。
[0057]
上采样层是将提取出来的特征向量图还原成图片。上采样层首先将对应的下采样层提取的特征向量图裁剪成和上采样层图片相同大小,之后拼接,再经过两次卷积操作提取特征。此过程使用的卷积核大小为3x3,步长为1。此层的操作将图像的浅层和深层特征结合,还原得到的图片更加的准确。每个上采样层卷积核的数目和对应的下采样层卷积核数目一致。
[0058]
反卷积位于两个上采样层之间,使用插值的方式扩充图像,反卷积核的大小为2x2,步长为2,经过此操作之后图像的长和宽会扩大2倍。
[0059]
全连接层位于最后一个上采样层之后,将图像分为前景和背景两个类别,组合输出图像的掩膜,即最终识别的结果。此层使用尺寸为1x1的卷积核。
[0060]
如附图2所示,本发明建立的用来识别乳状液液滴的unet神经网络由5个下采样层、5个上采样层组成。每个下采样层会进行两次卷积操作,前四个下采样层之间由池化层连接。每个上采样层也会进行两次卷积,后4个上采样层之间通过反卷积层连接。前4个下采样层和后4个上采样层之间连接有4个跳跃连接链。输入一张乳状液显微图像进入unet网络,下采样层对乳状液显微图像进行特征提取。
[0061]
本发明使用大小为3x3,步长为1的卷积核与输入的乳状液显微图像的矩阵进行卷积运算,每层共进行2次卷积运算,每经过一次卷积都需利用relu激活函数对得到的特征图进行非线性映射。第一个下采样层完成之后,利用池化层对提取到的特征信息进行降维,提取主要特征,使得特征图的长和宽变为原来一半,简化网络计算复杂度,防止训练时发生过拟合。下采样一共进行5次,第一次的卷积核数量为64,之后每进行一层,卷积核的数量相较与上一层增加一倍,到第5层,卷积核的数量为1024。每经过一个池化层就增加一个尺度,共有4个池化层,加上原图的尺度,共有5个尺度,因此本结构实现了对图像的多尺度特征识别。
[0062]
最后一个下采样层与第一个上采样层连接。上采样时,第一步需要对对应层次的下采样得到的特征图进行裁剪,然后与上一个上采样层得到的特征图拼接,之后使用尺寸为3x3,步长为1的卷积核进行两次卷积操作,提取特征。每次卷积之后都需使用relu激活函数对得到的特征图进行非线性映射。两次卷积操作完成之后需进行反卷积操作,即使用插值的方式扩充特征图,使图像逐渐恢复到输入大小。本发明使用的反卷积核的大小为2x2,步长为2。每经过一个上采样层,卷积核核数量相较于上一层减少一倍,到第五层,卷积核的数量由第一层的1024变为64。最后一个上采样层连接两个全连接层,全连接层使用尺寸为1x1的卷积核,对乳状液显微图像中各个像素分类,区分背景像素和液滴像素。
[0063]
三、模型的训练
[0064]
使用乳状液序列图像与对应json文件生成掩膜图像,之后制作乳状液数据集,数据集中包含乳状液序列图像和掩模图像。包含乳状液序列图像及对应的掩膜图像,将乳状液序列图像及掩膜图像分别按照7:2:1的比例生成训练集、验证集和测试集。
[0065]
关于分割训练集、验证集、测试集,生成掩模图时默认图片的名称和原图名称相同,在分割这三部分的时候按照图片名称分成7:2:1,即例如图片命名为“img1”,则对应的是两张图,一张为原图,一张是掩模图,即一张原图和一张掩模图可以看成一个整体,一个用来训练学习,一个用来对比观察网络学习的准确率。
[0066]
将制作好的乳状液显微图像以及生成的掩膜图像输入搭建好的unet网络中,使用dropout方法训练,在训练次数达到预设阈值时停止训练,每次训练完成之后将本轮训练得到模型中的miou值与历史最高的miou值做对比,miou(均交并比)为语义分割的标准度量,指计算两个集合的交并比,在此例中为标注生成的掩模图各像素点值和网络训练得到的预测图像的各像素点值的交集和并集的比值,取值在0-1之间,越接近1表示预测的结果越准确。得出的精度与模型中历史最好的精度(精度指具体的指标miou)比较,之后将拥有最高miou值的乳状液滴识别模型作为最终结果。
[0067]
miou的公式为:
it,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
[0081]
本发明提出的乳状液液滴识别方法,是直接从输入乳状液显微原图到图像掩膜输出的方法,unet网络的上采样层与下采样层相连,使得网络能够融合图像的浅层和深层特征,有效的保留图像细节,进行更高精度的检测。
[0082]
本发明可以充分利用语义分割模型unet网络的优势,实现了端到端的乳状液液滴识别,解决了传统的图像处理法适用场景单一的问题。另一方面,传统的图像处理法操作步骤复杂,算法针对性太强,普适性较弱,无法批量解决问题,工作效率低下。本发明提出的乳状液液滴识别方法不但提高了识别的精度,且具有较强的泛化能力,实现了乳状液液滴的自动识别。
[0083]
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1