自动重建二维影像与三维模型准确相对位置的方法及***
技术领域
本发明涉及纹理映射领域,具体的涉及自动重建二维影像与三维模型准确相对位置的方法及***。
背景技术
随着计算机技术的飞速发展与计算机图形技术在游戏、影视、模拟仿真、虚拟旅游、文物数字化等领域日益广泛的应用,图形显示的真实感成为了计算机图形学中最引人注目的研究问题。然而要生成一幅比较真实的图形需要解决各种各样的问题,比如图像绘制、明暗处理、反走样、光线跟踪等等,从而导致了较低的计算效率。为了提高图形的生成效率,一般会用简单的几何模型描述复杂的对象,而为了保证生成图形的真实感,纹理映射就成为计算机图形学中必不可少的重要方法。
纹理映射的过程是根据二维影像与三维模型之间的相对位置关系,构建映射算法,将二维影像纹理覆盖到三维空间物体的表面。因此,如何快速准确的重建二维影像与三维模型的相对位置关系成为纹理映射的重点。
目前存在的重建方法有:
1)通过若干对纹理影像与三维表面的2D-3D控制点来解算相机的参数。大量的研究表明,目前,自动的2D-3D对应控制点的提取及匹配工作困难,还没有能够可靠适应任意实际应用状况的自动化算法,因此,在实际应用中通常采用人工交互式选取2D-3D对应控制点,重建效率低。
2)通过人工匹配二维影像纹理和三维几何模型中侧影轮廓线等较大的图像特征来实现2D-3D匹配,线特征作为配准基元比点特征要稳定许多,这类方法对于细节丰富的对象有较好的配准效果,但是人工寻找侧影轮廓线的繁琐,重建效率低。
发明内容
本发明所要解决的技术问题是提供一种自动重建二维影像与三维模型准确相对位置的方法,可以避免人工选取控制点或者人工寻找侧影轮廓线的繁琐工作,自动的寻找准确的相对位置,提高了重建过程的效率。
本发明解决上述技术问题的技术方案如下:自动重建二维影像与三维模型准确相对位置的方法,包括以下步骤:
S1,根据拍摄二维影像时的视场角设置二维影像与三维模型的初始相对位置;
S2,根据二维影像与三维模型的初始相对位置将三维模型投影到二维影像上后,获取二维影像中前景和后景的种子点;
S3,通过二维影像中前景和后景的种子点,利用图像分割算法将二维影像中的前景和后景分离,得到二维影像的前后景二值图;
S4,调整三维模型的位置,并将调整后的三维模型投影到二维影像上,获得三维模型的投影二值图;
S5,以三维模型的投影二值图和二维影像的前后景二值图的异或累加值作为优化条件,利用单纯形法优化并求取二维影像与三维模型的相对位置。
本发明的有益效果是:本发明的自动重建二维影像与三维模型准确相对位置的方法是根据给定的三维模型相对于二维影像的初始位置,选取二维影像分割的种子点,将二维影像中的模型部分与背景分离开来,通过调整三维空间中模型相对于影像的位置,利用单纯形法求取准确的相对位置;本发明充分利用了三维几何形状信息和二维纹理信息,基于图像分割技术和单纯形算法,尽量减少人工交互的工作,自动重建二维影像与三维模型的准确相对位置,减少人工干预的工作量。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,步骤S1具体为:
S11,根据二维影像的EXIF信息,计算拍摄二维影像时的视场角;
S12,然后将三维模型和二维影像显示在同一个三维空间中,根据计算得出的拍摄二维影像时的视场角设置三维空间视场角大小,根据三维空间视场角大小调整三维模型相对于二维影像中三维模型边界的一个初始相对位置。
进一步,步骤S2具体为:根据二维影像与三维模型的初始相对位置将三维模型投射在二维影像平面上,得到二值化影像,并对二值化影像进行腐蚀和膨胀处理,获取二维影像中前景和后景的种子点;
步骤S3具体为:采用GraphCuts算法,将二维影像中前景和后景的种子点作为GraphCuts算法的输入,GraphCuts算法的输出为二维影像的前后景二值图。
进一步,步骤S4具体为:
S41,确定三维模型与二维影像的相对位置的六个调整参数,初始化三维模型相对二维影像位置的七个初始解,其中每个初始解包含六个调整参数,初始化三维模型相对二维影像位置的七个初始解对应误差的收敛条件,初始化三维模型相对二维影像位置的七个初始解的扩张系数和收缩系数;
S42,根据每个初始解中的六个调整参数调整三维模型的位置,并将每次调整后的三维模型分别投影到二维影像上,获得三维模型的七个投影二值图。
进一步,步骤S5具体为:
S51,获得所述三维模型的七个投影二值图和所述二维影像的前后景二值图的异或累加值,并将所述异或累加值作为三维模型相对二维影像位置的七个初始解所对应的误差,并对七个初始解的误差进行误差排序;
S52,计算当前七个初始解所对应的误差的迭代误差,并判断迭代误差是否满足初始化的收敛条件,如果不满足,则执行步骤S53,如果满足,则执行步骤S54;
S53,根据七个初始解所对应的误差的大小和/或初始化的扩张系数和/或收缩系数计算三维模型相对二维影像位置的反射点或压缩点或扩张点,并用反射点或压缩点或扩张点相对二维影像位置的初始解替代原七个初始解中误差最大的初始解,得到替换后的7个初始解,并返回至步骤S42;
S54,获得S51中的七个初始解所对应的误差中误差最小的初始解,根据误差最小的初始解中的六个调整参数调整三维模型的空间位置,此时三维模型与二维影像的相对位置关系即为拍照时二维影像与三维模型的相对位置关系。
基于上述自动重建二维影像与三维模型准确相对位置的方法,本发明还提供一种自动重建二维影像与三维模型准确相对位置的***。
自动重建二维影像与三维模型准确相对位置的***,该***根据自动重建二维影像与三维模型准确相对位置的方法构建,包括初始位置设置模块、种子点获取模块、分离模块、投影二值图生成模块和相对位置生成模块;
所述初始位置设置模块,其用于根据拍摄二维影像时的视场角设置二维影像与三维模型的初始位置;
所述种子点获取模块,其用于根据二维影像与三维模型的初始相对位置将三维模型投影到二维影像上后,获取二维影像中前景和后景的种子点;
所述分离模块,其用于通过二维影像中前景和后景的种子点,利用图像分割算法将二维影像中的前景和后景分离,得到二维影像的前后景二值图;
所述投影二值图生成模块,其用于调整三维模型的位置,并将调整后的三维模型投影到二维影像上,获得三维模型的投影二值图;
所述相对位置生成模块,其用于以三维模型的投影二值图和二维影像的前后景二值图的异或累加值作为优化条件,利用单纯形法优化并求取二维影像与三维模型的相对位置。
本发明的有益效果是:本发明的自动重建二维影像与三维模型准确相对位置的***是根据给定的三维模型相对于二维影像的初始位置,选取二维影像分割的种子点,将二维影像中的模型部分与背景分离开来,通过调整三维空间中模型相对于影像的位置,利用单纯形法求取准确的相对位置;本发明充分利用了三维几何形状信息和二维纹理信息,基于图像分割技术和单纯形算法,尽量减少人工交互的工作,自动重建二维影像与三维模型的准确相对位置,减少人工干预的工作量。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述初始位置设置模块具体为:根据二维影像的EXIF信息,计算拍摄二维影像时的视场角;将三维模型和二维影像显示在同一个三维空间中,根据计算得出的拍摄二维影像时的视场角设置三维空间视场角大小,调整三维模型相对于二维影像中三维模型边界的一个初始相对位置。
进一步,所述种子点获取模块具体为:根据二维影像与三维模型的初始相对位置将三维模型投射在二维影像平面上,得到二值化影像,并对二值化影像进行腐蚀和膨胀处理,获取二维影像中前景和后景的种子点;
所述分离模块具体为:采用GraphCuts算法,将二维影像中前景和后景的种子点作为GraphCuts算法的输入,GraphCuts算法的输出为二维影像的前后景二值图。
进一步,所述投影二值图生成模块具体为:
确定三维模型与二维影像的相对位置的六个调整参数,初始化三维模型相对二维影像位置的七个初始解,其中每个初始解包含六个调整参数,初始化收敛条件、扩张系数和收缩系数;
根据每个初始解中的六个调整参数调整三维模型的位置,并将每次调整后的三维模型分别投影到二维影像上,获得三维模型的七个投影二值图。
进一步,所述相对位置生成模块具体为:
获取三维模型的七个投影二值图和二维影像的前后景二值图的异或累加值,并将所述异或累加值作为三维模型相对二维影像位置的七个初始解所对应的误差,并对七个初始解的误差进行误差排序;
计算当前七个初始解所对应的误差的迭代误差,并判断迭代误差是否满足收敛条件;
如果迭代误差不满足收敛条件,根据七个初始解所对应的误差的大小和/或扩张系数和/或收缩系数计算三维模型相对二维影像位置的反射点或压缩点或扩张点,并用反射点或压缩点或扩张点相对二维影像位置的初始解替代原七个初始解中误差最大的初始解,得到替换后的7个初始解,并返回至投影二值图生成模块中;
如果迭代误差满足收敛条件,获得七个初始解所对应的误差中误差最小的初始解,根据误差最小的初始解中的六个调整参数调整三维模型的空间位置,此时三维模型与二维影像的相对位置关系即为拍照时二维影像与三维模型的相对位置关系。
附图说明
图1为本发明自动重建二维影像与三维模型准确相对位置的方法的整体流程图;
图2为本发明自动重建二维影像与三维模型准确相对位置的方法的具体流程图;
图3为本发明自动重建二维影像与三维模型准确相对位置的方法中三维模型初始位置示意图;
图4为本发明自动重建二维影像与三维模型准确相对位置的方法中二维影像分割种子点的示意图;
图5为本发明自动重建二维影像与三维模型准确相对位置的方法中二维影像分割后前后景二值图示意图;
图6为本发明自动重建二维影像与三维模型准确相对位置的方法中三维模型投射影像示意图;
图7为本发明自动重建二维影像与三维模型准确相对位置的方法中单纯形法调整前边界处的误差示意图;
图8为本发明自动重建二维影像与三维模型准确相对位置的方法中单纯形法调整后边界处的误差示意图;
图9为本发明自动重建二维影像与三维模型准确相对位置的方法中单纯形法调整后的效果示意图;
图10为本发明自动重建二维影像与三维模型准确相对位置的***的结构框图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,自动重建二维影像与三维模型准确相对位置的方法,包括以下步骤:
S1,根据拍摄二维影像时的视场角设置二维影像与三维模型的初始相对位置;
S2,根据二维影像与三维模型的初始相对位置将三维模型投影到二维影像上后,获取二维影像中前景和后景的种子点;
S3,通过二维影像中前景和后景的种子点,利用图像分割算法将二维影像中的前景和后景分离,得到二维影像的前后景二值图;
S4,调整三维模型的位置,并将调整后的三维模型投影到二维影像上,获得三维模型的投影二值图;
S5,以三维模型的投影二值图和二维影像的前后景二值图的异或累加值作为优化条件,利用单纯形法优化并求取二维影像与三维模型的相对位置。
其中:二维影像中的前景是三维模型投影到二维影像上后,在二维影像中的三维模型部分;二维影像中的后景是二维影像的背景,即空白部分。
图2为本发明自动重建二维影像与三维模型准确相对位置的方法的具体流程图。
在步骤S1中:S11,根据二维影像的EXIF信息,计算拍摄二维影像时的视场角;S12,将三维模型和二维影像显示在同一个三维空间中,根据计算得出的拍摄二维影像时的视场角设置三维空间视场角大小,根据三维空间视场角大小调整三维模型相对于二维影像中三维模型边界的一个初始相对位置。三维模型相对于二维影像中模型边界的一个粗略位置如图3所示。
其中:二维影像的EXIF信息包含了所拍影像的各种元数据:如焦距、相机品牌、相机型号等信息;计算视场角的方法是:构建相机品牌、相机型号和相机感光元件大小之间的数据库,使用时根据查询数据库的结果和视场角公式计算视场角的大小。
在步骤S2中,根据二维影像与三维模型的初始相对位置,将三维模型投射在二维影像平面上,得到二值化影像,对二值化影像进行腐蚀和膨胀处理,获得二维影像中前景和后景的种子点,二维影像中前景和后景的种子点如图4所示。
在步骤S3中,本发明分离二维影像中的模型部分采用的是GraphCuts算法,该算法根据图像的亮度分布、边缘等信息将图像分割为若干子图;利用步骤S2得到的二维影像的前景和后景的种子点,作为GraphCuts算法的输入,输出为分离后的二维影像的前景和后景的影像,用二值化图像表示,即得到二维影像的前后景二值图,分离后的二维影像的前后景二值图如图5所示。
在步骤S4中:
S41,确定三维模型与二维影像的相对位置的六个调整参数,初始化三维模型相对二维影像位置的七个初始解,其中每个初始解包含六个调整参数,初始化三维模型相对二维影像位置的七个初始解对应误差的收敛条件,初始化三维模型相对二维影像位置的七个初始解的扩张系数和收缩系数;
S42,根据每个初始解中的六个调整参数调整三维模型的位置,并将每次调整后的三维模型投影到二维影像上,获得三维模型的七个投影二值图。调整后的三维模型的投射影像如图6所示。
其中:三维模型与二维影像的相对位置的六个调整参数包括三个平移参数和三个旋转参数,当三维模型和二维影像显示在同一个三维空间中时,这六个参数就控制了模型相对于影像的位置;在三维模型相对三维空间位置的七个初始解中,其中每个初始解代表三维模型的一个空间位置,由六个调整参数组成;收敛条件是优化算法停止迭代的终止条件,扩张系数和压缩系数在后续步骤中求取扩张点或压缩点使用。
在步骤S5中:
步骤S5具体为:
S51,根据S42中获得的三维模型的七个投影二值图和S3中获得的二维影像的前后景二值图的异或累加值,并将所述异或累加值作为三维模型相对二维影像位置的七个初始解所对应的误差,并对七个初始解的误差进行误差排序;如图7所示,图7为单纯形法调整前边界处的误差示意图;
S52,计算当前七个初始解所对应的误差的迭代误差,并判断迭代误差是否满足S41中初始化的收敛条件,如果不满足,则执行步骤S53,如果满足,则执行步骤S54;
S53,根据七个初始解所对应的误差的大小和/或S41中初始化的扩张系数和/或收缩系数计算三维模型相对二维影像位置的反射点或压缩点或扩张点,并用反射点或压缩点或扩张点替代七个初始解中误差最大的初始解,得到替换后的7个初始解,并返回至步骤S42;如图8所示,图8为单纯形法调整后边界处的误差示意图;
S54,获得S51中的七个初始解所对应的误差中误差最小的初始解,根据误差最小的初始解中的六个调整参数调整三维模型的空间位置,此时三维模型与二维影像的相对位置关系即为拍照时二维影像与三维模型的相对位置关系。如图9所示,图9为准确调整后的效果示意图。
其中:计算三维模型相对三维空间位置的七个初始解所对应的误差可以通过三维模型的投影二值图和二维影像的前后景二值图之间的异或运算进行统计;迭代误差是对当前七个初始解所对应误差的整体评估。
本发明的自动重建二维影像与三维模型准确相对位置的方法是根据拍摄时的视场角和据此给定的三维模型相对于二维影像的初始位置,选取二维影像分割的种子点,将二维影像中的模型部分与背景分离开来,通过调整三维空间中模型相对于影像的位置,利用单纯形法求取准确的相对位置;本发明充分利用了三维几何形状信息和二维纹理信息,基于图像分割技术和单纯形算法,尽量减少人工交互的工作,自动重建二维影像与三维模型的准确相对位置,减少人工干预的工作量。
基于上述自动重建二维影像与三维模型准确相对位置的方法,本发明还提供一种自动重建二维影像与三维模型准确相对位置的***。
如图10所示,自动重建二维影像与三维模型准确相对位置的***,该***根据自动重建二维影像与三维模型准确相对位置的方法构建,包括初始位置设置模块、种子点获取模块、分离模块、投影二值图生成模块和相对位置生成模块;
所述初始位置设置模块,其用于根据拍摄二维影像时的视场角设置二维影像与三维模型的初始位置;
所述种子点获取模块,其用于根据二维影像与三维模型的初始相对位置将三维模型投影到二维影像上后,获取二维影像中前景和后景的种子点;
所述分离模块,其用于通过二维影像中前景和后景的种子点,利用图像分割算法将二维影像中的前景和后景分离,得到二维影像的前后景二值图;
所述投影二值图生成模块,其用于调整三维模型的位置,并将调整后的三维模型投影到二维影像上,获得三维模型的投影二值图;
所述相对位置生成模块,其用于以三维模型的投影二值图和二维影像的前后景二值图的异或累加值作为优化条件,利用单纯形法优化并求取二维影像与三维模型的相对位置。
所述初始位置设置模块具体为:首先根据二维影像的EXIF信息,计算拍摄二维影像时的视场角;然后将三维模型和二维影像显示在同一个三维空间中,根据计算得出的拍摄二维影像时的视场角设置三维空间视场角大小,调整三维模型相对于二维影像中三维模型边界的一个初始相对位置。
所述种子点获取模块具体为:根据二维影像与三维模型的初始相对位置将三维模型投射在二维影像平面上,得到二值化影像,并对二值化影像进行腐蚀和膨胀处理,自动获取二维影像中前景和后景的种子点。
所述分离模块具体为:采用GraphCuts算法,将二维影像中前景和后景的种子点作为GraphCuts算法的输入,GraphCuts算法的输出为二维影像的前后景二值图。
所述投影二值图生成模块具体为:
首先确定三维模型与二维影像的相对位置的六个调整参数,初始化三维模型相对二维影像位置的七个初始解,其中每个初始解包含六个调整参数,初始化收敛条件、扩张系数和收缩系数;
然后根据每个初始解中的六个调整参数调整三维模型的位置,并将每次调整后的三维模型分别投影到二维影像上,获得三维模型的七个投影二值图;
所述相对位置生成模块具体为:
首先,获取三维模型的七个投影二值图和二维影像的前后景二值图的异或累加值,并将所述异或累加值作为三维模型相对二维影像位置的七个初始解所对应的误差,并对七个初始解的误差进行误差排序;
然后,计算当前七个初始解所对应的误差的迭代误差,并判断迭代误差是否满足收敛条件;
接着,如果迭代误差不满足收敛条件,根据七个初始解所对应的误差的大小和/或扩张系数和/或收缩系数计算三维模型相对二维影像位置的反射点或压缩点或扩张点,并用反射点或压缩点或扩张点相对二维影像位置的初始解替代原七个初始解中误差最大的初始解,得到替换后的7个初始解,并返回至投影二值图生成模块中;
最后,如果迭代误差满足收敛条件,获得七个初始解所对应的误差中误差最小的初始解,根据误差最小的初始解中的六个调整参数调整三维模型的空间位置,此时三维模型与二维影像的相对位置关系即为拍照时二维影像与三维模型的相对位置关系。
本发明的自动重建二维影像与三维模型准确相对位置的***是根据给定的三维模型相对于二维影像的初始位置,选取二维影像分割的种子点,将二维影像中的模型部分与背景分离开来,通过调整三维空间中模型相对于影像的位置,利用单纯形法求取准确的相对位置;本发明充分利用了三维几何形状信息和二维纹理信息,基于图像分割技术和单纯形算法,尽量减少人工交互的工作,自动重建二维影像与三维模型的准确相对位置,减少人工干预的工作量。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。