具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
目前,实时三维建图成为一个热门的研究领域,实时三维建图的目的在于能够加强计算机等设备对周围环境的感知和理解,是机器人导航、增强现实、虚拟现实等场景的核心问题。由于受到计算单元的资源限制,使用设备中的计算单元实时三维建图得到的地图存在的问题是分辨率较低,精度不高,并且准确性也不高。因此为了解决前述问题,本发明实施例提供一种信息处理方法,在终端将采集到的环境信息进行三维重建生成三维地图后,利用云处理设备对终端实时生成的三维地图进行处理,将终端生成的低分辨率地图转换为高分辨率的地图,具体的,图1为本发明实施例提供的信息处理方法实施例的流程图,如图1所示,本发明实施例提供的信息处理方法,具体可以包括如下步骤:
101、云处理设备获取终端生成的原始三维地图数据。
在本发明实施例中,终端通过采集设备采集环境信息,获取对应的设备定位和环境三维数据。其中,采集设备包括定位采集设备和三维建图采集设备,可以是立体相机、深度相机等视觉传感器,或者激光雷达传感器等。接着在终端上通过使用slam(simultaneouslocalization and mapping,即时定位和地图构建)定位算法对获取到的定位数据进行计算,得到采集设备的位姿信息,然后,根据位姿信息以及对应的环境三维数据进行重建,得到三维重建数据,即原始三维地图数据。需要说明的是,根据使用的定位设备不同,在本发明实施例中,使用视觉slam或者激光slam算法得到设备位姿信息,且重建得到的三维数据优选使用网格化之前的点云数据。可以理解的是,在本发明实施例中,原始三维地图数据包括位姿信息以及点云数据。
然后,终端将实时生成的三维地图数据发送至云处理设备,使得云处理设备可以接收终端发送的原始三维地图数据。
在本发明实施例中,终端可以由用户进行控制,其目的在于,构建某一个复杂环境的三维地图,例如,商场室内空间地图等。
102、提取原始三维数据中的位姿信息,对原始三维地图数据中的点云数据进行网格化处理,生成与位姿信息对应的第一高分辨率地图。
在一个具体的实现过程中,通过采用插值或逼近数据点所在曲面的方式,重建各点云数据的正确拓扑连接关系,从而得到与原来物体表面拓扑相似的三角网格模型。然后根据预先设置的分辨率,确定网格的大小,得到对应的第一高分辨率地图。
需要说明的是,在本发明实施例中,终端在发送原始三维数据至云处理设备之后或者终端在发送原始三维数据至云处理设备的同时,也会生成一个低分辨率三维地图,而在云处理设备生成的第一高分辨率地图的分辨率和精度高于低分辨率三维地图的分辨率。
103、将第一高分辨率地图发送至终端。
在本发明实施例中,云处理设备可以在生成对应的第一高分辨率地图后立即将第一高分辨率地图发送至终端,也可以按照预先设定的时间间隔将第一高分辨率地图发送至终端。
在本发明实施中,终端还可以设置有显示设备,使得用户可以查看由云处理设备返回的第一高分辨率地图,进而根据相应的内容来控制终端的移动,以及辅助用户判断是否需要重新采集数据,以获得更加精确的数据。
本发明实施例提供的信息处理方法,由云处理设备获取终端生成的原始三维地图数据后,通过提取原始三维地图数据中的位姿信息,并根据位姿信息来对原始三维地图中的点云数据进行网格化处理,生成与位姿信息对应的第一高分辨率地图,然后将第一高分辨率地图发送至终端,由于第一高分辨率地图是在云处理设备中生成的,因此,降低终端处理大量数据带来的计算压力,且,云处理设备的计算还具有精度高,处理速度快特点,一定程度上解决了现有技术中,由于终端受到计算单元的资源限制,处理大规模的三维数据时会比较缓慢,且精度较低的问题。
在前述内容的基础上,进一步地,在本发明实施例中,终端可以自行移动位置,或者用户操控终端移动位置,使得终端在移动过程中,可以采集到不同的环境信息,进而终端可以根据采集到的不同的环境信息对其进行重建,生成至少一个原始三维地图数据,相应的,云处理设备会接收到至少一个原始三维地图数据。由于,终端在移动过程中,位姿信息会发生变化,云处理设备会根据位姿信息的变化对第一高分辨率地图进行处理,具体的,图2为本发明实施例提供的信息处理方法实施例的另一流程图,如图2所示,本发明实施例提供的信息处理方法,还可以包括如下步骤:
104、根据位姿信息的变化,将不同的位姿信息对应的第一高分辨率地图进行拼接,生成第二高分辨率地图。
在本发明实施例中,云处理设备在提取位姿信息后,会对位姿信息进行处理和标注,以确定终端的定位,然后云处理设备将不同位置的第一高分辨率地图进行拼接,形成连续的的地图,即生成第二高分辨率地图。
在本发明实施例中,当云处理设备生成多个第一高分辨率地图后,通过提取每个第一高分辨率地图中的位姿信息,然后将位姿信息中的位姿作为初始位姿,使用ICP迭代算法对第一高分辨率地图中的点云数据进行迭代优化,生成与位姿信息对应的第二高分辨率地图。这里值得一提的是,将原始三维地图中的位姿信息作为云端ICP算法的初始位姿进行优化,可以大大节约云端三维地图构建的时间,提高建图效率。
105、将第二高分辨率地图发送至终端。
进一步地,由于终端的位姿信息会存在一定的误差,因此,根据终端的位姿信息生成的第二高分辨率地图也会存在一定的误差,因此,为了提高高分辨率地图的精确率,在云处理设备向终端发送第二高分辨率地图之前,还可以包括如下步骤,具体的,图3为本发明实施例提供的信息处理方法实施例的另一流程图,如图3所示,本发明实施例提供的信息处理方法,在步骤105之前,还可以包括如下步骤:
106、对第二高分辨率地图进行优化处理。
在本发明实施例中,对第一高分辨率地图进行拼接的过程中,会存在一定的误差,误差不断的积累会产生较大的累计误差,因此,可以建立约束关系,通过非线性优化降低累计误差的影响,得到更高精度的三维地图。例如,在一个具体的实现过程中,可以使用回环检测来降低三维建图过程中的累计误差。例如,当对第一高分辨率地图进行拼接形成第二高分辨率地图的过程中,产生了重叠部分,则去除第二高分辨率地图的重叠部分。
相应的,步骤105被执行为:“将处理后的第二高分辨率地图发送至终端”。
在本发明实施例中,当需要建立大规模的三维地图时,可能会需要至少两个终端来采集环境信息,然后对每个终端的数据分别进行处理、拼接等,得到大规模的三维地图,具体的,图4为本发明实施例提供的信息处理方法实施例的另一流程图,如图4所示,本发明实施例提供的信息处理方法,具体可以包括如下步骤:
201、获取每个终端生成的原始三维地图数据。
在本发明实施例中,每个终端分别独立的采集环境信息,然后,分别进行定位重建,获得各自的原始三维地图数据,然后各自发送相应的原始三维地图数据至云处理设备。
另外,在本发明实施例中,当多个终端共同来完成一个较大规模的三维地图重建时,预先标定每个终端之间的位姿关系,终端在移动过中实时计算各自的位姿,使得云处理设备在提取位姿信息时,能够计算得到各个终端之间的相对位置。在一个具体的实现过程中,建立一个全局坐标系,在采集环境信息之前,首先标定各个终端的本体坐标系与全局坐标系之间的关系,然后实时的计算各个终端在全局坐标系下的位置,在重建原始三维地图数据的过程中,终端可以根据全局坐标系的坐标来进行重建。
在本发明实施例中,云处理设备分别接收每个终端发送的原始三维地图数据。
202、提取每个原始三维地图数据中的位姿信息,分别对原始三维地图数据中的点云数据进行处理,分别生成与位姿信息对应的第一高分辨率地图。
在本发明实施例中,由于对原始三维地图数据进行处理生成第一高分辨率地图需要较大的计算量,因此,为了加快计算速度,可以使用GPU(Graphics Processing Unit,图形处理单元)来进行计算。也可以建立不同的线程,并行计算。
当云处理设备接收到多个原始三维地图数据时,分别提取每个原始三维地图数据中的位姿信息,然后,分别对每个原始三维地图数据中的点云数据进行处理,分别生成第一高分辨率地图。
203、根据不同的位姿信息之间的相对位置关系,将不同的位姿信息对应的第一高分辨率地图进行拼接,生成第三高分辨率地图。
由于前述内容中提及,预先建立了全局坐标系,那么每生成一个第一高分辨率地图,都可以得到在全局坐标系中,该第一高分辨率地图的位置。因此,当生成了多个第一高分辨率地图后,就可以根据全局坐标系,将多个第一高分辨率地图进行拼接,得到第三高分辨率地图。
优选的,当多个第一高分辨率地图存在重合的情况时,可以建立约束关系进行非线性优化,降低各个设备定位过程中的累积误差,提高三维建图精度,且去除重合的区域,例如,使用回环检测算法来对第三高分辨率地图进行优化,提高三维地图精度,去除重合的区域。
204、将第三高分辨率地图发送至终端。
在本发明实施例中,终端在收到第三高分辨率地图后,终端可以自行根据第三高分辨率地图来修复自身生成的低分辨率三维地图,将分辨率较低的低分辨率三维地图修正为分辨率较高的第三高分辨率地图。终端也可以删除自身生成的低分辨率三维地图,直接使用接收到的第三高分辨率地图。
为了实现前述内容的方法流程,本发明实施例还提供一种信息处理系统,图5为本发明实施例提供的信息处理系统实施例的结构示意图,如图5所示,本实施例的系统可以包括:获取单元11、处理单元12和发送单元13。
获取单元11,用于获取终端生成的原始三维地图数据。
处理单元12,用于提取原始三维数据中的位姿信息,对原始三维地图数据进行网格化处理,生成与位姿信息对应的第一高分辨率地图;
发送单元13,用于将第一高分辨率地图发送至终端。
图6为本发明实施例提供的信息处理系统实施例的另一结构示意图,如图6所示,本实施例的系统在前述内容的基础上,还可以包括:拼接单元14。
拼接单元14,用于根据位姿信息的变化,将不同的位姿信息对应的第一高分辨率地图进行拼接,生成第二高分辨率地图。
发送单元13,还用于将第二高分辨率地图发送至终端。
图7为本发明实施例提供的信息处理系统实施例的另一结构示意图,如图7所示,本实施例的系统在前述内容的基础上,还可以包括:优化单元15。
优化单元15,用于对第二高分辨率地图进行优化处理。
发送单元13,还用于:
将处理后的第二高分辨率地图发送至终端。
在一个具体的实现过程中,,终端至少有两个;
获取单元11,具体用于:
获取每个终端生成的原始三维地图数据;
提取单元12,具体用于:
提取每个原始三维地图数据中的位姿信息,分别对述原始三维地图数据进行处理,分别生成与位姿信息对应的第一高分辨率地图。
拼接单元14,还用于:
根据不同的位姿信息之间的相对位置关系,将不同的位姿信息对应的第一高分辨率地图进行拼接,生成第三高分辨率地图;
发送单元13,还用于:
将第三高分辨率地图发送至终端。
本实施例的系统,可以用于执行图1~图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
为了实现前述内容的方法流程,本发明实施例还提供一种云处理设备,图8为本发明实施例提供的云处理设备实施例的结构示意图,如图8所示,本发明实施例提供的云处理设备包括处理器21以及存储器22;存储器22用于存储指令,指令被处理器21执行时,使得设备执行如前述内容中任一种方法。
本发明实施例提供的云处理设备,可以用于执行图1~图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
为了实现前述内容的方法流程,本发明实施例还提供一种计算机程序产品,可直接加载到计算机的内部存储器中,并含有软件代码,计算机程序经由计算机载入并执行后能够实现如前述内容中任一种方法。
本发明实施例提供的计算机程序产品,可以用于执行图1~图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到至少两个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。