一种多测量模式的三维测量方法技术领域
本发明涉及三维数字成像领域,具体涉及一种多测量模式的三维测量方法。
背景技术
对物体表面进行非接触三维测量的技术,已经在工业、医疗、艺术、教育等很多领
域得到了广泛的应用。不同领域的应用对三维测量的技术要求都不一样。比如,汽车工业要
求三维测量的数据精度要高,数据细节要清楚;人体三维测量要求快速的获取人体三维数
据,需要测量系统具有手持功能,精度要求较低;大型雕塑的三维测量要求测量系统具有手
持功能,同时数据精度较高,数据有一定的细节。
目前已知的三维扫描仪及其测量方法都不能很好地将满足上述要求。比如中国发
明专利专利CN1483999A公开了测量物体三维表面轮廊的方法及系统,利用编码光和相移的
三维测量系统,可以实现高精度的三维测量。但是该方法及系统采用多幅图片进行三维重
建,不能实现手持功能。同时,现在也有一些三维扫描仪能够使用一台设备进行多种扫描模
式的测量。但是,多种模式的扫描是独立进行的,其测量的数据不能进行处理、融合和优化,
只是相当于把几种扫描模式简单地集中到一台设备上。在这种情形下,采用多种扫描模式
对测量结果的优化并无多少帮助。
发明内容
本发明解决的技术问题在于提供一种多测量模式的三维测量方法,用于多测量模
式的三维测量系统的数据处理,通过对多种测量模式测得的数据进行融合和优化,实现高
细节、高精度的三维测量。
具体的,所述的多测量模式的三维测量方法包括如下步骤:
S1、建立统一的数据结构模型,所述统一的数据结构模型用于对多种测量模式获
得的测量数据进行统一表示;
S2、在单个测量模式下,对测量得到的每一片点云使用所述统一的数据结构表达,
并进行计算和预处理;
S3、对不同测量模式获得的数据进行拼接,将任意位置的两片点云对齐到统一的
坐标系;
S4、对拼接后的数据进行混合全局优化,得到测量结果。
进一步的,步骤S1中,多种测量模式包括:正弦条纹测量、数字散斑测量、多根平行
直线测量。
进一步的,步骤S1具体包括:
对于多种测量模式获得的测量数据,使用连续的隐函数D(x)进行表达,其中,x∈
R3表示三维空间中的位置,D(x)表示x到被测量物体表面的最短距离,D(x)=0所表示的连
续曲面即测量得到的物体的表面。
进一步的,步骤S2中,计算和预处理具体包括:
S21、使用一个包围测量区域的正方体G作为D(x)的作用域,将正方体G均匀剖分成
同等大小的小正方体gi;
S22、对测量得到的点云中的每个点(Pj,Nj),找到Pj所在的小正方体gPj,其中,Pj为
点的三维坐标,Nj为点的法向量;
S23、对每个gPj及以gPj为中心的n3个gi,分别计算距离值D(xi)和距离值的置信权
重W(xi);
D(xi)=Nj·(xi-Pj) (1)
其中,1<n≤10,xi表示参与计算的gPj及gi的中心点,D(xi)表示xi到被测量物体表
面的最短距离,在物体的外面为正值,在物体的里面为负值,W(xi)表示D(xi)的可信度,dg为
gi的边长;
S24、使用移动立方体法(Marching Cube)获得点云和网格结果。
进一步的,还包括:
S25、若测量得到的多片点云中的点重复落在同一个gi中,则逐次计算所述距离值
D(xi)和距离值的置信权重W(xi):
W*(xi)=W(xi)+w(xi) (4)
其中,D(xi)表示更新前的距离值,W(xi)更新前的置信权重,d(xi)表示最近一次计
算得到的距离值,w(xi)表示最近一次计算得到的置信权重,D*(xi)表示更新后的距离值,W*
(xi)表示更新后的置信权重;
之后,使用移动立方体法(Marching Cube)获得点云和网格结果。
进一步的,还包括:
S26、若测量得到的多片点云中的点重复落在同一个gi中,则逐次计算所述距离值
D(xi)和距离值的置信权重W(xi),测量结束后,对于每个gi,使用加权平均的方法得到最终
的Df(xi)和Wf(xi):
Wf(xi)=∑Wj(xi) (6)
其中,Dj(xi)和Wj(xi)为多片点云中的点第j次重复落在同一个gi中时计算得到的
值;之后,使用移动立方体法(Marching Cube)获得点云和网格结果。
进一步的,当测量模式为多根平行直线测量时,测量过程中得到的测量数据不进
行实时计算更新,只通过抽样的方式进行显示,指导用户测量;
当测量结束后,将测量得到的所有点云放在统一的全局坐标系下,然后,计算所有
点云的法向量,之后统一进行距离值D(xi)及距离值的置信权重W(xi)的计算。
进一步的,计算所有点云的法向量时,使用主成分分析计算每个点的法向量,具体
使用如下公式:
M(p)=∑(qi-C(p))·(qi-C(p))T (8)
其中,p为待计算法向量的点,qi为p特定邻域内的点,M(p)为协方差矩阵,其最小
特征值对应的特征向量即为p的法向量;将法向量朝向相机的方向定为法向量的方向。
进一步的,步骤S3中,对不同测量模式获得的数据进行拼接包括粗拼接和精确拼
接,所述粗拼接的方法包括手动选择拼接、标志点拼接、特征拼接,所述精确拼接的方法包
括迭代就近点法。
进一步的,步骤S4具体包括:
S41、在测量数据的两帧之间寻找点云和标志点的对应点;
S42、最小化误差公式,获得每帧点云的刚体变化矩阵;
S43、将刚体变换矩阵乘到每帧点云上,迭代该过程直到收敛。
进一步的,步骤S42中,使用的误差公式为:
其中,(pk,qk)为(i,j)的对应点,(Pk,Qk)为(i,j)的对应标志点,nk为qk的法向量,
RTi为第i片点云的刚体变换矩阵,RT为所有点云的刚体变换矩阵,和分别为点云对
应点和标志点对应点的权重。
进一步的,当i,j中有一帧是多根平行直线测量数据时,则设
本发明的多测量模式的三维测量方法,对多种测量模式测量的数据使用了连续的
隐函数D(x)作统一的数据结构管理和表达,从而达到了不同测量模式切换的目的。同时,使
用正方体包围用户测量区域,并将该正方体进行均匀剖分,以实现D(x)的离散表达,作为后
续的数据处理的基础。本发明的多测量模式的三维测量方法,实现了多种测量模式下测量
数据的实时融合,实现了高细节、高精度的三维测量。
在实际应用中,用户结合多种测量模式可以方便而快捷地完成测量任务。例如,在
测量等人高的雕塑作品时,对于人脸部分用数字散斑测量模式可以快速获取数据;对于文
字、褶皱丰富的服饰、饰品等部分可以使用多根平行直线测量模式快速获取高精度的数据,
对于尺寸较小(<15cm)的孤立雕塑部件,如茶壶、茶杯等,可以使用正弦条纹测量模式获取
高精度三维数据。
附图说明
图1为本发明的多测量模式的三维测量方法中D(x)的离散化表示示意图。
具体实施方式
为了进一步理解本发明,下面结合实施例对本发明优选实施方案进行描述,但是
应当理解,这些描述只是为进一步说明本发明的特征和优点,而不是对本发明权利要求的
限制。
本发明提供了一种用于处理物体表面三维数据的多测量模式的三维测量方法,能
够对多种测量模式的测量数据进行实时融合,以实现高细节、高精度的三维测量。
下面通过优选实施方式对该方法进行详细的说明:
首先,该方法采用统一的数据结构来对测量数据进行数据结构管理和表达。
具体的,对于正弦条纹测量、数字散斑测量、多根平行直线测量这三种测量模式获
得的测量数据,使用一种统一的数据结构管理和表达,以达到不同测量测量切换的目的。在
测量过程中,维护一个连续的隐函数D(x),其中x∈R3表示三维空间中的位置,D(x)表示x到
被测量物体表面的最短距离。当使用任意测量模式,新测量一片数据后,使用这片数据来改
变D(x)的值,达到数据融合的目的。当测量结束后,D(x)=0所表示的连续曲面即测量得到
的物体的表面。
由于计算机中无法表达连续的数据,所以需要对D(x)离散表达。本实施例中,使用
一个正方体G包围用户测量的区域,将正方体作为D(x)的作用域。将G均匀剖分成同等大小
的小正方体gi(如果G的的边长为512,gi的边长为1,则将获得5123个小正方体)。每个gi的中
心点xi记录两个值D(xi)和W(xi)。D(xi)表示xi到物体表面的最短距离,在物体的外面为正
值,在物体的里面为负值(如图1所示)。W(xi)是累计的权重,表示D(xi)的可信度。W(xi)的值
越大说明D(xi)的越可信。
初始化时,D(xi)和W(xi)都为0。在一种测量模式下,当新测量一片数据后,数据中
的每个点(Pj,Nj)分别在G中融合,其中Pj为点的三维坐标,Nj为点的法向量。
首先,找到Pj所在的小正方体gPj。优选的,本实施例中,仅仅改变以gPj为中心的53
个gi的值,这样将极大的节省存储空间和运算时间。
对于每一个需要改变的gi,根据以下公式计算有符号的距离值D(xi)和距离值的置
信权重W(xi):
D(xi)=Nj·(xi-Pj)
其中,dg为gi的边长。物体表面一个点Pj邻近的曲面,可以使用该点的法平面近似
表示,所以Pj附近空间中一点xi到物体表面的最短距离,可以使用xi到Pj法平面的距离近似
表示。当xi到Pj的距离越远,D(xi)的近似值越不准确,所以W(xi)同xi到Pj的距离成反比。本
实施例中,W(xi)∈[10,0.08]。
当测量结束后,对于每个gi,可以使用加权平均的方法,得到最终的Df(xi)和Wf
(xi):
Wf(xi)=∑Wj(xi)
其中,Dj(xi)和Wj(xi)为多片点云中的点第j次重复落在同一个gi中时计算得到的
值。
为了保证D(x)的实时更新,将上述公式改写成累加的方式:
W*(xi)=W(xi)+w(xi)
其中,D(xi)表示更新前的距离值,W(xi)更新前的置信权重,d(xi)表示最近一次计
算得到的距离值,w(xi)表示最近一次计算得到的置信权重,D*(xi)表示更新后的距离值,W*
(xi)表示更新后的置信权重。
在测量过程中或者测量结束后,都可以使用移动立方体(MarchingCube)方法获得
点云和网格结果。
在数据融合时,需要知道单片数据中每个点的法向量。正弦条纹测量和数字散斑
测量模式得到的是有序点云,法向量容易计算。但是多根平行直线测量模式得到的是直线
分布的点云,仅仅利用单帧点云数据,无法计算法向量。因此,本发明的测量方法中,多根平
行直线测量过程中不进行融合,仅仅通过抽样的方式进行显示,指导用户测量。当测量结束
后,将测量得到的所有点云放在统一的全局坐标系下,然后,计算所有点云的法向量,最后,
一起融合。本发明的方法中,使用主成分分析计算每个点的法向量。具体公式是:
M(p)=∑(qi-C(p))·(qi-C(p))T
其中p为带计算法向量的点,qi为p特定邻域内的点,M(p)为协方差矩阵,其最小特
征值对应的特征向量即为p的法向量。然后,将法向量朝向相机的方向定为法向量的方向。
寻找邻域内的点是比较耗时的,本实施例中使用了上述的均匀剖分的数据结构,加速了邻
域内点的寻找。
之后,进行不同测量数据之间的拼接。
点云拼接是将任意位置的两片点云对齐到统一的坐标系的过程。完整的拼接过程
一般分为两步:粗拼接和精确拼接。粗拼接指将任意位置的两片点云粗略对齐的过程。在当
前场景下能够使用的粗拼接的方法有手动选择拼接、标志点拼接、特征拼接。手动选择拼接
是指通过人工交互完成粗略对齐,这种方法非常稳定,但是比较耗时,需要额外的工作量。
对于实时的测量场景,无法通过这种方式进行粗拼接。标志点拼接是指通过在被测量物体
表面粘贴标记,来指导点云对齐的方法。这种方法非常稳定,速度快,但是对于无法粘贴标
记的被测量体(比如人体,古董等),该方法将无法使用。精确拼接是指将粗略对齐的两片点
云精确对齐的过程。精确拼接最通用的方法是ICP(Iterative closest point)。ICP的基本
原理是迭代优化两片点云中的对应点,使对应点的距离和最小。
如果测量的数据不经过拼接,将无法融合,测量仪使用者也无法随时观察测量的
情况,例如还有哪些地方没有测量到。测量模式切换后的第一帧,就需要完成拼接过程。也
就是说拼接的主体是D(x)中提取的点云和一帧点云数据。如果切换到正弦条纹测量模式,
标志点拼接、特征拼接、手动选择拼接都可以使用。如果切换到数字散斑测量模式,由于该
模式是实时测量,所以手动选择拼接不可以使用。如果切换到多根平行直线测量模式,同样
由于是实时测量,手动选择拼接不能使用。由于一帧数据量非常小,特征拼接也无法使用。
所以只能使用标志点拼接。
最后,进行测量数据的混合全局优化。
上述的拼接是当前帧同融合后数据的两两优化过程。如果被测量物体过大,或者
帧数太多,极易产生累计误差。累计误差影响整体的精度。如果存在回路的话,在回路相交
处,可能会产生大形变或者错层。所以需要全局优化的过程。
多根平行直线测量模式中,单帧的数据量非常少,所以无法利用点云信息进行全
局优化。标志点全局优化可以将三种模型的数据组织起来,但是也存在诸多问题。1)由于没
有利用点云信息,由于优化后的局部细节不好;2)当进行无标志点测量时,该方法将不能使
用。
基于上述考虑,使用标志点和点云的联合全局优化方法。首先,两两帧之间寻找点
云和标志点的对应点。然后,最小化误差公式,获得每帧点云的刚体变化。最后,将刚体变换
作用到每帧点云上,迭代该过程直到收敛。使用的误差公式是:
其中,(pk,qk)为(i,j)的对应点,(Pk,Qk)为(i,j)的对应标志点,nk为qk的法向量,
RTi为第i片点云的刚体变换矩阵。RT为所有点云的刚体变换矩阵。和分别为点云对
应点和标志点对应点的权重。当i,j中有一帧是多根平行直线测量,则设当都
等于0时,该算法就变成了纯标志点全局优化。当都等于0时,该算法就变成了纯点云全
局优化。
以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对
于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行
若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。