CN110413716B - 数据存储和数据查询方法、装置及电子设备 - Google Patents
数据存储和数据查询方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110413716B CN110413716B CN201910644737.XA CN201910644737A CN110413716B CN 110413716 B CN110413716 B CN 110413716B CN 201910644737 A CN201910644737 A CN 201910644737A CN 110413716 B CN110413716 B CN 110413716B
- Authority
- CN
- China
- Prior art keywords
- target
- feature
- octree
- feature point
- dimensional image
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Abstract
本申请提供一种数据存储和数据查询方法、装置及电子设备,其中,数据存储方法的一具体实施方式包括:针对目标三维图像数据,划分多个单位空间;确定所述目标三维图像数据对应的多个特征点的坐标信息;基于所述坐标信息,构建每个所述单位空间对应的八叉树;利用所述八叉树,进行数据存储,以存储所述目标三维图像数据对应的特征信息,所述特征信息包括每个所述特征点的特征描述子。该实施方式使得存储的特征信息能够精确的体现目标三维图像数据的特征的分布,并且,在基于存储的数据进行查询时,提高了查询效率以及查询精度。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据存储和数据查询方法、装置及电子设备。
背景技术
随着无人驾驶技术的不断发展,地图的构建以及基于地图的定位变得尤为重要。目前来说,在地图构建的过程中,需要对用于描述地图的图像数据进行存储。在基于地图的定位过程中,需要利用实时采集的三维图像数据,对已存储的地图的图像数据进行查询。在相关技术中,一般针对地图的图像数据,先提取特征,然后利用字典树存储提取的特征,并采用聚类算法对提取的特征进行聚类,基于聚类的结果生成正排索引和倒排索引。可以基于字典树以及正排索引和倒排索引进行查询定位。但是,基于上述方式存储的数据难以精确的体现图像数据特征的分布,并且,在进行查询定位时,查询效率以及查询精度都较低。
发明内容
为了解决上述技术问题之一,本申请提供一种数据存储和数据查询方法、装置及电子设备。
根据本申请实施例的第一方面,提供一种数据存储方法,包括:
针对目标三维图像数据,划分多个单位空间;
确定所述目标三维图像数据对应的多个特征点的坐标信息;
基于所述坐标信息,构建每个所述单位空间对应的八叉树;
利用所述八叉树,进行数据存储,以存储所述目标三维图像数据对应的特征信息,所述特征信息包括每个所述特征点的特征描述子。
可选的,所述基于所述坐标信息,构建每个所述单位空间对应的八叉树,包括:
基于所述坐标信息,确定每个所述单位空间中的特征点;
针对任一单位空间,基于该单位空间中的特征点构建一个八叉树,该单位空间中的特征点与该八叉树的叶节点一一对应。
可选的,所述利用所述八叉树,进行数据存储,包括:
针对所述目标三维图像数据对应的每个所述特征点,确定该特征点的二进制形式的特征描述子中0或1的个数,作为该特征点的描述值;
针对每个所述单位空间,利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储。
可选的,针对任一单位空间,通过如下方式利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储:
针对该单位空间对应的八叉树的每个叶节点,将该叶节点对应的特征点的特征描述子和描述值存储至该叶节点中;
针对该单位空间对应的八叉树的每个非叶节点,将该非叶节点对应的特征汇总信息存储至该非叶节点中,该非叶节点对应的特征汇总信息基于该非叶节点下的叶节点所对应的特征点的描述值而确定。
可选的,该非叶节点对应的特征汇总信息为一个二进制序列,该二进制序列中任意的1所对应的位数为该非叶节点下的至少一个叶节点所对应的特征点的描述值。
根据本申请实施例的第二方面,提供一种数据查询方法,包括:
确定待查询三维图像数据中的多个目标特征点;
从多个八叉树中查找每个所述目标特征点匹配的目标八叉树;其中,每个所述八叉树针对一个单位空间而构建,所述多个八叉树对应的多个单位空间针对目标三维图像数据而划分;
基于所述目标八叉树,从所述目标三维图像数据对应的多个特征点中,查询每个所述目标特征点匹配的参考特征点。
可选的,针对任一八叉树,该八叉树对应的单位空间中的特征点与该八叉树的叶节点一一对应。
可选的,针对任一目标特征点,通过如下方式从多个八叉树中查找该目标特征点匹配的目标八叉树:
基于所述待查询三维图像数据,估测该目标特征点对应的空间区域;
从所述多个单位空间中查找与所述空间区域有交叠的目标单位空间;
将所述目标单位空间对应的八叉树确定为所述目标八叉树。
可选的,针对任一目标特征点,通过如下方式基于该目标特征点匹配的目标八叉树,从所述目标三维图像数据对应的多个特征点中,查找该目标特征点匹配的参考特征点:
确定该目标特征点的二进制形式的特征描述子中0或1的个数,作为该目标特征点的描述值;
基于该目标特征点的特征描述子和描述值以及该目标特征点匹配的目标八叉树,查找该目标特征点匹配的参考特征点。
可选的,针对任一八叉树,该八叉树的任一叶节点存储有该叶节点对应的特征点的特征描述子和描述值;该八叉树的任一非叶节点存储有该非叶节点对应的特征汇总信息,该非叶节点对应的特征汇总信息基于该非叶节点下的叶节点所对应的特征点的描述值而确定。
可选的,所述基于该目标特征点的特征描述子和描述值以及该目标特征点匹配的目标八叉树,查找该目标特征点匹配的参考特征点,包括:
针对任一目标八叉树,根据该目标八叉树的非叶节点存储的特征汇总信息以及该目标八叉树的叶节点存储的描述值,从该目标八叉树对应的单位空间中的特征点中,查找与该目标特征点匹配的备选特征点;所述备选特征点的描述值与该目标特征点的描述值之差小于等于预设差值;
基于该目标特征点特征描述子以及每个所述备选特征点的特征描述子,分别计算该目标特征点与每个所述备选特征点之间的相似度;
根据所述相似度确定该目标特征点匹配的参考特征点。
根据本申请实施例的第三方面,提供一种数据存储装置,包括:
划分模块,用于针对目标三维图像数据,划分多个单位空间;
确定模块,用于确定所述目标三维图像数据对应的多个特征点的坐标信息;
构建模块,用于基于所述坐标信息,构建每个所述单位空间对应的八叉树;
存储模块,用于利用所述八叉树,进行数据存储,以存储所述目标三维图像数据对应的特征信息,所述特征信息包括每个所述特征点的特征描述子。
根据本申请实施例的第四方面,提供一种数据存储装置,包括:
确定模块,用于确定待查询三维图像数据中的多个目标特征点;
匹配模块,用于从多个八叉树中查找每个所述目标特征点匹配的目标八叉树;其中,每个所述八叉树针对一个单位空间而构建,所述多个八叉树对应的多个单位空间针对目标三维图像数据而划分;
查询模块,用于基于所述目标八叉树,从所述目标三维图像数据对应的多个特征点中,查询每个所述目标特征点匹配的参考特征点。
根据本申请实施例的第五方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面中任一项所述的方法。
根据本申请实施例的第六方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述第一方面或第二方面中任一项所述的方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请的实施例提供的数据存储方法和装置,通过针对目标三维图像数据,划分多个单位空间,确定目标三维图像数据对应的多个特征点的坐标信息,基于上述坐标信息,构建每个单位空间对应的八叉树,并利用每个单位空间对应的八叉树,进行数据存储,以存储目标三维图像数据对应的特征信息。从而使得存储的特征信息能够精确的体现目标三维图像数据的特征的分布,并且,在基于存储的数据进行查询时,提高了查询效率以及查询精度。
本申请的实施例提供的数据查询方法和装置,通过确定待查询三维图像数据中的多个目标特征点,从多个八叉树中查找每个目标特征点匹配的目标八叉树,并基于目标八叉树,从目标三维图像数据对应的多个特征点中,查询每个目标特征点匹配的参考特征点。由于本实施例存储的特征信息能够精确的体现目标三维图像数据的特征的分布,因此,在数据查询时,提高了查询效率以及查询精度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请根据一示例性实施例示出的一种数据存储方法的流程图;
图2是本申请根据一示例性实施例示出的另一种数据存储方法的流程图;
图3是本申请根据一示例性实施例示出的另一种数据存储方法的流程图;
图4是本申请根据一示例性实施例示出的一种数据查询方法的流程图;
图5是本申请根据一示例性实施例示出的一种数据存储装置的框图;
图6是本申请根据一示例性实施例示出的另一种数据存储装置的框图;
图7是本申请根据一示例性实施例示出的另一种数据存储装置的框图;
图8是本申请根据一示例性实施例示出的一种数据存储装置的框图;
图9是本申请根据一示例性实施例示出的一种电子设备的结构示意图;
图10是本申请根据一示例性实施例示出的另一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1所示,图1是根据一示例性实施例示出的一种数据存储方法的流程图,该方法可以应用于终端设备中,也可以应用于服务器中,还可以应用于无人驾驶设备中。本领域技术人员可以理解,该终端设备可以包括但不限于诸如智能手机的移动终端设备、智能穿戴式设备、平板电脑、个人数字助理、膝上型便携式电脑以及台式电脑等等。该无人驾驶设备可以包括但不限于无人车、无人操作机器人、无人机、无人船等等。该方法包括以下步骤:
在步骤101中,针对目标三维图像数据,划分多个单位空间。
在本实施例中,以三维地图的构建为例,可以对需要构建地图的区域进行三维图像数据的采集。一般来说,可以采用三维图像采集装置在需要构建地图的区域连续采集多帧三维图像数据,将采集的多帧三维图像数据作为目标三维图像数据。其中,三维图像采集装置可以是激光雷达等传感器,也可以是深度图像摄像装置等。可以理解,本申请对三维图像采集装置的具体类型方面不限定。三维图像数据可以是激光点云数据,也可以是三维视觉图像等。可以理解,本申请对三维图像数据的具体形式方面不限定。
在本实施例中,可以利用目标三维图像数据,确定待构建的地图的空间区域的范围。并且,将待构建的地图的空间区域划分成多个单位空间,每个单位空间可以是一个立方体空间,这些立方体空间的尺寸可以相同。其中,立方体空间的尺寸可以是基于经验和需求而定的,本申请对立方体的具体尺寸方面不限定。
在步骤102中,确定目标三维图像数据对应的多个特征点的坐标信息。
在本实施例中,可以预先建立三维空间坐标系,目标三维图像数据中的任意一个点可以对应于上述三维空间坐标系中的一个坐标值。并且,在目标三维图像数据中包括一些特征点,任意一个特征点能够反映目标三维图像数据的本质特征,能够标识目标三维图像数据中目标物体,可以通过特征点的匹配完成图像匹配。因此,可以确定目标三维图像数据对应的多个特征点的坐标信息(即坐标值)。
需要说明的是,目标三维图像数据对应的多个特征点为适合用于地图构建的特征点,该特征点的个数适宜,并且特征点分布稀疏。可以理解,可以基于任意合理的方式确定目标三维图像数据对应的多个特征点,本申请对确定上述特征点的具体方式方面不限定。
在步骤103中,基于上述坐标信息,构建每个单位空间对应的八叉树。
在本实施例中,可以基于目标三维图像数据对应的多个特征点的坐标信息,构建每个单位空间对应的八叉树。具体来说,首先可以确定每个单位空间在三维空间坐标系中所对应坐标范围,并基于目标三维图像数据对应的多个特征点的坐标信息,确定每个单位空间中的特征点。然后,遍历每个单位空间,将该单位空间均分成多个立方体,使得任意一个立方体中最多包含一个特征点(即任意一个立方体中可以包含一个特征点,或者不包含特征点)。最后,针对每个单位空间,构建一个八叉树,其中,将该单位空间中每个包含一个特征点的立方体作为一个叶节点,使得该单位空间中的特征点与该八叉树的叶节点一一对应。
在步骤104中,利用每个单位空间对应的八叉树,进行数据存储,以存储目标三维图像数据对应的特征信息。
在本实施例中,可以利用每个单位空间对应的八叉树,进行数据存储,以存储目标三维图像数据对应的特征信息,从而构建以目标三维图像数据为基础的三维地图。该特征信息可以包括目标三维图像数据对应的多个特征点中每个特征点的特征描述子。其中,任意一个特征点的特征描述子能够反映该特征点邻域附近的几何信息、颜色信息和纹理信息等,可以通过对该特征点邻域附近的几何信息、颜色信息和纹理信息等进行编码而得到。
在一种实现方式中,可以直接将目标三维图像数据对应的每个特征点的特征描述子存储至八叉树中与该特征点相对应的叶节点中。
在另一种实现方式中,还可以确定目标三维图像数据对应的每个特征点的描述值,任意一个特征点的描述值可以基于该特征点二进制形式的特征描述子而得到。然后,针对每个单位空间,利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储。
本申请的上述实施例提供的数据存储方法,通过针对目标三维图像数据,划分多个单位空间,确定目标三维图像数据对应的多个特征点的坐标信息,基于上述坐标信息,构建每个单位空间对应的八叉树,并利用每个单位空间对应的八叉树,进行数据存储,以存储目标三维图像数据对应的特征信息。从而使得存储的特征信息能够精确的体现目标三维图像数据的特征的分布,并且,在基于存储的数据进行查询时,提高了查询效率以及查询精度。
如图2所示,图2根据一示例性实施例示出的另一种数据存储方法的流程图,该实施例描述了构建每个单位空间对应的八叉树的过程,该方法可以应用于终端设备中,也可以应用于服务器中,还可以应用于无人驾驶设备中,包括以下步骤:
在步骤201中,针对目标三维图像数据,划分多个单位空间。
在步骤202中,确定目标三维图像数据对应的多个特征点的坐标信息。
在步骤203中,基于上述坐标信息,确定每个单位空间中的特征点。
在本实施例中,可以确定每个单位空间在三维空间坐标系中所对应坐标范围,并基于目标三维图像数据对应的多个特征点的坐标信息,确定每个单位空间中的特征点。
在步骤204中,针对任一单位空间,基于该单位空间中的特征点构建一个八叉树,该单位空间中的特征点与该八叉树的叶节点一一对应。
在本实施例中,可以遍历每个单位空间,针对任意一个单位空间,将该单位空间均分成多个立方体,使得任意一个立方体中最多包含一个特征点(即任意一个立方体中可以包含一个特征点,或者不包含特征点)。然后,针对每个单位空间,构建一个八叉树,其中,将该单位空间中每个包含一个特征点的立方体作为一个叶节点,使得该单位空间中的特征点与该八叉树的叶节点一一对应。
在步骤205中,利用每个单位空间对应的八叉树,进行数据存储,以存储目标三维图像数据对应的特征信息。
需要说明的是,对于与图1实施例中相同的步骤,在上述图2实施例中不再进行赘述,相关内容可参见图1实施例。
本申请的上述实施例提供的数据存储方法,通过针对目标三维图像数据,划分多个单位空间,确定目标三维图像数据对应的多个特征点的坐标信息,基于上述坐标信息,确定每个单位空间中的特征点,针对任一单位空间,基于该单位空间中的特征点构建一个八叉树,该单位空间中的特征点与该八叉树的叶节点一一对应,并利用每个单位空间对应的八叉树,进行数据存储,以存储目标三维图像数据对应的特征信息。由于本实施例中,每个单位空间中的特征点与该单位空间对应的八叉树的叶节点一一对应,使得构建得到的八叉树能更直接的体现目标三维图像数据的特征的分布,在基于存储的数据进行查询时,进一步提高了查询效率以及查询精度。
如图3所示,图3根据一示例性实施例示出的另一种数据存储方法的流程图,该实施例详细描述了利用八叉树进行数据存储的过程,该方法可以应用于终端设备中,也可以应用于服务器中,还可以应用于无人驾驶设备中,包括以下步骤:
在步骤301中,针对目标三维图像数据,划分多个单位空间。
在步骤302中,确定目标三维图像数据对应的多个特征点的坐标信息。
在步骤303中,基于上述坐标信息,构建每个单位空间对应的八叉树。
在步骤304中,针对目标三维图像数据对应的每个特征点,确定该特征点的二进制形式的特征描述子中0或1的个数,作为该特征点的描述值。
在本实施例中,可以确定目标三维图像数据对应的每个特征点的特征描述子,任意一个特征点的特征描述子能够反映该特征点邻域附近的几何信息、颜色信息和纹理信息等,可以通过对该特征点邻域附近的几何信息、颜色信息和纹理信息等进行编码而得到。特征点的特征描述子可以是二进制形式的编码,可以将特征点的二进制形式的特征描述子中0或1的个数,作为该特征点的描述值,从而确定目标三维图像数据对应的每个特征点的描述值。例如,特征点A的二进制形式的特征描述子为01100111,则可以将0个数3作为该特征点的描述值,可选地,一般将1个数5作为该特征点的描述值。
在步骤305中,针对每个单位空间,利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储。
在本实施例中,遍历每个单位空间,针对任意一个单位空间,可以利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储。
具体来说,可以通过如下方式利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储:首先,遍历该单位空间对应的八叉树的每个叶节点,针对该单位空间对应的八叉树的任意一个叶节点,将该叶节点对应的特征点的特征描述子和描述值存储至该叶节点中。
然后,遍历该单位空间对应的八叉树的每个非叶节点,针对该单位空间对应的八叉树的任意一个非叶节点,将该非叶节点对应的特征汇总信息存储至该非叶节点中,该非叶节点对应的特征汇总信息基于该非叶节点下的叶节点所对应的特征点的描述值而确定。
在一种实现方式中,该非叶节点对应的特征汇总信息可以是一个二进制序列,该二进制序列中任意的1所对应的位数为该非叶节点下的至少一个叶节点所对应的特征点的描述值。例如,非叶节点B下有6个叶节点,6个叶节点所对应的特征点的描述值分别为3,6,6,2,8,9,则该非叶节点B对应的特征汇总信息可以是011001011000。
在另一种实现方式中,该非叶节点对应的特征汇总信息还可以是该非叶节点下的叶节点所对应的特征点的描述值的并集。例如,非叶节点B下有6个叶节点,6个叶节点所对应的特征点的描述值分别为3,6,6,2,8,9,则该非叶节点B对应的特征汇总信息可以是366289(可以用二进制的形式记录366289)。
可以理解,特征汇总信息还可以是其它形式的信息,本申请对特征汇总信息的具体形式方面不限定。
需要说明的是,对于与图1-图2实施例中相同的步骤,在上述图3实施例中不再进行赘述,相关内容可参见图1-图2实施例。
本申请的上述实施例提供的数据存储方法,通过针对目标三维图像数据,划分多个单位空间,确定目标三维图像数据对应的多个特征点的坐标信息,基于上述坐标信息,构建每个单位空间对应的八叉树,针对目标三维图像数据对应的每个特征点,确定该特征点的二进制形式的特征描述子中0或1的个数,作为该特征点的描述值,并针对每个单位空间,利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储。由于本实施例根据单位空间中每个特征点的特征描述子,确定每个特征点的描述值,并利用单位空间对应的八叉树,基于特征点的特征描述子和描述值进行数据存储。因此,描述值能够体现特征描述子的大概特点,基于描述值存储的数据能够缩小后续查询的范围,从而在基于存储的数据进行查询时,有助于提高了查询效率以及查询精度。
如图4所示,图4是根据一示例性实施例示出的一种数据查询方法的流程图,该方法可以基于图1-3中任意一个实施例记载的方法存储的数据进行数据查询。该方法可以应用于终端设备中,也可以应用于服务器中,还可以应用于无人驾驶设备中。本领域技术人员可以理解,该终端设备可以包括但不限于诸如智能手机的移动终端设备、智能穿戴式设备、平板电脑、个人数字助理、膝上型便携式电脑以及台式电脑等等。该无人驾驶设备可以包括但不限于无人车、无人操作机器人、无人机、无人船等等。该方法包括以下步骤:
在步骤401中,确定待查询三维图像数据中的多个目标特征点。
在本实施例中,以基于三维地图进行定位为例,采用图1-3中任意一个实施例记载的方法进行数据存储,构建以目标三维图像数据为基础的三维地图后,可以基于构建的三维地图进行数据查询,以进行定位。
在本实施例中,可以在待定位设备(如,无人驾驶设备)上安装三维图像采集装置,在待定位设备运行期间,采用三维图像采集装置实时采集三维图像数据,并利用采集的三维图像数据进行定位。其中,采用三维图像采集装置实时采集的三维图像数据为待查询三维图像数据。
在本实施例中,可以首先确定待查询三维图像数据中的多个目标特征点。任意一个目标特征点能够反映三维图像数据的本质特征,可以通过目标特征点的匹配完成图像匹配。
在步骤402中,从多个八叉树中查找每个目标特征点匹配的目标八叉树。
在本实施例中,每个八叉树针对一个单位空间而构建,多个八叉树对应的多个单位空间针对目标三维图像数据而划分。具体来说,以基于三维地图进行定位为例(参考图1-图3实施例),可以预先针对目标三维图像数据,划分多个单位空间,并构建每个单位空间对应的八叉树。其中,针对任一八叉树,该八叉树对应的单位空间中的特征点与该八叉树的叶节点一一对应。从而利用构建的八叉树进行数据存储,并得到以目标三维图像数据为基础的三维地图。在基于上述三维地图进行定位时,可以从上述多个八叉树中查找每个目标特征点匹配的目标八叉树。
在本实施例中,针对任一目标特征点,可以通过如下方式从多个八叉树中查找该目标特征点匹配的目标八叉树:首先,基于待查询三维图像数据,估测该目标特征点对应的空间区域。其中,该目标特征点对应的空间区域可以是目标特征点可能出现的区域范围。例如,可以采用VO(Visual Odometry,视觉里程计)估测该目标特征点对应的空间区域。可以理解,还可以采用本领域中已知的以及将来可能出现的任何其他方式估测该目标特征点对应的空间区域,本申请对估测该目标特征点对应的空间区域的具体方式方面不限定。
接着,从针对目标三维图像数据划分多个单位空间中,查找与该目标特征点对应的空间区域有交叠的目标单位空间。并将目标单位空间对应的八叉树确定为目标八叉树。
在步骤403中,基于目标八叉树,从目标三维图像数据对应的多个特征点中,查询每个目标特征点匹配的参考特征点。
在本实施例中,可以基于目标八叉树,从目标三维图像数据对应的多个特征点中,查询每个目标特征点匹配的参考特征点,可以进一步根据参考特征点进行定位。
具体来说,针对任意一个目标特征点,可以通过如下方式基于该目标特征点匹配的目标八叉树,从目标三维图像数据对应的多个特征点中,查找该目标特征点匹配的参考特征点:首先,确定该目标特征点的二进制形式的特征描述子中0或1的个数,作为该目标特征点的描述值。然后,基于该目标特征点的特征描述子和描述值以及该目标特征点匹配的目标八叉树,查找该目标特征点匹配的参考特征点。
其中,针对任一八叉树,该八叉树的任一叶节点存储有该叶节点对应的特征点的特征描述子和描述值,该八叉树的任一非叶节点存储有该非叶节点对应的特征汇总信息,该非叶节点对应的特征汇总信息基于该非叶节点下的叶节点所对应的特征点的描述值而确定。在一种实现方式中,该非叶节点对应的特征汇总信息可以是一个二进制序列,该二进制序列中任意的1所对应的位数为该非叶节点下的至少一个叶节点所对应的特征点的描述值。在另一种实现方式中,该非叶节点对应的特征汇总信息还可以是该非叶节点下的叶节点所对应的特征点的描述值的并集。
在本实施例中,如果八叉树的非叶节点对应的特征汇总信息是一个二进制序列,该二进制序列中任意的1所对应的位数为该非叶节点下的至少一个叶节点所对应的特征点的描述值。则可以通过如下方式基于该目标特征点的特征描述子和描述值以及该目标特征点匹配的目标八叉树,查找该目标特征点匹配的参考特征点:首先,针对任意一个目标八叉树,根据该目标八叉树的非叶节点存储的特征汇总信息以及该目标八叉树的叶节点存储的描述值,从该目标八叉树对应的单位空间中的特征点中,查找与该目标特征点匹配的备选特征点。其中,备选特征点的描述值与该目标特征点的描述值之差小于等于预设差值。接着,可以基于该目标特征点特征描述子以及每个备选特征点的特征描述子,分别计算该目标特征点与每个备选特征点之间的相似度。最后,根据上述相似度确定该目标特征点匹配的参考特征点。例如,将相似度最大的预设个数个备选特征点作为参考特征点,或者,将相似度大于预设相似度的备选特征点作为参考特征点。
本申请的上述实施例提供的数据查询方法,通过确定待查询三维图像数据中的多个目标特征点,从多个八叉树中查找每个目标特征点匹配的目标八叉树,并基于目标八叉树,从目标三维图像数据对应的多个特征点中,查询每个目标特征点匹配的参考特征点。由于本实施例存储的特征信息能够精确的体现目标三维图像数据的特征的分布,因此,在数据查询时,提高了查询效率以及查询精度。
应当注意,尽管在上述实施例中,以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
与前述数据存储和数据查询方法实施例相对应,本申请还提供了数据存储和数据查询装置的实施例。
如图5所示,图5是本申请根据一示例性实施例示出的一种数据存储装置框图,该装置可以包括:划分模块501,确定模块502,构建模块503和存储模块504。
其中,划分模块501,用于针对目标三维图像数据,划分多个单位空间。
确定模块502,用于确定目标三维图像数据对应的多个特征点的坐标信息。
构建模块503,用于基于上述坐标信息,构建每个单位空间对应的八叉树。
存储模块504,用于利用上述八叉树,进行数据存储,以存储目标三维图像数据对应的特征信息,该特征信息包括每个特征点的特征描述子。
如图6所示,图6是本申请根据一示例性实施例示出的另一种数据存储装置框图,该实施例在前述图5所示实施例的基础上,构建模块503可以包括:第一确定子模块601和构建子模块602。
其中,第一确定子模块601,用于基于上述坐标信息,确定每个单位空间中的特征点。
构建子模块602,用于针对任一单位空间,基于该单位空间中的特征点构建一个八叉树,该单位空间中的特征点与该八叉树的叶节点一一对应。
如图7所示,图7是本申请根据一示例性实施例示出的另一种数据存储装置框图,该实施例在前述图5所示实施例的基础上,存储模块504可以包括:第二确定子模块701和存储子模块702。
其中,第二确定子模块701,用于针对目标三维图像数据对应的每个特征点,确定该特征点的二进制形式的特征描述子中0或1的个数,作为该特征点的描述值。
存储子模块702,用于针对每个单位空间,利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储。
在一些可选实施方式中,针对任一单位空间,存储子模块702可以通过如下方式利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储:针对该单位空间对应的八叉树的每个叶节点,将该叶节点对应的特征点的特征描述子和描述值存储至该叶节点中。针对该单位空间对应的八叉树的每个非叶节点,将该非叶节点对应的特征汇总信息存储至该非叶节点中,该非叶节点对应的特征汇总信息基于该非叶节点下的叶节点所对应的特征点的描述值而确定。
在另一些可选实施方式中,该非叶节点对应的特征汇总信息为一个二进制序列,该二进制序列中任意的1所对应的位数为该非叶节点下的至少一个叶节点所对应的特征点的描述值。
应当理解,上述装置可以预先设置在终端设备或者服务器或者无人驾驶设备中,也可以通过下载等方式而加载到终端设备或者服务器或者无人驾驶设备中。上述装置中的相应模块可以与终端设备或者服务器或者无人驾驶设备中的模块相互配合以实现数据存储方案。
如图8所示,图8是本申请根据一示例性实施例示出的一种数据存储装置框图,该装置可以包括:确定模块801,匹配模块802和查询模块803。
其中,确定模块801,用于确定待查询三维图像数据中的多个目标特征点。
匹配模块802,用于从多个八叉树中查找每个目标特征点匹配的目标八叉树。其中,每个八叉树针对一个单位空间而构建,多个八叉树对应的多个单位空间针对目标三维图像数据而划分。
查询模块803,用于基于目标八叉树,从目标三维图像数据对应的多个特征点中,查询每个目标特征点匹配的参考特征点。
在一些可选实施方式中,针对任一八叉树,该八叉树对应的单位空间中的特征点与该八叉树的叶节点一一对应。
在另一些可选实施方式中,针对任一目标特征点,匹配模块802可以通过如下方式从多个八叉树中查找该目标特征点匹配的目标八叉树:基于待查询三维图像数据,估测该目标特征点对应的空间区域,从多个单位空间中查找与上述空间区域有交叠的目标单位空间,并将目标单位空间对应的八叉树确定为所述目标八叉树。
在另一些可选实施方式中,针对任一目标特征点,查询模块803可以通过如下方式基于该目标特征点匹配的目标八叉树,从目标三维图像数据对应的多个特征点中,查找该目标特征点匹配的参考特征点:确定该目标特征点的二进制形式的特征描述子中0或1的个数,作为该目标特征点的描述值。基于该目标特征点的特征描述子和描述值以及该目标特征点匹配的目标八叉树,查找该目标特征点匹配的参考特征点。
在另一些可选实施方式中,针对任一八叉树,该八叉树的任一叶节点存储有该叶节点对应的特征点的特征描述子和描述值。该八叉树的任一非叶节点存储有该非叶节点对应的特征汇总信息,该非叶节点对应的特征汇总信息基于该非叶节点下的叶节点所对应的特征点的描述值而确定。
在另一些可选实施方式中,查询模块803可以通过如下方式基于该目标特征点的特征描述子和描述值以及该目标特征点匹配的目标八叉树,查找该目标特征点匹配的参考特征点:针对任一目标八叉树,根据该目标八叉树的非叶节点存储的特征汇总信息以及该目标八叉树的叶节点存储的描述值,从该目标八叉树对应的单位空间中的特征点中,查找与该目标特征点匹配的备选特征点。备选特征点的描述值与该目标特征点的描述值之差小于等于预设差值。基于该目标特征点特征描述子以及每个备选特征点的特征描述子,分别计算该目标特征点与每个所述备选特征点之间的相似度。根据上述相似度确定该目标特征点匹配的参考特征点。
应当理解,上述装置可以预先设置在终端设备或者服务器或者无人驾驶设备中,也可以通过下载等方式而加载到终端设备或者服务器或者无人驾驶设备中。上述装置中的相应模块可以与终端设备或者服务器或者无人驾驶设备中的模块相互配合以实现数据查询方案。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1至图4任一实施例提供的数据存储和数据查询方法。
对应于上述的数据存储方法,本申请实施例还提出了图9所示的根据本申请的一示例性实施例的电子设备的示意结构图。请参考图9,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据存储装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对应于上述的数据查询方法,本申请实施例还提出了图10所示的根据本申请的一示例性实施例的电子设备的示意结构图。请参考图10,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据查询装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (14)
1.一种数据存储方法,其特征在于,所述方法包括:
针对目标三维图像数据,划分多个单位空间;
确定所述目标三维图像数据对应的多个特征点的坐标信息;
基于所述坐标信息,构建每个所述单位空间对应的八叉树,所述单位空间中的特征点与所述单位空间对应的八叉树的叶节点一一对应;
利用所述八叉树,进行数据存储,以存储所述目标三维图像数据对应的特征信息,所述特征信息包括每个所述特征点的特征描述子,其中,所述特征描述子至少根据所述特征点邻域附近的几何信息、颜色信息和纹理信息编码确定。
2.根据权利要求1所述的方法,其特征在于,所述基于所述坐标信息,构建每个所述单位空间对应的八叉树,包括:
基于所述坐标信息,确定每个所述单位空间中的特征点;
针对任一单位空间,基于该单位空间中的特征点构建一个八叉树。
3.根据权利要求2所述的方法,其特征在于,所述利用所述八叉树,进行数据存储,包括:
针对所述目标三维图像数据对应的每个所述特征点,确定该特征点的二进制形式的特征描述子中0或1的个数,作为该特征点的描述值;
针对每个所述单位空间,利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储。
4.根据权利要求3所述的方法,其特征在于,针对任一单位空间,通过如下方式利用该单位空间对应的八叉树,基于该单位空间中每个特征点的特征描述子和描述值,进行数据存储:
针对该单位空间对应的八叉树的每个叶节点,将该叶节点对应的特征点的特征描述子和描述值存储至该叶节点中;
针对该单位空间对应的八叉树的每个非叶节点,将该非叶节点对应的特征汇总信息存储至该非叶节点中,该非叶节点对应的特征汇总信息基于该非叶节点下的叶节点所对应的特征点的描述值而确定。
5.根据权利要求4所述的方法,其特征在于,该非叶节点对应的特征汇总信息为一个二进制序列,该二进制序列中任意的1所对应的位数为该非叶节点下的至少一个叶节点所对应的特征点的描述值。
6.一种数据查询方法,其特征在于,所述方法包括:
确定待查询三维图像数据中的多个目标特征点;
从多个八叉树中查找每个所述目标特征点匹配的目标八叉树;其中,每个所述八叉树针对一个单位空间而构建,所述多个八叉树对应的多个单位空间针对目标三维图像数据而划分,针对任一八叉树,该八叉树对应的单位空间中的特征点与该八叉树的叶节点一一对应;
基于所述目标八叉树,至少根据各目标特征点的特征描述子,从所述目标三维图像数据对应的多个特征点中,查询每个所述目标特征点匹配的参考特征点,其中,所述特征描述子至少根据所述特征点邻域附近的几何信息、颜色信息和纹理信息编码确定。
7.根据权利要求6所述的方法,其特征在于,针对任一目标特征点,通过如下方式从多个八叉树中查找该目标特征点匹配的目标八叉树:
基于所述待查询三维图像数据,估测该目标特征点对应的空间区域;
从所述多个单位空间中查找与所述空间区域有交叠的目标单位空间;
将所述目标单位空间对应的八叉树确定为所述目标八叉树。
8.根据权利要求6所述的方法,其特征在于,针对任一目标特征点,通过如下方式,至少基于该目标特征点匹配的目标八叉树以及该目标特征点的特征描述子,从所述目标三维图像数据对应的多个特征点中,查找该目标特征点匹配的参考特征点:
确定该目标特征点的二进制形式的特征描述子中0或1的个数,作为该目标特征点的描述值;
基于该目标特征点的特征描述子和描述值以及该目标特征点匹配的目标八叉树,查找该目标特征点匹配的参考特征点。
9.根据权利要求8所述的方法,其特征在于,针对任一八叉树,该八叉树的任一叶节点存储有该叶节点对应的特征点的特征描述子和描述值;该八叉树的任一非叶节点存储有该非叶节点对应的特征汇总信息,该非叶节点对应的特征汇总信息基于该非叶节点下的叶节点所对应的特征点的描述值而确定。
10.根据权利要求9所述的方法,其特征在于,所述基于该目标特征点的特征描述子和描述值以及该目标特征点匹配的目标八叉树,查找该目标特征点匹配的参考特征点,包括:
针对任一目标八叉树,根据该目标八叉树的非叶节点存储的特征汇总信息以及该目标八叉树的叶节点存储的描述值,从该目标八叉树对应的单位空间中的特征点中,查找与该目标特征点匹配的备选特征点;所述备选特征点的描述值与该目标特征点的描述值之差小于等于预设差值;
基于该目标特征点特征描述子以及每个所述备选特征点的特征描述子,分别计算该目标特征点与每个所述备选特征点之间的相似度;
根据所述相似度确定该目标特征点匹配的参考特征点。
11.一种数据存储装置,其特征在于,所述装置包括:
划分模块,用于针对目标三维图像数据,划分多个单位空间;
确定模块,用于确定所述目标三维图像数据对应的多个特征点的坐标信息;
构建模块,用于基于所述坐标信息,构建每个所述单位空间对应的八叉树,所述单位空间中的特征点与所述单位空间对应的八叉树的叶节点一一对应;
存储模块,用于利用所述八叉树,进行数据存储,以存储所述目标三维图像数据对应的特征信息,所述特征信息包括每个所述特征点的特征描述子,其中,所述特征描述子至少根据所述特征点邻域附近的几何信息、颜色信息和纹理信息编码确定。
12.一种数据查询装置,其特征在于,所述装置包括:
确定模块,用于确定待查询三维图像数据中的多个目标特征点;
匹配模块,用于从多个八叉树中查找每个所述目标特征点匹配的目标八叉树;其中,每个所述八叉树针对一个单位空间而构建,所述多个八叉树对应的多个单位空间针对目标三维图像数据而划分,针对任一八叉树,该八叉树对应的单位空间中的特征点与该八叉树的叶节点一一对应;
查询模块,用于基于所述目标八叉树,至少根据各目标特征点的特征描述子,从所述目标三维图像数据对应的多个特征点中,查询每个所述目标特征点匹配的参考特征点,其中,所述特征描述子至少根据所述特征点邻域附近的几何信息、颜色信息和纹理信息编码确定。
13.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-10中任一项所述的方法。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910644737.XA CN110413716B (zh) | 2019-07-17 | 2019-07-17 | 数据存储和数据查询方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910644737.XA CN110413716B (zh) | 2019-07-17 | 2019-07-17 | 数据存储和数据查询方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413716A CN110413716A (zh) | 2019-11-05 |
CN110413716B true CN110413716B (zh) | 2021-11-05 |
Family
ID=68361796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910644737.XA Active CN110413716B (zh) | 2019-07-17 | 2019-07-17 | 数据存储和数据查询方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413716B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114022721A (zh) * | 2021-11-23 | 2022-02-08 | 浙江商汤科技开发有限公司 | 图像特征点选取方法及相关装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599108A (zh) * | 2016-11-30 | 2017-04-26 | 浙江大学 | 一种三维环境中多模态环境地图构建方法 |
CN106846425A (zh) * | 2017-01-11 | 2017-06-13 | 东南大学 | 一种基于八叉树的散乱点云压缩方法 |
EP3429211A1 (en) * | 2017-07-13 | 2019-01-16 | Thomson Licensing | A method and apparatus for encoding/decoding the colors of a colored point cloud whose geometry is represented by an octree-based structure |
-
2019
- 2019-07-17 CN CN201910644737.XA patent/CN110413716B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599108A (zh) * | 2016-11-30 | 2017-04-26 | 浙江大学 | 一种三维环境中多模态环境地图构建方法 |
CN106846425A (zh) * | 2017-01-11 | 2017-06-13 | 东南大学 | 一种基于八叉树的散乱点云压缩方法 |
EP3429211A1 (en) * | 2017-07-13 | 2019-01-16 | Thomson Licensing | A method and apparatus for encoding/decoding the colors of a colored point cloud whose geometry is represented by an octree-based structure |
Non-Patent Citations (1)
Title |
---|
嵌入式三维电子地图海量数据外存组织与检索方法研究;徐均;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130315(第03期);第11-33页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110413716A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8798357B2 (en) | Image-based localization | |
CN108256574B (zh) | 机器人定位方法及装置 | |
CN108537876B (zh) | 三维重建方法、装置、设备及存储介质 | |
CN107967457B (zh) | 一种适应视觉特征变化的地点识别与相对定位方法及系统 | |
CN111652934B (zh) | 定位方法及地图构建方法、装置、设备、存储介质 | |
US10269147B2 (en) | Real-time camera position estimation with drift mitigation in incremental structure from motion | |
Sattler et al. | Fast image-based localization using direct 2d-to-3d matching | |
US10269148B2 (en) | Real-time image undistortion for incremental 3D reconstruction | |
CN109658445A (zh) | 网络训练方法、增量建图方法、定位方法、装置及设备 | |
CN112179330A (zh) | 移动设备的位姿确定方法及装置 | |
JP7002574B2 (ja) | 視覚的自己位置推定マップの記憶及びロード方法、装置、システム並びに記憶媒体 | |
JP2020507853A (ja) | 3次元点群の再構成のための方法および装置 | |
CN113223078B (zh) | 标志点的匹配方法、装置、计算机设备和存储介质 | |
CN116255992A (zh) | 一种同时定位与建图的方法和装置 | |
CN111239763A (zh) | 对象的定位方法、装置、存储介质和处理器 | |
CN112417199A (zh) | 遥感影像的检索方法、装置、系统及存储介质 | |
CN111143489A (zh) | 基于图像的定位方法及装置、计算机设备和可读存储介质 | |
CN112950710A (zh) | 位姿确定方法、装置、电子设备和计算机可读存储介质 | |
CN110413716B (zh) | 数据存储和数据查询方法、装置及电子设备 | |
CN110851639A (zh) | 一种以图搜图的方法及设备 | |
CN113592015A (zh) | 定位以及训练特征匹配网络的方法和装置 | |
CN111858785B (zh) | 地图离散型要素的匹配方法、装置、系统及存储介质 | |
CN114674328B (zh) | 地图生成方法、装置、电子设备、存储介质、及车辆 | |
CN114088103B (zh) | 车辆定位信息的确定方法和装置 | |
CN111368860A (zh) | 重定位方法及终端设备 |
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 |