基于机器视觉的磷复肥造粒粒度检测研究*
2021-08-20王紫越杨丙乔张红金周文乾郑山河
于 杰,张 翼,王紫越,杨丙乔 ,张红金,周文乾,王 刚,郑山河
(1.武汉工程大学 资源与安全工程学院,湖北 武汉 430074;2.江西新洋丰股份有限公司,江西 九江 332207)
0 引言
磷复肥因其溶解性好、肥效高[1],是肥料中的重要分支,其生产工艺流程为:原料混合、造粒、干燥、筛分、冷却等[2-3]。其中,造粒工艺影响产品的粒径、表面的光滑度,而产品的粒径又间接影响生产,粒径过大或过小均会增加生产成本,且消耗额外的能源,增加环境负担。
一般的粒度检测方法为筛分,但该方法只能粗略估计颗粒的粒度范围,且筛分机械工作时会产生振动,使得作业现场有较多的粉尘和较大的噪声。随着科学技术的发展,工厂的生产趋向自动化、智能化[4-6],其中机器视觉技术因其计算速度快和非接触等特性[7-8],能够满足工厂生产要求,得到了越来越广泛的应用,如特征参数检测、智能控制、目标定位等[9]。因此,本文开展了磷复肥造粒粒度的机器视觉检测研究,内容包括检测系统设计、图像处理算法及最终检测结果分析。
1 造粒特征分析
造粒工艺可分为转鼓造粒、塔式造粒、盘式造粒等。
转鼓造粒是先用破碎机将磷复肥产品破碎至合适细度,然后送入滚筒造粒机中,增加水蒸气辅助造粒,使原料在滚动过程中粒径逐步增大[10],形成合适粒径的颗粒后再干燥、冷却、筛分。
塔式造粒则将原料熔融后加入粉末状的混合物料,经由高塔喷洒冷却形成颗粒[11-14]。该方法造粒产品的成品率高,且颗粒表面光滑,不易结块,但对原料的配方设计有一定的要求[12]。
盘式造粒与转鼓造粒类似,湿物料经挤压而成型,该方式造粒产品的质量与物料潮湿度、转盘转速等有关。
对于不同配方和不同造粒工艺,都需要对产品颗粒进行筛分,保留合适粒度的产品包装成为最终成品,并将偏小颗粒返回再加工,偏大颗粒则需要破碎。
2 图像采集
2.1 硬件系统
目前机器视觉图像采集系统主要由图像采集部分、传输部分和处理器组成。
图像采集部分一般由带CCD或CMOS图像传感器的相机与镜头组合而成,其中CCD相机因其采用单点输出,信号输出的一致性较好,利于获得高质量图像,且数字信号可以有效避免传输过程中的衰减和外界干扰[15-16],因此拍摄实时运动的物体时表现更好;而CMOS相机成本较低,功耗较低,集成度高,且为线阵输出,速度较快,拍摄静态物体时可获得相对较好的图像。
传输部分一般采用图像采集卡将图像信号传输至处理器,并以数据文件的形式保存,便于后续对图像进行计算处理。
处理器有CPU(一般指计算机)、DSP(数字信号处理)器件等,当处理器接收到有效的数字图像信号时,对图像进行处理,使其在保留特征参数的前提下尽量清晰。
此外,为确保图像清晰、特征明显,还需添加光源,一般来说,优良的光照布局环境是机器视觉系统高效工作的必要条件。目前工业应用较多的光源有卤光灯、荧光灯和LED灯[16],其中,卤光灯光照强,荧光灯可较好地还原目标物体的色彩,但二者使用寿命短,需经常更换。目前在机器视觉领域中,LED灯的使用占主导地位,其寿命长、性价比高。除光源种类外,还应考虑光源形状及光源与相机摆放的相对位置。光源有环形、条形等,常根据实际拍摄物体的形状选择。光源相对于相机有3种摆放方式:暗视野照明、明视野照明和背光照明。对于不同种类的表面特征,应当通过实验确定光源的最佳摆放位置及摆放方式[17]。
2.2 软件系统
开发环境的搭建与硬件系统的选择有关,若由计算机作为处理器,可以选择简单的图像化编程,如LabVIEW,若不能满足要求,则可用C++或Python语言与OpenCV库编写图像采集及处理程序。
另外,还可利用FPGA(现场可编程门阵列)驱动工业相机的图像传感器完成图像的采集,然后由DSP进行图像的识别和处理,或直接通过FPGA控制图像的采集,同时完成图像的处理。这两种方式的程序编写均需要硬件描述语言,目前采用的主要是VHDL与Verilog HDL。
3 图像处理
为了更完整、高效地提取图像中颗粒的尺寸信息,需对图像进行预处理,然后提取轮廓信息,最终经过相关计算得到实际颗粒尺寸。图像处理的算法流程如图1所示。
图1 图像处理算法流程
3.1 图像预处理
由于工厂环境及相关器件的影响,使得数字图像在传输过程中易受设备及外部环境噪声影响,直接对图像进行特征提取有较大难度,且所得数据不准确,因此需要对图像进行预处理。工业相机所得颗粒原图如图2所示。
图2 颗粒群原图
对于上述现象,通常进行降噪处理。目前常用的降噪方式主要是滤波,通过对图像进行适当的模糊化处理,在减弱噪声影响的同时,尽可能保留边缘信息。具体方法有中值滤波、均值滤波及高斯滤波等。
中值滤波是将某一个像素点的值用邻域像素点的中值代替,以达到滤波的目的,这种方法对于减弱椒盐噪声的影响有较好的效果。均值滤波则是取某一区域像素值的平均值,该方法可能会模糊图像中颗粒的边缘轮廓,不利于后续计算。高斯滤波依据距离加权平均,取某一模糊半径内的像素点,使距离越远的像素点的权重越小,进而计算加权平均值。
本文采用高斯滤波,并根据实际情况设置高斯内核大小及标准差,算法如下:
void GaussianBlur(InputArray src,OutputArray dst, Size ksize,double sigmaX,double sigmaY= 0,int borderType= BORDER_DEFAULT )。
3.2 轮廓提取
一般认为图像像素值变化幅度最大的地方为边缘[18],根据该原理可对图像进行边缘提取,由于磷复肥造粒配方多样,产品特征不完全一致,如颜色、形状、表面粗糙度等,因此本文采用Canny算子对边缘进行检测,能够更精确地采集细微边缘,其结果如图3所示。
图3 边缘检测结果
为减少计算量,提高程序运行速度,Canny算法所处理的图像若为彩色图像,一般需要先进行灰度化处理,本系统采用黑白相机,因此无需灰度化。由于图像经过了高斯滤波,对边缘有一定的模糊,因此还需对图像进行增强处理,凸显某一范围内灰度值的显著变化,以此在一定程度上中和滤波影响。
此外,Canny算法中的一个重要步骤是对梯度幅值进行非极大值抑制[19],由于工业相机所得图像边界模糊,几乎没有像素值的突变,因此需要计算寻找某一领域内梯度的幅值和方向。非极大值抑制则是将该区域内像素点的所有非极大值设置为0,以此逼近人眼习惯,细化边缘。
最后提取轮廓,但根据实际应用结果,该方法会包含许多非理想边缘,Canny算法提供的解决方式是双阈值处理:设置高阈值,剔除非理想边缘;设置低阈值,减少高阈值对轮廓产生的不能闭合的影响。代码实现如下:
void CvCanny(const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size=3)。
对比图2和图3可看出,轮廓提取质量较高,几乎无遗漏颗粒,且边缘形状合理,因此在该图像基础上可提取轮廓,作为计算前的最终结果。
3.3 数值计算
本文中图像处理所得轮廓为不规则形状,且存在黏结颗粒,该数据不能直接利用,因此结合筛分原理在图像上作一最小外接矩形。理论上应将矩形的短边标记为颗粒的直径,但就实际应用而言,由于光照条件等影响,颗粒存在阴影面,导致图像轮廓短边偏短,所以长边更准确;且正常生产的情况下,磷复肥颗粒多为球形,因此,最终采用长边尺寸作为颗粒的测量直径。
根据工业生产习惯,将颗粒尺寸分为3个粒级:偏小颗粒、合格颗粒和偏大颗粒。经长时间观察,从3个粒级分别所占的百分比来看,测量结果与生产结果吻合度高。
此外,为便于后续工作的开展和系统异常检测,还计算了颗粒个数及其平均粒度。其中颗粒个数为0时,表示图像中无有效颗粒,应观察下料是否异常;颗粒个数过多时则表示产品多,应适当加大水蒸气的量及其他药剂量[3];而平均粒度的计算能够较好地反映颗粒粒度变化的总体情况。
4 现场应用
将基于上述算法的颗粒粒径采集软件用于江西新洋丰股份有限公司造粒车间的1号生产线上,根据平均粒径和成品粒径的合理占比实时控制造粒蒸汽阀门开度,取得了较好的粒度在线分析效果。
5 结论
本文基于机器视觉技术,对磷复肥造粒检测结果进行分析,并根据造粒特征确定采用硬件设备采集图像,编写了处理程序,其运行时能够准确识别颗粒轮廓并计算,计算结果与实际生产结果吻合,还计算了平均粒度与每张图片的颗粒个数,为后续研究奠定了基础。