本发明涉及一种基于图像的三维四边形网格模型重建方法。
背景技术:
随着计算机软硬件技术的不断发展,大规模复杂场景的实时绘制已经成为可能,这对模型的复杂度和真实感提出了新的要求。传统的三维建模工具虽然日益改进,但构建复杂的三维模型依旧是一件非常耗时费力的工作。由于很多三维模型都能在现实世界中找到或加以塑造,因此基于图像的建模技术就成了人们心目中理想的建模方式。此外,传统的三维建模一般只能获取景物的几何信息,而基于图像的三维建模为生成具有照片级真实感的合成图像提供了一种自然的方式,成为目前计算机图形学领域中的热点,广泛应用于古文物数字化保存、影视制作、游戏娱乐、机器导航等领域,具有极其重要的意义与实用价值。
基于图像的几何建模技术以其显著优势,得到了广泛地关注,国内外出现了大量的技术路线和方法,主要有明暗法、亮度法、纹理法、轮廓法、调焦法、运动法和交互法等。在众多的三维信息恢复方法中普遍存在两个难以逾越的鸿沟,一是鲁棒性问题,图像易受到光线、噪声、模糊等问题的影响,鲁棒性较差;一是精度问题,相机标定、图像分割、图像特征提取与匹配等问题,一直是计算机视觉领域中比较难以解决的问题,这些问题无法得到根本性的解决使得三维重建的效果难以得到提高。
从图像中恢复出物体或场景的三维几何信息,构建其几何模型表示是基于图像的几何建模的核心问题,面向不同的应用领域,多种不同的几何模型应运而生,其中网格模型以其简单的表达方式、通用的表达能力、便于硬件绘制等特点得到了广泛应用。与三角网格相比,四边网格的存储量小,计算效率高,更能反映所表示几何形体的形状变化。四边网格重建方法主要有网格分裂或合并、铺设法、参数化方法和正交场方法等。提高四边网格的重建质量和效率是各种方法追求的终极目标,目前尚没有重建方法能同时满足四边网格中无三角网格残留、网格拓扑结构合理、适应任意拓扑结构和效率较高等条件。
综上所述,现有技术存在的主要问题是图像物体或场景的三维信息恢复受图像质量、相机标定和匹配算法的影响较大,鲁棒性和精确度有待提高。此外,也存在对于大规模点云数据恢复的效率不高,重建几何模型较为单一,缺少完整的从图像采集到多种模型重建的流程等问题,因此需要新的建模方法更好的拟合图像物体或场景。
技术实现要素:
为了解决现有技术的不足,本发明提供了一种基于图像的三维四边形网格模型重建方法,其具有拟合出更好的图像物体或场景的效果的优点。
一种基于图像的三维四边形网格模型重建方法,包括:
步骤(1):获取表征图像物体或场景外形的点云数据,恢复图像的三维信息;
步骤(2):构建点云数据的四边网格,重建四边网格模型。
所述步骤(1)的步骤为:
步骤(11):通过相机的自标定和图像的特征匹配得到匹配点的三维信息;
步骤(12):构造神经网络,以匹配点和匹配点的三维坐标为样本训练神经网络,获得图像物体或场景外形的点云数据。
所述步骤(11)的步骤为:
步骤(111):对二维图像进行高斯卷积将其映射到高斯尺度空间,在图像的高斯尺度空间内构造差分函数尺度空间,在差分函数尺度空间内提取相邻层邻域内的极值点作为候选特征点;通过hessian矩阵剔除不稳定的边缘特征点,利用高斯尺度空间函数对剩余特征点进行拟合,拟合曲面的极值为特征点;
步骤(112):建立特征点到三维空间的映射,根据映射关系计算特征点与对应的三维空间数据点之间的距离,若距离小于设定阈值,则匹配成功,得到匹配的特征点集合;
步骤(113):基于基础矩阵估计的聚类分析算法,对特征点进行精确匹配,根据基础矩阵、本质矩阵、相机内部参数和外部参数的关系,求解相机内部参数和外部参数,利用相机内部参数和外部参数实现相机的自标定,恢复匹配点的三维坐标。
所述步骤(111)的步骤为:
设原始图像为i(x,y),高斯函数为g(x,y,σ),经过卷积得到尺度空间l(x,y,σ),在高斯尺度空间内构造差分函数dog(x,y,σ)为:
dog(x,y,σ)=(g(x,y,kσ)-g(x,y,σ))*i(x,y)(1)
在dog尺度空间中图像点在相邻层邻域内的极值点作为候选特征点;通过hessian矩阵剔除不稳定的边缘特征点;利用尺度空间函数l(x,y,σ)的二阶taylor展开式进行最小二乘拟合,计算拟合曲面的极值为特征点;
所述步骤(112)的步骤为:
建立特征点p(x,y)到三维空间点p'(x,y,z)的映射,其中z为图像点p(x,y)的梯度。引入距离函数
d(pl,pr)=ω1cov(pl,pr)+ω2arccos(nl,nr)(2)
其中,cov(pl,pr)表示待匹配图像点的灰度相似度,arccos(nl,nr)表示图像点对应的空间数据点的法向量夹角余弦;当待匹配特征点的距离小于设定阈值时认为匹配成功,建立模糊的匹配特征点集合。
所述步骤(113)的步骤为:
利用8点算法估计基础矩阵f的初始值,由初始基础矩阵f求解梯度加权误差来近似重投影误差:
混合模型的密度函数为:
其中,θ(τ1,τ2,...,θ1,θ2,...)为各混合成分的参数矢量,τk是混合系数,pk(xi|θk)为各成分的类条件概率密度函数。
利用最大期望算法对匹配点的估计余差进行聚类分析,根据分类结果及平均余差最小原则删除错误匹配点,通过m估计算法对筛选的匹配点迭代求精。
简化内部参数矩阵k使之只与相机焦距f相关,列出kruppa方程得到:
uλvtdiag(f2,f2,1)vλut~[u3]xdiag(f2,f2,1)[u3]x,(5)
[u3]x表示向量u3的斜对称矩阵,求解相机的焦距f确定内部参数矩阵k;本质矩阵e包含旋转矩阵r和平移向量t,由基础矩阵f和内部参数矩阵k表示e=ktfk,本质矩阵e的奇异值分解e=uλvt,则有
其中,左右图像il(x,y)和ir(x,y)的投影矩阵分别为pl=(pl1,pl2,pl3),pr=(pr1,pr2,pr3),匹配点pl(x,y)和pr(x,y)对应的三维数据点p满足:
对矩阵a进行归一化处理得到矩阵an,将p的求解问题转化为求解antan最小特征值的特征向量。
所述步骤(12)的步骤为:
步骤(121):构造动态耦合bp神经网络,引入基本权和联合权的概念,建立同层神经元之间的联系;
步骤(122):利用基本权和联合权的动态修正函数,给出输入样本的判断标准;
步骤(123):根据输入样本的判断标准建立匹配像素点及其三维信息的样本集,通过样本集对bp神经网络模型进行训练,建立像素坐标与三维坐标之间的对应关系。
所述步骤(12)的步骤为:
构造动态耦合bp神经网络,激活函数为非线性sigmoid型函数,隐含层的层数为1,隐含节点的数目取设定值,输入层为图像的像素点坐标,输出层为其三维数据点坐标。引入基本权和联合权的概念建立同层神经元之间的联系,基本权通过网络的学习实现自身的调整,其学习表达式为:
wij(t+1)=wij(t)+η(t+1)opj+α(t+1)[wij(t)-wij(t-1)];(8)
其中η,α分别为学习率和惯性因子。联合权是由若干个基本权组成的函数,表达形式为:
wkj(t+1)=fkj(wj1(t+1),...,wjn(t+1))(9)
匹配点及其三维坐标作为样本对网络进行训练,当新增样本的预测值与实测值之差的绝对值大于阈值时,认为该样本是有效样本,动态调整η和α,进而修正各神经节点的基本权和联合权的权值,加快网络的学习速率。
所述步骤(2)的步骤为:
步骤(20):对点云数据进行优化;
步骤(21):对优化后的点云数据进行无网格参数化;
步骤(22):将参数域上的四边网格连接关系映射到三维空间获得重建的四边网格模型。
所述步骤(20)的步骤为:
基于密度的k-means聚类算法,得到初始聚类中心;
利用数据点沿密度最大方向收敛的函数,构造聚类数据点的拟合平面;
判断数据点到拟合平面的距离是否超过设定阈值,若超过则认为是噪声,对噪声予以删除。
所述步骤(20)的步骤为:
构造点云数据的最小包围盒,均匀划分最小包围盒得到小立方体,同一小立方体内的数据归为一簇。记数据点pi的密度为ρ(pi),簇ci的聚类中心为ci,定义数据点pi到簇ci的距离函数:
簇ci内到簇ci距离最小的数据点作为聚类中心ci,形成点云数据的初始聚类。定义d维欧氏空间数据点pi的多元核密度估计函数为:
对式(11)进行微分得到数据点pi的梯度:
其中,g(x)为高斯核函数。数据点pi沿mg(x)方向移动,即沿数据密度最大的方向移动,迭代直到收敛到局部最大密度估计值处。对点云数据进行上述操作,数据点pi收敛到最近的聚类中心ci所在的簇为该点的簇;
采用移动最小二乘的误差估计求平面ti使其逼近簇ci的数据点集,记平面ti的法向量为ni,删除数据点pi后的数据点集的法向量为npi,当法向量ni和npi夹角余弦小于阈值,则删除该点进行简化。簇ci内数据点pi到平面ti的距离为di,当di大于阈值则认为是噪声予以删除。
所述步骤(21)的步骤为:
利用变形能量函数对每个簇内的数据围绕聚类中心进行参数化,计算平移矩阵和旋转矩阵,实现各个参数平面的整体拼接,得到点云数据的参数化值。
所述步骤(21)的步骤为:
聚类簇ci的数据点集pi={c1,p1,p2,...,pn},其中ci为聚类中心,给出倒距离参数化函数
在保证变形能量函数
u'pi=piri+bi(14)
平面t:z=0上的投影u'即为点云数据的参数。为减少参数化过程中的扭曲变形,采用迭代优化的方法对数据点进行局部调整
ui=ui+δu(15)
其中,δu是关于距离的增量。
经过若干次迭代后,映射到平面上的局部邻域尽可能保持相应的空间点之间的相对距离。
所述步骤(22)的步骤为:
在参数域内对数据点进行delaunay三角化,根据catmull-clark细分模式将一个三角网格细分为三个四边网格,将参数域内的二维空间四边网格连接关系映射到三维空间得到点云数据的重建四边形网格。
与现有技术相比,本发明的有益效果是:
(1)提出基于多维信息的图像特征匹配算法,把图像特征点映射到三维空间,将图像的特征匹配问题转化为数据点的匹配问题,匹配过程兼顾特征点的灰度信息和数据点的法向信息,有效控制匹配过程中的错误传播;
(2)提出基于动态耦合bp神经网络的三维重建算法,引入基本权和联合权的概念建立同层神经元的联系,根据预测值与实际值的关系动态修正权值,经过样本训练后直接建立像素坐标与三维坐标的对应关系;
(3)给出基于均匀k-means聚类的点云数据优化算法,均匀选取聚类的初始中心,将收敛于同一局部密度最大点的数据点归为一类,根据数据点到拟合平面的距离和顶点删除前后拟合平面的法向偏量进行去噪和简化。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本发明的流程图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
本发明以从二维图像中获取精度高、鲁棒性强、速度快的三维网格模型为目的,提出一种基于图像的三维重建完整的解决方案,为满足不同应用领域的需要,给出重建的四边网格模型。本发明将计算机视觉、计算机图形学和图像处理有机的联系在一起,为可视化中的准确模拟提供有效的工具,也为古文物数字化、影视制作和游戏娱乐等领域提供新的方法,具有很高的理论价值和实际意义。
如图1所示,本发明提供的具体实施例如下:
一种基于图像的三维四边形网格模型重建方法,包括:
步骤(1):获取表征图像物体或场景外形的点云数据,恢复图像的三维信息;
步骤(2):构建点云数据的四边网格,重建四边网格模型。
所述步骤(1)的步骤为:
步骤(11):通过相机的自标定和图像的特征匹配得到匹配点的三维信息;
步骤(12):构造神经网络,以匹配点和匹配点的三维坐标为样本训练神经网络,获得图像物体或场景外形的点云数据。
所述步骤(11)的步骤为:
步骤(111):设原始图像为i(x,y),高斯函数为g(x,y,σ),经过卷积得到尺度空间l(x,y,σ),在高斯尺度空间内构造差分函数dog(x,y,σ)为:
dog(x,y,σ)=(g(x,y,kσ)-g(x,y,σ))*i(x,y)(1)
在dog尺度空间中图像点在相邻层邻域内的极值点作为候选特征点;通过hessian矩阵剔除不稳定的边缘特征点;利用尺度空间函数l(x,y,σ)的二阶taylor展开式进行最小二乘拟合,计算拟合曲面的极值为特征点;
步骤(112):建立特征点p(x,y)到三维空间点p'(x,y,z)的映射,其中z为图像点p(x,y)的梯度。引入距离函数
d(pl,pr)=ω1cov(pl,pr)+ω2arccos(nl,nr)(2)
其中,cov(pl,pr)表示待匹配图像点的灰度相似度,arccos(nl,nr)表示图像点对应的空间数据点的法向量夹角余弦;当待匹配特征点的距离小于设定阈值时认为匹配成功,建立模糊的匹配特征点集合。
步骤(113):利用8点算法估计基础矩阵f的初始值,由初始基础矩阵f求解梯度加权误差来近似重投影误差:
混合模型的密度函数为:
其中,θ(τ1,τ2,...,θ1,θ2,...)为各混合成分的参数矢量,τk是混合系数,pk(xi|θk)为各成分的类条件概率密度函数。
利用最大期望算法对匹配点的估计余差进行聚类分析,根据分类结果及平均余差最小原则删除错误匹配点,通过m估计算法对筛选的匹配点迭代求精。
简化内部参数矩阵k使之只与相机焦距f相关,列出kruppa方程得到:
uλvtdiag(f2,f2,1)vλut~[u3]xdiag(f2,f2,1)[u3]x,(5)
[u3]x表示向量u3的斜对称矩阵,求解相机的焦距f确定内部参数矩阵k;本质矩阵e包含旋转矩阵r和平移向量t,由基础矩阵f和内部参数矩阵k表示e=ktfk,本质矩阵e的奇异值分解e=uλvt,则有
其中,左右图像il(x,y)和ir(x,y)的投影矩阵分别为pl=(pl1,pl2,pl3),pr=(pr1,pr2,pr3),匹配点pl(x,y)和pr(x,y)对应的三维数据点p满足:
对矩阵a进行归一化处理得到矩阵an,将p的求解问题转化为求解antan最小特征值的特征向量。
所述步骤(12)的步骤为:
构造动态耦合bp神经网络,激活函数为非线性sigmoid型函数,隐含层的层数为1,隐含节点的数目取设定值,输入层为图像的像素点坐标,输出层为其三维数据点坐标。引入基本权和联合权的概念建立同层神经元之间的联系,基本权通过网络的学习实现自身的调整,其学习表达式为:
wij(t+1)=wij(t)+η(t+1)opj+α(t+1)[wij(t)-wij(t-1)];(8)
其中η,α分别为学习率和惯性因子。联合权是由若干个基本权组成的函数,表达形式为:
wkj(t+1)=fkj(wj1(t+1),...,wjn(t+1))(9)
匹配点及其三维坐标作为样本对网络进行训练,当新增样本的预测值与实测值之差的绝对值大于阈值时,认为该样本是有效样本,动态调整η和α,进而修正各神经节点的基本权和联合权的权值,加快网络的学习速率。
所述步骤(2)的步骤为:
步骤(20):对点云数据进行优化;
步骤(21):对优化后的点云数据进行无网格参数化;
步骤(22):将参数域上的四边网格连接关系映射到三维空间获得重建的四边网格模型。
所述步骤(20)的步骤为:
构造点云数据的最小包围盒,均匀划分最小包围盒得到小立方体,同一小立方体内的数据归为一簇。记数据点pi的密度为ρ(pi),簇ci的聚类中心为ci,定义数据点pi到簇ci的距离函数:
簇ci内到簇ci距离最小的数据点作为聚类中心ci,形成点云数据的初始聚类。定义d维欧氏空间数据点pi的多元核密度估计函数为:
对式(11)进行微分得到数据点pi的梯度:
其中,g(x)为高斯核函数。数据点pi沿mg(x)方向移动,即沿数据密度最大的方向移动,迭代直到收敛到局部最大密度估计值处。对点云数据进行上述操作,数据点pi收敛到最近的聚类中心ci所在的簇为该点的簇;
采用移动最小二乘的误差估计求平面ti使其逼近簇ci的数据点集,记平面ti的法向量为ni,删除数据点pi后的数据点集的法向量为npi,当法向量ni和npi夹角余弦小于阈值,则删除该点进行简化。簇ci内数据点pi到平面ti的距离为di,当di大于阈值则认为是噪声予以删除。
所述步骤(21)的步骤为:
聚类簇ci的数据点集pi={c1,p1,p2,...,pn},其中ci为聚类中心,给出倒距离参数化函数
在保证变形能量函数
u'pi=piri+bi(14)
平面t:z=0上的投影u'即为点云数据的参数。为减少参数化过程中的扭曲变形,采用迭代优化的方法对数据点进行局部调整
ui=ui+δu(15)
其中,δu是关于距离的增量。
经过若干次迭代后,映射到平面上的局部邻域尽可能保持相应的空间点之间的相对距离。
所述步骤(22)的步骤为:
在参数平面域内对数据点进行delaunay三角化,一个三角网格细分为三个四边网格,根据catmull-clark细分模式确定新的边点和面点。将二维空间四边形网格的连接关系映射到三维空间,得到点云数据的重建四边形网格。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。