陈宗元, 张磊磊, 赵宁宁, 苏明旭
(上海理工大学 能源与动力工程学院,上海 200093)
颗粒特性研究在工农业生产、环境检测以及生物医学等领域具有非常重要的意义,颗粒的数目、粒径分布和形状特征直接影响着颗粒的重要特性[1~4]。颗粒测量方法中,图像法因过程最为直观,能同时获取颗粒数目、粒径并作形貌特征分析而被广泛应用[5~7]。由于颗粒空间上粘连、相机角度、景深等原因,图像往往呈现多个颗粒重叠情形,如粘连的细胞、农作物颗粒等。将颗粒从背景中识别并分割为单独个体是对其准确测量的前提,分割效果将直接影响颗粒特征的后续分析与研究。
重叠颗粒的人工分割方法大多借助于图像分析软件手动交互处理,效率低且带有较大的主观性。国内外学者基于阈值、形态学、边缘跟踪、聚类等原理开展了自动分割算法研究。Miao H S等[8]分段采用基于距离变换的标记分水岭算法研究血液涂片中的细胞分割问题,该法对白细胞与红细胞严重重叠、图像质量不高时分割效果不佳;蔡改贫等[9]提出了一种形态学优化处理的标记分水岭算法,其特征须依赖人工阈值与结构元素参数的选取;郭观凯等[10]提出一种改进FAST特征点检测与分水岭算法结合方法,但对粘连程度高的图像效果仍不够理想;Zafari[11]采用曲率尺度空间方法提取凹凸特征点,检测出正确的凹点对重叠轮廓分段再作椭圆拟合,依据预设规则选择正确分割结果,对重叠目标分割效果较好,但要求目标形状大小基本一致,对不规则物体易出现误分割。
目前,图像法颗粒测量正趋于自动化、智能化发展,较少的人工参与、处理速度提升和准确度提高尤为重要。本文引入基于深度学习的颗粒分割方法,针对重叠颗粒特征加以改进,结合颗粒粒径分布、数目以及分类,通过实验开展对比研究,并将方法应用于结晶过程的图像法在线监测,最后探讨了结晶后期颗粒重叠及气泡干扰的消除问题。
卷积神经网络(convolutional neural network,CNN)是一种深度学习网络,通过自动提取浅层特征形成抽象的深层特征,避免了人工特征设计的不确定性与繁杂性,从而使图像分割与分类方法得到突破性发展。基于卷积神经网络的图像分割算法包括全卷积神经网络(fully convolutional networks,FCN)、SegNet网络、U-Net网络和Mask R-CNN网络[12~15]等。其中Mask R-CNN网络作为实例分割算法,不仅将颗粒从背景中分离识别,还可将颗粒分割为单独个体并进行分类,实现对重叠颗粒的分类和像素级分割等任务。
2.1.1 网络结构
Mask R-CNN算法主要由骨干网络、区域建议网络(region proposal network,RPN)以及结果输出网络3部分组成:
(1) 骨干网络:使用残差网络ResNet-101[16]与特征金字塔网络(feature pyramid networks,FPN)[17]结合作为骨干网络,提取并融合图像的多尺度特征。
(2) RPN其本质是基于滑动窗口的无类别目标检测器,在特征图上生成锚框映射回原图,遍寻所有可能包含目标区域。
(3) 结果输出网络通过一个全卷积网络并行分支输出目标的掩码,由两个全连接层进行目标的分类和边界框回归。
本文将Mask R-CNN网络引入颗粒图像分析,根据颗粒特征信息,对网络结构进行调整,重叠颗粒分割算法总体网络结构如图1所示。
图1 重叠颗粒分割算法网络结构Fig.1 Network structure of overlapped particle segmentation algorithm
2.1.2 骨干网络调整
采用ResNet-101来提取图像特征信息,鉴于重叠颗粒的特征相对简单但目标数量较多,为加快模型训练速度,提高预测效率,本文对ResNet-101的conv3_x和conv4_x的结构配置进行调整,见表1。如表1所示,在conv3_x、conv4_x层相对原始结构分别减少了1个和3个卷积块。为防止模型过拟合,在全连接层部分添加了dropout层。
2.1.3 双向FPN结构
小颗粒检测是图像法测量难点之一,小颗粒分辨率低,所占像素少,不易获得与大颗粒等量的特征与定位信息,检测准确率经常不及后者的一半。本文基于Mask R-CNN检测架构,提出采用一种改进的双向FPN结构,通过添加一条自下而上的通路将底层定位信息融入到高层语义信息中,构成双向特征金字塔,克服原FPN中单向融合缺少定位信息的缺点并实现全局特征融合。改进后的双向特征金字塔网络结构如图2所示。
图2 改进双向特征金字塔网络Fig.2 Improved double FPN structure
改进的双FPN结构使每个阶段的特征图都获得了全局的语义和定位信息,并且可以提升训练的速度和稳定性,能够有效地加强小颗粒的定位和检测准确率,在重叠颗粒分割任务中,可以降低对小颗粒的漏检。
2.1.4 Soft-NMS算法
NMS(non-maximum suppression,非极大值抑制)算法是RPN网络的重要组成部分,文献[15]中给出NMS算法表达式为:
(1)
式中:si为当前目标框所属类别的置信度;M为包含同一目标的所有目标框中置信度最高的目标框;bi为当前目标框;IoU(intersection over union)为当前目标框与置信度最高的目标框的交并比;Nt为交并比阈值。
由于NMS算法在边界框与置信度最高的边界框交并比高于阈值时会直接删除该边界框,造成漏检。本文进一步引入Bodla[18]提出的Soft-NMS(soft-non-maximum suppression)算法替代传统NMS算法。如式(2)所示,Soft-NMS算法使用线性的置信度重置函数,根据交并比值进行置信度衰减处理而非直接删除边界框,降低了重叠颗粒的漏检。
(2)
2.1.5 算法流程与参数优化
图3所示为基于深度学习重叠颗粒分割算法流程,编号并标注颗粒重叠图像获得训练集,由ResNet-101+FPN组成的骨干网络提取图像特征,RPN网络获得颗粒的目标框,利用ROIAlign特征池化,在损失层计算总体的损失,待达到最大迭代次数时结束训练并保存模型。颗粒图像原始分辨率为 2 448 pixel×2 048 pixel,将其统一缩放至768 pixel×642 pixel加快训练与测试速度,经模型训练与优化,将图像的锚框数量上限设为800,非极大值抑制阈值设置为0.75,对比损失函数变化,选取学习率为0.001。
图3 基于深度学习重叠颗粒分割算法流程Fig.3 Flow chart of overlapped particle segmentation algorithm
为与基于深度学习的分割算法对比,设计了基于传统图像处理的颗粒分割方法,见图4。使用维纳滤波去除图像噪点,以自适应阈值方法实现图像的二值化,对颗粒二值化图像进行形态学处理和孔洞填充,分别设计了Hough圆变换与分水岭算法分割球形重叠颗粒,对于混合颗粒,则采用分水岭算法分割后结合支持向量机(support vector machine,SVM)算法处理,图5给出颗粒图像的处理示例。
分水岭(watershed)算法借鉴测地学拓扑地貌,以图像像素灰度值表示该点海拔高度,每一局部极小值及其影响区域称为集水盆,其边界则形成分水岭,实现图像分割,由图5(f)可以看出,球形颗粒得到了较好的分割。由于混合颗粒图像的总体信息无法体现分割算法性能,通过SVM分类处理,SVM是一种常用的基于小样本学习的模式识别方法,其基本思想是求解能够正确划分训练数据集且几何间隔最大的分离超平面,再统计每类颗粒的信息。
图4 传统图像算法流程Fig.4 Flow chart of traditional image algorithm
图5 处理后的颗粒图像Fig.5 Images of particles processed by different methods
图6所示,本文设计了一种循环流动装置拍摄颗粒的动态图像,装置包括可调光强的卤素灯、烧杯、固定支架、样品池、搅拌器、蠕动泵、CCD相机以及计算机。CCD相机为FLIR公司的GS3-U3-50S5M-C工业相机,像素尺寸为3.45 μm,分辨率为 2 448 pixel×2 048 pixel,配备2倍光学镜头。实验采用背光照明方式,光源与相机位于样品池两侧,3者处于同一水平轴。
图6 颗粒重叠图像采集系统Fig.6 Overlapped particle image acquisition system
以多分散球形聚甲基丙烯酸甲酯(polymethyl methacrylate,PMMA)颗粒与多分散不规则聚氯乙烯(polyvinyl chloride,PVC)颗粒作为实验样品,分别配置PMMA-水悬浊液与PVC-PMMA-水悬浊液。实验时,待测样品置于烧杯中,使用电磁搅拌器确保溶液中颗粒分布均匀,防止大颗粒沉淀,通过蠕动泵使悬浮液循环流动。相机实时拍摄待测区域,分别采集球形颗粒图像、球形与不规则形混合颗粒图像用于后续分析。
将采集颗粒图像筛选、编号,获得球形颗粒重叠图像220张,混合颗粒重叠图像100张,每张图像包含100~400个颗粒。标注图像中的球形颗粒类别标签为“cir”,不规则颗粒类别标签为“ir”,获得2个数据集,用于模型的训练、测试、评估,精细标注测试集获得实际值。图7为处理获得的颗粒掩码图像。
图7 颗粒掩码图像Fig.7 Particle image mask
定义颗粒重叠度参数O以表征图像中颗粒的重叠程度:
(3)
式中:Noverlop为重叠颗粒数目;Nall为颗粒总数。经分析,实验采集单一球形颗粒图像颗粒重叠度为70.5%,混合颗粒图像重叠度为45.3%,均属于高度重叠颗粒图像。
3.3.1 球形颗粒图像
图8分别给出按改进深度学习算法、分水岭算法和Hough圆变换方法分割球形颗粒重叠图像。对比发现:分水岭算法出现了大量的过分割与欠分割;Hough圆算法基本识别出了所有颗粒,但将部分背景污点、杂质识别为小颗粒;Mask R-CNN算法存在少量漏检,但被识别出的颗粒特征更接近实际值。
图8 分割处理后重叠球形颗粒图像Fig.8 Images of overlapped particles processed by different segmentation algorithms
图9给出对球形颗粒粒径累积分布及与实际值对比。可见3种方法粒径累计分布曲线趋势接近,深度学习算法与Hough圆变换算法的分割结果与实际值基本吻合,在累计频率低于0.5时略低于实际值;分水岭算法因出现大量过分割,颗粒数目高于实际值,同时欠分割导致其结果中最大颗粒粒径大于实际值。结合图8和图9分析,3者对球形颗粒图像分割性能差别不大,即便分割效果最差的分水岭算法,经计算,数目统计误差为6.4%,数目中位径误差为5.6%。对于形状规则、特征简单的单一球形颗粒,因其分割难度不大,并不易评价分割算法的性能优劣,但对于高度重叠的混合颗粒图像其分割难度较大。
图9 不同方法得到的球形颗粒当量直径累积分布Fig.9 Cumulative distributions of equivalent diameters of spherical particles obtained by various segmentation algorithms
3.3.2 混合颗粒图像
鉴于混合颗粒总体粒径分布难以反映每类颗粒实际特征,须在分割基础上探究每类颗粒的粒径分布,本文对比深度学习算法和分水岭算法+SVM对混合颗粒重叠图像处理效果。深度学习算法能同时实现分割与分类,而传统算法须先由分水岭分割,再由SVM对结果分类单独统计。从重叠分割与颗粒分类两方面对算法进行评估,结合目标检测算法的评价指标,定义准确率P反映模型正确分类的效果,召回率R反映模型的漏检情况:
(4)
(5)
式中:Nture是正确识别的颗粒数;Npredict为所有被识别出的颗粒数;Nall是图像中所有颗粒数。
图10为不同方法分割与分类后的混合颗粒重叠图像,测试得到分水岭算法+SVM的分类准确率与召回率均为86%,深度学习算法分类准确率为91%,召回率为92%。
图10 分割分类后混合颗粒重叠图像Fig.10 Images of mixed-overlapped particles processed by different segmentation and classification algorithms
图11为不同方法得到的混合颗粒当量直径累积分布。对于球形颗粒,分水岭算法+SVM方法分布在累积频率超过0.6后,分布曲线逐渐偏离实际值,而深度学习算法粒径曲线总体吻合较好;对不规则状颗粒的结论相似,在累积频率超过0.5后,分水岭算法+SVM方法给出粒径大于实际值,且误差逐渐扩大。
表2给出颗粒特征粒径数据,表中DN50称为数目中位径,指大于或小于该直径的颗粒数各占颗粒总数50%,DN10、DN90由其类推,Dmax称最大颗粒粒径。
由表2可以看出,虽然分水岭+SVM方法DN10、DN50略优于深度学习算法,但其DN90、Dmax和颗粒数误差为12.5%、21.0%、-40.6%,整体粒径分布已远远偏离实际;深度学习算法获得球形颗粒粒度特征参数最大误差仅为6.4%(DN10),颗粒数误差为1.8%。对于不规则颗粒,最大特征参数误差为-9.5%(Dmax),颗粒数误差为-5.1%,与实际值更吻合。可见传统的分水岭算法+SVM方法存在欠分割,致使DN50曲线往右偏移,球形颗粒被SVM误检为不规则颗粒,导致球形颗粒数目远低于实际值。深度学习算法因获得重叠图像的深层特征,以双FPN结构和Soft-NMS避免小颗粒和高重叠度颗粒的漏检,经验证与两类颗粒实际值吻合较好。
结晶是一种晶态化学品分离纯化技术,结晶过程晶体粒度分布(crystal size distribution,CSD)的图像法监测对结晶演变研究和产品质量非常重要。但是在结晶过程后期,采集图像中结晶颗粒数目众多、重叠严重,又由于搅拌、温度变化等原因,其中往往存有数目不一的气泡,极大地增加了图像分析尤其是图像分割难度。基于前述方法,本文对结晶过程图像法在线测量进行研究,实验对象为在30 ℃配置体积分数65%的一水柠檬酸溶液,实验装置与过程见文献[19],降温速率为0.3 ℃/min,搅拌速率为 200 r/min,为探讨气泡干扰问题,实验中通过注气增加溶液中气泡。图12为温度为13.4 ℃时采集的结晶图像,实验图像的颗粒重叠度达到42.7%。
图12 13.4 ℃时结晶图像Fig.12 Image of crystal particles at 13.4 ℃
分析并统计粒径与数目信息,图13给出了结晶颗粒和气泡的粒径累积分布曲线。分水岭+SVM方法获得的结晶颗粒粒径累积分布曲线仅在累积频率低于0.4时与实际值吻合,之后出现了明显的偏离,因其误检率高、误差过大而对于此类结晶图像处理效果不佳。深度学习算法得出粒径分布与实际值总体吻合度高。由表3给出了颗粒数和特征粒径分析,深度学习算法不仅准确地识别并区分气泡,粒径特征参数和数目也较好吻合,对于结晶颗粒DN50误差仅为3.8%,颗粒数误差-1.3%。有利于解决气泡对结晶过程监测的干扰以及结晶后期图像分析乏力的问题。
图13 结晶颗粒粒径累积分布曲线Fig.13 Cumulative distribution curves of crystal particle size
表3 不同方法获得的结晶与气泡的特征粒径Tab.3 Crystal and bubble particles sizes measured by different methods
研究了图像法中重叠颗粒的分割问题,在传统图像分割与分类方法的基础上,引入基于CNN的深度学习颗粒分割方法;搭建颗粒重叠图像采集系统,采集到重叠度较高的单一球形颗粒、球形与不规则混合重叠图像并进行了结晶颗粒的图像法测量。通过从颗粒粒径分布、数目、分类准确率等方面对比分析,结果表明:
(1) 包括Hough圆变换[20]的3种方法均可较好地分割单一球形颗粒重叠图像。其中分水岭算法由于过分割与欠分割,效果略差;深度学习方法对于传统分割方法的优势不明显。
(2) 对于混合颗粒重叠图像,深度学习方法分类准确率为91%,召回率为92%,获得的球形颗粒DN50误差为0.9%,颗粒数误差为1.8%,对不规则颗粒DN50误差为-1.1%,颗粒数误差为-5.1%,整体优于分水岭+SVM方法。后者综合粒径参数偏离实际值,分割与分类效果不佳。
(3) 对于一水柠檬酸结晶过程的测量,深度学习算法颗粒图像分析与实际情况基本吻合,结晶颗粒DN50误差为3.8%,数目误差为-1.3%,较好地解决了图像法对结晶过程中气泡的干扰以及结晶后期监测乏力的问题。
本文基于深度学习方法设计的颗粒重叠分割算法克服了传统算法的不足,对颗粒重叠图像的分割取得了较好的效果,该方法可应用于结晶过程的在线测量,具有一定的工业应用价值。