基于改进I-Attention U-Net 的锌浮选泡沫图像分割算法
2023-03-08唐朝晖郭俊岑张虎谢永芳钟宇泽
唐朝晖,郭俊岑,张虎,谢永芳,钟宇泽
(中南大学 自动化学院,湖南 长沙 410083)
选矿是矿产资源加工中必不可少的一个重要环节,泡沫浮选是应用最为广泛的一种选矿方法,当今世界上90%的铅、锌、锑等金属都通过此方法被分离出来[1].泡沫浮选是一种以表面化学为基础,利用矿物颗粒表面亲疏水性的差异来有效分离不同矿物的选矿方法[2],浮选泡沫的表面视觉特征可以作为浮选工况和相关工艺指标的直接指示器[3].目前,操作人员主要通过在浮选现场观察浮选槽表面泡沫状态来判断有色金属浮选过程中泡沫矿物含量以及浮选生产运行状态[4].但由于工业现场矿源复杂多变,这种人工操作方式存在很大的主观性和不确定性,无法保证浮选过程的长期稳定运行,造成矿物的浪费[5].很多文章都指出可以通过观察浮选槽表面视觉特征,调整浮选槽液位、药剂量、鼓风量等操作参数来控制浮选过程[6-7].因此在矿物浮选过程中引入机器视觉技术,准确客观测量泡沫参数以及量化描述生产状态,优化浮选过程操作,对工厂效率以及矿物回收率的提高具有重要意义[8].
研究表明,泡沫尺寸大小分布、泡沫形态、颜色等静态纹理特征与动态纹理特征在工业过程判断泡沫浮选状态中发挥着重要作用[9-10].通过分割泡沫图像,获得准确的泡沫尺寸分布、形态等特征参数,能更好地表征泡沫表面,进而指导浮选过程.但浮选泡沫图像中存在泡沫结构复杂、轮廓不清晰、泡沫之间粘连严重等问题,给实现泡沫图像分割增加了一定难度[11].在过去的研究里,研究人员提出了多种泡沫图像分割算法,这些算法可以大致分为边缘检测法、分水岭算法[12-14]和阈值分割法[15]等.廖一鹏等人[16]提出了一种将多尺度边缘增强及自适应谷底边界检测相结合的气泡分割方法,有效增强边缘和抑制噪声.Zhang 等人[13]利用每个泡沫上存在的光照亮点,提出基于光照模型的标记分水岭方法,从而有效识别锌浮选泡沫图像中单个气泡的边界.Zhang 等人[14]在此基础上提出了一种具有最优标记的分水岭分割算法来解决欠分割问题.肖玲玲[17]等人借助机器视觉和DSP 技术,设计了一种改进的全局阈值分割的图像处理算法.然而,这些方法对先验知识过多依赖,使得泡沫图像的分割具有一定的局限性.
近年来,基于深度学习的方法在图像分割领域取得了较大进展.Shelhamer 等人[18]突破了传统图像分割算法,使用全卷积网络(Fully Convolution Net⁃works,FCN)对图像进行像素级分类,实现图像分割.Ronneberger 等人[19]提出的对称U 形结构网络(U-Net)以及Oktay[20]等人提出的Attention U-Net 网络,通过跳跃连接将网络抽象的深层特征和蕴含上下文信息的浅层特征进行融合,强化网络对不同尺度的特征关注,减少浅层图像特征丢失,进而提高了分割的准确率.这些算法应用在医学图像分割上都取得了很好的效果,是目前基于深度学习图像分割算法的基础.在泡沫浮选方面,Liu 等人[21]也提出了一种多尺度跳跃特征融合全连接卷积网络算法(multi-scale jump feature fusion fully connected convo⁃lutional network,MsJ),通过加入跳跃连接方式和残差块加强图像细节,对铜浮选泡沫图像进行精确分割.
对于锌浮选过程,一张泡沫图像中气泡大小差异较大,容易造成分割不准确的问题;泡沫表面受自然光照、图像采集系统照明、现场光照等多种光照的影响,存在色偏以及大量的阴影等问题.虽然上述深度学习算法可以应用于锌浮选泡沫图像分割,但仍然无法准确清晰地将泡沫边界识别出来,使得泡沫图像分割存在过分割或者欠分割的问题.一张泡沫图像由大量大小不一的气泡构成,即便是少量的误分割问题也将导致泡沫图像尺寸大小分布产生很大的变化,对后续特征提取、工况识别等产生较大影响.
本文针对锌浮选泡沫图像的特点和分割的难点,对深度学习网络的性能进行分析,利用深度学习的优势,基于U-Net 网络架构设计出一种新的算法用于泡沫图像分割,减少泡沫边界信息丢失,提高泡沫分割算法准确率.本文的主要贡献如下:
浅层特征包含更多细节、纹理、位置等信息,对浅层特征的提取有利于处理图像中的单个泡沫,因此,本文将Inception[22]模块与批量归一化(Batch Nor⁃malization,BN)相结合用于第一层特征提取.同时Inception 层增加网络的宽度,不同尺寸的卷积核使得特征图获得不同大小的感受野,加强了网络对泡沫图像中不同大小泡沫边界的提取能力.
改进注意力门控机制,加强对浅层特征的关注与提取,强化模型对不同尺寸气泡的学习能力.将该机制加在每一个上采样部分,增强网络的上采样能力.
通过对构建的泡沫图像数据集的评估,证明了本文所提出的改进I-Attention U-Net 算法与当前常用分割算法(FCN-8s、U-Net、Attention U-Net和MsJ)相比具有更好的表现,得到了更好的分割效果.模型在Jaccard 系数、Dice系数和像素准确率上均有提高.
1 网络结构与算法原理
1.1 网络结构
图1 为网络整体框架图.改进的I-Attention UNet 网络采用编码-解码的U 形对称结构,网络包括依次连接的输入层、编码器模块、金字塔池化模块、解码器模块和输出层.输入泡沫图像,编码器部分采用4 层卷积池化模块,逐步提取泡沫图像特征信息,每次下采样特征通道的数量加倍,特征图尺寸减半,第一层卷积池化模块改用Inception+BN 层,扩展网络的宽度与深度,使用1×1,3×3,5×5 不同尺寸的卷积核,获取不同的感受野,丰富该层提取的特征信息.再经过3 层普通卷积池化下采样后,通过在 U-Net 网络的编码块末端设置的金字塔池化模块,结合上下文信息,完成对泡沫图像的下采样.上采样部分经过反卷积池化操作结合下采样各层信息和上采样的输入信息还原细节信息以及图像精度,但在最后一层解码块使用Inception+BN 层,多尺度还原细节信息.同时在U-Net 编解码层之间的跳跃连接处引入改进的增强注意力门控机制,帮助解码器更好地修复目标的细节.最后通过1×1 的卷积和Sig⁃moid 激活函数,得到与输入泡沫图像相同分辨率的泡沫分割图片.其中编解码器各有3 层普通卷积池化,称为Conv_Block 子模块,每个子模块包含2 个3×3 卷积层、BN 层和非线性激活函数ReLU 层.经过两次3×3 的卷积操作,增加网络中每一个像素的感受野,使得特征图中每一个像素可以代表原图中的一块区域.BN的目的是加速网络收敛.
图1 本文提出的I-Attention U-Net网络结构Fig.1 The proposed I-Attention U-Net network structure
1.2 Inception模块
2015 年,Szegedy 等人[22]在GoogLeNet 模型中第一次提出Inception结构.Inception块采用不同大小的卷积核,横向增加网络结构,使得特征图中的每一个像素可以获得不同大小的感受野,最后将其拼接在一起对不同尺度特征进行有效融合,实现多尺度读取输入图像特征向量[23].经典的U-Net 网络编解码部分仅包括 3×3 的卷积层和 2×2 的池化层,卷积操作单一,往往对图像不同尺度特征信息的学习不全面,同时限制网络的深度和宽度.
由于浅层特征图分辨率更高,每个像素对应原图的感受野小,包含更多位置、细节、纹理信息,对浅层特征的关注将更加有利于对浮选泡沫图像中的单个泡沫的分割,本文采用Inception 架构取代经典的U-Net 网络编解码部分第一卷积池化层中的单一的卷积操作,同时对Inception-V1 块进行改进,即在 1×1、3×3、5×5卷积层后接入BN层.采用的Inception模块含有三条卷积支路,网络中每一层都能学习到“稀疏”(3×3,5×5)或“不稀疏”(1×1)的特征,因此该Inception 模块具有三个不同尺度的特征提取能力和融合能力,可以弥补U-Net 模型单一尺度卷积操作的局限性,从而提高模型对泡沫边界的分割能力.编码解码部分均采用Inception 模块,保证图像分割的准确性.Inception模块如图2所示.
图2 Inception网络结构Fig.2 Inception network structure
1.3 注意力门控单元
注意力机制(Attention Mechanism)为了加强重要特征信息,会选择对不同的像素分配不同的权重.将注意力机制应用于U-Net 分割网络中,可以更好地提升对目标区域的关注度,更好地抑制背景[24].本文在U-Net 网络编解码层间的跳跃连接处加入改进的增强注意力门控机制,以深层特征作为门控信号,对浅层特征进行再一次加强后与深层特征结合,增强用于精确分割的浅层信息.改进的增强注意力模块如图3所示.
图3 改进的注意力模块Fig.3 The improved attention module
浅层特征Fl作为特征输入,深度特征Fg作为门控信号,分别经过核为1 的Wl和Wg卷积,使两个特征的通道数相同,并逐元素相加.经过ReLU 激活函数增加非线性能力,通过1×1 卷积层Wφ2和Sigmoid激活函数,得到与输入特征图尺寸相同、通道数为1的注意力权重图α,使其与特征图Fl相乘,实现自注意力机制.深层特征Fg通过1×1 卷积层Wφ1后得到与Fl相同通道的新特征图F′g,最终将深度特征图F′g经过与αFl逐点相加得到新的特征图Fnew,强化深度特征,进而实现多层次特征的融合.计算方法如下:
式中:α为注意力权重;σ1是ReLU 函数;σ2是Sig⁃moid 函数;Wl、Wg、Wφ1、Wφ2为线性变换参数;bg、bφ1、bφ2都是对应卷积的偏置项.
1.4 金字塔池化模块
PSPNet(Pyramid Scene Parseing Network)对场景解析是基于语义分割的,赋予图像中每个像素一个类别标签[25].其中的金字塔池化模块(Pyramid Pool⁃ing Module,PPM)使用不同尺度的池化核对特征图进行池化,可以更好地融合局部和全局信息[26].为了更好感知锌矿浮选泡沫图像中包含的丰富细节信息,模型使用多尺度金字塔池化模块获取泡沫边 界信息.池化参数分别为(1,1)、(2,2)、(4,4)和(8,8),金字塔池化模块对这4 种尺度的特征图进行融合,获得最终的金字塔池化全局特性.
2 泡沫图像分割算法设计
本文泡沫图像分割模型训练与测试流程如图4所示.首先,通过工业相机自主采集泡沫图像,得到原始泡沫图像集,同时对原始泡沫图像中的泡沫边界分别进行像素级标注,得到人工泡沫分割图像,共同建立泡沫图像数据集.其次,对工业相机所获得的泡沫图像样本和对应的人工手动做出的分割图像一起进行旋转、翻转,数据增强处理得到样本图像,将所有样本图像按比例划分为训练集、验证集、测试集.接下来,构建深度I-Attention U-Net 卷积神经网络分割模型,调整泡沫图像分割网络的参数,并将网络中的超参数进行优化,将训练集图片送入构建的分割模型进行训练.最后,利用所述改进的U-Net 神经网络模型对测试集中的泡沫图像进行识别分割,得到网络最后的分割结果,验证泡沫图像分割在本文网络中的有效性.
图4 锌浮选泡沫图像分割模型训练与测试流程框图Fig.4 The training and testing flow chart of the image segmentation model of zinc flotation froth
2.1 建立泡沫图像数据集
本文所用的数据均来自中国广东某铅锌矿选矿厂工业现场,图像均采集视频中截取.每隔3 h 选取 1段视频,选择8段视频(总计24 h).为保证每一张图片都没有重叠部分、相互独立,从捕获的视频中每一秒采集一张泡沫图像,每段视频(44 s)可以采集到44 张图片,一共352 张分辨率为692×518 的泡沫图像.将每张泡沫图像裁剪为512×512 大小的图像,每一张泡沫图像的人工标签(Ground Truth,GT)全部由经验丰富的专家手动标记.对获得的图像以及相应的标签图像用于训练,再对原始数据采用水平翻转、垂直翻转以及90°、180°、270°旋转的方法进行数据增强,使得模型拥有更好的泛化能力.
2.2 构建加权损失函数
本文构建了以Dice损失函数和二分类交叉熵值(Binary Cross Entropy,BCE)损失函数为基础的加权损失函数,表达式如下:
式中:X代表预测分割结果;Y代表实际的标签值.YlogX部分对应泡沫边界区域,(1-Y)log (1-X)部分对应泡沫表面区域.将这两种方法结合在一起可以在一定程度上减少损失,同时受益于BCE 的稳定性,能够解决分割精度低、网络不易收敛的问题,使得网络具有分割精度高、收敛快的优点.
2.3 训练过程
实验计算机为Windows 10系统,CPU为Inter i7-11700K,以 Python 作为开发语言,使用PyCharm 2020 x64 进行模型网络训练和测试,并利用NVIDIA RTX3080 显卡加速模型网络的运算.在以上的实验环境下对样本进行训练,随机将2 112 对带有GT 的泡沫图像按照7∶2∶1 的比例分为训练集、验证集和测试集,其中训练集为1 478 对样本,验证集为422对样本,测试集为212对样本.
网络训练过程中,通过Adam 优化器来自动更新迭代网络内部参数,网络训练epochs 次数为400 次,学习率为0.000 1,batch size 为16,损失函数为构建的加权损失函数,利用Early Stopping 技术抑制训练过程中过拟合问题.
训练集与验证集损失函数值与准确率变化曲线如图5 所示,横坐标表示迭代次数,纵坐标表示损失值.由图5可知,在迭代次数达到300次时,损失函数值已接近稳定,且基本达到最低值,网络收敛且验证准确度高.
图5 训练集和验证集的损失值曲线(左)与Jaccard 系数曲线(右)Fig.5 Curves of loss value(left)and Jaccard coefficient(right)in training datasets and validation datasets
3 实验结果与分析
本节将所提算法在实际工业现场采集到的数据上进行实验验证,并且将算法中不同的模块性能进行验证以及不同网络模型之间进行对比实验,从而更好体现所提算法的性能.
3.1 算法评价指标
为对图像分割性能进行评估,将分割结果与人工标注结果对比,基于像素测度计算评估系数,以综合评判性能优劣.本文采用Jaccard 系数、区域相似度系数(Dice coefficient)和像素准确率(Pixel Accu⁃racy,PA)3 个指标对泡沫分割结果进行定量分析,Jaccard、Dice和PA计算公式如下:
式中:Vseg代表预测分割结果;Vgt代表实际的标签值;TP表示泡沫边界像素类被正确分类样本面积;TN表示背景像素类被正确分类样本面积;FP 表示背景像素类被错分为泡沫边界像素类样本面积;FN 表示泡沫边界像素类被错分为背景像素类样本面积.Jac⁃card 系数常用于比较有限样本集之间的相似性与差异性,Jaccard 系数越大,样本相似度越高.Dice 系数同样用于评估两者的相似性,Dice 系数越大,相似性就越高.PA系数对应于准确率,PA 系数越大,准确率就越高.
3.2 不同网络模块性能对比
3.2.1 改进的增强注意力机制模块有效性验证
为了验证注意力机制在泡沫图像分割上的效果,以及对比改进注意力机制的作用,本文基于UNet网络设计了两个对比实验,关键评价指标结果如表1所示.
表1 评价指标结果Tab.1 The results of evaluation indicators
从表1 可知,没有加入任何注意力机制的U-Net网络其Jaccard 系数为90.29%,加入了注意力机制的模型其 Jaccard 系数为90.63%,验证了注意力机制的效果.而加入本文提出的改进注意力机制的模型其 Jaccard 系数为90.82%,因此,本文提出的改进注意力机制模块可有效提高Attention U-Net模型的性能.
3.2.2 Inception模块不同位置性能对比
以Attention U-Net 网络为基础,引入不同的In⁃ception 模块.本文采用了Inception v1+BN 层模块,与Inception v1 和Inception v2 模块进行对比实验,结果如表2 所示.实验结果证明:在Inception 模块中引入BN 层不仅可以加速模型训练,还可以使网络学习更加稳定,可提升模型精度.
表2 Inception模块对比实验结果Tab.2 Comparative experimental results under different inception modules
为证明在本文构建的网络中,Inception 模块代替第一个卷积池化模块的有效性,本文进行多组In⁃ception 模块位置实验.以本文网络架构为基础,尝试用Inception 模块替换不同位置的卷积池化模块,得到了5 个不同的网络.以下实验均采用相同数据集,使用相同的损失函数和训练策略,并保证相关参数一致.其结果如表3所示.
表3 Inception模块不同位置测试结果Tab.3 Inception module test results at different locations
由表3 可知,使用Inception 模块代替本文所构建网络的第一卷积池化模块,使得测试集上的Jac⁃card指标达到最大,为 91.73%,其他位置以及多个位置包含Inception模块网络的Jaccard系数均低于该数值,由此证明本文所构建的网络中Inception 模块代替第一卷积池化模块的有效性.
3.3 消融实验
为验证本文所构建的网络中各个模块的有效性,进行消融实验,训练了5 个不同的网络用于对比分析.第1 个模型为Attention U-Net 模型;模型2 在模型1 的基础上,引入Inception 块替换Attention UNet网络编解码第一层的卷积块,实现多尺度特征提取;第3 个模型为改进的Attention U-Net 模型,使用改进注意力门控单元替换第1 个模型的注意力机制;第4 个模型将Inception 块与改进注意力门控单元块一同加入U-Net 网络;第5 个模型在第4 个模型的基础上引入金字塔池化层,即本文所提出的模型.分别训练以上模型,其结果如表4所示.
由表4 可知,当引入不同模块时,模型在Jaccard系数、Dice 系数和PA 系数上均得到了不同程度的提升.Attention U-Net 网络分割交并比系数为90.63%,将Attention U-Net 网络编解码器中的第一层传统卷积替换为Inception,网络的分割交并比系数较Atten⁃tion U-Net 网络提升了0.25%,说明Inception 块能够扩大感受野,提取更多泡沫边界细节特征信息.使用改进的增强注意力机制后网络的分割交并比系数较Attention U-Net 网络提高了0.19%,说明改进增强注意力机制的使用使得网络在训练时偏向于学习泡沫边界特征,从而增强了网络对泡沫边界特征的表达能力.通过在编码器最后一层加入金字塔池化模块,提取具有上下文关联的泡沫特征,有助于解码器上采样时多尺度恢复泡沫边界信息,网络的分割交并比系数提高了1.10%.
表4 消融实验测试结果Tab.4 Test results of ablation experiment
3.4 不同分割算法结果分析
为综合评价不同分割算法性能,引入图像质量评估指标均方误差(Mean squared error,MSE)、峰值信噪比(Peak signal-to-noise ratio,PSNR),计算公式如下:
式中:X、Y分别表示模型输出的预测图与手工标记的分割图像;m、n分别表示图像的宽和高;MaxY表示分割图像像素点最大像素值(即255).在进行图像质量评估时,MSE 越小,则模型输出的分割图像与手工标记的分割图像越接近;PSNR 数值越大,表明模型输出的图像质量越高.
本文分别对FCN-8s、U-Net、Attention U-Net、MsJ 和改进I-Attention U-Net 算法五种网络模型的分割性能进行实验对比,评估指标对比如表5 所示,不同模型的输出结果如图6所示.
表5 不同模型测试结果及其性能指标Tab.5 Test results of different segmentation algorithms
从表5 可知,相比于其他算法,本文提出的改进I-Attention U-Net 算法模型在锌浮选泡沫数据集中的表现最好,其Jaccard 系数和PA 分别为91.73%和92.39%.相比于FCN-8s、U-Net、Attention U-Net 以及MsJ算法,本文提出的算法模型在准确率和图像质量方面都得到了提升.此外,模型的参数量和计算速度也是衡量模型性能的重要指标,参数量越小越容易部署在微型计算机上,而较短的检测时间将大大提高系统的实时性.对比不同模型的参数量、训练时间以及检测时间,如表5 所示.其中训练时间是指当验证集损失函数达到稳定时,训练模型所用的时间;检测时间是指模型处理一张泡沫图像所需时间.训练时间和检测时间与实验计算机硬件有直接关系,本文实验所用计算机已在2.3 节详细说明.将上述5 种模型经过多轮训练后,取其均值得到训练时间以及检测时间.从表5 可知,FCN-8s 模型训练时间最短,是因为当该模型训练迭代至第40 次时产生过拟合,但是单次迭代时间最长.U-Net 以及Attention U-Net模型在第230次迭代左右时达到最优,但从图6可知分割效果远不如本文所提出的算法.MsJ 参数量大,训练时间长,在第350 次迭代时达到最优.本文所提出的模型相较于其他模型,训练时间略长,但是检测时间短,参数量小,具备部署工业现场计算机的能力.
图6 不同分割算法的分割结果Fig.6 Segmentation results of different segmentation algorithms
本文提出的算法与其他算法的泡沫图像分割结果如图6 所示.为了有效对比不同算法在泡沫图像上的表现,我们选用了3 张泡沫大小分布差别较大的泡沫图像作为结果展示.(a)为从现场采集到的泡沫图像,(b)为人工标记的分割结果,(c)到(g)分别为FCN-8s、U-Net、Attention U-Net、MsJ 和本文提出算法的分割结果.FCN-8s 网络对于明显的泡沫边界可以做到有效分割,但是线条粗糙;对于小泡沫和不明显的泡沫边界无法有效分割.FCN-8s难以准确地分割出泡沫的边界,泡沫边界模糊且不连续,整体欠分割严重.U-Net 网络使得分割结果的泡沫边界较FCN-8s 更清晰,分割结果的图像更符合泡沫图像分割的结果,线条之间的连贯性更好,清晰度更高.但是对于一些强粘连泡沫之间的边界还是无法有效识别,图6(d)中还是存在很多不清晰的线条.Attention U-Net 网络加入了注意力机制,会强化学习每一层特征,也就使得分割结果中的小泡沫和强链接泡沫之间的边界更加清晰.MsJ 网络没有使用注意力机制,而是通过卷积块和金字塔采样保留图像不同层次特征,使得分割结果虽然识别了不同尺寸的泡沫边界,但是卷积块的存在弱化了强链接泡沫之间的边界,分割结果就会忽略这些较弱的边界.本文算法通过引入Inception+批量归一化层和金字塔池化层,并增强注意力模块后,有效减少了泡沫边界细节特征信息丢失的现象,泡沫界限清晰,在粘连泡沫处的边界也能识别并画出来,泡沫分割的准确率较高,且分割边界更加精细.综上,本文算法对结构纹理复杂的泡沫图像分割效果较好,这充分证明了本文算法的有效性.
4 结论
1)在网络中通过Inception 块中多卷积核组合的方法来扩大感受野,在保持空间信息的情况下,获取多尺度浅层特征信息.引入改进的增强注意力门控机制,强化学习气泡边界特征.通过Inception 块、改进增强注意力机制以及金字塔池化模块的组合,泡沫边界分割得更加清晰、连贯,提高了分割的准确性.Dice 系数和像素准确率分别达到了95.66%、92.39%.从分割图像的效果来看,有效弥补了传统的泡沫图像分割算法对单个泡沫分割不彻底、不精细的缺陷.
2)在采集到的工业泡沫图像数据集上进行实验验证,本文提出的算法对于泡沫图像中泡沫的边界的自动分割取得了较好的效果.相比于其他分割算法,本文提出的算法参数量小,检测时间快,更加具备可以部署在工业现场中小型计算机的能力,具备一定的实际意义和实用价值.
3)精确的泡沫测量对于泡沫浮选工况感知与优化控制都具有十分重要的意义.泡沫图像分割是后续泡沫特征提取等操作的基础,在未来,将进一步探索泡沫图像特征与锌矿泡沫浮选品位之间的模型关系.