一种建筑模型的构建方法、装置及存储装置
技术领域
本申请涉及重建模型领域,特别是涉及一种建筑模型的构建方法、装置及存储装置。
背景技术
现有技术中基于视觉的三维模型构建方法常会因各种噪音或者误差产生异常点,从而因上述异常点会导致光滑表面重建的坑坑洼洼等问题。且由于传统重建模型中包含数量巨大点云和网格,使得三维模型的传输,分析,和进一步利用受限。
发明内容
本申请主要解决的技术问题是,提供一种建筑模型的构建方法、装置及具有存储功能的装置,能够解决重建模型过程中因外在因素所产生的异常点使得重建的模型应用受限的问题。
为解决上述技术问题,本申请采用的技术方案是:提供一种建筑模型的构建方法,该方法包括以下步骤:
识别多张多角度拍摄的图片中的目标建筑;
计算出每张所述图片中所述目标建筑的位姿和点云;
根据多张图片对应的所述目标建筑的位姿和点云进行组合处理以得到初步三维模型;
对所述初步三维模型进行二维切分处理,以得到预设数量的二维切片;
将所述二维切片按预设方式进行对齐处理,以得到目标三维模型。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种重建模型的装置,该装置包括:相互电性连接的处理器和存储器,所述处理器耦合所述存储器,所述处理器在工作时执行指令以实现如上所述的建筑模型的构建方法,并将所述执行指令产生的处理结果保存在所述存储器中。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种具有存储功能的装置,存储有程序数据,所述程序数据被执行时实现以上所述的方法。
以上技术方案的有益效果是:区别于现有技术的情况,本申请通过识别多张多角度拍摄的图片中的目标建筑,并计算出每张图片中目标建筑的位姿和点云,并根据所计算出的位姿和点云进行预设的组合处理,得到初步的三维模型,对所得到的三维模型进行二维切分处理,以得到预设数量的二维切片,将经切分得到的二维切片按照预设的方式进行对齐处理,以得到目标三维模型,最终实现重建更加准确的模型,得到更加准确平整的模型。
附图说明
图1是本申请建筑模型的构建方法的一实施方式的流程示意图;
图2是本申请建筑模型的构建方法的另一实施方式的流程示意图;
图3a是现有技术建筑模型的构建方法的效果示意图;
图3b是本申请建筑模型的构建方法的又一实施方式的效果示意图;
图4是本申请建筑模型的构建的装置一实施方式的结构示意图;
图5是本申请具有存储功能的装置一实施方式的结构示意图。
具体实施方式
在下文中,将参照附图来描述本申请的示例性实施例。为了清楚和简要的目的,不详细描述公知的功能和构造,这是因为所述公知的功能和构造会使本申请在不必要的细节上变模糊。考虑到本申请中的功能而限定的下面描述的术语可以根据用户和操作者的意图或实施而不同。因此,应该在整个说明书的公开的基础上来限定所述术语。
请参阅图1,为本申请建筑模型的构建方法的一实施例方式的流程示意图。需注意的是,若有实质上相同的结果,本申请的方法并不以图1所示的流程顺序为限,下述其他流程示意图同样不以图示的流程顺序为限。如图1所示,该方法包括步骤S10至步骤S50,其中:
S10:识别多张多角度拍摄的图片中的目标建筑。
步骤S10是识别所获取和/或接收到的多张图片中需要建立模型建筑,其中,将需要建立模型的建筑称为目标建筑,多张图片为从目标建筑不同的角度拍摄所得的图片。可以理解的,多张多角度拍摄的图片可以是实时通过拍摄装置拍摄所得,也可以是其他通过网络传输的图片,还可以是调用本地所存储的图片。其中每一张图片中均包含有所需要建立模型的建筑(感兴趣建筑),需要说明的是,多张照片是从目标建筑不同的角度拍摄所得图片。
在一实施例中,所识别的图片是调用本地存储的图片,其中所识别的图片为从目标建筑至少3个方向(建筑的前后左右和上方中任意三个方向)拍摄所得。
在另一实施例中,所识别的图片为从目标建筑大于5个方向拍摄所得。具体的,拍摄的方向包括:建筑的前后左右和上方等5个方向,以及与前后左右或者是上方有一定偏角的方向,如一建筑物的体对角线所对应的方向。其中,由于对于建筑拍摄的方向为多种多样的,在此对拍摄的角度不作任何的限定。
进一步的,一实施例中,将所识别的每张图片中,与目标建筑物相关的像素标注出,用做后续调用或者是在标注出目标建筑对应的像素基础之上的图片进一步处理操作。
进一步的,一实施例中,步骤S10之后还包括:将每张图片中除目标建筑外的部分像素替换为纯白色。
在一实施例中,当前所识别的图片中除去目标建筑外,还包括其他的建筑或者是背景等。所以在步骤S10之后还包括将每张图片中除去目标建筑以外所有部分的像素替换为纯白色。将每张图片中除去目标建筑外部分像素全部替换为纯白色可以较好地减少计算识别的量,简化重建模型的计算量,也提高了重建的精度,同时也会进一步减少重建所得的模型文件体积大小,进一步较少所占用的计算机内存空间。
S20:计算出每张图片中目标建筑的位姿和点云。
进一步的,当步骤S10识别出图片中目标建筑后,进一步计算出每张图片中目标建筑的位姿和点云。其中,目标建筑的位姿,是指目标建筑在坐标系中位置和姿态,也可以简单理解为当前图片所拍摄的方向。目标建筑的点云可以理解为产品外观点的数据集合。
具体的,步骤S20进一步包括:利用运动恢复结构算法计算出目标建筑的位姿和点云。由于不同图片的拍摄角度不同,所以在不同的图片中,目标建筑的位姿也是不同的。其中,运动恢复结构算法(structure from motion)利用两个场景或多个场景自动恢复相机运动或场景结构,是一种自校准的技术能够自动完成相机的追踪和运动匹配。具体的是匹配相邻的两张或者是多张图片中特征点,以得到完整的场景结构。
在一实施例中,根据步骤S10中所识别出的多张多角度图片中的目标建筑,利用运动恢复结构算法匹配相邻位姿的图片的特征点,以恢复出多角度所拍摄到的同一目标建筑,以得到目标建筑对应的点云。
S30:根据多张图片对应的目标建筑的位姿和点云进行组合处理以得到初步三维模型。
根据上述步骤S20中计算所得的多张多角度图片中目标建筑的位姿和点云,进行组合处理,以得到初步三维模型。
进一步的,步骤S30包括:根据多张图片对应的目标建筑的位姿和点云,利用多目立体视觉算法计算并进行组合处理以得到初步三维模型。
根据步骤S20中所计算出的多张图片中目标建筑的位姿和点云,并利用多目立体视觉算法进一步计算点云,并进行组合处理以得到初步三维模型。
根据运动恢复结构算法的特点可以得知,运动恢复算法所计算出的目标建筑的点云为稀疏点云;同样的根据多目立体视觉算法的特点可以得知,经多目立体视觉算法计算得到的目标建筑的点云为稠密点云。可以理解的,当多目立体视觉算法在经过运动恢复算法计算所得目标建筑对应的点云基础之上,根据计算所得的位姿关系再次进行进一步计算,得到的初步三维模型为稠密点云。
S40:对初步三维模型进行二维切分处理,以得到预设数量的二维切片。
进一步的,对所得初步三维模型按照预设的方向进行二维切分处理,以得到预设数量的二维切片。其中,对初步三维模型进行二维切分的方向可以是水平方向,也可以是沿垂直方向对初步三维模型进行切分,还可以是其他经过特定计算得到的方向对初步三维模型进行切分,以获取预设数量的二维切片。
可选地,对初步三维模型进行二维切分处理的步骤中,所设定目标二维切片的数量根据所需要切分的精度进行设定。在一实施例中,当需要进行非常精准细致地切分时,则会设定切分次数较多,以获取较多数量的二维切片。在另一实施例中,当需要对初步三维模型进行普通的切分时,则设定切分较少的次数,以得到一个较少数量的二维切片。
进一步的,在一实施例中,步骤S40还包括下述步骤,即按照一个预设的方向,依次对初步三维模型进行二维切分处理,以得到预设数量的二维切片,在对初步三维模型进行切分过程中还对二位切片按照切分的顺序进行编号。在切分的过程中,依据切分的顺序对所得的二维切片依次进行编号。如当切分是沿着水平面方向进行自上向下进行切分时,则会顺着切分的顺序依次对切分所得的二维切片进行标号。
具体的,编号的内容可以为“1,2,3……”可以理解的,在其他的实施例中,编号的内容可以根据用户的需要进行调整设定,如可以调整为字母与数字组合的方式。
在另一实施例中,请参见图2,步骤S40包括步骤S41至步骤S43。其中,
S41:检测初步三维模型的直线和平面。
步骤S41是在所得到的初步三维模型中,根据计算所得的点云进一步检测,提取出其中的直线和平面。其中,提取出直线和平面的目的主要是在于去除掉因噪音或者是其他因素带来的杂点,使得重建过程中的位姿估算和点云更加精确。同时在不降低模型质量的前提下,有效地减少了目标建筑的点云和后续转化所得对应目标三维结构的网格结构复杂度。
S42:根据直线和/或平面,拟合出第一方向的平面和/或第二方向的平面。
步骤S42是根据上述步骤S41中所得的直线和/或平面,进一步拟合出第一方向的平面和/或第二方向的平面。其中,拟合是将某一预设数量的点经过计算,得出与这些点距离的平方和最小的一条直线,同样的,拟合出某一平面是指,计算出与预设数量的直线距离平方和最小的一个平面。其中,距离是垂直距离。
进一步的,先利用点云中的点,拟合出预设数量的直线,在利用拟合所得的直线,进一步拟合出第一方向的平面或者是第二方向上的平面。第一方向上的平面是水平方向上的平面,第二方向上的平面是垂直方向上的平面,根据需要拟合所得。
在一实施例中,所需要拟合的第一方向上的平面是水平方向上的平面,先拟合出水平方向平面平行的直线,在根据所拟合出的直线进一步拟合出所需的水平方向的平面。同样的,在其他的实施例中,当需要拟合出某一方向上的平面时,则先拟合出与所需要平面的平行的直线,再拟合出所需要的平面。
S43:根据第一方向的平面和/或第二方向的平面对初步三维模型进行二维切分,以得到预设数量的二维切片。
步骤S43是根据上述步骤S42中拟合得到的第一方向的平面和/或第二方向的平面对初步三维模型进行二维切分,以得到预设数量的二维切片。
在一实施例中,当步骤S42中的拟合所得的是第一方向上的平面,即一水平方向上的平面,步骤S43则是根据所得的水平方向上的平面对初步三维模型进行切分,以得到预设数量的二维切片。
在另一实施例中,当步骤S42中拟合所得是第二方向的平面,即一垂直方向上的平面,则步骤S43根据所得垂直方向上的平面对初步三维模型进行切分,以得到预设数量的二维切片。可以理解的是,当对初步三维模型切分的是沿着垂直方向上一平面进行切分时,后续进行对切分所得二维切片进行对齐处理时,则会沿着其原有切分的方向进行对齐处理。
在对初步三维模型切分之后,还包括对切分所得每一个二维切片进行正规化处理,以得到标定二维切片。其中,标定二维切片通常是一些多边形的二维图片。正规化处理是将上述步骤中所得二维切片进一步处理掉点杂点或者是异常点,同时将因其他因素(包括噪音等)造成的缺失补全,以得到一个更加准确的多边形(经过正规化处理的二维切片)。具体的,请参见图3a和图3b,为正规化处理的效果示意图。图3a展示的是没有经过正规化处理的二维切片,由图3a可以得知由于噪声等不定因素,造成所得的二维切片存在缺失,且所得二维切片边缘部分凹凸不平。经过正规化处理后,得到如图3b所示的线条更直,夹角更准确的二维切片(多边形),其中经过正规化处理后,将缺失的部分补齐。总结说,正规化处理就是通过提取出来的直线部分将二维切片建模为多边形。在这个过程中会涉及:直线的拟合过程中杂点的去除、多边形构造中对直线缺少部分的部分补齐,或者调整所的夹角更准确。
S50:将二维切片按预设方式进行对齐处理,以得到目标三维模型。
进一步的,步骤S50为将二维切片按照增长对齐的方式进行对齐处理,以得到目标三维模型。
在一实施例中,步骤S50是将切分后所得二维切片直接按照增长对齐的方式进行对齐处理,以得到目标三维模型。
在另一实施例中,步骤S50具体为:将经过正规化处理后得到的标定二维切片,按照增长对齐的方式进行对齐处理,以得到目标三维模型。其中,标定二维切片通常是一些多边形的二维图片。进一步的,步骤S50进一步所述二维切片按预设方式进行对齐处理,并在对齐处理的过程中对所述二维切片进行取并处理,以得到目标三维模型。
在一实施例中,当以增长的方式对齐标定二维切片后,但是依然存在一些较少的误差,此时将误差进行取并操作,将误差位置或者是数值尽可能地取并至多数值或者是准确值。
可选地,在一实施例中,当经过上述步骤S10至步骤S40,可以得到目标三维模型后,还包括将目标三维模型转化成网格结构。可以理解的是,转化成网格结构的目标三维模型,所占用的计算机内存会更小,更加方便传输和分析。本申请通过识别多张多角度拍摄的图片中的目标建筑,并计算出每张图片中目标建筑的位姿和点云,并根据所计算出的位姿和点云进行预设的组合处理,得到初步的三维模型,对所得到的三维模型进行二维切分处理,以得到预设数量的二维切片,将经切分得到的二维切片按照预设的方式进行对齐处理,以得到目标三维模型,最终实现在此过程中重建更加准确的模型。
请参见图4,为本申请一种重建模型的装置10一实施方式结构示意图,该装置10包括相互电性连接的处理器12和存储器14,所述处理器12耦合所述存储器14,所述处理器12在工作时执行指令以实现如上所述的建筑模型的构建方法,并将所述执行指令产生的处理结果保存在所述存储器14中。
在一实施例中,具体的,重建模型的装置10可以为手机、笔记本电脑、拥有通信和联网功能的平板电脑、上述重建模型功能的其他设备,但不限于此。
参阅图5,为本申请一种具有存储功能的装置20一实施方式结构示意图,存储装置20存储有程序数据,存储装置所存储的程序数据被执行时实现如上所述的建筑模型的构建方法。具体的,上述具有存储功能的装置20可以是终端设备的存储器、个人计算机、服务器、网络设备,或者U盘等其中的一种。以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。