一种纹理实时采集在线映射的方法和系统
技术领域
本发明属于测绘技术领域,尤其涉及一种纹理实时采集在线映射的方法和系统。
背景技术
随着计算机技术的飞速发展与计算机图形技术在游戏、影视、模拟仿真、虚拟旅游、文物数字化等领域日益广泛的应用,图形显示的真实感成为了计算机图形学中最引人注目的研究问题。然而,要生成一幅比较逼真的图形需要解决各种各样的问题,比如图像绘制、明暗处理、反走样、光线跟踪等等,从而导致了较低的计算效率。为了提高图形的生成效率,一般会用简单的几何模型描述复杂的对象,而为了保证生成图形的真实感,纹理映射就成为计算机图形学中必不可少的重要方法。
纹理映射就是将预先定义的纹理或图像根据某种映射算法将其覆盖到三维空间物体的表面,建立纹理与空间物体表面的一一对应关系,简单的说,就是建立一个二维图像到三维表面的映射关系。纹理映射技术的应用极大的提高了光栅扫描图像的视觉丰富感,对真实感图形的生成具有重要的意义。
现有技术中,绝大多数三维数字化的应用,在纹理映射方法上一般都采用基于实物拍摄照片的纹理映射方法。一般先利用相机采集所需的纹理影像,然后采用人工交互的方式将纹理影像映射到对象表面模型上,这种做法有以下几个问题:
1、先采集纹理影像,然后对所有影像一一进行纹理映射,纹理影像很可能会出现漏采集的情况,导致纹理影像不能覆盖整个对象模型表面;
2、由于像幅限制,单幅纹理影像很难覆盖整个对象模型表面,纹理映射必须采用分块映射的方式,这样纹理分块之间很容易产生色差(采集的纹理影像有色差所致);
3、采用人工交互的方式进行纹理映射的精度和效率不高。
发明内容
本发明的目的在于提供一种纹理实时采集在线映射的方法和系统,通过实时采集纹理影像,实现在线自动纹理映射,既可以避免纹理影像漏采集的情况,又可以减少邻近纹理影像之间出现色差问题,同时能够提高纹理映射效率。
根据本发明的一个方面,一种纹理实时采集在线映射的方法,包括:
步骤S1,生成待映射对象的三维模型;
步骤S2,通过无线连接设备实时获取所述待映射对象的第一张纹理影像;
步骤S3,在所述三维模型和所述第一张纹理影像上,人工选取若干数量的控制点对;
步骤S4,根据所述控制点对解算直接线性变换模型得到纹理映射模型;
步骤S5,根据所述纹理映射模型将所述第一张纹理影像映射到所述三维模型上;令k=2;
步骤S6,通过无线连接设备实时获取所述待映射对象的第k张纹理影像,将其作为右片;
从已经映射过的k-1张纹理影像中选取一张与所述第k张纹理影像相关性最大的纹理影像,将其作为合法影像对左片,将合法影像对左片和右片组成合法影像对;
步骤S7,将所述合法影像对进行SIFT匹配,从所述合法影像对中提取同名点对;
步骤S8,根据同名点对和合法影像对左片解算右片的纹理映射模型,并根据所述纹理映射模型将所述右片映射到所述三维模型上;
步骤S9,判断所有纹理影像是否全部完成纹理映射,若否,令k=k+1返回执行步骤S6;否则,结束处理。
本发明的另一目的在于提供一种纹理实时采集在线映射的系统,所述系统包括:
三维模型生成模块,用于生成待映射对象的三维模型;
纹理影像获取模块,用于通过无线连接设备实时获取所述待映射对象的纹理影像;
纹理映射模型解算模块,用于根据控制点对解算直接线性变换得到纹理映射模型;
纹理影像映射模块,用于根据纹理映射模型将纹理影像映射到三维模型上;
合法影像对组成模块,用于从已经映射过的k-1张纹理影像中选取一张与所述第k张纹理影像相关性最大的纹理影像,将其作为合法影像对左片,将合法影像对左片和右片组成合法影像对;其中,所述k≥2;
同名点对提取模块,用于对所述合法影像对进行SIFT匹配,从中提取同名点对;
控制点对计算模块,用于根据同名点对计算出右片上的同名点对在三维模型上的坐标,将右片上的同名点和计算出的三维模型上的点组成控制点对。
根据本发明的技术方案,提出了一种纹理实时采集在线映射的方法和系统,可以有效避免纹理影像漏采集和邻近纹理影像之间有色差的问题,同时提高纹理影像映射效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的方法流程图;
图2是本发明纹理影像实时采集在线映射的示意图;
图3a是本发明在第一张纹理影像上人工选取控制点对的示意图;
图3b是本发明与第一张纹理影像上的控制点对对应的三维模型上的控制点对的示意图;
图4a是与右片相关性最大的已映射过的k-1张中的一张纹理影像(左片);
图4b是相机实时获取的第k张纹理影像(右片);
图5a是本发明合法影像对中的左片剔除异常同名点后的效果图;
图5b是本发明合法影像对中的右片剔除异常同名点后的效果图;
图6a中的标记点是右片上计算出的三维空间点;
图6b中的标记点是右片上的二维同名点;
图7是本发明右片进行纹理映射后的效果图;
图8是所有纹理影像完成映射后的整体效果图;
图9是本发明实施例一中步骤S6的流程图;
图10是本发明实施例二的系统结构图;
图11是本发明实施例二的合法影像对组成模块5的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如前所述,SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法匹配能力较强,能提取稳定的特征,可以处理两幅图像之间发生平移、旋转、仿射变换、视角变换、光照变换情况下的匹配问题,具备较为稳定的特征匹配能力,从而可以实现差异较大的两幅图像之间的特征的匹配。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
在用数码设备(例如相机)采集纹理影像前,首先要对其进行检校。由于相机光学成像系统是复杂的非线性系统,加上各种光电响应、电子噪声、信号转换、环境干扰和其它不确定性因素的影响,导致采集的纹理影像具有一定的畸变,所以,在采集纹理影像之前要对其进行检校。检校内容主要包括:像主点位置(x0,y0)与主距(f)的测定、径向畸变(k1,k2)和切向畸变(p1,p2)的测定、比例因子(b1,b2)不统一的测定。
其次,根据待映射对象的具体情况(例如待映射对象的大小、形状、在空间中的位置分布等)制定纹理影像采集方案。原则上,在保证相邻纹理影像具有一定重叠度的情况下尽可能的采集较少的纹理影像。保证相邻纹理影像具有一定重叠度的目的是为了后面在相邻纹理影像的重叠区域利用SIFT算法匹配寻找同名点对的需要。
另外,为了避免相邻纹理影像之间出现色差问题,要尽量保证在相同拍摄条件下采集纹理影像。
最后,通过无线传输设备连接数码设备和计算机,以保证纹理影像的实时获取与映射。
实施例一
图1是本发明实施例一提供的方法流程图。
图2是本发明纹理影像实时采集在线映射的示意图。
步骤S1,生成待映射对象的三维模型。
其中,步骤S1可通过激光扫描或计算机视觉技术生成待映射对象的三维模型。
步骤S2,通过无线连接设备实时获取所述待映射对象的第一张纹理影像。
具体的,通过无线连接设备连接相机和图像数据处理模块(一般为PC),保证相机拍摄的纹理影像能够实时传输到数据处理模块中。
S3,在所述三维模型和所述第一张纹理影像上,人工选取若干数量的控制点对。
为了实现自动纹理映射,需要对采集到的第一张纹理影像人工选取若干控制点对,控制点对在空间分布要均匀、构像范围要大,如图3所示。
图3a是本发明在第一张纹理影像上人工选取控制点对的示意图。
图3b是本发明与第一张纹理影像上的控制点对对应的三维模型上的控制点对的示意图。
图3a和3b中的标记点即为人工选取的控制点对。
步骤S4,根据所述控制点对解算直接线性变换模型得到纹理映射模型。
步骤S5,根据所述纹理映射模型将所述第一张纹理影像映射到所述三维模型上。
步骤S6,通过无线连接设备实时获取所述待映射对象的第k≥2张纹理影像,将其作为右片;
从已经映射过的k-1张纹理影像中选取一张与所述第k张纹理影像相关性最大的纹理影像,将其作为合法影像对左片,将合法影像对左片和右片组成合法影像对。
步骤S7,将所述合法影像对进行SIFT匹配,从所述合法影像对中提取同名点对。
在本步骤中,利用步骤S6中获取的合法影像对进行SIFT匹配,与步骤S6中的匹配所不同的是:这次利用相机采集的原始图像进行SIFT匹配以获取精准的同名点对。
如图4所示,图4a是与右片相关性最大的已映射过的k-1张中的一张纹理影像(左片)。图4b是相机实时获取的第k张纹理影像(右片)。
图4a和图4b中的标记点即为SIFT匹配提取出的同名点对。
此外,步骤7提取出同名点后,还可以根据基本矩阵模型的RANSAC算法将同名点对中的异常同名点剔除。
在本步骤中,对于获取的同名点对,由于错误匹配在所难免(如图4左右影像灰色框中的同名点对),本发明利用基于基本矩阵模型的RANSAC算法来剔除匹配结果中的异常同名点。该算法的基本思想是:
首先,随机挑选出满足一定数量要求(至少需要7组同名点对)的样本点对,根据所挑选的样本点对计算出基本矩阵F。然后,利用同名点对满足(xL,xR分别为同名点对在左片和右片上的齐次坐标)的关系,剔除异常同名点。最后,重复选取样本点对直到满足预先设定的条件,保留正确的同名点对。
图5a是本发明合法影像对中的左片剔除异常同名点后的效果图。
图5b是本发明合法影像对中的右片剔除异常同名点后的效果图。
步骤S8,根据同名点对和合法影像对左片解算右片的纹理映射模型,并根据所述纹理映射模型将所述右片映射到所述三维模型上。
具体的,通过上面的影像匹配,获得了一定数量的同名点对,为了后面计算纹理映射模型参数的需要,应计算出该2D同名点对在三维模型上的3D坐标来组成2D-3D控制点对。详细步骤如下:
①遍历选取合法影像对左片上的同名点pi(ui,vi)(i=1、2...n),其在右片上对应的同名点为pj(uj,vj)(j=1、2...n)。
②由于合法影像对左片已进行过纹理映射,则合法影像对左片在三维对象模型(一般是用三角形或四边形表示,假设三维对象模型是以三角形表示的)上所对应的每个三角形顶点的UV值(三维空间点与二维影像点之间的对应关系)是已知的。因此,通过遍历每个UV三角形(空间三角形顶点的UV值所组成的),从而确定点pi(ui,vi)在哪个UV三角形中。
③利用点pi(ui,vi)在UV三角形中的位置及该三角形顶点的三维空间坐标,可以计算出点pi的三维空间坐标(xi,yi,zi),则右片上同名点pj的控制点对坐标为(uj,vj,xi,yi,zi)。
如图6所示,图6a中的标记点是右片上计算出的三维空间点。
图6b中的标记点是右片上的二维同名点。
通过上述控制点对解算纹理映射模型参数,详细步骤如下:
本发明中,采用直接线性变换(Direct Linear Transformation,简称DLT)模型来进行纹理映射,因为DLT是不需要方位元素的初始值,特别适用于处理非量测相机所拍摄的影像,而且2D-3D点坐标之间为线性关系,方便参数的解算。因此,利用上面所获取右片的控制点对来解算纹理映射模型参数。具体求解过程如下:
①三维对象模型上某个控制点的坐标(X,Y,Z)在二维影像上对应点坐标为(x,y),用直接线性变换表达两者之间关系为:
上述公式中,使用了l1,l2,…,l11这11个参数线性表达了三维模型坐标与影像坐标之间的关系。每对2D-3D控制点可以按上式列出2个方程,而需要求解的参数为11个,因此,至少需要6对2D-3D控制点才能求解出模型参数。
②剔除异常同名点。对于获取的控制点对,其中可能存在一些异常同名点,所以在进行DLT模型参数求解前,利用基于DLT模型的RANSAC算法来剔除控制点对中的异常同名点。该算法的基本思想是:首先,随机挑选出6组同名点对,根据所挑选的控制点对计算出上式中的11个参数。然后,利用控制点对是否满足上式中的关系,剔除异常同名点。最后,重复选取控制点对直到满足预先设定的条件,保留正确的控制点对。
③求解映射模型参数。利用剔除异常同名点后的n对控制点采用最小二乘法求解DLT参数,首先利用n对控制点可得2n个误差方程:
上述公式中,(Xi,Yi,Zi,xi,yi)为控制点对坐标,δi为误差值。记2n维误差值列向量V=[δ1 δ2 … δ2n]T,控制点对组成的权矩阵为P,则总误差为:Q=VTPV,要使Q为最小,即需使得:Q分别对11个参数求偏导,带入上式可得到方程组,即可求解出11个参数。
利用上面所求出的右片的纹理映射模型,很容易解算出三维对象模型上每个顶点在右片上所对应的UV值,从而完成纹理映射。
图7是本发明右片进行纹理映射后的效果图。
步骤S9,判断所有纹理影像是否全部完成纹理映射,若否,重复执行步骤S6至步骤S8;否则,结束处理。
图8是所有纹理影像完成映射后的整体效果图。
图9是本发明实施例一中步骤S6的流程图。
如图9所示,前述步骤S6进一步包括下述步骤:
步骤S61,获取所述待映射对象的第k≥2张纹理影像,将其作为右片。
从已经映射过的k-1张纹理影像中遍历选取一张纹理影像,将其作为候选影像对左片,将候选影像对左片和候选影像对右片组成候选影像对。
为了提高匹配速度,在所述步骤S61之前,将相机采集的待映射对象的原始纹理影像重采样成低分辨率的,这样可以粗匹配出n对同名点。
步骤S62,将所述候选影像对进行SIFT匹配,从所述候选影像对中提取n对同名点对。
步骤S63,根据如下公式,计算n对同名点的惯性矩(IX,IY)和惯性积(IXY):
其中,xi,yi(i=1,2..n)表示二维点坐标,IX表示x轴的惯性矩,IY表示y轴的惯性矩,IXY表示x轴、y轴惯性积。
步骤S64,根据如下公式,计算n对同名点的主惯性轴α0和主惯性矩
其中,α0表示主惯性轴,表示主惯性矩。
步骤S65,根据如下公式,计算n对同名点到主惯性轴α0距离的标准差作为n对同名点的离散度ds:
其中,di表示第i个同名点到α0的距离,表示n个距离的平均值,ds表示离散度。
步骤S66,比较计算出的k-1个离散度ds,选取离散度最大的一张纹理影像作为合法影像对左片,将所述合法影像对左片与右片组成合法影像对。
本步骤中,将右片和已经映射过的k-1张纹理影像一一组成候选影像对,共组成k-1组影像对,通过上述计算公式,共得到k-1个离散度ds,比较计算出的k-1个离散度ds,选取离散度最大的一张纹理影像作为合法影像对左片,将所述合法影像对左片与右片组成合法影像对。
实施例二
图10是本发明实施例二的系统结构图。
如图10所示,本发明实施例二提供的纹理实时采集在线映射的系统,包括三维模型生成模块1、纹理影像获取模块2、纹理映射模型解算模块3、纹理影像映射模块4、合法影像对组成模块5、同名点对提取模块6和控制点对计算模块7。
三维模型生成模块1用于通过激光扫描或计算机视觉技术生成待映射对象的三维模型。
纹理影像获取模块2用于通过无线连接设备实时获取所述待映射对象的纹理影像。
纹理映射模型解算模块3与所述三维模型生成模块1和所述纹理影像获取模块连接,纹理映射模型解算模块还与所述控制点对计算模块7连接,用于根据控制点对解算直接线性变换得到纹理映射模型。
纹理影像映射模块4与所述纹理映射模型解算模块3连接,用于根据纹理映射模型将纹理影像映射到三维模型上。
合法影像对组成模块5与所述纹理影像2连接,用于从已经映射过的k-1张纹理影像中选取一张与所述第k张纹理影像相关性最大的纹理影像,将其作为合法影像对左片,将合法影像对左片和右片组成合法影像对。
同名点对提取模块6与所述合法影像对组成模块5连接,用于对所述合法影像对进行SIFT匹配,从中提取同名点对。
在同名点对提取模块6提取出同名点对后,根据基本矩阵模型的RANSAC算法将同名点对中的异常同名点剔除。
控制点对计算模块7与所述同名点对提取模块6连接,用于根据同名点对计算出右片上的同名点对在三维模型上的坐标,将右片上的同名点和计算出的三维模型上的点组成控制点对。
图11是本发明实施例二的合法影像对组成模块5的结构图。
如图11所示,合法影像对组成模块5包括候选影像对组成单元51、同名点对提取单元52、惯性矩和惯性矩计算单元53、主惯性轴和主惯性矩计算单元54、离散度计算单元55和合法影像对组成单元56。
合法影像对组成模块5还包括纹理影像重采样单元,用于将待映射对象的纹理影像重采样成低分辨率影像。
候选影像对组成单元51用于获取所述待映射对象的第k≥2张纹理影像,将其作为右片;并用于从已经映射过的k-1张纹理影像中遍历选取一张纹理影像,将其作为候选影像对左片,将候选影像对左片和候选影像对右片组成候选影像对;
同名点对提取单元52与所述候选影像对组成单元51连接,用于将所述候选影像对进行SIFT匹配,从所述候选影像对中提取n对同名点对;
惯性矩和惯性矩计算单元53与所述同名点对提取单元52连接,用于根据如下公式,计算n对同名点的惯性矩(IX,IY)和惯性积(IXY):
其中,xi,yi(i=1,2..n)表示二维点坐标,IX表示x轴的惯性矩,IY表示y轴的惯性矩,IXY表示x轴、y轴惯性积;
主惯性轴和主惯性矩计算单元54与所述惯性矩和惯性矩计算单元53连接,用于根据如下公式,计算n对同名点的主惯性轴α0和主惯性矩
其中,α0表示主惯性轴,表示主惯性矩;
离散度计算单元55与所述主惯性轴和主惯性矩计算单元54连接,用于根据如下公式,计算n对同名点到主惯性轴α0距离的标准差作为n对同名点的离散度ds:
其中,di表示第i个同名点到α0的距离,表示n个距离的平均值,ds表示离散度。
合法影像对组成单元56与所述离散度计算单元55连接,用于比较计算出的k-1个离散度ds,选取离散度最大的纹理影像作为合法影像对左片,将所述合法影像对左片与右片组成合法影像对。
其中,其解算纹理映射模型的方法与前述步骤的描述类似,在此不再赘述。
所述系统还包括一数码设备,其通过无线连接设备与所述纹理影像获取模块2连接。
如上所述,本发明提供了一种纹理实时采集在线映射的方法和系统,通过本发明,可以实时采集纹理影像,实现在线自动纹理映射,既可以避免纹理影像漏采集的情况,又可以减少邻近纹理影像之间出现色差问题,同时能够提高纹理映射效率。
本领域普通技术人员可以理解为上述实施例二所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。