边缘缺陷检测方法、装置、模型、设备及可读存储介质与流程

文档序号:21369242发布日期:2020-07-04 04:45阅读:317来源:国知局
边缘缺陷检测方法、装置、模型、设备及可读存储介质与流程

本申请涉及缺陷检测领域,具体而言,涉及一种边缘缺陷检测方法、装置、模型、设备及可读存储介质。



背景技术:

缺陷检测是工业质检领域一项常见的任务,目前通用的缺陷检测算法大多是采用基于卷积神经网络的语义分割网络来进行缺陷检测的。

但是,通用的缺陷检测算法会对整幅图像内的每个位置都进行检测。在实际使用场景中,某些产品的缺陷只出现在边缘处,如果使用通用的缺陷检测算法,则不仅在非边缘处浪费了大量的计算资源,同时大量的非边缘点也会影响缺陷检测的准确度。



技术实现要素:

本申请实施例的目的在于提供一种边缘缺陷检测方法、装置、模型、设备及可读存储介质,用以解决通用的缺陷检测算法会对整幅图像内的每个位置都进行检测,从而对于缺陷只出现在边缘处只会出现在边缘处的产品,会造成计算资源浪费,同时缺陷检测的准确度不够的问题。

本申请实施例提供了一种边缘缺陷检测方法,包括:

获取待检测图像;

提取所述待检测图像的边缘信息,得到边缘图像;

将所述边缘图像与预设的边缘模板图像进行匹配,得到缺陷位置。

在上述实现过程中,在获取到待检测图像后,不会针对整个待检测图像进行缺陷检测,而是会先对待检测图像进行边缘信息的提取,得到边缘图像,进而将边缘图像与预设的边缘模板图像进行匹配,得到缺陷位置。这样,仅对整个待检测图像的边缘部分进行了缺陷检测,降低了进行缺陷检测的计算量,节约了计算资源,同时去除掉了非边缘点,避免了非边缘点对于边缘处的缺陷检测的影响,提升了缺陷检测的准确度。

进一步地,所述待检测图像为1通道的灰度图;所述提取所述待检测图像的边缘信息,得到边缘图像包括:

将所述待检测图像依次通过n个第一卷积层,得到所述n个第一卷积层对应输出的第一特征图;所述n为大于等于2的整数;将n个所述第一特征图分别输入n个第二卷积层,得到n个第二特征图;将所述n个第二特征图中同一像素点的像素值相加,得到第三特征图;将所述第三特征图通过1通道的卷积层后,使用激活函数进行非线性处理,得到边缘热力图;对所述边缘热力图进行二值化,得到所述边缘图像。

在上述实现过程中,通过多个卷积层后,可以有效将待检测图像的边缘信息提取出来,然后通过激活函数进行非线性处理,并进行二值化后,得到边缘图像。整个提取过程迅速、可靠,可以有效提取得到待检测图像的边缘信息,从而提升最终确定出的缺陷位置的准确性。

进一步地,将所述边缘图像与预设的边缘模板图像进行匹配,得到缺陷位置包括:将所述边缘图像和边缘模板图像进行拼接,输入到学习好的空间变换网络中,得到变换矩阵;依据所述变换矩阵,计算所述边缘模板图像中各边缘点和所述边缘图像中对应像素点的差值;若所述差值不为0,确定所述边缘图像中对应像素点的位置为缺陷位置。

在上述实现过程中,通过将边缘图像和边缘模板图像进行拼接,进而使用空间变换网络得到变换矩阵,从而得以依据该变换矩阵将边缘图像和边缘模板图像对齐,此时通过计算边缘模板图像中各边缘点和所述边缘图像中对应像素点的差值,即可判定相应像素点是否一致。若一致,则差值为0,说明边缘图像中该像素点处是没有问题的;若边缘图像中该像素点与边缘模板图像中该像素点不一致,则差值不为0,此时即可确定边缘图像中该像素点的位置为缺陷位置。整个过程简单、可靠,可以有效确定出缺陷位置。

进一步地,在将所述边缘图像和边缘模板图像进行拼接,输入到学习好的空间变换网络中之前,所述方法还包括:将所述边缘图像和边缘模板图像进行拼接,输入到初始的空间变换网络中,得到变换矩阵;依据该变换矩阵,计算所述边缘图像与所述边缘模板图像之间的匹配损失;依据所述匹配损失进行反向传播,更新所述初始的空间变换网络的参数;重复上述过程,直至所述匹配损失收敛,得到所述学习好的空间变换网络。

为了确保空间变换网络得到的变换矩阵准确可靠,本申请实施例中会先对空间变换网络进行训练,训练样本即以该边缘图像和边缘模板图像为准,通过不断训练从而得到匹配损失收敛的空间变换网络,此时再用该空间变换网络得到的变换矩阵来确定缺陷位置,可以提高缺陷检测的准确性和可靠性。

进一步地,所述依据该变换矩阵,计算所述边缘图像与所述边缘模板图像之间的匹配损失,包括:按照公式计算所述边缘图像与所述边缘模板图像之间的匹配损失,其中:所述i表征所述边缘图像,所述t表征所述边缘模板图像,所述θ为所述变换矩阵,所述l(i,t,θ)为所述边缘图像与所述边缘模板图像之间的匹配损失;所述t+为所述边缘模板图像中所有边缘点的集合;所述p为集合t+中的任一边缘点;所述t(p)为所述边缘模板图像中边缘点p的位置;所述θ(p)表征采用所述变换矩阵θ对边缘点p进行空间变换后的值,所述i(θ(p))为所述边缘图像中边缘点p对应的像素点的位置。

在上述实现过程中,通过公式来计算得到匹配损失,有效将边缘图像与边缘模板图像之间的匹配损失数值化,可以可靠的预测当前空间变换网络的可靠性,从而能够准确衡量出空间变换网络是否足够用于进行缺陷位置的确认。

进一步地,将所述边缘图像和边缘模板图像进行拼接,输入到空间变换网络中,得到变换矩阵,包括:将所述边缘图像和边缘模板图像进行拼接,得到输入图像;将所述输入图像进行仿射变换,得到仿射变换的六个参数;将所述六个参数组合,得到所述变换矩阵。

在上述实现过程中,通过使用仿射变换来得到变换矩阵,计算量小,实现简单,可以进一步节约计算资源。

进一步地,将所述输入图像进行仿射变换,包括:将所述输入图像依次进行两次卷积与下采样操作后,将操作结果依次输入第一全连接层和第二全连接层;其中,所述第二全连接层输出的结果为所述六个参数。

在上述实现过程中,通过两次卷积与下采样操作,以及依次连接的两个全连接层,即可有效实现仿射变换,得到变换矩阵,实现简单,计算量小,可以进一步节约计算资源。

进一步地,依据所述变换矩阵,计算所述边缘模板图像中各边缘点和所述边缘图像中对应像素点的差值,包括:按照公式t(p)-i(θ(p))计算所述边缘模板图像中所有边缘点和所述边缘图像中对应像素点的差值;其中:p∈t+;所述t+为所述边缘模板图像中所有边缘点的集合;所述p为集合t+中的任一边缘点;所述t(p)为所述边缘模板图像中边缘点p的位置;所述θ为所述变换矩阵;所述θ(p)表征采用所述变换矩阵θ对边缘点p进行空间变换后的值,所述i(θ(p))为所述边缘图像中边缘点p对应的像素点的位置。

在上述实现过程中,通过公式t(p)-i(θ(p))即可计算边缘模板图像中所有边缘点和边缘图像中对应像素点的差值。应理解,若边缘图像中像素点与边缘模板图像中对应像素点不一致,则差值不为0,此时即可确定边缘图像中该像素点的位置为缺陷位置,因此上述实现过程可以简单、可靠地确定出缺陷位置。

进一步地,所述待检测图像为待检测的手表盘图像;所述预设的边缘模板图像为预设的标准手表盘的边缘图像。

应当理解的是,在手表盘缺陷检测领域中,通常出现缺陷的位置是在手表盘的边缘位置。因此在上述实现过程中,可以实现对于手表盘的边缘缺陷检测,提高检测效率以及检测准确度。

本申请实施例还提供了一种边缘缺陷检测装置,包括:获取模块、提取模块和匹配模块;

所述获取模块,用于获取待检测图像;所述提取模块,用于提取所述待检测图像的边缘信息,得到边缘图像;所述匹配模块,用于将所述边缘图像与预设的边缘模板图像进行匹配,得到缺陷位置。

在上述实现过程中,仅对整个待检测图像的边缘部分进行了缺陷检测,降低了进行缺陷检测的计算量,节约了计算资源,同时去除掉了非边缘点,避免了非边缘点对于边缘处的缺陷检测的影响,提升了缺陷检测的准确度。

本申请实施例还提供了一种边缘缺陷检测模型,包括:

边缘检测网络,用于提取待检测图像的边缘信息,得到边缘图像;

缺陷检测网络,用于将所述边缘图像与预设的边缘模板图像进行匹配,得到缺陷位置。

在上述实现过程中,边缘缺陷检测模型可以仅对整个待检测图像的边缘部分进行缺陷检测,降低了进行缺陷检测的计算量,节约了计算资源,同时去除掉了非边缘点,避免了非边缘点对于边缘处的缺陷检测的影响,提升了缺陷检测的准确度。

进一步地,所述边缘检测网络包括:n个第一卷积层,用于在所述待检测图像依次通过所述n个第一卷积层后,得到所述n个第一卷积层对应输出的n个第一特征图分别输入n个第二卷积层;所述n为大于等于2的整数;所述n个第二卷积层,用于分别对所述n个第一特征图进行处理,得到n个第二特征图;加和层,用于将所述n个第二特征图中同一像素点的像素值相加,得到第三特征图,并将所述第三特征图输入至1通道的卷积层进行处理;激活函数,用于对所述1通道的卷积层输出的特征图进行非线性处理,得到边缘热力图;二值化处理层,用于对所述边缘热力图进行二值化,得到所述边缘图像。

进一步地,所述缺陷检测网络包括:依次连接的两个卷积与下采样层,用于对所述边缘图像和边缘模板图像拼接在一起构成的输入图像进行下采样操作;依次连接的第一全连接层和第二全连接层,用于由所述第一全连接层接收下采样的结果进行处理,并由所述第二全连接层输出仿射变换的六个参数,得到变换矩阵;损失函数,用于依据该变换矩阵,计算所述边缘图像与所述边缘模板图像之间的匹配损失,并在所述匹配损失未收敛时,依据所述匹配损失进行反向传播,更新所述缺陷检测网络的参数;缺陷计算函数,用于根据所述匹配损失收敛后,所述第二全连接层输出的变换矩阵,计算得到所述边缘图像中的缺陷位置。

本申请实施例还提供了一种边缘缺陷检测设备,包括:图片采集接口、处理器、存储器及通信总线;所述图片采集接口用于获取待检测图片;所述通信总线用于实现所述图片采集接口、处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的边缘缺陷检测方法。

本申请实施例中还提供了一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的边缘缺陷检测方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种边缘缺陷检测方法的流程示意图;

图2为本申请实施例提供的一种边缘缺陷检测模型的结构示意图;

图3为本申请实施例提供的一种边缘检测网络的结构示意图;

图4为本申请实施例提供的一种可行的边缘缺陷检测网络的处理过程示意图;

图5为本申请实施例提供的一种空间变换网络的结构示意图;

图6为本申请实施例提供的一种仿射变换网络的处理过程示意图;

图7为本申请实施例提供的一种手表盘的边缘缺陷检测过程的示意图;

图8为本申请实施例提供的一种模版匹配过程的示意图;

图9为本申请实施例提供的一种边缘缺陷检测装置的结构示意图;

图10为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

实施例一:

为了解决通用的缺陷检测算法会对整幅图像内的每个位置都进行检测,从而对于缺陷只出现在边缘处只会出现在边缘处的产品,会造成计算资源浪费,同时缺陷检测的准确度不够的问题,在本申请实施例中,提供了一种边缘缺陷检测方法和边缘缺陷检测模型。请参见图1所示,边缘缺陷检测方法包括:

s101:获取待检测图像。

在本申请实施例中,可以将待检测图像处理为1通道的灰度图,从而便于进行边缘信息以及缺陷检测。

s102:提取该待检测图像的边缘信息,得到边缘图像。

在本申请实施例中,边缘信息的提取以及缺陷位置的确定可以通过本申请实施例提供的边缘缺陷检测模型来实现。可以参见图2所示,边缘缺陷检测模型包括边缘检测网络和缺陷检测网络,其中:边缘检测网络即用于实现步骤s102的过程,而缺陷检测网络则用于实现步骤s103的过程。在本申请实施例中,参见图3所示,边缘检测网络包括:n个第一卷积层、n个第二卷积层、加和层、激活函数和二值化处理层,其中,n为大于等于2的正整数。使用时,将处理为1通道灰度图的待检测图像输入到n个第一卷积层的输入端,使得待检测图像依次通过n个第一卷积层,且获取每一个第一卷积层的输出结果,得到n个第一卷积层对应输出的第一特征图。将得到的n个第一特征图分别输入n个第二卷积层(即每个第二卷积层中输入一个第一特征图),从而得到n个第二特征图。通过加和层将n个第二特征图中同一像素点的像素值相加,即得到了第三特征图。应当理解的是,第三特征图是经由n个第二特征图加和得到的,因此其对于待检测图像的边缘特征信息进行了叠加,得以更为准确的反映出待检测图像的边缘信息。将第三特征图输入至1通道的卷积层进行处理,即得到灰度特征图,使用激活函数(例如sigmoid激活函数等)对该灰度特征图进行处理即可得到边缘热力图,但由于边缘热力图是像素点的值在0到1之间的图(需要说明的是,像素点的值表征其处于边缘区域的概率,越接近于1则表征其越可能是边缘点),因此为了便于与预设的边缘模板图像进行匹配,需要通过二值化处理层对边缘热力图进行二值化,从而得到边缘图像。

在本申请实施例中,n的值以及第一卷积层和第二卷积层的通道数可以由工程师根据实际需要进行设定。示例性的,参见图4所示,可以将处理为1通道灰度图的待检测图像通过连续3个通道为64的卷积层,进而将3个通道为64的卷积层输出得到的3个第一特征图再分别通过通道为21的卷积层,得到3个21通道的第二特征图。将得到3个21通道的第二特征图按位相加(即同一像素点的像素值相加),得到1个21通道的第三特征图。将第三特征图通过1通道的卷积层后,使用sigmoid激活函数进行非线性处理,即得到边缘热力图。

需要理解的是,在本申请实施例中,对边缘热力图进行二值化处理可以为:判断边缘热力图中各像素点的值是否大于预设阈值;若大于预设阈值,则将该像素点的值设为1,否则设为0。在本申请实施例中,阈值可以由工程师根据实际需要进行设定,例如可以设为0.6。

需要说明的是,本申请实施例中,对于边缘检测网络需要在使用前进行训练,在训练完成后才能用于进行待检测图像的边缘信息的提取。具体而言:

可以收集一些样本图像,并将其中需要检测的边缘进行标注(不需检测的边缘不进行标注),对于有缺陷的图像,在缺陷处不标注边缘。标注图像与原图像分辨率相同,边缘处的值为1,非边缘处的值为0。对于每一幅图像,执行下面2个步骤:

对一幅训练图像,将其输入边缘检测网络中,得到输出的热力图h,并与标注的边缘图g使用二值交叉熵函数计算损失,计算公式为:l(h,g)=∑p-(g(p)·log(h(p))+(1-g(p))·log(1-h(p)))。其中:p表示两幅图中任一像素点的坐标,g(p)与h(p)分别表示像素点p在热力图h与标注的边缘图g中的值,l(h,g)表示损失值,∑p-(g(p)·log(h(p))+(1-g(p))·log(1-h(p)))表示求取所有像素点p对应的-(g(p)·log(h(p))+(1-g(p))·log(1-h(p)))的值之和。

对边缘检测网络进行反向传播以更新边缘检测网络的参数,然后重复上述训练过程,直至二值交叉熵函数计算出的损失值收敛为止。在损失值收敛后,即表明边缘检测网络训练好了,可以用于对待检测图像进行边缘信息的提取。

s103:将该边缘图像与预设的边缘模板图像进行匹配,得到缺陷位置。

在本申请实施例中,边缘模板图像为预先设定的没有缺陷的标准图像。

在本申请实施例中,缺陷检测网络可以包括空间变换网络和缺陷计算函数,可以将边缘图像和边缘模板图像进行拼接,输入到学习好的空间变换网络中,得到变换矩阵,进而缺陷计算函数依据该变换矩阵,计算边缘模板图像中各边缘点和边缘图像中对应像素点的差值。

应当理解的是,空间变换网络可以对边缘图像和边缘模板图像进行对齐,所得到的变换矩阵为边缘图像和边缘模板图像对齐时各像素点所具有的对应变换关系,因此依据该变换矩阵,即可得到边缘图像与边缘模板图像之间的匹配,例如设变换矩阵为θ,对于边缘模板图像中任一边缘点p,可以得到其在边缘图像中的位置为i(θ(p)),θ(p)为按照变换矩阵θ对边缘点p进行变换后的值。

还应当理解的是,在依据该变换矩阵将边缘图像和边缘模板图像对齐后,此时通过计算边缘模板图像中各边缘点和所述边缘图像中对应像素点的差值,即可判定相应边缘点是否一致。若不一致,则差值不为0,此时即可确定边缘图像中该像素点的位置为缺陷位置。在本申请实施例的一种可行实施方式中,缺陷计算函数可以设置为:t(p)-i(θ(p)),式中:p∈t+,t+为边缘模板图像中所有边缘点的集合,p为集合t+中的任一边缘点,t(p)为边缘模板图像中边缘点p的位置,θ为变换矩阵,θ(p)表征采用变换矩阵θ对边缘点p进行空间变换后的值,i(θ(p))为边缘图像中边缘点p对应的像素点的位置。

值得注意的是,在本申请实施例中,空间变换网络可以采用所需的计算资源较少、实现较为简单的仿射变换网络。即可以通过对输入图像进行仿射变换,从而得到变换矩阵。

在本申请实施例的一种可行实施方式中,参见图5所示,空间变换网络可以包括依次连接的两个卷积与下采样层和依次连接的第一全连接层和第二全连接层。边缘图像和边缘模板图像拼接在一起构成的输入图像首先输入到这两个卷积层中,由两个卷积层进行下采样操作,然后依次经过第一全连接层和第二全连接层,从而输出仿射变换的六个参数,得到变换矩阵。

示例性的,参见图6所示,设边缘图像和边缘模板图像的大小为600×1000×1,先通过32通道的卷积层以及下采样层(例如可以通过2×2的最大池化层来实现下采样操作),再通过64通道的卷积层以及下采样层,然后通过大小为1024的第一全连接层和大小为6的第二全连接层,即得到仿射变换的六个参数。

需要注意的是,在本申请实施例中,随着待检测图像的更替,输入缺陷检测网络中与边缘模板图像进行匹配的边缘图像就会发生变化,因此为了提高缺陷检测的准确率,在本申请实施例的一种可行实施方式中,在每一次获取到新的边缘图像后,即可以依据该边缘图像以及预设的边缘模板图像对空间变换网络进行训练。具体而言,可以将边缘图像和边缘模板图像进行拼接,输入到初始的空间变换网络中,得到变换矩阵,然后依据该变换矩阵,由损失函数计算边缘图像与边缘模板图像之间的匹配损失,进而依据匹配损失进行反向传播,更新初始的空间变换网络的参数。重复前述过程,直至损失函数计算得到的匹配损失收敛,即得到了学习好的空间变换网络。

在本申请实施例的一种可行示例中,上段缺陷检测网络中所使用的损失函数可以为:式中:i表征边缘图像,t表征边缘模板图像,θ为变换矩阵,l(i,t,θ)为边缘图像与边缘模板图像之间的匹配损失;t+为边缘模板图像中所有边缘点的集合;p为集合t+中的任一边缘点;t(p)为边缘模板图像中边缘点p的值;θ(p)表征采用变换矩阵θ对边缘点p进行空间变换后的值,i(θ(p))为边缘图像中边缘点p对应的像素点的值。表示计算集合t+中的所有p对应的(t(p)-i(θ(p)))2的值的和。

本申请实施例中所提供的边缘缺陷检测方法以及边缘缺陷检测模型可以应用于各种缺陷通常只出现在边缘处的缺陷检测场景中,例如可以应用于手表盘的缺陷检测、手机中框的缺陷检测等场景中。需要注意的是,应用于不同场景中时,训练边缘检测网络所采用的训练图像应当为相应场景中所对应的产品的图像,预设的边缘模板图像应当为相应场景中所对应的产品的标准无缺陷的边缘图像,而待检测图像为应当为相应场景中所对应的待检测的产品的图像。以手表盘的缺陷检测为例,训练边缘检测网络所采用的训练图像以及待检测图像应当为手表盘的图像,而边缘模板图像应当为预设的标准手表盘的边缘图像。

通过本申请实施例所提供的边缘缺陷检测方法以及边缘缺陷检测模型,在获取到待检测图像后,不会针对整个待检测图像进行缺陷检测,而是会先对待检测图像进行边缘信息的提取,得到边缘图像,进而将边缘图像与预设的边缘模板图像进行匹配,得到缺陷位置。这样,仅对整个待检测图像的边缘部分进行了缺陷检测,降低了进行缺陷检测的计算量,节约了计算资源,同时去除掉了非边缘点,避免了非边缘点对于边缘处的缺陷检测的影响,提升了缺陷检测的准确度。

实施例二:

基于实施例一的描述,本实施例以一种对手表盘进行缺陷检测的过程为例,对本申请实施例的方案做进一步示例说明。

参见图7所示,对于手表盘进行缺陷检测的过程主要包括两个部分:

1、边缘检测。将待检测的手表盘图像输入边缘检测网络中,提取出它的边缘信息,得到边缘图像。

2、模板匹配。将边缘图像与边缘模板图像进行匹配,以得到匹配结果,找到缺陷的位置。

对于第1部分,参见图4所示,待检测的手表盘图像为1通道的灰度图,将其通过连续3个通道为64的卷积层,得到3个第一特征图;然后将3个第一特征图分别通过通道为21的卷积层,得到3个21通道的第二特征图;将得到3个21通道的第二特征图按位相加(即同一像素点的像素值相加),得到1个21通道的第三特征图。将第三特征图通过1通道的卷积层后,使用sigmoid激活函数进行非线性处理,即得到边缘热力图。判断边缘热力图中各像素点的值是否大于0.6,将大于0.6的像素点的值改为1,将小于等于0.6的像素点的值改为0,得到二值化的边缘图。

需要注意的是,本边缘检测网络中,特征图的分辨率始终保持不变。

还需要注意的是,本边缘检测网络在使用前需要进行训练。训练过程如下:

收集一些手表盘图像作为训练图像,并将其中需要检测的边缘进行标注(不需检测的边缘不进行标注),对于有缺陷的手表盘图像,在缺陷处不标注边缘。标注图像与原图像分辨率相同,边缘处的值为1,非边缘处的值为0。

将训练图像输入边缘检测网络中,得到输出的热力图h,并与标注的边缘图g使用二值交叉熵函数计算损失,计算公式为:l(h,g)=∑p-(g(p)·log(h(p))+(1-g(p))·log(1-h(p)))。其中:p表示两幅图中任一像素点的坐标,g(p)与h(p)分别表示像素点p在热力图h与标注的边缘图g中的值,l(h,g)表示损失值。

对边缘检测网络进行反向传播以更新边缘检测网络的参数,然后重复上述训练过程,直至二值交叉熵函数计算出的损失值收敛为止。在损失值收敛后,即表明边缘检测网络训练好了。

对于第2部分,其执行过程可以参见图8所示,包括:

(1)将提取出的边缘图像i与边缘模板图像t(二者均为二值图像)输入空间变换网络,计算出所需的变换矩阵θ。

在本申请实施例中,由于是进行的手表盘缺陷检测任务,而手表盘中所有零件之间是非常相似的,因此在本申请实施例中,采用较简单、计算量较小的仿射变换。此时可以参见图6所示,输入由边缘图像i与边缘模板图像t拼接而成,经过两个卷积层与下采样之后,再经过两个全连接层,得到大小为6的输出,即为仿射变换矩阵θ的6个参数。

(2)在得到仿射变换矩阵θ后,计算边缘图像i与边缘模板图像t之间的匹配。设t中所有边缘点的集合为t+,对于任意p∈t+,其在i中对应边缘点为θ(p)。

(3)计算匹配损失。损失函数如下:

式中:i表征边缘图像,t表征边缘模板图像,θ为变换矩阵,l(i,t,θ)为边缘图像与边缘模板图像之间的匹配损失;t+为边缘模板图像中所有边缘点的集合;p为集合t+中的任一边缘点;t(p)为边缘模板图像中边缘点p的值;θ(p)表征采用变换矩阵θ对边缘点p进行空间变换后的值,i(θ(p))为边缘图像中边缘点p对应的像素点的值。

(4)根据匹配损失进行反向传播,以更新空间变换网络的参数。

(5)重复步骤(1)-(4),迭代更新空间变换网络的参数,直至匹配损失收敛。

(6)计算并输出缺陷位置。对于所有p∈t+,如果t(p)-i(θ(p))≠0,则该点为缺陷;否则为正常。

上述实现过程,只需对边缘处的像素进行处理。由于边缘处的像素数量要远远少于整幅图像的像素数量,因此可以极大地减少运算时间。同时,由于已经明确知道缺陷只会出现在边缘处,因此避免了非边缘处的像素对于整个算法的干扰,从而提高了缺陷检测的准确度。相反,如果使用通用的分割算法,如u-net等进行检测,则会对图像中的所有像素都进行处理,从而浪费大量的计算量。

此外,由于每张图像中不只包含需要进行缺陷检测的边缘,同时还包含许多其它边缘,这些边缘同样会对缺陷检测过程产生不必要的影响。对于同一型号的零件(如手表盘),由于它们具有完成相同的外观,因此只需给出一张需要检测的边缘模板图像,通过使用模板匹配算法即可找到该边缘在待检测图像中的位置,进而可以排除掉其它边缘的影响,从而提高检测的准确性。

实施例三:

基于同一发明构思,本申请实施例中还提供了一种边缘缺陷检测装置。请参阅图9所示,图9示出了与图1所示的方法对应的边缘缺陷检测装置100。应理解,边缘缺陷检测装置100具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。边缘缺陷检测装置100包括至少一个能以软件或固件的形式存储于存储器中或固化在边缘缺陷检测装置100的操作系统中的软件功能模块。具体地:

参见图9所示,边缘缺陷检测装置100包括:获取模块101、提取模块102和匹配模块103。其中:

获取模块101,用于获取待检测图像;

提取模块102,用于提取待检测图像的边缘信息,得到边缘图像;

匹配模块103,用于将边缘图像与预设的边缘模板图像进行匹配,得到缺陷位置。

在本申请实施例的一种可行实施方式中,待检测图像为1通道的灰度图。提取模块102具体用于,将待检测图像依次通过n个第一卷积层,得到n个第一卷积层对应输出的第一特征图;将n个第一特征图分别输入n个第二卷积层,得到n个第二特征图;将n个第二特征图中同一像素点的像素值相加,得到第三特征图;将第三特征图通过1通道的卷积层后,使用激活函数进行非线性处理,得到边缘热力图;对边缘热力图进行二值化,得到边缘图像。n为大于等于2的整数。

在本申请实施例的一种可行实施方式中,匹配模块103具体用于将边缘图像和边缘模板图像进行拼接,输入到学习好的空间变换网络中,得到变换矩阵;依据变换矩阵,计算边缘模板图像中各边缘像素点和边缘图像中对应像素点的差值;若差值不为0,确定边缘图像中对应像素点的位置为缺陷位置。

在上述可行实施方式的一种可行示例中,匹配模块103在将边缘图像和边缘模板图像进行拼接,输入到学习好的空间变换网络中之前,还用于将边缘图像和边缘模板图像进行拼接,输入到初始的空间变换网络中,得到变换矩阵;依据该变换矩阵,计算边缘图像与边缘模板图像之间的匹配损失;依据匹配损失进行反向传播,更新初始的空间变换网络的参数;重复上述过程,直至匹配损失收敛,得到学习好的空间变换网络。

在上述可行示例中,匹配模块103具体用于按照公式计算边缘图像与边缘模板图像之间的匹配损失,其中:

i表征边缘图像,t表征边缘模板图像,θ为变换矩阵,l(i,t,θ)为边缘图像与边缘模板图像之间的匹配损失;t+为边缘模板图像中所有边缘像素点的集合;p为集合t+中的任一边缘像素点;t(p)为边缘模板图像中边缘像素点p的位置;θ(p)表征采用变换矩阵θ对边缘像素点p进行空间变换,i(θ(p))为边缘图像中边缘像素点p对应的像素点的位置。

在上述可行示例中,匹配模块103具体用于将边缘图像和边缘模板图像进行拼接,得到输入图像;将输入图像进行仿射变换,得到仿射变换的六个参数;将六个参数组合,得到变换矩阵。

示例性的,匹配模块103具体用于将输入图像依次进行两次卷积层下采样操作后,将下采样的结果依次输入第一全连接层和第二全连接层;其中,第二全连接层输出的结果为六个参数。

在上述可行实施方式的一种可行示例中,匹配模块103具体用于按照公式t(p)-i(θ(p))计算边缘模板图像中所有边缘像素点和边缘图像中对应像素点的差值;其中:p∈t+

t+为边缘模板图像中所有边缘像素点的集合;p为集合t+中的任一边缘像素点;t(p)为边缘模板图像中边缘像素点p的位置;θ为变换矩阵;θ(p)表征采用变换矩阵θ对边缘像素点p进行空间变换,i(θ(p))为边缘图像中边缘像素点p对应的像素点的位置。

在本申请实施例的一种可行实施方式中,待检测图像为待检测的手表盘图像;预设的边缘模板图像为预设的标准手表盘的边缘图像。

需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。

实施例四:

本实施例提供了一种边缘缺陷检测设备,参见图10所示,其包括图片采集接口1001、处理器1002、存储器1003以及通信总线1004。其中:

图片采集接口1001用于获取待检测图片。

通信总线1004用于实现图片采集接口1001、处理器1002和存储器1003之间的连接通信。

处理器1002用于执行存储器1003中存储的一个或多个程序,以实现上述实施例一或实施例二中边缘缺陷检测方法。

可以理解,图10所示的结构仅为示意,电子设备还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置,例如还可以具有通信接口、显示屏等部件。

本实施例还提供了一种可读存储介质,如软盘、光盘、硬盘、闪存、u盘、sd(securedigitalmemorycard,安全数码卡)卡、mmc(multimediacard,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一或实施例二中边缘缺陷检测方法。在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

在本文中,多个是指两个或两个以上。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1