周 令,张振荣,彭建盛,杨程钧,王 涛
(1.广西大学 计算机与电子信息学院,广西南宁530004;2.河池学院 人工智能与制造学院,广西宜州546303;3.深圳雨滴科技有限公司,广东深圳518000)
我国是木材消费大国,2020年,我国的木材消耗量约在5亿m3,国内木材产量仅在1亿m3左右,木材市场需求缺口巨大,高效率地开发和利用原木已成为人们关注的焦点[1]。
机器视觉检测技术是一项集图像、机械、自动化和人工智能等技术于一体的高新智能检测技术[2-4],具有效率高、出错率低及实现功能多等特点[5-7]。机器视觉技术已在木材加工行业逐渐得到应用,主要应用于木材缺陷检测[8-9]、木材颜色分类[10]及干燥应力演变[11]等方面。传统木材粗加工的多片锯拉条环节利用安装不同间距多片锯的拉条机完成木板裁切;通过人工识别木板的宽度,利用红外激光比对后完成木板裁切。这种方式效率较低,受主观意识及人工熟练程度影响较大,成品率相对较低,造成木材浪费,且人工成本较高。为提高企业生产效率、降低人工成本和木板损耗,本研究采用机器视觉技术替代人工辨别,将木板传送至拉条机的相应位置进行裁切,实现木板智能化拉条,以期为木板拉条机的智能化研究提供科学依据。
基于机器视觉的多片锯拉条机结构主要包括上料机构、推送机构、视觉检测机构、人机界面、横移机构、送料机构和拉条机(图1)。工作流程为人工叠放好木板,放至上料机构;推送机构推动木板至视觉检测机构;视觉检测机构利用工业相机及镜头拍照,并将数据传送至计算机进行处理及运算,计算出木板的树皮宽度和可裁切宽度;校正木板后,送料机构和横移机构推送木板至拉条机进行裁切。
图1 机器视觉的拉条机结构Fig.1 Structure of slitting machine based on machine vision
拉条机可将不同宽度木板(整体宽度为40~155 mm)的树皮去掉,并裁成3、4、5、6和7 cm规格的木板。安装锯片时,可根据实际情况选择所需间隔,本装置安装的锯片第1~8间隔依次为3、4、4、5、5、6、6和7 cm。检测原理是采用Sobel算子识别木板可裁切边缘,拟合成直线(图2中黄色线条所示),计算木板的最大可切割宽度(图2红色线条所示),根据计算结果,将木板传送至拉条机相应位置进行裁切。4个样本中,最大可切割宽度为3.2 cm时,将该木板推送至第1间隔进行切割,可得1块3 cm的木条(图2a);最大可切割宽度为7.5 cm时,将该木板推送至第1、2间隔进行切割,分别可得1块3和4 cm的木条(图2b);最大可切割宽度为11.2 cm时,将该木板推送至第5、6间隔进行切割,分别可得1块5和6 cm的木条(图2c);最大可切割宽度为13.3 cm时,将该木板推送至第7、8间隔进行切割,分别可得1块6和7 cm的木条(图2d)。
图2 木板边缘及可裁切宽度识别Fig.2 Identification of wood board edge and cutting width
本系统采用的相机为索尼XCL-C280工业模拟相机,开发软件为Android Studio,图像处理采用OpenCV。木板图像获取与处理流程为获取木板照片、图形畸变矫正、中值滤波和二值化、图像轮廓处理及数据处理(图3)。
图3 木板边缘检测及处理流程Fig.3 Detection and treatment process of wood board edge
在机器视觉图像识别中,采用合理的打光方式非常重要。根据物料需要识别的特征,采用合理的打光方式将特征突显出来,可降低图像处理难度,增加识别的稳定性。
在本系统中,需将木板板面两边和木板斜坡的边缘提取出来。根据环境需求,将光源安装在木板检测位两侧的上方,采用顺尚信TS-630-22条形光源(图4)。通过两侧光源分别曝光,将板面照成亮场,将两侧斜坡照成暗场,木板边缘能很好地被提取出来。当木板推送至木板检测位后,触发拍照,视觉检测系统会先打开光源1,将左边缘的斜坡和板面照亮,右边缘的斜坡基本没有反光,提取右边缘(图5);关闭光源1,打开光源2,将右边缘的斜坡和板面照亮,左边缘的斜坡基本没有反光,提取左边缘(图6)。关闭光源2,系统图像获取步骤结束。
图4 光源系统Fig.4 Light source system
图5 第一次曝光的图片Fig.5 The first exposure picture
图6 第二次曝光的图片Fig.6 The second exposure picture
在系统中,检测视野较大,采用6 mm C接口镜头获得的照片会产生桶形畸变[12(]图7)。因此,在采集照片前需对照片进行畸变矫正。标定板采用6×9的棋盘格,通过对不同位置和角度进行采样,最终选取15张照片,计算相机内参数矩阵和畸变系数,得到2个数据,在相机安装位置不变的情况下,这2个参数可一直使用,将这2个参数带入函数Imgproc.initUndistortRectifyMap(),通过函数计算出2个输出映射关系,再将输出映射关系带入Imgproc.remap(),得出矫正后的图像(图8)。
图7 未矫正图像Fig.7 Uncorrected image
图8 矫正后图像Fig.8 Corrected image
中值滤波是把数字图像或数字序列中一点的值用该点一个邻域中各点值的中值代替,让周围的像素值接近真实值,消除孤立的噪声点[13]。木板切割后,其表面粗糙度较大且会粘附一些木屑,存在斑点噪声和椒盐噪声。中值滤波能去除这两种噪声,还能将边缘特征保存下来,不会模糊图像。
图像二值化是图像处理中重要的一部分,之前所作的预处理、滤波可获得更好的二值化效果。二值化方法大多为基于阈值的方法,即寻找一个合适的阈值将原图像的像素灰度分为大于阈值和小于阈值两类,得到二值化结果[14]。对于一副灰度图像,需设定一个阈值,当其灰度值小于该阈值,将该点的像素值置0(背景),反之则置1(前景),对所有像素点进行计算后,可得两张图片的二值化黑白图(图9~10)。这两张图片的前景和背景不同,因为第一次拍照选用反阈值二值化,将亮的部分当作背景,将小于阈值的部分作为前景,第二次拍照则相反。
图9 第一次曝光图片的二值化图Fig.9 Binary image of the first exposure image
图10 第二次曝光图片的二值化图Fig.10 Binary image of the second exposure picture
Sobel梯度边缘检测算子对灰度渐变低噪声的图像有较好的检测效果。经典的Sobel算子是利用像素卷积运算的离散型差分算子,该算子包含两个方向的3×3卷积模板[15]:
从水平与竖直两个方向对图像进行卷积运算,将两个方向卷积最大值作为输出的梯度幅值。木板拉条只需提取长边边缘,即Y方向的边缘,对图像作Y方向的梯度计算Gy,可得到所需的梯度图(A为原图像,Gy为竖直检测灰度)(图11~12)。
图11 对图9求Y方向梯度Fig.11 Gradient in Y direction for Fig.9
通过运算,两边的边缘较好展现出来,采用算子Imgproc.find Contours将图中所有的白色区域分开,以轮廓的方式进行存储。存储后,对轮廓进行筛选。根据图9可知,会有一些干扰区域,经观察,木板的边缘线轮廓均较长,干扰的轮廓均较短,可根据轮廓长度进行筛选,将不符合长度的轮廓去除。
如边缘较规则,其边缘可很好被识别;如边缘变化较大,被识别出来的边缘可能会断成几段(图12)。选取最长一段拟合直线,计算其他符合长度的轮廓与该直线的距离,当其距离在设定范围内,判定为边缘的轮廓,将其联合起来为下一步拟合直线作准备。
图12 对图10求Y方向梯度Fig.12 Gradient in Y direction for Fig.10
通过轮廓筛选,得到边缘轮廓,将得到的轮廓拟合成直线(图13中的两边长红线)。轮廓拟合采用最小二乘拟合算法,以距离平方和为拟合依据。因为每块木板形状及上料姿势不同,需对木板的主切割方向进行矫正计算,计算出木板最左端和最右端的X坐标,代入两条拟合直线计算出Y值,分别计算左端和右端Y值的中心,两点连成的直线作为木板的主方向(图13中心的绿线),该直线的斜率与切割方向的斜率相同,机器切割出来的木板才不会歪,若计算该木板主方向不正,则需要矫正(图13中dx的距离)。
图13 木板识别示意简图Fig.13 Schematic diagram of wood board identification
得出切割的主方向后,需计算木板的可切割宽度,其计算方式为计算上边轮廓上的点与木板主方向中心线的距离和下边缘与木板主方向中心线的距离,将上下可切割距离相加得到木板的最大可切割距离(图13中两条长绿线之间的距离)。
得出最大切割距离后,计算皮宽。该系统的皮宽是指矫正后下方绿色直线与1、2所在直线的距离,1和2是送料机构的两个支撑面,是该系统拉条方向的零点参考线。当识别出的切割边缘线为右侧低于左侧时,需要将右侧向上推送dx距离,当右侧向上运动时,左侧皮宽dx1的距离基本不会变化,因此不同皮宽的木板在推送至对应位置时时,需减去dx1(图13)。
木板识别结果可在视觉屏幕上显示,L为木板切割的主方向与水平方向左边轴相比,需要向前调整的数值;R为右边需要调整的数值;W为皮宽;RW为木板可切割宽度(mm)(图14)。线ef为识别到木板切割主方向的中心线,线cd为木板右边(面对装置的右边)可切割的最下边缘线,线ab为木板左边可切割的最上边缘线。线ij为皮宽的计算起始点(皮宽是指左边木板的切割边缘与线ij的距离);在与锯片校对起始切割点的时候,用ij所对的位置与锯片起始切割点校准,机构在移动至对应切割工位时会减去皮宽的距离,此时切割的木板起始点与木板识别的起始点一致。线kl和线mn分别为左边和右边底部横移机构的中心线。线gh为该显示图合成的分界线。
图14 木板识别结果Fig.14 Wood board recognition results
将人工操作与基于机器视觉的拉条机进行3组对比试验,每组试验均为5 h。人工操作裁切的木板数为2 735块,正确拉条率为89.36%;基于机器视觉的拉条机裁切的木板数为3 378块,正确拉条率为99.95%,其裁切速度与正确拉条率均已超过人工操作(表1)。正确拉条是指木板裁切后的两个边合起来的可裁切宽度小于1 cm的木板,正确拉条率是指正确拉条数与总木板拉条数之比。基于机器视觉的拉条机正确拉条率高,满足木板拉条行业的需求,提高木板利用率。
表1 人工操作与基于机器视觉的拉条机对比Tab.1 Comparison between manual operation and slitting machine based on machine vision
针对目前木板拉条的需求,设计一种基于机器视觉的木板拉条机,利用机器视觉技术识别木板轮廓,经过数据处理得出木板可裁切的宽度、树皮的宽度,再送至相应的位置进行拉条。该装置的操作速度和正确拉条率均超过人工操作,识别正确率高、效率高,满足木材行业对木板拉条机智能化的要求,节约了资源,实现拉条机的智能化。在实施过程中还存在以下两个方面的问题,需要进一步改进。第一,优化木板识别算法。本研究采用Sobel边缘检测算法对图像作Y方向的梯度计算,该方法识别速度快,但会将木板中间条纹较深的纹路识别为边缘,因此需要进一步优化算法解决误判。第二,改进上料模块。上料时本设计采用叠放木板方式,节省了放料时间,但由于木板宽度不一致,进料时容易倾斜,发生卡料的现象,需要改进进料方式,解决卡料的问题。