一种非接触三维成像测量方法、系统及计算机可读存储介质

文档序号:25590768发布日期:2021-06-22 17:07阅读:95来源:国知局
一种非接触三维成像测量方法、系统及计算机可读存储介质

本发明涉及一种非接触三维成像测量方法、系统及计算机可读存储介质。



背景技术:

在水动力学的物理实验研究中,往往要测量波浪传播过程中水面高度的变化,在传统的实验波浪水池内采用浪高仪来测量水面高度。但浪高仪有两个缺点:一个是浪高仪要与水体接触,因此会对波浪传播有一定影响;另一个是只能测量一点处的波面高度变化,在进行大范围测量和密集测量费时费事。若能进行非接触式且覆盖面更大的多点式测量,则能更有效的得到波浪运动时自由水面的高度变化,为科研生产提供更全面的数据。

现有技术的存在以下问题:

一、现有技术中,对相机每一时刻拍摄的图片都要进行全图片的图像学分析以得到标识点形心的二维坐标。由于图片分辨率一般较高,因此对每张图片进行全图片的图像学分析的计算量比较大。

二、现有技术中,是用透视变换算法将倾斜的光斑阵列校正为矩形。透视变换的算法是利用四个顶角的位置来进行图形变换,使不规则四边形变为矩形。但是当波浪的局部三维变形较大时,利用四个顶角位置进行透视变换处理后,光斑阵列的内部却无法规则的排列,在现有技术中为解决这个问题,光斑数量不能过于密集。这样当波浪的局部三维变形较大时,透视变换处理后的光斑阵列虽然在内部不规则,但因为光斑较少,还是可以按照一定方法进行排序。然而光斑较少就会导致三维重构技术的空间分辨率降低,无法得到足够密集的空间三维位置测量。

三、当测量区域较大时,将无法避免的引入相机镜头畸变误差,产生“近处物体大,远处物体小”的现象。尽管在标定过程中存在镜头畸变补偿系数,但在实际测量环境中存在多种可能影响测量结果的光学误差,包括镜头畸变在内的这些光学误差难以一次性全部处理。如果不进行其他补偿修正,则无法满足水动力学实验所要求的高精度测量。因此现有技术对波面的三维重构结果难以应用到精度要求较高的科研之中。

综上,现有技术无法“在大测量范围内对局部变形较大的水面进行快速的高精度测量”的问题。



技术实现要素:

针对现有技术无法解决“在大测量范围内对局部变形较大的水面进行快速的高精度测量”的问题,本发明所采用的技术方案是:

一种非接触三维成像测量方法,所述方法包括:

步骤1,通过对多层静水平面的重构结果进行插值,得到镜头畸变的补偿值;

步骤2,通过将标识点位置和顺序在相邻两张图片中自动继承,实现不规则光斑阵列的匹配,根据补偿值得到标识点的空间三维坐标。

其中,所述步骤1具体包括:

步骤1.1,相机标定,获取空间三维坐标与照片中二维像素坐标之间的映射关系矩阵r;

步骤1.2,确定静止水面上的特征标识点;

步骤1.3,基于映射关系矩阵r计算标识点形心并进行透视变换,将原始光斑阵列构成的不规则四边形图像改变为矩形,完成标识点的自动匹配;

步骤1.4,求解标识点三维坐标;

步骤1.5,将1.4中得到的所有标识点扣除其z向高度的平均值,进行空间曲面拟合,然后求出此位置处z向的误差补偿值。

如权利要求2所述的方法,其特征在于,所述步骤1具体还包括:

步骤1.6,更换水面高度,获取各个高度对应的误差补偿值;

步骤1.7,获取误差补偿值后,对每个空间位置(x,y)在z向上利用多平面进行插值。

其中,所述步骤1.5具体包括:

将步骤1.4中得到的所有标识点扣除其z向高度的平均值,基于拟合公式进行拟合,可拟合得到待定系数a~d;当待定系数a~d确定后;

所示拟合公式为:

根据静水面所处在的空间z向平面中的每个点(x,y),基于拟合公式求出z向的值,这个值就是镜头畸变在当前平面的误差补偿值。

其中,所述步骤2包括:

步骤2.1,获取动态波面照片;

步骤2.2,对第一张波面照片计算形心并进行透视变换;

步骤2.3,对下一张波面照片采用迭代算法搜索形心;

步骤2.4,自动匹配后求解标识点三维坐标;

步骤2.5,扣除误差补偿值;

步骤2.6,重复步骤重复2.3、2.4和2.5,以处理下一时刻的照片。

其中,所述步骤2.3包括:

从2.1拍摄的第二张照片开始,在处理新一个时刻的照片时,将前一张照片中每个标识点已精确确定的形心坐标作为新一个时刻照片的形心坐标。

其中,所述步骤2.4包括:

根据形心位置和自动匹配的标识点,结合标定结果求解得照片中每个标识点的空间三维坐标。

本发明还提供了一种非接触三维成像测量系统,所述系统包括:

补偿值计算模块,通过对多层静水平面的重构结果进行插值,得到镜头畸变的补偿值;

坐标计算模块,通过将标识点位置和顺序在相邻两张图片中自动继承,实现不规则光斑阵列的匹配,根据补偿值得到标识点的空间三维坐标。

本发明还提供了一种非接触三维成像测量系统,所述系统包括:

存储器,用于存储计算机程序,

处理器,用于调用存储器中的计算机程序以实现所述的方法。

本发明还提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序;当所述计算机程序被计算设备中的处理器调用时,使得所述计算设备执行所述的方法。

本发明的有益效果是:

1、可在大范围内精确测量水面的三维变化。利用多层静水面重构结果的插值作为畸变误差的补偿,可以进一步消除包括镜头畸变影响在内的多种光学误差。

2、可快速处理水面较大的局部变形。对于一个标识点,只需要利用上一张照片的对应结果在已知位置附近迭代重新计算形心,而无需对整张照片重新进行处理。这样不仅极大提升了计算效率,更重要的是面对水波表面的动态变化(当标识点的位置发生大幅偏移时),可以自动追踪标识点的形心位置,从而使得标识点在每个相机中的位置自动完成匹配。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明的优选实施例的方法流程图;

具体实施方式

现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

为便于本发明的理解,对涉及的术语进行说明:

水动力学:研究水及其他液体的运动规律及其与边界(如结构物)相互作用的学科。

浪高仪:在一个指定位置处测量和记录波浪高度的仪器。将其插进水中后,水面高度不同则其反馈的电压值不同。

图像三维重构:一般指利用不少于2个相机,对被观测物体表面的图形特征进行采集,一旦从图形特征中提取出标识点后,采用图像学处理算法便可在电脑中重构出物体表面每个标识点的三维位置,从而得到物体的三维形状。

标识点:这里指的是图像三维重构时,相机捕捉到物体表面的图形特征的中心位置。对于图像学处理算法而言,图形特征的作用是用来对物体表面进行标识,所以其中心位置则被称为标识点。

相机标定:在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。建立模型得到参数的过程就是相机标定。

形心:图形的几何中心。

图像后处理:对相机拍摄的照片进行数字化运算,以得到想要的图形信息。传统方法包括:降噪,二值化,开闭运算,计算形心等等。

透视变换:利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。在数学上可简单理解为:将一个图形按给定公式变换为另一个图形。

镜头畸变:光学透镜固有的透视失真的总称,会使得物体图像无法保持平面特性。举例来说,比如广角镜头拍物体,会有“近处物体大,远处物体小”的现象,就是由镜头畸变导致的失真。

拟合:是把平面上一系列的点,用一条光滑的曲线(面)连接起来。

插值:在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。这里指用来填充图像变换时像素之间的空隙。

如图1所示,本发明的一种非接触三维成像测量方法,所述方法包括:

步骤1,通过对多层静水平面的重构结果进行插值,得到镜头畸变的补偿值;

步骤2,通过将标识点位置和顺序在相邻两张图片中自动继承,实现不规则光斑阵列的匹配,根据补偿值得到标识点的空间三维坐标。

其中,第一步主要目的是通过对多层静水平面的重构结果进行插值,得到镜头畸变的补偿值来减小光学误差,具体方法如下:

1.1标定。将不少于两个的高速相机固定在波浪水池上方,得到公式(1)中空间三维坐标与照片中二维像素坐标之间的映射关系矩阵r。在波浪水池内选择采用“张正友标定法”,可以便捷快速的实现标定。

为进行非接触式且覆盖面更大的多点式测量,采用图像三维重构技术,即用多个相机从不同角度拍摄水面,通过对水面照片中有一定特征标识的图案进行图像学处理,即可以重构得到水面的三维形状。

图像三维技术的核心技术原理如公式(1)所示。

其中n代表第n台相机(n不小于2)。第一步为“标定”。通过对相机标定,得到每台相机所拍摄的照片中二维像素坐标(x,y)与三维空间坐标(x,y,z)的映射关系矩阵r。第二步为“识别”。利用相机拍摄空间物体后,通过图像处理,确定第i个空间标识点(xi,yi,zi)在所有n台相机图像中对应的二维像素坐标(xin,yin)。第三步“匹配”。对于每个标识点,需要在每台相机拍摄照片的很多标识点中,确定其对应的是哪一个。一旦确定,即可联列求解公式(1),得到第i个空间标识点的三维坐标(xi,yi,zi)。

其中在现有技术中,第一步“标定”是规范化的过程,并没有特别之处。三维重构的性能效果主要由第二步“识别”和第三步“匹配”确定。图像三维技术针对固体表面标识点的立体重构已经在很多领域得到了广泛应用(比如广为应用的双目立体重构技术),根本原因是固体表面的图形标识点容易捕捉(即容易确定其在所有照片中的二维像素坐标)。然而在水动力学领域中,水面运动时会使得水面标识点具有较为强烈的动态变化过程。标识点的无规则变形与移动使得难以高效的对其进行捕捉和匹配,从而使得传统的图像三维技术在应用中遇到困难。不仅如此,当拍摄范围和表面变形较大时,相机配套的广角相机会引入无法彻底消除的镜头畸变,导致镜头中心处的目标更近,而镜头四周的目标更远。虽然在“标定”过程中,镜头畸变误差有一定程度的消除。但当水波表面变形较大时,镜头误差仍会使得测量精度降低。

1.2拍摄静水面。所有相机同步拍摄水面静止状态下的水平面。注意,此时静水面上需要有特征标识点,可以通过激光或投影仪透射的方法得到。

1.3计算形心并进行透视变换。利用传统的图像后处理算法,得到每个标识点形心在图片中的二维坐标,即公式(1)中的(xin,yin)。由于此时水面静止,标识点排列规则,所以可利用公式(2)和(3)对图片进行透视变换,将原始光斑阵列构成的不规则四边形图像改变为矩形,完成标识点的自动匹配。

在公式(2)中,xn,yn为原始照片中光斑阵列四个顶点的二维坐标,为变换后指定矩形的四个顶点,可求得待定的全局变换系数a~h。将a~h代入公式(3),即可将原始四边形光斑阵列将变换为矩形阵列。在公式(3)中,xi,yi为原始照片任意像素的二维坐标,为透视变换后的像素坐标,w是任意的比例因子用来对图像进行放大或缩小。

1.4求解标识点三维坐标。利用1.1的标定结果和1.3的匹配结果,代入公式(1)后可求解得到求解即得到每个标识点的三维空间位置(xi,yi,zi)

1.5拟合空间曲面。由于光学误差的主要来源之一是镜头引起的畸变会使得在景深方向(一般为z向)上产生近大远小的情况,再考虑到相机底片的形状是矩形,因此镜头畸变引入的误差值在空间中可近似视为椭圆抛物面型。即1.4中求解得到的每个标识点的三维空间位置(xi,yi,zi),不会完美的处于同一个平面,而是会分布在一个类似于公式(4)形式的椭圆抛物面上。将1.4中得到的所有标识点扣除其z向高度的平均值,使所有点在z向上处于零基准面附近后代入公式(4)进行拟合,即可拟合得到待定系数a~d。当待定系数a~d确定后,对于当前静水面所处在的空间z向平面中的每个点(x,y),均可由公式(4)求出此位置处z向的值,这个值就是镜头畸变在当前平面的误差补偿值。换言之,在实际使用时,当三维重构得到一个标识点的空间坐标后,如果该坐标的z向高度等于当前静水面的z向高度,则应该根据本步骤中拟合得到椭圆抛物面方程,扣除其x、y坐标处对应的z向补偿值,便减小了以镜头畸变为主的光学误差。

1.6更换水面高度。1.5节仅是对一个静水面的重构结果进行光学误差的补偿。当水面波动较大时,需要在高度范围内对多个静水面进行光学误差的补偿,从而提升水面大波动时的重构精度。

1.7多静水面插值。为了进一步降低光学误差,这里使用一种多平面插值修正的方法。由于实际重构的z向高度不会正好落在1.6中选择的水面高度中,因此在得到多组水面的误差补偿值后,对每个空间位置(x,y)在z向上利用多平面进行插值,即可得到任意z向高度时的误差补偿值。

完成第一步后即可开始对波动的三维水面进行重构。第二步的主要方法是通过将标识点位置和顺序在相邻两张图片中自动继承,从而可快速实现不规则光斑阵列的匹配,进而得到标识点的空间三维坐标。具体实现步骤如下:

2.1拍摄动态波面。在第一步完成后,不要改变相机位置,用高速相机对有波浪运动的动态波面进行拍摄。注意,至少要确保初始状态下有一张图片是从水面静止时开始拍摄,即图1的状态。选择使用高速相机是为确保水波表面的动态过程在连续的照片中不会有明显的变化,为2.3准备。

2.2对第一张计算形心并进行透视变换。同1.3一样,但只在2.1拍摄的所有图片中只计算静水面的那一张。对于这一张,标识点阵列经过透视变换可变形为矩形。而在这一张之后,标识点阵列将因为水面波动而逐渐无法用透视变换保持整齐。

2.3对下一张采用迭代算法搜索形心。从2.1拍摄的第二张照片开始,在处理新一个时刻的照片时,不需要在整张照片内搜索来重新得到每个标识点的位置,而是采用一个迭代算法。实现方法为用前一张照片中每个标识点已精确确定的形心坐标为估计值,在新一张照片中只需要在以估计值为中心,在比每个标识点尺寸大几个像素的范围内重新用图形学处理方法寻找即可。之所以可以使用迭代算法处理动态过程,是因为使用了高速相机,所以标识点的位置在连续两张照片中不会发生较大移动,同时标识点的形状也不会发生明显变化。

2.4自动匹配后求解标识点三维坐标。2.3的迭代算法不仅让标识点形心的搜索识别过程得到了简化,匹配过程也不需要进行透视变化来实现。由于每一个标识点的位置都是由上一张对应点的位置迭代计算,因此标识点在计算机中的记录顺序也被继承。这样便使得新一张图片中每个标识点自动实现了在每个相机图片中的匹配。所以,即使此时标识点阵列在局部因为波浪动态运动而产生了偏移,使用2.3的形心迭代算法仍能保证标识点自动完成匹配。将形心位置和自动匹配的标识点,结合标定结果代入公式(1),即可求解得到新一张中每个标识点的空间三维坐标。

2.5扣除误差补偿值。对于2.4中得到的每个标识点的空间三维坐标值,在1.7中找到对应位置处的误差补偿值,扣除之后可得到最终的测量值。

2.6处理下一时刻的照片。重复2.3、2.4和2.5。一直到处理完2.1中拍摄的最后一张图片,完成全部处理。

本发明采用一种迭代识别法,追踪捕捉各标识点的动态位置。同时,在进行三维波面重构前,先利用椭圆抛物面方程对静水面的重构结果进行拟合,再用多层静水面的插值作为光学误差的补偿。从而可以快速准确的实现三维重构算法,利用公式(1)求解得到水面标识点的三维位置,为水动力学实验提供大范围、高精度的三维波面数据。

本发明还提供了一种非接触三维成像测量系统,所述系统包括:

补偿值计算模块,通过对多层静水平面的重构结果进行插值,得到镜头畸变的补偿值;

坐标计算模块,通过将标识点位置和顺序在相邻两张图片中自动继承,实现不规则光斑阵列的匹配,根据补偿值得到标识点的空间三维坐标。

本发明还提供了一种非接触三维成像测量系统,所述系统包括:

存储器,用于存储计算机程序,

处理器,用于调用存储器中的计算机程序以实现所述的方法。

本发明还提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序;当所述计算机程序被计算设备中的处理器调用时,使得所述计算设备执行所述的方法。

本发明的有益效果是:

1、可在大范围内精确测量水面的三维变化。利用多层静水面重构结果的插值作为畸变误差的补偿,可以进一步消除包括镜头畸变影响在内的多种光学误差。

2、可快速处理水面较大的局部变形。对于一个标识点,只需要利用上一张照片的对应结果在已知位置附近迭代重新计算形心,而无需对整张照片重新进行处理。这样不仅极大提升了计算效率,更重要的是面对水波表面的动态变化,可以自动追踪标识点的形心位置,从而使得标识点在每个相机中的位置自动完成匹配。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

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