一种基于计算机视觉的防水布质检方法与流程

文档序号:31476920发布日期:2022-09-10 00:41阅读:62来源:国知局
一种基于计算机视觉的防水布质检方法与流程

1.本技术涉及机器视觉领域,具体涉及一种基于计算机视觉的防水布质检方法。


背景技术:

2.对于防水布来说,检测防水布品材料的防水性能是最重要的一个指标。现有方法检测布料防水性能往往是通过专业仪器检测防水布的防水性,透气性能等,只能实现抽样检测,检测结果的随机性较大。基于此,本专利提出了一种基于计算机视觉的防水布防水性能检测方法,通过该方法可以实现批量防水布的检测,根据对防水布材料的检测结果中选择防水布中有代表性的防水布进行专业仪器的检测,从而对所有防水布的防水性能有一个更加明确的了解,有助于防水布的生产,销售和防水布的质量的把控。


技术实现要素:

3.本发明提供一种基于计算机视觉的防水布质检方法,解决防水布质量检测过程中随机抽样检测无法精准反映防水布的防水性能质量的问题,采用如下技术方案:获取防水布图像,检测出防水布图像中的每个水珠边缘;根据每个水珠边缘的最小外接矩形得到每个水珠的基元大小系数和基元形状系数;将每个水珠边缘的最小外接矩形通过网格划分得到水珠的中心基元及其八邻域基元;获取八邻域基元中每个基元中的水珠边缘像素点的链码对应的算术编码结果区间,将算术编码结果区间的中间值作为每个基元的算术编码值;根据每个基元的算术编码值和所有基元的算术编码均值得到八邻域基元的lbp值;以八邻域基元中每个基元为起点逆时针遍历完八个邻域基元得到八个lbp值组合,将每个lbp值组合转化为十进制,选取最小十进制数值对应的lbp值组合作为该水珠边缘的lbp特征值;根据每个水珠的基元大小系数和基元形状系数及lbp特征值得到每个水珠的边缘向量;根据水珠之间的边缘向量的相似性对水珠进行分类;根据每张防水布中每类水珠的边缘向量和该类别包含的水珠数量得到每张防水布的表征量;根据每张防水布的表征量对防水布进行分类,挑选出每类防水布的样品代表参与机器检测。
4.所述水珠的基元大小系数和基元形状系数的计算方法为:基元大小系数计算方法为:
式中, 、分别为水珠边缘的最小外接矩形的长和宽,为水珠的大小系数;基元形状系数计算方法为:式中,为基元的形状系数。
5.所述八邻域基元的lbp值的获取方法为:将八邻域基元中每个基元的算术编码值与八邻域基元的算术编码值均值对比,若该基元的算术编码值大于等于算术编码值均值,则该基元lbp值为0,否则,该基元lbp值为1。
6.所述水珠的边缘向量为,其中,为水珠边缘的lbp特征值。
7.所述对水珠进行分类的方法为:计算不同水珠的之间的余弦值相似度;计算不同水珠的编码相似性,方法如下:根据对应位数相同的方法进行计算:式中,为不同水珠边缘的lbp特征值,计算方法为:式中,为不同水珠边缘的lbp特征值在对应位置上数字相同的个数,即两个二进制数字存在对应位置数字相同的个数;计算与乘积,若大于0.8,则进行比较的两个水珠为同一类别。
8.所述每张防水布的表征量获取方法为:统计每张防水布中每种类别的水珠的数量;获取每种类别的水珠的平均边缘向量;将每种类别的水珠的数量作为权重;每种类别的水珠的平均边缘向量和权重的乘积之和作为该防水布的表征量。
9.所述对防水布进行分类的方法为:计算不同防水布的表征量之间的余弦相似度,将余弦相似度大于0.8的防水布归为一类。
10.所述挑选出每类防水布的样品的方法为:计算每类防水布中的每张图像的表征量与其他图像的表征量的余弦相似度之和,将余弦相似度之和最小值对应的防水布图像作为该类防水布样品。
11.本发明的有益效果是:基于机器视觉实现对防水布材料的表面检测,选择出具有代表性的样本,通过对防水布中的水珠进行检测,划分基元得到基元大小系数、基元形状系数,使用基元中的水珠边缘像素点的链码的算术编码区间中间值表示每个基元的算术编码值,并根据每个基元的算术编码值和算术编码均值得到八邻域基元的lbp特征值,以任意一个邻域基元为起始逆序遍历八邻域基元得到lbp特征组合,选取其对应十进制最小的一个lbp组合作为该水珠边缘的lbp特征值,根据每个水珠的基元大小系数、基元形状系数和lbp特征值得到每个水珠的边缘向量,通过边缘向量相似性对水珠进行分类,根据每类水珠的数量和边缘向量均值得到每个防水布的表征量,根据防水布的表征量对防水布进行分类,根据每类防水布中每张图像的表征量和其他图像的表征量选取出该类防水布的代表样品,方法基于计算机视觉,对防水布水珠进行检测,避免了随机抽样导致的结果不确定问题,极大的提高了样品的代表性和可靠性,根据选出的具有代表性的样品进行机器检测,实现对防水布更加精准的质量把控。
附图说明
12.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
13.图1是本发明的一种基于计算机视觉的防水布质检方法的流程示意图;图2是本发明的一种基于计算机视觉的防水布质检方法的基元示意图;图3是本发明的一种基于计算机视觉的防水布质检方法的链码方向示意图;图4是本发明的一种基于计算机视觉的防水布质检方法的水珠边缘像素点分布示意图。
具体实施方式
14.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
15.本发明的一种基于计算机视觉的防水布质检方法的实施例,如图1所示,包括:步骤一:获取防水布图像中的每个水珠边缘;该步骤的目的是,对采集防水布图像并进行预处理检测出图像中的水珠边缘。
16.本实施例的使用场景是,通过设置一个地形模型,将防水布按照地形情况铺到地形模型上,通过喷水装置喷水,然后通过水珠的圆润度和水珠的分布情况对防水布进行分类,最终选择出每个类别中有代表性的防水布进行仪器检测。
17.其中,对防水布图像预处理的方法为:首先,采用dnn语义分割的方式来识别分割防水布图像中的目标:该dnn网络的相关内容如下:
ꢀꢀꢀ
(1)使用的数据集为俯视采集的防水布图像数据集;
ꢀꢀꢀ
(2)需要分割的像素共分为两类,即训练集对应标签标注过程为:单通道的语义标签,对应位置像素属于背景类的标注为0,属于有色丝的标注为1。
18.ꢀꢀꢀ
(3)网络的任务是分类,所有使用的loss函数为交叉熵损失函数。
19.然后,通过语义分割得到的0-1掩膜图像与原图像相乘,得到的图像中只含有防水布的图像,去除了背景的干扰。
20.其中,水珠边缘的获取方法为:(1)采用yolo5网络来对图像中的水珠目标进行检测,得到水珠的包围框。
21.该网络的相关内容如下:适用的数据集为俯视采集的不同水珠图像数据集,水珠的样式为多种多样的;需要分割的像素共分为两类,即训练集对应标签标注过程为:单通道的语义标签,对应位置像素属于背景类的标注为0,属于水珠的标注为1;网络的任务是分类,所有使用的loss函数为交叉熵损失函数;通过yolo5网络可以得到防水布图像上水珠的包围框。
22.(2)对包围框内的水珠通过canny边缘检测得到包围框内的水珠的边缘。
23.步骤二:根据每个水珠边缘的最小外接矩形得到每个水珠的基元大小系数和基元形状系数;该步骤的目的是通过水珠边缘的最小外接矩形的长和宽计算出系数来反映水珠的大小和形状特征。
24.其中,基元大小系数计算方法为:式中,、分别为水珠边缘的最小外接矩形的长和宽,为水珠的大小系数;其中,基元形状系数计算方法为:式中,为基元的形状系数。
25.需要说明的是:正常情况下图像中的像素点是正方形的,即像素点的长宽相同,但实际得到的水珠的不一定是标准的球形,可能是多个水珠的聚合体,导致实际形状多样,基于此,为了方便后续计算lbp边缘特征,提出了基元形状系数。正方形形状由于长宽相等,正方形的基元形状系数为1,水珠或水珠聚合体的形状越远离正方形,则基元形状系数距离1越远;不同的基元形状可以表示不同防水布的性质,防水性能好的防水布上的水珠较为圆润,防水性能差一些的防水布即存在一定的吸水能力,则水珠形状没有那么圆润,水珠聚合体更接近于水滩,而不是较为立体的形式。
26.步骤三:将每个水珠边缘的最小外接矩形通过网格划分得到水珠的中心基元及其八邻域基元;该步骤的目的是通过最小外接矩形得到基元。
27.其中,将最小外接矩形化为基元的方法如下:将水珠边缘的最小外接矩形通过网格划分为3*3的基元形式,通过将长和宽都均匀分为3份,得到一个3*3的网格,每个网格都可以当做是一个基元,位于中心的基元称为中心基元。最小外接矩形的长用h表示,最小外接矩形的宽用w表示,如图2所示,水珠的边缘是图中的椭圆部分,图中的大矩形是水珠边缘的最小外接矩形,图中9个小矩形是9个基元,位于中心的小矩形为中心基元,它周围的8个小矩形为中心基元的八邻域基元,水珠的边缘像素点在中心基元的八邻域内。
28.步骤四:获取八邻域基元中每个基元中的水珠边缘像素点的链码对应的算术编码结果区间,将算术编码结果区间的中间值作为每个基元的算术编码值;该步骤的目的是,水珠边缘的原始像素细节信息通过基元反映,相对于原始像素方格增加了对水珠边缘的适应性信息。
29.其中,每个基元中的水珠边缘像素点的链码的获取方法为:按照水珠边缘中的像素点与其相邻像素点的分布的位置,得到每个基元中的水珠像素点的8连通链码,方法为:定义8个方向1,2,3,4,5,6,7,8,以基元内的第一个像素为起始目标像素点,判断目标像素点的相邻的像素点位于该像素点的方向,若位于方向1,则得到链码[1],更新目标像素点为第二个像素点,继续判断目标像素点的下个相邻像素的方向,若位于方向5,则得到链码[1,5],更新目标像素点,继续上述操作,最后可得到每个基元中的水珠边缘像素点的链码。
[0030]
其中,每个基元的链码的算术编码值的获取方法为:(1)统计每个基元的链码中的每个数值(方向)出现的次数和概率;(2)根据每个数值出现的概率将[0, 1)分为若干区间,区间的大小与数值出现的概率成正比,概率越大,则区间越大,所有的子区间加起来正好是 [0,1);(3)依次读入基元中的链码中的每个数值,找到该数值所在(2)中的概率区间[l,h)作为目标区间,对目标区间,再根据(1)中的概率占比进行划分区间;(4)重复(3)将该基元内的水珠边缘像素点的链码值处理完,可得到每个基元的最终算术编码区间,选取该区间的中间值作为该基元的算术编码值。
[0031]
举例说明:获取链码的方法为:如图3所示,定义8个链码方向,若边缘像素点分布如图4所示,像素点1,2,3,4,5,6为某一基元内的水珠边缘像素点,分析可知,像素点2在像素点1的1方向上,像素点3在像素点2的2方向上,像素点4在像素点3的2方向上,像素点5在像素点4的8方向上,像素点6在像素点5的7方向上,则得到该基元内水珠边缘像素点的链码为[1,2,2,8,7];获取算术编码区间及算术编码值的方法为(1)统计链码中元素出现的概率p(1)=0.2,p(2)=0.4,p(8)=0.2,p(7)=0.2;(2)划分概率区间:元素1的概率区间为[0,0.2),元素2的概率区间为[0.2,0.6),元素8的概率区间为[0.6,0.8),元素7的概率区间为[0.8,1);(3)依次读入链码元素:a.读入1,其概率区间为[0,0.2),则目标概率区间为[0,0.2),按照(2)中链码元素
出现的概率占比得到目标概率区域中每个链码元素的概率为p(1)=0.04,p(2)=0.08,p(8)=0.04,p(7)=0.04,得到目标概率区间划分为:元素1的概率区间为[0,0.04),元素2的概率区间为[0.04,0.12),元素8的概率区间为[0.12,0.16),元素7的概率区间为[0.16,0.2);b.读入2,将元素2的概率区间作为目标概率区间,[0.04,0.12),按照(2)中链码元素出现的概率占比将目标概率区间划分为:元素1的概率区间为[0,04,0.056),元素2的概率区间为[0.056,0.088),元素8的概率区间为[0.088,0.104),元素7的概率区间为[0.104,0.12);c.再读入2,将上步中元素2的概率区间作为目标概率区间[0.056,0.088),按照(2)中链码元素出现的概率占比将目标概率区间划分为:元素1的概率区间为[0.056,0.0624),元素2的概率区间为[0.0624,0.0752),元素8的概率区间为[0.0752,0.0816),元素7的概率区间为[0.0816,0.088);d.读入8,将上步中元素8的概率区间作为目标概率区间[0.0752,0.0816),按照(2)中链码元素出现的概率占比将目标概率区间划分为:元素1的概率区间为[0.0752,0.07648),元素2的概率区间为[0.07648,0.07904),元素8的概率区间为[0.07904,0.08032),元素7的概率区间为[0.08032,0.0816);e.最后读入7,将上步中元素7的概率区间作为目标概率区间[0.08032,0.0816),按照(2)中链码元素出现的概率占比将目标概率区间划分为:元素1的概率区间为[0.08032,0.080576),元素2的概率区间为[0.080576,0.081088),元素8的概率区间为[0.081088,0.081344),元素7的概率区间为[0.081344,0.0816);f.根据a,b,c,d,e操作得到的最后的目标概率区间为e中元素7的概率区间[0.08032,0.0816),将其作为该基元的算术编码区间。
[0032]
g.选取算术编码区间的中间值为0.08096,将其作为该基元的算术编码值。
[0033]
步骤五:根据每个基元的算术编码值和所有基元的算术编码均值得到八邻域基元的lbp值;以八邻域基元中每个基元为起点逆时针遍历完八个邻域基元得到八个lbp值组合,将每个lbp值组合转化为十进制,选取最小十进制数值对应的lbp值组合作为该水珠边缘的lbp特征值;该步骤的目的是,获取中心基元与八邻域基元的lbp特征,并进一步筛选出每个水珠边缘的lbp特征值;其中,八邻域基元的lbp值获取方法为:将每个基元的算术编码值与八邻域基元的算术编码值均值对比:若该基元的算术编码值大于等于均值,则该基元的lbp值为0;若该基元的算术编码值小于均值,则该基元的lbp值为1。
[0034]
其中,水珠边缘的lbp特征值的获取方法为:依次以八邻域每个基元为起始基元,逆时针遍历完所有八邻域基元,可得到8个lbp值组合,每个组合含有8个基元的lbp值,但是由于起始基元不一样,所以每个组合里面的lbp值顺序不一样;以将每个lbp值组成的二进制数转化为10进制,选择最小十进制数字对应的lbp组
合作为该水珠边缘的lbp特征值。
[0035]
步骤六:根据每个水珠的基元大小系数和基元形状系数及lbp特征值得到每个水珠的边缘向量;该步骤的目的是综合分析每个水珠的基元大小系数和基元形状系数及lbp特征值得到每个水珠的边缘向量。
[0036]
其中,水珠的边缘向量为,其中,为水珠边缘的lbp特征值。
[0037]
步骤七:根据水珠之间的边缘向量的相似性对水珠进行分类;该步骤的目的是,计算水珠之间的相似性并根据相似性分类。
[0038]
其中,对水珠进行分类的方法为:(1)计算不同水珠的之间的余弦值相似度;(2)计算不同水珠的编码相似性,根据对应位数相同的方法进行计算, 方法如下:式中,为不同水珠边缘的lbp特征值,计算方法为:式中,为不同水珠边缘的lbp特征值在对应位置上数字相同的个数,即两个二进制数字存在对应位置数字相同的个数,例如:当计算11110000与11111000的相似性时,对应位置数字相同的为:高4位1111和低3位000,因此s=7;(3)计算与乘积,若大于0.8,则进行比较的两个水珠为同一类别。
[0039]
步骤八:根据每张防水布中每类水珠的边缘向量和该类别包含的水珠数量得到每张防水布的表征量;该步骤的目的是,根据每张防水布里面包含的水珠的类别和数量得到防水布的表征量。
[0040]
其中,每张防水布的表征量的获取方法为:(1)统计每张防水布中每种类别的水珠的数量;(2)获取每种类别的水珠的平均边缘向量,平均边缘向量计算方法为,该类别中所有水珠的边缘向量之和除以该类别的水珠数量;(3)将每种类别的水珠的数量作为权重;(4)每种类别的水珠的平均边缘向量和权重的乘积之和作为该防水布的表征量。
[0041]
举例如下:某张防水布中存在a,b,c三类水珠,其数量分别为1,1,2,a类中水珠的平均边缘向量为(a1,b1,c1), b类中水珠的平均边缘向量为(a2,b2,c2),c类中水珠的平均边缘向量为(a3,b3,c3),则该防水布的表征量为0.25(a1,b1,c1)+ 0.25(a2,b2,c2)+ 0.5(a3,b3,c3)。
[0042]
步骤九:根据每张防水布的表征量对防水布进行分类,挑选出每类防水布的样品
代表参与机器检测。
[0043]
该步骤的目的是通过表征量对防水布进行分类,挑选出合适的样本参与检测。
[0044]
其中,对防水布进行分类的方法为:计算不同防水布的表征量之间的余弦相似度,将余弦相似度大于0.8的防水布归为一类。
[0045]
其中,挑选出每类防水布的样品的方法为:计算每类防水布中的每张图像的表征量与其他图像的表征量的余弦相似度之和,将余弦相似度之和最小值对应的防水布图像作为该类防水布样品。
[0046]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1