基于立体视觉的三维重建的点云误差补偿方法及系统转让专利

申请号 : CN202110297258.2

文献号 : CN112991464B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡天亮刘忠强段岳飞

申请人 : 山东大学

摘要 :

本公开提出了基于立体视觉的三维重建的点云误差补偿方法及系统,包括:获得从多个位置拍摄的标定板的图片并基于上述图片重建出三维点云数据;基于重建出三维点云数据求取实际坐标点集,将实际坐标点集与求取的理论点集差值作为点云的重建误差并建立误差模型;对实际物体进行三维扫描重建时,利用误差模型对扫描得到的点云数据进行误差补偿,获得补偿后的点云坐标。本发明提供的点云补偿方法对三维重建的最终结果三维点云进行标定,得到误差映射模型,通过误差预测和补偿,提高了三维重建的精度。

权利要求 :

1.基于立体视觉的三维重建的点云误差补偿方法,其特征是,包括:获得从多个位置拍摄的标定板的图片并基于上述图片重建出三维点云数据;

重建出三维点云数据,具体为:

建立二维棋盘格坐标系;

标记处棋盘格内角点;

使用立体视觉相机同时采集标定板图片,利用立体视觉技术重建出该位置的棋盘格内角点三维点云坐标;

带动棋盘格图像等间距移动k次,并对每个位置的棋盘格内角点进行重建,得到立体视觉坐标系下的k幅点云;

基于重建出三维点云数据求取实际坐标点集,将实际坐标点集与求取的理论点集差值作为点云的重建误差并建立误差模型;重建出三维点云数据之后求取实际坐标点集,具体为:建立空间三维设计坐标系,构建位于位于XOY平面内的棋盘格角点坐标集,计算从棋盘格第一个位置的点云到棋盘格角点坐标集的刚度变换矩阵,将得到的k幅点云使用刚度变换矩阵转换到空间三维设计坐标系下,即得到实际坐标点集坐标;

求取理论点坐标的具体步骤为:对实际三维点集进行估计得到平面的移动方向向量,将得到的棋盘格角点坐标点集沿着移动方向向量以间隔移动k次得到理论点集坐标;

对实际物体进行三维扫描重建时,利用误差模型对扫描得到的点云数据进行误差补偿,获得补偿后的点云坐标。

2.如权利要求1所述的基于立体视觉的三维重建的点云误差补偿方法,其特征是,获得从多个位置拍摄的标定板的图片之前,使用棋盘格和张氏标定法进行相机及系统标定,得到相机之间的空间外参数和两个相机各自的内参数。

3.如权利要求1所述的基于立体视觉的三维重建的点云误差补偿方法,其特征是,建立误差模型时,以得到实际点集的坐标作为输入数据集,以得到的重建误差作为输出数据集,通过训练得到具体的坐标和误差之间的映射关系即获得坐标—误差映射神经网络,完成误差的预测。

4.如权利要求1所述的基于立体视觉的三维重建的点云误差补偿方法,其特征是,上述点云误差补偿方法用于3D打印工序。

5.基于立体视觉的三维重建的点云误差补偿系统,其特征是,包括:三维点云数据重建模块,用于获得从多个位置拍摄的标定板的图片并基于上述图片重建出三维点云数据;

重建出三维点云数据,具体为:

建立二维棋盘格坐标系;

标记处棋盘格内角点;

使用立体视觉相机同时采集标定板图片,利用立体视觉技术重建出该位置的棋盘格内角点三维点云坐标;

带动棋盘格图像等间距移动k次,并对每个位置的棋盘格内角点进行重建,得到立体视觉坐标系下的k幅点云;

误差模型获得模块,用于基于重建出三维点云数据求取实际坐标点集,将实际坐标点集与求取的理论点集差值作为点云的重建误差并建立误差模型;重建出三维点云数据之后求取实际坐标点集,具体为:建立空间三维设计坐标系,构建位于位于XOY平面内的棋盘格角点坐标集,计算从棋盘格第一个位置的点云到棋盘格角点坐标集的刚度变换矩阵,将得到的k幅点云使用刚度变换矩阵转换到空间三维设计坐标系下,即得到实际坐标点集坐标;

求取理论点坐标的具体步骤为:对实际三维点集进行估计得到平面的移动方向向量,将得到的棋盘格角点坐标点集沿着移动方向向量以间隔移动k次得到理论点集坐标;

补偿后的点云坐标获得模块,对实际物体进行三维扫描重建时,利用误差模型对扫描得到的点云数据进行误差补偿,获得补偿后的点云坐标。

6.一种计算装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征是,所述处理器执行所述程序时实现上述权利要求1‑4任一所述的方法的步骤。

7.一种计算机可读存储介质,其上存储有计算机程序,其特征是,该程序被处理器执行权利要求1‑4任一所述方法的步骤。

说明书 :

基于立体视觉的三维重建的点云误差补偿方法及系统

技术领域

[0001] 本公开属于三维视觉、非接触测量与逆向工程技术领域,尤其涉及基于立体视觉的三维重建的点云误差补偿方法及系统。

背景技术

[0002] 立体视觉技术是依靠一对相机或多对相机利用三角测量原理从二维图像信息中估计目标物体的三维坐标信息。而立体视觉结构光系统是在立体视觉的基础上增加了结构光投射设备,通过投影条纹,散斑等图案到目标物体上,从而增加纹理,提高匹配的精度,可以获得更高精度和更高密度的三维信息。近年来,三维重建技术已经用于测量、逆向工程、医疗等各个领域,其中立体视觉和立体视觉结构光三维重建技术具有快速、高效、非接触等优点获得了广泛的应用。
[0003] 发明人发现,立体视觉和立体视觉结构光三维重建技术的精度与相机标定和系统标定的精度息息相关,但是目前的标定方法大多采用参数估计并迭代优化的方法来计算标定结果,不可避免的存在误差;另外由于标定的结果会在后续的重建过程中用于图片的矫正和投影参数的计算,导致标定误差在这些过程中传递,多种误差耦合在一起,共同影响了重建的精度,导致重建出来的点云模型存在较大的误差。

发明内容

[0004] 为克服上述现有技术的不足,本公开提供了基于立体视觉的三维重建的点云误差补偿方法及系统,对立体视觉三维重建的点云数据的误差进行补偿,进而提高三维重建的精度,获得扫描对象更高精度的点云数据,从而更好的指导后续的测量或加工工序的方法。
[0005] 为实现上述目的,本公开的一个或多个实施例提供了如下技术方案:
[0006] 第一方面,公开了基于立体视觉的三维重建的点云误差补偿方法,包括:
[0007] 获得从多个位置拍摄的标定板的图片并基于上述图片重建出三维点云数据;
[0008] 基于重建出三维点云数据求取实际坐标点集,将实际坐标点集与求取的理论点集差值作为点云的重建误差并建立误差模型;
[0009] 对实际物体进行三维扫描重建时,利用误差模型对扫描得到的点云数据进行误差补偿,获得补偿后的点云坐标。
[0010] 进一步的技术方案,获得从多个位置拍摄的标定板的图片之前,使用棋盘格和张氏标定法进行相机标定,得到相机之间的空间外参数和两个相机各自的内参数。
[0011] 进一步的技术方案,重建出三维点云数据,具体为:
[0012] 建立二维棋盘格坐标系;
[0013] 标记处棋盘格内角点;
[0014] 使用立体视觉相机同时采集标定板图片,利用立体视觉技术重建出该位置的棋盘格内角点三维点云坐标;
[0015] 带动棋盘格图像等间距移动k次,并对每个位置的棋盘格内角点进行重建,得到立体视觉坐标系下的k幅点云。
[0016] 进一步的技术方案,重建出三维点云数据之后求取实际坐标点集,具体为:
[0017] 建立空间三维设计坐标系,构建位于位于XOY平面内的棋盘格角点坐标集,计算从棋盘格第一个位置的点云到棋盘格角点坐标集的刚度变换矩阵,将得到的k幅点云使用刚度变换矩阵转换到空间三维设计坐标系下,即得到实际坐标点集坐标。
[0018] 进一步的技术方案,对实际三维点集进行估计得到平面的移动方向向量,将得到的棋盘格角点坐标点集沿着移动方向向量以间隔移动k次得到理论点集坐标。
[0019] 进一步的技术方案,建立误差模型时,以得到实际点集的坐标作为输入数据集,以得到的重建误差,作为输出数据集,通过训练得到具体的坐标和误差之间的映射关系即获得坐标—误差映射神经网络,完成误差的预测。
[0020] 进一步的技术方案,上述点云误差补偿方法用于3D打印工序。
[0021] 第二方面,公开了基于立体视觉的三维重建的点云误差补偿系统,包括:
[0022] 三维点云数据重建模块,用于获得从多个位置拍摄的标定板的图片并基于上述图片重建出三维点云数据;
[0023] 误差模型获得模块,用于基于重建出三维点云数据求取实际坐标点集,将实际坐标点集与求取的理论点集差值作为点云的重建误差并建立误差模型;
[0024] 补偿后的点云坐标获得模块,对实际物体进行三维扫描重建时,利用误差模型对扫描得到的点云数据进行误差补偿,获得补偿后的点云坐标。
[0025] 以上一个或多个技术方案存在以下有益效果:
[0026] 本发明提出了一种面向立体视觉和立体视觉结构光三维重建技术的点云补偿方法,该方法解决了传统立体视觉技术的重建精度仅仅依赖于相机和系统的标定,相机标定结果仅仅只依靠二维像素重映射误差来进行优化和评价,不可避免存在误差,而且从二维到三维重建过程中误差进行了传递,相机标定并没有对三维重建误差进行优化,最终导致重建精度不足的弊端。本发明提供的点云补偿方法对三维重建的最终结果三维点云进行标定,得到误差映射模型,通过误差预测和补偿,提高了三维重建的精度。
[0027] 本发明从三维点云角度对误差进行标定,并使用神经网络建立误差预测模型,算法简单,拟合效果好,误差预测精确,本发明提供的点云误差补偿方法是对点云误差进行标定,与相机标定的结果无关,因此无论相机标定结果的好坏,都可以使用本方法进行补偿,提高精度。另外本方法补偿结果精度高,可靠性好,可以运用于双目立体视觉,多目立体视觉和立体视觉结构光等各种不同的三维重建方法中,具有广泛适用性。
[0028] 本发明的坐标——误差映射关系通过人工神经网络来完成,具有强大的拟合能力,能高精度的完成误差预测,而且算法简单易于操作。
[0029] 本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0030] 构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
[0031] 图1为本公开实施例补偿方法的流程示意图;
[0032] 图2为本公开实施例补偿系统结构示意图;
[0033] 图3为本公开实施例棋盘格坐标系示意图;
[0034] 图4为本公开实施例设计坐标系实际点集示意图;
[0035] 图5为本公开实施例设计坐标系下的理论点集示意图;
[0036] 图6为本公开实施例同一坐标系下的棋盘格标定点集和补偿目标
[0037] 图7为本公开实施例BP神经网络示意图;
[0038] 图8为本公开实施例神经网络损失曲线图。

具体实施方式

[0039] 应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
[0040] 需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0041] 在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
[0042] 实施例一
[0043] 如图1所示,本实施例公开了基于立体视觉的三维重建的点云误差补偿方法,包括:
[0044] 步骤一:相机及系统标定。使用高精度棋盘格和张氏标定法进行相机及系统标定,得到相机之间的空间外参数和两个相机各自的内参数。
[0045] 步骤二:等距多位置棋盘格点云重建。首先建立二维棋盘格坐标系,标记处棋盘格内角点;使用立体视觉相机同时采集标定板图片,利用立体视觉技术重建出该位置的棋盘格内角点三维点云坐标;使用高精度移动模组带动棋盘格图像等间距移动k次,并使用步骤一得到的相机之间的外参数和两个相机各自的内参数应用立体视觉技术对每个位置的棋1 m k
盘格内角点进行重建,得到立体视觉坐标系Wc下的k幅点云(Ω,…,Ω,…,Ω)。
[0046] 步骤三:实际坐标点集的求取。以右手坐标系建立空间三维设计坐标系,构建位于1
位于XOY平面内的棋盘格角点坐标集Ψ,使用SVD分解方法计算从棋盘格第一个位置的点
1 1
云Ω到Ψ的刚度变换矩阵R,T,将步骤二得到的k幅点云使用刚度变换矩阵R,T转换到设计坐标系下,即得到实际坐标点集坐标;
[0047] 步骤四:理论点集的求取。对步骤三得到的实际三维点集进行估计得到平面的移1
动方向向量V;将步骤三种得到的棋盘格角点坐标点集Ψ沿着移动方向向量V以间隔△d移动k次得到理论点集坐标。
[0048] 步骤五:误差的求取。由步骤四得到的理论点集坐标减去步骤三得到的实际点集坐标得到重建误差。
[0049] 步骤六:建立坐标—误差映射神经网络。构建一种神经网络算法,以步骤三得到实际点集的坐标(X,Y,Z)作为输入数据集,以步骤五得到的重建误差(△X,△Y,△Z)作为输出数据集,通过训练得到具体的坐标和误差之间的映射关系,完成误差的预测。
[0050] 步骤七:误差预测和补偿。将需要进行补偿的点云数据通过步骤三得到的R,T转换到设计坐标系下,将该坐标系下的坐标输入神经网络中预测得到每个点的误差,该点坐标和误差的和即为补偿后的坐标。
[0051] 更为具体的,步骤一:在图2所示,在测量视场空间Λ内,分别用左右相机各采集16张以上不同位姿的高精度棋盘格标定板图像;
[0052] 使用张氏标定法对双目相机进行标定;分别得到相机之间的表征两个相机空间相对位置的旋转矩阵R和平移矩阵T,以及两个相机各自的内参矩阵A和畸变系数k1,k2,p1,p2。
[0053] 步骤二:如图3示,以棋盘格左上角第一个内角点为原点建立二维棋盘格坐标系,棋盘格角点在棋盘格坐标系下的坐标为 其中(i,j)是角点序号,i=0,1,2,…,w‑1;j=0,1,2,…,h‑1。其中w,h分别为棋盘格在两个方向的内角数,s为棋盘格格子的边长。
[0054] 如图2示,使用左右两个相机同时采集第一个位置的标定板图像,保证每次采集的标定板的图像完整。对采集到的的标定板图像使用步骤一获得的内参矩阵A和畸变系数k1,k2,p1,p2参数进行畸变矫正,消除畸变,使用旋转矩阵R和平移矩阵T进行立体校正,把图片校正为标准极线的几何结构,然后进行角点提取,按顺序即可获得左右右相机的匹配点对,使用这些点对计算视差,最后使用立体视觉原理,结合相机内外参数及视差图获取标定板1 1 i,j
角点在双目立体视觉坐标系下Wc的三维点集 Ω,设 是 Ω中与二维棋盘格角点q 对应的点,那么点 的三维坐标为:
[0055]
[0056] 再看附图2所示,使用高精度直线移动模组带动固定在该模组上的高精度棋盘格从第一个位置开始朝相机方向移动△d,在视场空间Ω内以间距△d进行移动K次,在具体例子中,则标定板的位置分别为(△d,2△d,…,m△d,…,K△d),重复步骤2.1对每个位置的标定板图像进行重建得到棋盘格在该位置的三维坐标,则在棋盘格位于第m个位置的对应的m m三维点集是Ω,设 是 Ω其中一点,则 的三维坐标是 共获得k
1 m k
幅三维点集(Ω,…,Ω,…,Ω)。
[0057] 关于步骤三具体实现:如图5所示,构建设计坐标系:以右手坐标系建立空间三维1
设计坐标系,则设计坐标系下构建的位于XOY平面内的棋盘格角点的坐标点为理论点集
1 i,j
Ψ,即是图中理论坐标的第一个平面,设 是Ψ中与二维棋盘格角点q 对应的点,则的坐标为:
[0058]
[0059] 使用奇异值分解求解从1Ω→1Ψ的刚度变换矩阵R,T。
[0060] 具体的,
[0061] 实际坐标点集的求取:对步骤二得到的双目立体视觉坐标系Wc下的k幅三维点集(1m kΩ,…,Ω,…,Ω)使用下式转换到设计坐标系Wd下实际坐标点集
如图4所示。
[0062]
[0063] 步骤四:如图4所示,平面移动方向向量的求取:取出k幅实际三维点集i,j中与二维棋盘格角点q 对应的点 图中取的是每个理论坐标
平面的左上角第一个点,共k个点组成一个点集 对这k个点进
行空间直线拟合,得到直线的方向向量 该向量 就是实际棋盘格坐标点
集在设计坐标系Wd下的移动方向,具体实施例子中,V为:
[0064] [‑0.0490425 ‑0.0565322 0.997195]。
[0065] 如图5所示,设与k幅实际三维点集 对应的理论三维点集为1 m k 1 m
(Ψ,…,Ψ,…Ψ),其中理论点集Ψ已经由步骤3.1得到。对于任一理论点集Ψ,设m i,j
是Ψ中与二维棋盘格角点q 对应的点,则理论坐标 的坐标为:
[0066]
[0067] 步骤五:由设计坐标系下的理论坐标 和实际坐标 我们定义误差为:
[0068]
[0069] 即:
[0070]
[0071] 更为具体的,步骤六:如图6所示,利用实际坐标 的X,Y,Z三个坐标和对应的m i,j误差E 的△X,△Y,△Z分别作为训练数据的输入、输出数据集。
[0072] 然后通过一种神经网络算法进行训练求解神经网络各个隐藏层和输出层之间的权重和偏置参数。
[0073] 在实际例子中,参见附图7,隐藏层层数分别是3,7,3,的BP神经网络。神经网络损失曲线图,参见附图8所示。
[0074] 参数求解完成后便建立了三维点的坐标和该点的误差的映射关系。通过这个关系,输入一个坐标,便通过映射关系得到该点得到对应的误差,实现误差的预测。
[0075] 步骤七:设需要补偿的点集为xΩ,该点集通过双目立体视觉获得,位于在测量视场空间Λ内。
[0076] 将点集xΩ通过步骤3.2获得的转换矩阵R,T转换到设计坐标系下,获得的点集为[0077] 设 是 中的一点,将点坐标输入步骤四训练好的神经网络映射关系中,得到每个点的误差 则补偿后的值为:
[0078]
[0079] 本发明是通过事先标定视场测量空间中特征点的误差,通过神经网络来用特征点数据来预测误差分布模型,得到误差分布模型以后可以对扫描出的点云进行误差预测并补偿,从而达到提高点云重建精度的效果。
[0080] 本发明对立体视觉三维重建的点云数据的误差进行补偿,进而提高三维重建的精度,获得扫描对象更高精度的点云数据,从而更好的指导后续的测量或加工工序的方法。
[0081] 基于上述方案进行实施,上述参数选择如下:棋盘格精度为0.001mm,w=11,h=8,s=6mm,直线移动模组为直线电机,重复定位精度:0.0003mm,△d=2.5mm,k=14次,具体对点云数据进行补偿,结果见下表:
[0082] 单位:mm
[0083]
[0084] 上述表格是补偿一个标定球的相应数据,可以看到补偿后,误差减小了0.0654mm(54.6%)。
[0085] 实施例二
[0086] 本实施例的目的是提供一种计算装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤,包括:
[0087] 实施例三
[0088] 本实施例的目的是提供一种计算机可读存储介质。
[0089] 一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时执行上述方法的步骤。
[0090] 实施例四
[0091] 本实施例的目的是提供了基于立体视觉的三维重建的点云误差补偿系统,包括:
[0092] 三维点云数据重建模块,用于获得从多个位置拍摄的标定板的图片并基于上述图片重建出三维点云数据;
[0093] 误差模型获得模块,用于基于重建出三维点云数据求取实际坐标点集,将实际坐标点集与求取的理论点集差值作为点云的重建误差并建立误差模型;
[0094] 补偿后的点云坐标获得模块,对实际物体进行三维扫描重建时,利用误差模型对扫描得到的点云数据进行误差补偿,获得补偿后的点云坐标。
[0095] 以上实施例二、三和四的装置中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本公开中的任一方法。
[0096] 本领域技术人员应该明白,上述本公开的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本公开不限制于任何特定的硬件和软件的结合。
[0097] 以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
[0098] 上述虽然结合附图对本公开的具体实施方式进行了描述,但并非对本公开保护范围的限制,所属领域技术人员应该明白,在本公开的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本公开的保护范围以内。