CN110415328B - 三维场景图生成方法、装置和机器人 - Google Patents

三维场景图生成方法、装置和机器人 Download PDF

Info

Publication number
CN110415328B
CN110415328B CN201810388212.XA CN201810388212A CN110415328B CN 110415328 B CN110415328 B CN 110415328B CN 201810388212 A CN201810388212 A CN 201810388212A CN 110415328 B CN110415328 B CN 110415328B
Authority
CN
China
Prior art keywords
data
frame
sequence
data frame
radar
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
Application number
CN201810388212.XA
Other languages
English (en)
Other versions
CN110415328A (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.)
Tsinghua University
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tsinghua University
Tencent Technology Shenzhen 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 Tsinghua University, Tencent Technology Shenzhen Co Ltd filed Critical Tsinghua University
Priority to CN201810388212.XA priority Critical patent/CN110415328B/zh
Publication of CN110415328A publication Critical patent/CN110415328A/zh
Application granted granted Critical
Publication of CN110415328B publication Critical patent/CN110415328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0251Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0257Control of position or course in two dimensions specially adapted to land vehicles using a radar
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0276Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle
    • G05D1/0285Control of position or course in two dimensions specially adapted to land vehicles using signals provided by a source external to the vehicle using signals transmitted via a public communication network, e.g. GSM network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/08Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Electromagnetism (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Manipulator (AREA)

Abstract

本发明涉及一种三维场景图生成方法、装置和机器人,该方法包括:获取三维场景的深度图像帧序列和雷达数据帧序列;将所述深度图像帧序列和所述雷达数据帧序列同步,得到同步数据帧序列;确定所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据;根据所述同步数据帧序列和所述相对位姿数据,创建多个三维子场景;将所述多个三维子场景融合为三维场景图。本申请方案根据同步数据帧中的图像颜色数据、图像深度数据和三维场景的雷达数据,提高了确定同步数据帧的位姿数据的准确性。

Description

三维场景图生成方法、装置和机器人
技术领域
本发明涉及计算机技术领域,特别是涉及一种三维场景图生成方法、装置和机器人。
背景技术
随着计算技术的飞速发展,图像处理技术也加快了发展的步伐。在图像处理技术领域中,有时需要对场景数据进行采集,根据采集到的场景数据生成三维场景图。
然而,在传统的三维场景图的生成过程中,必须要保证采集的相邻的图像中有较大的重合部分,根据重合部分将相邻的图像融合生成三维场景图。若相邻两张中的重合部分较小,很难将相邻的图像准确的融合,会导致生成三维场景图的准确率较低。
发明内容
基于此,有必要针对传统方法通常会造成生成三维场景图的准确率较低的问题,提供一种三维场景图生成方法、装置、机器人和存储介质。
一种三维场景图生成方法,所述方法包括:
获取三维场景的深度图像帧序列和雷达数据帧序列;
将所述深度图像帧序列和所述雷达数据帧序列同步,得到同步数据帧序列;
确定所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据;
根据所述同步数据帧序列和所述相对位姿数据,创建多个三维子场景;
将所述多个三维子场景融合为三维场景图。
一种三维场景图生成装置,所述装置包括:
数据获取模块,用于获取三维场景的深度图像帧序列和雷达数据帧序列;
数据同步模块,用于将所述深度图像帧序列和所述雷达数据帧序列同步,得到同步数据帧序列;
位姿确定模块,用于确定所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据;
场景创建模块,用于根据所述同步数据帧序列和所述相对位姿数据,创建多个三维子场景;
场景融合模块,用于将所述多个三维子场景融合为三维场景图。
一种机器人,包括深度相机、雷达传感器、行走装置、存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
获取三维场景的深度图像帧序列和雷达数据帧序列;
将所述深度图像帧序列和所述雷达数据帧序列同步,得到同步数据帧序列;
确定所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据;
根据所述同步数据帧序列和所述相对位姿数据,创建多个三维子场景;
将所述多个三维子场景融合为三维场景图。
一种存储有计算机程序的存储介质,所述计算机程序被处理器执行时,使得处理器执行如下步骤:
获取三维场景的深度图像帧序列和雷达数据帧序列;
将所述深度图像帧序列和所述雷达数据帧序列同步,得到同步数据帧序列;
确定所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据;
根据所述同步数据帧序列和所述相对位姿数据,创建多个三维子场景;
将所述多个三维子场景融合为三维场景图。
上述三维场景图生成方法、装置、机器人和存储介质,在获取三维场景的深度图像帧序列和雷达数据帧序列后,对深度图像帧序列和雷达数据帧序进行同步,得到同步数据帧序列,使得同步数据帧序列中的同步数据帧包括图像颜色数据、图像深度数据和三维场景的雷达数据。根据同步数据帧中的图像颜色数据、图像深度数据和三维场景的雷达数据,确定相邻同步数据帧之间的相对位姿数据,提高了确定同步数据帧的位姿数据的准确性。根据同步数据帧序列和位姿数据构建三维子场景,根据构建的三维子场景融合成三维场景图,提高了生成的三维场景图的准确性。
附图说明
图1为一个实施例中三维场景图生成方法的应用场景图;
图2为一个实施例中三维场景图生成方法的流程示意图;
图3为一个实施例中采集帧序列的步骤的流程示意图;
图4为一个实施例中帧序列同步的步骤的流程示意图;
图5为一个实施例中对帧序列进行降采样的步骤的流程示意图;
图6为一个实施例中生成相对位姿数据的步骤的流程示意图;
图7为一个实施例中创建三维子场景的步骤的流程示意图;
图8为一个实施例中根据位姿数据构建体素的步骤的流程示意图;
图9为一实施例中对帧序列进行同步的原理示意图;
图10a为另一个实施例中生成三维场景图的流程示意图;
图10b为再一个实施例中生成三维场景图的流程示意图;
图11为一个实施例中三维场景图生成装置的框图;
图12为一个实施例中数据同步模块的框图;
图13为一个实施例中计算机设备的内部结构示意图;
图14为一个实施例中机器人的内部结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中三维场景图生成方法的应用场景图。参照图1,该应用场景中包括机器人110和终端120。机器人110与终端120通过网络连接。机器人110中安装有深度相机和雷达传感器,深度相机用于采集三维场景中的深度图像数据,雷达传感器用于采集三维场景中的雷达数据,雷达传感器可以是激光雷达传感器。终端120具体可以是台式终端或移动终端,移动终端具体可以是手机、平板电脑、笔记本电脑等中的至少一种。
如图2所示,在一个实施例中,提供一种三维场景图生成方法。三维场景图生成方法可以应用于上述图1中的机器人110,也可以应用于上述图1中的终端120。本实施例主要以该方法应用于上述图1中的机器人110来举例说明。参照图2,该三维场景图生成方法,具体包括以下步骤:
S202,获取三维场景的深度图像帧序列和雷达数据帧序列。
其中,深度图像帧序列由若干个深度图像帧按照一定顺序排列得到的帧序列;深度图像帧为包括颜色数据和深度数据的数据帧;深度图像帧通过深度相机对场景进行图像拍摄得到。雷达数据帧序列由若干个雷达数据帧按照一定顺序排列得到的帧序列;雷达数据帧为包括雷达数据的数据帧;雷达数据帧通过雷达传感器对场景扫描得到。按照一定顺序可以是按照深度图像帧或雷达数据帧中的时间戳顺序或帧采集时间顺序。雷达数据帧可以是激光雷达数据帧。
具体地,机器人获取场景数据采集指令,根据场景数据采集指令通过深度相机采集当前三维场景中的深度图像数据,根据采集到的深度图像数据得到深度图像帧,将得到的深度图像帧排列存储得到深度图像帧序列。同时,机器人根据场景数据采集指令通过雷达传感器采集当前三维场景中的雷达数据,根据采集到的雷达数据得到雷达数据帧,将得到的雷达数据帧排列存储得到雷达数据帧序列。
在一个实施例中,机器人获取到场景数据采集指令后,根据场景数据采集指令生成深度相机开启指令和雷达传感器开启指令。机器人将深度相机开启指令发送至深度相机,通过深度相机开启指令开启深度相机,并控制深度相机按照预设相机采集频率采集深度图像数据,以每次采集到深度图像数据作为一帧,并记录每次采集时间,根据每次采集时间生成每一深度图像帧的时间戳,按照时间戳顺序对深度图像帧进行排列存储得到深度图像帧序列。机器人将雷达传感器开启指令发送至雷达传感器,通过雷达传感器开启指令开启雷达传感器,并控制雷达传感器按照预设雷达频率采集雷达数据,以每次采集到的雷达数据作为一帧,并记录每次采集时间,根据每次采集时间生成每一雷达数据帧的时间戳,按照时间戳顺序对雷达数据帧排列得到雷达数据帧序列。
在另一实施例中,机器人在获取到深度图像帧序列和雷达数据帧序列后,通过网络将深度图像帧序列和雷达数据帧序列发送至终端。终端接收机器人发送的深度图像帧序列和雷达数据帧序列。
S204,将深度图像帧序列和雷达数据帧序列同步,得到同步数据帧序列。
其中,同步数据帧序列由若干个同步数据帧按照顺序排列生成的帧序列。同步数据帧包括深度图像帧和雷达数据帧,且深度图像帧中的时间戳与雷达数据帧中的时间戳相匹配。按照顺序可以是按照时间戳顺序。
具体地,机器人在获取到深度图像帧序列和雷达数据帧序列后,读取深度图像帧序列中各深度图像帧中的时间戳和雷达数据帧序列中各雷达数据帧的时间戳。机器人计算读取到深度图像帧的时间戳对应的时刻与读取到的雷达数据帧的时间戳对应的时刻之间的时间差,确定最小时间差对应的深度图像帧和雷达数据帧,将确定的深度图像帧和雷达数据帧合并生成同步数据帧。机器人在剩下的深度图像帧和雷达数据帧中再次提取最小时间差对应的深度图像帧和雷达数据帧,将再次提取到深度图像帧和雷达数据帧合并生成同步数据帧,直至深度图像帧和雷达数据帧中至少一种被提取完毕,生成多个同步数据帧,根据多个同步数据帧生成同步数据帧序列。
在一个实施例中,在提取最小时间差对应的深度图像帧和雷达数据帧后,机器人将提取到的深度图像帧中的深度图像数据和提取到的雷达数据帧中的雷达数据合并得到同步数据帧,根据提取到的深度图像帧和雷达数据帧中的至少一种的时间戳,确定同步数据帧的时间戳。
举例说明,机器人在生成同步数据帧后,可以提取到的深度图像帧或雷达数据帧中的时间戳添加到同步数据帧中,作为同步数据帧的时间戳。
S206,确定同步数据帧序列中相邻同步数据帧之间的相对位姿数据。
其中,位姿数据用于表示机器人在采集深度图像和雷达数据时的位置和姿势的数据;相对位姿数据为用于表示机器人相对于前一次采集深度图像和雷达数据时,当前采集深度图像和雷达数据时机器人的位置和姿势变化数据。位姿数据包括三维坐标数据、偏航角、俯仰角和滚转角中的至少一种。
具体地,机器人按照排列顺序从前往后从同步数据帧序列中读取同步数据帧,判断读取到的同步数据帧之前是否存在同步数据帧,若不存在,则将读取到的同步数据帧的姿态数据设置为0。若读取到的同步数据帧之前存在同步数据帧存在,机器人获取前一同步数据帧,确定读取到的同步数据帧与前一同步数据帧中对应点,根据对应点的深度图像数据和雷达数据确定读取到的同步数据帧相对于前一同步数据帧的位姿变化数据,以确定的位姿变化数据作为读取到的同步数据帧的相对姿态数据,从而得到同步数据帧序列中每一同步数据帧序列相对于前一同步数据帧序列的相对位姿数据。
在一个实施例中,机器人也可以按照排列顺序从后往前读取同步数据帧序列中的同步数据帧,判断读取到同步数据帧之后是否存在同步数据帧,若不存在,则机器人将读取到的同步数据帧的姿态数据设置为0。若读取到同步数据帧之后存在同步数据帧,则机器人获取后一同步数据帧,确定读取到的同步数据帧与后一同步数据帧中的对应点,根据对应点的深度图像数据和雷达数据确定读取到的同步数据帧相对于后一同步数据帧的位姿变化数据,以确定的位姿变化数据作为读取到的同步数据帧的相对姿态数据。
在一个实施例中,S206具体还包括以下内容:遍历同步数据帧序列中的同步数据帧;获取遍历的当前同步数据帧的前一同步数据帧;确定当前同步数据帧相对于前一同步数据帧的相对位姿数据。
具体地,机器人按照由前到后的顺序遍历同步数据帧序列中的同步数据帧,获取当前同步数据帧的前一同步数据帧,根据当前同步数据帧和前一同步数据帧中的多个对应点,确定当前同步数据帧相对于前一同步数据帧的相对位姿数据。其中,机器人将当前同步数据帧中的点按照相对位姿数据经过位姿变换,使得当前同步数据帧与前一同步数据帧中的对应点相匹配。
S208,根据同步数据帧序列和相对位姿数据,创建多个三维子场景。
其中,三维子场景为三维场景图中的部分场景图像,相邻的三维子场景中存在重合区域或对应点。
具体地,机器人按照排列顺序从同步数据帧序列中读取同步数据帧,获取前一同步数据帧的姿态数据或后一同步数据帧的姿态数据,根据获取到的姿态数据和相对姿态数据确定读取到的同步数据帧的姿态数据,根据读取到的同步数据帧和确定的姿态数据构建多个三维子场景。
在一个实施例中,机器人从读取到的同步数据帧中提取颜色数据和深度数据,根据确定的姿态数据、提取到的像素颜色数据和像素深度数据构建三维子场景,当读取的同步数据帧的数量超过预设数量时,构建下一三维子场景,直至同步数据帧序列中的同步数据帧被读取完毕。
在一个实施例中,机器人将同步数据帧序列分割成多个同步数据帧子序列,依次根据每个同步数据帧子序列创建三维子场景,得到每个同步数据帧子序列对应的三维子场景。
S210,将多个三维子场景融合为三维场景图。
具体地,机器人依次创建的多个三维子场景后,确定相邻的三维子场景中的重合区域,将相邻的三维子场景中的重合区域重叠,通过对相邻的三维子场景中的重合区域的重叠融合得到三维场景图。
在一个实施例中,机器人确定相邻两个三维子场景中的重合区域后,根据重合区域相邻两个三维子场景中的对应点的颜色数据、深度数据和雷达数据,确定相邻两个三维子场景的相对位姿数据,根据相邻两个三维子场景的相对位姿数据对三维子场景进行融合,通过融合得到三维场景图。其中,相对位姿数据可以用位姿图来表示。
本实施例中,在获取三维场景的深度图像帧序列和雷达数据帧序列后,对深度图像帧序列和雷达数据帧序进行同步,得到同步数据帧序列,使得同步数据帧序列中的同步数据帧包括图像颜色数据、图像深度数据和三维场景的雷达数据。根据同步数据帧中的图像颜色数据、图像深度数据和三维场景的雷达数据,确定相邻同步数据帧之间的相对位姿数据,提高了确定同步数据帧的位姿数据的准确性。根据同步数据帧序列和位姿数据构建三维子场景,根据构建的三维子场景融合成三维场景图,提高了生成的三维场景图的准确性。
如图3所示,在一个实施例中,S202具体还包括采集帧序列的步骤,该步骤具体包括以下内容:
S302,接收数据采集指令。
其中,数据采集指令为用于指示机器人通过深度相机和雷达传感器采集场景数据的指令。
具体地,机器人上设置有数据采集按钮,机器人在检测到数据采集按钮被点击时,触发数据采集指令。
在一个实施例中,机器人有相匹配的遥控器。遥控器中设置有数据采集按钮,遥控器检测到数据采集按钮被点击时,触发数据采集指令,将数据采集指令发送至机器人。机器人接收遥控器发送的数据采集指令。
在一个实施例中,机器人与终端通过网络连接。终端中安装有用于控制机器人的应用,终端展示应用的操作页面,在检测到操作页面中的数据采集按钮被点击时,触发数据采集指令,通过网络将数据采集指令发送至机器人。机器人接收终端发送的数据采集指令。
S304,根据数据采集指令触发机器人行走指令;机器人行走指令用于指示机器人按照指定轨迹移动。
具体地,机器人在接收到数据采集指令时,触发机器人行走指令,通过机器人行走指令指示机器人按照指定轨迹移动。
其中,指定轨迹为机器人行走指令指示机器人行走的路径。指定轨迹具体可以在场景中进行旋转移动的轨迹,还可以是沿着场景的边界进行移动的轨迹。
S306,在机器人按照指定轨迹移动时,通过机器人的深度相机和雷达传感器分别采集深度图像帧序列和雷达数据帧序列。
具体地,机器人在根据数据采集指令触发机器人行走指令时,触发深度相机和雷达传感器的开启指令,在机器人按照指定轨迹移动的同时,深度相机和雷达传感器按照各自的采集频率采集场景中深度图像帧和雷达数据帧,根据采集到的深度图像帧和雷达数据帧得到深度图像帧序列和雷达数据帧序列。
本实施例中,机器人在按照指令轨迹移动时,通过机器人的深度相机和雷达传感器分别采集深度图像帧序列和雷达数据帧序列,按照指定轨迹移动,提高了对场景的深度图像和雷达数据的采集全面性,从而保证所构建的三维场景图的准确性。
如图4所示,在一个实施例中,S204具体还包括帧序列同步的步骤,该步骤具体包括以下内容:
S402,获取深度图像帧序列和雷达数据帧序列各自的帧频率。
其中,深度图像帧序列的帧频率和雷达数据帧序列的帧频率不相同。帧频率为帧序列中单位时间内包括帧的数量。
具体地,机器人在获取深度图像帧序列和雷达数据帧序列后,对于深度图像帧序列和雷达数据帧序列,分别提取深度图像帧序列和雷达数据帧序列中的第一帧和最后一帧的时间戳,确定时间戳对应的第一帧的采集时刻和最后一帧的采集时刻,根据第一帧的采集时刻和最后一帧的采集时刻确定帧序列采集时长。机器人分别统计深度图像帧序列中的深度图像帧数和雷达数据帧序列中的雷达数据帧数,将深度图像帧数除以深度图像帧序列的帧序列采集时长得到深度图像帧序列的帧频率;将雷达数据帧数除以雷达数据帧序列的帧序列采集时长得到雷达数据帧序列的帧频率。
举例说明,若深度图像帧序列中的帧序列采集时长为5秒,且深度图像帧序列中深度图像帧数为150帧,则深度图像帧序列的帧频率=150/5=30赫兹。若雷达数据帧序列中的帧序列采集时长为5秒,且雷达数据帧序列中雷达数据帧数为75,则雷达数据帧序列的帧频率=75/5=15赫兹。
S404,按照获取的帧频率,调整深度图像帧序列和雷达数据帧序列中至少一种,得到帧频率相同的深度图像帧序列和雷达数据帧序列。
具体地,机器人根据深度图像帧序列的帧频率和雷达数据帧序列的帧频率计算平均帧频率,将深度图像帧序列和雷达数据帧序列进行调整,通过调整使得深度图像帧序列的帧频率和雷达数据帧序列的帧频率的等于平均帧频率,得到帧频率等于平均帧频率的深度图像帧序列和雷达数据帧序列。
在一个实施例,机器人确定深度图像帧序列和雷达数据帧序列中较小帧频率对应的帧序列和较大帧频率对应的帧序列,对较小帧频率对应的帧序列进行插帧处理,通过插帧使得较小帧频率对应的帧序列的帧频率与较大的帧频率相同。
举例说明,若机器人确定较低帧频率对应的帧序列为雷达数据帧序列,较高帧频率对应的帧序列为深度图像帧序列,则在根据雷达数据帧序列中相邻两个雷达数据帧计算该两个雷达数据帧之间的插入帧,将计算得到的插入帧插入到相邻雷达数据帧之间,使得经过插入处理后的雷达数据帧序列的帧频率与深度图像帧序列的帧频率相同。
S406,将帧频率相同的深度图像帧序列和雷达数据帧序列进行同步,得到同步数据帧序列。
具体地,机器人在得到帧频率相同的深度图像帧序列和雷达数据帧序列后,分别从深度图像帧序列和雷达数据帧序列中提取时间戳相匹配的深度图像帧和雷达数据帧,根据提取到的深度图像帧和雷达数据帧生成同步数据帧,根据生成的同步数据帧得到同步数据帧序列。
在一个实施例中,S406具体还包括以下内容:从帧频率相同的深度图像帧序列和雷达数据帧序列中,分别提取时间戳匹配的深度图像帧和雷达数据帧;根据提取到的时间戳匹配的深度图像帧和雷达数据帧生成同步数据帧;将生成的同步数据帧按照相应的时间戳构成同步数据帧序列。
具体地,机器人从帧频率相同的深度图像帧序列和雷达数据帧序列中,分别提取时间戳匹配的深度图像帧和雷达数据帧,分别提取深度图像帧中颜色数据、深度数据和雷达数据帧的雷达数据作为同步数据生成同步数据帧,并根据匹配的时间戳确定同步数据帧的时间戳,按照时间戳顺序对同步数据帧排列生成同步数据帧序列。
在一个实施例中,机器人提取深度图像帧序列和雷达数据帧序列中的时间戳,确定时间戳相同的深度图像帧和雷达数据帧,根据确定的深度图像帧和雷达数据帧生成同步数据帧,按照时间戳顺序对同步数据帧排列得到同步数据帧序列。
举例说明,机器人提取深度图像帧序列和雷达数据帧序列中每一帧的时间戳,确定时间戳对应的时刻为t时刻对应的深度图像帧和雷达数据帧,根据t时刻对应的深度图像帧和雷达数据帧生成t时刻对应的同步数据帧,根据各时刻对应的同步数据帧得到同步数据帧序列。
本实施例中,根据深度图像帧序列和雷达数据帧序列各自的帧频率,对深度图像帧序列和雷达数据帧序列进行同步,得到帧频率相同的深度图像帧序列和雷达数据帧序列,保证根据帧频率频率相同的深度图像帧序列和雷达数据帧序列得到的同步数据帧序列的准确性,提高了确定相对位姿数据的准确性。
如图5所示,在一个实施例中,S404具体还包括对帧序列进行降采样的步骤,该步骤具体包括以下内容:
S502,从获取到的帧频率中分别确定较小和较大的帧频率。
具体地,机器人在获取到深度图像帧序列和雷达数据帧序列的帧频率后,将获取到帧频率进行比较,通过比较确定较小的帧频率和较大的帧频率。
S504,按照较小的帧频率,对深度图像帧序列和雷达数据帧序列中具有较大的帧频率的帧序列进行降采样。
具体地,机器人确定较大的帧频率对应的帧序列,对较大的帧频率对应的帧序列进行降采样,使得降采样后的帧序列的帧频率与较小的帧频率相同。
在一个实施例中,若雷达数据帧序列的帧频率较小,深度图像帧序列的帧频率较大,机器人对深度图像帧序列中的深度图像帧进行删除,直至删除深度图像帧的深度图像帧序列的帧频率与雷达数据帧序列的帧频率相同。若深度图像帧序列的帧频率较小,雷达数据帧序列的帧频率较大,机器人对雷达数据帧序列中的雷达数据帧进行删除,直至删除雷达数据帧的雷达数据帧序列的帧频率与深度图像帧序列的帧频率相同。
举例说明,机器人遍历深度图像帧序列中深度图像帧,机器人在深度图像帧序列中确定相邻的三个深度图像帧,将中间的深度图像帧删除,直至删除深度图像帧序列的帧频率与雷达数据帧序列的帧频率相同。其中,机器人还可以按照预设帧数量间隔删除深度图像帧。
S506,将降采样后确定的深度图像帧序列与雷达数据帧序列进行同步,得到同步数据帧序列。
具体地,机器人提取降采样后确定的深度图像帧序列和雷达数据帧序列中提取每一帧的时间戳,确定提取到的每一时间戳对应的时刻,每次从降采样后确定的深度图像帧序列和雷达数据帧序列中,提取一对时刻差最小的时间戳所对应的深度图像帧和雷达数据帧,将提取到的深度图像帧和雷达数据帧合并生成同步数据帧。机器人根据提取到的深度图像帧和雷达数据帧的时间戳对应的两个时刻之间的中间时刻,生成同步数据帧的时间戳,从而得到多个同步数据帧,根据多个同步数据帧按照时间戳顺序排列生成同步数据帧序列。
本实施例中,按照较小的帧频率,对深度图像帧序列和雷达数据帧序列中具有较大的帧频率的帧序列进行降采样,在保证深度图像帧序列和雷达数据帧序列准确的情况下,提高了同步数据帧序列的生成效率。
如图6所示,在一个实施例中,S206具体还包括生成相对位姿数据的步骤,该步骤包括以下内容:
S602,确定同步数据帧序列中相邻同步数据帧之间的对应点。
具体地,机器人在遍历到同步数据帧序列中的当前同步数据帧时,获取前一同步数据帧,将当前同步数据帧与前一同步数据帧进行匹配,通过匹配确定当前同步数据帧与前一同步数据帧之间的对应点。
在一个实施例中,机器人在遍历到同步数据帧序列中的当前同步数据帧时,获取前一同步数据帧,从当前同步数据帧中提取当前颜色数据帧、当前深度数据帧和当前雷达数据帧,从前一同步数据帧中提取前一颜色数据帧、前一深度数据帧和前一雷达数据帧。机器人将当前颜色数据帧与前一颜色数据帧匹配,确定颜色对应点;将当前深度数据帧与前一深度数据帧匹配,确定深度对应点;将当前雷达数据帧与前一雷达数据帧匹配,确定雷达对应点。
S604,基于对应点分别构建颜色代价函数、深度代价函数和雷达代价函数。
具体地,机器人根据当前颜色数据帧与前一颜色数据帧之间的相对位姿数据和颜色对应点的颜色数据,构建得到颜色代价函数。机器人根据当前深度数据帧与前一颜色数据帧之间的相对位姿数据和深度对应点的深度数据,构建得到深度代价函数。机器人根据当前雷达数据帧与前一雷达数据帧之间的相对位姿数据和雷达对应点的雷达数据,构建得到雷达代价函数。其中,当前颜色数据帧与前一颜色数据帧之间的相对位姿数据,与当前深度数据帧与前一颜色数据帧之间的相对位姿数据可以相同。
S606,根据颜色代价函数、深度代价函数和雷达代价函数,生成同步数据帧序列中相邻同步数据帧之间的相对位姿数据。
具体地,机器人根据颜色代价函数、深度代价函数和雷达代价函数构建同步数据代价函数,计算满足同步数据代价函数值最小时的当前颜色数据帧与前一颜色数据帧之间的相对位姿数据、当前深度数据帧与前一颜色数据帧之间的相对位姿数据和当前雷达数据帧与前一雷达数据帧之间的相对位姿数据。机器人根据计算得到的相对位姿数据得到当前同步数据帧与前一同步数据帧的相对位姿数据,从而得到同步数据帧序列中相邻同步数据帧之间的相对位姿数据。
本实施例中,根据相邻同步数据帧之间的对应点分别构建颜色代价函数、深度代价函数和雷达代价函数,根据构建的颜色代价函数、深度代价函数和雷达代价函数计算相邻同步数据帧之间的相对位姿数据,保证了计算得到的相对位姿数据的准确性。
在一个实施例中,S606具体包括以下内容:按照以下公式计算同步数据帧序列中相邻同步数据帧之间的相对位姿数据:
argminE(Tt DW)=ED(Tt DW)+ωcEC(Tt DW)+ωlEL(Tt LP)
其中,t表示时间戳为t时刻,Tt DW表示在t时刻的同步数据帧与t-1时刻同步数据帧之间从图像坐标系D映射到世界坐标系W的相对位姿数据,Tt LP表示t时刻的同步数据帧与t-1时刻同步数据帧之间从雷达坐标系L映射到二维坐标系P的相对位姿数据,argminE表示t时刻的同步数据帧与t-1时刻同步数据帧之间最小的同步数据代价函数,ED表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的深度数据构建的深度代价函数,EC表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的颜色数据构建的颜色代价函数,EL表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的雷达数据构建的雷达代价函数,ωc为颜色代价函数的权重系数,ωl为雷达代价函数的权重系数。
具体地,ωc和ωl为已知的,图像坐标系D为深度相机对应的坐标系,雷达坐标系L为雷达传感器对应的坐标系,通过构建上述同步数据代价函数,求取Tt DW和Tt LP,根据Tt DW和Tt LP确定t时刻的同步数据帧相对于t-1时刻的相对位姿数据。
在一个实施例中,按照以下公式构建深度代价函数ED(Tt DW)、颜色代价函数EC(Tt DW)和雷达代价函数EL(Tt LP):
其中,KD表示相邻同步数据帧中基于深度数据的对应点集合,与/>为基于相邻同步数据帧中深度数据d的对应点p和q,p为基于深度数据d映射到世界坐标系W中的点,q为基于深度数据d映射到图像坐标中的点,/>表示p点所在世界坐标系W中的法向量,/>表示运动合成算子,表示将一个点从一个坐标系转换到另一坐标的的运算,/>表示将在深度图像坐标系D中基于深度数据d的q点,通过t时刻与t-1时刻深度坐标系D到世界坐标系W的相对位姿数据,转换到世界坐标系W中;故ED(Tt DW)等于t-1时刻和t时刻的相邻同步数据帧中基于深度数据的两个对应点p和q在世界坐标系W中位姿数据差的平方和。
Ct'-1(x)表示时间戳为t-1时刻的同步数据帧中像素点x的颜色数据,C(τ(x,Tt DW)表示时间戳为t时刻的同步数据帧中与像素点x对应的像素点τ(x,Tt DW)的颜色数据,τ为在t时刻的同步数据帧中查找与t-1时刻的基于颜色数据的像素点x的对应点的函数;EC(Tt DW)等于在t时刻与t-1时刻的两个相邻同步数据帧中基于颜色数据的两对应点Ct'-1(x)和C(τ(x,Tt DW)在世界坐标系中位姿数据差的平方和。
KL表示相邻同步数据帧中基于雷达数据的对应点集合,与/>为基于相邻同步数据帧中雷达数据的对应点p和q,p为t-1时刻的同步数据帧中基于雷达数据l映射到二维坐标系P中的点,q为t时刻的同步数据帧中基于雷达数据l映射在雷达坐标系中的点,/>表示p点所在二维坐标系P中的法向量,/>表示将基于雷达数据的映射在图像坐标系中的q点,通过图像坐标系D与雷达坐标系L的位姿转换关系TDL和t时刻相对于t-1时刻雷达坐标系L与二维坐标系P的相对位姿数据,转换到二维坐标系P中,EL(Tt LP)等于t时刻与t-1时刻的相邻同步数据帧中基于雷达数据的两对应点在二维坐标系P中的位姿数据差的平方和。
如图7所示,在一个实施例中,S208具体包括创建三维子场景的步骤,该步骤具体包括以下内容:
S702,按时间戳顺序依次读取同步数据帧序列中的同步数据帧。
其中,同步数据帧序列中包括按照时间戳顺序排列的若干个同步数据帧。
具体地,机器人按照时间戳顺序从前往后或从后往前,依次读取同步数据帧序列中的每一同步数据帧。
S704,获取读取到的同步数据帧对应的相对位姿数据。
其中,相对位姿数据为读取到的同步数据帧相对于前一或者后一同步数据帧的位姿数据。读取到的同步数据帧的位姿数据根据相对位姿数据和前一或者后一同步数据帧的位姿数据确定。
具体地,机器人中存储着同步数据帧序列和同步数据帧序列中的每一同步数据帧对应的相对位姿数据。机器人从存储的相对位姿数据中查询与读取到的同步数据帧对应的相对位姿数据,获取查询到的相对位姿数据。
S706,根据读取到的同步数据帧和获取到的相对位姿数据,构建三维子场景中的体素。
其中,体素为构建三维子场景最小的单元,三维子场景由若干个体素构成。
具体地,机器人根据获取到的相对位姿数据计算读取到的同步数据帧的位姿数据,根据依次读取到的同步数据帧的位姿数据依次构建三维子场景中的体素。
S708,当三维子场景中的体素数量超过预设阈值时,根据读取到的同步数据帧和获取到的相对位姿数据,构建下一三维子场景中的体素,直至将同步数据帧序列中的同步数据帧读取完毕,得到多个三维子场景。
具体地,机器人在构建三维子场景的体素时,统计当前构建的三维子场景中的体素数量,将统计到的体素数量与预设体素阈值比较。当统计到的体素数量大于预设体素阈值时,机器人根据读取到的同步数据帧和获取到的相对位姿数据,计算读取到的同步数据帧的位姿数据,根据读取到的同步数据帧和位姿数据构建下一三维子场景中的体素,直至同步数据帧序列中的同步数据帧被读取完毕,得到多个三维子场景。
本实施例中,在根据读取到同步数据帧和相对位姿数据,构建三维子场景中的体素,通过控制三维子场景中的体素数量构建多个三维子场景,提高了多个三维子场景的创建效率。
如图8所示,在一个实施例中,S706具体包括根据位姿数据构建体素的步骤,该步骤具体包括以下内容:
S802,获取与读取到的同步数据帧相邻的前一同步数据帧对应的位姿数据。
具体地,机器人从同步数据帧序列中读取到同步数据帧之后,判断读取到的同步数据帧是否为同步数据帧序列中的第一帧,若是,则获取读取到的同步数据帧的相对位姿数据,以获取到相对位姿数据作为读取到的同步数据帧的相对位姿数据;若不是,机器人获取与读取到的同步数据帧相邻的前一同步数据帧对应的位姿数据。
S804,根据获取到的位姿数据和获取到的相对位姿数据,确定读取到的同步数据帧对应的位姿数据。
其中,读取到的同步数据帧的位姿数据根据相对位姿数据和前一同步数据帧的位姿数据计算得到。
具体地,机器人将获取到的位姿数据和获取到的前一同步数据帧对应的位姿数据进行相加,得到读取到的同步数据帧对应的位姿数据。
在一个实施例中,机器人还可以通过前一同步数据帧中的数据和前一同步数据帧构建拟合函数,将读取到的同步数据帧中的数据代入拟合函数中,计算得到读取到的同步数据帧对应的位姿数据。
S806,根据读取到的同步数据帧和确定的位姿数据,构建三维子场景中的体素。
具体地,机器人读取同步数据帧中的深度图像帧,按照确定的位姿数据根据提取到的深度图像帧构建三维子场景中的体素。机器人还可从深度图像帧中提取颜色数据和深度数据,按照确定的位姿数据,根据提取到的颜色数据和深度数据构建三维子场景中的体素。
在一个实施例中,S806具体还包括以下内容:从读取到的同步数据帧中的深度图像帧,提取颜色数据和相应的深度数据;将颜色数据按照相应的深度数据和确定的位姿数据填充为三维子场景中的体素。
具体地,机器人从读取到的同步数据帧中深度图像帧,从提取到的深度图像帧中提取颜色数据和相应的深度数据,按照相应的深度数据和确定的位姿数据确定颜色数据在三维子场景中三维空间的填充位置,按照确定的填充位置将颜色数据填充为三维子场景中的体素。
本实施例中,根据确定的每个读取到同步数据帧的相对位姿数据,根据前一同步数据帧对应的位姿数据和读取到的同步数据帧的相对位姿数据,确定读取到的同步数据帧的位姿数据,从而按照准确的位姿数据根据读取到的同步数据帧构建三维子场景中的体素,减小了相邻同步数据帧之间的误差,从而减少累积误差,提高了三维子场景构建的准确性。
图9为一实施例中对帧序列进行同步的原理示意图。参照图9,902为雷达数据帧序列,雷达数据帧序列902中包括在时间段n内采集到的10帧雷达数据帧所构成的帧序列,帧频率为10/n,每一雷达数据帧包括雷达数据a;904为与雷达数据帧序列对应的深度图像帧序列,深度图像帧序列904为在相同的时间段n内采集到的20帧雷达数据帧构成的帧序列,帧频率为20/n,每一深度图像帧包括深度图像数据b。
机器人对深度图像帧序列904进行降采样,通过将采用得到深度图像帧序列906,深度图像帧序列906的帧频率为10/n。机器人将帧频率相同的雷达数据帧序列902中的雷达数据帧,与深度图像帧序列906中时间戳相匹配的深度图像帧合并,得到同步数据帧序列908。同步数据帧序列908中包括深度图像数据a和雷达数据b。
图10a为一个实施例中生成三维场景图的流程示意图;图10b为一实施例中生成三维场景图的流程示意图。请参照图10a和图10b,机器人读取同步数据帧中的颜色数据帧1002、深度数据帧1004和雷达数据帧1006,分别与已构建的三维子场景和上一同步数据帧匹配。机器人通过与已构建的三维子场景匹配,确定已构建的三维子场景中与当前读取到的同步数据帧中的对应点,根据确定的对应点优化相邻三维子场景之间的相对位姿数据。机器人通过与上一同步数据帧匹配,确定上一同步数据帧中与当前读取到的同步数据帧的对应点,根据确定的对应点确定当前读取到的同步数据帧与上一同步数据帧的相对位姿数据,根据确定的相对位姿数据将当前读取到的同步数据帧中的点填充到当前三维子场景中,从而构建多个三维子场景1008。机器人根据优化的相邻三维子场景之间的相对位姿数据将构建的三维子场景进行融合,得到三维场景图。
如图11所示,在一个实施例中,提供一种三维场景图生成装置1100,该装置1100具体包括以下内容:数据获取模块1102、数据同步模块1104、位姿确定模块1106、场景创建模块1108和场景融合模块1110。
数据获取模块1102,用于获取三维场景的深度图像帧序列和雷达数据帧序列。
数据同步模块1104,用于将深度图像帧序列和雷达数据帧序列同步,得到同步数据帧序列。
位姿确定模块1106,用于确定同步数据帧序列中相邻同步数据帧之间的相对位姿数据。
场景创建模块1108,用于根据同步数据帧序列和相对位姿数据,创建多个三维子场景。
场景融合模块1110,用于将多个三维子场景融合为三维场景图。
在一个实施例中,数据获取模块1102还用于接收数据采集指令;根据数据采集指令触发机器人行走指令;机器人行走指令用于指示机器人按照指定轨迹移动;在机器人按照指定轨迹移动时,通过机器人的深度相机和雷达传感器分别采集深度图像帧序列和雷达数据帧序列。
如图12所示,在一个实施例中,数据同步模块1104具体包括:帧频率获取模块1104a、序列调整模块1104b和帧序列同步模块1104c。
帧频率获取模块1104a,用于获取深度图像帧序列和雷达数据帧序列各自的帧频率。
序列调整模块1104b,用于按照获取的帧频率,调整深度图像帧序列和雷达数据帧序列中至少一种,得到帧频率相同的深度图像帧序列和雷达数据帧序列。
帧序列同步模块1104c,用于将帧频率相同的深度图像帧序列和雷达数据帧序列进行同步,得到同步数据帧序列。
在一个实施例中,序列调整模块1104b还用于从获取到的帧频率中分别确定较小和较大的帧频率;按照较小的帧频率,对深度图像帧序列和雷达数据帧序列中具有较大的帧频率的帧序列进行降采样,得到帧频率相同的深度图像帧序列和雷达数据帧序列。
在一个实施例中,帧序列同步模块1104c还用于从帧频率相同的深度图像帧序列和雷达数据帧序列中,分别提取时间戳匹配的深度图像帧和雷达数据帧;根据提取到的时间戳匹配的深度图像帧和雷达数据帧生成同步数据帧;将生成的同步数据帧按照相应的时间戳构成同步数据帧序列。
在一个实施例中,位姿确定模块1106还用于遍历同步数据帧序列中的同步数据帧;获取遍历的当前同步数据帧的前一同步数据帧;确定当前同步数据帧相对于前一同步数据帧的相对位姿数据。
在一个实施例中,位姿确定模块1106还用于确定同步数据帧序列中相邻同步数据帧之间的对应点;基于对应点分别构建颜色代价函数、深度代价函数和雷达代价函数;根据颜色代价函数、深度代价函数和雷达代价函数,生成同步数据帧序列中相邻同步数据帧之间的相对位姿数据。
在一个实施例中,位姿确定模块1106按照以下公式计算同步数据帧序列中相邻同步数据帧之间的相对位姿数据:
argminE(Tt DW)=ED(Tt DW)+ωcEC(Tt DW)+ωlEL(Tt LP)
其中,t表示时间戳为t时刻,Tt DW表示在t时刻的同步数据帧与t-1时刻同步数据帧之间从图像坐标系D映射到世界坐标系W的相对位姿数据,Tt LP表示t时刻的同步数据帧与t-1时刻同步数据帧之间从雷达坐标系L映射到二维坐标系P的相对位姿数据,argminE表示t时刻的同步数据帧与t-1时刻同步数据帧最小的同步数据代价函数,ED表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的深度数据构建的深度代价函数,EC表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的颜色数据构建的颜色代价函数,EL表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的雷达数据构建的雷达代价函数,ωc为颜色代价函数的权重系数,ωl为雷达代价函数的权重系数。
在一个实施例中,位姿确定模块1106按照以下公式构建深度代价函数ED(Tt DW)、颜色代价函数EC(Tt DW)和雷达代价函数EC(Tt DW):
其中,KD表示相邻同步数据帧中基于深度数据的对应点集合,与/>为基于相邻同步数据帧中深度数据d的对应点p和q,p为基于深度数据d映射到世界坐标系W中的点,q为基于深度数据d映射到图像坐标中的点,/>表示p点所在世界坐标系W中的法向量,/>表示将一个点从一个坐标系转换到另一坐标的的运算;Ct'-1(x)表示时间戳为t-1时刻的同步数据帧中像素点x的颜色数据,C(τ(x,Tt DW)表示时间戳为t时刻的同步数据帧中与像素点x对应的像素点τ(x,Tt DW)的颜色数据,τ为在t时刻的同步数据帧中查找与t-1时刻基于颜色数据的像素点x的对应点的函数;KL表示相邻同步数据帧中基于雷达数据的对应点集合,/>为基于相邻同步数据帧中雷达数据的对应点p和q,p为基于雷达数据l映射到二维坐标系P中的点,q为基于雷达数据l映射到图像坐标系D中点,/>表示p点所在二维坐标系P中的法向量。
在一个实施例中,场景创建模块1108还用于按时间戳顺序依次读取同步数据帧序列中的同步数据帧;获取读取到的同步数据帧对应的相对位姿数据;根据读取到的同步数据帧和获取到的相对位姿数据,构建三维子场景中的体素;当三维子场景中的体素数量超过预设阈值时,根据读取到的同步数据帧和获取到的相对位姿数据,构建下一三维子场景中的体素,直至将同步数据帧序列中的同步数据帧读取完毕,得到多个三维子场景。
在一个实施例中,场景创建模块1108还用于获取与读取到的同步数据帧相邻的前一同步数据帧对应的位姿数据;根据获取到的位姿数据和获取到的相对位姿数据,确定读取到的同步数据帧对应的位姿数据;根据读取到的同步数据帧和确定的位姿数据,构建三维子场景中的体素。
在一个实施例中,场景创建模块1108还用于从读取到的同步数据帧中的深度图像帧,提取颜色数据和相应的深度数据;将颜色数据按照相应的深度数据和确定的位姿数据填充为三维子场景中的体素。
本实施例中,在获取三维场景的深度图像帧序列和雷达数据帧序列后,对深度图像帧序列和雷达数据帧序进行同步,得到同步数据帧序列,使得同步数据帧序列中的同步数据帧包括图像颜色数据、图像深度数据和三维场景的雷达数据。根据同步数据帧中的图像颜色数据、图像深度数据和三维场景的雷达数据,确定相邻同步数据帧之间的相对位姿数据,提高了确定同步数据帧的位姿数据的准确性。根据同步数据帧序列和位姿数据构建三维子场景,根据构建的三维子场景融合成三维场景图,提高了生成的三维场景图的准确性。
图13为一个实施例中计算机设备的内部结构示意图。参照图13,该计算机设备可以是图1中所示的机器人110,也可以是图1中所示的终端120,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质可存储操作系统和计算机程序。该计算机程序被执行时,可使得处理器执行一种三维场景图生成方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该内存储器中可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种三维场景图生成方法。计算机设备的网络接口用于进行网络通信。
图14为一个实施例中机器人的内部结构示意图。参照图14,该机器人是图1中所示的机器人110,该机器人包括通过系统总线连接的处理器、存储器、网络接口、深度相机、雷达传感器和行走装置。其中,存储器包括非易失性存储介质和内存储器。该机器人的非易失性存储介质可存储操作系统和计算机程序。该计算机程序被执行时,可使得处理器执行一种三维场景图生成方法。该机器人的处理器用于提供计算和控制能力,支撑整个机器人的运行。该内存储器中可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种三维场景图生成方法。机器人的网络接口用于进行网络通信。深度相机用于采集当前场景中的深度图像数据。雷达传感器用于采集当前场景中的雷达数据。行走装置用于控制机器人110进行移动。深度相机、雷达传感器和行走装置通过系统总线与处理器和存储器相连接。深度相机根据处理器发送的场景数据采集指令采集深度图像数据,并将采集到的深度图像数据发送至存储器,雷达传感器根据处理器发送的场景数据采集指令采集雷达数据,并将采集到的雷达数据发送至存储器。行走装置用于根据处理器发送的机器人行走指令移动机器人。
本领域技术人员可以理解,图13和图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备或机器人的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的三维场景图生成装置1100可以实现为一种计算机程序的形式,计算机程序可在如图13所示的计算机设备或如图14所示的机器人上运行。计算机设备或机器人的存储器中可存储组成该三维场景图生成装置的各个程序模块,比如,图11所示的数据获取模块1102、数据同步模块1104、位姿确定模块1106、场景创建模块1108和场景融合模块1110。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的三维场景图生成方法中的步骤。
例如,图13所示的计算机设备或图14所示的机器人可以通过如图11所示的三维场景图生成装置1100中的数据获取模块1102获取三维场景的深度图像帧序列和雷达数据帧序列。计算机设备或机器人可通过数据同步模块1104将深度图像帧序列和雷达数据帧序列同步,得到同步数据帧序列。计算机设备或机器人可通过位姿确定模块1106确定同步数据帧序列中相邻同步数据帧之间的相对位姿数据。计算机设备或机器人可通过场景创建模块1108根据同步数据帧序列和相对位姿数据,创建多个三维子场景。计算机设备或机器人可通过场景融合模块1110将多个三维子场景融合为三维场景图。
一种机器人,包括深度相机、雷达传感器、行走装置、存储器和处理器,存储器中存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如下步骤:获取三维场景的深度图像帧序列和雷达数据帧序列;将深度图像帧序列和雷达数据帧序列同步,得到同步数据帧序列;确定同步数据帧序列中相邻同步数据帧之间的相对位姿数据;根据同步数据帧序列和相对位姿数据,创建多个三维子场景;将多个三维子场景融合为三维场景图。
在一个实施例中,获取三维场景的深度图像帧序列和雷达数据帧序列包括:接收数据采集指令;根据数据采集指令触发机器人行走指令;机器人行走指令用于指示机器人按照指定轨迹移动;在机器人按照指定轨迹移动时,通过机器人的深度相机和雷达传感器分别采集深度图像帧序列和雷达数据帧序列。
在一个实施例中,将深度图像帧序列和雷达数据帧序列同步,得到同步数据帧序列包括:获取深度图像帧序列和雷达数据帧序列各自的帧频率;按照获取的帧频率,调整深度图像帧序列和雷达数据帧序列中至少一种,得到帧频率相同的深度图像帧序列和雷达数据帧序列;将帧频率相同的深度图像帧序列和雷达数据帧序列进行同步,得到同步数据帧序列。
在一个实施例中,按照获取的帧频率,调整深度图像帧序列和雷达数据帧序列中至少一种,得到帧频率相同的深度图像帧序列和雷达数据帧序列包括:从获取到的帧频率中分别确定较小和较大的帧频率;按照较小的帧频率,对深度图像帧序列和雷达数据帧序列中具有较大的帧频率的帧序列进行降采样,得到帧频率相同的深度图像帧序列和雷达数据帧序列。
在一个实施例中,将帧频率相同的深度图像帧序列和雷达数据帧序列进行同步,得到同步数据帧序列包括:从帧频率相同的深度图像帧序列和雷达数据帧序列中,分别提取时间戳匹配的深度图像帧和雷达数据帧;根据提取到的时间戳匹配的深度图像帧和雷达数据帧生成同步数据帧;将生成的同步数据帧按照相应的时间戳构成同步数据帧序列。
在一个实施例中,确定同步数据帧序列中相邻同步数据帧之间的相对位姿数据包括:遍历同步数据帧序列中的同步数据帧;获取遍历的当前同步数据帧的前一同步数据帧;确定当前同步数据帧相对于前一同步数据帧的相对位姿数据。
在一个实施例中,确定同步数据帧序列中相邻同步数据帧之间的相对位姿数据包括:确定同步数据帧序列中相邻同步数据帧之间的对应点;基于对应点分别构建颜色代价函数、深度代价函数和雷达代价函数;根据颜色代价函数、深度代价函数和雷达代价函数,生成同步数据帧序列中相邻同步数据帧之间的相对位姿数据。
在一个实施例中,根据颜色代价函数、深度代价函数和雷达代价函数,生成同步数据帧序列中相邻同步数据帧之间的相对位姿数据包括:按照以下公式计算同步数据帧序列中相邻同步数据帧之间的相对位姿数据:
argminE(Tt DW)=ED(Tt DW)+ωcEC(Tt DW)+ωlEL(Tt LP)
其中,t表示时间戳为t时刻,Tt DW表示在t时刻的同步数据帧与t-1时刻同步数据帧之间从图像坐标系D映射到世界坐标系W的相对位姿数据,Tt LP表示t时刻的同步数据帧与t-1时刻同步数据帧之间从雷达坐标系L映射到二维坐标系P的相对位姿数据,argminE表示t时刻的同步数据帧与t-1时刻同步数据帧最小的同步数据代价函数,ED表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的深度数据构建的深度代价函数,EC表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的颜色数据构建的颜色代价函数,EL表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的雷达数据构建的雷达代价函数,ωc为颜色代价函数的权重系数,ωl为雷达代价函数的权重系数。
在一个实施例中,按照以下公式构建深度代价函数ED(Tt DW)、颜色代价函数EC(Tt DW)和雷达代价函数EC(Tt DW):
其中,KD表示相邻同步数据帧中基于深度数据的对应点集合,与/>为基于相邻同步数据帧中深度数据d的对应点p和q,p为基于深度数据d映射到世界坐标系W中的点,q为基于深度数据d映射到图像坐标中的点,/>表示p点所在世界坐标系W中的法向量,/>表示将一个点从一个坐标系转换到另一坐标的的运算;Ct'-1(x)表示时间戳为t-1时刻的同步数据帧中像素点x的颜色数据,C(τ(x,Tt DW)表示时间戳为t时刻的同步数据帧中与像素点x对应的像素点τ(x,Tt DW)的颜色数据,τ为在t时刻的同步数据帧中查找与t-1时刻基于颜色数据的像素点x的对应点的函数;KL表示相邻同步数据帧中基于雷达数据的对应点集合,/>为基于相邻同步数据帧中雷达数据的对应点p和q,p为基于雷达数据l映射到二维坐标系P中的点,q为基于雷达数据l映射到图像坐标系D中点,/>表示p点所在二维坐标系P中的法向量。
在一个实施例中,根据同步数据帧序列和相对位姿数据,创建多个三维子场景,包括:按时间戳顺序依次读取同步数据帧序列中的同步数据帧;获取读取到的同步数据帧对应的相对位姿数据;根据读取到的同步数据帧和获取到的相对位姿数据,构建三维子场景中的体素;当三维子场景中的体素数量超过预设阈值时,根据读取到的同步数据帧和获取到的相对位姿数据,构建下一三维子场景中的体素,直至将同步数据帧序列中的同步数据帧读取完毕,得到多个三维子场景。
在一个实施例中,根据读取到的同步数据帧和获取到的相对位姿数据,构建三维子场景中的体素包括:获取与读取到的同步数据帧相邻的前一同步数据帧对应的位姿数据;根据获取到的位姿数据和获取到的相对位姿数据,确定读取到的同步数据帧对应的位姿数据;根据读取到的同步数据帧和确定的位姿数据,构建三维子场景中的体素。
在一个实施例中,根据读取到的同步数据帧和确定的位姿数据,构建三维子场景中的体素包括:从读取到的同步数据帧中的深度图像帧,提取颜色数据和相应的深度数据;将颜色数据按照相应的深度数据和确定的位姿数据填充为三维子场景中的体素。
本实施例中,在获取三维场景的深度图像帧序列和雷达数据帧序列后,对深度图像帧序列和雷达数据帧序进行同步,得到同步数据帧序列,使得同步数据帧序列中的同步数据帧包括图像颜色数据、图像深度数据和三维场景的雷达数据。根据同步数据帧中的图像颜色数据、图像深度数据和三维场景的雷达数据,确定相邻同步数据帧之间的相对位姿数据,提高了确定同步数据帧的位姿数据的准确性。根据同步数据帧序列和位姿数据构建三维子场景,根据构建的三维子场景融合成三维场景图,提高了生成的三维场景图的准确性。
一种存储有计算机程序的存储介质,所述计算机程序被处理器执行时,使得处理器执行如下步骤:获取三维场景的深度图像帧序列和雷达数据帧序列;将深度图像帧序列和雷达数据帧序列同步,得到同步数据帧序列;确定同步数据帧序列中相邻同步数据帧之间的相对位姿数据;根据同步数据帧序列和相对位姿数据,创建多个三维子场景;将多个三维子场景融合为三维场景图。
在一个实施例中,获取三维场景的深度图像帧序列和雷达数据帧序列包括:接收数据采集指令;根据数据采集指令触发机器人行走指令;机器人行走指令用于指示机器人按照指定轨迹移动;在机器人按照指定轨迹移动时,通过机器人的深度相机和雷达传感器分别采集深度图像帧序列和雷达数据帧序列。
在一个实施例中,将深度图像帧序列和雷达数据帧序列同步,得到同步数据帧序列包括:获取深度图像帧序列和雷达数据帧序列各自的帧频率;按照获取的帧频率,调整深度图像帧序列和雷达数据帧序列中至少一种,得到帧频率相同的深度图像帧序列和雷达数据帧序列;将帧频率相同的深度图像帧序列和雷达数据帧序列进行同步,得到同步数据帧序列。
在一个实施例中,按照获取的帧频率,调整深度图像帧序列和雷达数据帧序列中至少一种,得到帧频率相同的深度图像帧序列和雷达数据帧序列包括:从获取到的帧频率中分别确定较小和较大的帧频率;按照较小的帧频率,对深度图像帧序列和雷达数据帧序列中具有较大的帧频率的帧序列进行降采样,得到帧频率相同的深度图像帧序列和雷达数据帧序列。
在一个实施例中,将帧频率相同的深度图像帧序列和雷达数据帧序列进行同步,得到同步数据帧序列包括:从帧频率相同的深度图像帧序列和雷达数据帧序列中,分别提取时间戳匹配的深度图像帧和雷达数据帧;根据提取到的时间戳匹配的深度图像帧和雷达数据帧生成同步数据帧;将生成的同步数据帧按照相应的时间戳构成同步数据帧序列。
在一个实施例中,确定同步数据帧序列中相邻同步数据帧之间的相对位姿数据包括:遍历同步数据帧序列中的同步数据帧;获取遍历的当前同步数据帧的前一同步数据帧;确定当前同步数据帧相对于前一同步数据帧的相对位姿数据。
在一个实施例中,确定同步数据帧序列中相邻同步数据帧之间的相对位姿数据包括:确定同步数据帧序列中相邻同步数据帧之间的对应点;基于对应点分别构建颜色代价函数、深度代价函数和雷达代价函数;根据颜色代价函数、深度代价函数和雷达代价函数,生成同步数据帧序列中相邻同步数据帧之间的相对位姿数据。
在一个实施例中,根据颜色代价函数、深度代价函数和雷达代价函数,生成同步数据帧序列中相邻同步数据帧之间的相对位姿数据包括:按照以下公式计算同步数据帧序列中相邻同步数据帧之间的相对位姿数据:
argminE(Tt DW)=ED(Tt DW)+ωcEC(Tt DW)+ωlEL(Tt LP)
其中,t表示时间戳为t时刻,Tt DW表示在t时刻的同步数据帧与t-1时刻同步数据帧之间从图像坐标系D映射到世界坐标系W的相对位姿数据,Tt LP表示t时刻的同步数据帧与t-1时刻同步数据帧之间从雷达坐标系L映射到二维坐标系P的相对位姿数据,argminE表示t时刻的同步数据帧与t-1时刻同步数据帧最小的同步数据代价函数,ED表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的深度数据构建的深度代价函数,EC表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的颜色数据构建的颜色代价函数,EL表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的雷达数据构建的雷达代价函数,ωc为颜色代价函数的权重系数,ωl为雷达代价函数的权重系数。
在一个实施例中,按照以下公式构建深度代价函数ED(Tt DW)、颜色代价函数EC(Tt DW)和雷达代价函数EC(Tt DW):
其中,KD表示相邻同步数据帧中基于深度数据的对应点集合,与/>为基于相邻同步数据帧中深度数据d的对应点p和q,p为基于深度数据d映射到世界坐标系W中的点,q为基于深度数据d映射到图像坐标中的点,/>表示p点所在世界坐标系W中的法向量,/>表示将一个点从一个坐标系转换到另一坐标的的运算;Ct'-1(x)表示时间戳为t-1时刻的同步数据帧中像素点x的颜色数据,C(τ(x,Tt DW)表示时间戳为t时刻的同步数据帧中与像素点x对应的像素点τ(x,Tt DW)的颜色数据,τ为在t时刻的同步数据帧中查找与t-1时刻基于颜色数据的像素点x的对应点的函数;KL表示相邻同步数据帧中基于雷达数据的对应点集合,/>为基于相邻同步数据帧中雷达数据的对应点p和q,p为基于雷达数据l映射到二维坐标系P中的点,q为基于雷达数据l映射到图像坐标系D中点,/>表示p点所在二维坐标系P中的法向量。
在一个实施例中,根据同步数据帧序列和相对位姿数据,创建多个三维子场景,包括:按时间戳顺序依次读取同步数据帧序列中的同步数据帧;获取读取到的同步数据帧对应的相对位姿数据;根据读取到的同步数据帧和获取到的相对位姿数据,构建三维子场景中的体素;当三维子场景中的体素数量超过预设阈值时,根据读取到的同步数据帧和获取到的相对位姿数据,构建下一三维子场景中的体素,直至将同步数据帧序列中的同步数据帧读取完毕,得到多个三维子场景。
在一个实施例中,根据读取到的同步数据帧和获取到的相对位姿数据,构建三维子场景中的体素包括:获取与读取到的同步数据帧相邻的前一同步数据帧对应的位姿数据;根据获取到的位姿数据和获取到的相对位姿数据,确定读取到的同步数据帧对应的位姿数据;根据读取到的同步数据帧和确定的位姿数据,构建三维子场景中的体素。
在一个实施例中,根据读取到的同步数据帧和确定的位姿数据,构建三维子场景中的体素包括:从读取到的同步数据帧中的深度图像帧,提取颜色数据和相应的深度数据;将颜色数据按照相应的深度数据和确定的位姿数据填充为三维子场景中的体素。
本实施例中,在获取三维场景的深度图像帧序列和雷达数据帧序列后,对深度图像帧序列和雷达数据帧序进行同步,得到同步数据帧序列,使得同步数据帧序列中的同步数据帧包括图像颜色数据、图像深度数据和三维场景的雷达数据。根据同步数据帧中的图像颜色数据、图像深度数据和三维场景的雷达数据,确定相邻同步数据帧之间的相对位姿数据,提高了确定同步数据帧的位姿数据的准确性。根据同步数据帧序列和位姿数据构建三维子场景,根据构建的三维子场景融合成三维场景图,提高了生成的三维场景图的准确性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (24)

1.一种三维场景图生成方法,所述方法包括:
获取三维场景的深度图像帧序列和雷达数据帧序列;
将所述深度图像帧序列和所述雷达数据帧序列同步,得到同步数据帧序列;
确定所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据;
按时间戳顺序依次读取所述同步数据帧序列中的同步数据帧;
获取读取到的同步数据帧对应的相对位姿数据;
根据所述读取到的同步数据帧和获取到的相对位姿数据,构建三维子场景中的体素;
当所述三维子场景中的体素数量超过预设阈值时,根据所述读取到的同步数据帧和获取到的相对位姿数据,构建下一三维子场景中的体素,直至将所述同步数据帧序列中的同步数据帧读取完毕,得到多个三维子场景;
将所述多个三维子场景融合为三维场景图。
2.根据权利要求1所述的方法,其特征在于,所述获取三维场景的深度图像帧序列和雷达数据帧序列包括:
接收数据采集指令;
根据所述数据采集指令触发机器人行走指令;所述机器人行走指令用于指示所述机器人按照指定轨迹移动;
在所述机器人按照所述指定轨迹移动时,通过所述机器人的深度相机和雷达传感器分别采集深度图像帧序列和雷达数据帧序列。
3.根据权利要求1所述的方法,其特征在于,所述将所述深度图像帧序列和所述雷达数据帧序列同步,得到同步数据帧序列包括:
获取所述深度图像帧序列和所述雷达数据帧序列各自的帧频率;
按照获取的帧频率,调整所述深度图像帧序列和所述雷达数据帧序列中至少一种,得到帧频率相同的深度图像帧序列和雷达数据帧序列;
将帧频率相同的深度图像帧序列和雷达数据帧序列进行同步,得到同步数据帧序列。
4.根据权利要求3所述的方法,其特征在于,所述按照获取的帧频率,调整所述深度图像帧序列和所述雷达数据帧序列中至少一种,得到帧频率相同的深度图像帧序列和雷达数据帧序列包括:
从获取到的帧频率中分别确定较小和较大的帧频率;
按照较小的帧频率,对所述深度图像帧序列和所述雷达数据帧序列中具有较大的帧频率的帧序列进行降采样,得到帧频率相同的深度图像帧序列和雷达数据帧序列。
5.根据权利要求3所述的方法,其特征在于,所述将帧频率相同的深度图像帧序列和雷达数据帧序列进行同步,得到同步数据帧序列包括:
从帧频率相同的深度图像帧序列和雷达数据帧序列中,分别提取时间戳匹配的深度图像帧和雷达数据帧;
根据提取到的时间戳匹配的深度图像帧和雷达数据帧生成同步数据帧;
将生成的同步数据帧按照相应的时间戳构成同步数据帧序列。
6.根据权利要求1所述的方法,其特征在于,所述确定所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据包括:
遍历同步数据帧序列中的同步数据帧;
获取所述遍历的当前同步数据帧的前一同步数据帧;
确定所述当前同步数据帧相对于所述前一同步数据帧的相对位姿数据。
7.根据权利要求1所述的方法,其特征在于,所述确定所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据包括:
确定所述同步数据帧序列中相邻同步数据帧之间的对应点;
基于所述对应点分别构建颜色代价函数、深度代价函数和雷达代价函数;
根据所述颜色代价函数、所述深度代价函数和所述雷达代价函数,生成所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据。
8.根据权利要求7所述的方法,其特征在于,所述根据所述颜色代价函数、所述深度代价函数和所述雷达代价函数,生成所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据包括:
按照以下公式计算所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据:
其中,t表示时间戳为t时刻,表示在t时刻的同步数据帧与t-1时刻同步数据帧之间从图像坐标系D映射到世界坐标系W的相对位姿数据,/>表示t时刻的同步数据帧与t-1时刻同步数据帧之间从雷达坐标系L映射到二维坐标系P的相对位姿数据,argmin E表示t时刻的同步数据帧与t-1时刻同步数据帧最小的同步数据代价函数,ED表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的深度数据构建的深度代价函数,EC表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的颜色数据构建的颜色代价函数,EL表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的雷达数据构建的雷达代价函数,ωc为颜色代价函数的权重系数,ωl为雷达代价函数的权重系数。
9.根据权利要求8所述的方法,其特征在于,包括:
按照以下公式构建深度代价函数颜色代价函数/>和雷达代价函数
其中,KD表示相邻同步数据帧中基于深度数据的对应点集合,与/>为基于相邻同步数据帧中深度数据d的对应点p和q,p为基于深度数据d映射到世界坐标系W中的点,q为基于深度数据d映射到图像坐标中的点,/>表示p点所在世界坐标系w中的法向量,/>表示将一个点从一个坐标系转换到另一坐标系的运算;C′t-1(x)表示时间戳为t-1时刻的同步数据帧中像素点x的颜色数据,/>表示时间戳为t时刻的同步数据帧中与像素点x对应的像素点/>的颜色数据,τ为在t时刻的同步数据帧中查找与t-1时刻的基于颜色数据的像素点x的对应点的函数;KL表示相邻同步数据帧中基于雷达数据的对应点集合,/>与/>为基于相邻同步数据帧中雷达数据的对应点p和q,p为基于雷达数据l映射到二维坐标系P中的点,q为基于雷达数据l映射到图像坐标系D中点,/>表示p点所在二维坐标系P中的法向量。
10.根据权利要求1所述的方法,其特征在于,所述根据所述读取到的同步数据帧和获取到的相对位姿数据,构建三维子场景中的体素包括:
获取与读取到的同步数据帧相邻的前一同步数据帧对应的位姿数据;
根据获取到的位姿数据和获取到的相对位姿数据,确定所述读取到的同步数据帧对应的位姿数据;
根据读取到的同步数据帧和确定的位姿数据,构建三维子场景中的体素。
11.根据权利要求10所述的方法,其特征在于,所述根据读取到的同步数据帧和确定的位姿数据,构建三维子场景中的体素包括:
从读取到的同步数据帧中的深度图像帧,提取颜色数据和相应的深度数据;
将所述颜色数据按照相应的深度数据和确定的位姿数据填充为三维子场景中的体素。
12.一种三维场景图生成装置,其特征在于,所述装置包括:
数据获取模块,用于获取三维场景的深度图像帧序列和雷达数据帧序列;
数据同步模块,用于将所述深度图像帧序列和所述雷达数据帧序列同步,得到同步数据帧序列;
位姿确定模块,用于确定所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据;
场景创建模块,用于按时间戳顺序依次读取所述同步数据帧序列中的同步数据帧;获取读取到的同步数据帧对应的相对位姿数据;根据所述读取到的同步数据帧和获取到的相对位姿数据,构建三维子场景中的体素;当所述三维子场景中的体素数量超过预设阈值时,根据所述读取到的同步数据帧和获取到的相对位姿数据,构建下一三维子场景中的体素,直至将所述同步数据帧序列中的同步数据帧读取完毕,得到多个三维子场景;
场景融合模块,用于将所述多个三维子场景融合为三维场景图。
13.根据权利要求12所述的装置,其特征在于,所述数据获取模块还用于接收数据采集指令;根据所述数据采集指令触发机器人行走指令;所述机器人行走指令用于指示所述机器人按照指定轨迹移动;在所述机器人按照所述指定轨迹移动时,通过所述机器人的深度相机和雷达传感器分别采集深度图像帧序列和雷达数据帧序列。
14.根据权利要求12所述的装置,其特征在于,所述数据同步模块还用于获取所述深度图像帧序列和所述雷达数据帧序列各自的帧频率;按照获取的帧频率,调整所述深度图像帧序列和所述雷达数据帧序列中至少一种,得到帧频率相同的深度图像帧序列和雷达数据帧序列;将帧频率相同的深度图像帧序列和雷达数据帧序列进行同步,得到同步数据帧序列。
15.根据权利要求14所述的装置,其特征在于,所述数据同步模块还用于从获取到的帧频率中分别确定较小和较大的帧频率;按照较小的帧频率,对所述深度图像帧序列和所述雷达数据帧序列中具有较大的帧频率的帧序列进行降采样,得到帧频率相同的深度图像帧序列和雷达数据帧序列。
16.根据权利要求14所述的装置,其特征在于,所述数据同步模块还用于从帧频率相同的深度图像帧序列和雷达数据帧序列中,分别提取时间戳匹配的深度图像帧和雷达数据帧;根据提取到的时间戳匹配的深度图像帧和雷达数据帧生成同步数据帧;将生成的同步数据帧按照相应的时间戳构成同步数据帧序列。
17.根据权利要求12所述的装置,其特征在于,所述位姿确定模块还用于遍历同步数据帧序列中的同步数据帧;获取所述遍历的当前同步数据帧的前一同步数据帧;确定所述当前同步数据帧相对于所述前一同步数据帧的相对位姿数据。
18.根据权利要求12所述的装置,其特征在于,所述位姿确定模块还用于确定所述同步数据帧序列中相邻同步数据帧之间的对应点;基于所述对应点分别构建颜色代价函数、深度代价函数和雷达代价函数;根据所述颜色代价函数、所述深度代价函数和所述雷达代价函数,生成所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据。
19.根据权利要求18所述的装置,其特征在于,所述位姿确定模块还用于按照以下公式计算所述同步数据帧序列中相邻同步数据帧之间的相对位姿数据:
其中,t表示时间戳为t时刻,表示在t时刻的同步数据帧与t-1时刻同步数据帧之间从图像坐标系D映射到世界坐标系W的相对位姿数据,/>表示t时刻的同步数据帧与t-1时刻同步数据帧之间从雷达坐标系L映射到二维坐标系P的相对位姿数据,argmin E表示t时刻的同步数据帧与t-1时刻同步数据帧最小的同步数据代价函数,ED表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的深度数据构建的深度代价函数,EC表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的颜色数据构建的颜色代价函数,EL表示基于t时刻的同步数据帧与t-1时刻同步数据帧中对应点的雷达数据构建的雷达代价函数,ωc为颜色代价函数的权重系数,ωl为雷达代价函数的权重系数。
20.根据权利要求19所述的装置,其特征在于,所述位姿确定模块还用于按照以下公式构建深度代价函数颜色代价函数/>和雷达代价函数/>
其中,KD表示相邻同步数据帧中基于深度数据的对应点集合,与/>为基于相邻同步数据帧中深度数据d的对应点p和q,p为基于深度数据d映射到世界坐标系W中的点,q为基于深度数据d映射到图像坐标中的点,/>表示p点所在世界坐标系w中的法向量,/>表示将一个点从一个坐标系转换到另一坐标系的运算;C′t-1(x)表示时间戳为t-1时刻的同步数据帧中像素点x的颜色数据,/>表示时间戳为t时刻的同步数据帧中与像素点x对应的像素点/>的颜色数据,τ为在t时刻的同步数据帧中查找与t-1时刻的基于颜色数据的像素点x的对应点的函数;KL表示相邻同步数据帧中基于雷达数据的对应点集合,/>与/>为基于相邻同步数据帧中雷达数据的对应点p和q,p为基于雷达数据l映射到二维坐标系P中的点,q为基于雷达数据l映射到图像坐标系D中点,/>表示p点所在二维坐标系P中的法向量。
21.根据权利要求12所述的装置,其特征在于,所述场景创建模块还用于获取与读取到的同步数据帧相邻的前一同步数据帧对应的位姿数据;根据获取到的位姿数据和获取到的相对位姿数据,确定所述读取到的同步数据帧对应的位姿数据;根据读取到的同步数据帧和确定的位姿数据,构建三维子场景中的体素。
22.根据权利要求21所述的装置,其特征在于,所述场景创建模块还用于从读取到的同步数据帧中的深度图像帧,提取颜色数据和相应的深度数据;将所述颜色数据按照相应的深度数据和确定的位姿数据填充为三维子场景中的体素。
23.一种机器人,包括深度相机、雷达传感器、行走装置、存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至11中任一项所述方法的步骤。
24.一种存储有计算机程序的存储介质,所述计算机程序被处理器执行时,使得处理器执行如权利要求1至11中任一项所述方法的步骤。
CN201810388212.XA 2018-04-26 2018-04-26 三维场景图生成方法、装置和机器人 Active CN110415328B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810388212.XA CN110415328B (zh) 2018-04-26 2018-04-26 三维场景图生成方法、装置和机器人

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810388212.XA CN110415328B (zh) 2018-04-26 2018-04-26 三维场景图生成方法、装置和机器人

Publications (2)

Publication Number Publication Date
CN110415328A CN110415328A (zh) 2019-11-05
CN110415328B true CN110415328B (zh) 2024-03-26

Family

ID=68346076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810388212.XA Active CN110415328B (zh) 2018-04-26 2018-04-26 三维场景图生成方法、装置和机器人

Country Status (1)

Country Link
CN (1) CN110415328B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438449A (zh) * 2021-06-07 2021-09-24 西安恒盛安信智能技术有限公司 一种视频图像传输方法
CN113610702B (zh) * 2021-08-09 2022-05-06 北京百度网讯科技有限公司 一种建图方法、装置、电子设备及存储介质
CN113920278A (zh) * 2021-08-27 2022-01-11 清华大学 增强现实中的特效随动渲染方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915561A (zh) * 2012-09-27 2013-02-06 清华大学 一种管道结构三维重建方法
CN103198522A (zh) * 2013-04-23 2013-07-10 清华大学 三维场景模型生成方法
CN103988226A (zh) * 2011-08-31 2014-08-13 Metaio有限公司 用于估计摄像机运动以及用于确定实境三维模型的方法
CN106934827A (zh) * 2015-12-31 2017-07-07 杭州华为数字技术有限公司 三维场景的重建方法和装置
CN107004273A (zh) * 2014-12-12 2017-08-01 高通股份有限公司 用于彩色与深度视频的同步的方法、设备和媒体
CN107833270A (zh) * 2017-09-28 2018-03-23 浙江大学 基于深度相机的实时物体三维重建方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10373380B2 (en) * 2016-02-18 2019-08-06 Intel Corporation 3-dimensional scene analysis for augmented reality operations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103988226A (zh) * 2011-08-31 2014-08-13 Metaio有限公司 用于估计摄像机运动以及用于确定实境三维模型的方法
CN102915561A (zh) * 2012-09-27 2013-02-06 清华大学 一种管道结构三维重建方法
CN103198522A (zh) * 2013-04-23 2013-07-10 清华大学 三维场景模型生成方法
CN107004273A (zh) * 2014-12-12 2017-08-01 高通股份有限公司 用于彩色与深度视频的同步的方法、设备和媒体
CN106934827A (zh) * 2015-12-31 2017-07-07 杭州华为数字技术有限公司 三维场景的重建方法和装置
CN107833270A (zh) * 2017-09-28 2018-03-23 浙江大学 基于深度相机的实时物体三维重建方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于三视图的三维形体重建技术;刘世霞 等;计算机学报;第2卷(第02期);第141-146页 *

Also Published As

Publication number Publication date
CN110415328A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
CN110415328B (zh) 三维场景图生成方法、装置和机器人
US8995714B2 (en) Information creation device for estimating object position and information creation method and program for estimating object position
JP2019133658A (ja) 測位方法、測位装置及び読取り可能な記憶媒体
JP2016029564A (ja) 対象検出方法及び対象検出装置
EP1670237A2 (en) Matching un-synchronized image portions
EP2947868B1 (en) Method for creating panorama
KR20140108828A (ko) 카메라 트래킹 장치 및 방법
KR20180102639A (ko) 화상 처리 장치, 화상 처리 방법, 화상 처리 프로그램 및 기억 매체
JP2008176504A (ja) 物体検出装置及びその方法
JP6054771B2 (ja) 背景モデル構築装置、背景モデル構築方法、およびプログラム
CN109068118B (zh) 双摄模组的基线距离调整方法、装置及双摄模组
CN111008621B (zh) 对象追踪方法、装置、计算机设备和存储介质
EP2993891B1 (en) Electronic device and image capture method thereof
US11948312B2 (en) Object detection/tracking device, method, and program recording medium
EP3048558A1 (en) Object detecting method and object detecting apparatus
CN113286084B (zh) 终端的图像采集方法及装置、存储介质、终端
JP2016005263A (ja) 複数の撮影画像からパノラマ画像を生成する画像生成システム、端末、プログラム及び方法
CN110717593B (zh) 神经网络训练、移动信息测量、关键帧检测的方法及装置
WO2017096859A1 (zh) 照片的处理方法及装置
CN110365927B (zh) 视频录制方法、装置、存储介质和计算机设备
KR101840039B1 (ko) 영상 분석을 통한 동영상 촬영 시간 동기화 방법 및 장치
CN109313808B (zh) 图像处理系统
KR101544156B1 (ko) 동영상 리타겟팅 방법 및 이러한 기능이 탑재된 동영상 장치
KR101505360B1 (ko) 시차 탐색 범위 추정 장치 및 방법
KR102310789B1 (ko) 다양한 시점에서 연속적으로 획득된 영상을 활용한 카메라 자세 및 깊이 추정 장치 및 방법

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