APP下载

镜面瓷砖表面平整度视觉检测研究

2020-07-09谢剑

现代信息科技 2020年23期

摘  要:平整度检测是瓷砖生产的一个关键环节,为有效检测镜面瓷砖的平整度,文章提出了一种应用机器视觉的检测方法,设计点阵光源进行投影照明使得表面的不平整信息可视化,采用光电传感器触发方式进行图像采集,结合“OpenCV图像处理”课程内容,设计窗口扫描法提取投影点阵,消除侧倾对检测结果的影响,使用方向统计的方法进行平整度检测。实验结果表明,该方法能有效检测出镜面瓷砖的平整度,同时检测装置结构简单,节省成本。

关键词:平整度检测;图像采集;点阵提取;方向统计

中图分类号:TP391.41      文献标识码:A 文章编号:2096-4706(2020)23-0094-04

Research on Visual Inspection of Mirror Tile Surface Flatness

XIE Jian

(Hunan College of Information,Changsha  410200,China)

Abstract:Flatness detection is a key link in tile production. In order to effectively detect the flatness of mirror tile,this paper proposes a detection method based on machine vision. Dot matrix light source was designed for projection illumination to visualize the surface roughness information,and the photoelectric sensor was used to trigger the image acquisition. Combined with “OpenCV Image Processing” course content,the window scanning method is designed to extract the projection lattice,eliminate the influence of roll on the detection results,and the direction statistics method is used for flatness detection. The experimental results show that this method can effectively detect the flatness of mirror tile,and the detection device is simple in structure and cost saving.

Keywords:flatness detection;image acquisition;lattice extraction;direction statistics

0  引  言

目前陶瓷產品在消费市场备受青睐,人们对其品质的重视程度也逐步提升,而陶瓷表面平整度就是影响品质的重要因素之一。目前国内的检测装置精度不高,国外的检测装置又过于昂贵并且维护成本高,所以企业大多采用人工检测的方式对平整度进行检测,自动化检测设备未大面积普及,这种现象在工业现代化发展中越来越不合时宜,因而自主研发检测设备对国内行业健康发展有重要意义。

检测方案是笔者针对学校的专业课程“OpenCV图像处理”而设计的一个综合案例,旨在增进学生对工业实际环境下图像处理方案的设计过程的了解,应用OpenCV库进行图像处理算法的设计,加深对知识点的理解。

1  检测系统软件功能设计

检测系统软件模块由图像采集、图像预处理、投影点阵提取、平整度检测、数据存储5个功能模块组成,如图1所示。

图像采集模块:在生产环境中,瓷砖是在传输带上运动的,当其运动到指定的位置时触发光电开关控制摄像头进行拍照,反应迅速。

图像预处理模块:预处理的目的是生成点阵亮前景和暗背景的二值化图像,以便将投影点阵中的光点完整的提取出来。

投影点阵提取模块:用设计的窗口扫描法将各个亮点完整的提取出来,同时做消除倾斜处理,为后面的偏移计算做准备。

平整度检测模块:首先根据偏移距离判断瓷砖是否平整,若不平整再用方向统计方法判断瓷砖具体的缺陷类型。

数据存储模块:通过数据库将瓷砖检测的相关结果保存,便于统计分析。

2  图像采集

由于检测瓷砖表面为镜面,根据镜面反射的特性,设计了点阵光源对瓷砖表面进行投影。点阵光源整齐排列,若瓷砖表面平整,投影点阵整体仍保持规整,若瓷砖表面不平整,则其上的投影点阵就会发生扭曲,且表面起伏越大,点阵的扭曲变形得越厉害。通过平整瓷砖上的点阵投影与被检测瓷砖上的点阵投影对应点之间的距离偏差来检测瓷砖的平整度。

为了使表面不平信息最大限度地突显出来,对待检测瓷砖、光源以及摄像头三者的位置关系进行了研究,经过大量的采图分析,当光源置于瓷砖的斜上方进行照射,摄像头置于光线的出射方向进行拍摄时,所采集到的图像效果最佳。

本系统采用光电传感器进行触发采图,即当瓷砖运动到采样位置后,触发该处的光电传感器产生光电信号,控制摄像头采图,解决运动瓷砖与图像拍摄之间的同步问题,且能有效解决漏检的问题。如图2所示为采集的瓷砖点阵投影图。

3  提取点阵质心

在采集到瓷砖表面的点阵投影图后,需要先对其进行二值化预处理,将图像中的点阵与背景区域分离,便于各点质心的提取。如图3所示为平整瓷砖点阵投影图二值化后的结果。

3.1  提取计算质心坐标

为了计算表面的平整度,需要提取出各个点,进而计算各点的偏移。本文提出了窗口扫描算法来分割提取各个质心点。首先根据经验确定窗口的大小,使其能完全将一个亮点围住同时与其他点没有接触。利用此窗口在图像中进行扫描,直到整个图像扫描完,具体步骤为:

第一步:将窗口放在图像上从左向右滑动,滑动步长为窗口宽度,每次滑动后检查窗口所在边上是否有灰度值为255的点。若有,则先记录当前窗口位置,然后以像素单位为步长向对应边进行移动,直到所有边上都没有灰度值为255的点,表明当前亮点已经全部在窗口内,此时计算亮点像素的质心,然后将所有灰度值为255的点置为0,回到记录的窗口位置。若没有,则需判断窗口内是否有灰度为255的点,有的话计算质心并将其内容清0。继续滑动窗口,进行相同的判断及处理。

第二步:窗口移动到最右端后,需要将窗口移动到横坐标起始处,同时向下移动窗口高度的步长,继续从左向右扫描,直至图像扫描完全。

窗口扫描法相对常用的投影法鲁棒性更强,提取效果更好,部分代码为:

vector vecSrc;//保存各点质心位置的向量

Point curPos(0,0);//扫描窗口左上角位置

while(curPos.y + CONST_H > srcImg.rows) {//扫描终止条件

//判断窗口的边是否存在灰度255的像素

int direction; //存在255像素边的方向 0 仅右方 1 仅下方 2 右下方

bool bFlag = JudgeEdge(srcImg, scurPos.x, curPos.y, direction);

if(true == bFlag){  //存在  则将此像素所在点找到并求质心

Point tempPt ;

tempPt.x = curPos.x + 1;

tempPt.y = curPos.y+ 1;

while(true == JudgeEdge(srcImg, tempPt.x , tempPt.y , direction) ){

if(0 == direction ){ tempPt.x++; }

else if(1 == direction) {tempPt.y++;}

else{tempPt.x++; tempPt.y++;}

}

//计算窗口内亮点质心点

Point pt = CalCenter(srcImg, tempPt);

vecSrc.push_back(pt);

//窗口内像素值全置0

clearLightPoint(srcImg, tempPt);

}

else {

//判断窗口内是否有灰度值255的像素

if(true == JudgeInner(srcImg, curPos)){

//计算窗口内亮点质心点

Point pt = CalCenter(srcImg, tempPt);

vecSrc.push_back(pt);

//窗口內像素值全置0

clearLightPoint(srcImg, tempPt);}

}

//移动窗口

if(curPos.x+CONST_W < srcImg.cols){

curPos.x = curPos.x+CONST_W;}

else{

curPos.x = 0;

curPos.y = curPos.y +CONST_H;

}

}

3.2  消除瓷砖侧倾影响

瓷砖在传输带上运送时,两者之间可能会存在一些颗粒物,这些颗粒物使得瓷砖不再是水平摆放在传送带上,而是倾斜着摆放在传送带上。在这种情况下,若直接计算两幅图像对应点的偏移量并进行判断就会出现错误,所以在进行上述计算前应该尽量消除倾斜的影响。

算法思想为:先计算检测瓷砖质心点相对平整瓷砖各质心点的平均偏移(X和Y方向),然后将检测瓷砖的质心坐标分别减去平均偏移即可,部分代码为:

int totalX =0, totalY=0;

int averX =0, averY= 0;

for(int i = 0 ; i < vecDst.size(); i++ ){ //计算平均偏移

totalX = abs(vecDst[i].x - vecSrc[i].x);

totalY = abs(vecDst[i].y - vecSrc[i].y);

}

averX = totalX / vecDst.size();

averY = totalY/ vecDst.size();

for(int i  = 0 ;  i < vecSrc[i].size(); i ++){//消除倾斜影响

vecSrc[i].x = vecSrc[i].x - averX;

vecSrc[i].y = vecSrc[i].y - averY;

}

4  平整度检测

4.1  缺陷图像点阵分布模式分析

目前常见瓷砖表面不平整缺陷的模式有四种,即:拱凸、凹陷、凸棱、以及翘角。通过模拟实验发现不同缺陷表面的图像点阵有各自的排列规律。排列呈现拱凸或凹陷的情形时,缺陷附近点阵会向凸起中心聚拢或以凹陷为中心向外扩散,中心附近偏移较大,其他区域偏移较小;凸棱情形时,在凸棱附近的点在垂直方向发生较大偏移,其他区域偏移较小;翘角情形时,边角附件的点有较大偏移,其他区域偏移较小。

4.2  平整度及缺陷判断

定义点的偏移方向为:以理想点作为起始点,且经过偏移点的射线方向与X轴正轴的夹角大小。

根据上述不同缺陷模式下投影点阵的分布规律,可以分析出对应点偏向角的分布规律。对于拱凸或者凹陷情形,各点偏向角以顺时针方向递增;对凸棱情形,各点偏向角在270或90度左右分布为主;对于翘角情形,各点偏向角在315、225、135、45度左右分布为主。

在考虑各点偏移量的基础上,再结合方向统计法去区分具体缺陷类型,具有较好效果。算法思想为:

首先,统计出检测图像中各点偏移量大于阈值1的点的数目是否超过阈值2,若没超过,认为瓷砖平整;若超过,则认为不平整,继续判断类型。

其次,计算偏移量大于阈值1的点的偏向角,若角度主要分布在270或90度附近则认为是凸棱缺陷;若主要分布在315、225、135、45度附近则认为是翘角缺陷。若两种都不是,根据递增方向判断是拱凸还是凹陷缺陷,部分代码为:

//计算各点偏角

vector vecAngle;

for(int i = 0; i < vecDst.size(); i ++){

if(power(vecSrc[i].y - vecDst[i].y, 2) + power(vecSrc[i].x - vecDst[i].x, 2) < CONST_THRESH){ vecAngle.push_back(0); }

else{

float  angleVal = 0;

int DistY = vecSrc[i].y - vecDst[i].y;

int DistX = vecSrc[i].x - vecDst[i].x;

if(0 == DistX ){

if(DistY < 0 ){angleVal = 90;}

else{angleVal = 270;}}

else{ angleVal = (180 * atan(DistY/DistX))/M_PI;}

vecAngle.push_back(angleVal);}

}

5  檢测结果展示

如图4所示为检测软件运行界面,图片左侧为凸棱缺陷瓷砖投影点阵图像二值化后的结果,图右显示检测信息,包括时间、当前缺陷类型、瓷砖序号、平整数目以及已检测出缺陷数目等,方便实时查看。

6  结  论

本文对基于机器视觉的镜面瓷砖表面平整度检测方法涉及的图像采集、预处理、投影点阵提取、平整度检测等过程进行了详细的描述,并根据设计完成平台搭建,整体方案能有效地检测出瓷砖的平整度。此案例应用在了“OpenCV图像处理”课程中,结合硬件装置、软件功能以及图像算法的分析与设计,加强了学生的实际应用能力及图像处理算法设计能力,巩固了知识点的理解与运用。

参考文献:

[1] SONKA M,HLAVAC V,BOYLE R.图像处理、分析与机器视觉:第2版 [M].艾海舟,武勃,译.北京:人民邮电出版社,2003.

[2] 张广军.机器视觉 [M].北京:科学出版社,2005.

[3] 陈胜勇,刘盛.基于OpenCV的计算机视觉技术实现 [M].北京:科学出版社,2008.

[4] 肖艳炜,张云.改进的二维Otsu自动分割算法及其应用研究 [J].计算机工程与应用,2007(7):243-245.

[5] 邱茂林,马颂德,李毅.计算机视觉中摄像机定标综述 [J].自动化学报,2000(1):47-59.

作者简介:谢剑(1987.06—),男,汉族,湖南长沙人,就职于软件学院,教师,初级职称,硕士,研究方向:计算机应用、图像处理。