一种基于质量图的多队列快速相位展开方法及系统
技术领域
本发明涉及三维测量领域,具体涉及一种基于质量图的多队列快速相位展开方法及系统。
背景技术
结构光视觉测量是一种新的物体三维表面形状的测量方法,以非接触、方便快速、精度高等特点,近年来在工业检测、虚拟现实、文物保护和医学工程等领域得到了广泛的应用。相位展开算法在非接触光学轮廓检测中有着非常大的作用,直接从相位图中获得的相位于-π到π之间,其称为包裹相位,需要选取一种合适的相位展开算法来获得对应的绝对相位。相位展开即是要在各个像素上增加2nπ。对于理想的包裹相位图,相位展开过程应该是与路径无关的。但是在实际应用中阴影、条纹不清晰、表面反光度不一致、边缘的不连续性等情况在条纹的获取过程中是难以避免的,使相位展开成为一个路径相关问题。
在相位展开的过程中,如果先展开的是包裹相位精度较低的点,那么误差会向后传递,导致误差的累积,表现为展开出的相位出现拉线,断层等情况。故采用质量图来引导相位展开的过程,先展开包裹相位精度较高的点,再展开精度较低的点。传统的基于质量图导向的相位展开过程采用洪水法进行相位展开,每次将新的点加入展开队列会进行排序(即优先对列),而排序将耗费大量时间,故基于传统质量图导向洪水法的相位展开速度较慢。
发明内容
本发明所要解决的技术问题是,提供一种基于质量图的多队列快速相位展开方法及系统,在不牺牲精度的前提下提高相位展开速度。本发明是这样实现的:
一种基于质量图的多队列快速相位展开方法,包括如下步骤:
步骤A:捕获将数字条纹光投影到被测物上形成的条纹图,并对其进行计算,得出包裹相位图;
步骤B:根据所述包裹相位图计算质量图;
步骤C:将质量图中各节点按质量值高低划分为若干质量等级,高质量等级的节点的质量值大于低质量等级的节点的质量值,同时,创建与质量等级级数相等数量的队列用于分别存放各质量等级的节点;
步骤D:从各节点中选择一个节点作为相位展开的起始节点,将起始节点的左、上、右、下四个相邻节点进行相位展开,并将该四个相邻节点的左、上、右、下相邻节点中相位未展开的节点存放到与各自质量等级对应的队列中;
步骤E:按质量等级由高到低的顺序检索各队列,当检索到不为空的队列时,从该不为空的队列中取出一个节点进行相位展开,同时,将该节点的左、上、右、下四个相邻节点也进行相位展开,并将该四个相邻节点的左、上、右、下相邻节点中相位未展开的节点存放到与各自质量等级对应的队列中;
步骤G:重复步骤E直至所有队列为空,相位展开结束,得到绝对相位图。
进一步地,所述起始节点为最高质量等级的节点中离所述质量图的中心最近的节点。
进一步地,所述质量图为最大相位梯度质量图。
进一步地,所述步骤C中,根据s=ths+2(n-1)σ将质量图中各节点按质量值高低划分为若干质量等级;其中,n为质量等级;s为质量等级为n时的质量值阈值;ths为质量图的均值;σ为质量图的标准差。
进一步地,各队列均为先进先出队列;所述步骤E中,当检索到不为空的队列时,按先进先出原则从该不为空的队列中取出一个节点进行相位展开。
一种基于质量图的多队列快速相位展开系统,包括:
包裹相位图计算单元,用于捕获将数字条纹光投影到被测物上形成的条纹图,并对其进行计算,得出包裹相位图;
质量图计算单元,用于根据所述包裹相位图计算质量图;
质量等级划分单元,用于将质量图中各节点按质量值高低划分为若干质量等级,高质量等级的节点的质量值大于低质量等级的节点的质量值;
队列创建单元,用于创建与质量等级级数相等数量的队列用于分别存放各质量等级的节点;
相位展开单元,其包括:
起始节点选择子单元,用于从各节点中选择一个节点作为相位展开的起始节点;
队列检索及相位展开子单元,用于将起始节点的左、上、右、下四个相邻节点进行相位展开,并将该四个相邻节点的左、上、右、下相邻节点中相位未展开的节点存放到与各自质量等级对应的队列中;以及按质量等级由高到低的顺序检索各队列,当检索到不为空的队列时,从该不为空的队列中取出一个节点进行相位展开,同时,将该节点的左、上、右、下四个相邻节点也进行相位展开,并将该四个相邻节点的左、上、右、下相邻节点中相位未展开的节点存放到与各自质量等级对应的队列中;重复检索各队列,直至所有队列为空,相位展开结束,得到绝对相位图。
进一步地,所述起始节点为最高质量等级的节点中离所述质量图的中心最近的节点。
进一步地,所述质量图为最大相位梯度质量图。
进一步地,所述质量等级划分单元中,根据s=ths+2(n-1)σ将质量图中各节点按质量值高低划分为若干质量等级;其中,n为质量等级;s为质量等级为n时的质量值阈值;ths为质量图的均值;σ为质量图的标准差。
进一步地,各队列均为先进先出队列;所述步骤E中,当检索到不为空的队列时,按先进先出原则从该不为空的队列中取出一个节点进行相位展开。
与现有技术相比,本发明以质量图引导相位展开过程,有效避免了噪声及低质量区域对相位展开精度的影响。同时,本发明通过创建与质量等级级数相等数量的队列用于分别存放各质量等级的节点,避免了以传统洪水算法进行相位展开的过程中每次有节点加入队列时的排序过程,大大提高了相位展开的速度。
附图说明
图1:本发明基于质量图的多队列快速相位展开方法流程示意图;
图2:本发明实施例中将数字条纹光投影到被测物上形成的条纹图;
图3:本发明实施例中对条纹图计算得到的包裹相位图;
图4:本发明实施例中计算得出的质量图;
图5:本发明实施例以灰度表示的相位展开后的绝对相位图;
图6:本发明基于质量图的多队列快速相位展开系统组成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
如图1所示,本发明提出的基于质量图的多队列快速相位展开方法包括如下步骤:
步骤A:捕获将数字条纹光投影到被测物上形成的条纹图,并对其进行计算,得出包裹相位图。数字条纹光可为正弦数字条纹光,可通过可编程数字3D投影仪将正弦数字条纹光投影到被测物上形成条纹图,形成的条纹图如图2所示。可通过安装于工业相机上的远心镜头通过6步相移来捕获条纹图。包裹相位图(如图3所示)以反正切函数表示,即:
步骤B:根据包裹相位图计算质量图,质量图如图4所示。质量图可采用最大相位梯度质量图。其计算公式为:qi,j=max{max{{|Δx i,j|}(k×k),max{{|Δy i,j|}(k×k)},其中,k为中心的方形窗口的尺寸,Δx i,j,Δy i,j为x方向和y方向的包裹相位梯度。
步骤C:将质量图中各节点按质量值高低划分为若干质量等级,高质量等级的节点的质量值大于低质量等级的节点的质量值,同时,创建与质量等级级数相等数量的队列用于分别存放各质量等级的节点。可根据s=ths+2(n-1)σ将质量图中各节点按质量值高低划分为若干质量等级;其中,n为质量等级;s为质量等级为n时的质量值阈值;ths为质量图的均值;σ为质量图的标准差。一般而言,划分3个质量等级就可满足要求,即质量等级级数为3级。当质量等级级数为3级时,队列数量相应地为3个,用于分别存放这3个质量等级的节点。
步骤D:从各节点中选择一个节点作为相位展开的起始节点,将起始节点的左、上、右、下四个相邻节点进行相位展开,并将该四个相邻节点的左、上、右、下相邻节点中相位未展开的节点存放到与各自质量等级对应的队列中。选取起始节点时,可以从最高质量等级的节点中选取离质量图的中心最近的节点作为起始节点。相位展开时,从起始节点开始,将起始节点按照其左、上、右、下的次序扩展到其周围四个节点,并将该四个节点按照如下公式进行相位展开:
其中φ(i,j)为未展开时的相位,为展开后的相位,Δφ为相位差。每当一节点进行相位展开后,可将该节点标记为已展开。
步骤E:按质量等级由高到低的顺序检索各队列,当检索到不为空的队列时,从该不为空的队列中取出一个节点进行相位展开,同时,将该节点的左、上、右、下四个相邻节点也进行相位展开,并将该四个相邻节点的左、上、右、下相邻节点中相位未展开的节点存放到与各自质量等级对应的队列中。在此,各队列可均为先进先出队列。当各队列均为先进先出队列时,在该步骤中,当检索到不为空的队列时,按先进先出原则从该不为空的队列中取出一个节点进行相位展开。
步骤G:重复步骤E直至所有队列为空,相位展开结束,得到绝对相位图。图5为以灰度表示的相位展开后得到的绝对相位图。
基于上述方法,本发明还提供了一种基于质量图的多队列快速相位展开系统。如图6所示,该系统包括包裹相位图计算单元1、质量图计算单元2、质量等级划分单元3、队列创建单元4及相位展开单元5。相位展开单元5包括起始节点选择子单元501、队列检索及相位展开子单元502。
包裹相位图计算单元1用于捕获将数字条纹光投影到被测物上形成的条纹图,并对其进行计算,得出包裹相位图。数字条纹光可为正弦数字条纹光,可通过可编程数字3D投影仪将正弦数字条纹光投影到被测物上形成条纹图,形成的条纹图如图2所示。可通过安装于工业相机上的远心镜头通过6步相移来捕获条纹图。包裹相位图(如图3所示)以反正切函数表示,即:
质量图计算单元2用于根据包裹相位图计算质量图,质量图如图4所示。质量图可采用最大相位梯度质量图。其计算公式为:qi,j=max{max{{|Δx i,j|}(k×k),max{{|Δy i,j|}(k×k)},其中,k为中心的方形窗口的尺寸,Δx i,j,Δy i,j为x方向和y方向的包裹相位梯度。
质量等级划分单元3用于将质量图中各节点按质量值高低划分为若干质量等级,高质量等级的节点的质量值大于低质量等级的节点的质量值。可根据s=ths+2(n-1)σ将质量图中各节点按质量值高低划分为若干质量等级;其中,n为质量等级;s为质量等级为n时的质量值阈值;ths为质量图的均值;σ为质量图的标准差。
队列创建单元4用于创建与质量等级级数相等数量的队列用于分别存放各质量等级的节点。一般而言,划分3个质量等级就可满足要求,即质量等级级数为3级。当质量等级级数为3级时,队列数量相应地为3个,用于分别存放这3个质量等级的节点。
起始节点选择子单元501用于从各节点中选择一个节点作为相位展开的起始节点;
队列检索及相位展开子单元502用于将起始节点的左、上、右、下四个相邻节点进行相位展开,并将该四个相邻节点的左、上、右、下相邻节点中相位未展开的节点存放到与各自质量等级对应的队列中;以及按质量等级由高到低的顺序检索各队列,当检索到不为空的队列时,从该不为空的队列中取出一个节点进行相位展开,同时,将该节点的左、上、右、下四个相邻节点也进行相位展开,并将该四个相邻节点的左、上、右、下相邻节点中相位未展开的节点存放到与各自质量等级对应的队列中;重复检索各队列,直至所有队列为空,相位展开结束,得到绝对相位图。选取起始节点时,可以从最高质量等级的节点中选取离质量图的中心最近的节点作为起始节点。相位展开时,从起始节点开始,将起始节点按照其左、上、右、下的次序扩展到其周围四个节点,并将该四个节点按照如下公式进行相位展开:
其中φ(i,j)为未展开时的相位,为展开后的相位,Δφ为相位差。每当一节点进行相位展开后,可将该节点标记为已展开。在此,各队列可均采用先进先出队列,当检索到不为空的队列时,按先进先出原则从该不为空的队列中取出一个节点进行相位展开。图5为以灰度表示的相位展开后得到的绝对相位图。
本发明的优势在于:
1、采用质量图引导相位展开过程,可以有效避免噪声及低质量区域对相位展开精度的影响。
2、对质量图的质量等级划分采取均值、标准差的方式,完全实现质量图等级的自动划分。
3、采用洪水算法进行相位展开,能够避免等级间区域不连通问题。(不连通则从下一等级的队列中取出节点进行相位展开,每次展开时依次检查各等级队列是否为空情况)。
4、在尽量不牺牲相位展开精度的前提下,避免了传统的洪水算法进行相位展开的过程中每次节点加入队列时的排序过程,大大的提高了相位展开的速度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。