王丹民,孙庆文,沈迎君,王永涛,李耀军
WANG Dan-min,SUN Qing-wen,SHEN Ying-jun,WANG Yong-tao,LI Yao-jun
(中冶京诚工程技术有限公司,北京 100176)
目前,我国钢厂在棒材计数方面主要采用人工计数和光电检测两种方式。绝大多数企业采用人工计数方式,人工计数方式劳动强度高、效率低,为避免出错,在管理方面采取多人重复计数方法以保证准确率,人力成本较高,这种计数方式也与棒材全连轧制不匹配,成为棒材厂自动化生产过程中的速度瓶颈[1]。光电检测计数方式由于受氧化铁皮粉尘和随机光线的影响,会产生多计现象,或者当棒材出现粘连和重叠时现象,会产生漏计现象。为解决漏计问题,可以在生产线计数工序之前增加机械平铺装置,实现棒材的单层平铺且相互分离,但上述措施仅可以解决较粗棒材的光电计数问题,对于解决细棒材的重叠和交叉无能为力[2]。为解决上述两种方法的不足之处,我们开发了基于图像识别技术的棒材自动计数系统。
采用机器视觉方法,利用工业相机、照明光源、图像采集卡等设备获取生产线上运动的棒材端面,通过计算机图像处理等方法,准确识别出中棒材的根数,并根据打捆数量要求,在棒材中间适当的位置标识出满足生产要求的分钢位置[3]。该方法可以有效解决对于光电检测法无法解决的细棒材在重叠、交叉和无法分离情况下的计数问题。系统具体功能如下:
1)实时显示生产现场棒材端面图像、并对其计数;
2)满足打捆根数要求时自动控制链床停止,并在屏幕上实时显示分钢位置;
3)适用于棒材产品规格直径10mm~25mm,或更宽范围的产品规格;
4)满足链床运行速度范围300mm/s~1000 mm/s;
5)界面简单,采用触摸屏,方便现场工人操作;
6)棒材端面照明光源亮度可软件调节。
系统结构如图1所示,具体说明如下:
1)光源与棒材端部的水平距离为1.5m~2m,位于链床水平面以下,且与该平面在棒材端部形成5~10度的夹角,可减少棒材上表面的光亮度。照明光源采用以超高亮蓝色聚光二极管制成的蓝色LED光源,因为生产线上的棒材经上道工序冷剪切割后,其端面经常呈现蓝色,所以,采用蓝色光源会增加棒材端面光反射强度。
2)拍摄装置采用黑白数码摄像机,采用黑白方式可增加目标对象与背景的区别,提高目标图像清晰度。相机传感器采用逐行扫描CCD,连接计算机的数据接口采用IEEE1394a,帧率为30fps。拍摄装置与棒材端部的水平距离为1.5m~2m,位于链床水平面以上,且与该平面在棒材端部形成5~10度的夹角。拍摄视场宽度为300mm~700mm,高度为200mm。
图1 系统结构图
3)链床上下方各安装遮光装置,上方为遮光箱,可罩住棒材端部,遮挡背景光,下方为可调节高度的遮光板,与棒材端部在同一垂直面上,遮挡下部反射光。
4)棒材端面图像经图像采集卡输入到图像识别系统,经过图像处理后识别出图像中棒材根数。当棒材根数达到打捆根数要求时,在屏幕上最后一根棒材位置后面标识出分钢位置,同时系统向I/O控制板发送停止链床的命令,使链床驱动电机停转,链床停止,再进行分钢等操作。
5)在链床传动轴上安装编码器,其输出的脉冲信号输入置于工控机中的计数卡,测得链床移动速度,进而获得前后两幅图片中相同棒材的位移量,图像识别系统利用位移量实现图像跟踪。
3.1.1 平滑滤波
棒材图像在采集过程中因受到背景光线等诸多因素的干扰而含有噪声,噪声恶化了图像质量,给后续的图像分割等处理过程带来困难,所以在从图像中提取各种特征之前,需要减少和消除图像中的噪声,即对图像进行平滑滤波。滤波方法有多种,如:邻域平均法、低通滤波、中值滤波等。综合考虑执行速度及效果等因素后,选用了中值滤波。具体方法是:选用一个含有奇数个点的滑动窗口W,把滑动窗口内覆盖的子图中的各点像素的灰度值按大小排序后,取其中间位置的值来代替滑动窗口中心点像素的灰度值。其数学形式为[4]:
式中: W——所选定模板窗口,这里选5×5;
f (x,y),g (x,y) ——分别为中值滤波前后的图像;
median——中值算法。设有n个值gi,i=0,1,…,n-1,若以升序对gi进行排序后得到si,则gi的中值为:median (gi) = Si/2。
中值滤波前后效果如图2、图3所示。
图2 摄像机采集的原图
图3 中值滤波后效果图
3.1.2 图像分割
图像分割是提取图像中与感兴趣部分相对应的那些区域,通过设定阈值,对图像进行二值化处理是常用的图像分割方法之一。设图像f (x,y)的灰度范围是(Tl,Th),阈值Ti是介于Tl和Th之间的一个整数,则分割后的图像中标记为1的像素对应于感兴趣的目标,标记为0的像素对应于背景,表示为:
由于外界光源亮度变化或受到杂光干扰,采用固定的阈值分割方法效果较差,为使图像分割具有更好的鲁棒性和自适应性,采用阈值迭代的方法自动搜寻出比较合适的分割阈值。先用初始阈值把原图全部像素分成目标、背景两大类,然后分别对其进行积分,并将结果取平均,获得一个新的阈值,之后再以此阈值将图像分成目标、背景,并用作新的阈值函数,如此反复迭代下去,当迭代收敛于某个稳定的阈值时,此刻的阈值即作为最终的阈值结果,用于对图像的分割。
自动最佳分割阈值算法如下:
第一步:求初始阈值T0
式中Tl,Th——分别是图像f (x,y)中最小和最大灰度值;
第二步:迭代求出新的阈值 Ti+1
式中hk——灰度值为k的像素点个数。
第三步:如果Ti+1=Ti,则T=Ti,程序结束;否则,i+1→i,转第二步。
图像二值化后如图4所示。
图4 二值化后效果图
3.1.3 腐蚀
棒材端面图像经过上述处理后,图像中还有些干扰像素,且有些交叠的棒材端面会粘连在一起,给计数带来困难,为此采用数学形态学中的腐蚀算法来去除粘连及干扰。
腐蚀算法是对于一个给定的图像F和结构元素S,所有与F具有最大相关的结构元素S的当前位置像素的集合即称之为S对F的腐蚀。也可以定义为,用S来腐蚀F得到的集合G是S完全包括在F中时S的当前位置(通常取结构元素的原点位置)的集合。其数学形式为:
腐蚀后结果如图5所示。
图5 腐蚀后效果图
3.1.4 计数
经过上述对采集到的棒材端面图像进行平滑滤波、二值化图像分割、腐蚀去粘连干扰后,所得到的二值图像就能够满足计数要求了。此时每根棒材对应于图像中的一个连通域,再对各连通域进行编号并标识出其中心位置坐标,通过计算连通域个数,即得到该幅图片中的棒材根数。
计数后如图6所示。
图6 计数后效果图
棒材跟踪是为判断前一帧图片中的棒材在当前帧中所对应的位置,以识别出在当前帧中相对于前一帧新增加的棒材,并进行累加计数。算法如下:
第一步:对当前帧图片进行图像处理,获得每根棒材的坐标位置,并保存前一帧图片中最后一根棒材的坐标位置;
第二步:利用安装在传输链电机轴上的编码器可以获得同一棒材在前后两帧图片中的位移差,并考虑留有一定的误差范围;
第三步:利用前一帧图片中最后一根棒材的坐标位置以及位移差,可以得到前一帧中最后一根棒材在当前帧中的列坐标位置;
第四步:对该列坐标位置与棒材移动方向相反方向上存在的棒材进行计数,得到在当前帧中相对于前幅图片新增加的棒材数,对新增加的棒材进行逐根累加计数,并不断与打捆要求的根数值进行比较;
第五步:经比较,若相等,则在当前新增加的棒材位置后面画一竖线,指出分钢位置,程序运行结束;若不相等,则继续对当前帧中新增加的棒材进行逐根累加计数,并与打捆要求根数值进行比较;
第六步:当前帧中所有新增棒材被计数,但未达到打捆要求的根数值,返回第一步,重新循环执行上述步骤。
图像识别系统的软件运行界面如图7所示。
1)由于细棒材的重叠和交叉问题比较严重,所以,利用光电计数方法对其进行计数非常困难。本系统基于图像识别技术通过对棒材端面进行计数很好地解决了这个问题,而且准确率高。
2)本系统仅解决了细棒材的计数问题,达到规定打捆支数后,分钢还需要人工操作。主要是由于没有有效的解决分开重叠和交叉的细棒材的机械手段,尽管尝试了一些方法,但效果不太理想。下一步研究方向是在分钢机械操作过程中辅助以图像识别技术进行配合,两者相辅相成,最终实现自动分钢[5]。
图7 软件运行界面
[1] 罗三定,沙莎,沈德耀,等. 棒材生产在线视觉计数系统研究[J]. 小型微型计算机系统,2004,25(4): 671-675.
[2] 安军锋,任吉堂. 在线棒材计数系统现状与研究[J]. 中国冶金,2007,17(11): 1-5.
[3] 郭国营,刘冀伟,柴爱红,等. 棒材定支数包装与理论质量计量[J]. 工业计量,2006,16(1): 13-16.
[4] 何东健. 数字图像处理[M]. 西安: 西安电子科技大学出版社,2003.
[5] 陈邵钢,罗三定. 计算机视觉在棒材分离控制中的应用[J]. 工业控制计算机,2007,20(1): 23-26.