发明内容
有鉴于此,本申请提供一种产品边缘外观缺陷的检测方法及装置、介质、设备,主要目的在于改善现有基于深度学习的检测方法由于标注复杂、对数据质量以及数量的要求较高,导致其难以实现广泛化的问题。
依据本申请一个方面,提供了一种产品边缘外观缺陷的检测方法,包括:
获取目标产品的图像数据;
从所述图像数据中识别出所述目标产品的边缘轮廓区域,基于所述边缘轮廓区域生成所述目标产品的基准边缘轮廓,并生成多个与所述基准边缘轮廓相平行的平行轮廓,所述基准边缘轮廓以及所述平行轮廓的宽度为单像素宽度;
获取所述多个平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量,生成灰度值向量集,并基于所述灰度值向量集生成所述目标产品的边缘轮廓展开图像数据;
对所述边缘轮廓展开图像数据进行平滑滤波处理,得到滤波后的边缘轮廓展开图像数据,并根据所述边缘轮廓展开图像数据以及所述滤波后的边缘轮廓展开图像数据之间的灰度值差值确定所述目标产品的缺陷位置信息。
优选的,所述根据所述边缘轮廓展开图像数据以及所述滤波后的边缘轮廓展开图像数据之间的灰度值差值确定所述目标产品的缺陷位置信息,具体包括:
若所述灰度值差值大于预设灰度值差值阈值,则将所述灰度值差值所对应的位置标记为缺陷位置。
优选的,所述将所述灰度值差值所对应的位置标记为缺陷位置之后,所述方法还包括:
获取所述缺陷位置的坐标信息,并根据所述坐标信息将所述缺陷位置映射到所述目标产品的图像数据中,以进行输出。
优选的,所述缺陷位置的坐标信息的行坐标值对应平行轮廓编号以及列坐标值对应平行轮廓上的轮廓点编号。
优选的,所述从所述图像数据中识别出所述目标产品的边缘轮廓区域,基于所述边缘轮廓区域生成所述目标产品的基准边缘轮廓,具体包括:
从所述目标产品的图像数据中选定待检测区域;
基于预设灰度区间阈值从所述待检测区域中识别出所述目标产品的产品区域;
分别提取所述待检测区域以及所述产品区域的内部边缘区域,并基于所述待检测区域的内部边缘区域以及所述产品区域的内部边缘区域之间差值,生成所述目标产品的基准边缘轮廓。
优选的,所述生成多个与所述基准边缘轮廓相平行的平行轮廓,具体包括:
按照预设轮廓平行距离,分别沿所述基准边缘轮廓的内法线方向以及外法线方向获取预设数量的平行轮廓,生成多个与所述基准边缘轮廓相平行的平行轮廓。
优选的,所述基于所述灰度值向量集生成所述目标产品的边缘轮廓展开图像数据,具体包括:
基于所述多个平行轮廓的数量以及所述基准边缘轮廓所包含的像素点数量创建空白图像;
将各个所述平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量映射到所述空白图像,生成所述目标产品的边缘轮廓展开图像数据。
优选的,所述获取所述缺陷位置的坐标信息之前,所述方法还包括:
获取所述缺陷位置的尺寸数据,并判断所述尺寸数据是否大于预设尺寸阈值;
若是,则获取所述缺陷位置的坐标信息,否则,忽略所述缺陷位置。
优选的,所述根据所述坐标信息将所述缺陷位置映射到所述目标产品的图像数据中之后,所述方法还包括:
分别获取任意两个所述缺陷位置之间的相对位置信息,并判断所述相对位置信息是否满足预设缺陷位置融合标准,所述相对位置信息包括距离信息以及方向信息;
若是,则将所述两个缺陷位置进行融合处理。
优选的,所述提取所述产品区域的内部边缘区域之前,所述方法还包括:
对所述目标产品的产品区域进行凸包运算处理。
优选的,所述生成所述目标产品的基准边缘轮廓之前,所述方法还包括:
按照预设腐蚀像素尺寸对所述待检测区域进行像素腐蚀处理。
依据本申请另一个方面,提供了一种产品边缘外观缺陷的检测装置,包括:
第一获取模块,用于获取目标产品的图像数据;
生成模块,用于从所述图像数据中识别出所述目标产品的边缘轮廓区域,基于所述边缘轮廓区域生成所述目标产品的基准边缘轮廓,并生成多个与所述基准边缘轮廓相平行的平行轮廓,所述基准边缘轮廓以及所述平行轮廓的宽度为单像素宽度;
第二获取模块,用于获取所述多个平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量,生成灰度值向量集,并基于所述灰度值向量集生成所述目标产品的边缘轮廓展开图像数据;
确定模块,用于对所述边缘轮廓展开图像数据进行平滑滤波处理,得到滤波后的边缘轮廓展开图像数据,并根据所述边缘轮廓展开图像数据以及所述滤波后的边缘轮廓展开图像数据之间的灰度值差值确定所述目标产品的缺陷位置信息。
优选的,所述确定模块,具体用于:
若所述灰度值差值大于预设灰度值差值阈值,则将所述灰度值差值所对应的位置标记为缺陷位置。
优选的,所述确定模块之后,所述装置还包括:
映射模块,用于获取所述缺陷位置的坐标信息,并根据所述坐标信息将所述缺陷位置映射到所述目标产品的图像数据中,以进行输出。
优选的,所述缺陷位置的坐标信息的行坐标值对应平行轮廓编号以及列坐标值对应平行轮廓上的轮廓点编号。
优选的,所述生成模块,具体包括:
选定单元,用于从所述目标产品的图像数据中选定待检测区域;
识别单元,用于基于预设灰度区间阈值从所述待检测区域中识别出所述目标产品的产品区域;
生成单元,用于分别提取所述待检测区域以及所述产品区域的内部边缘区域,并基于所述待检测区域的内部边缘区域以及所述产品区域的内部边缘区域之间差值,生成所述目标产品的基准边缘轮廓。
优选的,所述生成单元,还用于:
按照预设轮廓平行距离,分别沿所述基准边缘轮廓的内法线方向以及外法线方向获取预设数量的平行轮廓,生成多个与所述基准边缘轮廓相平行的平行轮廓。
优选的,所述第二获取模块,具体包括:
创建单元,用于基于所述多个平行轮廓的数量以及所述基准边缘轮廓所包含的像素点数量创建空白图像;
映射单元,用于将各个所述平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量映射到所述空白图像,生成所述目标产品的边缘轮廓展开图像数据。
优选的,所述映射模块之前,所述装置还包括:
第一判断模块,用于获取所述缺陷位置的尺寸数据,并判断所述尺寸数据是否大于预设尺寸阈值;
所述第一判断模块,还用于若是,则获取所述缺陷位置的坐标信息,否则,忽略所述缺陷位置。
优选的,所述映射模块之后,所述装置还包括:
第二判断模块,用于分别获取任意两个所述缺陷位置之间的相对位置信息,并判断所述相对位置信息是否满足预设缺陷位置融合标准,所述相对位置信息包括距离信息以及方向信息;
融合模块,用于若是,则将所述两个缺陷位置进行融合处理。
优选的,所述生成单元之前,所述模块还包括:
凸包运算单元,用于对所述目标产品的产品区域进行凸包运算处理。
优选的,所述生成单元之前,所述模块还包括:
腐蚀单元,用于按照预设腐蚀像素尺寸对所述待检测区域进行像素腐蚀处理。
根据本申请的又一方面,提供了一种存储介质,所述存储介质中存储有至少一条可执行指令,所述可执行指令使处理器执行如上述产品边缘外观缺陷的检测方法对应的操作。
根据本申请的再一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一条可执行指令,所述可执行指令使所述处理器执行上述产品边缘外观缺陷的检测方法对应的操作。
借由上述技术方案,本申请实施例提供的技术方案至少具有下列优点:
本申请提供了一种产品边缘外观缺陷的检测方法及装置、介质、设备,首先获取目标产品的图像数据;其次从所述图像数据中识别出所述目标产品的边缘轮廓区域,基于所述边缘轮廓区域生成所述目标产品的基准边缘轮廓,并生成多个与所述基准边缘轮廓相平行的平行轮廓,所述基准边缘轮廓以及所述平行轮廓的宽度为单像素宽度;再次获取所述多个平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量,生成灰度值向量集,并基于所述灰度值向量集生成所述目标产品的边缘轮廓展开图像数据;最后对所述边缘轮廓展开图像数据进行平滑滤波处理,得到滤波后的边缘轮廓展开图像数据,并根据所述边缘轮廓展开图像数据以及所述滤波后的边缘轮廓展开图像数据之间的灰度值差值确定所述目标产品的缺陷位置信息。与现有技术相比,本申请实施例首先从目标产品的图像数据出识别出边缘轮廓区域,并生成宽度为单像素的基准边缘轮廓,再生成多个与基准边缘轮廓相平行的平行轮廓;再根据基准边缘轮廓以及多个平行轮廓所包含的像素点的灰度值向量生成目标产品的边缘轮廓展开图像数据;最后将经过平滑滤波后的边缘轮廓展开图像数据与原边缘轮廓展开图像数据进行灰度值差值运算处理,以确定目标产品的缺陷位置信息,无需通过大数据进行标注学习以及训练,实现了不限产品类别的边缘外观缺陷的自动检测,进而提高了产品边缘外观缺陷检测的准确率。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本申请实施例可以应用于计算机***/服务器,其可与众多其它通用或专用计算***环境或配置一起操作。适于与计算机***/服务器一起使用的众所周知的计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***﹑大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
本申请实施例提供了一种产品边缘外观缺陷的检测方法,如图1所示,该方法包括:
101、获取目标产品的图像数据。
其中,目标产品可以是工业领域的产品外壳,也可以是数码产品的外壳,还可以是任何领域的任何产品。本申请实施例中,当前执行端可以是产品外观检测的处理端,可以通过摄像设备对待检测的目标产品进行拍照,并将生成的目标产品的图像数据传输至当前执行端,以根据图像数据对目标产品进行边缘缺陷的检测。
102、从图像数据中识别出目标产品的边缘轮廓区域,基于边缘轮廓区域生成目标产品的基准边缘轮廓,并生成多个与基准边缘轮廓相平行的平行轮廓。
其中,基准边缘轮廓以及平行轮廓的宽度为单像素宽度。本申请实施例中,目标产品的边缘轮廓区域用于表征由一系列像素点组成的边缘轮廓区域,可以理解为一个像素点集合;基准边缘轮廓是基于边缘轮廓区域生成的宽度为单像素的连续的边缘轮廓;平行轮廓用于表征与基准边缘轮廓相平行的轮廓,与基准边缘轮廓具有相同个数的轮廓点,可以通过一个距离参数(如单像素宽度)来控制两个平行轮廓之间的距离,可以理解的是,当距离为负数时,平行轮廓为内平行轮廓,当距离为正数时,平行轮廓为外平行轮廓。
需要说明的是,生成目标产品的基准边缘轮廓是为了约束产品的检测区域以及方向,若检测目标产品的整个外边缘,则边缘轮廓区域是闭合的;若只检测目标产品的局部边缘,则边缘轮廓区域是非闭合的。进一步的,在基于边缘轮廓区域生成基准边缘轮廓时,针对闭合的边缘轮廓区域可以通过查找区域轮廓的方式,直接生成连续的基准边缘轮廓;而针对非闭合的边缘轮廓区域可以首先通过查找区域轮廓的方式,得到闭合的基准边缘轮廓,再提取该基准边缘轮廓上的所有像素点,并对像素点位置进行比较,分别找到轮廓的起始位置和结束位置,提取起始位置和结束位置之间的轮廓点,生成最终的基准边缘轮廓。其中,连续的基准边缘轮廓是指相邻两个轮廓点的间隔不能超过1个像素,而非多边形逼近形式的轮廓。基准边缘轮廓,如图2所示。另外,生成平行轮廓时,可以沿基准边缘轮廓的内外法线方向,并按照预设轮廓平行距离分别获取预设数量的平行轮廓,其中,法线方向为依据相邻两个轮廓点的中点自动获取,预设轮廓平行距离用于表征平行轮廓与基准边缘轮廓法线方向的距离,通常配置为单像素递增,即首个平行轮廓与基准边缘轮廓法线方向的距离为单像素宽度,与首个平行轮廓相邻的第二个平行轮廓与首个平行轮廓法线方向的距离为单像素宽度,与基准边缘轮廓法线方向的距离为2个单像素宽度,以此类推。多个与基准边缘轮廓相平行的平行轮廓,如图3所示,图3(2)为图3(1)的局部放大图。
103、获取多个平行轮廓以及基准边缘轮廓所包含的各个像素点的灰度值向量,生成灰度值向量集,并基于灰度值向量集生成目标产品的边缘轮廓展开图像数据。
本申请实施例中,由于任意两个平行轮廓之间的轮廓平行距离为单像素宽度,因此,基于平行轮廓个数以及轮廓点个数生成一个空白图像,并将多个平行轮廓以及基准边缘轮廓所包含的各个像素点的灰度值向量对应到该空白图像中,即可得到目标产品的边缘轮廓展开图像数据,如图4所示。
104、对边缘轮廓展开图像数据进行平滑滤波处理,得到滤波后的边缘轮廓展开图像数据,并根据边缘轮廓展开图像数据以及滤波后的边缘轮廓展开图像数据之间的灰度值差值确定目标产品的缺陷位置信息。
本申请实施例中,可以基于预设窗口尺寸对边缘轮廓展开图像数据进行平滑滤波处理(如窗口高度为1,宽度为被检测缺陷宽度的5倍),以实现对边缘轮廓展开图像数据去噪的目的。进一步的,计算边缘轮廓展开图像数据以及滤波后的边缘轮廓展开图像数据之间的灰度值差值以确定目标产品的缺陷位置信息。
可以理解的是,由于产品的边缘仅沿平行轮廓方向的灰度具有一致性,而在高度方向上是允许有灰度差异的,高度方向的灰度信息对后续检测基本没有贡献,因此配置预设窗口尺寸时对于高度的要求高于宽度。
与现有技术相比,本申请实施例首先从目标产品的图像数据处识别出边缘轮廓区域,并生成宽度为单像素的基准边缘轮廓,再生成多个与基准边缘轮廓相平行的平行轮廓;再根据基准边缘轮廓以及多个平行轮廓所包含的像素点的灰度值向量生成目标产品的边缘轮廓展开图像数据;最后将经过平滑滤波后的边缘轮廓展开图像数据与原边缘轮廓展开图像数据进行灰度值差值运算处理,以确定目标产品的缺陷位置信息,无需通过大数据进行标注学习以及训练,实现了不限产品类别的边缘外观缺陷的自动检测,进而提高了产品边缘外观缺陷检测的准确率。
本申请实施例提供了另一种产品边缘外观缺陷的检测方法,如图5所示,该方法包括:
201、获取目标产品的图像数据。
本申请实施例中,当前执行端通过控制摄像设备对待检测的目标产品进行拍照,并获取生成的目标产品的图像数据,以对图像数据中的目标产品进行边缘缺陷的检测。
202、从图像数据中识别出目标产品的边缘轮廓区域,基于边缘轮廓区域生成目标产品的基准边缘轮廓,并生成多个与基准边缘轮廓相平行的平行轮廓。
其中,基准边缘轮廓以及平行轮廓的宽度为单像素宽度。本申请实施例中,在对目标产品进行检测前,可以根据目标产品待监测区域的尺寸预先配置尺寸合适的框选区域,可以理解的是,要求该框选区域可以覆盖待检测区域。首先,从目标产品的图像数据中选定待检测区域,如图6所示,图中方框内的部分即为选定的待检测区域;再基于固定阈值法(即预设灰度区间阈值)从待检测区域中识别出目标产品的产品区域,示例性的,如图6所示,待检测区域内包括产品区域以及背景区域(黑色区域)两部分,由于背景区域的灰度值接近于0,产品区域的灰度值大于35,因此,可以将预设灰度区间阈值配置为[35,255],以识别出产品区域,如图7所示;最后,提取待检测区域的内部边缘区域(如图8所示)以及产品区域的内部边缘区域(如图9所示),需要说明的是,内部边缘区域用于表征单像素宽度的边缘轮廓,进一步的,如图8所示,R4表示待检测区域的内部边缘区域,如图9所示,R2表示产品区域的内部边缘区域,并且R2由S1、S2、S3、S4组成,将R4与R2作差,可以剔除掉S1、S2、S3,剩余的S4即为目标产品的基准边缘轮廓。具体的,实施例步骤202中,从图像数据中识别出目标产品的边缘轮廓区域,基于边缘轮廓区域生成目标产品的基准边缘轮廓,具体包括:从目标产品的图像数据中选定待检测区域;基于预设灰度区间阈值从待检测区域中识别出目标产品的产品区域;分别提取待检测区域以及产品区域的内部边缘区域,并基于待检测区域的内部边缘区域以及产品区域的内部边缘区域之间差值,生成目标产品的基准边缘轮廓。
进一步的,沿基准边缘轮廓的内外法线方向,并按照预设轮廓平行距离分别获取
预设数量的平行轮廓,具体的,首先根据基准边缘轮廓中任意两个轮廓点的中点、方向、法
线方向以及预设平行轮廓距离(如单像素宽度)计算该中点的平行点,计算公式如下:基准
边缘轮廓中的轮廓点分别为
,
其中,
表示中点
的横坐标,
表示中点
的纵坐标;
表示内法线方向,
表示外法线方向。进一步的,根据平行轮廓距离d计算中点
对应的内平行点
以及外平行点
,计算公式如下:
进一步的,根据上述得到的平行点以及方向,得到过平行点的直线,即任意两个轮廓点的平行线。需要说明的是,针对相邻两条平行线不相交的情况,可以以原轮廓点的法线延长点作为交点。另外,针对基准边缘轮廓的起始点与终点的平行点,可以分别将第一个法线方向的延长点以及最后一个法线方向的延长点作为交点。最后将所有交点按顺序连接,以生成平行轮廓。示例性的,如图10所示,基准边缘轮廓由p0--p4的5个点构成,相邻轮廓点的中点为pm0--pm3;过轮廓中点的且平移距离为d时的内法线延长线的终点分别为pm10--pm13,外法线延长线的终点为pm20--pm23;内轮廓平行线段的交点为p11--p13,外轮廓平行线段的交点为p21--p23;基于上述针对基准边缘轮廓的起始点与终点的平行点的获取方法,可以得到p10,p14,p20,p24;最终内平行轮廓的所有点由图中p10--p14构成,外平行轮廓的所有点由图中p20--p24构成,按顺序连接所有交点后,即可得到内平行轮廓以及外平行轮廓。具体的,实施例步骤202中,生成多个与基准边缘轮廓相平行的平行轮廓,具体包括:按照预设轮廓平行距离,分别沿基准边缘轮廓的内法线方向以及外法线方向获取预设数量的平行轮廓,生成多个与基准边缘轮廓相平行的平行轮廓。
优选的,本申请实施例中,在提取产品区域的内部边缘区域之前,实施例方法还包括:对目标产品的产品区域进行凸包运算处理。
需要说明的是,由于上述步骤中提取的产品区域有可能因孔洞或崩缺等原因造成区域边缘凹陷或不完整的情况,可以在提取前对产品区域进行凸包运算,以提高内部边缘区域提取的准确率。
可选的,在生成基准边缘轮廓之前,还可以对待检测区域进行图像腐蚀处理,以保证基准边缘轮廓与平行轮廓的像素点不会超出待检测区域。其中,图像腐蚀处理时所选择的腐蚀像素大小与后续获取内外平行轮廓的个数有关,其大小为内外平行轮廓个数的最大值。具体的,实施例步骤202中生成目标产品的基准边缘轮廓之前,实施例方法还包括:按照预设腐蚀像素尺寸对待检测区域进行像素腐蚀处理。
203、获取多个平行轮廓以及基准边缘轮廓所包含的各个像素点的灰度值向量,生成灰度值向量集,并基于灰度值向量集生成目标产品的边缘轮廓展开图像数据。
本申请实施例中,首先依据上述步骤得到的平行轮廓的个数h以及轮廓点个数w,生成高度为h宽度为w的空白图像,其中,平行轮廓个数为内平行轮廓个数和外平行轮廓个数之和,由于平行轮廓是逐像素获取,因此平行轮廓个数和轮廓平行距离相等;再将包含基准边缘轮廓在内的所有平行轮廓按照从预设顺序(可以是从内到外,也可以是从外到内)进行排序,并按照从进行编号;最后,根据编号依次获取每条平行轮廓所有像素点的灰度值向量,将该向量值填充到对应图像行中,直至所有平行轮廓遍历完成。可以理解的是,由于所有平行轮廓和基准轮廓的长度(轮廓点个数w)是一致的,每个轮廓点对应原始图像中的一个像素点坐标,提取该像素点对应的灰度值,并作为该轮廓点对应灰度值,每个轮廓可以提取w个灰度值的向量。具体的,实施例步骤203中基于灰度值向量集生成目标产品的边缘轮廓展开图像数据,具体包括:基于多个平行轮廓的数量以及基准边缘轮廓所包含的像素点数量创建空白图像;将各个平行轮廓以及基准边缘轮廓所包含的各个像素点的灰度值向量映射到空白图像,生成目标产品的边缘轮廓展开图像数据。
204、对边缘轮廓展开图像数据进行平滑滤波处理,得到滤波后的边缘轮廓展开图像数据,并根据边缘轮廓展开图像数据以及滤波后的边缘轮廓展开图像数据之间的灰度值差值确定目标产品的缺陷位置信息。
本申请实施例中,首先基于预设窗口尺寸对边缘轮廓展开图像数据进行平滑滤波处理(如窗口高度为1,宽度为被检测缺陷宽度的5倍),以实现对边缘轮廓展开图像数据去噪的目的。进一步的,计算边缘轮廓展开图像数据以及滤波后的边缘轮廓展开图像数据之间的灰度值差值,并将灰度值差值超过预设灰度值差值阈值的像素设置为前景像素,即缺陷位置。具体的,实施例步骤204中,根据边缘轮廓展开图像数据以及滤波后的边缘轮廓展开图像数据之间的灰度值差值确定目标产品的缺陷位置信息,具体包括:若灰度值差值大于预设灰度值差值阈值,则将灰度值差值所对应的位置标记为缺陷位置。
需要说明的是,预设灰度值差值阈值可以分为两个,分别是预设灰度值差值亮阈值(正值)以及预设灰度值差值暗阈值(负值),其中,若灰度值差值大于预设灰度值差值亮阈值,则判定为亮异常;若灰度值差值大于预设灰度值差值暗阈值,则判定为暗异常,可以理解的是阈值设定范围的绝对值越小,则检测越灵敏。在具体的应用场景中,如图11所示,配置预设灰度值差值亮阈值为20,预设灰度值差值暗阈值为-20,可以得到d1--d4四个异常区域。
205、获取缺陷位置的尺寸数据,并判断尺寸数据是否大于预设尺寸阈值;若是,则获取缺陷位置的坐标信息,否则,忽略缺陷位置。
本申请实施例中,可以通过配置缺陷尺寸筛选条件(可以包括面积、宽度、高度等方面),将小于预设尺寸阈值的缺陷进行忽略,只保留符合尺寸的缺陷位置,以避免干扰。
206、获取缺陷位置的坐标信息,并根据坐标信息将缺陷位置映射到目标产品的图像数据中,以进行输出。
具体的,缺陷位置的像素坐标的行坐标值对应平行轮廓编号,列坐标值对应平行轮廓上的轮廓点编号,基于此映射关系,可以将缺陷位置变换到目标产品的图像数据上。在具体的应用场景中,如图12所示,为d1--d4四个异常区域映射到目标产品的图像数据后的输出图像数据。
优选的,还可以对输出图像数据中的缺陷位置进行融合,将符合距离、方向等条件的多个缺陷位置融合为一个异常区域,以保证将物理上为同一个缺陷区域,由于成像不连续导致缺陷被分成多个孤立的小区域,能够合并作为一个单独的区域来进行处理。在具体的应用场景中,如图13所示,将距离50个像素以内的异常区域(d1,d2,d3)进行融合后,最终得到融合后的缺陷位置D1和D2。具体的,实施例步骤206中,根据坐标信息将缺陷位置映射到目标产品的图像数据中之后,实施例方法还包括:分别获取任意两个缺陷位置之间的相对位置信息,并判断相对位置信息是否满足预设缺陷位置融合标准,相对位置信息包括距离信息以及方向信息;若是,则将两个缺陷位置进行融合处理。
在具体的应用场景中,在得到缺陷位置后还可以对其进行特征提取,以进行缺陷的分类,其中,提取的特征包括但不限于平均灰度、灰度标准差、最亮灰度、最暗灰度、邻域平均灰度、独立区域个数、区域线性度等,以将缺陷划分为不同类型。
需要说明的是,缺陷的类型通常与被测产品的实际情况相关,可以通过配置缺陷类型与缺陷特征之间的映射关系来实现。
本申请提供了一种产品边缘外观缺陷的检测方法,首先获取目标产品的图像数据;其次从所述图像数据中识别出所述目标产品的边缘轮廓区域,基于所述边缘轮廓区域生成所述目标产品的基准边缘轮廓,并生成多个与所述基准边缘轮廓相平行的平行轮廓,所述基准边缘轮廓以及所述平行轮廓的宽度为单像素宽度;再次获取所述多个平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量,生成灰度值向量集,并基于所述灰度值向量集生成所述目标产品的边缘轮廓展开图像数据;最后对所述边缘轮廓展开图像数据进行平滑滤波处理,得到滤波后的边缘轮廓展开图像数据,并根据所述边缘轮廓展开图像数据以及所述滤波后的边缘轮廓展开图像数据之间的灰度值差值确定所述目标产品的缺陷位置信息。与现有技术相比,本申请实施例首先从目标产品的图像数据出识别出边缘轮廓区域,并生成宽度为单像素的基准边缘轮廓,再生成多个与基准边缘轮廓相平行的平行轮廓;再根据基准边缘轮廓以及多个平行轮廓所包含的像素点的灰度值向量生成目标产品的边缘轮廓展开图像数据;最后将经过平滑滤波后的边缘轮廓展开图像数据与原边缘轮廓展开图像数据进行灰度值差值运算处理,以确定目标产品的缺陷位置信息,无需通过大数据进行标注学习以及训练,实现了不限产品类别的边缘外观缺陷的自动检测,进而提高了产品边缘外观缺陷检测的准确率。
进一步的,作为对上述图1所示方法的实现,本申请实施例提供了一种产品边缘外观缺陷的检测装置,如图14所示,该装置包括:
第一获取模块31,生成模块32,第二获取模块33,确定模块34。
第一获取模块,用于获取目标产品的图像数据;
生成模块,用于从所述图像数据中识别出所述目标产品的边缘轮廓区域,基于所述边缘轮廓区域生成所述目标产品的基准边缘轮廓,并生成多个与所述基准边缘轮廓相平行的平行轮廓,所述基准边缘轮廓以及所述平行轮廓的宽度为单像素宽度;
第二获取模块,用于获取所述多个平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量,生成灰度值向量集,并基于所述灰度值向量集生成所述目标产品的边缘轮廓展开图像数据;
确定模块,用于对所述边缘轮廓展开图像数据进行平滑滤波处理,得到滤波后的边缘轮廓展开图像数据,并根据所述边缘轮廓展开图像数据以及所述滤波后的边缘轮廓展开图像数据之间的灰度值差值确定所述目标产品的缺陷位置信息。
在具体的应用场景中,所述确定模块,具体用于:
若所述灰度值差值大于预设灰度值差值阈值,则将所述灰度值差值所对应的位置标记为缺陷位置。
在具体的应用场景中,所述确定模块之后,所述装置还包括:
映射模块,用于获取所述缺陷位置的坐标信息,并根据所述坐标信息将所述缺陷位置映射到所述目标产品的图像数据中,以进行输出。
在具体的应用场景中,所述缺陷位置的坐标信息的行坐标值对应平行轮廓编号以及列坐标值对应平行轮廓上的轮廓点编号。
在具体的应用场景中,所述生成模块,具体包括:
选定单元,用于从所述目标产品的图像数据中选定待检测区域;
识别单元,用于基于预设灰度区间阈值从所述待检测区域中识别出所述目标产品的产品区域;
生成单元,用于分别提取所述待检测区域以及所述产品区域的内部边缘区域,并基于所述待检测区域的内部边缘区域以及所述产品区域的内部边缘区域之间差值,生成所述目标产品的基准边缘轮廓。
在具体的应用场景中,所述生成单元,还用于:
按照预设轮廓平行距离,分别沿所述基准边缘轮廓的内法线方向以及外法线方向获取预设数量的平行轮廓,生成多个与所述基准边缘轮廓相平行的平行轮廓。
在具体的应用场景中,所述第二获取模块,具体包括:
创建单元,用于基于所述多个平行轮廓的数量以及所述基准边缘轮廓所包含的像素点数量创建空白图像;
映射单元,用于将各个所述平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量映射到所述空白图像,生成所述目标产品的边缘轮廓展开图像数据。
在具体的应用场景中,所述映射模块之前,所述装置还包括:
第一判断模块,用于获取所述缺陷位置的尺寸数据,并判断所述尺寸数据是否大于预设尺寸阈值;
所述第一判断模块,还用于若是,则获取所述缺陷位置的坐标信息,否则,忽略所述缺陷位置。
在具体的应用场景中,所述映射模块之后,所述装置还包括:
第二判断模块,用于分别获取任意两个所述缺陷位置之间的相对位置信息,并判断所述相对位置信息是否满足预设缺陷位置融合标准,所述相对位置信息包括距离信息以及方向信息;
融合模块,用于若是,则将所述两个缺陷位置进行融合处理。
在具体的应用场景中,所述生成单元之前,所述模块还包括:
凸包运算单元,用于对所述目标产品的产品区域进行凸包运算处理。
优选的,所述生成单元之前,所述模块还包括:
腐蚀单元,用于按照预设腐蚀像素尺寸对所述待检测区域进行像素腐蚀处理。
本申请提供了一种产品边缘外观缺陷的检测装置,首先获取目标产品的图像数据;其次从所述图像数据中识别出所述目标产品的边缘轮廓区域,基于所述边缘轮廓区域生成所述目标产品的基准边缘轮廓,并生成多个与所述基准边缘轮廓相平行的平行轮廓,所述基准边缘轮廓以及所述平行轮廓的宽度为单像素宽度;再次获取所述多个平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量,生成灰度值向量集,并基于所述灰度值向量集生成所述目标产品的边缘轮廓展开图像数据;最后对所述边缘轮廓展开图像数据进行平滑滤波处理,得到滤波后的边缘轮廓展开图像数据,并根据所述边缘轮廓展开图像数据以及所述滤波后的边缘轮廓展开图像数据之间的灰度值差值确定所述目标产品的缺陷位置信息。与现有技术相比,本申请实施例首先从目标产品的图像数据出识别出边缘轮廓区域,并生成宽度为单像素的基准边缘轮廓,再生成多个与基准边缘轮廓相平行的平行轮廓;再根据基准边缘轮廓以及多个平行轮廓所包含的像素点的灰度值向量生成目标产品的边缘轮廓展开图像数据;最后将经过平滑滤波后的边缘轮廓展开图像数据与原边缘轮廓展开图像数据进行灰度值差值运算处理,以确定目标产品的缺陷位置信息,无需通过大数据进行标注学习以及训练,实现了不限产品类别的边缘外观缺陷的自动检测,进而提高了产品边缘外观缺陷检测的准确率。
根据本申请一个实施例提供了一种存储介质,所述存储介质存储有至少一条可执行指令,该计算机可执行指令可执行上述任意方法实施例中的产品边缘外观缺陷的检测方法。
基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
图15示出了根据本申请一个实施例提供的一种终端的结构示意图,本申请具体实施例并不对终端的具体实现做限定。
如图15所示,该终端可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述接口的产品边缘外观缺陷的检测方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。终端包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行以下操作:
获取目标产品的图像数据;
从所述图像数据中识别出所述目标产品的边缘轮廓区域,基于所述边缘轮廓区域生成所述目标产品的基准边缘轮廓,并生成多个与所述基准边缘轮廓相平行的平行轮廓,所述基准边缘轮廓以及所述平行轮廓的宽度为单像素宽度;
获取所述多个平行轮廓以及所述基准边缘轮廓所包含的各个像素点的灰度值向量,生成灰度值向量集,并基于所述灰度值向量集生成所述目标产品的边缘轮廓展开图像数据;
对所述边缘轮廓展开图像数据进行平滑滤波处理,得到滤波后的边缘轮廓展开图像数据,并根据所述边缘轮廓展开图像数据以及所述滤波后的边缘轮廓展开图像数据之间的灰度值差值确定所述目标产品的缺陷位置信息。
存储介质中还可以包括操作***、网络通信模块。操作***是管理上述产品边缘外观缺陷的检测的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于***实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本申请的方法和***。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本申请的方法和***。用于所述方法的步骤的上述顺序仅是为了进行说明,本申请的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本申请实施为记录在记录介质中的程序,这些程序包括用于实现根据本申请的方法的机器可读指令。因而,本申请还覆盖存储用于执行根据本申请的方法的程序的记录介质。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。