一种三维场景重建方法、装置、电子设备及可读存储介质与流程

未命名 10-28 阅读:178 评论:0


1.本发明实施例涉及三维重建技术领域,特别是涉及一种三维场景重建方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.三维重建就是利用各种传感器设备对真实物理场景进行扫描和计算处理、生成对应的数字化模型的技术,是三维视觉研究的关键问题之一,在过去几十年的发展历程中取得了许多研究成果。近年来,随着传感器和计算技术的进步,三维重建呈现出一些新的变化和特点,实时、精细、纹理/材质等多要素联合的三维重建方法成为业内人士追求的目标。三维重建需要考虑几何、纹理、材质、光照等多要素耦合,单纯重建几何目前已经有了比较完善的理论支撑和工程验证。纹理重建会受到几何和光照等因素的影响,但是,现有的纹理重建方案只是基于纹理图像进行纹理重建,没有考虑重建过程中几何和光照对采集图像的色彩影响的问题,使三维场景重建的精确度受影响。
3.鉴于此,如何提高三维场景重建的精确度成为本领域技术人员需要解决的问题。


技术实现要素:

4.本发明实施例的目的是提供一种三维场景重建方法、装置、电子设备及计算机可读存储介质,在使用过程中结合几何和亮度因素进行纹理图像的重建,利于提高三维场景重建的精确度和重建纹理的质量。
5.为解决上述技术问题,本发明实施例提供了一种三维场景重建方法,包括:
6.基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型;
7.采用基于所述当前帧图像得到的亮度图对所述更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像;
8.判断所述当前帧图像是否为最后一帧图像,若是,则将所述更新后的三维几何模型作为重建完成的三维几何模型,将与各所述表面体素分别对应的更新后的纹理图像作为重建完成的纹理图像,并基于所述重建完成的三维几何模型和所述重建完成的纹理图像得到重建后的三维场景;否则,将下一帧图像作为当前帧图像并返回执行所述基于当前帧图像对当前三维几何模型进行更新的步骤。
9.在一个实施例中,所述基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型,包括:
10.根据当前帧图像对当前三维几何模型中各体素内存储的符号距离进行更新,得到更新后的三维几何模型。
11.在一个实施例中,所述根据当前帧图像对当前三维几何模型中各体素内存储的符号距离进行更新,得到更新后的三维几何模型,包括:
12.基于当前帧图像及前一帧图像,得到与所述当前帧图像对应的当前相机位姿;
13.基于所述当前相机位姿及所述当前帧图像中每个像素的图像像素位置,计算所述
当前帧图像中每个所述像素各自对应的三维坐标;
14.基于当前三维几何模型的各个体素,确定出所述当前帧图像中的每个像素各自对应的体素;
15.针对每个所述体素,根据所述体素对应的像素的图像像素位置计算出当前符号距离;
16.采用所述当前符号距离和所述体素内存储的已存符号距离,得到更新后的符号距离,并采用所述更新后的符号距离替换所述已存符号距离,直至所有体素的已存符号距离均更新完成,得到更新后的三维几何模型。
17.在一个实施例中,所述基于当前帧图像及前一帧图像,得到与所述当前帧图像对应的当前相机位姿,包括:
18.对所述当前帧图像进行特征描述提取,得到多个当前图像特征;
19.将所述当前帧图像的多个当前图像特征与前一帧图像的多个图像特征进行特征匹配,得到图像特征之间的对应关系;
20.基于所述图像特征之间的对应关系,采用迭代最近点算法确定出所述当前帧图像对应的当前相机位姿。
21.在一个实施例中,所述采用基于所述当前帧图像得到的亮度图对所述更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像,包括:
22.从所述更新后的三维几何模型的各个体素中确定出各个表面体素;
23.根据所述当前帧图像,确定所述当前帧图像针对每个所述表面体素的当前纹理图像;
24.根据基于所述当前帧图像得到的亮度图,计算出所述表面体素对应的采样区域的亮度等级值;
25.根据所述亮度等级值与预设亮度等级值的大小关系,采用所述当前帧图像针对所述表面体素的当前纹理图像,对所述表面体素内存储的已存纹理图像进行更新,得到与所述表面体素对应的更新后的纹理图像;
26.根据各个所述表面体素各自对应的更新后的纹理图像,得到整体更新后的纹理图像。
27.在一个实施例中,所述根据所述当前帧图像,确定所述当前帧图像针对每个所述表面体素的当前纹理图像,包括:
28.针对每个所述表面体素,根据所述当前帧图像的各个像素各自对应的三维坐标,确定出所述表面体素对应的各个像素;
29.将与所述表面体素对应的各个像素沿所述表面体素的表面法向的方向进行投影,得到相对所述表面体素的投影区域;
30.采用预设像素对所述相对所述表面体素的投影区域进行采样,得到采样区域中每个采样像素的像素值,以得到所述当前帧图像针对所述表面体素的当前纹理图像。
31.在一个实施例中,所述将与所述表面体素对应的各个像素沿所述表面体素的表面法向的方向进行投影,得到相对所述表面体素的投影区域,包括:
32.根据所述表面体素内存储的已存符号距离,计算出所述表面体素的表面法向;
33.计算所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角;
34.基于所述夹角将与所述表面体素对应的各个像素沿所述表面体素的表面法向的方向进行投影,得到对应的投影区域。
35.在一个实施例中,所述当前帧图像的视点方向为根据所述当前帧图像对应的当前相机位姿确定的。
36.在一个实施例中,所述采用预设像素对所述相对所述表面体素的投影区域进行采样,得到采样区域中每个采样像素的像素值,包括:
37.根据所述预设像素的大小和所述投影区域,确定出采样区域的各顶点像素位置;
38.根据预设像素的大小、所述采样区域的各顶点像素位置和所述表面体素对应的像素在原采样图像中的图像像素位置,结合像素坐标计算关系式计算得出所述采样区域中对应的采样像素的像素坐标;
39.根据与所述像素坐标对应的目标像素在原采样图像中的像素值,计算出所述采样区域中所述像素坐标处的采样像素的像素值。
40.在一个实施例中,所述根据与所述像素坐标对应的目标像素在原采样图像中的像素值,计算出所述采样区域中所述像素坐标处的采样像素的像素值,包括:
41.在与所述像素坐标对应的目标像素为多个时,对多个所述目标像素在原采样图像中的像素值进行加权平均,得到所述采样区域中所述像素坐标处的采样像素的像素值。
42.在一个实施例中,所述像素坐标计算关系式为:
43.i=(u-u
min
)*w/(u
max-u
min
),
44.j=(v-v
min
)*h/(v
max-v
min
),其中,i表示采样像素的横坐标,j表示采样像素的纵坐标,u
max
表示采样区域横坐标最大值,u
min
表示采样区域横坐标最小值,v
max
表示采样区域纵坐标最大值,v
min
表示采样区域横坐标最小值,u表示像素对应的图像像素横坐标,v表示像素对应的图像像素纵坐标。
45.在一个实施例中,所述根据基于所述当前帧图像得到的亮度图,计算出所述表面体素对应的采样区域的亮度等级值,包括:
46.根据基于所述当前帧图像得到的亮度图,获取与所述表面体素对应的各个像素各自的亮度等级值;
47.将与所述表面体素对应的各个像素各自的亮度等级值进行平均,得到所述表面体素的亮度等级值。
48.在一个实施例中,在所述根据基于所述当前帧图像得到的亮度图,计算出所述表面体素对应的采样区域的亮度等级值之前,还包括:
49.根据所述当前帧图像的彩色图像,得到与所述当前帧图像对应的亮度图。
50.在一个实施例中,所述根据所述当前帧图像的彩色图像,得到与所述当前帧图像对应的亮度图,包括:
51.将所述当前帧图像的彩色图像转换为灰度图像;
52.针对所述灰度图像中的每个像素,按照所述像素的灰度值及预设亮度等级数量,确定所述像素的亮度等级值;
53.根据各个所述像素的亮度等级值,得到与所述当前帧图像对应的亮度图。
54.在一个实施例中,所述按照所述像素的灰度值及预设亮度等级数量,确定所述像
素的亮度等级值,包括:
55.根据所述像素的灰度值、所述预设亮度等级数量结合亮度等级计算关系式,计算得到所述像素的亮度等级值;其中:
56.所述亮度等级计算关系式为:h=a*n/255,h表示像素的亮度等级值,a表示像素的灰度值,n表示预设亮度等级数量。
57.在一个实施例中,所述根据所述亮度等级值与预设亮度等级值的大小关系,采用所述当前帧图像针对所述表面体素的当前纹理图像,对所述表面体素内存储的已存纹理图像进行更新,得到与所述表面体素对应的更新后的纹理图像,包括:
58.当所述亮度等级值大于所述预设亮度等级值时,直接将所述表面体素内存储的已存纹理图像作为与所述表面体素对应的更新后的纹理图像;
59.当所述亮度等级值小于所述预设亮度等级值时,将所述表面体素内存储的已存纹理图像更新为所述当前帧图像针对所述表面体素的当前纹理图像,得到与所述表面体素对应的更新后的纹理图像;
60.当所述亮度等级值等于所述预设亮度等级值时,将所述当前帧图像针对所述表面体素的当前纹理图像和所述表面体素内存储的已存纹理图像进行融合,并将融合后的纹理图像作为与所述表面体素对应的更新后的纹理图像。
61.在一个实施例中,所述将所述当前帧图像针对所述表面体素的当前纹理图像和所述表面体素内存储的已存纹理图像进行融合,包括:
62.计算所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角;
63.根据所述当前帧图像对应的当前相机位姿和前一帧图像对应的相机位姿,计算所述当前帧图像与所述前一帧图像之间的相机运动距离;
64.将所述相机运动距离进行归一化,得到归一化后的相机运动距离;
65.基于所述归一化后的运动距离、所述夹角、所述当前帧图像针对所述表面体素的当前纹理图像和所述表面体素内存储的已存纹理图像,按照纹理图像融合关系式进行融合计算。
66.在一个实施例中,所述纹理图像融合关系式为:
67.i_new(i,j)=(1-|cos(a)|*cos(s))*i(i,j)+|cos(a)|*cos(s)*i_input(i,j),其中,(i,j)为像素坐标,i_new(i,j)表示融合后像素(i,j)的像素值,i(i,j)表示所述表面体素内存储的已存纹理图像中像素(i,j)的像素值,i_input(i,j)表示所述当前帧图像针对所述表面体素的当前纹理图像中像素(i,j)的像素值,a表示所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角,s表示归一化后的相机运动距离。
68.在一个实施例中,所述基于所述当前相机位姿及所述当前帧图像中每个像素的图像像素位置,计算所述当前帧图像中每个所述像素各自对应的三维坐标,包括:
69.针对所述当前帧图像中的每个像素,根据所述当前相机位姿及所述当前帧图像中所述像素的图像像素位置,采用三维坐标计算关系式计算得到所述像素的三维坐标;其中,所述三维坐标计算关系式为:
70.p=p*i
rgb
(u,v),其中,p表示像素的三维坐标,p表示当前相机位姿,i
rgb
(u,v)表示图像像素位置(u,v)处的像素。
71.本发明实施例中还提供了一种三维场景重建装置,包括:
72.第一更新模块,用于基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型;
73.第二更新模块,用于采用基于所述当前帧图像得到的亮度图对所述更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像;
74.判断模块,用于判断所述当前帧图像是否为最后一帧图像,若是,则触发确定模块;否则,触发返回模块;
75.所述确定模块,用于将所述更新后的三维几何模型作为重建完成的三维几何模型,将与各所述表面体素分别对应的更新后的纹理图像作为重建完成的纹理图像;
76.所述返回模块,用于将下一帧图像作为当前帧图像并返回执行所述基于当前帧图像对当前三维几何模型进行融合的步骤。
77.本发明实施例中还提供了一种电子设备,包括:
78.存储器,用于存储计算机程序;
79.处理器,用于执行所述计算机程序时实现如上述所述三维场景重建方法的步骤。
80.本发明实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述三维场景重建方法的步骤。
81.本发明实施例提供了一种三维场景重建方法、装置、电子设备及计算机可读存储介质,该方法包括:基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型;采用基于当前帧图像得到的亮度图对更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像;判断当前帧图像是否为最后一帧图像,若是,则将更新后的三维几何模型作为重建完成的三维几何模型,将与各个表面体素对应的更新后的纹理图像作为重建完成的纹理图像,并基于所述重建完成的三维几何模型和所述重建完成的纹理图像得到重建后的三维场景;否则,将下一帧图像作为当前帧图像并返回执行基于当前帧图像对当前三维几何模型进行更新的步骤。
82.可见,本发明实施例中根据当前帧图像对当前三维几何模型进行更新进行三维几何模型的重建,并且当前三维几何模型中的每个表面体素中均对应存储一个相应的纹理图像,该纹理图像为已存纹理图像,从而将纹理图像与几何因素相结合,根据基于当前纹理图像得到的亮度图对更新后的三维几何模型中的每个表面体素内部存储的已存纹理图像分别进行更新,从而得到与各个表面体素分别对应的更新后的纹理图像,继续获取下一帧图像不断对新的当前三维几何模型进行更新,以及对每个表面体素的已存纹理图像进行更新,直至所有的图像完成上述操作后得到重建后的三维几何模型和纹理图像,并形成重建后的三维场景,本发明中在三维重建过程中结合几何和亮度因素进行纹理图像的重建,利于提高三维场景重建的精确度和重建纹理的质量。
附图说明
83.为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
84.图1为本发明实施例提供的一种三维场景重建方法的流程示意图;
85.图2为本发明实施例提供的一种三维几何模型更新的流程示意图;
86.图3为本发明实施例提供的一种纹理图像更新的流程示意图;
87.图4为本发明实施例提供的一种表面体素的表面法向示意图;
88.图5为本发明实施例提供的一种二次投影采样计算示意图;
89.图6为本发明实施例提供的一种三维场景重建装置的结构示意图;
90.图7为本发明实施例提供的一种电子设备的结构示意图;
91.图8为本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
92.本发明实施例提供了一种三维场景重建方法、装置、电子设备及计算机可读存储介质,在使用过程中结合几何和亮度因素进行纹理图像的重建,利于提高三维场景重建的精确度和重建纹理的质量。
93.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
94.请参照图1,图1为本发明实施例提供的一种三维场景重建方法的流程示意图。该方法,包括:
95.s110:基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型;
96.需要说明的是,本发明实施例中可以按照时间顺序扫描采集一系列的图像数据,并且每采集一帧图像均执行本发明中步骤,直至最后一帧图像处理完毕后即可得到重建完成的三维几何模型和纹理图像。
97.具体的,本发明实施例中针对当前采集的当前帧图像,采用该当前帧图像对当前三维几何模型进行更新,从而得到更新后的三维几何模型,其中,当前三维几何模型为基于先前采集的一系列图像重建得到的。
98.s120:采用基于当前帧图像得到的亮度图对更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像;
99.具体的,本发明实施例中的当前三维几何模型中的各个表面体素中分别存储对应的纹理图像,表面体素中当前存储的纹理图像为已存纹理图像。在采集到当前帧图像后,还可以根据当前帧图像得到与该当前帧图像对应的亮度图像,然后针对上述更新后的三维几何模型中的每个表面体素中的已存纹理图像,采用当前三维几何模型的亮度图对各个表面体素中的已存纹理图像分别进行更新,得到与每个表面体素各自对应的更新后的纹理图像。
100.s130:判断当前帧图像是否为最后一帧图像,若是,则进入s140;否则,进入s150;
101.需要说明的是,在基于当前帧图像对当前三维几何模型和各表面体素中的已存纹理图像更新完成后,进一步确定当前帧图像是否为最后一帧图像,在当前帧图像是最后一帧图像的情况下,进入s140,在当前帧图像不是最后一帧图像的情况下,进入s150。
102.s140:将更新后的三维几何模型作为重建完成的三维几何模型,将与各表面体素分别对应的更新后的纹理图像作为重建完成的纹理图像,并基于重建完成的三维几何模型和重建完成的纹理图像得到重建后的三维场景;
103.具体的,在确定出当前帧图像是最后一帧图像的情况下,则上述得到的更新后的三维几何模型就是最终重建完成的三维几何模型,上述各个表面体素中更新后的纹理图像整体构成重建完成的纹理图像,并由重建完成的三维几何模型和重建完成的纹理图像构成重建后的三维场景,至此重建完成,结束操作。其中,三维场景中的三维几何模型中有多个表面体素,每个表面体素中对应存储有对应的纹理图像,各个表面体素所存在的纹理图像构成三维场景的表面纹理,三维几何模型中每个体素内存储有对应的距离符号,各个体素的距离符号构成三维几何模型。
104.s150:将下一帧图像作为当前帧图像并返回执行基于当前帧图像对当前三维几何模型进行更新的步骤。
105.具体的,在当前帧图像不是最后一帧图像时,则将下一帧图像作为当前帧图像,并返回s110进行新一帧图像的三维几何模型和纹理图像的更新,直至最后一帧图像操作完成后,得到最终重建完成的三维几何模型和纹理图像,并结束操作。
106.可见,本发明实施例中根据当前帧图像对当前三维几何模型进行更新进行三维几何模型的重建,并且当前三维几何模型中的每个表面体素中均对应存储一个相应的纹理图像,该纹理图像为已存纹理图像,从而将纹理图像与几何因素相结合,根据基于当前纹理图像得到的亮度图对当前三维几何模型中的每个表面体素内部存储的已存纹理图像分别进行更新,从而得到与各个表面体素分别对应的更新后的纹理图像,继续获取下一帧图像不断对新的当前三维几何模型进行更新,以及对每个表面体素的已存纹理图像进行更新,直至所有的图像完成上述操作后得到重建后的三维几何模型和纹理图像,本发明中在三维重建过程中结合几何和亮度因素进行纹理图像的重建,利于提高三维场景重建的精确度和重建纹理的质量。
107.在上述实施例的基础上,下面对技术方案做进一步的介绍和说明,具体如下:
108.在一个实施例中,如图2所示,上述s110中基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型的过程,具体可以包括:
109.s210:根据当前帧图像对当前三维几何模型中各体素内存储的符号距离进行更新,得到更新后的三维几何模型。
110.可以理解的是,在实际应用中预先划分多个体素,针对当前三维几何模型中的各个体素,每个体素存储一个符号距离,具体可以为tsdf(truncated signed distance function,基于截断地带符号距离函数)模型中原有的符号距离,其中,符号距离指的是体素到重建物体表面最近的距离。具体的,可以根据当前帧图像对当前三维几何模型中的各个体素中存储的符号距离进行更新,从而得到与每个体素各自对应的更新后的符号距离,也即得到更新后的三维几何模型。
111.进一步的,上述根据当前帧图像对当前三维几何模型中各体素内存储的符号距离进行更新,得到更新后的三维几何模型的过程,具体可以包括:
112.s220:基于当前帧图像及前一帧图像,得到与当前帧图像对应的当前相机位姿;
113.具体的,针对对当前帧图像进行特征描述提取,可以得到多个当前图像特征,然后
将当前帧图像的多个当前图像特征与前一帧图像的多个图像特征进行特征匹配,得到图像特征之间的对应关系,并进一步基于图像特征之间的对应关系,采用迭代最近点算法确定出当前帧图像对应的当前相机位姿。
114.换句话说,在采集到当前帧图像后,先对该当前帧图像进行特征描述的提取,该特征描述具体可以是手工设计的特征如sift(scale-invariant feature transform,尺度不变特征变换)等,也可以是通过机器学习生成的图像特征,具体的本发明实施例对此不做特殊限定。对当前帧图像进行特征描述提取后,可以提取得到多个当前图像特征,当前前一帧图像也对应多个图像特征,因此可以将当前帧图像的多个当前图像特征与前一帧图像的多个图像特征进行特征匹配计算,可以得到当前帧图像与前一帧图像之间的图像特征的对应关系,例如,当前帧图像的当前图像特征01对应前一帧图像的图像特征11,当前帧图像的当前图像特征02对应前一帧图像的图像特征12等。在得到图像特征之间的对应关系后,可以进一步根据该图像特征之间的对应关系,通过icp(iterative closest point,迭代最近点算法)等算法估计出当前帧图像对应的相机在三维空间中的六自由度位姿,也即,得到当前帧图像对应的当前相机位姿。
115.s230:基于当前相机位姿及当前帧图像中每个像素的图像像素位置,计算当前帧图像中每个像素各自对应的三维坐标;
116.需要说明的是,在得到当前帧图像的当前相机位姿后,可以根据当前相机位姿结合当前帧图像中每个像素的图像像素位置(也即像素在当前帧图像中的像素坐标)进一步计算得到当前帧图像中的每个像素分别在三维空间中的三维坐标。
117.具体的,针对当前帧图像中的每个像素,可以根据当前相机位姿及当前帧图像中所述像素的图像像素位置,采用三维坐标计算关系式计算得到该像素在三维空间中的三维坐标;其中,三维坐标计算关系式为:
118.p=p*i
rgb
(u,v),其中,p表示像素的三维坐标,p表示当前相机位姿,i
rgb
(u,v)表示图像像素位置(u,v)处的像素。
119.可以理解的是,本发明实施例中针对当前帧图像中的每个像素,可以根据当前帧图像获取图像像素位置为(u,v)处的像素i
rgb
(u,v),然后结合上述关系式即可计算出与该像素对应的三维坐标p。
120.s240:基于当前三维几何模型的各个体素,确定出当前帧图像中的每个像素各自对应的体素;
121.具体的,在计算得到像素的三维坐标后,即可根据该像素的三维坐标,确定出与tsdf模型中与该像素对应的体素g,从而可以针对当前帧图像中的每个像素,可以确定与该像素对应的体素。
122.s250:针对每个体素,根据体素对应的像素的三维坐标算出当前符号距离;
123.具体的,针对当前三维几何模型中的每个体素,可以根据该体素对应的当前帧图像中的各个像素的三维坐标计算出该体素的当前符号距离,例如,当前帧图像中的像素1和像素2均对应体素g’,则体素g’的当前符号距离可以根据像素1的三维坐标和像素2的三维坐标计算得到。
124.s260:采用当前符号距离和体素内存储的已存符号距离,得到更新后的符号距离,并采用更新后的符号距离替换已存符号距离,直至所有体素的已存符号距离均更新完成,
得到更新后的三维几何模型。
125.需要说明的是,在计算得到体素的当前符号距离后,为了提高更新准确度,可以进一步根据当前符号距离和该体素内存储的已存符号距离进行加权平均,将加权平均结果作为新的符号距离对该体素内存储的已存符号距离进行更新,从而将该体素内存储的已存符号距离更新为新的符号距离。针对每个体素均采用上述方法进行符号距离的更新,从而得到更新后的三维几何模型。
126.在一个实施例中,具体请参照图3,上述s120中采用基于当前帧图像得到的亮度图对更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像的过程,具体可以包括:
127.s310:从更新后的三维几何模型的各个体素中确定出各个表面体素;
128.需要说明的是,根据更新后的三维几何模型确定出,该更新后的三维几何模型所涵盖的各个体素,然后根据每个体素内存储的符号距离即可确定出更新后的三维几何模型的零值面,该零值面经过的体素即为表面体素。
129.s320:根据当前帧图像,确定当前帧图像针对每个表面体素的当前纹理图像;
130.具体的,在确定出更新后的三维几何模型的各个表面体素后,可以根据当前帧图像确定出与每个表面体素对应的当前纹理图像。
131.可以理解的是,具体可以针对每个表面体素,根据该当前帧图像的各个像素各自对应的三维坐标,确定出该表面体素对应的各个像素,例如表面体素1对应的像素分别为像素1和像素2,表面体素2对应的像素分别为像素3和像素4等。然后根据该表面体素内存储的已存符号距离,计算出该表面体素的表面法向,具体可以根据表面体素的八个顶点处分别对应的符号距离计算出该表面体素的表面法向,并进一步计算出当前帧图像的视点方向和表面体素的表面法向之间的夹角,具体如图4所示,其中,视点方向即为图4中的视线方向,当前帧图像的视点方向和表面体素的表面法向之间的夹角为a。还需要指出的是,本发明实施例中当前帧图像的视点方向可以根据当前帧图像的相机位姿得到。
132.具体的,在得到当前帧图像的视点方向和表面体素的表面法向之间的夹角为a后,根据该夹角将与表面体素对应的各个像素沿表面体素的表面法向的方向进行投影,得到对应的投影区域。也即,针对与该表面体素对应的各个像素,将每个像素沿着表面体素的表面法向方向进行投影(也即二次投影映射),从而得到对应的投影区域,然后采用预设像素对相对表面体素的投影区域进行采样,并得到采样区域中每个采样像素的像素值,以得到当前帧图像针对表面体素的当前纹理图像,也即,得到当前帧图像投影至表面体素上的当前纹理图像。由于在实际应用中相机的拍摄不垂直于物体表面,因此为了使垂直于物体表面观察时所看到的图像是正视图,因此本发明实施例中通过预设像素的采样区域对投影区域进行采样,从而可以提高纹理图像的质量。其中,投影区域和采样区域的位置关系,具体请参照图5所示的二次投影采样计算示意图。
133.进一步的,上述采用预设像素对相对表面体素的投影区域进行采样,得到采样区域中每个采样像素的像素值的过程,可以包括:
134.根据预设像素的大小和投影区域,确定出采样区域的各顶点像素位置;
135.根据预设像素的大小、采样区域的各顶点像素位置和表面体素对应的像素在原采样图像中的图像像素位置,结合像素坐标计算关系式计算得出采样区域中对应的采样像素
的像素坐标;
136.根据与像素坐标对应的目标像素在原采样图像中的像素值,计算出采样区域中像素坐标处的采样像素的像素值。
137.需要说明的是,如图5所示,可以根据预设像素的大小(w
×
h)和投影区域的位置,进一步确定出采样区域的各个顶点的顶点像素位置,例如分别为(u
min
,v
min
)、(u
min
,v
max
)、(u
max
,v
min
)和(u
max
,v
max
),则以四个顶点(u
min
,v
min
)、(u
min
,v
max
)、(u
max
,v
min
)和(u
max
,v
max
)为基础像素,其他采样像素根据在u、v方向距离四个顶点像素的距离对应到w*h的像素区域,结合表面体素对应的像素在原采样图像中的图像像素位置,确定出每个采样区域中每个采样像素的像素坐标,然后再针对每一个像素坐标,根据与该像素坐标对应的目标像素在原采样图像中的像素值,计算出采样区域中像素坐标处的采样像素的像素值。其中,目标像素为通过上述计算,得到的像素坐标为该像素坐标的像素,例如,像素1通过像素坐标计算关系式计算得到的像素坐标为像素坐标1,则像素坐标1对应的目标像素就是像素1。
138.需要说明的是,本发明实施例中的像素坐标计算关系式可以为:
139.i=(u-u
min
)*w/(u
max-u
min
),
140.j=(v-v
min
)*h/(v
max-v
min
),其中,i表示采样像素的横坐标,j表示采样像素的纵坐标,u
max
表示采样区域横坐标最大值,u
min
表示采样区域横坐标最小值,v
max
表示采样区域纵坐标最大值,v
min
表示采样区域横坐标最小值,u表示像素对应的图像像素横坐标,v表示像素对应的图像像素纵坐标。
141.另外,在实际应用中,可能存在多个像素计算出的像素坐标为同一个像素坐标,此时该像素坐标对应的目标像素为多个。因此,针对一个像素坐标,当与该像素坐标对应的目标像素为多个时,可以对多个目标像素在原采样图像中的像素值进行加权平均,从而得到采样区域中该像素坐标处的采样像素的像素值。
142.具体的,在计算出采样区域中每个采样像素的像素值后,即可得到与该采样区域对应的当前纹理图像,也即得到相应表面体素对应的当前纹理图像。
143.s330:根据基于当前帧图像得到的亮度图,计算出表面体素对应的采样区域的亮度等级值;
144.需要说明的是,本发明实施例中将当前值图像的亮度与纹理进行分离,然后为了进一步确定亮度对纹理图像的影响,可以根据基于当前帧图像得到的亮度图计算出表面体素对应的采样区域的亮度等级值。
145.具体的,直接采集的图像为彩色图像,因此在采集得到当前帧图像后,可以根据当前帧图像的彩色图像进一步得到与当前帧图像对应的亮度图。
146.具体的,可以先将当前帧图像的彩色图像转换为0-255的灰度图像ib,具体可以基于可参照一般转灰度图方法按如下公式进行:
147.ih=0.299*i
rgb
(r)+0.587*i
rgb
(g)+0.114*i
rgb
(b),其中,其中i
rgb
(r)、
148.i
rgb
(g)、i
rgb
(b)分别表示彩色图像i
rgb
每个像素的r、g、b颜色分量。
149.具体的,在得到灰度图像后,可以针对灰度图像中的每个像素,按照像素的灰度值及预设亮度等级数量确定像素的亮度等级值,然后再根据各个像素的亮度等级值得到与当前帧图像对应的亮度图。具体可以根据像素的灰度值、预设亮度等级数量结合亮度等级计算关系式,计算得到像素的亮度等级值;其中:
150.亮度等级计算关系式为:h=a*n/255,h表示像素的亮度等级值,a表示像素的灰度值,n表示预设亮度等级数量。
151.也即,可以预先将0-255划分为n个等级,例如n=10,则可以将0-255均匀分为0-9十个亮度等级,从而按照上述关系式即可计算出每个像素对应的亮度等级,在得到每个像素的亮度等级后,即可得到当前帧图像对应的亮度图。
152.具体的,在得到当前帧图像对应的亮度图后,可以根据该亮度图获取与表面体素对应的各个像素各自的亮度等级值,然后将与表面体素对应的各个像素各自的亮度等级值进行平均,得到表面体素的亮度等级值。
153.也即,针对每个表面体素,可以确定出该表面体素在当前帧图像中对应的各像素,然后根据亮度图获取该各像素各自的亮度等级值,并根据各像素各自的亮度等级值进一步计算出平均亮度等级值,将该平均亮度等级值作为表面体素的亮度等级值。
154.s340:根据亮度等级值与预设亮度等级值的大小关系,采用当前帧图像针对表面体素的当前纹理图像,对表面体素内存储的已存纹理图像进行更新,得到与表面体素对应的更新后的纹理图像;
155.需要说明的是,针对每个表面体素,可以将该表面体素的亮度等级值h_avg与预设亮度等级h至进行比较,确定出两者之间的大小关系,然后进一步根据该大小关系确定如何对表面体素内存储的已存纹理图像进行更新。
156.具体的,当亮度等级值大于预设亮度等级值时,直接将表面体素内存储的已存纹理图像作为与表面体素对应的更新后的纹理图像;也即,如果h_avg大于h,则可以认为当前帧图像i
rgb
中对应该表面体素区域的纹理图为高光区域,此时外界光干扰较大,不对当前体素g的纹理图进行融合,也即保留该表面体素内存储的已存纹理图像。
157.当亮度等级值小于预设亮度等级值时,将表面体素内存储的已存纹理图像更新为当前帧图像针对表面体素的当前纹理图像,得到与表面体素对应的更新后的纹理图像;也即,如果h_avg小于h,认定该表面体素中存储的已存纹理图像相对于当前帧图像针对表面体素的当前纹理图像为高光区域的纹理,则将该表面体素内存储的已存纹理图像替换为由当前帧图像i
rgb
计算得到的该体素对应的w*h纹理图像块(也即替换为计算得到的当前帧图像针对表面体素的当前纹理图像),同时还可以设置h=h_avg。
158.当亮度等级值等于预设亮度等级值时,将当前帧图像针对表面体素的当前纹理图像和表面体素内存储的已存纹理图像进行融合,并将融合后的纹理图像作为与表面体素对应的更新后的纹理图像。
159.可以理解的是,在h_avg等于h时,说明当前帧图像针对表面体素的当前纹理图像和表面体素内存储的已存纹理图像均不为高光区,此时可以将当前帧图像针对表面体素的当前纹理图像和表面体素内存储的已存纹理图像进行融合。
160.具体的,可以根据当前帧图像对应的当前相机位姿和前一帧图像对应的相机位姿,计算当前帧图像与前一帧图像之间的相机运动距离,然后将相机运动距离进行归一化,得到归一化后的相机运动距离;例如,当前帧图像与前一帧图像之间的相机运动距离为s_cur,则可以预设值s_max将相机运动距离s_cur归一化到[0,1]区间:s=min(1,s_cur/s_max)。
[0161]
具体的,基于归一化后的运动距离、当前帧图像的视点方向和表面体素的表面法
向之间的夹角、当前帧图像针对表面体素的当前纹理图像和表面体素内存储的已存纹理图像,按照纹理图像融合关系式进行融合计算。其中,纹理图像融合关系式为:
[0162]
i_new(i,j)=(1-|cos(a)|*cos(s))*i(i,j)+|cos(a)|*cos(s)*i_input(i,j),其中,(i,j)为像素坐标,i_new(i,j)表示融合后像素(i,j)的像素值,i(i,j)表示表面体素内存储的已存纹理图像中像素(i,j)的像素值,i_input(i,j)表示当前帧图像针对表面体素的当前纹理图像中像素(i,j)的像素值,a表示当前帧图像的视点方向和表面体素的表面法向之间的夹角,s表示归一化后的相机运动距离。也即,针对每个像素均得到对应的像素值后即可得到融合后的纹理图像,并将融合后的纹理图像作为该表面体素更新后的纹理图像。
[0163]
s350:根据各个表面体素各自对应的更新后的纹理图像,得到整体更新后的纹理图像。
[0164]
需要说明的是,在得到每个表面体素各自对应的更新后的纹理图像后,即可得到与当前帧图像对应的更新后的纹理图像。对所采集的所有图像均分别执行上述步骤,即可得到最后重建完成的纹理图像。
[0165]
由此可见,本发明实施例中对三维重建中的高质量纹理重建问题,设计了一种基于亮度分离的纹理重建方法,通过对纹理图像和亮度图分别计算处理,在纹理图像生成过程中同时进行高光检测、剔除,可实现三维重建过程中高质量纹理图像的生成。其中,通过对图像亮度的单独计算和映射处理,实现纹理重建中颜色和高光等亮度干扰因素的分离,能解决输入彩色图像中耦合环境光源照明导致重建的纹理图像效果差的问题,得到更接近物体自身颜色的纹理图像。另外,本发明实施例中基于二次投影机制的纹理映射生成方法,通过沿表面体素的表面法向方向进行二次投影映射,能够使重建的纹理更接近正视图图像,减少纹理图像中的变形问题。进一步,本发明实施例中基于纹理图和亮度图的纹理融合,通过同一区域在不同输入图像中的亮度变化识别图像中的高光区域,并在纹理融合过程中对该部分区域进行剔除,能解决图像高光区域对重建纹理质量的影响问题,提高重建纹理质量。
[0166]
在上述实施例的基础上,本发明实施例中还提供了一种三维场景重建装置,具体请参照图6,该装置包括:
[0167]
第一更新模块11,用于基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型;
[0168]
第二更新模块12,用于采用基于当前帧图像得到的亮度图对更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像;
[0169]
判断模块13,用于判断当前帧图像是否为最后一帧图像,若是,则触发确定模块14;否则,触发返回模块15;
[0170]
确定模块14,用于将更新后的三维几何模型作为重建完成的三维几何模型,将与各表面体素分别对应的更新后的纹理图像作为重建完成的纹理图像,并基于重建完成的三维几何模型和重建完成的纹理图像得到重建后的三维场景;
[0171]
返回模块15,用于将下一帧图像作为当前帧图像返回执行基于当前帧图像对当前三维几何模型进行更新的步骤。
[0172]
在一个实施例中,所述第一更新模块11,用于:
[0173]
根据当前帧图像对当前三维几何模型中各体素内存储的符号距离进行更新,得到更新后的三维几何模型。
[0174]
在一个实施例中,所述第一更新模块11,包括:
[0175]
第一计算单元,用于基于当前帧图像及前一帧图像,得到与所述当前帧图像对应的当前相机位姿;
[0176]
第二计算单元,用于基于所述当前相机位姿及所述当前帧图像中每个像素的图像像素位置,计算所述当前帧图像中每个所述像素各自对应的三维坐标;
[0177]
第一确定单元,用于基于当前三维几何模型的各个体素,确定出所述当前帧图像中的每个像素各自对应的体素;
[0178]
第三计算单元,用于针对每个体素,根据所述体素对应的像素的图像像素位置计算出当前符号距离;
[0179]
第一更新单元,用于采用所述当前符号距离和所述体素内存储的已存符号距离,得到更新后的符号距离,并采用所述更新后的符号距离替换所述已存符号距离,直至所有体素的已存符号距离均更新完成,得到更新后的三维几何模型。
[0180]
在一个实施例中,所述第一计算单元,包括:
[0181]
提取子单元,用于对所述当前帧图像进行特征描述提取,得到多个当前图像特征;
[0182]
匹配子单元,用于将所述当前帧图像的多个当前图像特征与前一帧图像的多个图像特征进行特征匹配,得到图像特征之间的对应关系;
[0183]
第一计算子单元,用于基于所述图像特征之间的对应关系,采用迭代最近点算法确定出所述当前帧图像对应的当前相机位姿。
[0184]
在一个实施例中,所述第二更新模块12,包括:
[0185]
第二确定单元,用于从所述更新后的三维几何模型的各个体素中确定出各个表面体素;
[0186]
第三确定单元,用于根据所述当前帧图像,确定所述当前帧图像针对每个所述表面体素的当前纹理图像;
[0187]
第四计算单元,用于根据基于所述当前帧图像得到的亮度图,计算出所述表面体素对应的采样区域的亮度等级值;
[0188]
第二更新单元,用于根据所述亮度等级值与预设亮度等级值的大小关系,采用所述当前帧图像针对所述表面体素的当前纹理图像,对所述表面体素内存储的已存纹理图像进行更新,得到与所述表面体素对应的更新后的纹理图像;
[0189]
第五确定单元,用于根据各个表面体素各自对应的更新后的纹理图像,得到整体更新后的纹理图像。
[0190]
在一个实施例中,所述第三确定单元,包括:
[0191]
第一确定子单元,用于针对每个所述表面体素,根据所述当前帧图像的各个像素各自对应的三维坐标,确定出所述表面体素对应的各个像素;
[0192]
投影子单元,用于将与所述表面体素对应的各个像素沿所述表面体素的表面法向的方向进行投影,得到相对所述表面体素的投影区域;
[0193]
采样子单元,用于采用预设像素对所述相对所述表面体素的投影区域进行采样,得到采样区域中每个采样像素的像素值,以得到所述当前帧图像针对所述表面体素的当前
纹理图像。
[0194]
在一个实施例中,所述投影子单元,包括:
[0195]
第二计算子单元,用于根据所述表面体素内存储的已存符号距离,计算出所述表面体素的表面法向;
[0196]
第三计算子单元,用于计算所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角;
[0197]
第一投影子单元,用于基于所述夹角将与所述表面体素对应的各个像素沿所述表面体素的表面法向的方向进行投影,得到对应的投影区域。
[0198]
在一个实施例中,第三计算子单元,用于根据所述当前帧图像对应的当前相机位姿确定的所述当前帧图像的视点方向,并计算所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角。
[0199]
在一个实施例中,所述采样子单元,包括:
[0200]
第一确定子单元,用于根据所述预设像素的大小和所述投影区域,确定出采样区域的各顶点像素位置;
[0201]
第四计算子单元,用于根据预设像素的大小、所述采样区域的各顶点像素位置和所述表面体素对应的像素在原采样图像中的图像像素位置,结合像素坐标计算关系式计算得出所述采样区域中对应的采样像素的像素坐标;
[0202]
第五计算子单元,用于根据与所述像素坐标对应的目标像素在原采样图像中的像素值,计算出所述采样区域中所述像素坐标处的采样像素的像素值。
[0203]
在一个实施例中,所述第五计算子单元,用于:
[0204]
在与所述像素坐标对应的目标像素为多个时,对多个所述目标像素在原采样图像中的像素值进行加权平均,得到所述采样区域中所述像素坐标处的采样像素的像素值。
[0205]
在一个实施例中,所述像素坐标计算关系式为:
[0206]
i=(u-u
min
)*w/(u
max-u
min
),
[0207]
j=(v-v
min
)*h/(v
max-v
min
),其中,i表示采样像素的横坐标,j表示采样像素的纵坐标,u
max
表示采样区域横坐标最大值,u
min
表示采样区域横坐标最小值,v
max
表示采样区域纵坐标最大值,v
min
表示采样区域横坐标最小值,u表示像素对应的图像像素横坐标,v表示像素对应的图像像素纵坐标。
[0208]
在一个实施例中,所述第四计算单元,包括:
[0209]
获取子单元,用于根据基于所述当前帧图像得到的亮度图,获取与所述表面体素对应的各个像素各自的亮度等级值;
[0210]
第六计算子单元,用于将与所述表面体素对应的各个像素各自的亮度等级值进行平均,得到所述表面体素的亮度等级值。
[0211]
在一个实施例中,还包括:
[0212]
转换单元,根据所述当前帧图像的彩色图像,得到与所述当前帧图像对应的亮度图。
[0213]
在一个实施例中,所述转换单元,包括:
[0214]
转换子单元,用于将所述当前帧图像的彩色图像转换为灰度图像;
[0215]
第七计算子单元,用于针对所述灰度图像中的每个像素,按照所述像素的灰度值
及预设亮度等级数量,确定所述像素的亮度等级值;
[0216]
第八计算子单元,用于根据各个所述像素的亮度等级值,得到与所述当前帧图像对应的亮度图。
[0217]
在一个实施例中,所述第八计算子单元,用于:
[0218]
根据所述像素的灰度值、所述预设亮度等级数量结合亮度等级计算关系式,计算得到所述像素的亮度等级值;其中:
[0219]
所述亮度等级计算关系式为:h=a*n/255,h表示像素的亮度等级值,a表示像素的灰度值,n表示预设亮度等级数量。
[0220]
在一个实施例中,所述第二更新单元,包括:
[0221]
第一更新子单元,用于当所述亮度等级值大于所述预设亮度等级值时,直接将所述表面体素内存储的已存纹理图像作为与所述表面体素对应的更新后的纹理图像;
[0222]
第二更新子单元,用于当所述亮度等级值小于所述预设亮度等级值时,将所述表面体素内存储的已存纹理图像更新为所述当前帧图像针对所述表面体素的当前纹理图像,得到与所述表面体素对应的更新后的纹理图像;
[0223]
第三更新子单元,用于当所述亮度等级值等于所述预设亮度等级值时,将所述当前帧图像针对所述表面体素的当前纹理图像和所述表面体素内存储的已存纹理图像进行融合,并将融合后的纹理图像作为与所述表面体素对应的更新后的纹理图像。
[0224]
在一个实施例中,所述第三更新子单元,包括:
[0225]
第九计算子单元,用于计算所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角;
[0226]
第十计算子单元,用于根据所述当前帧图像对应的当前相机位姿和前一帧图像对应的相机位姿,计算所述当前帧图像与所述前一帧图像之间的相机运动距离;
[0227]
归一化子单元,用于将所述相机运动距离进行归一化,得到归一化后的相机运动距离;
[0228]
第十一计算子单元,用于基于所述归一化后的运动距离、所述夹角、所述当前帧图像针对所述表面体素的当前纹理图像和所述表面体素内存储的已存纹理图像,按照纹理图像融合关系式进行融合计算。
[0229]
在一个实施例中,所述纹理图像融合关系式为:
[0230]
i_new(i,j)=(1-|cos(a)|*cos(s))*i(i,j)+|cos(a)|*cos(s)*i_input(i,j),其中,(i,j)为像素坐标,i_new(i,j)表示融合后像素(i,j)的像素值,i(i,j)表示所述表面体素内存储的已存纹理图像中像素(i,j)的像素值,i_input(i,j)表示所述当前帧图像针对所述表面体素的当前纹理图像中像素(i,j)的像素值,a表示所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角,s表示归一化后的相机运动距离。
[0231]
在一个实施例中,所述第二计算单元,用于:
[0232]
针对所述当前帧图像中的每个像素,根据所述当前相机位姿及所述当前帧图像中所述像素的图像像素位置,采用三维坐标计算关系式计算得到所述像素的三维坐标;其中,所述三维坐标计算关系式为:
[0233]
p=p*i
rgb
(u,v),其中,p表示像素的三维坐标,p表示当前相机位姿,i
rgb
(u,v)表示图像像素位置(u,v)处的像素。
[0234]
需要说明的是,本发明实施例中提供的三维场景重建装置具有与上述实施例所提供的三维场景重建方法相同的有益效果,并且对于本发明实施例所涉及到的三维场景重建方法的具体介绍请参照上述实施例,本发明在此不再赘述。
[0235]
图7为本发明实施例提供的一种电子设备的结构图,如图7所示,电子设备包括:存储器20,用于存储计算机程序;
[0236]
处理器21,用于执行计算机程序时实现如上述实施例三维场景重建方法的步骤。
[0237]
本实施例提供的电子设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
[0238]
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0239]
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的三维场景重建方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于设定的偏移量等。
[0240]
在一些实施例中,电子设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
[0241]
本领域技术人员可以理解,图7中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
[0242]
可以理解的是,如果上述实施例中的三维场景重建方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、磁碟或者光盘等各种可以存储程序代码的介质。
[0243]
基于此,如图8所示,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质30上存储有计算机程序31,计算机程序31被处理器执行时实现如上述三维场景
重建方法的步骤。
[0244]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0245]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0246]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:
1.一种三维场景重建方法,其特征在于,包括:基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型;采用基于所述当前帧图像得到的亮度图对所述更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像;判断所述当前帧图像是否为最后一帧图像,若是,则将所述更新后的三维几何模型作为重建完成的三维几何模型,将与各所述表面体素分别对应的更新后的纹理图像作为重建完成的纹理图像,并基于所述重建完成的三维几何模型和所述重建完成的纹理图像得到重建后的三维场景;否则,将下一帧图像作为当前帧图像并返回执行所述基于当前帧图像对当前三维几何模型进行更新的步骤。2.根据权利要求1所述的三维场景重建方法,其特征在于,所述基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型,包括:根据当前帧图像对当前三维几何模型中各体素内存储的符号距离进行更新,得到更新后的三维几何模型。3.根据权利要求2所述的三维场景重建方法,其特征在于,所述根据当前帧图像对当前三维几何模型中各体素内存储的符号距离进行更新,得到更新后的三维几何模型,包括:基于当前帧图像及前一帧图像,得到与所述当前帧图像对应的当前相机位姿;基于所述当前相机位姿及所述当前帧图像中每个像素的图像像素位置,计算所述当前帧图像中每个所述像素各自对应的三维坐标;基于当前三维几何模型的各个体素,确定出所述当前帧图像中的每个像素各自对应的体素;针对每个所述体素,根据所述体素对应的像素的图像像素位置计算出当前符号距离;采用所述当前符号距离和所述体素内存储的已存符号距离,得到更新后的符号距离,并采用所述更新后的符号距离替换所述已存符号距离,直至所有体素的已存符号距离均更新完成,得到更新后的三维几何模型。4.根据权利要求3所述的三维场景重建方法,其特征在于,所述基于当前帧图像及前一帧图像,得到与所述当前帧图像对应的当前相机位姿,包括:对所述当前帧图像进行特征描述提取,得到多个当前图像特征;将所述当前帧图像的多个当前图像特征与前一帧图像的多个图像特征进行特征匹配,得到图像特征之间的对应关系;基于所述图像特征之间的对应关系,采用迭代最近点算法确定出所述当前帧图像对应的当前相机位姿。5.根据权利要求1至4任意一项所述的三维场景重建方法,其特征在于,所述采用基于所述当前帧图像得到的亮度图对所述更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像,包括:从所述更新后的三维几何模型的各个体素中确定出各个表面体素;根据所述当前帧图像,确定所述当前帧图像针对每个所述表面体素的当前纹理图像;根据基于所述当前帧图像得到的亮度图,计算出所述表面体素对应的采样区域的亮度等级值;根据所述亮度等级值与预设亮度等级值的大小关系,采用所述当前帧图像针对所述表
面体素的当前纹理图像,对所述表面体素内存储的已存纹理图像进行更新,得到与所述表面体素对应的更新后的纹理图像;根据各个所述表面体素各自对应的更新后的纹理图像,得到整体更新后的纹理图像。6.根据权利要求5所述的三维场景重建方法,其特征在于,所述根据所述当前帧图像,确定所述当前帧图像针对每个所述表面体素的当前纹理图像,包括:针对每个所述表面体素,根据所述当前帧图像的各个像素各自对应的三维坐标,确定出所述表面体素对应的各个像素;将与所述表面体素对应的各个像素沿所述表面体素的表面法向的方向进行投影,得到相对所述表面体素的投影区域;采用预设像素对所述相对所述表面体素的投影区域进行采样,得到采样区域中每个采样像素的像素值,以得到所述当前帧图像针对所述表面体素的当前纹理图像。7.根据权利要求6所述的三维场景重建方法,其特征在于,所述将与所述表面体素对应的各个像素沿所述表面体素的表面法向的方向进行投影,得到相对所述表面体素的投影区域,包括:根据所述表面体素内存储的已存符号距离,计算出所述表面体素的表面法向;计算所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角;基于所述夹角将与所述表面体素对应的各个像素沿所述表面体素的表面法向的方向进行投影,得到对应的投影区域。8.根据权利要求7所述的三维场景重建方法,其特征在于,所述当前帧图像的视点方向为根据所述当前帧图像对应的当前相机位姿确定的。9.根据权利要求6所述的三维场景重建方法,其特征在于,所述采用预设像素对所述相对所述表面体素的投影区域进行采样,得到采样区域中每个采样像素的像素值,包括:根据所述预设像素的大小和所述投影区域,确定出采样区域的各顶点像素位置;根据预设像素的大小、所述采样区域的各顶点像素位置和所述表面体素对应的像素在原采样图像中的图像像素位置,结合像素坐标计算关系式计算得出所述采样区域中对应的采样像素的像素坐标;根据与所述像素坐标对应的目标像素在原采样图像中的像素值,计算出所述采样区域中所述像素坐标处的采样像素的像素值。10.根据权利要求9所述的三维场景重建方法,其特征在于,所述根据与所述像素坐标对应的目标像素在原采样图像中的像素值,计算出所述采样区域中所述像素坐标处的采样像素的像素值,包括:在与所述像素坐标对应的目标像素为多个时,对多个所述目标像素在原采样图像中的像素值进行加权平均,得到所述采样区域中所述像素坐标处的采样像素的像素值。11.根据权利要求9所述的三维场景重建方法,其特征在于,所述像素坐标计算关系式为:i=(u-u
min
)*w/(u
max-u
min
),j=(v-v
min
)*h/(v
max-v
min
),其中,i表示采样像素的横坐标,j表示采样像素的纵坐标,u
max
表示采样区域横坐标最大值,u
min
表示采样区域横坐标最小值,v
max
表示采样区域纵坐标最大值,v
min
表示采样区域横坐标最小值,u表示像素对应的图像像素横坐标,v表示像素对
应的图像像素纵坐标。12.根据权利要求5所述的三维场景重建方法,其特征在于,所述根据基于所述当前帧图像得到的亮度图,计算出所述表面体素对应的采样区域的亮度等级值,包括:根据基于所述当前帧图像得到的亮度图,获取与所述表面体素对应的各个像素各自的亮度等级值;将与所述表面体素对应的各个像素各自的亮度等级值进行平均,得到所述表面体素的亮度等级值。13.根据权利要求12所述的三维场景重建方法,其特征在于,在所述根据基于所述当前帧图像得到的亮度图,计算出所述表面体素对应的采样区域的亮度等级值之前,还包括:根据所述当前帧图像的彩色图像,得到与所述当前帧图像对应的亮度图。14.根据权利要求13所述的三维场景重建方法,其特征在于,所述根据所述当前帧图像的彩色图像,得到与所述当前帧图像对应的亮度图,包括:将所述当前帧图像的彩色图像转换为灰度图像;针对所述灰度图像中的每个像素,按照所述像素的灰度值及预设亮度等级数量,确定所述像素的亮度等级值;根据各个所述像素的亮度等级值,得到与所述当前帧图像对应的亮度图。15.根据权利要求14所述的三维场景重建方法,其特征在于,所述按照所述像素的灰度值及预设亮度等级数量,确定所述像素的亮度等级值,包括:根据所述像素的灰度值、所述预设亮度等级数量结合亮度等级计算关系式,计算得到所述像素的亮度等级值;其中:所述亮度等级计算关系式为:h=a*n/255,h表示像素的亮度等级值,a表示像素的灰度值,n表示预设亮度等级数量。16.根据权利要求5所述的三维场景重建方法,其特征在于,所述根据所述亮度等级值与预设亮度等级值的大小关系,采用所述当前帧图像针对所述表面体素的当前纹理图像,对所述表面体素内存储的已存纹理图像进行更新,得到与所述表面体素对应的更新后的纹理图像,包括:当所述亮度等级值大于所述预设亮度等级值时,直接将所述表面体素内存储的已存纹理图像作为与所述表面体素对应的更新后的纹理图像;当所述亮度等级值小于所述预设亮度等级值时,将所述表面体素内存储的已存纹理图像更新为所述当前帧图像针对所述表面体素的当前纹理图像,得到与所述表面体素对应的更新后的纹理图像;当所述亮度等级值等于所述预设亮度等级值时,将所述当前帧图像针对所述表面体素的当前纹理图像和所述表面体素内存储的已存纹理图像进行融合,并将融合后的纹理图像作为与所述表面体素对应的更新后的纹理图像。17.根据权利要求16所述的三维场景重建方法,其特征在于,所述将所述当前帧图像针对所述表面体素的当前纹理图像和所述表面体素内存储的已存纹理图像进行融合,包括:计算所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角;根据所述当前帧图像对应的当前相机位姿和前一帧图像对应的相机位姿,计算所述当前帧图像与所述前一帧图像之间的相机运动距离;
将所述相机运动距离进行归一化,得到归一化后的相机运动距离;基于所述归一化后的运动距离、所述夹角、所述当前帧图像针对所述表面体素的当前纹理图像和所述表面体素内存储的已存纹理图像,按照纹理图像融合关系式进行融合计算。18.根据权利要求17所述的三维场景重建方法,其特征在于,所述纹理图像融合关系式为:i_new(i,j)=(1-|cos(a)|*cos(s))*i(i,j)+cos(a)|*cos(s)i_input(i,j),其中,(i,j)为像素坐标,i_new(i,j)表示融合后像素(i,j)的像素值,i(i,j)表示所述表面体素内存储的已存纹理图像中像素(i,j)的像素值,i_input(i,j)表示所述当前帧图像针对所述表面体素的当前纹理图像中像素(i,j)的像素值,a表示所述当前帧图像的视点方向和所述表面体素的表面法向之间的夹角,s表示归一化后的相机运动距离。19.根据权利要求3所述的三维场景重建方法,其特征在于,所述基于所述当前相机位姿及所述当前帧图像中每个像素的图像像素位置,计算所述当前帧图像中每个所述像素各自对应的三维坐标,包括:针对所述当前帧图像中的每个像素,根据所述当前相机位姿及所述当前帧图像中所述像素的图像像素位置,采用三维坐标计算关系式计算得到所述像素的三维坐标;其中,所述三维坐标计算关系式为:p=p*i
rgb
(u,v),其中,p表示像素的三维坐标,p表示当前相机位姿,i
rgb
(u,v)表示图像像素位置(u,v)处的像素。20.一种三维场景重建装置,其特征在于,包括:第一更新模块,用于基于当前帧图像对当前三维几何模型进行更新,得到更新后的三维几何模型;第二更新模块,用于采用基于所述当前帧图像得到的亮度图对所述更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新,得到更新后的纹理图像;判断模块,用于判断所述当前帧图像是否为最后一帧图像,若是,则触发确定模块;否则,触发返回模块;所述确定模块,用于将所述更新后的三维几何模型作为重建完成的三维几何模型,将与各所述表面体素分别对应的更新后的纹理图像作为重建完成的纹理图像,并基于所述重建完成的三维几何模型和所述重建完成的纹理图像得到重建后的三维场景;所述返回模块,用于将下一帧图像作为当前帧图像并返回执行所述基于当前帧图像对当前三维几何模型进行更新的步骤。21.一种电子设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至19任一项所述三维场景重建方法的步骤。22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至19任一项所述三维场景重建方法的步骤。

技术总结
本发明公开了一种三维场景重建方法、装置、电子设备及可读存储介质,应用于三维重建技术领域,为解决现有三维重建精确度低的问题,提出基于当前帧图像对当前三维几何模型进行更新得到更新后的三维几何模型;采用基于当前帧图像得到的亮度图对更新后的三维几何模型中的表面体素内部存储的已存纹理图像进行更新得到更新后的纹理图像;判断当前帧图像是否为最后一帧图像,若是,则将更新后的三维几何模型作为重建完成的三维几何模型,将与各个表面体素对应的更新后的纹理图像作为重建完成的纹理图像,以构成重建后的三维场景;否则,将下一帧图像作为当前帧图像返回执行基于当前帧图像对当前三维几何模型进行更新的步骤;能提高重建的精确度和质量。能提高重建的精确度和质量。能提高重建的精确度和质量。


技术研发人员:赵雅倩 魏辉 李茹杨 卢丽华 张晓辉
受保护的技术使用者:浪潮(北京)电子信息产业有限公司
技术研发日:2023.08.25
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐