CN109155846A - 一种场景的三维重建方法、装置、电子设备及存储介质 - Google Patents

一种场景的三维重建方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN109155846A
CN109155846A CN201880001285.7A CN201880001285A CN109155846A CN 109155846 A CN109155846 A CN 109155846A CN 201880001285 A CN201880001285 A CN 201880001285A CN 109155846 A CN109155846 A CN 109155846A
Authority
CN
China
Prior art keywords
subspace
location information
scene
data
memory
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.)
Granted
Application number
CN201880001285.7A
Other languages
English (en)
Other versions
CN109155846B (zh
Inventor
王恺
廉士国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Data Robotics Guangzhou Co ltd
Original Assignee
Cloudminds Shenzhen Robotics Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cloudminds Shenzhen Robotics Systems Co Ltd filed Critical Cloudminds Shenzhen Robotics Systems Co Ltd
Publication of CN109155846A publication Critical patent/CN109155846A/zh
Application granted granted Critical
Publication of CN109155846B publication Critical patent/CN109155846B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/257Colour aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请涉及计算机视觉领域,尤其涉及一种场景的三维重建方法、装置、电子设备及存储介质。该方法应用于电子设备或云端,包括:获取当前拍摄区域的图像数据;根据图像数据,确定当前拍摄区域的第一位置信息;根据第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中存储的数据;根据调整后的第一存储器中存储的数据,对当前拍摄区域对应的第二子空间进行三维模型重建,并根据第二子空间的三维重建数据进行渲染,其中,第一子空间和第二子空间分别是对场景进行划分获得的N个子空间中的一个,N为大于0的整数。该场景的三维重建方法,使得可以提升三维重建和渲染的速度,扩大了三维重建和渲染的场景范围。

Description

一种场景的三维重建方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机视觉领域,尤其涉及一种场景的三维重建方法、装置、电子设备及存储介质。
背景技术
机器人在进行导航、避障等操作时,需要对所处场景进行充分理解,对场景的三维重建是机器人对自身所处场景进行充分理解的核心技术之一。为了保证重建的区域是有效区域以及重建的准确性,重建工作往往需要由人工来操作,或者在人的监督下完成,这就需要对场景的重建能够实时完成,并且可以实时渲染出来供人参考。
发明人在研究现有技术过程中发现,在对场景的三维重建和渲染过程中,涉及到的数据量不断增加,内存和显存的消耗也不断增加,相关计算资源被不断占据,导致三维重建速度越来越慢,对场景重建和渲染出现延迟,不能实现实时重建和渲染;而在重建到达一定范围后,比如:一个房间的范围,重建和渲染就无法继续,限制了待重建的场景的范围。
可见,如何提升三维重建和渲染的速度,扩大重建和渲染的场景的范围,是需要解决的问题。
发明内容
本申请部分实施例所要解决的技术问题在于提供一种场景的三维重建和渲染方法,使得可以提升三维重建和渲染的速度,扩大了三维重建和渲染的场景范围。
本申请的一个实施例提供了一种场景的三维重建方法,包括:获取当前拍摄区域的图像数据;根据图像数据,确定当前拍摄区域的第一位置信息;根据第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中存储的数据;根据调整后的第一存储器中存储的数据,对当前拍摄区域对应的第二子空间进行三维模型重建,并根据第二子空间的三维重建数据进行渲染;其中,第一子空间和第二子空间分别是对该场景进行划分获得的N个子空间中的一个,N为大于0的整数。
本申请的一个实施例还提供了一种场景的扫描装置,包括:获取模块、第一位置信息确定模块、调整模块、三维模型重建模块和三维模型渲染模块;获取模块,用于获取当前拍摄区域的图像数据;第一位置信息确定模块,用于根据图像数据,确定当前拍摄区域的第一位置信息;调整模块,用于根据第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中存储的数据;三维模型重建模块,用于根据调整后的第一存储器中存储的数据对当前拍摄区域对应的第二子空间进行三维模型重建;三维模型渲染模块,用于根据第二子空间的三维重建数据进行渲染,其中,第一子空间和第二子空间分别是对场景进行划分获得的N个子空间中的一个,N为大于0的整数。
本申请实施例还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行上述的场景的三维重建方法。
本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述的场景的三维重建方法。
相对于现有技术而言,本申请部分实施例中,根据当前拍摄区域的第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中的数据,确保了第一存储器有足够的空间对当前拍摄区域进行计算,也确保了第一存储器有足够的空间对下一拍摄区域的图像数据进行计算,而不会因数据量多而导致计算延迟的问题,同时也不会因为场景范围大导致对场景的重建计算和渲染无法继续的问题,适用于各种规模场景的重建以及渲染。另外,由于将场景划分了子空间,并以子空间的形式对场景进行三维重建以及渲染,使得每个子空间都可以独立进行三维重建和渲染,避免了由于每次重建和渲染的数据量过大而导致对场景的三维重建、渲染速度慢的问题。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本申请第一实施例中场景的三维重建方法的具体流程示意图;
图2是本申请第一实施例中场景的划分示意图;
图3是本申请第一实施例中计算子空间A与子空间D的距离的示意图;
图4是本申请第二实施例中场景的三维重建方法的具体流程示意图;
图5是本申请第三实施例中场景的三维重建方法的具体流程示意图;
图6是本申请第三实施例中场景的三维重建方法中相邻子空间之间的示意图;
图7是本申请第四实施例中场景的三维重建装置的结构示意图;
图8是本申请第五实施例中电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请部分实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。然而,本领域的普通技术人员可以理解,在本申请的各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本申请的第一实施例涉及一种场景的三维重建方法,该场景的三维重建方法可应用于电子设备或者云端,电子设备可以是智能机器人、无人驾驶车等。云端与电子设备通信连接,为终端提供对场景的扫描结果。本实施例以电子设备执行该场景的三维重建方法为例进行说明,云端执行该场景的三维重建方法的过程可以参考本申请实施例的内容。该场景的三维重建方法的具体流程如图1所示。
本实施例中的场景以大规模场景为例,如几个房间,一层楼,体育馆等。
步骤101:获取当前拍摄区域的图像数据。
具体的说,终端可以通过一个传感器或多个传感器,采集当前拍摄区域的图像数据,例如,可以采用彩色(red green blue,RGB)摄像头和深度摄像头,当前RGB摄像头和深度摄像头在采集图像数据前需要对齐,可采集到当前拍摄区域的彩色和深度(red greenblue depth,RGBD)数据。
需要说明的是,电子设备在获取当前拍摄区域的图像数据之前,可以先将当前拍摄区域所在的场景划分为多个子空间,划分子空间的过程如下:获取当前拍摄区域所在的场景的体积数据;根据体积数据,将场景划分为N个子空间,N为大于0的整数。
具体的说,当前拍摄区域所在的场景的体积可以通过人工输入的方式获取,也可以通过云端获取体积数据,本实施例中不限制获取该场景的体积数据的方式。子空间的个数可以预先确定,也可以采用任一划分成任意数量,其中,每个子空间的大小、形状可以相同。当然,划分了N个子空间后,还可以根据每个子空间内的数据进行动态调整子空间的大小,调整后每个的子空间的大小和形状可以不相同。
可以理解的是,若每个子空间的大小相同,且为长方体,那么每一个子空间最多与周围6个子空间相邻。
一个具体的实现中,可以结合八叉树的数据结构对该场景进行划分,划分过程如下:根据当前拍摄区域所在场景的体积数据,按照八叉树预设的最大递归深度,将当前拍摄区域所在的场景划分为N个子空间,且N个子空间分别与每一级递归深度中的每一个子节点对应。
具体的说,可以根据获取到的该场景的体积数据,预先设置八叉树的最大递归深度。利用八叉树的数据结构对该场景进行空间划分,划分的每一个子空间与八叉树中的节点对应。下面以一个具体的例子说明场景的子空间的划分以及与八叉树中的节点对应的过程:
以一个房间作为场景为例,如图2所示,将该场景以一个立方体S表示,预设递归深度为2,按照预设的递归深度进行划分的过程为:将该立方体S划分为8个子空间,图2中,八叉树的父节点为A,第一级节点B0~B7与子立方体S0~S7对应;按照第一级划分的方式分别对S0至S7进行划分,如子立方体的S0可以划分为8个子空间(S01~S08),且S01~S07分别与第二级中的子节点C0~C7对应,第二级的其余个子节点(S1~S7)对应的子空间即可按照该方式进行划分,在该例子中,八叉树每一级子节点对应的子空间的体积相同,当然,在实际应用中,每一级子节点对应的子空间的体积可以不同。
通过将八叉树的子节点与划分的子空间进行对应,使得在对该场景按照子空间进行三维重建的过程中,通过节点与子空间之间的对应关系,可以获取到与当前拍摄区域相邻的子空间内的数据。
需要说明的是,在对该场景划分子空间的过程中,每划分一个子空间,就为该子空间标记对应的空间位置,在完成该场景的子空间划分之后,即可确定出每一个子空间的位置信息和大小。
步骤102:根据图像数据,确定当前拍摄区域的第一位置信息。
一个具体的实现中,电子设备根据图像数据,构建当前拍摄区域对应的点云或网格数据;获取点云或网格数据的位置信息,并根据该点云或网格数据的位置信息,确定当前拍摄区域的第一位置信息。
具体的说,电子设备可以根据图像数据中的RGBD数据,通过矩阵变换公式,计算该图像数据对应的点云数据或者网格数据。由于点云数据包含多个点,可以以点云的中间的位置信息作为该点云数据的第一位置信息,同理可以将网格的中心位置作为该网格数据的第一位置信息。
步骤103:根据第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中存储的数据。
一个具体的实现中,电子设备根据第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,确定调整模式;按照该调整模式,对第一存储器中存储的数据进行调整。其中,调整模式为第一调整模式、第二调整模式或者第三调整模式。第一调整模式为将第一存储器中的数据进行另存和删除,从第二存储器中读取与当前拍摄区域对应的第二子空间的数据,并在第一存储器中添加由图像数据确定的添加数据;第二调整模式为从第二存储器中读取与当前拍摄区域对应的第二子空间的数据,并在第一存储器中添加由图像数据确定的添加数据;第三调整模式为在第一存储器中添加由图像数据确定的添加数据。其中,添加数据可以是当前拍摄区域对应的点云或网格数据。
本领域技术人员可以理解的是,调整模式还可以是其他的模式,此处不再一一列举。
需要说明的是,第一子空间和第二子空间分别是对该场景进行划分获得的N个子空间中的一个,N为大于0的整数。
具体的说,根据第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,或者,根据第一位置信息以及所有子空间的位置信息,确定当前拍摄区域对应的第二子空间;根据第一子空间的位置信息以及第二子空间的位置信息,确定第一子空间和第二子空间的位置关系;根据位置关系,确定调整模式。
下面将分别介绍确定当前拍摄区域对应的第二子空间的两种方式:
方法1:判断第一位置信息是否位于第一子空间的位置信息所在范围内,若是,则将第一子空间作为当前拍摄区域对应的第二子空间,若不是,则根据除第一子空间外的其他子空间的位置信息,确定当前拍摄区域对应的第二子空间。
具体的说,第一子空间为上一拍摄区域对应的子空间,第一子空间的位置信息包括第一子空间的各个顶角的位置,将第一子空间中各顶角构成的范围作为该第一子空间的位置信息所在范围。判断第一位置信息是否位于第一子空间的位置信息所在范围内,若是,则当前拍摄区域位于第一子空间内,将第一子空间作为当前拍摄区域对应的第二子空间,即上一拍摄区域对应的第一子空间与当前拍摄区域对应的第二子空间为同一个子空间。若第一位置信息不在该第一子空间的位置所在范围内,表明当前拍摄区域对应的第二子空间与上一拍摄区域对应的第一子空间不是同一个子空间,此时,可以分别判断该场景内除第一子空间之外的每个子空间的位置信息所在范围内是否包含第一位置信息,选取包含有第一位置信息的子空间作为第二子空间。
方法2:分别判断每个子空间的位置信息所在范围内是否包含第一位置信息,根据判断结果确定当前拍摄区域对应的第二子空间。
具体的说,该方法与方法1类似,区别仅在于方法2直接根据所有子空间的位置信息,查找包含第一位置信息的子空间,将包含第一位置信息的子空间作为第二子空间。
以下对根据第一子空间的位置信息以及第二子空间的位置信息,确定第一子空间和第二子空间的位置关系的方法进行举例说明。
一个具体实现中,在确定了第二子空间后,根据第一子空间的位置信息和第二子空间的位置信息,计算第一子空间与第二子空间之间的距离;若确定距离大于预设距离阈值,则确定第一子空间与第二子空间的位置关系为不相邻;若确定距离小于预设距离阈值且距离不为零,则确定第一子空间与第二子空间的位置关系为相邻;若确定距离为零,则确定第一子空间与第二子空间位置关系为同一位置。
本实施例中,以第一子空间的几何中心点到第二子空间的几何中心点之间的距离作为第一子空间与第二子空间的距离。预设距离阈值可以根据实际应用进行设置,其中,预设距离阈值与子空间内点云数据中的重建点的数目(网格数据中网格的数目)、子空间的大小和第一存储器的容量大小相关。例如,若第一存储器的容量为1G,容量较小,则可以将预设距离阈值设定小些。
计算第一子空间和第二子空间之间的距离的方式有多种,本实施例具体介绍其中的一种通过测地距离计算第一子空间和第二子空间距离的方法。
具体的说,将相邻子空间的几何中心点用直线连接,形成一个所有子空间的连接图,即每个子空间的几何中线点即为该连接图中的一个连接点,第一子空间和第二子空间之间的距离即为该连接图中两个对应的连接点之间的最短距离(即连个连接点的最短路径上的边的个数)。
例如,有4个子空间分别为A、B、C和D,其中,A为第一子空间,D为第二子空间,AB相邻,BC相邻,CD相邻,AC相邻。将相邻子空间的几何中心用直线连接,构成所有子空间的连接图,如图3所示,图中空心的圆表示连接点(图3中有4个连接点,分别为连接点A、连接点B、连接点C和连接点D),那么第一子空间和第二子空间之间的距离即是连接点A和连接点D之间的最短距离(最短距离为A-C-D,即连接点A和连接点D的最短路径上的边的个数为2),其中,该最短距离即为测地距离。
以下对根据第一子空间和第二子空间的位置关系,确定调整模式的方法进行举例说明。
一个具体的实现中,若确定第一子空间和第二子空间的位置关系为不相邻,则确定调整模式为第一调整模式;若第一子空间和第二子空间的确定位置关系为相邻,则确定调整模式为第二调整模式;若确定第一子空间和第二子空间的位置关系为同一位置,则确定调整模式为第三调整模式。
具体的说,若确定位置关系为第一子空间和第二子空间位置不在同一位置,表明当前拍摄区域所在第一子空间与第二子空间不是同一个子空间,为了确保第一存储器的运算能力,对第一存储器中存储的数据进行调整。
具体的说,若确定第一子空间和第二子空间的位置是相邻,则不对第一存储器中的第一子空间内的数据做处理,根据第二子空间的位置信息,从第二存储器中查找第二子空间内的数据,并读取至该第一存储器中,并在第一存储器中将点云或网格数据添加至第二子空间包含的数据。若确定第一子空间和第二子空间的位置是不相邻,先将第一子空间内的数据保存至第二存储器中,同时保存该第一子空间的位置信息,再将该第一子空间的数据从第一存储器中删除,加载查询到的第二子空间内的数据,并在第一存储器中将点云或网格数据添加至第二子空间包含的数据。
需要说明的是,将添加数据(点云数据或网格数据)添加至第一存储器中后,可以对八叉树中的节点对应的子空间进行更新。具体的说,当有新的数据添加至第二子空间后,根据八叉树数据结构的原理,再次划分该第二子空间,并调整八叉树节点与新划分的子空间之间的对应关系。
通过添加的数据,对第二子空间进行划分,可以缩小子空间的体积,减少划分后的子空间内的数据量,进一步调整第一存储器对子空间的运算能力。另外,调整八叉树节点的对应关系,使得在后续进行该场景的三维重建和渲染过程中,可以通过八叉树节点快速查询到相邻节点内的数据。
步骤104:根据调整后的第一存储器中存储的数据对当前拍摄区域对应的第二子空间进行三维模型重建。
具体的说,完成数据添加之后,根据该第二子空间内的点云数据或网格数据构建该第二子空间的三维模型。
步骤105:根据第二子空间的三维重建数据进行渲染。
需要说明的是,第二子空间的三维重建数据可以是第二子空间的三维网格数据或者第二子空间的三维点云数据,或者是第二子空间的三维网格数据和第二子空间的三维点云数据。其中,本实施例中第一存储器包括用于进行三维重建的内存,以及用于渲染的显存。
相对于现有技术而言,本申请部分实施例中,根据当前拍摄区域的第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中的数据,确保了第一存储器有足够的空间对当前拍摄区域进行计算,也确保了第一存储器有足够的空间对下一拍摄区域的图像数据进行三维重建,而不会因数据量多而导致计算延迟的问题,同时也不会因为场景范围大导致对场景的重建计算和渲染无法继续的问题,适用于各种规模场景的重建以及渲染。另外,由于将场景划分了子空间,并以子空间的形式对场景进行三维重建以及渲染,使得每个子空间都可以独立进行三维重建和渲染,避免了由于每次重建和渲染的数据量过大而导致对场景的三维重建、渲染的速度慢的问题。
本申请的第二实施例涉及一种场景的三维重建方法,第二实施例是对第一实施例的进一步改进,主要改进之处在于,本实施例在完成所有子空间的三维重建和渲染之后,将该场景中所有的子空间数据进行拼接。
本实施例包括步骤401至步骤407。其中,步骤401至步骤405分别与第一实施例中的步骤101至步骤105大致相同,此处不再详述,下面主要介绍不同之处:
步骤406:检测在第二存储器中是否包含场景中所有的子空间内的数据;若是,则执行步骤407,否则返回执行步骤401。
具体的说,可以通过该场景划分的子空间的个数,判断第二存储器中包含的子空间个数与该场景划分的子空间的个数相同,若相同,则确定第二存储器中是否包含场景中所有的子空间内的数据,否则,确定第二存储器中未包含场景中所有的子空间内的数据。可以理解的是,还可以有其他的检测方法,例如,通过该场景划分的每个子空间的位置信息,判断第二存储器中是否包含所有的子空间的位置信息的方式,此处不再一一列举。
步骤407:根据每个子空间的位置信息将第二存储器中的所有的子空间内的数据进行拼接,形成场景的三维重建数据,并对场景的三维重建数据进行渲染。
具体的说,第二存储器可以是只读存储器,所有的子空间内的数据拼接后即为该场景的点云或网格数据,形成该场景的三维重建数据,对该场景的三维重建数据进行渲染即可得到该场景的三维模型。可以理解的是,拼接是在第一存储器中进行。
与现有技术相比,本实施例提供的场景的三维渲染方法,由于在第二存储器中存储有每个子空间的数据,且每个子空间相对独立,即可简单对每个子空间内的数据进行融合,计算量小,且速度快,通过拼接的方式,可快速实现对整个场景的渲染,适用于各种规模的场景的三维重建和渲染。
本申请的第三实施例涉及一种场景的三维渲染方法,第三实施例是对第二实施例的进一步改进,主要改进之处在于,本实施例在根据所述第二子空间的三维重建数据进行渲染之前,根据第二子空间内点云数据或网格数据的数目,对第二子空间的体积进行调整。具体的流程如图5所示。
本实施例包括步骤501至步骤508。其中,步骤501至步骤504、步骤506至步骤508与第二实施例中的步401至步骤404、步骤405至步骤407大致相同,此处不再详述,下面主要介绍不同之处:
步骤505:根据第二子空间内的点云数据或网格数据的数目,对第二子空间的体积进行调整。
一个具体实现中,判断第二子空间内的点云或网格数据是否超过第一预设值,若是,则将第二子空间划分为至少一个子空间。
需要说明的是,第二子空间的划分方式与第一实施例中的划分方式相同。例如,将第二子空间划分为8个子空间,之后将当前拍摄区域的第一位置信息位于的子空间作为新的第二子空间。
值得一提的是,在第二子空间的点云数据过多时,对第二子空间的体积进行调整,加快了第一存储器中对第二子空间的计算速度。
另一个具体实现中,判断第二子空间以及与第二子空间相邻的子空间内的点云或网格数据是否均小于第二预设值,若是,则将与第二子空间相邻的子空间和第二子空间合并。
例如,子空间A是第二子空间,子空间A与子空间B相邻,当检测到第二子空间和子空间B中的点云数据或网格数据小于第二预设阈值,则将第二子空间与子空间B合并,形成一个新的第二子空间。
其中,第一预设阈值和第二预设阈值是根据实际应用中第一存储器的运算能力设置的。
需要说明的是,在相邻的两个子空间有部分重叠空间。以一个具体的例子进行说明,例如,如图6所示,子空间A和子空间AB为相邻子空间,子空间AB与子空间B为相邻子空间,子空间AB与子空间A有部分重叠,同时子空间AB与子空间B也有部分重叠。由于子空间AB既包含有子空间A的一部分,又包含子空间B的一部分,保证了子空间的数据的连贯性。可以理解的是,在进行多个相邻子空间的合并操作时,相邻子空间的重叠部分会出现冗余数据,将冗余数据删除即可,例如,如图6所示,若将子空间A和子空间B合并,将子空间AB内的数据删除即可。
与现有技术相比,本实施例提供的场景的三维重建方法,可以根据子空间内的数据量,自动调节子空间的体积,确保对子空间的三维重建以及渲染的速度,同时也避免了因数据量少,造成的运算资源的浪费。
本申请的第四实施例涉及一种场景的三维重建装置70,包括:获取模块701、第一位置信息确定模块702、调整模块703、三维模型重建模块704和三维模型渲染模块705;具体结构如图7所示。
获取模块701,用于获取当前拍摄区域的图像数据;第一位置信息确定模块702,用于根据图像数据,确定当前拍摄区域的第一位置信息;调整模块703,用于根据第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中存储的数据;三维模型重建模块704,用于根据调整后的第一存储器中存储的数据对当前拍摄区域对应的第二子空间进行三维模型重建;三维模型渲染模块705,用于根据第二子空间的三维重建数据进行渲染;其中,第一子空间和第二子空间分别是对该场景进行划分获得的N个子空间中的一个,N为大于0的整数。
本实施例是与上述场景的三维重建方法对应的虚拟装置实施例,上述方法实施例中技术细节在本实施例中依然适用,此处不再赘述。
需要说明的是,以上所述的装置实施例仅仅是示意性的,并不对本申请的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的,此处不做限制。
本申请的第五实施例涉及一种电子设备,其结构如图8所示。包括:至少一个处理器801;以及,与至少一个处理器801通信连接的存储器802。存储器802存储有可被至少一个处理器801执行的指令。指令被至少一个处理器801执行,以使至少一个处理器801能够执行上述的场景的三维重建方法。
本实施例中,处理器以中央处理器(Central Processing Unit,CPU)为例,存储器以可读写存储器(Random Access Memory,RAM)为例。处理器、存储器可以通过总线或者其他方式连接,图8中以通过总线连接为例。存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述场景的三维重建方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器中,当被一个或者多个处理器执行时,执行上述任意方法实施例中样本图像的集合的生成方法。
上述产品可执行本申请实施例所提供的场景的三维重建方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的场景的三维重建方法。
本申请的第六实施例涉及一种计算机可读存储介质,该可读存储介质为计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,该计算机指令使计算机能够执行本申请第一至第三方法实施例中任意实施例涉及的场景的三维重建方法。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施例是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (16)

1.一种场景的三维重建方法,其中,包括:
获取当前拍摄区域的图像数据;
根据所述图像数据,确定所述当前拍摄区域的第一位置信息;
根据所述第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中存储的数据;
根据调整后的所述第一存储器中存储的数据,对所述当前拍摄区域对应的第二子空间进行三维模型重建,并根据所述第二子空间的三维重建数据进行渲染;
其中,所述第一子空间和所述第二子空间分别是对所述场景进行划分获得的N个子空间中的一个,N为大于0的整数。
2.根据权利要求1所述的场景的三维重建方法,其中,根据所述第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中存储的数据,具体包括:
根据所述第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,确定调整模式;
按照所述调整模式,对所述第一存储器中存储的数据进行调整;
所述调整模式为第一调整模式、第二调整模式或者第三调整模式;
其中,所述第一调整模式为将所述第一存储器中的数据进行另存和删除,从第二存储器中读取与所述当前拍摄区域对应的第二子空间的数据,并在所述第一存储器中添加由所述图像数据确定的添加数据;
所述第二调整模式为从第二存储器中读取与所述当前拍摄区域对应的第二子空间的数据,并在所述第一存储器中添加由所述图像数据确定的添加数据;
所述第三调整模式为在所述第一存储器中添加由所述图像数据确定的添加数据。
3.根据权利要求1或2所述的场景的三维重建方法,其中,在获取当前拍摄区域的图像数据之前,所述场景的三维重建方法还包括:
获取所述当前拍摄区域所在的场景的体积数据;
根据所述体积数据,将所述场景划分为所述N个子空间。
4.根据权利要求3所述的场景的三维重建方法,其中,根据所述体积数据,将所述场景划分为所述N个子空间,具体包括:
按照八叉树预设的最大递归深度和所述体积数据,将所述当前拍摄区域所在的场景划分为所述N个子空间,且所述N个子空间分别与每一级递归深度中的每一个子节点对应。
5.根据权利要求2所述的场景的三维重建方法,其中,根据所述图像数据,确定所述当前拍摄区域的第一位置信息,具体包括:
根据所述图像数据,构建所述当前拍摄区域对应的点云或网格数据;
获取所述点云或网格数据的位置信息,并根据所述点云或网格数据的位置信息确定所述当前拍摄区域的第一位置信息。
6.根据权利要求2所述的场景的三维重建方法,其中,根据所述第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,确定调整模式,具体包括:
根据所述第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,或者,根据所述第一位置信息以及所有子空间的位置信息,确定所述当前拍摄区域对应的第二子空间;
根据所述第一子空间的位置信息以及所述第二子空间的位置信息,确定所述第一子空间和第二子空间的位置关系;
根据所述位置关系,确定所述调整模式。
7.根据权利要求6所述的场景的三维重建方法,其中,根据所述第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,或者,根据所述第一位置信息以及所有子空间的位置信息,确定所述当前拍摄区域对应的第二子空间,具体包括:
判断第一位置信息是否位于所述第一子空间的位置信息所在范围内,若是,则将所述第一子空间作为当前拍摄区域对应的第二子空间,若不是,则根据除第一子空间外的其他子空间的位置信息,确定所述当前拍摄区域对应的第二子空间;
或者,
分别判断每个子空间的位置信息所在范围内是否包含第一位置信息,根据判断结果确定所述当前拍摄区域对应的第二子空间。
8.根据权利要求6或7所述的场景的三维重建方法,其中,根据所述第一子空间的位置信息以及所述第二子空间的位置信息,确定所述第一子空间和第二子空间的位置关系,具体包括:
根据所述第一子空间的位置信息和第二子空间的位置信息,计算所述第一子空间与第二子空间之间的距离;
若确定所述距离大于预设距离阈值,则确定所述第一子空间与第二子空间的位置关系为不相邻;
若确定所述距离小于所述预设距离阈值且所述距离不为零,则确定所述第一子空间与第二子空间的位置关系为相邻;
若确定所述距离为零,则确定第一子空间与第二子空间位置关系为同一位置。
9.根据权利要求8所述的场景的三维重建方法,其中,根据所述位置关系,确定调整模式,具体包括:
若确定所述位置关系为不相邻,则确定所述调整模式为所述第一调整模式;
若确定所述位置关系为相邻,则确定所述调整模式为所述第二调整模式;
若确定所述位置关系为同一位置,则确定所述调整模式为所述第三调整模式。
10.根据权利要求5所述的场景的三维重建方法,其中,所述添加数据为所述当前拍摄区域对应的点云或网格数据。
11.根据权利要求2所述的场景的三维重建方法,其中,在根据重建的三维重建数据进行渲染之后,所述场景的三维重建方法还包括:
检测在第二存储器中是否包含所述场景中所有的子空间内的数据;
若是,则根据每个子空间的位置信息将所述第二存储器中的所有的子空间内的数据进行拼接,形成所述场景的三维重建数据,并对所述场景的三维重建数据进行渲染。
12.根据权利要求5至11中任一项所述的场景的三维重建方法,其中,在根据所述第二子空间的三维重建数据进行渲染之前,还包括:
判断第二子空间内的点云或网格数据是否超过第一预设值,若是,则将第二子空间划分为至少一个子空间;
判断第二子空间以及与所述第二子空间相邻的子空间内的点云或网格数据点云或网格数据是否均小于第二预设值,若是,则将与第二子空间相邻的子空间和所述第二子空间合并。
13.根据权利要求1至12中任一项所述的场景的三维重建方法,其中,相邻的两个子空间有部分重叠空间。
14.一种场景的三维重建装置,其中,包括:获取模块、第一位置信息确定模块、调整模块、三维模型重建模块和三维模型渲染模块;
所述获取模块,用于获取当前拍摄区域的图像数据;
所述第一位置信息确定模块,用于根据所述图像数据,确定所述当前拍摄区域的第一位置信息;
所述调整模块,用于根据所述第一位置信息以及上一拍摄区域对应的第一子空间的位置信息,动态调整第一存储器中存储的数据;
所述三维模型重建模块,用于根据调整后的所述第一存储器中存储的数据对所述当前拍摄区域对应的第二子空间进行三维模型重建;
所述三维模型渲染模块,用于根据所述第二子空间的三维重建数据进行渲染;
其中,所述第一子空间和所述第二子空间分别是对所述场景进行划分获得的N个子空间中的一个,N为大于0的整数。
15.一种电子设备,其中,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1~13任一项所述场景的三维重建方法。
16.一种计算机可读存储介质,存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1~13任一项所述场景的三维重建方法。
CN201880001285.7A 2018-08-14 2018-08-14 一种场景的三维重建方法、装置、电子设备及存储介质 Active CN109155846B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/100390 WO2020034086A1 (zh) 2018-08-14 2018-08-14 一种场景的三维重建方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN109155846A true CN109155846A (zh) 2019-01-04
CN109155846B CN109155846B (zh) 2020-12-18

Family

ID=64806275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880001285.7A Active CN109155846B (zh) 2018-08-14 2018-08-14 一种场景的三维重建方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN109155846B (zh)
WO (1) WO2020034086A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110910483A (zh) * 2019-11-29 2020-03-24 广州极飞科技有限公司 三维重建方法、装置及电子设备
CN112540616A (zh) * 2020-12-11 2021-03-23 北京赛目科技有限公司 一种基于无人驾驶的激光点云生成方法及装置
CN113313805A (zh) * 2021-06-23 2021-08-27 合肥量圳建筑科技有限公司 一种三维场景数据存储方法、装置、设备及存储介质
CN113362449A (zh) * 2021-06-01 2021-09-07 聚好看科技股份有限公司 一种三维重建方法、装置及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090244062A1 (en) * 2008-03-31 2009-10-01 Microsoft Using photo collections for three dimensional modeling
CN104616345A (zh) * 2014-12-12 2015-05-13 浙江大学 一种基于八叉树森林压缩的三维体素存取方法
CN104867174A (zh) * 2015-05-08 2015-08-26 腾讯科技(深圳)有限公司 一种三维地图渲染显示方法及系统
US9483703B2 (en) * 2013-05-14 2016-11-01 University Of Southern California Online coupled camera pose estimation and dense reconstruction from video

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101686169B1 (ko) * 2010-02-09 2016-12-14 삼성전자주식회사 옥트리 기반의 3차원 맵 생성 장치 및 방법
CN104504760B (zh) * 2014-12-09 2018-06-12 北京畅游天下网络技术有限公司 实时更新三维图像的方法和系统
CN106157354B (zh) * 2015-05-06 2019-08-23 腾讯科技(深圳)有限公司 一种三维场景切换方法及系统
CN108335353B (zh) * 2018-02-23 2020-12-22 清华-伯克利深圳学院筹备办公室 动态场景的三维重建方法、装置和系统、服务器、介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090244062A1 (en) * 2008-03-31 2009-10-01 Microsoft Using photo collections for three dimensional modeling
US9483703B2 (en) * 2013-05-14 2016-11-01 University Of Southern California Online coupled camera pose estimation and dense reconstruction from video
CN104616345A (zh) * 2014-12-12 2015-05-13 浙江大学 一种基于八叉树森林压缩的三维体素存取方法
CN104867174A (zh) * 2015-05-08 2015-08-26 腾讯科技(深圳)有限公司 一种三维地图渲染显示方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110910483A (zh) * 2019-11-29 2020-03-24 广州极飞科技有限公司 三维重建方法、装置及电子设备
CN112540616A (zh) * 2020-12-11 2021-03-23 北京赛目科技有限公司 一种基于无人驾驶的激光点云生成方法及装置
CN112540616B (zh) * 2020-12-11 2021-07-16 北京赛目科技有限公司 一种基于无人驾驶的激光点云生成方法及装置
CN113362449A (zh) * 2021-06-01 2021-09-07 聚好看科技股份有限公司 一种三维重建方法、装置及系统
CN113362449B (zh) * 2021-06-01 2023-01-17 聚好看科技股份有限公司 一种三维重建方法、装置及系统
CN113313805A (zh) * 2021-06-23 2021-08-27 合肥量圳建筑科技有限公司 一种三维场景数据存储方法、装置、设备及存储介质
CN113313805B (zh) * 2021-06-23 2024-06-25 合肥量圳建筑科技有限公司 一种三维场景数据存储方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN109155846B (zh) 2020-12-18
WO2020034086A1 (zh) 2020-02-20

Similar Documents

Publication Publication Date Title
CN109701273B (zh) 游戏数据的处理方法、装置、电子设备及可读存储介质
CN109155846A (zh) 一种场景的三维重建方法、装置、电子设备及存储介质
JP7125512B2 (ja) オブジェクトのロード方法及び装置、記憶媒体、電子装置、並びにコンピュータプログラム
CN104613976B (zh) 确定路径的方法及装置
CN112044074B (zh) 对非玩家角色寻路的方法、装置、存储介质及计算机设备
CN106407408A (zh) 一种海量点云数据的空间索引构建方法及装置
CN109163722B (zh) 一种仿人机器人路径规划方法及装置
CN108211354A (zh) 3d游戏场景中虚拟资源的生成方法及装置
KR102672603B1 (ko) 맵 생성 방법 및 장치, 전자 디바이스, 및 컴퓨터 저장 매체
CN104239431B (zh) 三维gis模型显示方法及装置
KR20090091617A (ko) 이웃 포인트의 탐색이 용이한 3d 영상 처리 방법
CN112090078B (zh) 游戏角色移动控制方法、装置、设备和介质
CN113791914B (zh) 对象处理方法、装置、计算机设备、存储介质及产品
CN112169324A (zh) 游戏场景的渲染方法、装置及设备
CN109343532A (zh) 一种动态随机环境的路径规划方法和装置
CN108803659A (zh) 基于魔方模型的多窗口启发式三维空间路径规划方法
CN109745705B (zh) 2d游戏地图编辑方法及装置
CN108564604A (zh) 基于平面约束和三角剖分的双目视觉立体匹配方法及装置
CN113244619A (zh) 数据处理方法、装置、设备及存储介质
CN115779424A (zh) 一种导航网格寻路方法、装置、设备及介质
CN113763521B (zh) 毛发模型渲染方法、装置、电子设备及存储介质
CN103679815B (zh) 基于表面搜索的可视外壳生成方法及装置
CN112184896A (zh) 基于楼层与开间线辅助的三维建筑建模方法、装置和系统
CN109074676A (zh) 建立地图的方法、定位方法、终端及计算机可读存储介质
Zoet Accelerating ray tracing with origin offsets

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210207

Address after: 200245 2nd floor, building 2, no.1508, Kunyang Road, Minhang District, Shanghai

Patentee after: Dalu Robot Co.,Ltd.

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee before: CLOUDMINDS (SHENZHEN) ROBOTICS SYSTEMS Co.,Ltd.

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 200245 Building 8, No. 207, Zhongqing Road, Minhang District, Shanghai

Patentee after: Dayu robot Co.,Ltd.

Address before: 200245 2nd floor, building 2, no.1508, Kunyang Road, Minhang District, Shanghai

Patentee before: Dalu Robot Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231101

Address after: Room 318, No. 9, Zhifeng Street, Huangpu District, Guangzhou, Guangdong 510799

Patentee after: Data Robotics (Guangzhou) Co.,Ltd.

Address before: 200245 Building 8, No. 207, Zhongqing Road, Minhang District, Shanghai

Patentee before: Dayu robot Co.,Ltd.