CN112767538B - 三维重建及相关交互、测量方法和相关装置、设备 - Google Patents
三维重建及相关交互、测量方法和相关装置、设备 Download PDFInfo
- Publication number
- CN112767538B CN112767538B CN202110031502.0A CN202110031502A CN112767538B CN 112767538 B CN112767538 B CN 112767538B CN 202110031502 A CN202110031502 A CN 202110031502A CN 112767538 B CN112767538 B CN 112767538B
- Authority
- CN
- China
- Prior art keywords
- data set
- image
- dimensional
- processed
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000003993 interaction Effects 0.000 title claims abstract description 22
- 238000000691 measurement method Methods 0.000 title claims abstract description 14
- 238000005457 optimization Methods 0.000 claims abstract description 168
- 238000000034 method Methods 0.000 claims abstract description 95
- 238000012545 processing Methods 0.000 claims abstract description 20
- 230000009466 transformation Effects 0.000 claims description 136
- 238000005259 measurement Methods 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 32
- 239000013598 vector Substances 0.000 claims description 19
- 238000012216 screening Methods 0.000 claims description 15
- 238000003384 imaging method Methods 0.000 claims description 14
- 230000005484 gravity Effects 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 12
- 230000002452 interceptive effect Effects 0.000 claims description 7
- 230000000007 visual effect Effects 0.000 claims description 7
- 238000007621 cluster analysis Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 abstract description 27
- 238000004364 calculation method Methods 0.000 abstract description 14
- 239000011159 matrix material Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 210000000988 bone and bone Anatomy 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 229910052602 gypsum Inorganic materials 0.000 description 5
- 239000010440 gypsum Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 241001494479 Pecora Species 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000001154 acute effect Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000008846 dynamic interplay Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 210000000887 face Anatomy 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Abstract
本申请公开了一种三维重建及相关交互、测量方法和相关装置、设备,其中,三维重建方法包括获取摄像器件扫描待重建目标得到的多帧待处理图像;利用每帧待处理图像和摄像器件的标定参数,确定每帧待处理图像属于待重建目标的目标像素点及其相机位姿参数;依次将各帧待处理图像的图像数据划分至对应的数据集合;利用数据集合的图像数据及时序位于其之前的数据集合的图像数据和位姿优化参数,确定数据集合的位姿优化参数;利用数据集合的位姿优化参数,对包含于数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整;对待处理图像的图像数据进行重建处理,得到待重建目标的三维模型。上述方案,能够提高三维重建的效果,并降低三维重建的计算负荷。
Description
技术领域
本申请涉及计算机视觉技术领域,特别是涉及一种三维重建及相关交互、测量方法和相关装置、设备。
背景技术
随着信息技术的发展和电子技术水平的提高,人们越来越青睐于使用诸如手机、平板电脑等集成有摄像器件的移动终端对真实场景中的物体进行三维重建,从而利用三维重建得到的三维模型在移动终端实现增强现实(Augmented Reality,AR)、游戏等应用。
然而,由于摄像器件在对真实场景中的物体进行扫描拍摄时,由于从摄像器件获取到的图像带有不同程度的噪声,而目前主流的相机位姿参数求解方法不可避免地会引入一些误差,误差随着扫描拍摄的进行而不断累积,从而影响三维模型的效果,此外,由于整个三维重建过程中,随着扫描拍摄的视野范围的扩大,新拍摄的图像不断融入,计算负荷也逐渐增大。有鉴于此,如何提高三维重建的效果,并降低三维重建的计算负荷成为亟待解决的问题。
发明内容
本申请提供一种三维重建方法及相关装置、设备。
本申请第一方面提供了一种三维重建方法,包括:获取摄像器件扫描待重建目标得到的多帧待处理图像;利用每帧待处理图像和摄像器件的标定参数,确定每帧待处理图像属于待重建目标的目标像素点及其相机位姿参数;按照预设划分策略,依次将各帧待处理图像的图像数据划分至对应的数据集合,其中,图像数据至少包括目标像素点;依次利用各个数据集合的图像数据,及时序位于其之前的数据集合的图像数据和位姿优化参数,确定每一数据集合的位姿优化参数;利用每一数据集合的位姿优化参数,对包含于数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整;利用预设三维重建方式和待处理图像的调整后的相机位姿参数,对待处理图像的图像数据进行重建处理,得到待重建目标的三维模型。
因此,通过摄像器件扫描待重建目标得到的待处理图像和摄像器件的标定参数,确定得到每帧待处理图像属于待重建目标的目标像素点及其相机位姿参数,并按照预设划分策略,依次将各帧待处理图像的图像数据划分至对应的数据集合,从而依次利用各个数据集合的图像数据,及时序位于其之前的数据集合的图像数据和位姿优化参数,确定每一数据集合的位姿优化参数,进而每一数据集合的位姿优化参数都能够基于其之前的数据集合的位姿优化参数来得到确定,故在利用每一数据集合的位姿优化参数对包含于数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整时,有利于消除扫描过程中所累积相机位姿参数的误差,故利用预设三维重建方式和待处理图像的调整后的相机位姿参数,对待处理图像的图像数据进行重建处理,得到的待重建目标的三维模型的效果得以有效提升,且以数据集合为单位进行相机位姿参数的误差消除,能够降低计算量,从而有利于减轻计算负荷。
其中,依次利用各个数据集合的图像数据,及时序位于其之前的数据集合的图像数据和位姿优化参数,确定每一数据集合的位姿优化参数包括:依次将每一数据集合作为当前数据集合,并选取至少一个位于当前数据集合之前的数据集合,作为候选数据集合;利用当前数据集合的图像数据和候选数据集合的图像数据,确定当前数据集合和候选数据集合之间的空间变换参数;至少利用候选数据集合的位姿优化参数,以及当前数据集合与候选数据集合之间的空间变换参数,获得当前数据集合的位姿优化参数,并至少更新候选数据集合的位姿优化参数。
因此,通过依次将每一数据集合作为当前数据集合,并选取至少一个位于当前数据集合之前的数据集合,作为候选集合,从而利用当前数据集合的图像数据和候选书集合的图像数据,确定当前数据集合和候选数据集合之间的空间变换参数,进而至少利用候选数据集合的位姿优化参数,以及当前数据集合与候选数据集合之间的空间变换参数,获得当前数据集合的位姿优化参数,并至少更新候选数据集合的位姿优化参数,能够有利于消除扫描过程中所累积相机位姿参数的误差,并减少用于计算位姿优化参数的数据量,从而有利于降低计算负荷。
其中,至少利用候选数据集合的位姿优化参数,以及当前数据集合与候选数据集合之间的空间变换参数,获得当前数据集合的位姿优化参数,并至少更新候选数据集合的位姿优化参数包括:将分别与当前数据集合以及时序位于其之前的数据集合相关的各个空间变换参数所对应的两个数据集合,作为一数据集合对;利用各个数据集合对的空间变换参数,以及各自的位姿优化参数,构建一关于位姿优化参数的目标函数;利用预设求解方式对目标函数进行求解,得到当前数据集合及时序位于其之前的数据集合各自对应的数据集合对所包含的数据集合的位姿优化参数。
因此,通过将分别与当前数据集合以及时序位于其之前的数据集合相关的空间变换参数所对应的两个数据集合,作为一数据集合对,并利用各个数据集合对的空间变换参数,以及各自的位姿优化参数,构建一关于位姿优化参数的目标函数,从而构建并求解关于位姿优化参数的目标函数,进而得到当前数据集合及时序位于其之前的数据集合各自对应的数据集合对所包含的数据集合的位姿优化参数,故能够随着数据集合的增加,数据集合的位姿优化参数能够得以不断更新,故有利于消除扫描过程中所累积的相机位姿参数的误差,从而提高三维建模的效果。
其中,利用当前数据集合的图像数据和候选数据集合的图像数据,确定当前数据集合和候选数据集合之间的空间变换参数包括:在候选数据集合和当前数据集合中搜索一组满足预设匹配条件的待匹配图像数据;基于从每组待匹配图像数据中提取得到的预设图像特征,得到每组待匹配图像数据之间的匹配像素点对;将匹配像素点对中属于当前数据集合的像素点映射至三维空间,得到第一三维匹配点,并将匹配像素点对中属于候选数据集合的像素点映射至三维空间,得到第二三维匹配点;将第一三维匹配点和第二三维匹配点进行对齐处理,得到空间变换参数。
因此,通过在求解当前数据集合和候选数据集合之间的空间变换参数时,利用预设图像特征结合图像数据的匹配像素点在三维空间中的三维匹配点之间的空间对齐,能够提升对齐的成功率,从而提高空间变换参数的准确性。
其中,将第一三维匹配点和第二三维匹配点进行对齐处理,得到空间变换参数包括:获取第一三维匹配点和第二三维匹配点之间的第一位姿变换参数;利用第一位姿变换参数和预设位姿变换参数,对第一三维匹配点进行位姿优化,分别得到第一优化匹配点和第二优化匹配点;计算第二三维匹配点分别与第一优化匹配点、第二优化匹配点之间的重合度,并选取重合度较高的优化匹配点所采用的位姿变换参数,作为第二位姿变换参数;以第二位姿变换参数作为初始值,利用预设对齐方式将第一三维匹配点和第二三维匹配点进行对齐处理,得到当前数据集合与候选数据集合之间的空间变换参数。
因此,通过获取第一三维匹配点和第二三维匹配点之间的第一位姿变换参数,并利用第一位姿变换参数和预设位姿变换参数对第一三维匹配点进行位姿优化,分别得到第一优化匹配点和第二优化匹配点,从而计算第二三维匹配点分别与第一优化匹配点、第二优化匹配点之间的重合度,并选取重合度较高的优化匹配点所采用的位姿变换参数,作为第二位姿变换参数,进而以第二位姿变换参数作为初始值,利用预设对齐方式将第一三维匹配点和第二三维匹配点进行对齐处理,得到当前数据集合与候选数据集合之间的空间变换参数,能够提升空间变换参数的准确性。
其中,利用当前数据集合的图像数据和候选数据集合的图像数据,确定当前数据集合和候选数据集合之间的空间变换参数之后,以及至少利用候选数据集合的位姿优化参数,以及当前数据集合与候选数据集合之间的空间变换参数,获得当前数据集合的位姿优化参数之前,方法还包括:从当前数据集合与各个候选数据集合之间的空间变换参数中,选取符合预设参数筛选条件的空间变换参数;其中,预设参数筛选条件包括以下任一者:空间变换参数相关的候选数据集合与当前数据集合相邻;利用空间变换参数对第一三维匹配点进行位姿优化得到的优化匹配点,与第二三维匹配点之间的重合度大于一预设重合度阈值。
因此,在利用空间变换参数求解当前数据集合的位姿优化参数之前,先对各个候选数据集合和当前数据集合之间的位姿优化参数进行筛选,有利于提高后续求得的位姿优化参数的准确性,故有利于提高三维重建的效果。
其中,选取至少一个位于当前数据集合之前的数据集合,作为候选数据集合包括:利用当前数据集合及时序位于其之前的数据集合中的图像数据的预设图像特征,构建词袋模型;并选取所属的待处理图像位于当前数据集合中的预设时序处的图像数据,作为待匹配图像数据;从词袋模型的预设范围中,查询与待匹配图像数据的预设图像特征之间的相似度评分大于一预设相似度阈值的预设图像特征;将查询到的预设图像特征所属的图像数据所在的数据集合,以及与当前数据集合相邻的数据集合,作为候选数据集合;其中,预设范围包括所属的数据集合与当前数据集合不相邻,且不包含于当前数据集合中的图像数据的预设图像特征。
因此,通过所属的待处理图像位于当前数据集合中的预设时序的图像数据的预设图像特征,查找候选数据集合,有利于对候选数据集合进行筛选,从而有利于提高位姿优化参数的准确性,进而提升三维重建的效果。
其中,从词袋模型的预设范围中,查询与待匹配图像数据的预设图像特征之间的相似度评分大于一预设相似度阈值的预设图像特征之前,方法还包括:获取与当前数据集合相邻的数据集合中各个图像数据与待匹配图像数据之间的相似度评分中的最大评分值;将最大评分值的预设倍数和一预设评分值中的任一者作为预设相似度阈值。
因此,通过获取与当前数据集合相邻的数据集合中各个图像数据与待匹配图像数据之间的相似度评分中的最大评分值,并将最大评分值的预设倍数和一预设评分值中的任一者作为预设相似度阈值,有利于筛选到最佳的候选数据集合,从而有利于提高位姿优化参数的准确性,进而提升三维重建的效果。
其中,按照预设划分策略,依次将各帧待处理图像的图像数据划分至对应的数据集合包括:依次将各帧待处理图像作为当前待处理图像;在对当前待处理图像的图像数据进行划分时,若已有的数据集合中的末尾数据集合满足预设溢出条件,则获取末尾数据集合中最新的多帧待处理图像的图像数据,并存入一新创建的数据集合,作为新的末尾数据集合,将当前待处理图像的图像数据划分至新的末尾数据集合。
因此,通过在对当前待处理图像的图像数据进行划分时,若已有的数据集合中的末尾数据集合满足预设溢出条件,则获取末尾数据集合中最新的多帧待处理图像的图像数据,并存入一新创建的数据集合,作为新的末尾数据集合,故相邻数据集合之间存在多帧相同的待处理图像的图像数据,有利于提升相邻数据集合之间对齐效果,进而有利于提升三维重建的效果。
其中,预设溢出条件包括以下任一者:末尾数据集合中包含的图像数据所对应的待处理图像的帧数大于或等于预设帧数阈值;末尾数据集合中任一图像数据所属的待处理图像的相机位置与当前待处理图像的相机位置之间的距离大于预设距离阈值;末尾数据集合中任一图像数据所属的待处理图像的相机朝向角度与当前待处理图像的相机朝向角度之间的差异大于预设角度阈值;其中,相机位置和相机朝向角度是利用待处理图像的相机位姿参数计算得到的。
因此,能够控制每个数据集合中包含的图像数据的数据量,并控制每个数据集合中包含的图像数据所属的待处理图像之前的相机位姿较为相近,从而能够提升后续基于数据集合所得到的位姿优化参数的准确性,并提升后续三维重建的效果。
其中,每帧待处理图像包括色彩数据和深度数据,利用每帧待处理图像和摄像器件的标定参数,确定每帧待处理图像属于待重建目标的目标像素点包括:获取与色彩数据对齐之后的深度数据中所包含的每一像素点的法向量与待处理图像的重力方向之间的夹角;并将每一像素点在三维空间投影至重力方向,得到每一像素点在三维空间的高度值;对夹角满足预设角度条件的像素点的高度值进行分析,得到待重建目标的平面高度;利用平面高度,筛选色彩数据中属于待重建物体的目标像素点。
因此,能够结合重力方向即可自动识别出每帧待处理图像中属于待重建目标的目标像素点,降低三维重建的计算负荷,且能够免于用户介入,故能够提升用户体验。
其中,对夹角满足预设角度条件的像素点的高度值进行分析,得到待重建目标的平面高度包括:将夹角满足预设角度条件的像素点的高度值,作为一高度集合;对高度集合中的高度值进行聚类分析,得到待重建目标的平面高度。
因此,能够仅利用夹角满足预设角度条件的像素点的高度值而分析获得待重建目标的平面高度,故能够降低三维重建的计算负荷。
其中,依次利用每一数据集合的图像数据,及时序位于其之前的数据集合的图像数据和位姿优化参数,确定每一数据集合的位姿优化参数之后,方法还包括:依次将每一数据集合中的图像数据映射至三维空间,得到与每一数据集合对应的三维点云;采用每一数据集合的位姿优化参数将与其对应的三维点云进行调整。
因此,在依次确定每一数据集合的位姿优化参数之后,通过依次将每一数据集合中的图像数据映射至三维空间,得到与每一数据集合对应的三维点云,并采用每一数据集合的位姿优化参数将与其对应的三维点云进行调整,能够在扫描过程中实现对三维点云的动态调整,有利于降低三维重建的计算负荷。
本申请第二方面提供了一种基于三维重建的交互方法,包括:获取待重建目标的三维模型,其中,三维模型是利用第一方面中的三维重建方法得到的;利用预设视觉惯导方式,构建摄像器件所在场景的三维地图,并获取摄像器件当前在三维地图中的位姿信息;基于位姿信息,在摄像器件当前拍摄到的场景图像中显示三维模型。
因此,基于摄像器件在所在场景的三维地图中的位姿信息,将待重建目标的三维模型显示在当前拍摄到的场景图像中,能够实现虚拟物体与真实场景的几何一致性融合,且由于三维模型是由上述第一方面中的三维重建方法得到的,故能够提升三维重建的效果,进而提升虚拟与现实几何一致性融合效果,有利于提升用户体验。
本申请第三方面提供了一种基于三维重建的测量方法,包括:获取待重建目标的三维模型,其中,三维模型是利用上述第一方面中的三维重建方法得到的;接收用户在三维模型上设置的多个测量点;获取多个测量点之间的距离,得到待重建目标上对应于多个测量点的位置之间的距离。
因此,通过接收用户在三维模型上设置的多个测量点,从而获取多个测量点之间的距离,进而得到待重建目标上对应于多个测量点的位置之间的距离,从而能够满足对真实场景中物体的测量需求,且由于三维模型是利用上述第一方面中的三维重建方法得到的,能够提升三维重建的效果,进而提升测量准确性。
本申请第四方面提供了一种三维重建装置,包括图像获取模块、第一确定模块、数据划分模块、第二确定模块、参数调整模块和模型重建模块,图像获取模块,用于获取摄像器件扫描待重建目标得到的多帧待处理图像;第一确定模块用于利用每帧待处理图像和摄像器件的标定参数,确定每帧待处理图像属于待重建目标的目标像素点及其相机位姿参数;数据划分模块用于按照预设划分策略,依次将各帧待处理图像的图像数据划分至对应的数据集合,其中,图像数据至少包括目标像素点;第二确定模块依次利用各个数据集合的图像数据,及时序位于其之前的数据集合的图像数据和位姿优化参数,确定每一数据集合的位姿优化参数;参数调整模块用于利用每一数据集合的位姿优化参数,对包含于数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整;模型重建模块用于利用预设三维重建方式和待处理图像的调整后的相机位姿参数,对待处理图像的图像数据进行重建处理,得到待重建目标的三维模型。
本申请第五方面提供了一种基于三维重建的交互装置,包括模型获取模块、建图定位模块和显示交互模块,模型获取模块用于获取待重建目标的三维模型,其中,三维模型是利用上述第四方面中的三维重建装置得到的;建图定位模块用于利用预设视觉惯导方式,构建摄像器件所在场景的三维地图,并获取摄像器件当前在三维地图中的位姿信息;显示交互模块用于基于位姿信息,在摄像器件当前拍摄到的场景图像中显示三维模型。
本申请第六方面提供了一种基于三维重建的测量装置,包括模型获取模块、显示交互模块和距离获取模块,模型获取模块用于获取待重建目标的三维模型,其中,三维模型是利用上述第四方面中的三维重建装置得到的;显示交互模块用于接收用户在三维模型上设置的多个测量点;距离获取模块用于获取多个测量点之间的距离,得到待重建目标上对应于多个测量点的位置之间的距离。
本申请第七方面提供了一种电子设备,包括相互耦接的存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述第一方面中的三维重建方法,或实现上述第二方面中的基于三维重建的交互方法,或实现上述第三方面中的基于三维重建的测量方法。
本申请第八方面提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述第一方面中的三维重建方法,或实现上述第二方面中的基于三维重建的交互方法,或实现上述第三方面中的基于三维重建的测量方法。
上述方案,每一数据集合的位姿优化参数都能够基于其之前的数据集合的位姿优化参数来得到确定,故在利用每一数据集合的位姿优化参数对包含于数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整时,有利于消除扫描过程中所累积相机位姿参数的误差,故利用预设三维重建方式和待处理图像的调整后的相机位姿参数,对待处理图像的图像数据进行重建处理,得到的待重建目标的三维模型的效果得以有效提升,且以数据集合为单位进行相机位姿参数的误差消除,能够降低计算量,从而有利于减轻计算负荷。
附图说明
图1是本申请三维重建方法一实施例的流程示意图;
图2是本申请三维重建方法一实施例的状态示意图;
图3是图1中步骤S12一实施例的流程示意图;
图4是图1中步骤S13一实施例的流程示意图;
图5是图1中步骤S14一实施例的流程示意图;
图6是图5中步骤S141一实施例的流程示意图;
图7是图5中步骤S142一实施例的流程示意图;
图8是图5中步骤S143一实施例的流程示意图;
图9是本申请基于三维重建的交互方法一实施例的流程示意图;
图10是本申请基于三维重建的测量方法一实施例的流程示意图;
图11是本申请三维重建装置一实施例的框架示意图;
图12是本申请基于三维重建的交互装置一实施例的框架示意图;
图13是本申请基于三维重建的测量装置一实施例的框架示意图;
图14是本申请电子设备一实施例的框架示意图;
图15是本申请计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
请参阅图1,图1是本申请三维重建方法一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S11:获取摄像器件扫描待重建目标得到的多帧待处理图像。
摄像器件可以包括但不限于:手机、平板电脑等移动终端,本申请方法实施例中的步骤可以由移动终端执行,也可以由与具备扫描拍摄功能的摄像器件连接的微型计算机等处理设备执行,在此不做限定。在一个实施场景中,摄像器件可以包括能够感测可见光的色彩相机和能够感测待重建目标深度的深度相机,如结构光深度相机等,当摄像器件包括色彩相机和深度相机时,每帧待处理图像包括色彩数据和深度数据。
待重建目标可以包括但不限于:人、动物、物体(如雕像、家具等)。例如,将雕像作为待重建目标时,可以通过对雕像进行扫描,最终得到雕像的三维模型,此外,在此基础上,还可以进一步对雕像的三维模型进行渲染、骨骼绑定等操作,在此不做限定,待重建目标具体可以根据实际应用需要而定,在此不做限制。
步骤S12:利用每帧待处理图像和摄像器件的标定参数,确定每帧待处理图像属于待重建目标的目标像素点及其相机位姿参数。
标定参数可以包括摄像器件的内部参数,例如,当摄像器件包括色彩相机时,标定参数可以包括色彩相机的内部参数;当摄像器件包括深度相机,或者包括色彩相机和深度相机时,可以以此类推,在此不再一一举例。在一个实施场景中,内部参数可以包括但不限于:相机焦距、相机主点坐标,在一个具体实施场景中,内部参数可以以矩阵形式表示,例如,色彩相机的内部参数K可以表示为:
其中,fx,fy表示色彩相机的焦距,cx,cy表示色彩相机的主点坐标。此外,深度相机的内部参数可以以此类推,在此不再一一举例。
标定参数还可以包括摄像器件的深度相机与色彩相机之间的外部参数,用于表示由世界坐标系到相机坐标系的变换。本公开实施例中,外部参数可以包括一3*3的旋转矩阵R和一3*1的平移矩阵T。利用旋转矩阵R左乘世界坐标系下的坐标点Pworld,并与平移矩阵T进行求和,即可得到世界坐标系下的坐标点Pworld在相机坐标系下的对应坐标点Pcamera。
实际扫描过程中,不可避免地扫描到不属于待重建目标的物体(例如,地面、墙面等),故为了提升后续三维重建的效果,需确定每帧待处理图像属于待重建目标的目标像素点。在一个实施场景中,可以利用预先训练的图像分割模型(例如,Unet模型)对待处理图像进行图像分割,从而得到待处理图像中属于待重建目标的目标像素点;在另一个实施场景中,还可以将待重建目标放置在与其具有较大色差的环境中,例如,待重建目标为乳白色的石膏雕像时,可以将待重建目标放置在黑色环境中进行扫描,从而将待处理图像中属于环境颜色的像素点标记为无效,将属于待重建目标颜色的像素点标记为有效,并比较由标记为有效的像素点所构成的连通域的大小,将最大的连通域中的像素点确定为属于待重建目标的像素点。
为了得到待重建目标完整的三维模型,摄像器件需以不同的位姿对待重建目标进行扫描待,故拍摄不同待处理图像所采用的相机位姿参数可能不同,故为了消除相机位姿参数的误差,从而提升后续三维重建的效果,需先确定每帧待处理图像的相机位姿参数。在一个实施场景中,可以利用每帧待处理图像属于待重建目标的目标像素点及其前一帧待处理图像属于待重建目标的目标像素点/>摄像器件的内部参数K构建相对位姿参数ΔT的目标函数,并利用ICP(Iterative Closest Point,迭代最近点)算法最小化该目标函数,从而求得相对位姿参数ΔT,其中,相对位姿参数ΔT是每帧待处理图像的相机位姿参数Tt相对于其前一帧待处理图像的相机位姿参数Tt-1的相对参数。具体地,关于相对位姿参数ΔT的目标函数可以参阅下式:
Eicp=θEphoto+(1-θ)Egeo
w(ε,pi)=ΔT·K-1·(x*d,y*d,d)
上式中,θ为权重,x,y为像素点pi(像素点pi为目标像素点)在色彩数据中的二维图像坐标,d为将深度数据/>投影至色彩数据/>后像素点pi的深度值。故上式中,w(ε,pi)可以表示当前帧的像素点pi在利用相对位姿参数ΔT、内部参数K变换到其前一帧后理论上的对应像素点在三维空间中的位置坐标,该相对位姿参数ΔT越精确,该对应像素点在前一帧色彩数据/>的像素值/>与像素点pi在当前帧的色彩数据/>的像素值/>之间平方和误差Ephoto越小,且该对应像素点在前一帧深度数据/>的深度值/>与对应像素点在三维空间中的z坐标值w(ε,pi)z之间平方和误差Egeo也越小,故最小化上述目标函数Eicp能够准确地获得相对位姿参数ΔT,从而能够提高相机位姿参数的准确性。
在得到每帧待处理图像的相机位姿参数Tt相对于其前一帧待处理图像的相机位姿参数Tt-1之间的相对位姿参数ΔT之后,可以将相对位姿参数ΔT的逆(即ΔT-1)左乘其前一帧待处理图像的相机位姿参数Tt-1,得到当前帧的待处理图像的相机位姿参数Tt。在一个具体的实施场景中,当待处理图像是摄像器件扫描得到的多帧待处理图像中的第一帧时,其相机位姿参数可以初始化为单位矩阵,本申请实施例中,单位矩阵为主对角线上的元素均为1,其他元素均为0的方阵。此外,在另一个具体的实施场景中,还可以同时进行待处理图像的扫描,以及目标像素点和相机位姿参数的确定,即在扫描得到一帧待处理图像之后,即对刚扫描得到的待处理图像进行目标像素点和相机位姿参数的确定,与此同时,扫描得到下一帧待处理图像,从而能够实时、在线地对待重建目标进行三维重建。
步骤S13:按照预设划分策略,依次将各帧待处理图像的图像数据划分至对应的数据集合,其中,图像数据至少包括目标像素点。
在一个实施场景中,在进行划分时,可以设置每个数据集合所能容纳的图像数据所属的待处理图像的最大帧数(例如,8帧、9帧、10帧等等),从而在当前数据集合所包含的图像数据所属的待处理图像的帧数到达最大帧数时,再创建一新的数据集合,并继续将未划分的待处理图像的图像数据划分至新创建的数据集合中,如此循环,直至扫描完毕。在另一个实施场景中,还可以将位姿相近(如,相机朝向角度相近、相机位置相近等)且在时序上连续的待处理图像的图像数据划分至同一数据集合中,在此不做具体限定。在又一个实施场景中,在对每帧待处理图像的图像数据进行划分时,还可以判断图像数据所属的待处理图像与其前一帧待处理图像的位姿差异(例如,相机朝向角度差异、相机位置距离)是否小于一预设下限值,若是,则还可以忽略待划分的待处理图像,并处理下一帧待处理图像的图像数据的划分操作。在又一个实施场景中,相邻数据集合之间可以有属于相同待处理图像的图像数据,例如,相邻数据集合之间可以存在属于两帧相同待处理图像的图像数据,或者,相邻数据集合之间还可以存在属于三帧相同待处理图像的图像数据,在此不做限定。
在一个实施场景中,各帧待处理图像的图像数据可以仅包括属于待重建目标的目标像素点(如深度数据中的目标像素点、色彩数据中的目标像素点);在另一个实施场景中,各帧待处理图像的图像数据还可以包括不属于待重建目标的像素点,例如,划分至数据集合中的图像数据还可以为整个待处理图像的图像数据,在此情形下,图像数据还可以包括目标像素点的位置坐标,以便后续查找到目标像素点。
请结合参阅图2,图2是本申请三维重建方法一实施例的状态示意图。如图2所示,待重建目标为一人像石膏雕塑,每帧待处理图像可以包括色彩数据和深度数据,并得到属于待重建目标的目标像素点,从而将至少包括目标像素点的图像数据依次划分至对应的数据集合。
步骤S14:依次利用各个数据集合的图像数据,及时序位于其之前的数据集合的图像数据和位姿优化参数,确定每一数据集合的位姿优化参数。
在一个实施场景中,可以依次利用各个数据集合的图像数据,以及时序位于其之前的数据集合的图像数据确定两者之间的空间变换参数Ticp,从而可以利用两者之间的空间变换参数Ticp,以及各自的位姿优化参数Tfrag构建关于位姿优化参数Tfrag的目标函数,进而对目标函数求解,可以得到其位姿优化参数Tfrag及时序位于其之前的数据集合的位姿优化参数,从而能够对其之前的数据集合的姿优化参数Tfrag进行更新。故在依次求解每个数据集合的位姿优化参数Tfrag时,均考虑到了时序位于其之前的数据集合的位姿优化参数Tfrag,即数据集合与其之前的数据集合的位姿优化参数之间彼此关联,且随着新的数据集合的不断产生,之前的数据集合的位姿优化参数也得以不断更新,如此循环至最后一个数据集合,从而能够得到每个数据集合最终的位姿优化参数,故能够有效消除累积误差。在一个具体的实施场景中,若数据集合是第一个数据集合,则可以将第一个数据集合的位姿优化参数初始化为单位矩阵。在一个具体的实施场景中,可以每在创建一新的数据集合时,即可计算其前一个数据集合的位姿优化参数,并实现相关数据集合的位姿优化参数的更新,如此循环,直至扫描结束,得到每个数据集合最终的位姿优化参数,从而能够有利于均衡计算量,进而有利于减轻计算负荷。当摄像器件为手机、平板电脑等移动终端时,还可以在将拍摄得到的待处理图像划分至对应的数据集合的同时,对数据集合的位姿优化参数进行求解、更新,从而能够实时、在线地进行待重建目标的三维重建。需要说明的是,本公开实施例以及下述其他公开实施例中,如无特别说明,时序具体表示数据集合内待处理图像的整体拍摄时序。例如,数据集合1包含:拍摄时序t=1的待处理图像、拍摄时序t=2的待处理图像,以及拍摄时序t=3的待处理图像;而数据集合2包含:拍摄时序t=4的待处理图像、拍摄时序t=5的待处理图像,以及拍摄时序t=6的待处理图像,可以数据集合1内待处理图像的整体拍摄时序位于数据集合2内待处理图像的整体拍摄时序,则可以认为数据集合1时序位于数据集合2之前。其他情况可以以此类推,在此不再一一举例。
在一个实施场景中,请结合参阅图2,为了在扫描过程中实现动态调整,以提高用户体验,并降低三维重建的计算负荷,还可以依次将数据集合中的图像数据集合中的图像数据映射至三维空间,得到与每一数据集合对应的三维点云,在得到每一数据集合的位姿优化参数之后,可以采用数据集合的位姿优化参数对与其对应的三维点云进行调整,从而使得用户能够感受到三维点云的动态调整。在一个具体的实施场景中,可以利用图像数据所属的待处理图像的相机位姿参数Tt和摄像器件的内部参数K将图像数据映射至三维空间,得到三维点云,具体地,可以先将图像数据进行三维齐次,得到像素坐标,再采用相机位姿参数Tt的逆Tt -1和内部参数K的逆K-1左乘齐次之后的像素坐标,得到三维空间中的三维点云。在另一个具体的实施场景中,可以采用数据集合的位姿优化参数Tfrag的逆左乘三维点云,以实现动态调整。在又一个具体的实施场景中,可以以预设颜色(例如,绿色)标示三维点云,在此不做限定。
步骤S15:利用每一数据集合的位姿优化参数,对包含于数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整。
具体地,可以采用每一数据集合的位姿优化参数Tfrag的逆左乘包含于其内的图像数据所属的待处理图像的相机位姿参数Tt,从而实现对相机位姿参数的调整。例如,数据集合A中已划分至数据集合A的时序包括图像数据01(属于待处理图像01)、图像数据02(属于待处理图像02)、图像数据03(属于待处理图像03),故可以采用数据集合A的位姿优化参数Tfrag的逆/>分别左乘待处理图像01的相机位姿参数Tt、待处理图像02的相机位姿参数Tt、待处理图像03的相机位姿参数Tt,从而实现对包含于数据集合A中的图像数据所属的待处理图像的相机位姿参数的调整。在一个具体的实施场景中,当相邻数据集合之间存在属于相同待处理图像的图像数据时,可以仅采用两个数据集合中一者的位姿优化参数对相同待处理图像的相机位姿参数进行调整。例如,仍以上述数据集合A为例,其相邻的数据集合B包含图像数据03(属于待处理图像03)、图像数据04(属于待处理图像04),故当采用数据集合A的位姿优化参数Tfrag的逆/>分别左乘待处理图像01的相机位姿参数Tt、待处理图像02的相机位姿参数Tt、待处理图像03的相机位姿参数Tt时,则当对包含于数据集合B的图像数据所属的待处理图像的相机位姿参数进行调整时,可以采用数据集合B的位姿优化参数Tfrag的逆/>左乘待处理图像04的相机位姿参数Tt,而不再左乘待处理图像03的相机位姿参数Tt。
步骤S16:利用预设三维重建方式和待处理图像的调整后的相机位姿参数,对待处理图像的图像数据进行重建处理,得到待重建目标的三维模型。
预设三维重建方式可以包括但不限于:TSDF(Truncated Signed DistanceFunction,基于截断的带符号距离函数)重建方式、泊松重建方式。TSDF重建方式是一种在三维重建中计算隐势面的方式,具体在此不再赘述。泊松重建的核心思想是三维点云代表了待重建目标的表面位置,其法向量代表了内外的方向,通过隐势地拟合一个物体派生的指示函数,可以得出一个平滑的物体表面估计,具体在此不再赘述。在一个具体的实施场景中,还可以在摄像器件拍摄待重建目标时,利用上述步骤实时重建待重建目标的三维模型,并和当前拍摄到的图像帧同位置角度叠加渲染,从而可以面向用户展现待重建目标主要的三维模型。在另一个具体的实施场景中,还可以利用三维立体打印机将利用上述步骤重建得到的三维模型进行打印,从而得到与待重建目标对应的实物模型。
上述方案,每一数据集合的位姿优化参数都能够基于其之前的数据集合的位姿优化参数来得到确定,故在利用每一数据集合的位姿优化参数对包含于数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整时,有利于消除扫描过程中所累积相机位姿参数的误差,故利用预设三维重建方式和待处理图像的调整后的相机位姿参数,对待处理图像的图像数据进行重建处理,得到的待重建目标的三维模型的效果得以有效提升,且以数据集合为单位进行相机位姿参数的误差消除,能够降低计算量,从而有利于减轻计算负荷。
请参阅图3,图3是图1中步骤S12一实施例的流程示意图。具体地,图3是图1中目标像素点的确定过程的流程示意图,具体而言,可以包括如下步骤:
步骤S121:获取与色彩数据对齐之后的深度数据中所包含的每一像素点的法向量与待处理图像的重力方向之间的夹角。
具体地,每帧待处理图像包括色彩数据It和深度数据可以将深度数据/>投影至色彩数据It,从而得到对齐后之后的深度数据Dt。在一个具体的实施场景中,可以将深度数据/>中像素点的二维图像坐标/>利用其深度值dt转换为三维齐次坐标P:
再采用摄像器件中深度相机的内部参数将三维齐次坐标P反投影至三维空间后,利用深度相机与色彩相机的旋转矩阵R和平移矩阵t进行刚性变换,再利用色彩相机的内部参数K投影至二维平面,得到与色彩数据中对象的像素点坐标P′:
上式中,与色彩数据中对象的像素点坐标P′为三维坐标,为了将其转换为二维坐标,需利用其深度值,即其第三个数值P′[2]分别与其第一个数值和第二数值相除,得到与色彩数据中对象的像素点坐标P′的二维坐标xt:
此外,还可以分别将上述相除的结果加上一预设浮点数(例如0.5),在此不再赘述。
在三维空间中,可以通过不在同一直线上的任意三个点确定一个平面,从而可以得到与该平面垂直的向量,故每一像素点的法向量可以通过与其相邻的两个像素点确定一平面,再求解垂直于平面的平面即可得到。为了提高每一像素点的法向量的精度,可以获取每一像素点的多个邻域像素点(例如,八邻域像素点),再分别利用多个邻域像素点中的任意两个与每一像素点在三维空间中确定一平面,并求解垂直于平面的向量,最后求取多个向量的平均值,作为每一像素点的法向量。以像素点xt为例,根据其深度值d_t可以得到其三维齐次坐标,再将内部参数K的逆K-1左乘三维齐次坐标,可以得到像素点xt反投影至三维空间中的三维点Px,将像素点xt在3*3窗口中的8个邻域像素点按照逆时针顺序排列,并分别反投影至三维空间,得到对应的三维点,记为{P0,P1,P2,P3,…,P7},则像素点xt的三维法向量Nx可以表示为
上式中,×表示叉积,%表示取余,例如,1%8表示1除以8的余数,即为1,其他情况可以类推,在此不再一一举例。
在一个实施场景中,法向量与重力方向的夹角可以采用余弦公式计算得到,在此不再赘述。
步骤S122:并将每一像素点在三维空间投影至重力方向,得到每一像素点在三维空间的高度值。
仍以像素点xt为例,可以参考前述步骤得到其在三维空间中的三维点Px,并获取三维点Px在重力方向上的投影三维点,从而将投影三维点的第三个数值(z坐标),作为像素点xt在三维空间中的高度值Hx。
上述步骤S121中求取每一像素点的法向量与待处理图像的重力方向之间的夹角的步骤,以及步骤S122中求取每一像素点在三维空间的高度值的步骤,可以按照先后顺序执行,也可以同时执行,在此不做限定。
步骤S123:对夹角满足预设角度条件的像素点的高度值进行分析,得到待重建目标的平面高度。
在一个实施场景中,预设角度条件可以包括像素点的法向量与待处理图像的重力方向之间的夹角小于或等于预设角度阈值(例如,15度、10度等),故可以在前述步骤S121所得到的每一像素点对应的夹角的基础上,按照预设角度条件进行筛选,得到满足条件的像素点,然后从前述步骤S122所得到每一像素点在三维空间的高度值中,查询满足上述预设角度条件的像素点的高度值,具体地,可以将满足上述预设角度条件的像素点的高度值作为一高度集合,然后再对高度集合中的高度值进行聚类分析,得到待重建目标的平面高度,从而能够只利用高度值,即可得到待重建目标的平面高度,能够减轻计算计算负荷。在一个具体的实施场景中,在进行聚类分析时,可以利用随机抽样一致性算法(Random SampleConsensus,RANSAC)对高度集合进行聚类,每次随机选取一个高度值,当前平面高度,并统计与平面高度之间的高度差在预设落差范围(例如,2厘米)之内的内点数量,当内点数量或迭代次数满足预设聚类条件时,将所有内点的高度值求平均作为一个候选高度,高度集合中剩下的高度值再进行下一次聚类,直至高度集合中的数量小于一预设阈值,在存在多个候选高度时,选取数值最小且对应的内点数量大于一预设阈值的候选高度作为最终的平面高度。
步骤S124:利用平面高度,筛选色彩数据中属于待重建物体的目标像素点。
具体地,可以筛选高度值大于平面高度的像素点,再在色彩数据中查询与筛选到的像素点对应的像素点,作为候选像素点,确定候选像素点在色彩数据中所组成的最大连通域,并将最大连通域中的候选像素点作为属于待重建目标的目标像素点。
区别于前述实施例,能够结合重力方向即可自动识别出每帧待处理图像中属于待重建目标的目标像素点,降低三维重建的计算负荷,且能够免于用户介入,故能够提升用户体验。
请参阅图4,图4是图1中步骤S13一实施例的流程示意图。具体地,图4是将各帧待处理图像的图像数据划分至对应数据集合一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S131:依次将各帧待处理图像作为当前待处理图像。
具体地,在对某一帧待处理图像的图像数据进行划分时,即可将其作为当前待处理图像。
步骤S132:在对当前待处理图像的图像数据进行划分时,判断已有的数据集合中的末尾数据集合满足预设溢出条件,若是,则执行步骤S133,否则执行步骤S134。
已有的数据集合可能只有一个,则这个数据集合就是末尾数据集合;或者,已有的数据集合可能有多个,则多个数据集合中创建最晚的为末尾数据集合。例如,已有的数据集合有:数据集合A、数据集合B、数据集合C,其中,数据集合C创建最晚,则可以将数据集合C作为末尾数据集合。
在一个实施场景中,为了使得数据集合可以根据帧数、摄像器件的角度以及位置变化,实现自适应构建,从而使得数据集合的构建更加鲁棒,预设溢出条件可以包括以下任一者:末尾数据集合中包含的图像数据所对应的待处理图像的帧数大于或等于预设帧数阈值(例如,8帧、9帧、10帧等);末尾数据集合中任一图像数据所属的待处理图像的相机位置与当前待处理图像的相机位置之间的距离大于预设距离阈值(例如,20厘米、25厘米、30厘米等);末尾数据集合中任一图像数据所属的待处理图像的相机朝向角度与当前待处理图像的相机朝向角度之间的差异大于预设角度阈值(例如,25度、30度、35度等)。其中,相机朝向角度和相机位置可以根据待处理图像的相机位姿参数计算得到。具体地,相机位姿参数Tt可以由矩阵表示,即相机位姿参数包括一旋转矩阵R和一平移矩阵t,相机位置position可以表示为:
position=-RT*t
上式中,T表示矩阵的转置。此外,可以将R的第三行向量表示为相机朝向角度direction。
步骤S133:获取末尾数据集合中最新的多帧待处理图像的图像数据,并存入一新创建的数据集合,作为新的末尾数据集合,将当前待处理图像的图像数据划分至新的末尾数据集合。
仍以上述已有的数据集合A、数据集合B、数据集合C为例,在对图像数据10(属于待处理图像10)进行划分时,若当前的末尾数据集合C满足预设溢出条件,则获取末尾数据集合C中最新的多帧待处理图像的图像数据,例如,末尾数据集合C中包含图像数据05(属于待处理图像05)、图像数据06(属于待处理图像06)、图像数据07(属于待处理图像07)、图像数据08(属于待处理图像08)、图像数据09(属于待处理图像09),则可以获取其中待处理图像07~待处理图像09的图像数据,或者也可以获取其中待处理图像08~待处理图像09的图像数据,在此不做限定,并将获取到的图像数据存入一新创建的数据集合,例如,将待处理图像07~待处理图像09的图像数据存入到数据集合D中,此时,数据集合D中依时序包含:图像数据07(属于待处理图像07)、图像数据08(属于待处理图像08)、图像数据09(属于待处理图像09),并将数据集合D作为新的末尾数据集合,将图像数据10(属于待处理图像10)划分至数据集合D中。
在一个实施场景中,在对当前待处理图像的图像数据进行划分时,末尾数据集合还可能存在不满足预设溢出条件的情况,此时可以执行下述步骤S134。
步骤S134:将当前待处理图像的图像数据划分至末尾数据集合。
仍以上述已有的数据集合A、数据集合B、数据集合C为例,在对图像数据10(属于待处理图像10)进行划分时,若当前的末尾数据集合C不满足预设溢出条件,则将图像数据10(属于待处理图像10)划分至末尾数据集合C中。
区别于前述实施例,通过在对当前待处理图像的图像数据进行划分时,若已有的数据集合中的末尾数据集合满足预设溢出条件,则获取末尾数据集合中最新的多帧待处理图像的图像数据,并存入一新创建的数据集合,作为新的末尾数据集合,故相邻数据集合之间存在多帧相同的待处理图像的图像数据,有利于提升相邻数据集合之间对齐效果,进而有利于提升三维重建的效果。
请参阅图5,图5是图1中步骤S14一实施例的流程示意图。具体地,图5是确定数据集合的位姿优化参数一实施例的流程示意图,具体而言,可以包括如下步骤:
步骤S141:依次将每一数据集合作为当前数据集合,并选取至少一个位于当前数据集合之前的数据集合,作为候选数据集合。
仍以上述已有的数据集合A、数据集合B、数据集合C为例,在确定数据集合B的位姿优化参数时,可以将数据集合B作为当前数据集合,在确定数据集合C的位姿优化参数时,可以将数据集合C作为当前数据集合。此外,还可以在创建一新的数据集合时,即确定新创建的数据集合的前一个数据集合的位姿优化参数,如前述实施例中,在对图像数据10(属于待处理图像10)进行划分时,当前的末尾数据集合C满足预设溢出条件,则新创建一新的数据集合D,此时即可将数据集合C作为当前数据集合,并确定其位姿优化参数。
在一个实施场景中,为了提高位姿优化参数的准确性,从而提高三维重建效果,可以从位于当前数据集合之前的数据集合中,选择图像数据较为相似的作为候选数据集合,具体地,请结合参阅图6,图6是图5中步骤S141一实施例的流程示意图,具体而言,可以包括如下步骤:
步骤S61:利用当前数据集合及时序位于其之前的数据集合中的图像数据的预设图像特征,构建词袋模型。
预设图像特征可以包括ORB(Oriented FAST and Rotated BRIEF)图像特征,可以对图像数据中的关键点快速创建特征向量,且特征向量可以用于识别图像数据中的待重建目标,其中,Fast和Brief分别是特征检测算法和向量创建算法,具体在此不再赘述。
词袋模型(Bag of Words)是在自然语言处理和信息检索下被简化的表达模型,词袋模型中各个预设图像特征都是独立的,具体在此不再赘述。在一个实施场景中,在开始创建一个新的数据集合时,即可将其前一个数据集合作为当前数据集合,并提取当前数据集合中图像数据的预设图像特征,加入到词袋模型中,如此循环,可以使得词袋模型实现递增式扩充。在一个具体的实施场景中,当前数据集合与其前一数据集合之间存在重复的图像数据,故在对当前数据集合中图像数据的预设图像特征进行提取时,与前一数据集合重复的图像数据不再进行特征提取。
步骤S62:选取所属的待处理图像位于当前数据集合中的预设时序处的图像数据,作为待匹配图像数据。
在一个实施场景中,预设时序可以包括首位、中位和末位,仍以前述实施例中的数据集合C为例,数据集合C包含图像数据05(属于待处理图像05)、图像数据06(属于待处理图像06)、图像数据07(属于待处理图像07)、图像数据08(属于待处理图像08)、图像数据09(属于待处理图像09),则可以选取首位待处理图像05的图像数据05、中位待处理图像07的图像数据07和末位待处理图像09的图像数据09,作为待匹配图像数据,其他实施场景可以以此类推,在此不再一一举例。此外,预设时序也可以实际情况,设置为首位、1/4时序位置、1/2时序位置、3/4时序位置、末位,在此不做限定。
步骤S63:从词袋模型的预设范围中,查询与待匹配图像数据的预设图像特征之间的相似度评分大于一预设相似度阈值的预设图像特征。
预设范围可以包括所属的数据集合与当前数据集合不相邻,且不包含于当前数据集合中的图像数据的预设图像特征。仍以前述实施例中的数集合A、数据集合B和数据集合C为例,在当前数据集合为数据集合C时,预设范围可以是属于数据集合A和属于数据集合B的预设图像特征。在一个实施场景中,预设相似度阈值可以是一个预设评分值,例如,0.018、0.019、0.020等等,在此不做限定。在另一个实施场景中,还可以获取与当前数据集合相邻的数据集合中各个图像数据与待匹配图像数据之间的相似度评分中最大评分值scoreadj,并将最大评分值scoreadj的预设倍数(例如,1.5倍、2倍、2.5倍)作为预设相似度阈值。在又一个实施场景中,还可以将最大评分值scoreadj的预设倍数、上述预设评分值中的任一者作为预设相似度阈值,即可以从词袋模型的预设范围中,查询与待匹配图像数据的预设图像特征之间的相似度评分scoreloop大于最大评分值scoreadj的预设倍数、上述预设评分值中的任一者的预设图像特征,在此不做限定。
步骤S64:将查询到的预设图像特征所属的图像数据所在的数据集合,以及与当前数据集合相邻的数据集合,作为候选数据集合。
以当前数据集合为数据集合H为例,利用位于首位的待匹配图像数据,查询到数据集合C、数据集合D,利用位于中位的待匹配图像数据,查询到数据集合D、数据集合E,利用位于末位的待匹配图像数据,查询到数据集合E、数据集合F,则可以将数据集合C~F和数据集合G作为当前数据集合H的候选数据集合。在一个实施场景中,还可以从查询到的预设图像特征所属的图像数据所在的数据集合中选取相似度评分最大的预设数量(例如,2个、3个等)个数据集合,以及与当前数据集合相邻的数据集合,作为候选数据集合。仍以当前数据集合为数据集合H为例,可以从数据集合C~F中选取相似度评分scoreloop最大的3个,以及与当前数据集合相邻的数据集合G,作为候选数据集合。
步骤S142:利用当前数据集合的图像数据和候选数据集合的图像数据,确定当前数据集合和候选数据集合之间的空间变换参数。
在一个实施场景中,为了确保当前数据集合和候选数据集合之间的空间变换参数的准确性,以提高位姿优化参数的准确性,从而提高三维重建的效果,可以结合当前数据集合和候选数据集合的图像数据的图像特征以及在三维空间中的位置,确定两者之间的空间变换参数,具体地,请结合参阅图7,图7是图5中步骤S142一实施例的流程示意图,具体而言,可以包括如下步骤:
步骤S71:在候选数据集合和当前数据集合中搜索一组满足预设匹配条件的待匹配图像数据。
预设匹配条件可以包括待匹配图像数据所属的待处理图像的相机朝向角度之间的差异最小,具体地,对于每一个候选数据集合,都可以从其和当前数据集合中搜素一组满足预设匹配条件的待匹配图像数据,为了便于描述,可以将属于当前数据集合的待匹配图像数据记为Icur,将属于候选数据集合的待匹配图像数据记为Isimilar。
步骤S72:基于从每组待匹配图像数据中提取得到的预设图像特征,得到每组待匹配图像数据之间的匹配像素点对。
具体可以结合RANSAC算法,对Icur和Isimilar的预设图像特征(例如,ORB图像特征)进行匹配对筛选,得到Icur和Isimilar之间的匹配像素点,为了便于描述,可以分别记为pcur和psimilar。关于RANSAC算法可以参阅前述实施例中的相关步骤,在此不再赘述。
步骤S73:将匹配像素点对中属于当前数据集合的像素点映射至三维空间,得到第一三维匹配点,并将匹配像素点对中属于候选数据集合的像素点映射至三维空间,得到第二三维匹配点。
将pcur映射至三维空间,得到第一三维匹配点,为了便于描述,记为Pcur,将psimilar映射至三维空间,得到第二三维匹配点,为了便于描述,记为Psimilar。具体地,可以分别将pcur和psimilar转换为三维齐次坐标,再利用内部参数K的逆K-1分别左乘pcur和psimilar的三维齐次坐标,得到第一三维匹配点Pcur和第二三维匹配点Psimilar。
步骤S74:将第一三维匹配点和第二三维匹配点进行对齐处理,得到空间变换参数。
具体地,可以将第一三维匹配点和第二三维匹配点在三维空间对齐,以使两者之间的重合度尽可能地大,从而得到两者之间的空间变换参数。在一个实施场景中,可以获取第一三维匹配点和第二三维匹配点之间的第一位姿变换参数,具体地,可以利用第一三维匹配点和第二三维匹配点构建关于第一位姿变换参数的目标函数,再利用SVD(SingularValue Decomposition,奇异值分解)或非线下优化等方式求解目标函数,得到第一位姿变换参数Tpcd:
上式中,和/>分别表示三维空间中第i对匹配三维点。
通过求解上述目标函数,得到第一位姿变换参数Tpcd后,还可以利用第一位姿变换参数Tpcd和预设位姿变换参数(例如,单位矩阵),对第一三维匹配点进行位姿优化,分别得到第一优化匹配点和第二优化匹配点,具体地,可以利用第一位姿变换参数Tpcd和预设位姿变换参数分别左乘第一三维匹配点Pcur,从而分别得到第一优化匹配点和第二优化匹配点,为了便于描述,可以分别记为和/>再计算第二三维匹配点Psimilar分别与第一优化匹配点/>第二优化匹配点/>之间的重合度,并选取重合度较高的优化匹配点所采用的位姿变换参数,作为第二位姿变换参数,为了便于描述,可以记为Tselect。具体地,在计算第二三维匹配点Psimilar和第一优化匹配点/>之间的重合度时,可以在每一第二三维匹配点Psimilar预设范围内(例如,5厘米范围)查找第一优化匹配点/>若能够查找到,则将第二三维匹配点Psimilar标记为有效,否则,可以标记为无效,对所有第二三维匹配点Psimilar查找完毕后,计算标记为有效的第二三维匹配点Psimilar的数量占第二三维匹配点Psimilar总数的比例,即为第二三维匹配点Psimilar和第一优化匹配点/>之间的重合度,第二三维匹配点Psimilar和第二优化匹配点/>之间的重合度可以以此类推,在此不再赘述。
在求得第二位姿变换参数Tselect之后,可以以第二位姿变换参数Tselect作为初始值,利用预设对齐方式(例如,point-to-normal的ICP方式)将第一三维匹配点Pcur和第二三维匹配点Psimilar进行对齐处理,得到当前数据集合与候选数据集合之间的空间变换参数,为了便于描述,记为Ticp。重复上述步骤,即可得到当前数据集合与每一候选数据集合之间的空间变换参数Ticp。
步骤S143:至少利用候选数据集合的位姿优化参数,以及当前数据集合与候选数据集合之间的空间变换参数,获得当前数据集合的位姿优化参数,并至少更新候选数据集合的位姿优化参数。
在一个实施场景中,为了提高位姿优化参数的准确性,还可以在求解当前数据集合的位姿优化参数之前,对上述空间变换参数Ticp进行筛选,具体地,可以从当前数据集合与各个候选数据集合之间的空间变换参数Ticp中,选取符合预设筛选条件的空间变换参数,以供求解当前数据集合的位姿优化参数所使用。预设筛选条件可以包括:空间变换参数Ticp相关的候选数据集合与当前数据集合相邻,或者,利用空间变换参数Ticp对第一三维匹配点Pcur进行位姿优化得到的优化匹配点,与第二三维匹配点Psimilar之间的重合度大于一预设重合度阈值(例如,60%、65%、70%等)。具体地,可以采用空间变换参数Ticp左乘第一三维匹配点Pcur,从而实现对其位姿优化。
具体地,可以利用候选数据集合的位姿优化参数,以及当前数据集合与候选数据集合之间的空间变换构建关于当前数据集合的位姿优化参数的目标函数,通过求解目标函数,得到当前数据集合的位姿优化参数,并至少对候选数据集合的位姿优化参数进行更新。此外,如此循环,分别将新创建的数据集合前一个数据集合作为当前数据集合,可以在扫描待重建目标并创建数据集合的同时,求得位姿优化参数,进而能够有利于均衡计算量,减轻计算负荷,并实现实时、在线地对待重建目标进行三维重建。在一个实施场景中,请结合参阅图8,图8是图5中步骤S143一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S81:将分别与当前数据集合以及时序位于其之前的数据集合相关的各个空间变换参数所对应的两个数据集合,作为一数据集合对。
仍以当前数据集合为数据集合H为例,数据集合C~F和数据集合G作为当前数据集合H的候选数据集合,将空间变换参数对应的候选数据集合C和当前数据集合H作为一对数据集合对,将空间变换参数/>对应的候选数据集合D和当前数据集合H作为一对数据集合对,将空间变换参数/>对应的候选数据集合E和当前数据集合H作为一对数据集合对,将空间变换参数/>对应的候选数据集合F和当前数据集合H作为一对数据集合对,将空间变换参数/>对应的候选数据集合G和当前数据集合H作为一对数据集合对。此外,当前数据集合H之前的各个数据集合(即数据集合A~G)也分别对应存在空间变换参数,例如,对于数据集合B而言,可以存在与数据集合A之间的空间变换参数,则可以将数据集合B与数据集合A作为一数据集合对,对于数据集合C而言,可以存在分别与数据集合A与数据集合B之间的空间变换参数,故可以分别将数据集合C与数据集合A作为一数据集合对,将数据集合C与数据集合B作为一数据集合对,以此类推,在此不再一一举例,空间变换参数的求解方式具体可以参考前述实施例中的相关步骤。
步骤S82:利用各个数据集合对的空间变换参数,以及各自的位姿优化参数,构建一关于位姿优化参数的目标函数。
具体地,目标函数可以表示为:
其中,i,j分别表示各个数据集合对所包含的数据集合的编号(如,C、D、E等字母,或者,还可以以1、2、3等阿拉伯数字表示),表示各个数据集合对之间的空间变换参数,分别表示各个数据集合对所包含的数据集合各自的位姿优化参数,f(·)表示优化式子,具体可以表示为:
上式中,分别表示/>的逆,以及/>的逆。故每确定一数据集合的空间变换参数之后,均可为目标函数带来新的优化关系,从而对其之前的数据集合的位姿优化参数进行再次优化,直至全部数据集合的位姿优化参数确定完毕,故能够有利于消除扫描过程中的累积位姿误差,提高位姿优化参数的准确性,提升三维重建的效果。在一个具体的实施场景中,当前数据集合为第一数据集合时,其位姿优化参数可以初始化为单位矩阵,具体可以参阅前述实施例中的相关步骤,在此不再赘述。
步骤S83:利用预设求解方式对目标函数进行求解,得到当前数据集合及时序位于其之前的数据集合各自对应的数据集合对所包含的数据集合的位姿优化参数。
如上式,通过最小化上述目标函数,可以得到各个数据集合对所包含的数据集合的位姿优化参数。仍以当前数据集合为数据集合H为例,通过求解上述目标函数,能够得到当前数据集合H的位姿优化参数,并得到数据集合C~G进一步优化后的位姿优化参数,以及当前数据集合H之前的数据集合进一步优化后的位姿优化参数。当引入新的数据集合I时,并求得与其相关的空间变换参数之后,通过构建目标函数,能够得到数据集合I的位姿优化参数,并得到其之前的数据集合进一步优化后的位姿优化参数,如此循环,能够进一步有利于消除位姿累积误差。
区别于前述实施例,通过依次将每一数据集合作为当前数据集合,并选取至少一个位于当前数据集合之前的数据集合,作为候选集合,从而利用当前数据集合的图像数据和候选书集合的图像数据,确定当前数据集合和候选数据集合之间的空间变换参数,进而至少利用候选数据集合的位姿优化参数,以及当前数据集合与候选数据集合之间的空间变换参数,获得当前数据集合的位姿优化参数,并至少更新候选数据集合的位姿优化参数,能够有利于消除扫描过程中所累积相机位姿参数的误差,并减少用于计算位姿优化参数的数据量,从而有利于降低计算负荷。
请参阅图9,图9是本申请基于三维重建的交互方法一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S91:获取待重建目标的三维模型。
三维模型可以是通过上述任一三维重建方法实施例中的步骤得到的,具体可以参考前述三维重建方法实施例,在此不再赘述。
步骤S92:利用预设视觉惯导方式,构建摄像器件所在场景的三维地图,并获取摄像器件当前在三维地图中的位姿信息。
预设视觉惯导方式可以包括SLAM(Simultaneous Localization and Mapping,即时定位与地图构建),通过SLAM,可以构建摄像器件(例如,手机、平板电脑等)所在场景的三维地图,并获取摄像器件当前在三维地图中的位姿信息。
在一个实施场景中,为了实现与三维模型的动态交互,还可以对三维模型进行骨骼绑定,骨骼绑定是指为三维模型架设骨骼系统,使之能够在骨骼关节处按照既定规则活动,例如,三维模型是牛、羊等四足动物,则三维模型在进行骨骼绑定之后,其骨骼关节可以按照四足动物既定规则活动。
步骤S93:基于位姿信息,在摄像器件当前拍摄到的场景图像中显示三维模型。
具体地,位姿信息可以包括摄像器件的位置和朝向。例如,当摄像器件的位姿信息表示其朝向地面时,摄像器件当前拍摄到的场景图像中可以显示三维模型的顶部;或者,当摄像器件的位姿信息表示其朝向与地面呈一锐角夹角时,摄像器件当前拍摄到的场景图像中可以显示三维模型的侧面。在一个实施场景中,当对三维模型进行骨骼绑定后,还可以接受用户输入的驱动指令,使得三维模型能够按照用户输入的驱动指令活动,如三维模型为羊,用户可以驱动其低头、行走等等,在此不做限定。当三维模型为人或其他对象时,可以以此类推,在此不再一一举例。
上述方案,基于摄像器件在所在场景的三维地图中的位姿信息,将待重建目标的三维模型显示在当前拍摄到的场景图像中,能够实现虚拟物体与真实场景的几何一致性融合,且由于三维模型是由上述第一方面中的三维重建方法得到的,故能够提升三维重建的效果,进而提升虚拟与现实几何一致性融合效果,有利于提升用户体验。
请参阅图10,图10是本申请基于三维重建的测量方法一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S1010:获取待重建目标的三维模型。
三维模型可以是通过上述任一三维重建方法实施例中的步骤得到的,具体可以参考前述三维重建方法实施例,在此不再赘述。
步骤S1020:接收用户在三维模型上设置的多个测量点。
用户可以通过鼠标点击、键盘输入、显示触控的方式在三维模型上设置多个测量点。测量点的数量可以为两个、三个、四个等等,在此不不做限定。请结合参阅图2,以待重建目标为石膏人像为例,用户可以在三维模型的两眼中心分别设置测量点,或者,还可以在三维模型的山根和人中分别设置测量点,或者,还可以在三维模型的两眼中心、人中分别设置测量点,在此不再一一举例。
步骤S1030:获取多个测量点之间的距离,得到待重建目标上对应于多个测量点的位置之间的距离。
请结合参阅图2,仍以待重建目标为石膏人像为例,通过获取三维模型的两眼中心的距离,可以得到石膏人像对应于两眼中心之间的距离,或者,通过获取三维模型的山根和人中之间的距离,可以得到石膏人像对应于山根和人中之间的距离,或者,通过获取三维模型的两眼中心、人中两辆之间的距离,可以得到石膏人像对应于两眼、人中之间的距离,从而有利于提高了真实场景中物体测量的便捷性。
上述方案,通过接收用户在三维模型上设置的多个测量点,从而获取多个测量点之间的距离,进而得到待重建目标上对应于多个测量点的位置之间的距离,从而能够满足对真实场景中物体的测量需求,且由于三维模型是利用上述第一方面中的三维重建方法得到的,能够提升三维重建的效果,进而提升测量准确性。
请参阅图11,图11是本申请三维重建装置1100一实施例的框架示意图。三维重建装置1100包括图像获取模块1110、第一确定模块1120、数据划分模块1130、第二确定模块1140、参数调整模块1150和模型重建模块1160,图像获取模块1110用于获取摄像器件扫描待重建目标得到的多帧待处理图像;第一确定模块1120用于利用每帧待处理图像和摄像器件的标定参数,确定每帧待处理图像属于待重建目标的目标像素点及其相机位姿参数;数据划分模块1130用于按照预设划分策略,依次将各帧待处理图像的图像数据划分至对应的数据集合,其中,图像数据至少包括目标像素点;第二确定模块1140依次利用各个数据集合的图像数据,及时序位于其之前的数据集合的图像数据和位姿优化参数,确定每一数据集合的位姿优化参数;参数调整模块1150用于利用每一数据集合的位姿优化参数,对包含于数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整;模型重建模块1160用于利用预设三维重建方式和待处理图像的调整后的相机位姿参数,对待处理图像的图像数据进行重建处理,得到待重建目标的三维模型。
在一些实施例中,第二确定模块1140包括数据集合选取子模块,用于依次将每一数据集合作为当前数据集合,并选取至少一个位于当前数据集合之前的数据集合,作为候选数据集合,第二确定模块1140还包括空间变换参数子模块,用于利用当前数据集合的图像数据和候选数据集合的图像数据,确定当前数据集合和候选数据集合之间的空间变换参数,第二确定模块1140还包括位姿优化参数子模块,用于至少利用候选数据集合的位姿优化参数,以及当前数据集合与候选数据集合之间的空间变换参数,获得当前数据集合的位姿优化参数,并至少更新所述候选数据集合的位姿优化参数。
在一些实施例中,位姿优化参数子模块包括数据集合对单元,用于将分别与当前数据集合以及时序位于其之前的数据集合相关的各个空间变换参数对应的两个数据集合,作为一数据集合对,位姿优化参数子模块还包括目标函数构建单元,用于利用各个数据集合对的空间变换参数,以及各自的位姿优化参数,构建一关于位姿优化参数的目标函数,位姿优化参数子模块还包括目标函数求解单元,用于利用预设求解方式对目标函数进行求解,得到当前数据集合及时序位于其之前的数据集合各自对应的数据集合对所包含的数据集合的位姿优化参数。
在一些实施例中,空间变换参数子模块包括图像数据搜索单元,用于在候选数据集合和当前数据集合中搜索一组满足预设匹配条件的待匹配图像数据,空间变换参数子模块还包括匹配像素点选取单元,用于基于从每组待匹配图像数据中提取得到的预设图像特征,得到每组待匹配图像数据之间的匹配像素点对,空间变换参数子模块还包括三维空间映射单元,用于将匹配像素点对中属于当前数据集合的像素点映射至三维空间,得到第一三维匹配点,并将匹配像素点对中属于候选数据集合的像素点映射至三维空间,得到第二三维匹配点,空间变换参数子模块还包括三维匹配点对齐单元,用于将第一三维匹配点和第二三维匹配点进行对齐处理,得到空间变换参数。
在一些实施例中,三维匹配点对齐单元包括第一位姿变换参数子单元,用于获取第一三维匹配点和第二三维匹配点之间的第一位姿变换参数,三维匹配点对齐单元还包括三维匹配点优化子单元,用于利用第一位姿变换参数和预设位姿变换参数,对第一三维匹配点进行位姿优化,分别得到第一优化匹配点和第二优化匹配点,三维匹配点对齐单元还包括第二位姿变换参数子单元,用于计算第二三维匹配点分别与第一优化匹配点、第二优化匹配点之间的重合度,并选取重合度较高的优化匹配点所采用的位姿变换参数,作为第二位姿变换参数,三维匹配点对齐单元还包括空间变换参数子单元,用于以第二位姿变换参数作为初始值,利用预设对齐方式将第一三维匹配点和第二三维匹配点进行对齐处理,得到当前数据集合与候选数据集合之间的空间变换参数。
在一些实施例中,空间变换参数子模块还包括变换参数筛选单元,用于从当前数据集合与各个候选数据集合之间的空间变换参数中,选取符合预设参数筛选条件的空间变换参数;其中,预设参数筛选条件包括以下任一者:空间变换参数相关的候选数据集合与当前数据集合相邻;利用空间变换参数对第一三维匹配点进行位姿优化得到的优化匹配点,与第二三维匹配点之间的重合度大于一预设重合度阈值。
在一些实施例中,数据集合选取子模块包括词袋模型构建单元,用于利用当前数据集合及时序位于其之前的数据集合中的图像数据的预设图像特征,构建词袋模型,数据集合选取子模块还包括待匹配图像数据单元,用于选取所属的待处理图像位于当前数据集合中的预设时序处的图像数据,作为待匹配图像数据,数据集合选取子模块还包括图像特征查询单元,用于从词袋模型的预设范围中,查询与待匹配图像数据的预设图像特征之间的相似度评分大于一预设相似度阈值的预设图像特征,数据集合选取子模块还包括候选数据集合单元,用于将查询到的预设图像特征所属的图像数据所在的数据集合,以及与当前数据集合相邻的数据集合,作为候选数据集合,其中,预设范围包括所属的数据集合与当前数据集合不相邻,且不包含于当前数据集合中的图像数据的预设图像特征。
在一些实施例中,数据集合选取子模块还包括最大相似度评分值获取单元,用于获取与当前数据集合相邻的数据集合中各个图像数据与待匹配图像数据之间的相似度评分中的最大评分值,数据集合选取子模块还包括预设相似度阈值确定单元,用于将最大评分值的预设倍数和一预设评分值中的任一者作为预设相似度阈值。
在一些实施例中,数据划分模块1130包括当前待处理图像确定子模块,用于依次将各帧待处理图像作为当前待处理图像,数据划分模块1130还包括数据处理子模块,用于在对当前待处理图像的图像数据进行划分时,若已有的数据集合中的末尾数据集合满足预设溢出条件,则获取末尾数据集合中最新的多帧待处理图像的图像数据,并存入一新创建的数据集合,作为新的末尾数据集合,将当前待处理图像的图像数据划分至新的末尾数据集合。
在一些实施例中,预设溢出条件包括以下任一者:末尾数据集合中包含的图像数据所对应的待处理图像的帧数大于或等于预设帧数阈值;末尾数据集合中任一图像数据所属的待处理图像的相机位置与当前待处理图像的相机位置之间的距离大于预设距离阈值;末尾数据集合中任一图像数据所属的待处理图像的相机朝向角度与当前待处理图像的相机朝向角度之间的差异大于预设角度阈值;其中,相机位置和相机朝向角度是利用待处理图像的相机位姿参数计算得到的。
在一些实施例中,每帧待处理图像包括色彩数据和深度数据,第一确定模块1120包括夹角获取子模块,用于获取与色彩数据对齐之后的深度数据中所包含的每一像素点的法向量与待处理图像的重力方向之间的夹角,第一确定模块1120还包括高度获取子模块,用于将每一像素点在三维空间投影至重力方向,得到每一像素点在三维空间的高度值,第一确定模块1120还包括高度分析子模块,用于对夹角满足预设角度条件的像素点的高度值进行分析,得到待重建目标的平面高度,第一确定模块1120还包括像素筛选子模块,用于利用平面高度,筛选色彩数据中属于待重建物体的目标像素点。
在一些实施例中,高度分析子模块包括高度集合获取单元,用于将夹角满足预设角度条件的像素点的高度值,作为一高度集合,高度分析子模块包括高度聚类分析单元,用于对高度集合中的高度值进行聚类分析,得到待重建目标的平面高度。
在一些实施例中,三维重建装置1100还包括三维映射模块,用于依次将每一数据集合中的图像数据映射至三维空间,得到与每一数据集合对应的三维点云,三维重建装置1100还包括点云调整模块,用于采用每一数据集合的位姿优化参数将与其对应的三维点云进行调整。
请参阅图12,图12是本申请基于三维重建的交互装置1200一实施例的框架示意图。基于三维重建的交互装置1200包括模型获取模块1210、建图定位模块1220和显示交互模块1230,模型获取模块1210用于获取待重建目标的三维模型,其中,三维模型是利用上述任一三维重建装置实施例中的三维重建装置得到的;建图定位模块1220用于利用预设视觉惯导方式,构建摄像器件所在场景的三维地图,并获取摄像器件当前在三维地图中的位姿信息;显示交互模块1230用于基于位姿信息,在摄像器件当前拍摄到的场景图像中显示三维模型。
请参阅图13,图13是本申请基于三维重建的测量装置1300一实施例的框架示意图。基于三维重建的测量装置1300包括模型获取模块1310、显示交互模块1320和距离获取模块1330,模型获取模块1310用于获取待重建目标的三维模型,其中,三维模型是利用上述任一三维重建装置实施例中的三维重建装置得到的;显示交互模块1320用于接收用户在三维模型上设置的多个测量点;距离获取模块1330用于获取多个测量点之间的距离,得到待重建目标上对应于多个测量点的位置之间的距离。
请参阅图14,图14是本申请电子设备1400一实施例的框架示意图。电子设备1400包括相互耦接的存储器1410和处理器1420,处理器1420用于执行存储器1410中存储的程序指令,以实现上述任一三维重建方法实施例中的步骤,或实现上述任一基于三维重建的交互方法实施例中的步骤,或实现上述任一基于三维重建的测量方法实施例中的步骤。在一个具体的实施场景中,电子设备可以包括:手机、平板电脑等移动终端,或者电子设备还可以为连接有摄像器件的数据处理设备(如微型计算机等),在此不做限定。
处理器1420还可以称为CPU(Central Processing Unit,中央处理单元)。处理器1420可能是一种集成电路芯片,具有信号的处理能力。处理器1420还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器1420可以由集成电路芯片共同实现。
上述方案,能够提升三维重建的效果,并减轻三维重建的计算负荷。
请参阅图15,图15为本申请计算机可读存储介质1500一实施例的框架示意图。计算机可读存储介质1500存储有能够被处理器运行的程序指令1501,程序指令1501用于实现上述任一三维重建方法实施例中的步骤,或实现上述任一基于三维重建的交互方法实施例中的步骤,或实现上述任一基于三维重建的测量方法实施例中的步骤。
上述方案,能够提升三维重建的效果,并减轻三维重建的计算负荷。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (19)
1.一种三维重建方法,其特征在于,包括:
获取摄像器件扫描待重建目标得到的多帧待处理图像;
利用每帧所述待处理图像和所述摄像器件的标定参数,确定每帧所述待处理图像属于所述待重建目标的目标像素点及其相机位姿参数;
按照预设划分策略,依次将各帧所述待处理图像的图像数据划分至对应的数据集合,其中,所述图像数据至少包括所述目标像素点;
依次将每一所述数据集合作为当前数据集合,并选取至少一个位于所述当前数据集合之前的数据集合,作为候选数据集合;
利用所述当前数据集合的图像数据和所述候选数据集合的图像数据,确定所述当前数据集合和所述候选数据集合之间的空间变换参数;
至少利用所述候选数据集合的位姿优化参数,以及所述当前数据集合与所述候选数据集合之间的空间变换参数,获得所述当前数据集合的位姿优化参数,并至少更新所述候选数据集合的位姿优化参数;
利用每一所述数据集合的位姿优化参数,对包含于所述数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整;
利用预设三维重建方式和所述待处理图像的调整后的相机位姿参数,对所述待处理图像的图像数据进行重建处理,得到所述待重建目标的三维模型。
2.根据权利要求1所述的三维重建方法,其特征在于,所述至少利用所述候选数据集合的位姿优化参数,以及所述当前数据集合与所述候选数据集合之间的空间变换参数,获得所述当前数据集合的位姿优化参数,并至少更新所述候选数据集合的位姿优化参数包括:
将分别与所述当前数据集合以及时序位于其之前的数据集合相关的各个空间变换参数所对应的两个数据集合,作为一数据集合对;
利用各个所述数据集合对的空间变换参数,以及各自的位姿优化参数,构建一关于所述位姿优化参数的目标函数;
利用预设求解方式对所述目标函数进行求解,得到所述当前数据集合及时序位于其之前的数据集合各自对应的数据集合对所包含的数据集合的位姿优化参数。
3.根据权利要求1所述的三维重建方法,其特征在于,所述利用所述当前数据集合的图像数据和所述候选数据集合的图像数据,确定所述当前数据集合和所述候选数据集合之间的空间变换参数包括:
在所述候选数据集合和所述当前数据集合中搜索一组满足预设匹配条件的待匹配图像数据;
基于从每组所述待匹配图像数据中提取得到的预设图像特征,得到每组所述待匹配图像数据之间的匹配像素点对;
将所述匹配像素点对中属于所述当前数据集合的像素点映射至三维空间,得到第一三维匹配点,并将所述匹配像素点对中属于所述候选数据集合的像素点映射至所述三维空间,得到第二三维匹配点;
将所述第一三维匹配点和所述第二三维匹配点进行对齐处理,得到所述空间变换参数。
4.根据权利要求3所述的三维重建方法,其特征在于,所述将所述第一三维匹配点和所述第二三维匹配点进行对齐处理,得到所述空间变换参数包括:
获取所述第一三维匹配点和所述第二三维匹配点之间的第一位姿变换参数;
利用所述第一位姿变换参数和预设位姿变换参数,对所述第一三维匹配点进行位姿优化,分别得到第一优化匹配点和第二优化匹配点;
计算所述第二三维匹配点分别与所述第一优化匹配点、所述第二优化匹配点之间的重合度,并选取所述重合度较高的优化匹配点所采用的位姿变换参数,作为第二位姿变换参数;
以所述第二位姿变换参数作为初始值,利用预设对齐方式将所述第一三维匹配点和所述第二三维匹配点进行对齐处理,得到所述当前数据集合与所述候选数据集合之间的空间变换参数。
5.根据权利要求3所述的三维重建方法,其特征在于,所述利用所述当前数据集合的图像数据和所述候选数据集合的图像数据,确定所述当前数据集合和所述候选数据集合之间的空间变换参数之后,以及所述至少利用所述候选数据集合的位姿优化参数,以及所述当前数据集合与所述候选数据集合之间的空间变换参数,获得所述当前数据集合的位姿优化参数之前,所述方法还包括:
从所述当前数据集合与各个所述候选数据集合之间的空间变换参数中,选取符合预设参数筛选条件的空间变换参数;
其中,所述预设参数筛选条件包括以下任一者:所述空间变换参数相关的所述候选数据集合与所述当前数据集合相邻;利用所述空间变换参数对所述第一三维匹配点进行位姿优化得到的优化匹配点,与所述第二三维匹配点之间的重合度大于一预设重合度阈值。
6.根据权利要求1所述的三维重建方法,其特征在于,所述选取至少一个位于所述当前数据集合之前的数据集合,作为候选数据集合包括:
利用所述当前数据集合及时序位于其之前的数据集合中的图像数据的预设图像特征,构建词袋模型;
并选取所属的待处理图像位于所述当前数据集合中的预设时序处的图像数据,作为待匹配图像数据;
从所述词袋模型的预设范围中,查询与所述待匹配图像数据的预设图像特征之间的相似度评分大于一预设相似度阈值的预设图像特征;
将查询到的预设图像特征所属的图像数据所在的数据集合,以及与所述当前数据集合相邻的数据集合,作为所述候选数据集合;
其中,所述预设范围包括所属的数据集合与所述当前数据集合不相邻,且不包含于所述当前数据集合中的图像数据的预设图像特征。
7.根据权利要求6所述的三维重建方法,其特征在于,所述从所述词袋模型的预设范围中,查询与所述待匹配图像数据的预设图像特征之间的相似度评分大于一预设相似度阈值的预设图像特征之前,所述方法还包括:
获取与所述当前数据集合相邻的数据集合中各个所述图像数据与所述待匹配图像数据之间的相似度评分中的最大评分值;
将所述最大评分值的预设倍数和一预设评分值中的任一者作为所述预设相似度阈值。
8.根据权利要求1所述的三维重建方法,其特征在于,所述按照预设划分策略,依次将各帧所述待处理图像的图像数据划分至对应的数据集合包括:
依次将各帧所述待处理图像作为当前待处理图像;
在对当前待处理图像的图像数据进行划分时,若已有的所述数据集合中的末尾数据集合满足预设溢出条件,则获取所述末尾数据集合中最新的多帧所述待处理图像的图像数据,并存入一新创建的所述数据集合,作为新的所述末尾数据集合,将所述当前待处理图像的图像数据划分至新的所述末尾数据集合。
9.根据权利要求8所述的三维重建方法,其特征在于,所述预设溢出条件包括以下任一者:
所述末尾数据集合中包含的所述图像数据所对应的所述待处理图像的帧数大于或等于预设帧数阈值;所述末尾数据集合中任一所述图像数据所属的待处理图像的相机位置与所述当前待处理图像的相机位置之间的距离大于预设距离阈值;所述末尾数据集合中任一所述图像数据所属的待处理图像的相机朝向角度与所述当前待处理图像的相机朝向角度之间的差异大于预设角度阈值;
其中,所述相机位置和所述相机朝向角度是利用所述待处理图像的相机位姿参数计算得到的。
10.根据权利要求1至9任一项所述的三维重建方法,其特征在于,每帧所述待处理图像包括色彩数据和深度数据,所述利用每帧所述待处理图像和所述摄像器件的标定参数,确定每帧所述待处理图像属于所述待重建目标的目标像素点包括:
获取与所述色彩数据对齐之后的深度数据中所包含的每一像素点的法向量与所述待处理图像的重力方向之间的夹角;
并将所述每一像素点在三维空间投影至所述重力方向,得到所述每一像素点在所述三维空间的高度值;
对所述夹角满足预设角度条件的像素点的高度值进行分析,得到所述待重建目标的平面高度;
利用所述平面高度,筛选所述色彩数据中属于所述待重建目标的目标像素点。
11.根据权利要求10所述的三维重建方法,其特征在于,所述对所述夹角满足预设角度条件的像素点的高度值进行分析,得到所述待重建目标的平面高度包括:
将所述夹角满足预设角度条件的所述像素点的高度值,作为一高度集合;
对所述高度集合中的高度值进行聚类分析,得到所述待重建目标的平面高度。
12.根据权利要求1至9任一项所述的三维重建方法,其特征在于,所述至少利用所述候选数据集合的位姿优化参数,以及所述当前数据集合与所述候选数据集合之间的空间变换参数,获得所述当前数据集合的位姿优化参数,并至少更新所述候选数据集合的位姿优化参数之后,所述方法还包括:
依次将每一所述数据集合中的图像数据映射至三维空间,得到与每一所述数据集合对应的三维点云;
采用每一所述数据集合的所述位姿优化参数将与其对应的所述三维点云进行调整。
13.一种基于三维重建的交互方法,其特征在于,包括:
获取待重建目标的三维模型,其中,所述三维模型是利用权利要求1至12任一项所述的三维重建方法得到的;
利用预设视觉惯导方式,构建摄像器件所在场景的三维地图,并获取所述摄像器件当前在所述三维地图中的位姿信息;
基于所述位姿信息,在所述摄像器件当前拍摄到的场景图像中显示所述三维模型。
14.一种基于三维重建的测量方法,其特征在于,包括:
获取待重建目标的三维模型,其中,所述三维模型是利用权利要求1至12任一项所述的三维重建方法得到的;
接收用户在所述三维模型上设置的多个测量点;
获取所述多个测量点之间的距离,得到所述待重建目标上对应于所述多个测量点的位置之间的距离。
15.一种三维重建装置,其特征在于,包括:
图像获取模块,用于获取摄像器件扫描待重建目标得到的多帧待处理图像;
第一确定模块,用于利用每帧所述待处理图像和所述摄像器件的标定参数,确定每帧所述待处理图像属于所述待重建目标的目标像素点及其相机位姿参数;
数据划分模块,用于按照预设划分策略,依次将各帧所述待处理图像的图像数据划分至对应的数据集合,其中,所述图像数据至少包括所述目标像素点;
第二确定模块,包括数据集合选取子模块、空间变换参数子模块和位姿优化参数子模块,所述集合选取子模块用于依次将每一所述数据集合作为当前数据集合,并选取至少一个位于所述当前数据集合之前的数据集合,作为候选数据集合,所述空间变换参数子模块用于利用所述当前数据集合的图像数据和所述候选数据集合的图像数据,确定所述当前数据集合和所述候选数据集合之间的空间变换参数,所述位姿优化参数子模块用于至少利用所述候选数据集合的位姿优化参数,以及所述当前数据集合与所述候选数据集合之间的空间变换参数,获得所述当前数据集合的位姿优化参数,并至少更新所述候选数据集合的位姿优化参数;
参数调整模块,用于利用每一所述数据集合的位姿优化参数,对包含于所述数据集合内的图像数据所属的待处理图像的相机位姿参数进行调整;
模型重建模块,用于利用预设三维重建方式和所述待处理图像的调整后的相机位姿参数,对所述待处理图像的图像数据进行重建处理,得到所述待重建目标的三维模型。
16.一种基于三维重建的交互装置,其特征在于,包括:
模型获取模块,用于获取待重建目标的三维模型,其中,所述三维模型是利用权利要求15所述的三维重建装置得到的;
建图定位模块,用于利用预设视觉惯导方式,构建摄像器件所在场景的三维地图,并获取所述摄像器件当前在所述三维地图中的位姿信息;
显示交互模块,用于基于所述位姿信息,在所述摄像器件当前拍摄到的场景图像中显示所述三维模型。
17.一种基于三维重建的测量装置,其特征在于,包括:
模型获取模块,用于获取待重建目标的三维模型,其中,所述三维模型是利用权利要求15所述的三维重建装置得到的;
显示交互模块,用于接收用户在所述三维模型上设置的多个测量点;
距离获取模块,用于获取所述多个测量点之间的距离,得到所述待重建目标上对应于所述多个测量点的位置之间的距离。
18.一种电子设备,其特征在于,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现权利要求1至12任一项所述的三维重建方法,或实现权利要求13所述的基于三维重建的交互方法,或实现权利要求14所述的基于三维重建的测量方法。
19.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令被处理器执行时实现权利要求1至12任一项所述的三维重建方法,或实现权利要求13所述的基于三维重建的交互方法,或实现权利要求14所述的基于三维重建的测量方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110031502.0A CN112767538B (zh) | 2021-01-11 | 三维重建及相关交互、测量方法和相关装置、设备 | |
KR1020237025998A KR20230127313A (ko) | 2021-01-11 | 2021-06-28 | 3차원 재구성 및 관련 인터랙션, 측정 방법 및 관련장치, 기기 |
JP2023513719A JP7453470B2 (ja) | 2021-01-11 | 2021-06-28 | 3次元再構成及び関連インタラクション、測定方法及び関連装置、機器 |
PCT/CN2021/102882 WO2022147976A1 (zh) | 2021-01-11 | 2021-06-28 | 三维重建及相关交互、测量方法和相关装置、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110031502.0A CN112767538B (zh) | 2021-01-11 | 三维重建及相关交互、测量方法和相关装置、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112767538A CN112767538A (zh) | 2021-05-07 |
CN112767538B true CN112767538B (zh) | 2024-06-07 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537876A (zh) * | 2018-03-05 | 2018-09-14 | 清华-伯克利深圳学院筹备办公室 | 基于深度相机的三维重建方法、装置、设备及存储介质 |
CN109166149A (zh) * | 2018-08-13 | 2019-01-08 | 武汉大学 | 一种融合双目相机与imu的定位与三维线框结构重建方法与系统 |
CN110910493A (zh) * | 2019-11-29 | 2020-03-24 | 广州极飞科技有限公司 | 三维重建方法、装置及电子设备 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108537876A (zh) * | 2018-03-05 | 2018-09-14 | 清华-伯克利深圳学院筹备办公室 | 基于深度相机的三维重建方法、装置、设备及存储介质 |
CN109166149A (zh) * | 2018-08-13 | 2019-01-08 | 武汉大学 | 一种融合双目相机与imu的定位与三维线框结构重建方法与系统 |
CN110910493A (zh) * | 2019-11-29 | 2020-03-24 | 广州极飞科技有限公司 | 三维重建方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108509848B (zh) | 三维物体的实时检测方法及系统 | |
JP7453470B2 (ja) | 3次元再構成及び関連インタラクション、測定方法及び関連装置、機器 | |
WO2021175050A1 (zh) | 三维重建方法和三维重建装置 | |
US8903161B2 (en) | Apparatus for estimating robot position and method thereof | |
Huang et al. | A coarse-to-fine algorithm for matching and registration in 3D cross-source point clouds | |
WO2021057745A1 (zh) | 地图融合方法及装置、设备、存储介质 | |
WO2019035155A1 (ja) | 画像処理システム、画像処理方法、及びプログラム | |
JP2009252112A (ja) | 画像処理装置、画像処理方法 | |
TWI785588B (zh) | 圖像配準方法及其相關的模型訓練方法、設備和電腦可讀儲存媒體 | |
US20200057778A1 (en) | Depth image pose search with a bootstrapped-created database | |
WO2020152927A1 (ja) | 学習用データ生成方法、学習用データ生成装置、および、推論処理方法 | |
CN114219855A (zh) | 点云法向量的估计方法、装置、计算机设备和存储介质 | |
CN112348909A (zh) | 一种目标定位方法、装置、设备及存储介质 | |
CN114332125A (zh) | 点云重建方法、装置、电子设备和存储介质 | |
WO2022247126A1 (zh) | 视觉定位方法、装置、设备、介质及程序 | |
CN117372604B (zh) | 一种3d人脸模型生成方法、装置、设备及可读存储介质 | |
CN114882106A (zh) | 位姿确定方法和装置、设备、介质 | |
CN114255285A (zh) | 视频与城市信息模型三维场景融合方法、系统及存储介质 | |
CN117726747A (zh) | 补全弱纹理场景的三维重建方法、装置、存储介质和设备 | |
CN112767538B (zh) | 三维重建及相关交互、测量方法和相关装置、设备 | |
Kumara et al. | Real-time 3D human objects rendering based on multiple camera details | |
CN113822994B (zh) | 三维模型构建方法、装置及存储介质 | |
CN109961503A (zh) | 一种图像处理方法及装置、终端及计算机可读存储介质 | |
CN113570535A (zh) | 视觉定位方法及相关装置、设备 | |
CN114511631A (zh) | 摄像机视觉物体高度测量方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |