本发明涉及图像处理技术领域,特别涉及一种基于机器视觉的图像缺陷检测方法。
背景技术:
机器视觉检测是指通过相机对物体进行拍摄,然后对拍摄得到的图像进行处理,以检测物体中的特征的技术,进而得到物体的质量情况。
机器视觉检测应用越来越广泛,主要应用于尺寸测量和外观缺陷检测。其中,外观缺陷检测对提高整个产品的质量起着决定性作用。
目前机器视觉对图像进行处理时需要对整个图像进行处理,没有获取有效的特征区域;另外机器视觉处理图像计算复杂,图像处理速度较慢。
技术实现要素:
为了解决上述问题,本发明提供一种图像处理方法及系统,实现图像处理时获取有效的图像检测区域,减少图像计算过程的新技术方案。
本专利提供一种机器视觉的图像处理方法,它包括以下步骤:
s1获取rgb图像;
s2对rgb图像进行灰度处理,去除背景并提取r-b差值灰度图像,记为目标图像;
s3对所述目标图像中的像素点进行处理,得到图像检测区域;
s4利用机器视觉中深度神经网络提取目标图像的参考图像,将检测区域中的子目标图像和参考图像进行处理,获得子目标图像和参考图像的二值图。
s5利用机器视觉中深度神经网络计算参考图像的二值图与子目标图像的二值图进行差运算,获取缺陷值,并进行图像缺陷判断。
进一步的,所述s2的步骤包括通过加权平均法对所述rgb图像进行灰度处理。
进一步的,所述步骤s3包括如下步骤:
s3.1对所述目标图像中的像素点进行处理,得到至少一条轮廓对应的像素点;
s3.2为至少一条轮廓对应的各像素点计算得到所述各像素点对应的梯度方向;
s3.3沿所述各像素点计算得到的梯度方向,获取至少一个像素单位的像素点;
s3.4将所述各像素点和沿所述各像素点计算得到的梯度方向获取的至少一个像素点进行组合,形成像素点组合区域,并将所述像素点组合区域作为图像检测区域。
可选地,对所述目标图像中的像素点进行处理,得到至少一条轮廓对应的像素点,包括:
利用blob算法,对所述目标图像中的像素进行分块处理,得到多组像素点;
将各组像素点中的最外侧像素点作为所述目标图像的至少一条轮廓对应的像素点。
可选地,为所述目标图像的至少一条轮廓对应的各像素点计算得到所述各像素点对应的梯度方向,包括:
获取所述目标图像的至少一条轮廓对应的各像素点相邻的8个像素点的灰度值;
根据所述各像素点相邻的8个像素点的灰度值,计算得到所述各像素点对应的梯度方向。
可选地,以所述目标图像的长度方向作为x轴方向,以所述检测图像的宽度方向作为y轴方向,根据所述各像素点相邻的8个像素点的灰度值,计算得到所述各像素点的梯度方向,包括:
基于以下计算式,得到所述各像素点沿所述x轴方向的梯度幅值mx,和沿所述y轴方向的梯度幅值my,
mx={(p3-p1) [2×(p5-p4)] (p8-p6)}/4(1)
my={(p6-p1) [2×(p7-p2)] (p8-p3)}/4(2)
其中,式(1)、式(2)中p1、p2、p3、p4、p5、p6、p7、p8分别代表位于当前像素点的左上角、正上方、右上角、正左方、正右方、左下角、正下方和右下角的像素点的灰度值;
基于以下计算式,得到梯度角度α,
α=atan2(my,mx),(3)
根据式(3)所述梯度角度α,得到所述各像素点的梯度方向。
进一步,步骤s4包括如下步骤:
s4.1利用机器视觉中的深度神经网络提取目标图像的参考图像;
s4.2对检测区域中的子目标图像和参考图像进行灰度处理,对处理后的子目标图像和参考图像通过中值滤波进行去噪;
s4.3对去噪后的子目标图像和参考图像进行hough变换检测,分别找出子目标图像和参考图像的边界,获得边界集;
s4.4将子目标图像的边界集和参考图像的边界集进行匹配处理,对处理后的图像进行canny算子的边缘检测,分别得到子目标图像和参考图像的二值图。
可选地,所述将子目标图像的边界集与参考图像的边界集进行匹配处理的步骤包括:
将子目标图像的边界集与样本图像的边界集进行对比,然后对子目标图像进行旋转与缩放操作,使子目标图像的边界与参考图像的边界吻合。
本专利还提供一种机器视觉的图像处理系统,包括:
机器视觉图像采集模块,用于获取rgb图像;
机器视觉图像处理模块,用于对rgb图像进行灰度处理,去除背景并提取r-b差值灰度图像,记为目标图像;
机器视觉图像检测区域模块,对所述目标图像中的像素点进行处理,得到图像检测区域;
机器视觉深度神经网络模块。
进一步,机器视觉深度神经网络模块包括存储单元,用于提取目标图像的参考图像,将检测区域中的子目标图像和参考图像进行处理,获得子目标图像和参考图像的二值图。
进一步,机器视觉深度神经网络模块还包括计算单元,用于计算参考图像的二值图与子目标图像的二值图进行差运算,获取缺陷值。
本发明利用机器视觉采集图像并进行图像处理,其益处主要包括:
1.对rgb图像进行灰度处理,去除背景并提取r-b差值灰度图像,利用灰度图像进行图像处理,减少了分析要素,提高机器视觉的图像处理效率。
2.利用图像中的像素点,先确定图像检测区域,减少机器视觉不必要区域的图像处理,进而提高了机器视觉的图像处理效率。
3.利用机器视觉中的深度神经网络引入参考图像,节省了人工比对图像特征的时间,提高了研发人员的工作效率。
根据下文结合附图对本发明的具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中:
图1是根据本发明提供的图像处理的流程图;
图2是根据本发明提供的确定目标检测区域的流程图;
图3是根据本发明提供的深度神经网络中子目标图像和参考图像的处理流程图;
图4是根据本发明提供的图像处理的系统图。
具体实施方式
下文结合说明书附图的内容来描述本发明的具体实施例,应当注意,本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
本发明的一个实施例提供了一种基于机器视觉的图像处理方法。图1示出了根据本发明一个实施例的图像处理流程图。参见图1,该方法至少包括以下步骤。
获取rgb图像
本发明获取rgb图像的方法是利用机器视觉中的相机,根据检测产品的位置进行移动,进行静态或跟踪拍照,以获取rgb图像;相机不局限于rgb-d相机、ccd相机、cmos工业相机等市面上常见的相机种类;为了拍照效果更好,可以配置光源进行照明措施。
提取r-b差值灰度图像
本发明通过加权平均法对所述rgb图像进行灰度处理,去除背景并提取r-b差值灰度图像。灰度图像通常显示为从最暗黑色到最亮的白色的灰度,这样可以有256级灰度。
获取图像检测区域
其具体过程如图2:利用blob算法,对检测图像的各像素点进行分割处理,得到待检测物体对应的图像中的像素点和背景图像中的像素点。blob算法是对检测图像中相同像素的连通域进行分析,该连通域称为blob。具体地,预设一个灰度阈值,将检测图像的各像素点的灰度值分别与该灰度阈值进行比对,根据比对结果确定该像素点为待检测物体对应的图像中的像素点,或者为背景图像中的像素点。例如,将待检测物体放置在一个白色背景板上进行拍摄,得到灰度图像,其中,待检测物体不是白色物体,利用blob算法对该灰度图像中的各像素点进行分割处理,其中,预设灰度阈值为250,将灰度图像中的各像素点的灰度值分别与预设灰度阈值进行比对,当某一像素点的灰度值大于250时,确定该像素点为背景图像中的像素点,当某一像素点的灰度值小于250时,确定该像素点为待检测物体对应的图像中的像素点。需要说明地是,预设灰度阈值250仅仅是作为一个示例,对本发明并不造成任何限定。预设灰度阈值可为0到255之间的任意值。另外,预设灰度阈值可根据待检测物体对应的图像的亮度和背景图像的亮度进行设置。在获取到待检测物体对应的图像中的像素点之后,利用blob算法,对待检测物体对应的图像中的像素点进行分块处理,得到多组像素点,其中,每一组像素点中的各像素点的灰度值相同或相近,此处涉及的各像素点的灰度值相近为各像素点的灰度值的差值在预设灰度差值范围内。然后,将各组像素点中的最外侧像素点作为待检测物体的至少一条轮廓对应的像素点。利用blob算法,对待检测物体对应的图像中的像素点进行分块处理后,得到多组像素点,每一组像素点可对应一个区域,每一个区域可对应至少一个轮廓,这样可得到多个轮廓。根据用户的需求,可能不需要对得到的所有轮廓进行质量检测,此时,首先,计算多组像素点中的最外侧像素点形成的区域的面积,然后,将多组像素点中的最外侧像素点形成的区域的面积分别与预设轮廓面积阈值进行比对,得到比对结果,从比对结果中,将超过预设轮廓面积阈值的像素点组筛选出来。或者,首先,计算多组像素点中的最外侧像素点形成的区域的周长,然后,将多组像素点中的最外侧像素点形成的区域的周长分别与预设轮廓周长阈值进行比对,得到比对结果,从比对结果中,将超过预设轮廓周长阈值的像素点组筛选出来。这样可得到满足用户需求的、待检测物体对应的至少一条轮廓对应的像素点。在得到待检测物体的至少一条轮廓对应的像素点之后,计算各像素点对应的梯度方向。例如,首先,获取待检测物体的至少一条轮廓对应的各像素点相邻的8个像素点的灰度值,然后,根据各像素点相邻的8个像素点的灰度值,计算得到各像素点对应的梯度方向。计算步骤如下:首先,基于计算式(1)和计算式(2),得到某像素点沿x轴方向的梯度幅值mx和沿y轴方向的梯度幅值my,
mx={(p3-p1) [2×(p5-p4)] (p8-p6)}/4—计算式(1),
my={(p6-p1) [2×(p7-p2)] (p8-p3)}/4—计算式(2),
其中,p1、p2、p3、p4、p5、p6、p7、p8分别代表位于像素点a的左上角、正上方、右上角、正左方、正右方、左下角、正下方和右下角的像素点的灰度值。然后,基于计算式(3),得到梯度角度α,
α=atan2(my,mx)—计算式(3)。
最后,根据梯度角度α,得到该像素点的梯度方向。以该像素点作为起点,沿着该像素点的梯度方向获取至少一个像素单位的像素点。将获取的像素点集作为边界,确定图像检测区域。
获取子目标图像和参考图像的二值图
如图3,利用机器视觉中的深度神经网络的存储模块,调取与子目标图像,即检测区域中的图像,相关性强的参考图像,对检测区域中的子目标图像和参考图像进行灰度处理,对处理后的子目标图像和参考图像通过中值滤波进行去噪;对去噪后的子目标图像和参考图像进行hough变换检测,分别找出子目标图像和参考图像的边界,获得边界集;将子目标图像的边界集和参考图像的边界集进行匹配处理,具体地,将子目标图像的边界集与样本图像的边界集进行对比,然后对子目标图像进行旋转与缩放操作,使子目标图像的边界与参考图像的边界吻合。对处理后的图像进行canny算子的边缘检测,分别得到子目标图像和参考图像的二值图。
差运算,获得缺陷值
利用机器视觉中深度神经网络计算参考图像的二值图与子目标图像的二值图进行差运算,获取缺陷值,并进行图像缺陷判断。
本发明的另一个实施例提供了一种基于机器视觉的图像处理系统。参见图4,该系统包括:
机器视觉图像采集模块,用于获取rgb图像;本发明获取rgb图像的方法是利用机器视觉中的相机,根据检测产品的位置进行移动,进行静态或跟踪拍照,以获取rgb图像;相机不局限于rgb-d相机、ccd相机、cmos工业相机等市面上常见的相机种类;为了拍照效果更好,可以配置光源进行照明措施。
机器视觉图像处理模块,用于对rgb图像进行灰度处理,去除背景并提取r-b差值灰度图像,记为目标图像;
可选地,图像处理模块利用blob算法,对所述目标图像中的像素进行分块处理,得到多组像素点;将各组像素点中的最外侧像素点作为所述目标图像的至少一条轮廓对应的像素点。
图像处理模块中有为所述目标图像的至少一条轮廓对应的各像素点计算得到所述各像素点对应的梯度方向的算法,包括:
获取所述目标图像的至少一条轮廓对应的各像素点相邻的8个像素点的灰度值;
根据所述各像素点相邻的8个像素点的灰度值,计算得到所述各像素点对应的梯度方向。
例如,以所述目标图像的长度方向作为x轴方向,以所述检测图像的宽度方向作为y轴方向,根据所述各像素点相邻的8个像素点的灰度值,计算得到所述各像素点的梯度方向,包括:
基于以下计算式,得到所述各像素点沿所述x轴方向的梯度幅值mx,和沿所述y轴方向的梯度幅值my,
mx={(p3-p1) [2×(p5-p4)] (p8-p6)}/4(1)
my={(p6-p1) [2×(p7-p2)] (p8-p3)}/4(2)
其中,式(1)、式(2)中p1、p2、p3、p4、p5、p6、p7、p8分别代表位于当前像素点的左上角、正上方、右上角、正左方、正右方、左下角、正下方和右下角的像素点的灰度值;
基于以下计算式,得到梯度角度α,
α=atan2(my,mx),(3)
根据式(3)所述梯度角度α,得到所述各像素点的梯度方向。
其系统还包括机器视觉图像检测区域模块及机器视觉深度神经网络模块,机器视觉图像检测区域模块对所述目标图像中的像素点进行处理,得到图像检测区域。
其工作过程包括:利用机器视觉中的深度神经网络的存储单元,调取与子目标图像,即检测区域中的图像,相关性强的参考图像,对检测区域中的子目标图像和参考图像进行灰度处理,对处理后的子目标图像和参考图像通过中值滤波进行去噪;对去噪后的子目标图像和参考图像进行hough变换检测,分别找出子目标图像和参考图像的边界,获得边界集;将子目标图像的边界集和参考图像的边界集进行匹配处理,具体地,将子目标图像的边界集与样本图像的边界集进行对比,然后对子目标图像进行旋转与缩放操作,使子目标图像的边界与参考图像的边界吻合。对处理后的图像进行canny算子的边缘检测,分别得到子目标图像和参考图像的二值图;利用机器视觉深度神经网络模块的计算单元计算参考图像的二值图与子目标图像的二值图进行差运算,获取缺陷值。
需要注意的是,除非另有说明,本发明使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在本发明的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
1.一种基于机器视觉的图像处理方法,其特征在于,包括以下步骤:
s1获取rgb图像;
s2对获取的rgb图像进行灰度处理,去除背景并提取r-b差值灰度图像,记为目标图像;
s3对所述目标图像中的像素点进行处理,得到图像检测区域;
s4利用机器视觉中深度神经网络提取目标图像的参考图像,将检测区域中的子目标图像和参考图像进行处理,获得子目标图像和参考图像的二值图。
s5利用机器视觉中深度神经网络计算参考图像的二值图与子目标图像的二值图进行差运算,获取缺陷值,并进行图像缺陷判断。
2.根据权利要求1所述的方法,其特征在于,所述s2步骤包括通过加权平均法对所述rgb图像进行灰度处理。
3.根据权利要求1所述的方法,其特征在于,所述步骤s3包括如下步骤:
s3.1对所述目标图像中的像素点进行处理,得到至少一条轮廓对应的像素点;
s3.2为至少一条轮廓对应的各像素点计算得到所述各像素点对应的梯度方向;
s3.3沿所述各像素点计算得到的梯度方向,获取至少一个像素单位的像素点;
s3.4将所述各像素点和沿所述各像素点计算得到的梯度方向获取的至少一个像素点进行组合,形成像素点组合区域,并将所述像素点组合区域作为图像检测区域。
4.根据权利要求3所述的方法,其特征在于,对所述目标图像中的像素点进行处理,得到至少一条轮廓对应的像素点,包括:
利用blob算法,对所述目标图像中的像素进行分块处理,得到多组像素点;
将各组像素点中的最外侧像素点作为所述目标图像的至少一条轮廓对应的像素点。
5.根据权利要求4所述的方法,其特征在于,为所述目标图像的至少一条轮廓对应的各像素点计算得到所述各像素点对应的梯度方向,包括:
获取所述目标图像的至少一条轮廓对应的各像素点相邻的8个像素点的灰度值;
根据所述各像素点相邻的8个像素点的灰度值,计算得到所述各像素点对应的梯度方向。
6.根据权利要求5所述的方法,其特征在于,以所述目标图像的长度方向作为x轴方向,以所述检测图像的宽度方向作为y轴方向,根据所述各像素点相邻的8个像素点的灰度值,计算得到所述各像素点的梯度方向,包括:
基于以下计算式,得到所述各像素点沿所述x轴方向的梯度幅值mx,和沿所述y轴方向的梯度幅值my,
mx={(p3-p1) [2×(p5-p4)] (p8-p6)}/4(1)
my={(p6-p1) [2×(p7-p2)] (p8-p3)}/4(2)
其中,式(1)、式(2)中p1、p2、p3、p4、p5、p6、p7、p8分别代表位于当前像素点的左上角、正上方、右上角、正左方、正右方、左下角、正下方和右下角的像素点的灰度值;
基于以下计算式,得到梯度角度α,
α=atan2(my,mx),(3)
根据式(3)所述梯度角度α,得到所述各像素点的梯度方向。
7.根据权利要求1所述的方法,其特征在于,步骤s4包括:
s4.1利用机器视觉中的深度神经网络提取目标图像的参考图像;
s4.2对检测区域中的子目标图像和参考图像进行灰度处理,对处理后的子目标图像和参考图像通过中值滤波进行去噪;
s4.3对去噪后的子目标图像和参考图像进行hough变换检测,分别找出子目标图像和参考图像的边界,获得边界集;
s4.4将子目标图像的边界集和参考图像的边界集进行匹配处理,对处理后的图像进行canny算子的边缘检测,分别得到子目标图像和参考图像的二值图。
8.根据权利要求7所述的方法,其特征在于,所述将子目标图像的边界集与参考图像的边界集进行匹配处理包括:
将子目标图像的边界集与样本图像的边界集进行对比,然后对子目标图像进行旋转与缩放操作,使子目标图像的边界与参考图像的边界吻合。
9.一种基于机器视觉的图像处理系统,包括:
机器视觉图像采集模块,用于获取rgb图像;
机器视觉图像处理模块,用于对所述rgb图像进行灰度处理,去除背景并提取r-b差值灰度图像,记为目标图像;
机器视觉图像检测区域模块,对所述目标图像中的像素点进行处理,得到图像检测区域;
机器视觉深度神经网络模块。
10.根据权利要求9所述的系统,其特征在于,所述机器视觉深度神经网络模块包括:
存储单元,用于提取目标图像的参考图像,将检测区域中的子目标图像和参考图像进行处理,获得子目标图像和参考图像的二值图。
计算单元,用于计算参考图像的二值图与子目标图像的二值图进行差运算,获取缺陷值。
技术总结