APP下载

基于OpenCV图像处理的芦苇高立式沙障合格率的检测研究*

2022-11-02崔博文张洚宇黄文杰刘月秋

南方农机 2022年21期
关键词:灰度间距合格率

崔博文 , 张洚宇 , 周 鹏 , 黄文杰 , 刘月秋

(新疆科技学院,新疆 库尔勒 841000)

0 引言

中国西北地区自然环境条件恶劣,沙漠戈壁广布,该地区在极端大风天气的影响下,使横穿荒漠地区的道路饱受风沙侵扰。以芦苇作为原材料的高立式芦苇沙障是防沙治沙的主要工程设施之一,其因具有优良的性能和低廉的价格,被广泛使用[1]。近年来,石河子大学葛云教授团队研发的芦苇束沙障捆扎机弥补了当前阶段芦苇束捆扎装备的空白,实现了高立式芦苇沙障捆扎的机械化,极大地减轻了工人的劳动强度[2]。

研究表明,具有一定间隙(即芦苇束与芦苇束之间要具有一定的间距,如图1所示中的芦苇高立式沙障)的芦苇高立式沙障防沙效果十分理想[3]。为进一步提高芦苇束捆扎的机械效率和合格率,需要对捆扎的芦苇高立式沙障间隙进行检测计算,课题组提出了基于OpenCV机器视觉技术的芦苇高立式沙障合格率检测系统。以芦苇高立式沙障捆扎机制造出的芦苇沙障为研究对象,通过对芦苇高立式沙障拍摄并进行图像处理,测量相邻芦苇束之间的间隙,从而达到检测芦苇高立式沙障合格率的目的。

图1 保护桥墩的芦苇高立式沙障

1 材料与方法

1.1 试验样品

试验选择博斯腾湖的冬收芦苇作为样品,并使用沙障芦苇束捆扎机进行编织,如图2所示。随机选取编织完成的一段芦苇沙障作为研究对象[4]。

图2 机器制作的芦苇高立式沙障

1.2 图像采集

构建机器视觉系统的硬件包括工业相机、光照箱、光源系统、光电门和计算机。

该系统的工作原理分为三部分:芦苇沙障的图像采集、图像预处理和高立式芦苇沙障芦苇均匀程度检测及合格率判断。

考虑到芦苇沙障本身颜色较浅,选用深色背景能与试验材料呈现明显的颜色差异,故采集图像时,选用了深绿色背景布作为背景。

图像采集的步骤为:在传送带上设置光电门,将光电门与工业相机通过外触发模式相连,调整光源照射角度,保证图像清晰度。将编织完成的芦苇沙障置于传送带上并启动,当光电门传感器感应到其光照度改变时,触发工业相机进行图像采集,再将得到的图像保存至计算机,导入课题组所开发的芦苇沙障检测系统。该系统使用Python的CV模块对图像进行灰度化和二值化等初步数字化处理,再通过numpy构建矩阵判断图像边界并进行芦苇束轮廓划分,最后通过获取不同位置的芦苇束水平中点进行间隙和均匀程度的测量进而达到检测其合格率的目的[5]。

1.3 图像处理

1.3.1 图像灰度化处理

灰度图像也称为单色图像。图像灰度化具有简化矩阵、提高处理速度、避免条带失真的效果,因而在图像处理的过程中,常把采集到的RGB图像进行灰度化处理,运行效率得到显著提高[6-7]。本试验采取的CV_RGB2GRAY方式的转换公式如式(1)所示,效果如图3所示。

图3 灰度化处理

1)F(x,y)是点(x,y)转换后的灰度图像像素点灰度值。

2)R,G,B分别是点(x,y)在原始图像中像素点红色,绿色,蓝色分量。

1.3.2 图像二值化处理

在图像预处理过程中,对灰度图像进行二值化处理是一种较为常见方法。本项目采用自适应的方法获取阈值,把大于阈值的像素灰度设置为灰度极大值,小于阈值的像素灰度设置为灰度极小值,从而实现二值化。经二值化处理过的图像矩阵数据减少,提高了数据的处理速度,能更好地提取到目标图像的轮廓[8],方便判断目标边界。效果如图4所示,二值化处理公式如式(2)所示。

图4 二值化处理后的图片

1.3.3滤波处理

为保留原始图像特征,去除可能对试验结果造成干扰的随机噪声,提高试验结果的准确性,故采用中值滤波法滤除图像中的噪声。中值滤波采用非线性的方式,它在平滑脉冲噪声方面非常有效,同时它可以保护图像尖锐的边缘,选择适当的点替代污染点的值,处理效果较好,对椒盐噪声的处理表现良好,降噪后结果如图5所示[7]。

图5 滤波处理

2 检测程序设计

2.1 芦苇束间距的处理

将采集到的芦苇沙障图像进行灰度化及二值化的处理后[4],以图像的长宽像素为基准(分别用H和W表示),构建一个H*W的矩阵。再将二维矩阵一维化,即将原图像在水平方向进行投影。初始化一个与图像宽W相等数值长度的数组Pro,用于记录每行中的点(dot)个数。通过循环遍历整个图像,找寻点(dot),从而确定每束芦苇的边界。从数组Pro中定位到该芦苇沙障的左右边界,以该边界作为画取直线的起点与终点。再从该数组中取相邻边界定位中点并记录数值,以记录下的每束芦苇中点为锚点、左右边界为直线的起点与终点,绘制N条线段,将此线段作为计算芦苇束孔隙间距的基准。

再根据相邻中点位置的距离,计算出相邻芦苇束间隙,并将其结果导入进新创建的dis数组中,以此数组测量芦苇束均匀程度,进而得到芦苇沙障的合格率的判断结果,并在系统中进行反馈。流程图如图6所示。

图6 检测程序流程图

2.2 芦苇束均匀程度的测量

对每束芦苇和相邻芦苇束间隙进行编号,共m束,芦苇束上存在所绘制出的每条线段所产生的m个中点,故编号为1的芦苇束与编号为m的芦苇束存在(m-1)个间隙数值,以此(m-1)个数值作为计算芦苇束均匀程度的操作数,将该组操作数代入总体标准偏差计算公式(3),计算结果即为用于标识芦苇束均匀程度的参数。预设关于均匀程度的阈值,以该阈值为界限,对均匀程度进行判定并反馈结果。

1)D(X)即用于标识芦苇束均匀程度的参数。

2)xi即第i与第i+1束芦苇的间隙距离。

3)-x即m-1个间隙距离的平均值。

3 试验分析

3.1 试验方案

将采集到的芦苇沙障图像进行灰度化和二值化等预处理,再使用中值滤波降噪的方法去除多余噪声,以便将每束芦苇视为边界轮廓连续[9]、无毛边等噪声干扰的图像信息[10]。根据芦苇沙障的边缘形状计算其面积,再对基于水平投影所获得的多束芦苇的完整轮廓进行中点选取,并绘制线段进行间隙测距,以此测距结果为基础进而计算样品的均匀程度,从而得到关于芦苇束的合格率的检测结果。将此程序运算结果与人工测算数值进行比对,从而判定课题组所设计程序的准确性及普适程度。

3.2 试验步骤

3.2.1 人工测量数据采集

对于芦苇高立式沙障采用人工测量法,如图7所示,在芦苇径向随机区进行6次测量,记录下结果,并计算相邻两芦苇束间距方差D(X1),如表1所示。

表1 人工测量数据采集表

图7 芦苇间距人工测量

3.2.2 基于OpenCV图像处理测量数据采集

基于Python语言,以numpy和CV2为主模块对芦苇沙障图像进行处理[10],得到芦苇沙障边界及芦苇沙障轮廓等目标区域。将图像预处理后的结果导入课题组所开发的程序中,得到以中点间的距离为测量标准的芦苇束间隙,如图8所示,并计算相邻两芦苇束间距方差D(X2),如表2所示。

表2 基于OpenCV图像处理测量数据采集表

图8 基于OpenCV图像处理芦苇间距测量

3.3 试验结果与分析

采用图像处理的方式,可以精准快速地提取芦苇束边缘特征信息,定位中点并以像素点为单位进行相邻芦苇束间隙的测量。对人工测量及程序测算两种方案获取的间隙值的方差进行误差率计算,将处理的数据代入公式(4),处理后的数据如表3所示。

4 结论

课题组以博斯腾湖冬收芦苇为材料,选用芦苇高立式沙障捆扎机制作的芦苇高立式沙障作为研究对象,对基于OpenCV图像处理的相邻芦苇束间距进行测算,从而进行芦苇束均匀程度的判别,通过上述方式来判定芦苇沙障打捆机所产出的沙障合格率。本文所开发程序的测算结果与人工测量结果相对比,总体误差σ在13%以内,属于可接受的范围,总体能较好地反映出芦苇高立式沙障是否合格。在芦苇高立式沙障制作的全程机械化研发中,本文具有一定的指导意义,为后续的闭环反馈系统、完善检测装置提供了前期的研究基础。

猜你喜欢

灰度间距合格率
开始和结束
根因分析法提高药品不良反应报告合格率
基于二值化灰度图像的大豆蛋白液喷雾相对雾化程度的研究
提升眼科机械清洗合格率的护理方法及成效探究
调整图标间距让桌面布局更个性
调整图标间距让桌面布局更个性
天津港智慧工作平台灰度发布系统和流程设计
Arduino小车巡线程序的灰度阈值优化方案
2017年“国抽“建筑装饰材料产品合格率92.2%
算距离