APP下载

基于Python的木板条纹与颜色检测系统

2020-03-02宋钰青

机械工程师 2020年2期
关键词:色度条纹木板

宋钰青

(三峡大学 机械与动力学院,湖北 宜昌443002)

0 引 言

木板条纹间距和颜色的色度色差会影响其美观和商用价值。工厂在加工过程中需要将相近的木板归为一类来进行拼接,这一过程靠人工来分拣效率低、成本高,而在木板检测中最常见的缺陷检测[1-3],主要针对木板上存在的死结、活结、虫蛀、裂缝等,对木板的条纹研究较少。故实现木板条纹间距与颜色分类的自动化具有重大的意义。

工厂中的木板都是切割成形的木材,常见的都是方形,具有不同的长度和宽度。而木板中的纹理在切割后会呈线性分布,形成条纹。目前最常见的算法是图像增强、边缘检测、图像分割算法。文献[4]提出了一种基于TV滤波与FRC模型的木材年轮纹理检测算法,采用V分量、TV滤波、FRC分割和形状识别等方法实现纹理的提取。文献[5]采用双边滤波增强图像和改进Canny算法提取纹理特征,克服传统Canny算子对噪声的敏感性。文献[6]提出一种基于伯恩斯坦多项式一致逼近的多阈值图像分割算法,克服图像直方图中毛刺的干扰带来的算法不稳定。木板条纹的检测也可以通过Hough直线检测和兴趣点提取[7-8],不过这仅适用于条纹清晰的木板。

木板颜色检测的算法常用神经网络、支持向量机等分类器对提取之后的颜色进行分类[9-12]。文献[13]通过提取木材的分布特征和相关关系,根据这些参数进行聚类来实现木材的分类。这些提取众多特征再进行分类的算法比较复杂,运行时间长。

为了提高木板检测的效率和速度,降低成本,本文在如何减少运算量方面提供思路。

1 木板条纹和色度检测方案设计

1.1 木板条纹和色度检测分析

木板按条纹可分为:无条纹、有条纹。其中若无条纹或条纹间距中的绝大多数小于4 mm归为条纹A(其中绝大多数指不小于总间距数的80%);条纹间距中的绝大多数不小于4 mm,小于7 mm归为条纹B;条纹间距中的绝大多数不小于7 mm则为条纹C。

木板按色度可分为:色度不均匀的、色度均匀偏深的、色度均匀偏浅的、色度均匀中色的。其中色度均匀偏浅的归为色度a;色度不均匀的或色度均匀中色的归为色度b;色度均匀偏深的归为色度c。

条纹和色度分别有3类,将其组合排列共有9种类别,分别为Aa,Ab,Ac,Ba,Bb,Bc,Ca,Cb,Cc。

本系统分类依据的参数与人工分类依据的参数相同,而人眼在色度分类上需要通过比对另一块木板才能判断,极大影响了准确度及效率,容易误判。而对于同一块木板运行多次出现不同结果的概率,本系统较人工小。

1.2 系统检测流程

该系统由红外线传感装置、工业CCD摄像头、计算机、光源、外罩、单片机、打标机、传送带组成。该装置运行时,开启传送带,一旦红外线检测木板的进入,图像开始识别处理,直到红外线检测木板退出,此时计算机通过串口将信号传输给单片机,单片机发出电流,打标机打标。流程图如图1所示。

图1 过程流程图

2 木板间距识别

本文采用主机CPU为Inter(R)Core(TM) i3-4130 3.40Ghz,内存4.00 GB,操作系统为Windows 10旗舰版。开发语言采用Python,结合OpenCV库,实现图像的检测识别。

2.1 图像分段和直方图运算

将读入图像的色彩空间转为灰度图,进行均衡化来提高图像对比度,再进行高斯滤波来消减干扰的噪声,最后对其每一列的灰度值进行叠加,形成直方图。该运算是对灰度值进行线性叠加,叠加效果如图3所示,其原图如图2所示。

图2 木板

图3 灰度叠加直方图

从图2、图3中可以看出,灰度值中越白其值越大,木板中条纹的纹路是较深的,所以在该直方图中波谷代表条纹所在的位置。因此我们要找出波谷的具体位置。同时为了提高条纹检测的准确度,该算法需要对图片进行分段,以每70个像素点为一段。

2.2 确定图像条纹位置

波谷即数学中的极小值。在这些极小值中存在噪声,会干扰条纹位置的判断,因此要通过设定阈值消减噪声。

通过对比可以发现,这些噪声的波动幅度远远小于条纹波动幅度,只要将这些波动幅度小的噪声点剔除掉,就可以得到条纹位置。因此,本文将阈值定为条纹间距中由小到大的80%位置上的间距的1/3。效果图如图4所示。

图4 木板条纹位置

2.3 图像条纹间距的判断

在上一步得到条纹位置后,只需将相邻条纹的位置相减,即可得到条纹间距,该间距值为像素值。其中,条纹间距(mm)= 间距像素值×带刻度的钢尺在图像的距离(mm)/图像像素。

由于存在无条纹木板及噪声的存在,该算法加一个界定条件,对应60 mm的木板(400个像素点)少于10条间距,则为无条纹。以下参数单位为像素。

If 木板宽度*10/400<10:

条纹A

elif 条纹间距<12:

条纹A

elif 条纹间距<16:

条纹B

else:

条纹C

该算法由于存在多次循环,若图像太大,会极大降低运算速度,因此在不影响识别准确的情况下,本系统将图片的大小降为(640,480)。

3 木板颜色识别

木板的色度受光照影响极大,本系统需要在摄像头周围放置遮光罩,并在内部均匀地放置灯作为光源。

3.1 图像分割

图像颜色检测中,背景的颜色会对其产生较大影响,需要先去除背景。因为传送带是绿色的,R值远小于140,而木板R值大于140,故取阈值为140。

木板的边界是直线型的,只需把左右两端的边界点求出来,左端取较大值,右端取较小值,以减少运算量。分割前后的图像如图5、图6所示。

3.2 图像色差判断

将木板划分为纵向三部分,将图像的颜色BGR三通道分离出来,每个部分求R通道的均值,若变化大于4,则判断色差大,色度为b,否则为色度均匀。

图5 拍摄原图

图6 分割图

3.3 图像色度检测

木板图像中偏深的区域的BGR值在一定范围内且有规律性,找到这个范围,利用OpenCV中的cv2.inrange函数实现图像的二值化,再利用cv2.calcHist计算二值化图像中的比率,最后得到偏深色度的比值,二值化前后图像如图7、图8所示。如果大于35%,则判断该木板为深色。同理可以判断浅色,其余的则为中色。最后结合上一步的结果,得到最终判断结果。

图7 深色木板

图8 二值化

4 系统测试

4.1 测试装置

系统实验装置整体参数如下:红外线;摄像头分辨率为2560×1440,传输方式为USB3.0;支架为铝合金材料,长×宽×高为200 mm×150 mm×200 mm;STC51单片机;打标机(电磁阀加印章);可多级调速传送带。整体实验设备如图9所示,为拍摄红外线位置,遮光罩和光源没有拍出来。单片机如图10所示。

图9 实验设备

图10 单片机

在测试过程中,每个木板放置间隔的距离不小于单片机延迟的时间乘以传送带速度。实验步骤为:1)开启传送带,速率为4级,开启系统,放置木板;2)红外线检测到有木板进入,开始图像处理;3)红外线检测到木板退出,停止图像处理并发送最终结果给单片机;4) 单片机发送指令给打标机,打标机打标;5)进入下一个循环。

将系统检测的结果与人工检测结果对比,并对同一木板进行多次检测,计算系统的准确率和稳定性。

4.2 测试结果

将编好的程序打包为.exe文件,对300个木板进行检测。其中,每个木板具有不同的长度、宽度、条纹间距、颜色、缺陷等。其中的9个样本如图11所示,条纹间距如图12所示,结果如表1所示。

图11 样本

图12 样本条纹

表1 测试结果

从图11、图12中可以看出,条纹检测对条纹清晰的木板的准确率高达99%,如样板2、4、9。表面粗糙,条纹颜色与条纹间颜色相近,表面有应力线的木板虽然存在噪声干扰,但准确率也有97%,如样板3、6。对于整体条纹非常细密,颜色又均匀的样本,条纹虽然没有100%检测出来,但可以检测出80%,对结果影响不大,如样本1、5。

在颜色检测当中,算法检测的是整块木板,如果条纹线也在划分的深色区间内,会加大样本是深色的概率,但可以通过测得条纹的位置将该位置的颜色剔除掉,削减影响。对于存在色差的样板(如样板6)检测的准确率为98%;对于在色差小的样板中区分中、浅,若样板在划分的临界区间附近,会存在多次检测结果不同的问题。

5 结 论

本文设计了木板颜色和条纹间距检测系统,利用改进直方图算法和分类区间,检测速度为8 cm/s,识别准确率达92.3%。检测效率和准确率高于人工检测,为工厂的自动化加工提供了简单实用的可行方案。

猜你喜欢

色度条纹木板
谁是穷横条纹衣服的人
山楂酒色度测定及其影响因素
木板上的世外桃源
别急!丢了条纹的斑马(上)
别急!丢了条纹的斑马(下)
木板
不会上浮的木板
基于改进色度模型的非接触式心率检测与估计
景德镇早期青白瓷的器型与色度
日粮成分对鸡蛋色度及碳稳定同位素比值的影响