发明内容
本发明提供基于图像处理的注塑件表面缺陷检测方法,以解决现有的问题。
本发明的基于图像处理的注塑件表面缺陷检测方法采用如下技术方案:
本发明一个实施例提供了基于图像处理的注塑件表面缺陷检测方法,该方法包括以下步骤:
获取注塑件的灰度图以及深度图;
获取深度图中各个像素点的各个邻域像素点;根据各个像素点以及各个邻域像素点的深度值得到各个邻域像素点的深度差异,根据各个邻域像素点的深度差异得到各个像素点的结构类型,所述结构类型包括平面结构以及曲面结构;
对于结构类型为平面结构的各个像素点,根据各个像素点的邻域像素点的深度值以及灰度值得到各个像素点的缺陷概率;根据各个像素点的缺陷概率得到各个缺陷像素点;根据各个缺陷像素点的坐标得到平面结构上的各个缺陷区域;
对于结构类型为曲面结构的各个像素点,获取各个像素点在深度图中的梯度方向;根据各个像素点的各个邻域像素点的梯度方向得到各个像素点的深度变化平缓程度;根据所有结构类型为曲面结构的像素点的坐标得到各个曲面结构区域;根据各个曲面结构区域中的各个像素点的深度变化平缓程度得到各个曲面结构区域的各个深度等级;根据各个深度等级中各种深度值的出现概率得到各个深度等级的不规则程度;根据各个深度等级对应的所有像素点的深度变化平缓程度得到各个深度等级的参考程度;根据各个曲面结构区域中各个深度等级的不规则程度以及参考程度得到各个曲面结构区域的缺陷概率;根据各个曲面结构区域的缺陷概率得到曲面结构上的各个缺陷区域;
平面结构上的各个缺陷区域与曲面结构上的各个缺陷区域构成了注塑件的各个缺陷区域。
优选的,所述各个邻域像素点的深度差异的获取方法为:计算各个像素点与各个邻域像素点的深度值之间差值的绝对值,将所得各个绝对值作为各个邻域像素点的深度差异。
优选的,所述各个像素点的结构类型的获取步骤包括:
根据各个邻域像素点的深度差异得到各个像素点的平整程度;当各个像素点的平整程度大于等于结构阈值时,各个像素点的结构类型为平面结构;当各个像素点的平整程度小于结构阈值时,各个像素点的结构类型为曲面结构。
优选的,所述各个像素点的缺陷概率的获取方法为:
计算各个像素点与各个邻域像素点的灰度值之间的差值,将所得各个差值的绝对值作为各个邻域像素点的灰度差异;根据各个邻域像素点的深度差异得到各个邻域像素点的参考权重;根据各个邻域像素点的参考权重与各个邻域像素点的灰度差异之间的乘积得到各个邻域像素点的差异程度;根据各个邻域像素点的差异程度得到各个像素点的缺陷概率。
优选的,所述各个像素点的深度变化平缓程度的获取方法为:
计算各个像素点的所有邻域像素点的梯度方向的平均方向,将所得平均方向作为各个像素点的参照方向;将各个邻域像素点的梯度方向与参照方向进行点乘,将所得各个点乘结果的平均值作为各个像素点的深度变化平缓程度。
优选的,所述各个深度等级的参考程度的获取方法为:
计算1.0与各个深度等级对应的各个像素点的深度变化平缓程度之间的差值,将所得各个差值的累加和作为各个深度等级的参考程度。
优选的,所述各个曲面结构区域的缺陷概率的获取表达式为:
计算各个深度等级的参考程度与各个深度等级的不规则程度之间的乘积,将各个曲面结构区域中所有深度等级对应乘积的累加和作为各个曲面结构区域的缺陷概率。
本发明的有益效果是:首先根据各个像素点与其邻域像素点之间的深度差异得到各个像素点的结构类型,根据平面结构时,光照对注塑件的影响较小的特点,计算结构类型为平面结构的各个像素点与各个邻域像素点之间的灰度差异,通过结合各个像素点与各个邻域像素点之间的深度差异,设置各个邻域像素点对应灰度差异的参考权重,从而避免一个像素点的邻域内存在缺陷,导致将该像素点错误地识别为缺陷像素点的现象出现,保证缺陷检测效果的准确性;
对于结构类型为曲面结构的各个像素点,根据各个像素点的深度变化平缓程度对各个像素点的缺陷概率进行初步判断,然后根据各个曲面结构区域各个像素点的深度变化平缓程度对各个曲面结构进行深度等级划分,根据各个深度等级对应像素点的深度变化平缓程度,对各个深度等级设置不同的参考权重,使得越不平整,越靠近边缘位置的像素点的参考权重越大,从而实现对具有深度变化平缓程度较高的凹坑缺陷的准确识别;本发明通过不同的检测方法对注塑件的不同结构类型进行缺陷检测,避免了传统方法因注塑件自身结构的不平整导致的检测效果较差的现象出现,使得存在曲面结构的注塑件也可以得到更加准确的检测效果。
具体实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的基于图像处理的注塑件表面缺陷检测方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的基于图像处理的注塑件表面缺陷检测方法的具体方案。
请参阅图1,其示出了本发明一个实施例提供的基于图像处理的注塑件表面缺陷检测方法的步骤流程图,该方法包括以下步骤:
步骤S001:获取注塑件的灰度图以及深度图。
将深度相机固定在待检测的注塑件的正上方,采集注塑件的表面图像,即RGB-D图像,此时所得图像中,每个像素点均对应一个RGB颜色值以及一个深度值,其中,一个像素点的深度值是指该点到离相机平面的实际距离,该实际距离以毫米为单位,当该像素点到相机平面的实际距离越远,该像素点的深度值越大;因此使用深度相机采集到的图像可以看作一个RGB图像与一个深度图的组合,本实施例首先对RGB图像进行灰度化处理,得到注塑件的灰度图,后续只需要对注塑件的灰度图以及深度图进行分析即可;
由于注塑件的划伤、凹坑和裂纹等缺陷会造成注塑件表面的灰度发生变化,但是当注塑件为曲面结构时,如凹槽区域中不同位置对光照的反射程度存在差异,使得不同位置的灰度值也存在相应的差异,因此仅根据注塑件表面的灰度变化无法实现对缺陷的准确检测;划伤,凹坑和裂纹等结构缺陷均会使注塑件发生形变,且缺陷的出现位置是随机的而注塑件表面可能会存在人为设计的曲面结构,如凹槽区域,因此本实施例结合注塑件的灰度图和深度图对注塑件的表面缺陷进行检测。
需要说明的是,本实施例中的曲面结构不仅仅包括注塑件表面本身设计形成的曲面结构,即固有曲面结构,如凹槽区域;还包括凹坑等结构缺陷形成的曲面结构。
步骤S002:获取深度图中各个像素点的各个邻域像素点;根据各个邻域像素点的深度差异得到各个像素点的结构类型。
获取以深度图中各个像素点为中心,半径长度为预设半径的圆形区域,本实施例中预设半径长度为7个像素长度,将所得圆形区域作为各个像素点的邻域,其中,对于一个像素点,本实施例将处于该像素点邻域内的所有像素点称为该像素点的邻域像素点;
常见的注塑件产品表面颜色时相同的,即注塑件表面各个像素点的颜色是一致的,因此正常情况下,当一个像素点与其邻域像素点之间的灰度差异越大,对应该像素点属于缺陷的概率越高,但是如果该像素点的结构类型为注塑件的曲面结构,此时该像素点的灰度差异可能是由于曲面结构对光照的反射程度不同造成的,因此在计算各个像素点的缺陷概率时,需要先判断各个像素点所处位置的结构类型,即各个像素点所处位置为平面结构还是曲面结构,如果一个像素点的结构类型为平面结构,由于平面结构内因光照衰减造成的灰度变化较小,故此时该像素点与其邻域像素点之间的灰度差异越大,该像素点的缺陷概率越大;当该像素点的结构类型为曲面结构时,由于曲面结构的光照本身就不均匀,且注塑件表面存在的固有纹理也会对缺陷检测产生干扰,根据各个像素点的灰度值进行缺陷概率的计算难免会存在一定的误差,但是各个像素点的深度值不会受到光照的影响,因此对于结构类型为曲面结构的像素点,可以根据各个像素点的深度值对各个像素点缺陷概率进行计算。
而缺陷形成的曲面结构与注塑件表面人为设计的固有曲面结构之间的区别在于,注塑件的固有曲面结构内部的深度变化较为平缓,且边缘深度较为规则,而缺陷由于随机出现且大小以及深度变化也不固定,因此可以根据各个像素点的深度变化平缓程度以及各个像素点的不规则程度对存在曲面结构的注塑件进行缺陷检测,具体过程如下:
首先根据各个像素点与各个像素点的所有邻域像素点的深度值之间的差异得到各个像素点的结构类型,其中第i个像素点的平整程度
可表示为:
式中,n为第i个像素点的邻域内包含的邻域像素点的总个数;exp()为以自然常数为底数的指数函数;
为第i个像素点的深度值;
为第i个像素点的第j个邻域像素点的深度值。
表示第i个像素点与其邻域内的第j个邻域像素点之间的深度差异,该值越趋于0,对应
趋于1,则该像素点对应的结构类型为平面结构的可能性越大,反之,则该像素点的结构类型为曲面结构的可能性越大,即深度差异与该第i个像素点的平整程度之间呈负相关关系。
设置结构阈值
,
可由工作人员根据实际情况自行设定,本实施例中设置
;当
时,认为该第i个像素点的结构类型为平面结构,否则认为该像素点的结构类型为曲面结构,对各个像素点进行处理,得到各个像素点的结构类型。
步骤S003:对于结构类型为平面结构的各个像素点,根据各个像素点的邻域像素点的深度值以及灰度值得到各个像素点的缺陷概率,进而得到平面结构上的各个缺陷区域。
由于结构类型为平面结构的各个像素点与其邻域像素点之间的灰度差异是由于该像素点的自身灰度差异造成的,灰度差异越大,该像素点的缺陷概率也越大,则当第i个像素点的结构类型为平面结构时,第i个像素点的缺陷概率
可表示为:
式中,
为第i个像素点的灰度值;
为第i个像素点的第j个邻域像素点的灰度值;
为反正切函数。
表示第i个像素点与第j个邻域像素点之间的差异程度;由于此时第i个像素点的结构类型为平面结构,如果该像素点与其邻域像素点之间的灰度差异越大,则该像素点的缺陷概率越大,但是不排除该像素点本身为正常像素点,但是其邻域内存在裂纹等缺陷,使得该像素点与裂纹缺陷像素点之间的灰度差异较大,进而导致将该像素点错误地识别为缺陷像素点的情况出现,因此对该第i个像素点的不同邻域像素点对应的灰度差异的参考权重也不同,而深度差异较小的邻域像素点与该第i个像素点处于同一平面的可能性更高,这些深度差异较小的邻域像素点对应的灰度差异更可以反映第i个像素点的缺陷概率,因此本实施例根据该第i个像素点与其各个邻域像素点的深度差异设置各个邻域像素点对应灰度差异的参考权重,灰度差异越小的邻域像素点对应的参考权重越大,由此得到当第i个像素点为平面结构时,该像素点的缺陷概率,同理得到结构类型为平面结构的各个像素点对应的缺陷概率。
设置第一概率阈值为
,该第一概率阈值可根据实际情况自行设定,当第i个像素点的缺陷概率
大于等于第一概率阈值时,认为该像素点为缺陷像素点;否则认为该像素点为正常像素点;然后使用DBSCAN聚类算法对各个缺陷像素点的坐标进行聚类,得到多个聚类结果,每个聚类结果对应平面结构上的一个缺陷区域,由此得到平面结构上的各个缺陷区域。
步骤S004:对于结构类型为曲面结构的各个像素点,根据各个曲面结构区域的各个深度等级的不规则程度以及参考程度得到各个曲面结构区域的缺陷概率;根据各个曲面结构区域的缺陷概率得到曲面结构上的各个缺陷区域。
注塑件表面只会存在平整的平面结构与不平整的曲面结构两种结构类型,此时的曲面结构中包含缺陷形成的曲面结构以及注塑件的固有曲面结构,无法直接根据第i个像素点与其各个邻域像素点之间的灰度差异以及深度差异判断第i个像素点的缺陷概率,但是固有曲面结构的深度变化更加平缓,边缘深度更加规则,裂纹以及划痕缺陷表现为线形结构,在缺陷区域的深度变化会突然增大,且裂纹以及划痕缺陷的深浅不一,使得其边缘深度存在差异;而凹坑缺陷内部的深度变化可能也较为平缓,但是由于其为随机出现的,其边缘深度也存在差异,因此在对具有曲面结构的注塑件进行裂纹、划痕以及凹坑缺陷检测时,需要综合深度变化平缓程度以不规则程度两个方面进行判断,具体过程如下:
首先使用Canny算子获取深度图中各个像素点的梯度方向,则此时每个像素点的梯度方向指向该像素点的八邻域中深度增长最快的方向,每个梯度方向均为一个单位向量;
然后获取第i个像素点的所有邻域像素点对应梯度方向之间的平均方向,将所得平均方向作为该第i个像素点的参照方向,其中由于每个梯度方向均为一个单位向量,计算多个梯度方向的平均方向即为计算各个单位向量的平均向量;根据该第i个像素点的参照方向以及该第i个像素点的各个邻域像素点的梯度方向得到第i个像素点的深度变化平缓程度
:
其中,
为第r个邻域像素点的梯度方向;
为第i个像素点的参照方向。
表示第i个像素点的第r个邻域像素点对应的方向一致性,通过将第r个邻域像素点的梯度方向
与第i个像素点对应的参照方向
进行点乘,由于
与
均为单位向量,因此
即为
与
之间的夹角余弦值,当这两个向量之间的夹角越小,对应的夹角余弦值越大,则这两个向量的方向越一致,即这两个向量的方向一致性越高;
由于注塑件的固有曲面结构的面积远大于裂纹以及划痕的线形结构,因此缺陷区域内相邻像素点的深度变化量远高于注塑件的固有曲面结构,即注塑件的固有曲面结构在局部范围内可以近似地视为“微平面”,对应固有曲面结构的各个像素点的梯度方向更加一致,此时,如果第i个像素点对应的各个邻域像素点的梯度方向与参照方向之间的夹角越小,则该像素点邻域内的深度变化越平缓;而裂纹以及划痕等缺陷具有细长的线形结构,使得裂纹以及划痕等缺陷深度变化越剧烈,故根据各个像素点的参照方向以及其所有邻域像素点的方向一致性可以得到各个像素点的深度变化平缓程度。
考虑到凹坑缺陷的大小也是随机的,当预设半径较小时,可能会使一个像素点的邻域范围过小,导致凹坑缺陷内部分像素点具有较高的深度变化平缓程度,即仅根据各个像素点的深度变化平缓程度得到的缺陷识别结果并不准确,而固有曲面结构的边缘更加规则,即固有曲面结构的边缘位置的深度基本一致,为了得到更加准确的缺陷识别效果,本实施例使用Seed-Filling算法对所有结构类型为曲面结构的像素点进行连通域分析,得到多个连通域,每个连通域对应一个曲面结构区域;
对于第k个曲面结构区域,以该曲面结构区域中所有像素点的深度变化平缓程度为样本数据,使用均值漂移聚类算法对所得样本数据进行聚类,得到多个聚类结果,由于凹坑缺陷以及注塑件的固有曲面结构内部中深度是逐渐变化的,不同位置上的深度变化平缓程度也是不同的,由于不能排除凹坑缺陷内部较为平缓的情况,但是凹坑缺陷边缘是与正常区域相邻接的,越靠近凹坑边缘处的像素点的深度变化平缓程度越小,即不同聚类结果对应曲面结构区域的不同位置,而不同位置的深度存在差异;因此可以通过对各个曲面结构区域中各个像素点的深度变化平缓程度实现对各个曲面结构区域的深度等级划分,也就是说每一个聚类结果均对应一个深度等级,而一个深度等级对应多个像素点,不同像素点的深度值可能并不相同,因此一个深度级可能对应多种深度值,结合各个等级的深度变化平缓程度以及各个深度等级对应像素点的深度值得到第k个曲面结构区域的缺陷概率
,则:
式中,
为第k个曲面结构区域中深度等级的总个数;
为第k个曲面结构区域中第u个深度等级所包含的深度值的种类数;
表示第u个深度等级中第v种深度值出现的概率;
表示第u个深度等级的参考程度;m为第u个深度等级对应的像素点的总个数;
为第u个深度等级对应的第t个像素点的深度变化平缓程度;
为以2为底的对数函数。
由于不同聚类结果对应曲面结构区域的不同位置,而越接近曲面结构区域边缘的像素点对应的深度变化平缓程度越小,为了对凹坑缺陷区域与注塑件的固有曲面结构区域,如凹槽区域进行区分,需要根据这些曲面结构区域的边缘位置的深度值之间的差异对二者进行区分,边缘位置的深度值越一致,即深度值的种类越单一,表示对应曲面结构区域的边缘越规则,其为注塑件固有曲面结构的概率越大,反之,则其为缺陷区域的概率越大;
因此本实施例根据各个深度等级中各种深度值出现的概率计算各个深度等级的深度熵,即
,用以表征第u个深度等级对应的不规则程度,如果该深度级对应深度值的种类越多,对应该曲面结构区域中,具有相同深度变化平缓程度的位置深度变化越复杂,则该深度等级对应的不规则程度越高,根据该深度等级得到的曲面结构区域的缺陷概率越大;而由于凹坑缺陷区域以及固有曲面结构区域的不同位置上的深度变化平缓程度不同,深度变化越平缓的位置二者差别越小,也就越难以对二者进行区分,而二者的最主要区别在于边缘位置上的不规则程度,因此对于深度变化平缓程度越小的深度等级的参考程度越高,对深度变化平缓程度越大的深度等级的参考程度越小,最后根据各个深度等级的参考程度以及不规则程度得到第k个曲面结构区域的缺陷概率。
同理,得到各个曲面结构区域的缺陷概率,并对所有曲面结构区域的缺陷概率进行线性归一化,得到各个曲面结构区域归一化后的缺陷概率。
设置第二概率阈值为
,该第二概率阈值可以根据实际情况自行设定;当该像素点所属的曲面结构区域归一化后的缺陷概率大于等于第二概率阈值时,认为该曲面结构区域为缺陷区域,否则认为该曲面结构区域不为缺陷区域。同理,对各个曲面结构区域进行判断,得到曲面结构上的各个缺陷区域。
平面结构上的各个缺陷区域与曲面结构上的各个缺陷区域构成了注塑件的各个缺陷区域。
通过以上步骤,完成了具有曲面结构的注塑件表面缺陷检测。
本实施例首先根据各个像素点与其邻域像素点之间的深度差异得到各个像素点的结构类型,根据平面结构时,光照对注塑件的影响较小的特点,计算结构类型为平面结构的各个像素点与各个邻域像素点之间的灰度差异,通过结合各个像素点与各个邻域像素点之间的深度差异,设置各个邻域像素点对应灰度差异的参考权重,从而避免一个像素点的邻域内存在缺陷,导致将该像素点错误地识别为缺陷像素点的现象出现,保证缺陷检测效果的准确性;
对于结构类型为曲面结构的各个像素点,根据各个像素点的深度变化平缓程度对各个像素点的缺陷概率进行初步判断,然后根据各个曲面结构区域各个像素点的深度变化平缓程度对各个曲面结构区域进行深度等级划分,根据各个深度等级对应像素点的深度变化平缓程度,对各个深度等级设置不同的参考权重,使得越不平整,越靠近边缘位置的像素点的参考权重越大,从而实现对具有深度变化平缓程度较大的凹坑缺陷的准确识别;本实施例通过不同的检测方法对注塑件的不同结构类型进行缺陷检测,避免了传统方法由于注塑件本身结构的不平整导致的检测效果较差的现象出现,使得存在曲面结构的注塑件也可以得到更加准确的检测效果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。