一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

三维模型构建方法、装置及计算机可读存储介质与流程

2022-05-21 05:45:12 来源:中国专利 TAG:


1.本发明涉及图像处理技术领域,具体涉及一种三维模型构建方法、装置及计算机可读存储介质。


背景技术:

2.随着显示技术和图像处理技术的快速发展,对使用显示器件显示场景(三维空间)的三维空间图像的需求日益增长。可以使用三维空间的三维模型的构建方法基于三维空间的二维全景图像获取三维空间的三维模型,并在显示阶段,基于获取的三维空间的三维模型渲染场景的三维空间图像。
3.相关技术中,当从一张全景图像恢复一个三维模型时,离全景相机近的体素往往具有更高的可视质量,相反,离相机越远的体素可视质量越差。


技术实现要素:

4.本发明实施例要解决的技术问题是提供一种三维模型构建方法、装置及计算机可读存储介质,能够提高构建的三维模型的质量。
5.根据本发明实施例的一个方面,提供了一种三维模型构建方法,包括:
6.获取同一空间的n张全景图像,所述n张全景图像为利用全景相机在n个不同位置分别拍摄所述空间得到,n为大于1的整数;
7.利用每张全景图像生成一个三维模型,得到n个三维模型;
8.利用所述空间中的目标对象对所述n个三维模型进行对齐;
9.在对齐后的n个三维模型中检测同构体素和异构体素;
10.对所述异构体素进行体素的三维坐标和颜色值的更正,对所述同构体素进行颜色值的增强。
11.此外,根据本发明的至少一个实施例,所述利用每张全景图像生成一个三维模型包括:
12.在所述全景图像中检测墙面角点的二维坐标,利用所述二维坐标计算所述墙面角点的三维坐标;
13.利用所述墙面角点的三维坐标确定拍摄所述全景图像的全景相机的三维坐标,所述全景相机的三维坐标为所述三维模型的三维坐标系的坐标原点;
14.利用所述墙面角点的三维坐标计算得到三维模型上每个体素在所述三维坐标系中的三维坐标,并利用所述全景图像确定三维模型上每个体素的颜色值。
15.此外,根据本发明的至少一个实施例,所述利用所述空间中的目标对象对所述n个三维模型进行对齐包括:
16.在所述n张全景图像中检测相同的目标对象;
17.在每张全景图像中计算所述目标对象的二维坐标;
18.利用所述目标对象的二维坐标计算所述目标对象在三维模型中的三维坐标,选定
所述n个三维模型中的一三维模型作为基准三维模型,所述目标对象在所述基准三维模型中的三维坐标为基准三维坐标,计算所述目标对象在其他三维模型中的三维坐标相对于所述基准三维坐标的三维位移;
19.基于所述三维位移和所述基准三维模型的坐标原点计算所述其他三维模型的体素的三维坐标,将所述其他三维模型与所述基准三维模型对齐。
20.此外,根据本发明的至少一个实施例,所述在对齐后的n个三维模型中检测同构体素和异构体素包括:
21.在对齐后的n个三维模型中选取一参照模型,对于所述参照模型的每一第一体素,在其他三维模型中确定与所述第一体素对应的第二体素,所述第一体素与所述第二体素在所述空间中为同一物理点;
22.分别计算所述第一体素与每一第二体素之间的三维距离,若任一所述三维距离大于预设阈值,则所述第一体素与对应的第二体素属于异构体素;若所有所述三维距离均不大于预设阈值,则所述第一体素与对应的第二体素属于同构体素。
23.此外,根据本发明的至少一个实施例,所述预设阈值为5个体素。
24.此外,根据本发明的至少一个实施例,所述参照模型的至少部分第一体素与所述基准三维模型的坐标原点之间的三维距离小于对应的第二体素与所述基准三维模型的坐标原点之间的三维距离。
25.此外,根据本发明的至少一个实施例,所述对所述异构体素进行体素的三维坐标和颜色值的更正,对所述同构体素进行颜色值的增强包括:
26.所述第一体素包括属于异构体素的第一异构体素,计算所述第一异构体素对应的第二体素与所述参照模型对应的全景相机的三维距离,利用三维距离最大的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值;
27.所述第一体素包括属于同构体素的第一同构体素,计算所述第一同构体素与所有全景相机之间的三维距离,利用所述第一同构体素与所有全景相机之间的三维距离确定所述第一同构体素的颜色值。
28.此外,根据本发明的至少一个实施例,n=2,所述n张全景图像分别为利用全景相机a和全景相机b拍摄得到,全景相机a拍摄得到的全景图像恢复的三维模型作为参照模型,所述参照模型中的第一同构体素的颜色值c利用以下公式确定:
[0029][0030]
其中da是第一同构体素与全景相机a之间的三维距离,db是第一同构体素与全景相机b之间的三维距离,α是预设的加权系数,ca是第一同构体素的原始颜色值,cb是全景相机b拍摄得到的全景图像恢复的三维模型中第二体素的颜色值。
[0031]
根据本发明实施例的另一方面,提供了一种三维模型构建装置,包括:
[0032]
获取单元,用于获取同一空间的n张全景图像,所述n张全景图像为利用全景相机在n个不同位置分别拍摄所述空间得到,n为大于1的整数;
[0033]
三维模型生成单元,用于利用每张全景图像生成一个三维模型,得到n个三维模型;
[0034]
对齐单元,用于利用所述空间中的目标对象对所述n个三维模型进行对齐;
[0035]
检测单元,用于在对齐后的n个三维模型中检测同构体素和异构体素;
[0036]
处理单元,用于对所述异构体素进行体素的三维坐标和颜色值的更正,对所述同构体素进行颜色值的增强。
[0037]
此外,根据本发明的至少一个实施例,所述三维模型生成单元具体用于在所述全景图像中检测墙面角点的二维坐标,利用所述二维坐标计算所述墙面角点的三维坐标;利用所述墙面角点的三维坐标确定拍摄所述全景图像的全景相机的三维坐标,所述全景相机的三维坐标为所述三维模型的三维坐标系的坐标原点;利用所述墙面角点的三维坐标计算得到三维模型上每个体素在所述三维坐标系中的三维坐标,并利用所述全景图像确定三维模型上每个体素的颜色值。
[0038]
此外,根据本发明的至少一个实施例,所述对齐单元具体用于在所述n张全景图像中检测相同的目标对象;在每张全景图像中计算所述目标对象的二维坐标;利用所述目标对象的二维坐标计算所述目标对象在三维模型中的三维坐标,选定所述n个三维模型中的一三维模型作为基准三维模型,所述目标对象在所述基准三维模型中的三维坐标为基准三维坐标,计算所述目标对象在其他三维模型中的三维坐标相对于所述基准三维坐标的三维位移;基于所述三维位移和所述基准三维模型的坐标原点计算所述其他三维模型的体素的三维坐标,将所述其他三维模型与所述基准三维模型对齐。
[0039]
此外,根据本发明的至少一个实施例,所述检测单元具体用于在对齐后的n个三维模型中选取一参照模型,对于所述参照模型的每一第一体素,在其他三维模型中确定与所述第一体素对应的第二体素,所述第一体素与所述第二体素在所述空间中为同一物理点;分别计算所述第一体素与每一第二体素之间的三维距离,若任一所述三维距离大于预设阈值,则所述第一体素与对应的第二体素属于异构体素;若所有所述三维距离均不大于预设阈值,则所述第一体素与对应的第二体素属于同构体素。
[0040]
此外,根据本发明的至少一个实施例,所述第一体素包括属于异构体素的第一异构体素,所述第一体素包括属于同构体素的第一同构体素;
[0041]
所述处理单元具体用于计算所述第一异构体素对应的第二体素与所述参照模型对应的全景相机的三维距离,利用三维距离最大的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值;计算所述第一同构体素与所有全景相机之间的三维距离,利用所述第一同构体素与所有全景相机之间的三维距离确定所述第一同构体素的颜色值。
[0042]
本发明实施例还提供了一种三维模型构建装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的三维模型构建方法的步骤。
[0043]
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的三维模型构建方法的步骤。
[0044]
与现有技术相比,本发明实施例提供的三维模型构建方法、装置及计算机可读存储介质,获取同一空间的多张全景图像,利用多张全景图像生成三维模型,对多个三维模型进行对齐,利用对齐后的三维模型中检测同构体素和异构体素,对异构体素进行体素的三维坐标和颜色值的更正,对同构体素进行颜色值的增强,能够得到高可视质量的三维模型。
附图说明
[0045]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]
图1为利用全景图像恢复三维模型的示意图;
[0047]
图2为本发明实施例的三维模型构建方法的流程示意图;
[0048]
图3为本发明实施例利用设置在两个不同位置的全景相机对同一空间拍摄得到的两张全景图像;
[0049]
图4为本发明实施例利用全景图像生成三维模型的流程示意图;
[0050]
图5为本发明实施例将图3所示的两个全景图像恢复为三维模型的示意图;
[0051]
图6为本发明实施例对三维模型进行对齐的流程示意图;
[0052]
图7为本发明实施例确定目标对象的示意图;
[0053]
图8为本发明实施例对两个三维模型对齐后的示意图;
[0054]
图9为本发明实施例检测同构体素和异构体素的流程示意图;
[0055]
图10为本发明实施例对异构体素进行体素的三维坐标和颜色值的更正后的效果示意图;
[0056]
图11为本发明实施例对异构体素和同构体素进行体素的三维坐标以及颜色值的更正后的效果示意图;
[0057]
图12为本发明实施例的三维模型构建装置的一种结构示意图;
[0058]
图13为本发明实施例的三维模型构建装置的再一种结构示意图。
具体实施方式
[0059]
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
[0060]
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
[0061]
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0062]
当利用一张全景图像恢复一个三维模型时,离拍摄该全景图像的全景相机近的体素往往具有更高的可视质量。相反,离全景相机越远,体素的可视质量越差。主要有2个原因:第一,以图1中的右图为例,右图为利用全景相机b拍摄得到,其中,k2区域与全景相机b的距离较远,k2区域的体素的可视质量较差,这是因为k2区域的体素往往是利用插值生成
的。第二,以图1中的左图为例,左图为利用全景相机a拍摄得到,因为远离全景相机a的墙面角点被遮挡,利用全景相机a拍摄到的全景图像只能恢复部分三维模型,导致被遮挡的k1区域的体素的可视质量较差。综上,导致三维模型的可视质量较差。
[0063]
本发明的实施例提供一种三维模型构建方法、装置及计算机可读存储介质,能够提高构建的三维模型的质量。
[0064]
实施例一
[0065]
本发明的实施例提供一种三维模型构建方法,如图2所示,包括:
[0066]
步骤101:获取同一空间的n张全景图像,所述n张全景图像为利用全景相机在n个不同位置分别拍摄所述空间得到,n为大于1的整数;
[0067]
本实施例中,可以设置一个或两个或更多个全景相机,如果设置一个全景相机,可以利用该全景相机在不同时刻不同位置拍摄同一空间得到多张全景图像;如果设置两个或更多个全景相机,该两个或更多个全景相机位于同一空间的不同位置,利用该两个或更多个全景相机可以拍摄得到该空间的多张全景图像,利用该多张全景图像可以提高生成的关于该空间的三维模型的可视质量。设置的全景相机的数量越多,最终生成的三维模型的可视质量越高,但同时会增加成本以及计算的复杂度,一些实施例中,n的取值可以为2,利用设置在两个不同位置的全景相机可以拍摄得到如图3所示的两张全景图像,该两张全景图像对应同一空间;或者利用一个全景相机在不同位置可以拍摄得到如图3所示的两张全景图像,该两张全景图像对应同一空间。
[0068]
步骤102:利用每张全景图像生成一个三维模型,得到n个三维模型;
[0069]
如图4所示,步骤102包括以下步骤:
[0070]
步骤1021:在所述全景图像中检测墙面角点的二维坐标,利用所述二维坐标计算所述墙面角点的三维坐标;
[0071]
具体地,可以利用深度学习算法在全景图像中检测墙面角点的二维坐标,当然,本实施例并不局限于利用深度学习算法在全景图像中检测墙面角点的二维坐标,还可以采用其他算法深度学习算法在全景图像中检测墙面角点的二维坐标。之后,利用墙面角点的二维坐标计算墙面角点的三维坐标。如图5所示,墙面角点为空间中相邻三面墙的交点,利用墙面角点的坐标可以确定空间内每一物理点的三维坐标。
[0072]
步骤1022:利用所述墙面角点的三维坐标确定拍摄所述全景图像的全景相机的三维坐标,所述全景相机的三维坐标为所述三维模型的三维坐标系的坐标原点;
[0073]
如图5所示,利用所述墙面角点的三维坐标确定拍摄所述全景图像的全景相机的三维坐标,即图中o点的三维坐标,o点即是利用该全景图像恢复的三维模型的三维坐标系的坐标原点,在该三维坐标系中,o的坐标为(0,0,0),该三维坐标系包括x轴、y轴和z轴,三维模型中任一体素的三维坐标为(x,y,z)。
[0074]
步骤1023:利用所述墙面角点的三维坐标计算得到三维模型上每个体素在所述三维坐标系中的三维坐标,并利用所述全景图像确定三维模型上每个体素的颜色值。
[0075]
其中,体素是体积元素(volume pixel)的简称,包含体素的立体可以通过立体渲染或者提取给定阈值轮廓的多边形等值面表现出来。体素是数字数据于三维空间分割上的最小单位,用于三维成像、科学数据与医学影像等领域。
[0076]
经过上述步骤1021-1023,可以得到全景图像对应的三维模型,每一全景图像对应
一个三维模型和全景相机的三维坐标,在三维模型中,三维坐标系的原点为对应的全景相机的三维坐标。
[0077]
将图3中所示的两个全景图像恢复为三维模型后,可以得到如图5所示的两个三维模型,其中,图3中左边的全景图像对应图5中左边的三维模型,图3中右边的全景图像对应图5中右边的三维模型,图5所示的两个三维模型是对应同一空间的。
[0078]
步骤103:利用所述空间中的目标对象对所述n个三维模型进行对齐;
[0079]
如图6所示,步骤103包括以下步骤:
[0080]
步骤1031:在所述n张全景图像中检测相同的目标对象;
[0081]
可以将空间中具有显著特征的物体作为目标对象,比如将空间中的门作为目标对象。
[0082]
步骤1032:在每张全景图像中计算所述目标对象的二维坐标;
[0083]
一具体示例中,可以在图3所示的两张全景图像中分别计算目标对象的二维坐标。
[0084]
步骤1033:利用所述目标对象的二维坐标计算所述目标对象在三维模型中的三维坐标,选定所述n个三维模型中的一三维模型作为基准三维模型,所述目标对象在所述基准三维模型中的三维坐标为基准三维坐标,计算所述目标对象在其他三维模型中的三维坐标相对于所述基准三维坐标的三维位移;
[0085]
如图7所示,将其中一个门的中心点作为目标对象,该目标对象在左边的三维模型中的三维坐标为(x1,y1,z1),该目标对象在右边的三维模型中的三维坐标为(x1’,y1’,z1’),比如可以将右边的三维模型作为基准三维模型,通过三维坐标(x1,y1,z1)和(x1’,y1’,z1’)计算该目标对象在左边的三维模型中相对于该目标对象在右边的三维模型中的三维位移d1;或者将另一个门的中心点作为目标对象,该目标对象在左边的三维模型中的三维坐标为(x2,y2,z2),该目标对象在右边的三维模型中的三维坐标为(x2’,y2’,z2’),比如可以将右边的三维模型作为基准三维模型,通过三维坐标(x2,y2,z2)和(x2’,y2’,z2’)计算该目标对象在左边的三维模型中相对于该目标对象在右边的三维模型中的三维位移d2。
[0086]
步骤1034:基于所述三维位移和所述基准三维模型的坐标原点计算所述其他三维模型的体素的三维坐标,将所述其他三维模型与所述基准三维模型对齐。
[0087]
对齐后的n个三维模型被对齐到同一三维坐标系中,三维模型中任一体素在该三维坐标系中的三维坐标为(xa,ya,za)或(xb,yb,zb)。一具体示例中,将图7所示的两个三维模型对齐后如图8所示,该两个三维模型的坐标原点均为基准三维模型的坐标原点。
[0088]
步骤104:在对齐后的n个三维模型中检测同构体素和异构体素;
[0089]
如图9所示,步骤104包括以下步骤:
[0090]
步骤1041:在对齐后的n个三维模型中选取一参照模型,对于所述参照模型的每一第一体素,在其他三维模型中确定与所述第一体素对应的第二体素,所述第一体素与所述第二体素在所述空间中为同一物理点;
[0091]
其中,参照模型可以与基准三维模型为同一三维模型,也可以为不同三维模型,为了便于区分,将参照模型中的体素定义为第一体素,对于所述参照模型的每一第一体素,在其他三维模型(即除参照模型之外的三维模型)中确定与所述第一体素对应的第二体素,所述第一体素与对应的第二体素在所述空间中为同一物理点,也就是它们是物理世界中的同
一点。
[0092]
在选取参照模型时,可以按照以下准则:所述参照模型的至少部分第一体素与所述基准三维模型的坐标原点之间的三维距离小于对应的第二体素与所述基准三维模型的坐标原点之间的三维距离。选择满足上述准则的三维模型作为参照模型,这样可以使得其他三维模型相比参照模型的空间立体感更强,之后可以利用其他三维模型的体素对参照模型的体素进行修正,得到最终的三维模型。
[0093]
步骤1042:分别计算所述第一体素与每一第二体素之间的三维距离,若任一所述三维距离大于预设阈值,则所述第一体素与对应的第二体素属于异构体素;若所有所述三维距离均不大于预设阈值,则所述第一体素与对应的第二体素属于同构体素。
[0094]
一些实施例中,所述预设阈值为5个体素。当然,预设阈值的取值并不局限为5个体素,还可以根据需要设置为其他值。
[0095]
步骤105:对所述异构体素进行体素的三维坐标和颜色值的更正,对所述同构体素进行颜色值的增强。
[0096]
本实施例中,对于异构体素和同构体素执行不同的操作,异构体素所在区域为其他三维模型与参照模型区别比较大的区域,也是可视质量比较差的区域,因此需要同时进行体素的三维坐标的更正和颜色值的更正;同构体素所在区域为其他三维模型与参照模型区别比较小的区域,也是可视质量比较好的区域,只需要进行颜色值的增强即可。
[0097]
一些实施例中,所述第一体素包括属于异构体素的第一异构体素,计算所述第一异构体素对应的第二体素与所述参照模型对应的全景相机的三维距离,利用三维距离最大的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值。如果仅有两个三维模型,则利用除参照模型之外的那个三维模型的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值;如果有三个以上的三维模型,则分别计算除参照模型之外的其他三维模型的所述三维距离,选择其中最大的三维距离,利用与该最大的三维距离对应的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值。如图10所示,在对异构体素进行体素的三维坐标和颜色值的更正后,可以将图10左侧所示的部分三维模型转换为图10右侧所示的三维模型,可以看出,三维模型的可视质量大大提高。
[0098]
对于第一异构体素来说,对应的第二体素与参照模型对应的全景相机的三维距离更大,也就是第二体素所属的三维模型在该区域(即第一异构体素所在区域)的空间立体感更强,相比参照模型更能体现该区域空间的凹凸变化,因此,利用第二体素的三维坐标和颜色值对第一异构体素的三维坐标和颜色值进行替换,可以提高三维模型在该区域的可视质量。
[0099]
一些实施例中,所述第一体素包括属于同构体素的第一同构体素,计算所述第一同构体素与所有全景相机之间的三维距离,利用所述第一同构体素与所有全景相机之间的三维距离确定所述第一同构体素的颜色值。
[0100]
一具体示例中,所述n张全景图像分别为利用全景相机a和全景相机b拍摄得到,全景相机a拍摄得到的全景图像恢复的三维模型作为参照模型,所述参照模型中的第一同构体素的颜色值c利用以下公式确定:
[0101][0102]
其中da是第一同构体素与全景相机a之间的三维距离,db是第一同构体素与全景相机b之间的三维距离,α是预设的加权系数,ca是第一同构体素的原始颜色值,cb是全景相机b拍摄得到的全景图像恢复的三维模型中第二体素的颜色值。
[0103]
如图11所示,在对异构体素和同构体素进行体素的三维坐标以及颜色值的更正后,可以将图11左侧所示的两个三维模型转换为图11右侧所示的三维模型。如图11所示,左上角的三维模型的可视质量差的区域,可以利用左下角的三维模型的对应区域的体素进行替换,从而得到图11右侧所示的三维模型,可以看出,相比图11左侧所示的两个三维模型,图11右侧所示的三维模型的可视质量大大提高。
[0104]
本实施例中,获取同一空间的多张全景图像,利用多张全景图像生成三维模型,对多个三维模型进行对齐,利用对齐后的三维模型中检测同构体素和异构体素,对异构体素进行体素的三维坐标和颜色值的更正,对同构体素进行颜色值的增强,能够得到高可视质量的三维模型。
[0105]
实施例二
[0106]
本发明实施例还提供了一种三维模型构建装置,如图12所示,包括:
[0107]
获取单元21,用于获取同一空间的n张全景图像,所述n张全景图像为利用全景相机在n个不同位置分别拍摄所述空间得到,n为大于1的整数;
[0108]
本实施例中,可以设置一个或两个或更多个全景相机,如果设置一个全景相机,可以利用该全景相机在不同时刻不同位置拍摄同一空间得到多张全景图像;如果设置两个或更多个全景相机,该两个或更多个全景相机位于同一空间的不同位置,利用该两个或更多个全景相机可以拍摄得到该空间的多张全景图像,利用该多张全景图像可以提高生成的关于该空间的三维模型的可视质量。设置的全景相机的数量越多,最终生成的三维模型的可视质量越高,但同时会增加成本以及计算的复杂度,一些实施例中,n的取值可以为2,利用设置在两个不同位置的全景相机可以拍摄得到如图3所示的两张全景图像,该两张全景图像对应同一空间;或者利用一个全景相机在不同位置可以拍摄得到如图3所示的两张全景图像,该两张全景图像对应同一空间。
[0109]
三维模型生成单元22,用于利用每张全景图像生成一个三维模型,得到n个三维模型;
[0110]
所述三维模型生成单元22具体用于在所述全景图像中检测墙面角点的二维坐标,利用所述二维坐标计算所述墙面角点的三维坐标;利用所述墙面角点的三维坐标确定拍摄所述全景图像的全景相机的三维坐标,所述全景相机的三维坐标为所述三维模型的三维坐标系的坐标原点;利用所述墙面角点的三维坐标计算得到三维模型上每个体素在所述三维坐标系中的三维坐标,并利用所述全景图像确定三维模型上每个体素的颜色值。
[0111]
具体地,可以利用深度学习算法在全景图像中检测墙面角点的二维坐标,当然,本实施例并不局限于利用深度学习算法在全景图像中检测墙面角点的二维坐标,还可以采用其他算法深度学习算法在全景图像中检测墙面角点的二维坐标。之后,利用墙面角点的二维坐标计算墙面角点的三维坐标。如图5所示,墙面角点为空间中相邻三面墙的交点,利用墙面角点的坐标可以确定空间内每一物理点的三维坐标。如图5所示,利用所述墙面角点的
三维坐标确定拍摄所述全景图像的全景相机的三维坐标,即图中o点的三维坐标,o点即是利用该全景图像恢复的三维模型的三维坐标系的坐标原点,在该三维坐标系中,o的坐标为(0,0,0),该三维坐标系包括x轴、y轴和z轴,三维模型中任一体素的三维坐标为(x,y,z)。
[0112]
三维模型生成单元22生成三维模型后,每一全景图像对应一个三维模型和全景相机的三维坐标,在三维模型中,三维坐标系的原点为对应的全景相机的三维坐标。
[0113]
对齐单元23,用于利用所述空间中的目标对象对所述n个三维模型进行对齐;
[0114]
所述对齐单元23具体用于在所述n张全景图像中检测相同的目标对象;在每张全景图像中计算所述目标对象的二维坐标;利用所述目标对象的二维坐标计算所述目标对象在三维模型中的三维坐标,选定所述n个三维模型中的一三维模型作为基准三维模型,所述目标对象在所述基准三维模型中的三维坐标为基准三维坐标,计算所述目标对象在其他三维模型中的三维坐标相对于所述基准三维坐标的三维位移;基于所述三维位移和所述基准三维模型的坐标原点计算所述其他三维模型的体素的三维坐标,将所述其他三维模型与所述基准三维模型对齐。
[0115]
具体地,可以将空间中具有显著特征的物体作为目标对象,比如将空间中的门作为目标对象。如图7所示,将其中一个门的中心点作为目标对象,该目标对象在左边的三维模型中的三维坐标为(x1,y1,z1),该目标对象在右边的三维模型中的三维坐标为(x1’,y1’,z1’),比如可以将右边的三维模型作为基准三维模型,通过三维坐标(x1,y1,z1)和(x1’,y1’,z1’)计算该目标对象在左边的三维模型中相对于该目标对象在右边的三维模型中的三维位移d1;或者将另一个门的中心点作为目标对象,该目标对象在左边的三维模型中的三维坐标为(x2,y2,z2),该目标对象在右边的三维模型中的三维坐标为(x2’,y2’,z2’),比如可以将右边的三维模型作为基准三维模型,通过三维坐标(x2,y2,z2)和(x2’,y2’,z2’)计算该目标对象在左边的三维模型中相对于该目标对象在右边的三维模型中的三维位移d2。基于所述三维位移和所述基准三维模型的坐标原点计算所述其他三维模型的体素的三维坐标,将所述其他三维模型与所述基准三维模型对齐。对齐后的n个三维模型被对齐到同一三维坐标系中,三维模型中任一体素在该三维坐标系中的三维坐标为(xa,ya,za)。一具体示例中,将图7所示的两个三维模型对齐后如图8所示,该两个三维模型的坐标原点均为基准三维模型的坐标原点。
[0116]
检测单元24,用于在对齐后的n个三维模型中检测同构体素和异构体素;
[0117]
检测单元24具体用于在对齐后的n个三维模型中选取一参照模型,对于所述参照模型的每一第一体素,在其他三维模型中确定与所述第一体素对应的第二体素,所述第一体素与所述第二体素在所述空间中为同一物理点;分别计算所述第一体素与每一第二体素之间的三维距离,若任一所述三维距离大于预设阈值,则所述第一体素与对应的第二体素属于异构体素;若所有所述三维距离均不大于预设阈值,则所述第一体素与对应的第二体素属于同构体素。
[0118]
具体地,参照模型可以与基准三维模型为同一三维模型,也可以为不同三维模型,为了便于区分,将参照模型中的体素定义为第一体素,对于所述参照模型的每一第一体素,在其他三维模型(即除参照模型之外的三维模型)中确定与所述第一体素对应的第二体素,所述第一体素与对应的第二体素在所述空间中为同一物理点,也就是它们是物理世界中的同一点。
[0119]
在选取参照模型时,可以按照以下准则:所述参照模型的至少部分第一体素与所述基准三维模型的坐标原点之间的三维距离小于对应的第二体素与所述基准三维模型的坐标原点之间的三维距离。选择满足上述准则的三维模型作为参照模型,这样可以使得其他三维模型相比参照模型的空间立体感更强,之后可以利用其他三维模型的体素对参照模型的体素进行修正,得到最终的三维模型。
[0120]
一些实施例中,所述预设阈值为5个体素。当然,预设阈值的取值并不局限为5个体素,还可以根据需要设置为其他值。
[0121]
处理单元25,用于对所述异构体素进行体素的三维坐标和颜色值的更正,对所述同构体素进行颜色值的增强。
[0122]
所述处理单元25具体用于计算所述第一异构体素对应的第二体素与所述参照模型对应的全景相机的三维距离,利用三维距离最大的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值;计算所述第一同构体素与所有全景相机之间的三维距离,利用所述第一同构体素与所有全景相机之间的三维距离确定所述第一同构体素的颜色值。
[0123]
本实施例中,处理单元25对于异构体素和同构体素执行不同的操作,异构体素所在区域为其他三维模型与参照模型区别比较大的区域,也是可视质量比较差的区域,因此需要同时进行体素的三维坐标的更正和颜色值的更正;同构体素所在区域为其他三维模型与参照模型区别比较小的区域,也是可视质量比较好的区域,只需要进行颜色值的增强即可。
[0124]
一些实施例中,所述第一体素包括属于异构体素的第一异构体素,处理单元25计算所述第一异构体素对应的第二体素与所述参照模型对应的全景相机的三维距离,利用三维距离最大的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值。如果仅有两个三维模型,则利用除参照模型之外的那个三维模型的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值;如果有三个以上的三维模型,则分别计算除参照模型之外的其他三维模型的所述三维距离,选择其中最大的三维距离,利用与该最大的三维距离对应的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值。如图10所示,在对异构体素进行体素的三维坐标和颜色值的更正后,可以将图10左侧所示的部分三维模型转换为图10右侧所示的三维模型,可以看出,三维模型的可视质量大大提高。
[0125]
对于第一异构体素来说,对应的第二体素与参照模型对应的全景相机的三维距离更大,也就是第二体素所属的三维模型在该区域(即第一异构体素所在区域)的空间立体感更强,相比参照模型更能体现该区域空间的凹凸变化,因此,利用第二体素的三维坐标和颜色值对第一异构体素的三维坐标和颜色值进行替换,可以提高三维模型在该区域的可视质量。
[0126]
一些实施例中,所述第一体素包括属于同构体素的第一同构体素,处理单元25计算所述第一同构体素与所有全景相机之间的三维距离,利用所述第一同构体素与所有全景相机之间的三维距离确定所述第一同构体素的颜色值。
[0127]
一具体示例中,所述n张全景图像分别为利用全景相机a和全景相机b拍摄得到,全景相机a拍摄得到的全景图像恢复的三维模型作为参照模型,所述参照模型中的第一同构
体素的颜色值c利用以下公式确定:
[0128][0129]
其中da是第一同构体素与全景相机a之间的三维距离,db是第一同构体素与全景相机b之间的三维距离,α是预设的加权系数,ca是第一同构体素的原始颜色值,cb是全景相机b拍摄得到的全景图像恢复的三维模型中第二体素的颜色值。
[0130]
如图11所示,在对异构体素和同构体素进行体素的三维坐标以及颜色值的更正后,可以将图11左侧所示的两个三维模型转换为图11右侧所示的三维模型。如图11所示,左上角的三维模型的可视质量差的区域,可以利用左下角的三维模型的对应区域的体素进行替换,从而得到图11右侧所示的三维模型,可以看出,相比图11左侧所示的两个三维模型,图11右侧所示的三维模型的可视质量大大提高。
[0131]
本实施例中,获取同一空间的多张全景图像,利用多张全景图像生成三维模型,对多个三维模型进行对齐,利用对齐后的三维模型中检测同构体素和异构体素,对异构体素进行体素的三维坐标和颜色值的更正,对同构体素进行颜色值的增强,能够得到高可视质量的三维模型。
[0132]
实施例三
[0133]
本发明实施例还提供了一种三维模型构建装置30,如图13所示,包括:
[0134]
处理器32;和
[0135]
存储器34,在所述存储器34中存储有计算机程序指令,
[0136]
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器32执行以下步骤:
[0137]
获取同一空间的n张全景图像,所述n张全景图像为利用全景相机在n个不同位置分别拍摄所述空间得到,n为大于1的整数;
[0138]
利用每张全景图像生成一个三维模型,得到n个三维模型;
[0139]
利用所述空间中的目标对象对所述n个三维模型进行对齐;
[0140]
在对齐后的n个三维模型中检测同构体素和异构体素;
[0141]
对所述异构体素进行体素的三维坐标和颜色值的更正,对所述同构体素进行颜色值的增强。
[0142]
进一步地,如图13所示,三维模型构建装置30还包括网络接口31、输入设备33、硬盘35和显示设备36。
[0143]
上述各个接口和设备之间可以通过总线架构互连。总线架构可以包括任意数量的互联的总线和桥。具体由处理器32代表的一个或者多个中央处理器(cpu),以及由存储器34代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。
[0144]
所述网络接口31,可以连接至网络(如因特网、局域网等),从网络中获取相关数据,例如全景图像等,并可以保存在硬盘35中。
[0145]
所述输入设备33,可以接收操作人员输入的各种指令,并发送给处理器32以供执
行。所述输入设备33可以包括键盘或者点击设备(例如,鼠标、轨迹球(trackball)、触感板或者触摸屏等)。
[0146]
所述显示设备36,可以将处理器32执行指令获得的结果进行显示。
[0147]
所述存储器34,用于存储操作系统运行所必须的程序和数据,以及处理器32计算过程中的中间结果等数据。
[0148]
可以理解,本发明实施例中的存储器34可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。本文描述的装置和方法的存储器34旨在包括但不限于这些和任意其它适合类型的存储器。
[0149]
在一些实施方式中,存储器34存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统341和应用程序342。
[0150]
其中,操作系统341,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序342,包含各种应用程序,例如浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序342中。
[0151]
上述处理器32,当调用并执行所述存储器34中所存储的应用程序和数据,具体的,可以是应用程序342中存储的程序或指令时,获取同一空间的n张全景图像,所述n张全景图像为利用全景相机在n个不同位置分别拍摄所述空间得到,n为大于1的整数;利用每张全景图像生成一个三维模型,得到n个三维模型;利用所述空间中的目标对象对所述n个三维模型进行对齐;在对齐后的n个三维模型中检测同构体素和异构体素;对所述异构体素进行体素的三维坐标和颜色值的更正,对所述同构体素进行颜色值的增强。
[0152]
进一步地,上述处理器32,当调用并执行所述存储器34中所存储的应用程序和数据,具体的,可以是应用程序342中存储的程序或指令时,在所述全景图像中检测墙面角点的二维坐标,利用所述二维坐标计算所述墙面角点的三维坐标;利用所述墙面角点的三维坐标确定拍摄所述全景图像的全景相机的三维坐标,所述全景相机的三维坐标为所述三维模型的三维坐标系的坐标原点;利用所述墙面角点的三维坐标计算得到三维模型上每个体素在所述三维坐标系中的三维坐标,并利用所述全景图像确定三维模型上每个体素的颜色值。
[0153]
进一步地,上述处理器32,当调用并执行所述存储器34中所存储的应用程序和数据,具体的,可以是应用程序342中存储的程序或指令时,在所述n张全景图像中检测相同的目标对象;在每张全景图像中计算所述目标对象的二维坐标;利用所述目标对象的二维坐标计算所述目标对象在三维模型中的三维坐标,选定所述n个三维模型中的一三维模型作为基准三维模型,所述目标对象在所述基准三维模型中的三维坐标为基准三维坐标,计算所述目标对象在其他三维模型中的三维坐标相对于所述基准三维坐标的三维位移;基于所述三维位移和所述基准三维模型的坐标原点计算所述其他三维模型的体素的三维坐标,将所述其他三维模型与所述基准三维模型对齐。
[0154]
进一步地,上述处理器32,当调用并执行所述存储器34中所存储的应用程序和数据,具体的,可以是应用程序342中存储的程序或指令时,在对齐后的n个三维模型中选取一
参照模型,对于所述参照模型的每一第一体素,在其他三维模型中确定与所述第一体素对应的第二体素,所述第一体素与所述第二体素在所述空间中为同一物理点;分别计算所述第一体素与每一第二体素之间的三维距离,若任一所述三维距离大于预设阈值,则所述第一体素与对应的第二体素属于异构体素;若所有所述三维距离均不大于预设阈值,则所述第一体素与对应的第二体素属于同构体素。
[0155]
进一步地,所述第一体素包括属于异构体素的第一异构体素,所述第一体素包括属于同构体素的第一同构体素,上述处理器32,当调用并执行所述存储器34中所存储的应用程序和数据,具体的,可以是应用程序342中存储的程序或指令时,计算所述第一异构体素对应的第二体素与所述参照模型对应的全景相机的三维距离,利用三维距离最大的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三维坐标和颜色值;计算所述第一同构体素与所有全景相机之间的三维距离,利用所述第一同构体素与所有全景相机之间的三维距离确定所述第一同构体素的颜色值。
[0156]
进一步地,n=2,所述n张全景图像分别为利用全景相机a和全景相机b拍摄得到,全景相机a拍摄得到的全景图像恢复的三维模型作为参照模型,上述处理器32,当调用并执行所述存储器34中所存储的应用程序和数据,具体的,可以是应用程序342中存储的程序或指令时,利用以下公式确定参照模型中的第一同构体素的颜色值c:
[0157][0158]
其中da是第一同构体素与全景相机a之间的三维距离,db是第一同构体素与全景相机b之间的三维距离,α是预设的加权系数,ca是第一同构体素的原始颜色值,cb是全景相机b拍摄得到的全景图像恢复的三维模型中第二体素的颜色值。
[0159]
本发明上述实施例揭示的方法可以应用于处理器32中,或者由处理器32实现。处理器32可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器32中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器32可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器34,处理器32读取存储器34中的信息,结合其硬件完成上述方法的步骤。
[0160]
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。
[0161]
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在
处理器外部实现。
[0162]
实施例四
[0163]
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器运行时,使得所述处理器执行以下步骤:
[0164]
获取同一空间的n张全景图像,所述n张全景图像为利用全景相机在n个不同位置分别拍摄所述空间得到,n为大于1的整数;
[0165]
利用每张全景图像生成一个三维模型,得到n个三维模型;
[0166]
利用所述空间中的目标对象对所述n个三维模型进行对齐;
[0167]
在对齐后的n个三维模型中检测同构体素和异构体素;
[0168]
对所述异构体素进行体素的三维坐标和颜色值的更正,对所述同构体素进行颜色值的增强。
[0169]
进一步地,所述计算机程序被处理器运行时,使得所述处理器执行以下步骤:
[0170]
在所述全景图像中检测墙面角点的二维坐标,利用所述二维坐标计算所述墙面角点的三维坐标;
[0171]
利用所述墙面角点的三维坐标确定拍摄所述全景图像的全景相机的三维坐标,所述全景相机的三维坐标为所述三维模型的三维坐标系的坐标原点;
[0172]
利用所述墙面角点的三维坐标计算得到三维模型上每个体素在所述三维坐标系中的三维坐标,并利用所述全景图像确定三维模型上每个体素的颜色值。
[0173]
进一步地,所述计算机程序被处理器运行时,使得所述处理器执行以下步骤:
[0174]
在所述n张全景图像中检测相同的目标对象;
[0175]
在每张全景图像中计算所述目标对象的二维坐标;
[0176]
利用所述目标对象的二维坐标计算所述目标对象在三维模型中的三维坐标,选定所述n个三维模型中的一三维模型作为基准三维模型,所述目标对象在所述基准三维模型中的三维坐标为基准三维坐标,计算所述目标对象在其他三维模型中的三维坐标相对于所述基准三维坐标的三维位移;
[0177]
基于所述三维位移和所述基准三维模型的坐标原点计算所述其他三维模型的体素的三维坐标,将所述其他三维模型与所述基准三维模型对齐。
[0178]
进一步地,所述计算机程序被处理器运行时,使得所述处理器执行以下步骤:
[0179]
在对齐后的n个三维模型中选取一参照模型,对于所述参照模型的每一第一体素,在其他三维模型中确定与所述第一体素对应的第二体素,所述第一体素与所述第二体素在所述空间中为同一物理点;
[0180]
分别计算所述第一体素与每一第二体素之间的三维距离,若任一所述三维距离大于预设阈值,则所述第一体素与对应的第二体素属于异构体素;若所有所述三维距离均不大于预设阈值,则所述第一体素与对应的第二体素属于同构体素。
[0181]
进一步地,所述第一体素包括属于异构体素的第一异构体素,所述第一体素包括属于同构体素的第一同构体素,所述计算机程序被处理器运行时,使得所述处理器执行以下步骤:
[0182]
计算所述第一异构体素对应的第二体素与所述参照模型对应的全景相机的三维距离,利用三维距离最大的第二体素的三维坐标和颜色值分别替换所述第一异构体素的三
维坐标和颜色值;
[0183]
计算所述第一同构体素与所有全景相机之间的三维距离,利用所述第一同构体素与所有全景相机之间的三维距离确定所述第一同构体素的颜色值。
[0184]
进一步地,所述n张全景图像分别为利用全景相机a和全景相机b拍摄得到,全景相机a拍摄得到的全景图像恢复的三维模型作为参照模型,所述计算机程序被处理器运行时,使得所述处理器执行以下步骤:
[0185]
利用以下公式确定所述参照模型中的第一同构体素的颜色值c:
[0186][0187]
其中da是第一同构体素与全景相机a之间的三维距离,db是第一同构体素与全景相机b之间的三维距离,α是预设的加权系数,ca是第一同构体素的原始颜色值,cb是全景相机b拍摄得到的全景图像恢复的三维模型中第二体素的颜色值。
[0188]
以上是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献