赵丰华
(温州商学院,浙江 温州 325204)
工业炉是通过固、液、气体等燃料产生的热量,对工件进行加工的设备,在加热过程中涉及化学反应、熔炼等过程,而燃烧需要在稳定、均匀燃烧火焰上完成运作,假设其在不稳定状况下工作,会降低工业炉的热效率,增加烟尘产生量,严重会引发炉膛内部爆炸。工业炉火焰图像检测结果取决于图像分割效果[1-3],图像分割是图像处理核心环节,其本质就是将工业炉火焰图像分割成多个独立,或者具有独立特征的部分提取出来。为了保证工业炉火焰燃烧质量与预防潜在的危险,研究工业炉火焰图像阈值分割具有重要意义。
为此,国内学者进行了深入研究。颜礼彬[4]采用白化方法将火焰图像序列上冗余信息去除,根据独立分量分析法分离该图像上独立信息部分,结合颜色模型识别出火焰位置,完成火焰图像阈值分割。韩玲燕等[5]根据水平集方法获取火焰图像的轮廓,利用二维直方图提取该图像细节特征,结合小波多尺度特征分集完成图像阈值分割。但是这两种方法都存在着计算复杂度高、收敛速度慢的问题。
基于此,提出一种通过改进ISCA算法完成工业炉火焰图像阈值分割算法。利用混沌映射方法增加群体多样性,采用贪婪选择完善候选解的质量,结合Kapur熵函数提升最优解寻找速度,获得最佳分割结果。
工业炉是一种工业设备,主要是用燃烧燃料或转换电能产生的热量来加工物料。在运行过程中,一般通过炉膛内的电热元件功率和烧嘴输出调节膛内的温度。为了保证其安全运行,需要了解工业炉内的燃料使用情况。利用混沌映射改进正余弦算法,对工业炉火焰图像进行初始化,在此基础上,基于对立学习方法,以提升算法的收敛性和获得最优结果。
工业炉在生产过程中需要用到液体燃料、气体燃料和固体燃料等,若操作不当,极有可能产生安全事故,为了减少该类现象的发生,需要对工业炉火焰图像阈值进行分割。由于工业炉火焰图像分割方法存在计算量大、收敛慢等问题,为此,利用混沌映射对正余弦算法进行改进。
正余弦算法[6-7](sine cosine algorithm, 简称SCA)属于一种随机群算法,其本质就是根据正余弦函数的振荡特征逐渐收敛于最优解,向外波动进行全局搜索,从而找到全局最优解。
假设在B维空间中经过初始化处理后,生成数量为n的种群,用va=(va1,va2,…,vaB)来描述该种群中的第a个个体的空间位置,用f(v)来表示该个体的适应度函数,此时,最佳的粒子空间位置是Pg=(vg1,vg2,…,vgA),那么,更新第a个个体位置表示为
(1)
式中:b=1,2,…;B为当前粒子所处于的维度;N为目前迭代次数;s1,s2,s3,s4为4个不相同的参数,且s2∈(0,2π),s3∈(0,2),s4∈(0,1),s1具有线性递减特征,则
(2)
式中:c为常数;Nmax为最大迭代次数。根据式(1)可知正余弦算法主要用到s1,s2,s3,s4参数,每个参数都有各自作用,即s1能够判断出个体下一次运动的方向;s2决定个体运动的距离大小;s3为了引入修正策略,赋予最优解一个任意权重数值,进而增大(减少)个体运动方向所产生的效果;s4负责各正余弦函数之间转换。由此对这四个参数的设定,能够使正余弦算法具有较强的局部搜索能力,但其全局的最佳解的寻找能力较差,进而影响使用效果,就需要对正余弦算法进行改进。
种群质量影响正余弦算法使用效果,质量优良的种群能够提升其收敛速度、求解效率。初始化处理通常采用rand函数完成的,虽然此方法随机性好,但其分布效果较差。而混沌变量方法[8-9]的随机性、遍历性的特征,能够有效增加群体的种类。为此,采用混沌映射方法改进正余弦算法,混沌映射是一种以随机性、非线性、遍历性为特点,从一个确定的系统中产生一系列的混沌序列的算法,且收敛速度较快,可对正余弦算法起到较好的优化效果。通过混沌序列对工业炉火焰图像进行初始化处理,计算过程为
vn+1=εvn(1-vn)
(3)
式中:0<ε≤4,0 混沌[10]初始化处理详细过程为: 步骤一:根据rand函数产生种群首个个体v(a,:); 步骤二:采用混沌算法对第二个个体进行初始化处理,将v(a,:)的各维度做归一化处理,并对其进行赋值v(a+1,:),且0≤v(a+1,:)≤1; 步骤三:按照式(3)进行混沌映射,形成混沌变量cv(b); 步骤四:根据cv(a)把v(a+1,b)映射到原空间中,即v(a+1,b)=vmin+cv(b)×(vmax-vmin); 步骤五:分析是否完成整个种群的遍历,若否,回到步骤二,若是,终止。 工业炉火焰图像分割质量决定了最终的监测效果,因此,采用改进正余弦优化算法获取工业炉火焰图像的最优解。为了提升正余弦优化算法最优解的质量,引入对立学习机制[11-12],改进正余弦优化算法中个体空间位置的更新方法,使得该算法的原始更新方法能够与对立学机制进行交替执行,有效增加工业炉火焰图像类型,进而提升工业炉火焰图像最优解质量与收敛速度。 设定va(N)=(v′a1,v′a2,…,v′aB)表示迭代次数为N时工业炉火焰图像b的位置,lb、ub分别描述b维的空间位置的上下两个边界值,则工业炉火焰图像b对立位置计算过程为 va(N)′=lb+ub-va(N) (4) 如果va(N)′的适应度值大于va(N),也就是f(va(N)′)≥f(va(N)),就需要将va(N)′替换va(N);若f(va(N)′)≤f(va(N)),就需要将va(N)保留该群体中。通过对立机制后,群体的产生过程为:按照对立学习机制形成M个工业炉火焰图像的对立解,改进ISCA算法把原图像及其对立解图像,按照贪婪选择原理提取出质量优良的个体作为新图像,进而在保证全局寻找能力的前提下,使工业炉火焰图像具有更多个体类型。 改进ISCA算法的具体执行流程为: (1)相关参数设定:工业炉火焰图像数量M,最大迭代次数Nmax,混沌系数ε。 (2)工业炉火焰图像初始化处理:在搜寻空间内生成新的图像M′。 (3)根据对立学习机制得出M的对立图像M′,将M、M′中的个体的适应度进行合并,提取出该序列中质量好的个体组成初始图像M1,记录M1的最优粒子v*(N)。 (4)假设迭代次数N为单数,则M1按照正余弦优化算法进行空间位置更新,进而生成新图像,按照公式(2)更新参数s1,假设N为双数,按照对立学习机制产生M1的对立解,再把M1及其对立图像进行合并组成新图像。 (5)判定迭代次数能否为Nmax。如果为Nmax,则返回步骤(4),反之,则输出最佳的粒子,即获得最优工业炉火焰图像结果。 由于工业炉火焰燃烧过程中会产生大量的灰尘,并释放大量热辐射,致使火焰图像上存在大量噪声,严重影响工业炉火焰图像阈值分割结果,为此在进行图像阈值分割前,需要将火焰图像上的噪声去除。 设定F表示工业炉火焰的原始图像,将F分解成R、G、B三种灰度图,即FR、FG、FB,再以中值滤波算法[13-14]为依据,过滤FR、FG、FB灰度图,根据排序统计理论,抑制图像噪声的非线性平滑,通过将图像中一点的值改为邻域点的中值,使得较近的像素值越接近真实值,从而消除了工业炉火焰图像噪声。通过该算法得出任意像素中处理后的工业炉火焰图像为 E(x,y)=F(x-k,y-d),(k,d)∈W,(x,y)∈I (5) 式中:W为3×3的矩形模板;(k,d)为该矩形模板的长与宽的大小;I为该图像的定义域;(x,y)为该图像上任意一点像素。通过式(5)去除图像上噪声,得出较为清晰的工业炉火焰图像。 经过式(5)得出工业炉火焰图像E可知,该图像上有L个灰度等级,TH={th1,th2,…,the}表示该图像的分割阈值,其把图像E分割成Z个类型,即E1,E2,…;EZ,当中常数e=1,2,…,Z-1,th1 (6) 式中:h为灰度级i的像素值,且0 (7) 各阈值对应的去噪后工业炉火焰图像的Kapur熵为 (8) 各类型的累积分布函数计算过程为 (9) 通过式(6)~式(9)建立去噪后工业炉火焰图像阈值分割模型。 改进ISCA算法根据公式(6)把Kapur熵当做适应度函数,经过不断迭代计算找出最优的分割阈值,其本质就是:根据改进ISCA算法在工业炉火焰图像的灰度空间内寻找出最佳值,结合Kapur熵函数得出改进ISCA算法中每一个个体的适应度情况,找出最优值,进而发现Kapur熵最大值的分割阈值TH*,以该值进行工业炉火焰图像分割。详细过程为: (1)获取去噪后的工业炉火焰图像E,产生E的灰度直方图; (2)设定改进ISCA算法相关参数; (3)产生起始群体,各粒子空间位置的矢量即为工业炉火焰图像的灰度值组合,则灰度值的范围为0≤L≤256,也就是工业炉火焰图像分割的阈值范围; (4)将Kapur当作适应度函数,进行改进ISCA算法的最优解寻找过程; (5)分析改进ISCA算法迭代次数是否达到最大迭代次数Nmax,假设达到,回到(4),假设未达到,就需要将最优个体输出,该个体也就是分割的最优阈值TH*; (6)按照(5)得出最优阈值TH*进行火焰图像分割,并分析工业炉火焰分割图像的效果。 实验选用CCD摄像机与图像采集器获取某工业炉火焰灰度图像作为实验研究对象,该图像收集与处理过程中需要使用的设备如表1所示。 表1 图像收集与处理设备使用情况 实验中摄像机已被固定,工业炉处于正常运作状态,采集到火焰图像像素是512×640,如图1(a)所示。因为工业炉运行环境复杂,且烟尘极多,并考虑火焰图像收集设备因素,获得工业炉火焰图像上会含有大量噪声,为此需要将该原始图像进行去除处理,如图1所示。 图1 中间包内钢水层与保护渣层分界面的火焰定位 实验选用误分率当作工业炉火焰图像分割检测指标,ME数值大小能够直接表现出该图像背景像素被错误划分到目标区域的比值,计算过程为 (10) 式中:Bo、Fo为工业炉火焰图像背景区域及其二值掩码;Bt、Ft为工业炉火焰图像目标区域及其二值掩码。根据式(10)可知,ME数值越大,其分割结果越差,反之越好。 实验采集11张工业炉火焰图像,选用独立分量分析、二维直方图与改进ISCA算法进行误分率对比分析,结果如图2所示。 图2 误分率对比分析 由图2可知,利用所提算法进行图像阈值分割的误分率始终在2%以下,效果最好。因为所提算法使用Kapur熵找出全局最优分割阈值,进而很好地将背景区域与目标区域分开。而独立分量分析算法、二维直方图算法易陷入局部最优分割阈值,会将一部分背景区域的像素点错误识别成目标区域的像素点,进而得出ME数值始终大于所提算法。 实验使用独立分量分析算法、二维直方图算法与改进ISCA算法,在11张工业炉火焰图像中进行图像阈值分割用时对比分析,如图3所示。 图3 各算法的工业炉火焰图像阈值分割用时对比 由图3可知,改进ISCA算法工业炉火焰图像分割用时最短,因为所提算法利用混沌变量方法提升寻找最优解的速度,利用中值滤波算法来消除图像上的噪声,从而极大地减少了图像的分割难度,为此用0.3 s即可完成11张图像阈值分割。而独立分量分析算法属于一种机器学习算法,计算过程较为繁琐,为此图像分割用时较长;二维直方图分割图像过程中会降低火焰图像信息的对比度,增加图形处理的难度,图像阈值分割用时较长。 算法收敛性是评估算法性能的基本指标之一。为了更好地分析与对比改进ISCA算法的性能,实验设定算法的最多迭代次数为120次。改进ISCA算法、独立分量分析算法与二维直方图算法的收敛性能如图4所示。 图4 各算法的收敛性能对比情况 由图4可知,所提算法在第17次迭代时实现了收敛,而独立分量分析算法在10~40次迭代时陷入局部极值,随后缓慢跳出,在第65次迭代达到收敛;二维直方图算法从始至终都未达到收敛。由此可知,改进ISCA算法的收敛性能最好,因为该算法利用贪婪选择,可以有效地提高种群的多样性,从而防止种群进入局部极值。 为了提高工业炉火焰图像阈值分割精度,采用一种改进ISCA算法完成工业炉火焰图像阈值分割。根据SCA算法的特点,采用混沌变量算法对其进行改进,并设立对立学习机制提升种群的多样性,通过中值滤波方法去除工业炉火焰图像上噪声,利用Kapur熵最大化、灰度直方图等方法完成工业炉火焰图像阈值分割。实验结果表明,所提算法能够有效提升运行效率及其分割精度,并保证其收敛速度。1.2 获取工业炉火焰图像最优解
2 工业炉火焰图像阈值分割
2.1 工业炉火焰图像预处理
2.2 工业炉火焰图像阈值分割模型建立
2.3 工业炉火焰图像分割实现
3 实验数据分析与研究
3.1 实验环境
3.2 实验数据分析过程
3.3 分割效果对比分析
3.4 分割耗时对比
3.5 收敛性对比
4 结 论