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

一种房屋三维模型破洞自动填补方法与流程

2022-09-04 09:37:23 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,具体涉及一种房屋三维模型破洞自动填补方法。


背景技术:

2.室内模型的三维重建需要深度数据和彩色数据,通过准确标定的相机参数,可以得到准确的彩色点云数据;即带有色彩信息的点云。深度数据有多种获取方式(雷达或深度相机),使用结构光相机是一种经济且快捷的方法。但由于结构光相机的固有缺点,遇到强光或反射率大的物体,例如镜子、玻璃,经常会得不到完整数据,造成深度数据缺失的情况出现。用这种深度数据缺失的原始数据,重建的三维模型,在窗户、镜子等区域,通常会有破洞生成,极大的影响了模型的没完整度和美观程度。现实工作环境中,针对模型部分缺失的问题,有人工修补和自动化修补两种方式。人工修补是最普遍的补救方案,人工修补十分耗时,也耗费人力,效率很低;采用自动化修补方式繁琐,且修补后的三维模型与现实场景有一定差别(传统的自动化修补方式无法准确的判断出破洞的边界和破洞处的实际状况,补出的模型容易产生误差,例如墙角区域被补成斜面)。


技术实现要素:

3.为了克服现有技术的不足,本发明提供了一种房屋三维模型破洞自动填补方法,解决了现有三维模型修补方法效率低下、过程繁琐,与现实场景有一定差别等问题。
4.本发明解决其技术问题所采用的技术方案是:一种房屋三维模型破洞自动填补方法,包括如下步骤:
5.步骤一、通过房屋三维模型,获取房屋内部彩色全景图,并将该色彩全景图输入神经网络进行语义识别与分别,获取若干不同区域的区域范围;
6.步骤二、根据房屋三维模型的点云信息生成深度全景图;
7.步骤三、调整步骤二中的深度全景图使其像素点与分割后的彩色全景图一一对应;
8.步骤四、根据点云法线信息对步骤一中某一区域范围进行边缘检测,获取破洞区域;
9.步骤五、获取步骤四中破洞区域附近的点在深度全景图相应位置处的深度数据,利用获取的深度数据对相应的破洞区域进行填补;
10.步骤六、重复步骤四和步骤五,以完成对房屋三维模型全部区域范围的破洞填补。
11.优选的,所述步骤二中通过反投影技术获取与彩色全景图分辨率相同且视场角相同的深度全景图。
12.优选的,所述步骤二中深度全景图获取方法,包括如下步骤:
13.s1、获取三维模型点云中每个点三维坐标;
14.s2、基于s1中每个点三维坐标,通过三角函数获取每个点的经度角和纬度角;
15.s3、根据s2中每个点的经度角和纬度角与彩色全景图视野角度比例关系,获取深
度全景图中每个点坐标,获取深度全景图。
16.优选的,所述步骤五中深度数据获取方式如下:
17.设定深度全景图位于破洞区域附近的点为p,其坐标为[u,v],将p点坐标转换为三维坐标[x,y,z],点p的深度值为d,得到转换后p点的经度角u'和维度角v';其中,width和height为深度全景图的宽和高;
[0018]
u'=u*360/width;
[0019]
v'=v*180/height;
[0020]
x=d*cos(v')*cos(u')
[0021]
y=d*sin(v')
[0022]
z=d*cos(v')*sin(u')
[0023]
通过对所有深度点进行深度恢复,得到破洞区域的深度数据。
[0024]
本发明的有益效果为:
[0025]
根据三维全景图与深度全景图的对比,获取三维模型所缺失的数据,并将其自动化填补,极大提高获取缺失数据效率;本技术过程简单,相对于现有修补方法,在获取破洞位置后,通过深度全景图相应位置处的深度数据,即可进行填补,进而提高了修补后三维模型的完整行与一致性。
附图说明
[0026]
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0027]
图1是本实施例中自动填补方法的流程图。
具体实施方式
[0028]
下面结合附图对本发明的优选实施例进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
[0029]
实施例
[0030]
参见图1所示,一种房屋三维模型破洞自动填补方法,包括如下步骤:
[0031]
步骤一、通过房屋三维模型,获取房屋内部彩色全景图,并将该色彩全景图输入神经网络进行语义识别与分别,获取若干不同区域的区域范围;将房屋内的墙体、屋顶、地面等结构化区域进行打标,用以得到房屋的结构化信息;特别的,由于实际场景中会包含大量的二手房场景,会存在大量家具等物品,在打标时需要特别注意杂物的影响,应以结构化区域的实际范围为准。例如,如果墙体前有桌椅等物品,墙体的范围应沿墙角线竖直投影到地面,而不是截止到桌子处。
[0032]
将打标后的彩色全景图输入神经网络,进行语义识别与分割,获取若干不同的区域范围,该区域范围包括屋顶边界,地面的边界,墙体的边界;输入到神经网络的彩色全景图分辨率越高,识别后精度也会越高,相应的执行效率会减慢;相反的,输入到神经网络中的图片分辨率越低,则识别后的精度也会下降,相应的执行效率则会加快;
[0033]
步骤二、根据房屋三维模型的点云信息生成深度全景图;本实施例通过反投影技术,得到与彩色全景图分辨率相同且视场角相同的深度全景图;
[0034]
步骤三、调整步骤二中的深度全景图使其像素点与分割后的彩色全景图一一对应;
[0035]
步骤四、根据点云法线信息对步骤一中某一区域范围进行边缘检测,获取破洞区域;通过利用点云的法线信息,对区域范围进行边缘检测,如果在区域范围内存在闭合的边界,则可认为区域范围内存在破洞,需要补洞操作;
[0036]
步骤五、获取步骤四中破洞区域附近的点在深度全景图相应位置处的深度数据,利用获取的深度数据对相应的破洞区域进行填补;
[0037]
步骤六、重复步骤四和步骤五,以完成对房屋三维模型全部区域范围的破洞填补。
[0038]
进一步的,破洞区域附近的点在深度全景图上相应位置处深度数据获取方式如下:
[0039]
设定分割后彩色全景图屋顶边界为:c1,c2,...,地面的边界为:f1,f2,...,墙体边界为w1,w2,...;
[0040]
设定深度全景图位于破洞区域处附近的点为p,其坐标为[u,v],将p点转换为三维坐标[x,y,z];点p的深度值为d,得到转换后p点的经度角u'和维度角v';其中,width和height为深度全景图的宽和高;
[0041]
假设彩色全景图中破洞区域在深度全景图的墙体范围中,则选取在深度全景图中对应区域边缘或附近的点[u,v]坐标,落在[w1,w2...]区域内的点为p1,p2...;
[0042]
u'=u*360/width;
[0043]
v'=v*180/height;
[0044]
x=d*cos(v')*cos(u')
[0045]
y=d*sin(v')
[0046]
z=d*cos(v')*sin(u')
[0047]
通过对所有深度点进行深度恢复,得到破洞区域的深度数据;根据([p1,p2,...]的三维坐标)该深度数据进行平面拟合,得到破洞区域的平面方程,a*x b*y c*z d=0。得到破洞区域点云的范围,[xmax,ymax]和[xmin,ymin]。将(将所有小于[xmax,ymax]大于[xmin,ymin]的点[x,y])范围内的点云,带入平面方程内,补齐缺失的墙体。
[0048]
进一步的,所述步骤二中深度全景图获取方法,包括如下步骤:
[0049]
s1、获取三维模型点云中每个点三维坐标(x,y,z)
[0050]
s2、基于s1中每个点三维坐标,通过三角函数获取每个点的经度角和纬度角,经度角和纬度角计算公式如下所示:
[0051]
经度角(longitude)=arctan2(x,y)
[0052]
纬度角(latitude)=arctan2(z,sqrtf(x*x y*y))
[0053]
s3、根据s2中每个点的经度角和纬度角与彩色全景图视野角度比例关系,获取深度全景图中每个点坐标,获取深度全景图;其中,深度全景图中每个点坐标设为(u,v),获取其坐标公式如下:
[0054]
u=longitude*360/width;
[0055]
v=latitude*180/height;
[0056]
通过上述操作获取深度全景图。
[0057]
总之,本实施例通过彩色全景图与深度全景图对应,即可获取用于填补破洞区域
的深度数值,通过训练好的神经网络进行填补,过程简单且效率高效;尤其是通过深度全景图上的深度数据,相对比现有修补方法,能够确保填补后的三维模型与现实场景的一致性。
[0058]
以上所述的仅为本发明的优选实施例,所应理解的是,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,并不用于限定本发明的保护范围,凡在本发明的思想和原则之内所做的任何修改、等同替换等等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献