发明内容
本发明实施例提供一种条纹图校正方法、光学检测设备及存储介质,该方法通过对理想条纹图进行灰度值补偿,提高理想条纹图中灰度值的准确性,从而能快速准确地还原产品结构的三维结果,降低实际条纹图中灰度值跳变产生的不利影响。
为解决上述技术问题,第一方面,本发明实施例提供一种条纹图校正方法,应用于光学检测设备,所述光学检测设备包括光机和相机,所述方法包括:
将理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的实际条纹图,其中,所述实际条纹图存在灰度值跳变;
基于所述实际条纹图,计算获取灰度补偿值;
基于所述灰度补偿值,对所述理想条纹图进行校正,得到校正后理想条纹图;
将所述校正后理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的校正后实际条纹图。
在一些实施例中,所述方法还包括:
根据N步相移条纹公式生成所述理想条纹图,其中,所述N步相移条纹公式包括所述理想条纹图的平均亮度、亮度振幅、条纹波长与条纹偏移量。
在一些实施例中,所述基于所述实际条纹图,计算获取灰度补偿值,具体包括:
基于所述实际条纹图的像素灰度值,计算获得所述灰度补偿值。
在一些实施例中,所述基于所述实际条纹图的像素灰度值,计算获得所述灰度补偿值,包括:
基于所述实际条纹图,获取所述实际条纹图的灰度值曲线,并命名为实际曲线;
将所述实际曲线中灰度值大于所述实际曲线的灰度中值的部分确定为实际上半部曲线,将灰度值小于所述实际曲线的灰度中值的部分确定为实际下半部曲线,其中,所述实际曲线的灰度中值为所述实际曲线所对应的某行或某列像素的灰度中值,命名为实际中值;
基于所述实际下半部曲线,拟合出上半部曲线与下半部曲线过渡连续的灰度值曲线,命名为拟合曲线;
将所述拟合曲线中灰度值大于所述实际中值的部分确定为拟合上半部曲线;
基于所述实际上半部曲线和所述拟合上半部曲线,计算获得所述灰度补偿值。
在一些实施例中,所述实际下半部曲线的灰度值呈正确状态。
在一些实施例中,所述基于所述灰度补偿值,对所述理想条纹图进行校正,得到校正后理想条纹图,包括:
根据N步相移条纹公式生成所述理想条纹图,其中,所述N步相移条纹公式包括所述理想条纹图的平均亮度、亮度振幅、条纹波长与条纹偏移量;
将大于所述理想条纹图的平均亮度的灰度值确定为需校正理想灰度值,将小于所述理想条纹图的平均亮度的灰度值确定为无需校正理想灰度值;
基于所述灰度补偿值,对各所述需校正理想灰度值进行校正,得到各校正后理想灰度值;
基于所述校正后理想灰度值和所述无需校正理想灰度值,获得所述校正后理想条纹图。
在一些实施例中,当所述灰度补偿值为所述拟合上半部曲线减去所述实际上半部曲线的差值时,所述基于所述灰度补偿值,对各所述需校正理想灰度值进行校正,得到各校正后理想灰度值,包括:
若所述灰度补偿值大于零,将各所述需校正理想灰度值分别加上所述灰度补偿值,获得经过校正的各所述校正后理想灰度值;
若所述灰度补偿值小于零,将各所述需校正理想灰度值分别减去所述灰度补偿值的绝对值,获得经过校正的各所述校正后理想灰度值。
为解决上述技术问题,第二方面,本发明实施例提供一种光学检测设备,包括:
控制器以及与所述控制器通信连接的光机和相机;
所述控制器包括:
处理器以及与所述处理器通信连接的存储器;
所述存储器中存储有所述处理器可执行的计算机程序指令,所述计算机程序指令在被所述处理器调用时,以使所述处理器执行上述任一项条纹图校正方法,或上述任一项条纹图校正方法中任一种可能的实施方式中的步骤。
为解决上述技术问题,第三方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,处理器运行所述计算机程序指令,以执行上述任一项条纹图校正方法,或者上述任一项条纹图校正方法中任一种可能的实施方式中的步骤。
本发明实施例的有益效果:区别于现有技术的情况,本发明实施例提供的条纹图校正方法,应用于光学检测设备,所述光学检测设备包括光机和相机,所述方法包括:将理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的实际条纹图,其中,所述实际条纹图存在灰度值跳变;基于所述实际条纹图,计算获取灰度补偿值;基于所述灰度补偿值,对所述理想条纹图进行校正,得到校正后理想条纹图;将所述校正后理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的校正后实际条纹图。该方法通过对理想条纹图进行灰度值补偿,提高理想条纹图中灰度值的准确性,从而能快速准确地还原产品结构的三维结果,降低实际条纹图中灰度值跳变产生的不利影响。
具体实施方式
为使本发明实施例的目的和优点更容易被理解,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅为本发明一部分实施例,而不是全部的实施例,以下在附图中对本发明实施例的详细描述并非限定本发明要求保护的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。此外,本文所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
除非另有定义,本发明的说明书中所使用的技术术语和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本发明。本发明说明书中所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
请参阅图1,图1为本发明一些实施例提供的条纹图校正方法的应用场景示意图。在该应用场景中,包括光学检测设备100,具体地,光学检测设备100获取理想条纹图,并对理想条纹图进行投影,获得存在灰度值跳变的实际条纹图,然后根据实际条纹图,计算获取灰度补偿值。在获得灰度补偿值后,光学检测设备100根据灰度补偿值,对理想条纹图进行校正,以获得经过校正的校正后理想条纹图。然后光学检测设备100对校正后理想条纹图进行投影,获得经过灰度值补偿的实际条纹图,即获得经过校正的校正后实际条纹图。
在一些实施例中,请参阅图2a,图2a为本发明一些实施例提供的光学检测设备100的结构示意图。其中,光学检测设备100包括控制器110以及分别与控制器110通信连接的光机120和相机130。具体地,光学检测设备100获取理想条纹图,并将理想条纹图烧录至光机120,然后利用光机120对理想条纹图进行投影,并通过相机130对投影画面进行拍摄,获得存在灰度值跳变的实际条纹图,然后根据实际条纹图,计算获取灰度补偿值。在获得灰度补偿值后,光学检测设备100根据灰度补偿值,对理想条纹图进行校正,以获得经过校正的校正后理想条纹图。然后光学检测设备100将校正后理想条纹图烧录至光机120,并利用光机120对校正后理想条纹图进行投影,以及通过相机130对投影画面进行拍摄,获得经过灰度值补偿的实际条纹图,即获得经过校正的校正后实际条纹图。
在一些实施例中,参阅图2b所示,图2b为本发明一些实施例提供的光学检测设备100中控制器110的结构示意图。其中,控制器110包括通信连接的至少一个处理器1110和存储器1120(图2b中以总线系统连接、一个处理器为例),控制器110中的各个组件通过总线系统1130耦合在一起,总线系统1130用于实现这些组件之间的连接通信。容易理解的是,总线系统1130除包括数据总线之外,还包括电源总线、控制总线和状态信号总线等。但是为了清楚说明和篇幅简洁起见,在图2b中将各种总线都标为总线系统1130。本领域技术人员可以理解,图2b实施例所示的结构仅为示意性的,其并不对上述控制器110的结构造成任何限定。例如,上述控制器110还可以包括比图2b中所示更多或者更少的组件,或者具有与图2b所示不同的配置。
具体地,处理器1110用于提供运算和控制能力,以控制控制器110执行相应的任务。例如,控制上述控制器110执行本发明实施例提供的任一项条纹图校正方法,或本发明实施例提供的任一项条纹图校正方法中任一种可能的实施方式中的步骤。本领域技术人员可以理解的是,处理器1110可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器1120作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本发明实施例中的条纹图校正方法对应的程序指令/模块。处理器1110通过运行存储在存储器1120中的非暂态软件程序、指令以及模块,可以实现本发明实施例提供的任一项条纹图校正方法,或本发明实施例提供的任一项条纹图校正方法中任一种可能的实施方式中的步骤。存储器1120可以包括高速随机存取存储器,还可以包括非暂态存储器。例如,至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器1120还可以包括相对于处理器1110远程设置的存储器,这些远程存储器可以通过通信网络连接至处理器1110。容易理解的是,上述通信网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
根据上文可以理解,本发明实施例提供的条纹图校正方法可以由各种合适类型、具有一定计算和控制能力的光学检测设备实施,例如可以由上述光学检测设备实施执行。下面结合本发明实施例提供的光学检测设备的示例性应用和实施,说明本发明实施例提供的条纹图校正方法。
为便于对本发明实施例提供的条纹图校正方法进行理解,首先对本发明实施例所提供的光学检测设备进行详细介绍。可以理解地,本发明实施例所提供的光学检测设备是指自动光学检查设备。自动光学检查设备(Automated Optical Inspection,AOI)是一种通过使用光学、图像处理和计算机视觉等技术,检测产品的表面、组件和结构的设备,以快速准确地检测和分析产品的外观、质量和性能等问题,以便及时发现和纠正产品的缺陷或问题。容易理解地,自动光学检查设备通常包括2D自动光学检查设备和3D自动光学检查设备,本发明实施例所提供的自动光学检查设备为3D自动光学检查设备。
具体地,AOI设备通常包括以下几个部分:
(1)投影系统(Projection System,即光机):投影系统利用结构光、激光或其他投影方式,在被检测产品上投射特定的图案或线条。通过分析被投射的图案在产品表面产生的形变,AOI设备可以计算出被检测产品的几何参数和形状,从而进行更精确的缺陷检测和测量。
(2)3D视觉系统(3D Vision System,即相机):3D视觉系统采用多个相机或激光扫描仪获取产品表面的三维图像,通过收集更丰富的几何数据,3D视觉系统可以更准确地检测和分析产品表面的形状、高度、倾斜度等信息,以便检测更复杂的缺陷。
(3)照明系统(Lighting System):照明系统用于提供均匀且适当的光源,照明被检测产品的表面,以获取清晰可见的图像。不同类型的光源(如白光LED、激光、红外光等)、不同类型的照明方式(如背光、侧照、同轴光等)可以用于不同类型的检测应用,有利于3D视觉系统更好地捕捉细节并检测缺陷。
(4)运输系统(Transport System):运输系统负责将待检测产品从一个位置转移到另一个位置,并定位到正确的检测位置,使其与3D视觉系统相互配合,以便高效地完成检测过程和确保光学检测的准确性。
(5)3D图像处理算法(3D Image Processing Algorithms):针对3D图像数据,AOI设备使用专门的图像处理算法进行分析和处理,以识别和分析产品的各种不良特征,如凸起、凹陷、错位、尺寸偏差等,并与3D模型进行比较,从而确定产品是否存在缺陷。
(6)高精度运动控制系统(High-precision Motion Control System):由于AOI设备需要在三维空间中进行检测,因此需要具备更高精度和稳定性的运动控制系统,通过精确的位置控制,使相机或激光扫描仪沿产品表面进行扫描或移动,以获取全面的3D数据。
(7)计算机控制系统(Computer/Control System):计算机控制系统负责AOI设备的操作和控制,接收来自3D视觉系统的图像数居,并执行图像处理算法进行图像处理和分析。计算机控制系统还可以与其他相关系统集成,输出检测结果或进行进一步的数据处理和记录。
(8)用户界面(User Interface):用户界面用于提供操作员与AOI设备进行交互的方式。用户界面可以是触摸屏、按键面板、图形界面等形式,以供操作员监控和配置检测过程,查看检测结果。
需要说明的是,为描述方便和篇幅简洁起见,本发明实施例中所述光机即表示上述AOI设备的投影系统,本发明实施例中所述相机即表示上述AOI设备的3D视觉系统。
当将理想条纹图烧录至光机,并通过光机将理想条纹图进行投影至产品表面时,预期的情况应该是相机可以拍摄获取到与理想条纹图相匹配的实际条纹图。然而,在实际情况中,由于受到AOI设备的不完美性以及环境因素的影响,实际条纹图中通常出现灰度值跳变的情况。因此,需要基于实际条纹图获取灰度补偿值,然后根据灰度补偿值对理想条纹图进行校正,以获得经过校正的校正后理想条纹图。在获得校正后理想条纹图后,再次利用光机将校正后理想条纹图进行投影至产品表面,并通过相机拍摄投影画面,获取经过校正的校正后实际条纹图,然后基于校正后实际条纹图,还原产品结构的三维几何数据,以提高产品结构的三维还原结果的准确性,快速准确地检测和分析产品的外观、质量和性能等问题,以便及时发现和纠正产品的缺陷或问题。
具体地,参见图3a所示,图3a为本发明一些实施例提供的条纹图校正方法的流程示意图。该条纹图校正方法可以应用于上述光学检测设备,该条纹图校正方法包括但不限于以下步骤S100-S400:
S100:将理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的实际条纹图,其中,所述实际条纹图存在灰度值跳变。
容易理解的是,条纹图(基频条纹图)是一种由两束光波相互干涉产生的用于光学干涉测量的图像或图样,其中一束光波是入射到待检测产品表面的光线,另一束光波是参考光线。当两束光波通过不同路径传播并相互叠加时,形成一种明暗相间的干涉条纹图案或图样。其中,干涉条纹可以提供有关待检测产品的表面形状、厚度、折射率、表面粗糙度等信息。可以理解地,条纹图的性质和外观受到入射光波的波长、入射角度、待检测产品的表面形状和光学装置的设置等因素的影响。显然地,理想条纹图是一种在没有任何干扰、失真或损失的理想条件下,根据光学理论计算出的光学干涉图案。在实际干涉实验中,由于受到光源的不完美性、光路的不稳定性以及检测器的噪音等多种因素的影响,完美的理想条纹图无法实现,因此,本发明实施例中所述理想条纹图为接近于完美的理想条纹图,其并不等于完美的理想条纹图,但可以看作是完美的理想条纹图,可以应用于相关的光学实验、光学检测和光学研究等领域。在一些实施例中,请参阅图3b,图3b示出了本发明一些实施例提供的理想条纹图。可以理解地,烧录(Programming)是指将程序或数据写入到可编程设备(如微控制器、存储芯片、闪存等)的过程,通常通过使用专门的编程设备(如编程器)或通过设备内部的编程接口完成。
具体地,AOI设备将获得的理想条纹图烧录至光机,并通过光机将理想条纹图进行投影至待检测产品表面,以使得理想条纹图在待检测产品表面形成投影画面。然后通过相机对投影画面进行拍摄,获得理想条纹图投影至待检测产品表面形成的实际条纹图。显然地,在实际应用中,由于AOI设备的不完美性以及环境因素的影响,获得的实际条纹图中通常出现灰度值跳变的情况。因此,当实际条纹图存在灰度值跳变时,需要对理想条纹图进行校正,以获得经过校正的校正后理想条纹图。请参阅图3c,图3c为图3b实施例所示理想条纹图投影获得的实际条纹图。图3c示出了将图3b实施例所示理想条纹图进行投影至待检测产品表面后,通过相机拍摄投影画面获得的实际条纹图。
S200:基于所述实际条纹图,计算获取灰度补偿值。
一般地,灰度值是一种用于表示图像中像素亮度或灰度级别的数值,灰度值通常用于黑白图像或灰度图像。在黑白图像或灰度图像中,每个像素的灰度值表示该像素的亮度级别,通常在0到255之间,其中0代表黑色,255代表白色,中间的值表示不同灰度级别的灰色。
可以理解地,灰度补偿值是一个调整亮度级别或灰度级别的因子,通常以像素级别应用于实际条纹图。通过利用灰度补偿值,可以增大或减小每个像素的亮度级别或灰度级别,以便更好地显示和分析条纹图像。容易理解地,灰度补偿值可以是一个常数或根据图像内容的局部特征进行动态计算的数值。
具体地,获取到实际条纹图后,由于实际条纹图中存在灰度值跳变,可以根据实际条纹图和理想条纹图之间灰度值的差异,计算得到灰度补偿值。本领域技术人员可以理解,计算灰度补偿值的方法包括直方图均衡化、局部对比度增强和自适应滤波等图像处理技术,或者还可以根据干涉理论建立模型并计算灰度补偿值,实际应用时可以根据实际需要进行选择。通常而言,分析人员或图像处理算法先对实际条纹图进行预处理,然后根据实际条纹图的特性和分析目标确定合适的灰度补偿值。
在一些实施例中,所述基于所述实际条纹图,计算获取灰度补偿值,包括但不限于以下步骤S210:
S210:基于所述实际条纹图的像素灰度值,计算获得所述灰度补偿值。
具体地,获取到实际条纹图后,由于实际条纹图中存在灰度值跳变,因此可以获取实际条纹图和理想条纹图的各个像素的灰度值,每个像素的灰度值表示该像素的亮度级别,通常以数字形式表示,灰度值的变化范围在0到255之间。各个像素的灰度值反映其在图像中的亮度差异,对于干涉或条纹图像,它们通常呈现出周期性的变化。然后根据实际条纹图和理想条纹图的各个像素之间灰度值的差异,计算得到灰度补偿值。
在一些实施例中,所述基于所述实际条纹图的像素灰度值,计算获得所述灰度补偿值,包括但不限于以下步骤S2101-S2105:
S2101:基于所述实际条纹图,获取所述实际条纹图的灰度值曲线,并命名为实际曲线。
具体地,获取到实际条纹图后,在实际条纹图中截取一条剖面直线,显然地,该剖面直线为实际条纹图的某行或某列像素。为了准确地展现实际条纹图中各个像素的灰度值的变化,截取的剖面直线通常与实际条纹图中条纹的方向垂直。容易理解地,也可以截取其他方向的剖面直线,可以根据实际需要进行选择调整。在实际条纹图中截取剖面直线后,通过图像处理技术,获取剖面直线中各个像素的灰度值,并根据各个像素的灰度值和坐标,将剖面直线的各个像素的灰度值绘制成曲线,得到灰度值曲线,即获得实际条纹图的灰度值曲线,并将该实际条纹图的灰度值曲线命名为实际曲线。参阅图3d所示,图3d为图3b实施例所示理想条纹图的灰度值曲线,图3d示出了在图3b实施例所示的理想条纹图中截取的剖面直线的各个像素的灰度值。参阅图3e所示,图3e为图3c实施例所示实际条纹图的灰度值曲线,图3e示出了在图3c实施例所示的实际条纹图中截取的剖面直线的各个像素的灰度值。
可以理解地,实际条纹图中条纹的方向可能是水平方向或竖直方向。当实际条纹图中的条纹为水平方向时,则实际条纹图的灰度值曲线的横坐标表示在实际条纹图中截取的剖面直线的各个像素的纵坐标。若实际条纹图中的条纹为竖直方向(如图3c实施例所示的实际条纹图),则实际条纹图的灰度值曲线的横坐标表示在实际条纹图中截取的剖面直线的各个像素的横坐标。
S2102:将所述实际曲线中灰度值大于所述实际曲线的灰度中值的部分确定为实际上半部曲线,将灰度值小于所述实际曲线的灰度中值的部分确定为实际下半部曲线,其中,所述实际曲线的灰度中值为所述实际曲线所对应的某行或某列像素的灰度中值,命名为实际中值。
获得实际条纹图的灰度值曲线,即获得实际曲线后,根据实际曲线所对应的剖面直线中各个像素的灰度值,确定实际曲线的灰度中值。其中,剖面直线的各个像素为实际条纹图的某行或某列像素,或者为实际条纹图的某行或某列像素中取样的一段像素。显然地,实际曲线的灰度中值为该实际曲线对应的某行或某列像素的灰度中值,并将实际曲线的灰度中值命名为实际中值。可以理解地,当实际条纹图的条纹为水平方向时,在实际条纹图中截取的剖面直线为实际条纹图的某列像素或某列像素的一段像素,此时,实际曲线的灰度中值为该实际曲线所对应的实际条纹图的某列像素或某列像素的一段像素的灰度中值。当实际条纹图的条纹为竖直方向时,在实际条纹图中截取的剖面直线为实际条纹图的某行像素或某行像素的一段像素,此时,实际曲线的灰度中值为该实际曲线所对应的实际条纹图的某行像素或某行像素的一段像素的灰度中值。在发明实施例中,在实际条纹图中截取的剖面直线为实际条纹图的某行或某列像素的一段像素。
在确定实际曲线的灰度中值(即实际中值)后,基于实际中值,将实际曲线确定为两个部分:实际上半部曲线和实际下半部曲线。具体地,将实际曲线中灰度值大于实际中值的部分确定为实际上半部曲线,将实际曲线中灰度值小于实际中值的部分确定为实际下半部曲线。
S2103:基于所述实际下半部曲线,拟合出上半部曲线与下半部曲线过渡连续的灰度值曲线,命名为拟合曲线。
由于光学检测设备的特殊性,在理想条纹图的各个像素中,灰度值大于实际中值的各个像素才会出现灰度值跳变。对应地,实际曲线中只有实际上半部曲线才会发生偏移,因此,不发生偏移的实际下半部曲线所对应的各个像素的灰度值是正确无误的,即实际曲线中的实际下半部曲线呈正确状态。在计算获取灰度补偿值时,可以利用不发生偏移的实际下半部曲线进行拟合,以得到拟合曲线,然后基于拟合曲线,计算获得灰度补偿值。
具体地,根据实际下半部曲线,通过合适的数学模型或曲线拟合算法,拟合出上半部曲线与下半部曲线过渡连续、平滑流畅的灰度值曲线,并将该灰度值曲线命名为拟合曲线。可以理解的是,拟合曲线的下半部曲线为实际下半部曲线,拟合曲线的上半部曲线为根据实际下半部曲线拟合得到的曲线。通过合适的拟合函数和参数,拟合曲线的上半部曲线与实际下半部曲线在连接点上具有连续性,以确保整个拟合曲线在过渡区域自然流畅。容易理解的是,可以根据实际曲线的性质和分析需求选择不同的数学拟合技术(如多项式拟合、曲线拟合和样条插值等),拟合得到过渡连续、平滑流畅的灰度值曲线。
S2104:将所述拟合曲线中灰度值大于所述实际中值的部分确定为拟合上半部曲线。
拟合曲线是基于实际下半部曲线,通过数学拟合技术拟合生成的平滑、连续的灰度值曲线。根据确定的实际中值,将拟合曲线确定为两个部分:拟合上半部曲线和拟合下半部曲线,其中,拟合下半部曲线为实际下半部曲线。具体地,将拟合曲线中灰度值大于实际中值的部分确定为拟合上半部曲线。
S2105:基于所述实际上半部曲线和所述拟合上半部曲线,计算获得所述灰度补偿值。
具体地,获取实际上半部曲线和拟合上半部曲线中各个像素的灰度值,并将坐标对应的各个像素的灰度值进行比较,以获得实际上半部曲线和拟合上半部曲线中坐标对应的各个像素之间灰度值的差异,并计算获得灰度补偿值。可以理解地,计算获得灰度补偿值的方法可以是多样的。例如,可以是一个简单的差值操作,将拟合上半部曲线中各个像素的灰度值与实际上半部曲线中对应的各个像素的灰度值作差,获得一组灰度值差值,然后根据灰度值差值,计算灰度值差值的平均值,得到灰度补偿值。或者也可以使用更复杂的数学模型计算获得灰度补偿值,可以根据实际需要进行选择调整。
S300:基于所述灰度补偿值,对所述理想条纹图进行校正,得到校正后理想条纹图。
具体地,在获得灰度补偿值后,根据灰度补偿值,对理想条纹图的各个像素的灰度值进行调整,以校正理想条纹图,得到校正后理想条纹图,以便更准确地表示干涉条纹图案或图样。在一些实施例中,可以通过将理想条纹图的每个像素的原始灰度值与灰度补偿值相加或相乘,以调整理想条纹图的各个像素的灰度值。在另一些实施例中,可以通过将理想条纹图的每个像素的原始灰度值与相应位置处的灰度补偿值相加或相乘,以调整理想条纹图中各个像素的灰度值,可以根据实际需要进行选择不同的调整方法。请参阅图3f,图3f为图3b实施例所示理想条纹图经过校正的校正后理想条纹图。请参阅图3g,图3g为图3f实施例所示的校正后理想条纹图的灰度值曲线,图3g示出了在图3f实施例所示的校正后理想条纹图中截取的剖面直线的各个像素的灰度值。
S400:将所述校正后理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的校正后实际条纹图。
具体地,AOI设备将经过校正得到的校正后理想条纹图烧录至光机,并通过光机将校正后理想条纹图进行投影至检测产品表面,在检测产品表面形成投影画面。然后通过相机对待检测产品表面上的投影画面进行拍摄,获得校正后理想条纹图投影至待检测产品表面形成的校正后实际条纹图。请参阅图3h,图3h为图3f实施例所示的校正后理想条纹图投影获得的校正后实际条纹图。图3h示出了将图3f实施例所示的校正后理想条纹图进行投影至待检测产品表面后,通过相机拍摄投影画面获得的校正后实际条纹图。请参阅图3i,图3i为图3h实施例所示的校正后实际条纹图的灰度值曲线,图3i示出了在图3h实施例所示的校正后实际条纹图中截取的剖面直线的各个像素的灰度值。
可以理解的是,上述本发明实施例只阐述了实际条纹图中的条纹向上偏移的情形,即图3c实施例仅示出了实际条纹图的条纹向上偏移的情形。在其他一些实施例中,实际条纹图的条纹还可以向下偏移。在实际条纹图的条纹向下偏移的实施例中,请参阅图3j,图3j为图3b实施例所示理想条纹图投影获得的另一实际条纹图,图3j示出了条纹向上偏移时的实际条纹图。相应地,请参阅图3k,图3k为图3j实施例所示实际条纹图的灰度值曲线,图3k示出了在图3j实施例所示的实际条纹图中截取的剖面直线的各个像素的灰度值。请参阅图3l,图3l为图3b实施例所示的理想条纹图经过校正的另一校正后理想条纹图。相应地,请参阅图3m,图3m为图3l实施例所示的校正后理想条纹图的灰度值曲线,图3m示出了在图3l实施例所示的校正后理想条纹图中截取的剖面直线的各个像素的灰度值。请参阅图3n,图3n为图3l实施例所示的校正后理想条纹图投影获得的校正后实际条纹图。图3n示出了将图3l实施例所示的校正后理想条纹图进行投影至待检测产品表面后,通过相机拍摄投影画面获得的校正后实际条纹图。请参阅图3o,图3o为图3n实施例所示的校正后实际条纹图的灰度值曲线,图3o示出了在图3n实施例所示的校正后实际条纹图中截取的剖面直线的各个像素的灰度值。
当实际条纹图中的条纹向下偏移时,基于实际条纹图,计算获取灰度补偿值、以及在获得灰度补偿值后,对理想条纹图进行校正,获得校正后理想条纹图、以及基于校正后理想条纹图,获得校正后实际条纹图等步骤的具体执行过程和具体实施方式与当实际条纹图中的条纹向上偏移时对应的步骤的具体执行过程和具体实施方式相同或相似,请参考实际条纹图中的条纹向上偏移时的实施例中所述的具体执行过程和具体实施方式,在此不做一一赘述。
本发明实施例提供的条纹图校正方法,应用于光学检测设备,所述光学检测设备包括光机和相机,所述方法包括:将理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的实际条纹图,其中,所述实际条纹图存在灰度值跳变;基于所述实际条纹图,计算获取灰度补偿值;基于所述灰度补偿值,对所述理想条纹图进行校正,得到校正后理想条纹图;将所述校正后理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的校正后实际条纹图。该方法通过对理想条纹图进行灰度值补偿,提高理想条纹图中灰度值的准确性,从而能快速准确地还原产品结构的三维结果,降低实际条纹图中灰度值跳变产生的不利影响。
在一些实施例中,参见图4所示,图4为本发明另一些实施例提供的条纹图校正方法的流程示意图,该条纹图校正方法还包括以下步骤S100A:
S100A:根据N步相移条纹公式生成所述理想条纹图,其中,所述N步相移条纹公式包括所述理想条纹图的平均亮度、亮度振幅、条纹波长和条纹偏移量。
在将理想条纹图烧录至光机进行投影之前,需要获取理想条纹图。在一些实施例中,可以通过特定的公式生成理想条纹图,或者还可以通过其他方式获取理想条纹图。
在本发明实施例中,通过N步相移条纹公式生成理想条纹图,其中,N步相移条纹公式为:
具体地,表示理想条纹图的像素坐标,/>表示理想条纹图中对应的像素坐标的灰度值,/>、/>和/>均为常数,/>表示理想条纹图的平均亮度,平均亮度是指理想条纹图中各个像素的亮度值(灰度值)的平均值。/>表示理想条纹图的亮度振幅,亮度振幅为相邻亮条纹和暗条纹之间的亮度差异的一半。/>表示理想条纹图的条纹波长,条纹波长是指相邻亮条纹或暗条纹之间的距离,通常以像素为单位表示。/>表示理想条纹图的条纹偏移量,条纹偏移量决定理想条纹图的起始位置,通常以像素为单位表示。由于光机的色彩深度为8位元颜色,分辨率为1920*1080,因此将平均亮度/>和亮度振幅/>均取值为127.5,条纹波长/>取值为1080,条纹偏移量/>取值为0。在确定平均亮度、亮度振幅、条纹波长和条纹偏移量的数值后,将平均亮度、亮度振幅、条纹波长和条纹偏移量等参数的数值输入到N步相移条纹公式中,使用计算机编程或图像处理工具生成对应的理想条纹图。容易理解地,可以根据具体的应用场景和要求,调整参数以获得所需的理想条纹图。
由于使用的光机的分辨率为1920*1080,因此,生成的理想条纹图的像素行数为1080,像素列数为1920。在实际生成理想条纹图的过程中,从坐标系的原点(0,0)开始,对理想条纹图的像素坐标依次计算灰度值,直至像素行数和像素列数达到理想条纹图的像素行列范围,最终获得理想条纹图的各个像素坐标的灰度值,并基于各个像素坐标的灰度值生成理想条纹图。
在一些实施例中,参阅图5所示,图5为本发明一些实施例提供的条纹图校正方法中步骤S300的一子流程示意图,所述基于所述灰度补偿值,对所述理想条纹图进行校正,得到校正后理想条纹图,包括但不限于以下步骤S310-S340:
S310:根据N步相移条纹公式生成所述理想条纹图,其中,所述N步相移条纹公式包括所述理想条纹图的平均亮度、亮度振幅、条纹波长和条纹偏移量。
在获得灰度补偿值后,由于之前生成的理想条纹图已经不能使用,因此需要重新生成理想条纹图。可以理解地,步骤S310生成理想条纹图的具体过程与步骤S100A相同,在此不做赘述。
S320:将大于所述理想条纹图的平均亮度的灰度值确定为需校正理想灰度值,将小于所述理想条纹图的平均亮度的灰度值确定为无需校正理想灰度值。
具体地,生成理想条纹图后,获取理想条纹图中各个像素的灰度值,并将各个像素的灰度值与理想条纹图的平均亮度逐一进行对比。根据对比结果,若某个像素的灰度值大于理想条纹图的平均亮度,则将该个像素的灰度值确定为需校正理想灰度值,若某个像素的灰度值小于理想条纹图的平均亮度,则将该个像素的灰度值确定为无需校正理想灰度值。即,将大于理想条纹图的平均亮度的各个像素的灰度值确定为需校正理想灰度值,对需校正理想灰度值进行灰度值的校正,将小于理想条纹图的平均亮度的各个像素的灰度值确定为无需校正理想灰度值,对无需校正理想灰度值不进行灰度值的校正。
S330:基于所述灰度补偿值,对各所述需校正理想灰度值进行校正,得到各校正后理想灰度值。
根据获得的灰度补偿值,将灰度补偿值应用于各个需校正理想灰度值。一般地,可以通过将各个需校正理想灰度值与灰度补偿值做数学运算,例如相加、相减或相乘等,以对各个需校正理想灰度值进行校正,获得对应的各个校正后理想灰度值。在一些实施例中,校正各个需校正理想灰度值时,还可以考虑校正方向,以确保准确校正各个需校正理想灰度值。
在一些实施例中,基于实际上半部曲线和拟合上半部曲线,计算获得灰度补偿值后,即,将拟合上半部曲线中各个像素的灰度值减去实际上半部曲线中对应的各个像素的灰度值,获得灰度补偿值后,所述基于所述灰度补偿值,对各所述需校正理想灰度值进行校正,得到各校正后理想灰度值,包括但不限于以下步骤S3301-S3302:
S3301:若所述灰度补偿值大于零,将各所述需校正理想灰度值分别加上所述灰度补偿值,获得经过校正的各所述校正后理想灰度值。
具体地,若灰度补偿值大于零,则表示实际曲线中实际上半部曲线向下偏移,在对实际上半部曲线对应的各个像素的灰度值(即各个需校正理想灰度值)进行校正时,将各个需校正理想灰度值分别加上灰度补偿值,得到经过校正的各个校正后理想灰度值。
S3302:若所述灰度补偿值小于零,将各所述需校正理想灰度值分别减去所述灰度补偿值的绝对值,获得经过校正的各所述校正后理想灰度值。
具体地,若灰度补偿值小于零,则表示实际曲线中实际上半部曲线向上偏移,在对实际上半部曲线对应的各个像素的灰度值(即各个需校正理想灰度值)进行校正时,将各个需校正理想灰度值分别减去灰度补偿值的绝对值,得到经过校正的各个校正后理想灰度值。
S340:基于所述校正后理想灰度值和所述无需校正理想灰度值,获得所述校正后理想条纹图。
在获得经过校正的各个校正后理想灰度值后,根据各个校正后理想灰度值和各个无需校正理想灰度值,将各个校正后理想灰度值应用到理想条纹图对应位置的像素,以和理想条纹图中各个无需校正理想灰度值对应位置的像素,一同映射到理想条纹图中对应位置的像素,重新构建理想条纹图,获得经过灰度值校正的校正后理想条纹图。请再次参阅图3f,图3f示出了图3b实施例所示理想条纹图经过校正得到的校正后理想条纹图。
综上所述,本发明实施例提供的条纹图校正方法方法,应用于光学检测设备,所述光学检测设备包括光机和相机,所述方法包括:将理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的实际条纹图,其中,所述实际条纹图存在灰度值跳变;基于所述实际条纹图,计算获取灰度补偿值;基于所述灰度补偿值,对所述理想条纹图进行校正,得到校正后理想条纹图;将所述校正后理想条纹图烧录至所述光机进行投影,获取所述相机基于投影画面拍摄的校正后实际条纹图。该方法通过对理想条纹图进行灰度值补偿,提高理想条纹图中灰度值的准确性,从而能快速准确地还原产品结构的三维结果,降低实际条纹图中灰度值跳变产生的不利影响。
本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,处理器运行所述计算机程序指令,以执行上述任一项条纹图校正方法,或上述任一项条纹图校正方法中任一种可能的实施方式中的步骤。
在一些实施例中,存储介质可以是闪存、硬盘、光盘、寄存器、磁表面存储器、可移动磁盘、CD-ROM、随机存储器(RAM)、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM等存储器,或本技术领域内所公知的任意其他形式的存储介质,也可以是包括上述存储介质之一或任意组合的各种设备。
在一些实施例中,计算机程序指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其他单元。
作为示例,计算机程序指令可以但不一定对应于文件系统中的文件,可被存储在保存其他程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机程序指令可被部署为在一个计算设备(包括智能终端和服务器在内的设备)上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点目通过通信网络互连的多个计算设备上执行。容易理解的是,上述本发明所提供的实施例描述的方法的全部或部分步骤,可以直接使用电子硬件或处理器可执行的计算机程序指令,或者二者的结合来实施。
技术人员可以理解地,本发明所提供的实施例仅是示意性的,实施例的方法中的各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,可以根据实际需要进行顺序调整、合并和删减,实施例的装置或系统中的模块或子模块、单元或子单元可以根据实际需要进行合并、划分和删减。例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者集成到另一个装置,或一些特征可以忽略,或不执行。
需要说明的是,以上实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据此实施,并不能以此来限定本发明的权利保护范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,依据本发明权利要求所做的均等变化与修饰,均应属于本发明权利要求的涵盖范围。