CN109416843A - 实时高度映射 - Google Patents
实时高度映射 Download PDFInfo
- Publication number
- CN109416843A CN109416843A CN201780037984.2A CN201780037984A CN109416843A CN 109416843 A CN109416843 A CN 109416843A CN 201780037984 A CN201780037984 A CN 201780037984A CN 109416843 A CN109416843 A CN 109416843A
- Authority
- CN
- China
- Prior art keywords
- surface model
- depth
- space
- depth map
- cost function
- 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
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 claims description 87
- 238000009877 rendering Methods 0.000 claims description 49
- 238000005457 optimization Methods 0.000 claims description 32
- 238000005259 measurement Methods 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 5
- 230000009467 reduction Effects 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 2
- 238000011478 gradient descent method Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 241000208340 Araliaceae Species 0.000 claims 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims 1
- 235000003140 Panax quinquefolius Nutrition 0.000 claims 1
- 235000008434 ginseng Nutrition 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 13
- 230000006870 function Effects 0.000 description 39
- 230000008569 process Effects 0.000 description 20
- 238000004140 cleaning Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 7
- 230000004888 barrier function Effects 0.000 description 6
- 230000004927 fusion Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000009432 framing Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000037452 priming Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005553 drilling Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control 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/0253—Control 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 relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/56—Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
- G06V20/58—Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30248—Vehicle exterior or interior
- G06T2207/30252—Vehicle exterior; Vicinity of vehicle
- G06T2207/30261—Obstacle
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Electromagnetism (AREA)
- Computing Systems (AREA)
- Image Analysis (AREA)
- Processing Or Creating Images (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本文中描述的某些示例涉及适合于映射3D空间的设备和技术。在示例中,从由至少一个图像捕捉装置提供的深度图和相机姿态输入中实时生成高度图。高度图可被处理为生成自由空间图,从而确定机器人装置的空间的可导航部分。
Description
技术领域
本发明涉及用于映射三维(3D)空间的技术。本发明具体但非排他性地与基于来自单目相机的图像序列生成高度图相关,该序列是在相机相对于3D空间移动期间捕捉的。
背景技术
在计算机视觉和机器人领域,为了在3D空间(例如,室内)导航,机器人装置可采用一系列技术。
简单的导航解决方案可依赖于有限的感知和简单的算法,例如,红外或超声波传感器,该传感器检测站点线(line of site,视线)内的对象,然后,可以避开。
可替代地,更高级的解决方案可以使用各种工具和方法来构建周边3D空间的表示,以实现3D空间的导航。用于构建3D空间表示的已知技术包括“运动恢复结构(structurefrom motion)”和“多视点立体(multi-view stereo)”。称为“稀疏(sparse)”的某些技术使用数量减少的点或特征,例如,十到一百个,来生成表示。这些技术可与生成具有数千或数百万个点的表示的“密集”技术形成对比。通常,“稀疏”技术更容易实时实现,例如,每秒30帧左右的帧率,因为它们使用有限数量的点或特征,从而与资源更密集的“密集”映射技术相比,限制了处理的程度。
虽然诸如"Simultaneous Localisation And Mapping"(SLAM)(see J Engel,TSchoeps,and D.Cremers."LSDSLAM:Large-scale direct monocular SLAM".InProceedings of the European Conference on Computer Vision(ECCV),2014,andR.Mur-Artal and JD.Tardos."ORB-SLAM:Tracking and mapping recognizablefeatures.In Workshop on Multi View Geometry in Robotics(MVIGRO)"-RSS 2014,2014)等技术取得了很大的进步,但是更高级的解决方案通常依赖大量的计算资源和专门的传感器装置(例如,激光探测和测距LADAR传感器、结构光传感器或飞行时间深度相机),这使得难以转换成嵌入式计算装置,而嵌入式计算装置倾向于控制现实世界的商用机器人装置,例如,相较低成本的家用地板清洁机器人。
因此,需要一种可以在低成本机器人装置上实现的密集实时映射解决方案。
发明内容
根据本发明的第一方面,提供了一种用于映射观察的3D空间的设备。所述设备包括:映射引擎,其被配置为生成所述空间的表面模型;深度数据接口,用于获得所述空间的测量深度图;姿态数据接口,用于获得对应于测量深度图的姿态;以及可微渲染器。可微渲染器根据所述表面模型和来自所述姿态数据接口的姿态,渲染预测深度图;并且计算预测深度值相对于表面模型的几何形状的偏导数。所述映射引擎还被配置为:评估至少包括预测深度图和测量深度图之间的误差的成本函数;使用可微渲染器的偏导数,降低成本函数;并且使用降低成本函数的几何参数,更新表面模型。优选地,所述可微渲染器和所述映射引擎还被配置为迭代重复其相应的步骤:使用更新的表面模型重新渲染预测深度图;降低成本函数;并且更新表面模型。更优选地,更新表面模型直到深度图优化(从成本函数最小化)收敛。
在某些示例中,表面模型包括固定拓扑三角形网格。在其他示例中,表面模型包括相对于空间内的参考平面的一组高度值。
在一些情况下,所述映射引擎还被配置为对高度值应用阈值限制,以计算相对于参考平面的可导航空间。
在一个变型中,所述映射引擎实现生成模型,所述生成模型提供空间的深度图作为至少规定表面模型和姿态作为参数的采样变量。
在另一变型中,所述映射引擎还被配置为:在成本函数迭代最小化之后,来线性化基于测量深度图值和相应的渲染深度图值之间的差值的误差;并且在表面模型的至少一次后续更新中使用所述线性化误差项。线性化误差项表示估算表面模型中不确定性的度量。线性化误差项使得能够使用递归公式,该公式允许将来自至少一个(通常是多个)过去测量的信息用作先前概率值。这些先前概率值可以与在至少一次后续更新中计算的残差共同最小化。
在另一示例中,还提供了一种包含上述设备的机器人装置,并且还包括至少一个图像捕捉装置,用于记录包括深度数据和图像数据中的一个或多个的多个帧。机器人装置还包括:深度图处理器,用于从帧序列中确定深度图;以及姿态处理器,用于从帧序列中确定至少一个图像捕捉装置的姿态。该设备的深度数据接口通信地耦接到机器人装置的深度图处理器;并且该设备的姿态数据接口通信地耦接到机器人装置的姿态处理器。一个或多个移动致动器被设置成在空间内移动机器人装置,并且控制器被设置成控制所述一个或多个移动致动器,并且被配置为访问由映射引擎生成的表面模型,以在空间内导航机器人装置。
在一个示例中,机器人装置包括真空系统,并且在另一示例中,控制器被设置成根据由映射引擎生成的表面模型选择性地控制真空系统。
在某些情况下,图像捕捉装置是单目相机。
在本发明的第二实施例中,提供了一种生成3D空间的模型的方法。所述方法包括:获得该空间的测量深度图;获得对应于测量深度图的姿态;获得空间的初始表面模型;基于初始表面模型和获得的姿态,渲染预测深度图;从预测深度图的渲染中获得深度值相对于表面模型的几何参数的偏导数;使用偏导数来减少成本函数,成本函数至少包括预测深度图和测量深度图之间的误差;并且基于来自降低成本函数的几何参数的值,更新初始表面模型。优选地,该方法可以迭代地重复,每次基于先前更新的表面模型和获得的姿态来渲染更新的预测深度图;获得深度值相对于先前更新的表面模型的几何参数的更新的偏导数;通过使用更新的偏导数,最小化成本函数,来优化更新的渲染深度图,所述成本函数至少包括更新的渲染深度图和测量深度图之间的误差;并且在优化之后,基于来自最新深度图的几何参数值来更新先前的表面模型。可以重复该方法,直到优化收敛到预定阈值。
优选地,该方法还包括:获得该空间的观察的彩色图;获得空间的初始外观模型;基于初始外观模型、初始表面模型和所获得的姿态,渲染预测彩色图;并且从预测的彩色图的渲染中获得颜色值相对于外观模型参数的偏导数。通过以下步骤,迭代优化渲染的彩色图:使用偏导数,使成本函数最小化,所述成本函数至少包括预测的彩色图和测量的彩色图之间的误差;并且在迭代优化之后,基于来自彩色图的外观模型的参数的值,更新初始外观模型。
在一些示例中,所述表面模型包括固定拓扑三角形网格,并且所述几何参数至少包括在空间内的参考平面上方的高度,所述三角形网格内的每个三角形包括三个相关联的高度估算。
在其他情况下,成本函数包括应用于三角形网格内的每个三角形的多项式函数。
在一个变型中,所述预测深度图包括逆深度图,并且对于预测深度图的给定像素,与给定像素相关联的逆深度值相对于表面模型的几何参数的偏导数包括:逆深度值相对于三角形网格内的三角形顶点的各高度的一组偏导数,所述三角形是与穿过给定像素的光线相交的三角形。
在其他变型中,所述成本函数包括线性化误差项的函数,所述误差项由渲染深度图和测量深度图的至少一个先前比较产生,所述误差项由所述偏导数线性化。以这种方式,来自给定比较的误差信息(偏导数内表示的误差信息)可以用于后续比较。例如,表示多个过去比较的一组线性化误差项可以与表示当前比较的一组非线性误差项共同减少。
在一个示例中,通过使用梯度下降法降低成本函数来更新表面模型。
在其他示例中,该方法还包括:确定空间的表面模型的一组高度值;并且根据这组高度值,确定机器人装置的活动程序。
在本发明的第三实施例中,提供了一种非暂时性计算机可读存储介质,包括计算机可执行指令,这些指令当由处理器执行时,促使计算装置:获得3D空间的观察深度图;获得与观察深度图相对应的姿态;获得包括三角形元素网格的表面模型,每个三角形元素具有与元素顶点相关联的高度值,所述高度值表示参考平面上方的高度;基于表面模型和获得的姿态渲染模型深度图,包括计算渲染的深度值相对于表面模型的高度值的偏导数;将模型深度图与观察深度图进行比较,包括确定模型深度图和观察深度图之间的误差;并且基于误差和计算的偏导数,确定对表面模型的更新。
在一个示例中,所述计算机可执行指令促使计算装置响应于更新被确定,将与更新相关联的非线性误差项融合到与每个三角形元素相关联的成本函数中。优选地,所述计算机可执行指令促使计算装置通过基于更新的表面模型重新渲染更新的模型深度图,来迭代地优化所述预测深度图,直到所述优化收敛到预定阈值。
附图说明
根据本发明的参考附图进行的、仅通过示例给出的优选实施例的以下描述,本发明的其他特征和优点变得显而易见,其中:
图1是根据示例的生成的高度图的图形表示;
图2是根据示例的映射3D空间的方法的流程图;
图3是根据示例的用于映射观察到的3D空间的设备的示意图;
图4是根据示例的机器人装置的示意性方框图;
图5是根据示例的映射3D空间的方法的流程图;
图6A和图6B是示例机器人装置的示意图;
图7A和图7B分别是3D空间和相应自由空间地图的图示示例;
图8是根据示例的非暂时性计算机可读介质的示意性方框图;
图9A和图9B分别是示例生成图像形成和渲染过程的示意图;以及
图10是光线-三角形相交的示例。
具体实施方式
在本文中描述的某些示例涉及适合于映射3D空间的设备和技术。图1是由示例设备和方法生成的重构高度图100的示例可视化。在本发明的优选示例中,所得表面模型被建模为固定拓扑三角形网格,其被定义为规则二维(2D)正方形网格上方的高度图100。网格的每个三角形表面元素由参考平面上方的三个相关顶点来定义(也参见图10)。通过将表面模型形成为三角形网格,可以减少数据和计算工作量,因为表面模型的三角形网格中的相邻三角形表面元素彼此共享至少两个顶点。在更高级的实施例中,高度图还可以包括颜色信息,以包含3D空间的图像数据(不仅仅是几何数据)。
在一些示例中,观察到的深度图数据可用于实时渲染(预测)高度图100。可以处理重建的高度图100,生成自由空间图(也参见图7A和图7B),以确定可由机器人装置导航的3D空间部分。
映射方法概述
在一个示例中,关于图2,描述了高质量高度图和相应表面模型290的密集重建的鲁棒实时方法200,作为根据移动通过3D空间的至少一个图像捕捉装置(例如,单目视频输入)捕捉的帧210而计算的测量深度图数据240和相机姿态数据230的乘积。捕捉的帧210用于递归地估算表面模型290和相机的轨迹。可以使用已知的相机跟踪方法(方框211)来计算相机的运动和姿态(即,与图像捕捉装置的位置和方向相关的运动和姿态)数据,例如,基于由J.Zienkiewicz,R.Lukierski,and AJ.Davison in"Dense,autocalibrating visualodometry from a downward-looking camera"In Proceedings of the British MachineVision Conference(BMVC),2013中公开的平面密集视觉里程计的方法。
对于每个新捕捉的帧210,提供有3D空间的初始表面模型数据290和来自图像捕捉装置的相机姿态数据230,使用可微渲染(方框231)为观察到的3D空间渲染预测深度图250(以及可选地,如果提供了初始颜色数据,则为彩色图)。所得的渲染深度图250与测量的深度图240进行比较(方框251)。例如,通过使用平面扫描算法,对具有由图像捕捉装置捕捉的相应姿态数据220的每个图像帧210已经预先计算(在方框221)测量的深度图240。计算两个深度图(渲染250与测量240)之间的非线性误差260。使用作为可微渲染过程的部分(方框231)而计算出的偏导数梯度值235来减小(方框261)该非线性误差值260,以便优化渲染的深度图以及可选地优化彩色图。在优选示例中,根据优化的深度图,更新(方框271)表面图290上的每个单元。
针对给定帧210的深度图的优化(方框231、251、261)以及随后对表面模型的更新(方框271)迭代重复,直到优化“收敛”。优化的收敛例如可以是当渲染的深度图250和测量的深度图240之间的差值下降到预定阈值以下时。更新的表面模型290与捕捉的帧210的原始姿态数据230结合用于利用可微渲染(方框231)来渲染更新的预测深度图250(以及可选地,如果提供了初始颜色数据,则渲染更新的彩色图)。将所得的更新的渲染深度图250与原始测量深度图240进行比较(方框251),并将二者之间的非线性误差260与从渲染过程(方框231)中导出的偏导数梯度值235结合使用,以降低成本函数(方框261)。重复该过程,直到例如当渲染深度图250和测量深度图240之间的成本函数或误差值低于预定阈值时,优化收敛。一旦优化已经收敛,可以利用对表面模型290的最新更新,以递归方式将所得深度图“融合”到表面模型中,为要计算的下一帧210做好准备。
上述相机跟踪(210、211、220、221、230、240)和映射阶段(231、235、250、251、260、261、271、290)可以分开处理,以简化该方法。在第一步中,仅估算相机跟踪和姿态(方框211),并且随后被视为在当前帧的渲染(方框231)和迭代优化计算(231、235、250、251、260、261、271、290)期间的固定量。
当前公开的方法可以被视为递归的非线性优化问题。一旦(通过迭代最小化误差值/降低成本函数-方框261)给定帧210的渲染深度图已经优化,并且更新表面模型(方框271),则随着图像捕捉装置(在这个示例中,单目视频装置)移动通过3D空间时,为图像捕捉装置捕捉的每个后续帧210重复(递归地)该方法。因此,当每个新帧到达时,将测量的深度数据240与最新表面模型深度数据估算的生成可微渲染250进行比较(方框251),并且对渲染的深度图进行适当的贝叶斯更新。
非线性残差值用公式表示为当前帧的测量(逆)深度与渲染深度图生成的预测(逆)深度之间的差值。在计算中使用逆深度值(即,1/实际深度)可能会更有效,因为远距离对象的估算距离值实际上可能是无限的,从而导致差异/误差计算出现问题。通过利用逆深度图,这些大/无限深度值反而减少到零。
为了获得递归公式并保持所有过去的测量,误差项被线性化并保持为与当前帧的残差值(观察值和估算值之间的差值)共同最小化的“先验”。
使用示例高效可微渲染方法,能够将标准的局部估算深度(和颜色)的严格增量概率融合成可立即使用的密集模型。因此,仅使用单个前视相机来提供适合于精确自主导航的详细地图,本设备和方法可用于低成本机器人的自由空间和障碍映射。
映射设备概述
图3示出了根据本示例的设备300。该设备被配置为根据从至少一个图像捕捉装置(例如,相机)检索的深度图数据和相机姿态数据来渲染3D空间的实时表面模型。设备300包括用于检索深度图数据的深度数据接口310和用于检索姿态数据(与图像捕捉装置的位置和方向相关)的姿态数据接口320。该设备还包括映射引擎330和可微渲染器340。深度数据接口310与映射引擎330耦接,并将深度图数据传送到映射引擎330。姿态数据接口320与可微渲染器340耦接,并将姿态数据传送到可微渲染器340。映射引擎330和可微渲染器340彼此通信耦接。
将该设备和方法包含到机器人装置中
在一些示例中,上述设备和方法可以在机器人装置400内实现,如图4所示。机器人装置400搭载图3的设备300,并且还包括图像捕捉装置420,在一个示例中,图像捕捉装置420是相机,其捕捉3D空间的图像数据。在另一示例中,相机是单目摄影机。图像捕捉装置420耦接到深度图处理器430和姿态处理器440。深度图处理器430根据捕捉的图像数据计算深度数据,姿态处理器440计算相应的相机姿态数据(即,图像捕捉装置420的位置和方向)。深度图处理器430耦接到映射设备300的深度数据接口310(也参见图3)。姿态处理器440耦接到映射设备300的姿态数据320接口。
机器人装置400还可以包括移动控制器,例如,导航引擎450和移动致动器460。移动致动器460可以包括至少一个电机,该电机耦接到例如一个或多个轮子、轨道和/或滚轮,并且被设置成在3D空间内移动机器人装置400。
此外,机器人装置400的导航引擎450也可以耦接到映射设备300的映射引擎330和机器人装置400的移动致动器460。导航引擎450控制机器人装置450在3D空间内移动。在操作中,导航引擎450使用“自由空间地图”(如稍后将参考图7A和图7B描述的)来确定3D空间的可导航部分,并指示移动致动器460避开任何障碍物。例如,导航引擎450可以包括存储实现自由空间地图的数据的存储器或其他机器可读介质。
图5是根据示例的映射3D空间的方法500的流程图。在该示例中,图像捕捉装置是单目相机,移动通过3D空间,捕捉多个图像,所述多个图像用于递归估算表面模型以及相机在位于2D参考平面上的包含3D对象的3D空间内的轨迹。该信息可用作表面模型的初始状态/条件。
由深度图处理器430例如使用平面扫描算法从检索的3D空间的图像帧210测量和计算深度图,并将深度图传送到设备的深度数据接口310(方框510)。
由姿态处理器440(使用如上所述的技术)计算相机的帧间运动和姿态数据。相机姿态数据由映射设备300的姿态数据接口320检索,并转发给可微渲染器340(方框520)。
如先前参考图2所概述的,设备300的映射引擎330使用3D空间的条件的初步估算(具有初始几何形状、外观和相机姿态值的形式,例如,存在主要参考平面,或者在参考平面上方的相机高度)来生成3D空间的初始表面模型(方框530)。该初始表面模型以及由姿态数据接口320检索的相机姿态数据一起被可微渲染器340用于渲染观察场景的预测深度图(方框540)。该方法的一个重要元素是,考虑到初始表面模型和相机姿态数据,可微渲染器340可以计算深度值相对于模型参数的(偏)导数(方框550),并且渲染每个像素的预测图像和深度,几乎没有额外的计算成本。这允许设备通过利用并行化来实时执行基于梯度的最小化。将帧的渲染深度图直接与由深度数据接口310从深度图处理器430检索的测量深度图进行比较,并且计算这两个图之间误差的成本函数。由可微渲染过程计算的偏导数值(方框550)随后用于减少预测深度图250和测量深度图240之间的差值/误差的成本函数(方框560),并因此优化深度图。用从减小的成本函数(方框570)和优化的深度图导出的几何参数的值更新初始表面模型。
可微渲染器340随后使用更新的表面模型以及初始相机姿态数据(来自方框520)来渲染观察场景的更新的预测深度图(方框540)。将该更新的帧的渲染深度图直接与(来自方框510)该帧的原始测量深度图进行比较,并且使用由可微渲染过程计算的偏导数值(方框550)来减小成本函数(包括这两个图之间的误差)。在优化之后,再次更新表面模型,并且迭代地重复该过程(方框540、550、560、570),直到渲染深度图的优化收敛。例如,优化可以继续,直到渲染的深度图和测量的深度图之间的误差项降低到预定阈值以下。
在迭代优化过程之后,也可以更新线性化误差项。线性化误差项表示先前计算值的不确定性,并用于创建多项式(在本示例中,二次)约束,所述约束关于如何在当前(帧)深度图的迭代优化完成之后在未来递归中(例如在每一个帧)进一步修改/移位表面模型(在本示例中,三角形网格)的每个三角形表面元素的顶点以及这些顶点如何“融合”(即,包括)到最新表面模型中。由渲染深度图250和测量(“观察”)240深度图之间的残差建立约束。
本示例方法组合了生成模型方法和可微渲染过程,以使每个观察到的帧/场景210的似然函数最大化,该方法由此主动尝试将渲染的表面模型配置为最佳地表示观察到的3D空间。
此外,线性化误差项允许存储和更新完整的后验分布。信息滤波器的单三角形性质(而不是单顶点)考虑了地图上各个单元(顶点)之间的连接,并且在保持计算复杂性有界的同时,不丢弃任何信息。
对于捕捉的每个帧,重复整个过程,每个更新的表面模型替换先前的模型。
虽然所描述的设备和方法主要针对解析深度图,但是额外的颜色数据也可以包含到所得的高度图/表面模型中,并且在处理期间优化。在这种情况下,该方法类似于上面的方法,但是包括一些额外的步骤。首先,获得3D空间的观察到的彩色图以及(使用初始外观参数的)3D空间的初始“外观模型”。基于初始外观模型、初始表面模型和获得的相机姿态数据,渲染预测彩色图(也参见图9B)。根据预测彩色图的渲染,计算颜色值相对于外观模型参数的偏导数。导出成本函数,该成本函数包括预测深度图和测量深度图之间的误差以及预测彩色图和测量彩色图之间的误差。在(使用渲染过程中生成的偏导数)降低成本函数之后,然后,基于外观参数值更新初始外观模型。可以迭代地重复该过程,直到彩色图优化收敛。
示例机器人装置
图6A示出了可以装备有映射设备300的机器人装置605的第一示例600。提供这种机器人装置是为了便于理解以下示例,而不应被视为限制;具有不同配置的其他机器人装置同样可以应用以下段落中描述的操作。图6A的机器人装置605包括单目相机装置610,用于捕捉图像数据。在使用中,可以一个接一个地捕捉多个图像。在图6A的示例中,相机装置610安装在机器人装置上的可调节臂上;其中,臂和/或相机的高度和/或方向可以根据需要进行调整。在其他情况下,相机装置610可以静态安装在机器人装置605的主体部分内。在一种情况下,单目相机装置可以包括:静止图像装置,其被配置为捕捉图像序列;在另一种情况下,单目相机装置610可以包括视频装置,用于捕捉视频数据,视频数据包括具有视频帧的形式的图像序列。在某些情况下,视频装置可以被配置为以每秒25或30帧左右或大于25或30帧的帧率捕捉视频数据。机器人装置可以包括导航引擎620,并且在本示例中,机器人装置配备有相对于机器人装置605的主体部分设置的一组从动轮615和可旋转自由轮625。
图6B示出了机器人装置655的另一示例650。图6B的机器人装置655包括家用清洁机器人。类似于图6A中的机器人装置605,家用清洁机器人装置655包括单目相机装置660。在图6B的示例中,单目相机装置660安装在清洁机器人装置655的顶部。在一个实现方式中,清洁机器人装置655可以具有大约10至15cm的高度;然而,其他尺寸也是可能的。清洁机器人装置655还包括至少一个移动致动器665。在本情况下,移动致动器665包括至少一个电动机,该电动机被设置成驱动两组轨道,这些轨道安装在机器人装置655的任一侧,以向前和向后推动机器人装置。还可以差动驱动轨道,以使家用清洁机器人装置655转向。在其他示例中,可以提供不同的驱动和/或转向部件和技术。如图6A所示,清洁机器人装置655包括导航引擎670和可旋转自由轮675。
除了图6A所示的机器人装置605的部件之外,清洁机器人装置655包括清洁元件680。该清洁元件680可以包括用于清洁房间地板的元件。可以包括滚轴或刷子685和/或湿或干元件。在一种情况下,清洁元件680可以包括真空装置,该真空装置被设置成捕捉灰尘和尘粒。导航引擎可以被配置为使用由上述设备和方法生成的自由空间地图(如下文参考图7A和图7B所述)来确定3D空间的未占用区域的清洁图案,并根据该清洁图案,指示清洁元件680激活。例如,可以激活真空装置,来清洁房间内的自由空间区域,如生成的自由空间地图所示,其中,清洁机器人装置使用自由空间地图导航房间内的障碍物。此外,机器人装置655的导航引擎670可以使用生成的高度图来控制真空装置的活动,例如,以识别3D空间内用于清洁的特定区域。例如,机器人装置的导航引擎可以:当沿着地板表面中的裂缝(crevice)使机器人装置655转向时,激活真空装置;当机器人装置655遇到裂缝时,增加真空装置的吸力;或者在机器人装置655遇到松散电缆时,停止清洁元件680,以避免缠绕。
自由空间映射
生成的表面模型的一个理想特性在于,可以直接用于3D空间中的机器人导航和障碍物回避。在一个优选的示例中,重建基于高度图表示顶上的三角形网格,因此,可以将阈值应用于计算的高度值,以生成可用的量,例如,可驾驶的自由空间区域或基于其高度对墙壁、家具和小障碍物的分类。
图7A和图7B示出了将该方法应用于3D空间的结果,其中多个障碍物720位于参考平面710上(参见图7A)。对于图像中的每个像素,基于机器人装置能够安全穿越的固定阈值,例如,参考平面710上方1cm,检查相关网格单元(在参考平面710上)的高度并将其标记为自由空间。自由空间地图(图7B)随后覆盖在观察到的图像上,突出显示了3D空间内的可导航区域(如图7B中阴影所示)。尽管高度图不能正确地建模悬垂,但即使在这些场景中,该方法也可表现出正确的行为,并且即使地面正上方的区域是空隙,也可防止机器人碰到低悬障碍物。在当前实现方式中,该方法出奇地稳健,特别是对于自由空间检测任务。进一步的示例性方法可以评估高度图的梯度,以确定地形的粗糙度以及3D空间是否可穿越。
可以在嵌入机器人装置内的计算装置上实现上述映射设备300和导航引擎450中的任何一个(如图6A和图6B中的虚线620、670所示)。可以使用至少一个处理器和存储器和/或一个或多个片上系统控制器来实现映射装置300或导航引擎450。在某些情况下,导航引擎450或映射装置300可以通过机器可读指令来实现,例如,从只读或可编程存储器(例如,可擦除可编程只读存储器(EPROM))中检索的固件。
图8示出了处理器800,其被配备为执行存储在非暂时性计算机可读存储介质上的指令。当由处理器执行时,指令促使计算装置获得空间的观察深度图(方框810);获得与观察到的深度图相对应的相机姿态(方框820);获得表面模型(在该示例中,包括三角形元素的网格,每个三角形元素具有与元素顶点相关联的高度值,该高度值表示参考平面上方的高度)(方框830);基于表面模型和获得的姿态渲染模型深度图,该渲染包括计算渲染的深度值相对于表面模型的高度值的偏导数(方框840);将模型深度图与观察到的深度图进行比较,包括确定模型深度图和观察到的深度图之间的误差(方框850);并且基于误差和计算的偏导数,确定对表面模型的更新(方框860)。对于每个观察到的深度图(即,捕捉到的图像/帧),可以迭代地重复最后四个步骤,直到渲染的深度图优化(即,通过最小化渲染的深度图和观察到的深度图之间的误差)收敛。优化过程的收敛可以包括渲染的深度图和测量的深度图之间的误差值下降到低于预定阈值。
在另一示例中,一旦确定了表面模型更新,计算机可执行指令促使计算装置将与更新相关联的非线性误差项融合到与每个三角形元素相关联的成本函数中。
生成模型
本方法基于概率生成模型,图9A和图9B是概括生成模型中3D空间的几何图形G、相机姿态T和外观A参数到图像I和深度数据D的关系的示意图。3D空间的几何形状G与3D空间的形状和形式相关,而外观A与颜色/美学相关。虽然本方法主要针对3D空间的深度建模,因此仅需要来自几何形状和姿态的输入(如图9A所示),但是本领域的任何技术人员都很容易理解,所描述的设备和方法可以容易地扩展到建模图像数据I以及包括外观数据(如图9B所示)。以下详细描述涉及图像I以及深度数据D表示。
在要映射的3D空间内,任何给定的表面都由其几何形状G及其外观A来参数化。诸如相机等图像捕捉装置的“姿态”以及因此用其拍摄的任何图像是相机在给定3D空间内的位置和方向。3D空间中具有相关联的姿态T的相机对当前帧采样,并且渲染图像I和逆深度(即,1/实际深度)图D。
采用贝叶斯概率技术,模制图像形成过程的联合分布是:
P(I,D,G,A,T)=P(I|G,A,T)P(D|G,T)P(G)P(A)P(T)
在图像观测和表面估算之间的关系也可以用贝叶斯规则来表示:
P(G,A,T|I,D)∝P(I,D|G,A,T)P(G)P(A)P(T)
这允许推导相机姿态和表面的最大后验(MAP)估计:
argmaxG,A,TP(I,D|G,A,T)P(G)P(A)P(T)
项P(I,D|G,A,T)是一个似然函数,该似然函数可以使用可微渲染器来评估和区分。没有对帧的几何形状和/或颜色进行假设,这个问题被视为一个最大似然。相机姿态被视为由密集跟踪模块给出。通过这些简化并采用上述等式的负对数,获得以下最小化问题:
argminG,AF(G,A,T)
其中:
在此处,和分别表示测量的(观察的)逆深度图和图像,其中,相关测量不确定性由(对角)协方差矩阵∑D和∑I建模,而D和I表示使用G、A和给定T的当前估算渲染的预测逆深度图和图像。即使可微渲染过程以及因此函数F(G,A,T)是非线性的,能够访问G0、A0、T0的一些初始估算,并且能够评估成本函数F及其关于模型参数的导数,也允许以迭代方式找到标准非线性最小平方的估算。尤其需要计算偏导数和以及并且由可微渲染器从可微渲染过程中获得,几乎没有额外的计算成本。
可微渲染
当接收到每个新图像(帧)时,可微渲染方法基于深度图值(以及可选地,用于更高级图像建模的彩色图值)的加权优化。虽然该方法利用所捕捉的最新帧的渲染和预测深度(以及可选地,颜色)图之间的非线性误差项,但是所有先前的这种误差测量值都保持为“先验”线性误差项,以在优化深度图已经融合到表面模型中之后,确定如何进一步修改/移位表面模型(在这个示例中,三角形网格)顶点的多项式(在这个示例中,二次)约束,如下所述。因此,随着越来越多的数据收集、渲染、优化并融合到表面模型中,模型变得越来越稳健。
优化过程需要几次迭代,并且测量的数量和状态空间的大小很高,尽管连接其的任何雅可比矩阵(向量值函数的所有一阶偏导数的矩阵)都很稀疏。本方法由于可微渲染方法而是高效的,其中,在每次优化迭代时,通过渲染预测来重新评估逆深度(以及可选地,颜色测量)似然函数。同时,还计算了将用于优化阶段的雅可比矩阵的每像素元素。当正确实现时,这几乎不需要额外的计算成本。
关于图10,假设r(t)是一光线,由其起点p∈R3和方向向量d∈R3参数化,其中,r(t)=p+td,其中,t≥0。对于图像中的每一个像素,可以利用相机的固有特性和用作原点的相机参照系的中心,来计算光线。示例表面三角形由3个顶点v0、v1、v2参数化,其中,v0、v1、v2表示3D空间中的点,例如,v1=(x1、y1、z1)。(例如,使用Tomasand Ben Trumbore在1997年题为“Fast,Minimum Storage Ray/Triangle Intersection”的论文中讨论的光线-三角形相交算法)计算光线/三角形相交,并产生向量(t,u,v)T,其中,t是到三角形所在的平面的距离,u、v是光线交点相对于三角形的重心坐标(注意:重心坐标v与3D顶点坐标v0、v1、v2不同)。
t、u和v是渲染特定像素的深度(t)和颜色(u和v)所需的基本元素。深度值t与深度直接相关,而重心坐标(u和v)用于以如下方式基于RGB颜色三角形顶点(c0、c1、c2)内插颜色c:
c=(l-u-v)c0+uc1+vc2.
像素i的渲染逆深度di仅取决于光线相交的三角形的几何形状(以及相机姿态,假设该相机姿态对于给定帧是固定的)。在一个示例中,使用高度图来建模表面模型,其中,每个顶点仅具有一个自由度,其高度z。假设光线在距离1/di处与高度z0、z1、z2指定的三角形j相交(其中,di是像素i的逆深度),可以如下表示导数:
如果采用更高级的区分颜色/外观的步骤,则像素i的渲染颜色ci既取决于三角形(j)的几何形状,也取决于每个顶点的颜色。渲染颜色相对于顶点颜色的导数仅仅是重心坐标:
在本示例中,I表示单位矩阵(在本示例中,3×3)。因为在这种松散耦合的融合中,彩色图像已经用于生成确定高度图的深度图,所以忽略了彩色图像对高度图的依赖性,即,不计算相应的导数。这是保守的假设,以便可以独立处理颜色图和高度图。本质上,颜色估算只是用来改善高度图的表示。
通过线性化的高度图融合
如上所述的逆深度误差项具有以下形式:
其中,zj表示穿过像素i的光线所相交的三角形j的高度。这是前面概述的最小化问题的深度分量的标量适应。在这个示例中,zj=[z0,z1,z2]T。在优化完成后,误差项围绕当前估算线性估算为:
作为梯度下降的一部分来计算雅可比矩阵E为:
将帧融合到表面模型中后,基于“每个三角形”累积多项式(在本示例中,二次)成本。在深度图已经融合到表面模型中之后,这些线性化误差项产生多项式(在本示例中,二次)约束,确定如何进一步修改/移位表面模型顶点(在这个示例中,三角形网格)。根据渲染的和观察到的深度图之间的残差构建约束。因此,对于每个三角形j,二次成本项保持如下形式:
c=c0+bTz+zTAz
其中,co、b和A的值最初为零。可以直接获得这些成本项的梯度,因此,基于当前线性化误差项的每三角形成本更新(简单求和)包括以下运算:
展开并重新设置,提供了对每三角形二次成本系数的更新:
因此,与高度图相关的总成本Fz相当于:
其中,ei是测量深度和渲染深度之间的像素差,如前所述,j是所有三角形上的总和,i是所有像素上的总和。在优化终止(收敛)之后,执行当前非线性深度误差项到所有的二次每三角形成本项中的融合。注意,因此,线性成本项的数量由高度图中的三角形的数量限定,而非线性(逆)深度误差项的数量由图像捕捉装置中的像素数量限定。这是实时操作的一个重要属性。
作为一个示例,每个三角形的误差项最初设置为零,第一深度图融合到表面模型中。在第一深度图融合到表面模型中之后,更新每个三角形的二次约束,并且它们用作下一深度图的融合的先验(“弹性”约束)。然后,重复这个过程。
此外,注意,此处没有提到颜色融合,但是本领域技术人员可以直接扩展上述公式。由于颜色信息仅在此示例中用于改进高度图的显示,因此优选方法放弃融合颜色,而仅在总体成本函数中使用当前帧非线性颜色误差项。
优化
高度图融合表述为优化问题。此外,通过可微渲染,可以访问相关成本函数的梯度,而不会显著增加计算需求。当优化每个新帧210的深度图(以及可选地,彩色图)时,该设备和方法迭代地解决非线性“最小平方”问题。在每一次迭代中,标准的过程都需要形成标准方程并且例如通过Cholesky因子分解来求解。然而,由于要解决的问题的规模,所以使用明确地形成Hessian并且依赖矩阵因子分解的直接方法,是非常昂贵的。
相反,使用共轭梯度下降算法,该算法是间接的、无矩阵的,可以通过点积访问Hessian。在共轭梯度的每次迭代中,需要执行直线搜索,以便确定下降方向的步长。这需要重新评估成本函数。当用本方法评估成本函数时,几乎可以即时访问梯度,并且不搜索最佳步长,而是该方法接受导致成本降低的任何步长,并且在下一次迭代中,使用已经可用的梯度。通常需要大约10-20次迭代,直到优化过程收敛,这在当前实现方式中允许所描述的融合以大约15-20fps的速率运行。例如,当渲染的深度图和测量的深度图之间的误差值低于预定阈值时,可能会出现收敛。
总结
所公开的设备和方法提供了优于现有技术的许多优点。考虑到所使用的概率解释和生成模型,使用“单三角形”信息滤波器进行贝叶斯融合。该方法就线性化误差而言是最优的,并且在计算复杂度有限的情况下不丢弃任何信息。
该方法在图像分辨率和场景表示方面都具有高度可伸缩性。使用当前的GPU,可以非常高效地进行渲染,并且计算偏导数的成本几乎可以忽略不计。当直接应用于移动机器人时,所公开的方法既稳健又有效。
上述实施例应理解为本发明的说明性示例。设想了进一步实施例。例如,存在许多不同类型的相机和图像检索方法。可能从单独的来源获得深度、图像和相机姿态和跟踪数据,例如,来自专用深度相机(例如,Microsoft KinectTM)的深度数据和来自标准RGB相机的图像数据。此外,跟踪也可以直接集成到映射过程中。在一个示例中,五个最近的帧用于导出单个帧的深度图。
应当理解,关于任何一个实施例描述的任何特征可以单独使用,或者与描述的其他特征结合使用,并且还可以与任何其他实施例的一个或多个特征结合使用,或者与任何其他实施例的任何组合结合使用。应该注意,使用方法/过程图并不意味着有固定的顺序;例如,在图5中,方框520可以在方框510之前执行。可替代地,可以同时执行方框510和520。
此外,在不脱离由所附权利要求限定的本发明的范围的情况下,也可以采用上面未描述的等同物和修改。
Claims (26)
1.一种用于映射观察的3D空间的设备,所述设备包括:
映射引擎,被配置为生成所述空间的表面模型;
深度数据接口,用于获得所述空间的测量深度图;
姿态数据接口,用于获得与所述测量深度图对应的姿态;以及
可微渲染器,被配置为:
根据所述表面模型和来自所述姿态数据接口的所述姿态来渲染预测深度图;并且
计算预测深度值相对于所述表面模型的几何形状的偏导数,
其中,所述映射引擎还被配置为:
评估所述预测深度图与所述测量深度图之间的成本函数;
利用来自所述可微渲染器的所述偏导数来减小所述成本函数;并且
利用减小后的所述成本函数的几何参数来更新所述表面模型。
2.根据权利要求1所述的设备,其中,所述可微渲染器和所述映射引擎还被配置为通过以下方式来迭代优化所述表面模型:
使用更新后的所述表面模型来重新渲染所述预测深度图;
减小所述成本函数;以及
更新所述表面模型。
3.根据权利要求2所述的设备,其中,所述可微渲染器和所述映射引擎继续迭代地优化所述表面模型直到深度图的优化收敛于预定阈值。
4.根据任一项前述权利要求所述的设备,其中
所述表面模型包括固定拓扑的三角形网格。
5.根据任一项前述权利要求所述的设备,其中
所述表面模型包括所述空间内的相对于参考平面的一组高度值。
6.根据权利要求5所述的设备,其中
所述映射引擎还被配置为对所述高度值施加阈值限制以计算所述3D空间内相对于所述参考平面的可导航空间。
7.根据任一项前述权利要求所述的设备,其中
所述映射引擎执行提供所述空间的深度图的生成模型,所述空间的深度图作为至少规定所述表面模型和所述姿态为参数的采样变量。
8.根据权利要求3至7中任一项所述的设备,其中,所述映射引擎还被配置为:
在所述成本函数的迭代最小化之后,线性化基于测量深度图值与对应的渲染深度图值之间的差值的误差;以及
在所述表面模型的至少一次后续递归更新中使用所线性化的所述误差的项。
9.一种机器人装置,包括:
至少一个图像捕捉装置,用于记录多个帧,所述多个帧包括深度数据和图像数据中的一个或多个;
深度图处理器,用于从帧序列中确定深度图;
姿态处理器,用于从所述帧序列中确定所述至少一个图像捕捉装置的姿态;
根据权利要求1至8中任一项所述的设备,其中:
所述深度数据接口通信地耦接到所述深度图处理器;并且
所述姿态数据接口通信地耦接到所述姿态处理器;
一个或多个移动致动器,被设置成在3D空间内移动所述机器人装置;以及
控制器,被设置成控制所述一个或多个移动致动器,其中,所述控制器被配置为访问由所述映射引擎生成的所述表面模型以在所述3D空间内导航所述机器人装置。
10.根据权利要求9所述的机器人装置,还包括真空系统。
11.根据权利要求10所述的机器人装置,其中,所述控制器被设置成根据由所述映射引擎生成的所述表面模型来选择性地控制所述真空系统。
12.根据权利要求9至11中任一项所述的机器人装置,其中,所述图像捕捉装置是单目相机。
13.一种生成3D空间的模型的方法,所述方法包括:
获得所述空间的测量深度图;
获得与所述测量深度图对应的姿态;
获得所述空间的初始表面模型;
基于所述初始表面模型和所获得的姿态来渲染预测深度图;
从所述预测深度图的渲染中,获得深度值相对于表面模型的几何参数的偏导数;
使用所述偏导数来减少成本函数,所述成本函数至少包括所渲染的深度图与所述测量深度图之间的误差;以及
基于来自减小后的所述成本函数的几何参数的值来更新所述初始表面模型。
14.根据权利要求13所述的方法,其中,所述方法被迭代地重复以:
通过基于更新后的表面模型和所获得的姿态进行重新渲染来优化所述预测深度图;
获得更新后的深度值相对于更新后的表面模型的几何参数的更新后的偏导数;
使用更新后的偏导数来最小化成本函数,所述成本函数至少包括更新后的渲染深度图与所述测量深度图之间的误差;以及
基于最小化后的成本函数的几何参数来更新所述表面模型。
15.根据权利要求14所述的方法,其中
所述方法继续迭代直到深度图的优化收敛于预定阈值。
16.根据权利要求13至15中任一项所述的方法,还包括:
获得所述空间的观察彩色图;
获得所述空间的初始外观模型;
基于所述初始外观模型、所述初始表面模型和所获得的姿态来渲染预测彩色图;
从所述预测彩色图的渲染中,获得颜色值相对于外观模型的参数的偏导数;以及
通过以下方式迭代地优化所渲染的彩色图:
使用偏导数使成本函数最小化,所述成本函数至少包括所渲染的彩色图与测量彩色图之间的误差;以及
基于来自最小化后的成本函数的外观模型的参数的值来更新所述初始外观模型。
17.根据权利要求13至16中任一项所述的方法,其中
所述表面模型包括固定拓扑的三角形网格,并且所述几何参数至少包括在空间内的参考平面上方的高度,其中,所述三角形网格内的每个三角形包括三个相关联的高度估算。
18.根据权利要求17所述的方法,其中
所述成本函数包括应用于所述三角形网格内的每个三角形的多项式函数。
19.根据权利要求17或权利要求18所述的方法,其中
所述预测深度图包括逆深度图,并且对于所述预测深度图的给定像素,与所述给定像素相关联的逆深度值相对于所述表面模型的几何参数的偏导数包括逆深度值相对于所述三角形网格内的三角形的顶点的各高度的一组偏导数,所述三角形是与穿过所述给定像素的光线相交的一个三角形。
20.根据权利要求14至19中任一项所述的方法,其中
所述成本函数包括线性化误差项的函数,所述误差项由所渲染的深度图与所述测量深度图的至少一个先前比较产生,所述误差项由所述偏导数线性化。
21.根据权利要求13至20中任一项所述的方法,其中
通过减少所述成本函数来更新表面模型包括:使用梯度下降法。
22.根据权利要求13至21中任一项所述的方法,包括:
确定所述3D空间的表面模型的一组高度值;并且
根据所述一组高度值,确定机器人装置的活动程序。
23.一种非暂时性计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在被处理器执行时,使计算装置配置为:
获得3D空间的观察深度图;
获得与所述观察深度图对应的姿态;
获得包括三角形元素的网格的表面模型,每个三角形元素具有与元素的顶点相关联的高度值,所述高度值表示参考平面上方的高度;
基于所述表面模型和所获得的姿态来渲染模型深度图,包括计算所渲染的深度值相对于所述表面模型的高度值的偏导数;
将所述模型深度图与所述观察深度图进行比较,包括确定所述模型深度图与所述观察深度图之间的误差;以及
基于所述误差和所计算的偏导数来确定对所述表面模型的更新。
24.根据权利要求23所述的非暂时性计算机可读存储介质,其中,响应于所述更新被确定,所述计算机可执行指令使所述计算装置配置为:
将与所述更新相关联的非线性误差项融合到与每个三角形元素相关联的成本函数中。
25.根据权利要求23或24所述的非暂时性计算机可读存储介质,其中,所述计算机可执行指令使所述计算装置通过基于更新的表面模型渲染更新后的模型深度图来迭代地优化预测深度图,直到优化收敛于预定阈值。
26.一种用于映射观察的3D空间的设备,基本上如本文参考附图所述。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1608471.7 | 2016-05-13 | ||
GB1608471.7A GB2550347A (en) | 2016-05-13 | 2016-05-13 | Real-Time Height Mapping |
PCT/GB2017/051333 WO2017194962A1 (en) | 2016-05-13 | 2017-05-12 | Real-time height mapping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109416843A true CN109416843A (zh) | 2019-03-01 |
CN109416843B CN109416843B (zh) | 2022-12-06 |
Family
ID=56320386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780037984.2A Active CN109416843B (zh) | 2016-05-13 | 2017-05-12 | 实时高度映射 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20190080463A1 (zh) |
EP (1) | EP3455828A1 (zh) |
JP (1) | JP2019520633A (zh) |
KR (1) | KR20190015315A (zh) |
CN (1) | CN109416843B (zh) |
GB (1) | GB2550347A (zh) |
WO (1) | WO2017194962A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110393482A (zh) * | 2019-09-03 | 2019-11-01 | 深圳飞科机器人有限公司 | 地图处理方法以及清洁机器人 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8798840B2 (en) * | 2011-09-30 | 2014-08-05 | Irobot Corporation | Adaptive mapping with spatial summaries of sensor data |
US11810318B2 (en) * | 2016-09-09 | 2023-11-07 | Intel Corporation | Training and deploying pose regressions in neural networks in autonomous machines |
US10572970B2 (en) * | 2017-04-28 | 2020-02-25 | Google Llc | Extracting 2D floor plan from 3D GRID representation of interior space |
DE102017113286A1 (de) * | 2017-06-16 | 2018-12-20 | Vorwerk & Co. Interholding Gmbh | System mit mindestens zwei sich selbsttätig fortbewegenden Bodenbearbeitungsgeräten |
US10565747B2 (en) * | 2017-09-06 | 2020-02-18 | Nvidia Corporation | Differentiable rendering pipeline for inverse graphics |
WO2019140126A1 (en) * | 2018-01-10 | 2019-07-18 | Simbe Robotics, Inc | Method for detecting and responding to spills and hazards |
KR20220083666A (ko) * | 2019-08-06 | 2022-06-20 | 보스턴 다이나믹스, 인크. | 제약된 이동성 매핑 |
DE102020111659A1 (de) * | 2020-04-29 | 2021-11-04 | Car.Software Estonia As | Verfahren, System und Computerprogrammprodukt zur Bestimmung der Pose einer mobilen Einheit |
EP4217810A1 (en) * | 2020-09-25 | 2023-08-02 | Abb Schweiz Ag | System and method for controlling a mobile industrial robot using a probabilistic occupancy grid |
KR20220072146A (ko) * | 2020-11-25 | 2022-06-02 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
KR102339472B1 (ko) * | 2020-12-23 | 2021-12-16 | 고려대학교 산학협력단 | 3차원 공간 모델 생성 방법 및 장치 |
CN116433756B (zh) * | 2023-06-15 | 2023-08-18 | 浪潮智慧科技有限公司 | 一种单目相机的地表物体空间分析方法、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5936628A (en) * | 1991-08-06 | 1999-08-10 | Canon Kabushiki Kaisha | Three-dimensional model processing method, and apparatus therefor |
US20080031492A1 (en) * | 2006-07-10 | 2008-02-07 | Fondazione Bruno Kessler | Method and apparatus for tracking a number of objects or object parts in image sequences |
CN101383053A (zh) * | 2008-10-31 | 2009-03-11 | 北京理工大学 | 基于表面积保持的3d网格变形方法 |
WO2010010342A1 (en) * | 2008-07-25 | 2010-01-28 | Omniperception Limited | A system and method for facial recognition |
CN103971409A (zh) * | 2014-05-22 | 2014-08-06 | 福州大学 | 一种利用rgb-d摄像机测量足部三维脚型信息及三维重建模型的方法 |
US20140267248A1 (en) * | 2013-03-14 | 2014-09-18 | Robert Bosch Gmbh | System And Method For Generation Of Shadow Effects In Three-Dimensional Graphics |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080309662A1 (en) * | 2005-12-14 | 2008-12-18 | Tal Hassner | Example Based 3D Reconstruction |
US10019657B2 (en) * | 2015-05-28 | 2018-07-10 | Adobe Systems Incorporated | Joint depth estimation and semantic segmentation from a single image |
CN106157307B (zh) * | 2016-06-27 | 2018-09-11 | 浙江工商大学 | 一种基于多尺度cnn和连续crf的单目图像深度估计方法 |
-
2016
- 2016-05-13 GB GB1608471.7A patent/GB2550347A/en not_active Withdrawn
-
2017
- 2017-05-12 EP EP17736699.4A patent/EP3455828A1/en not_active Withdrawn
- 2017-05-12 KR KR1020187036316A patent/KR20190015315A/ko unknown
- 2017-05-12 JP JP2018559725A patent/JP2019520633A/ja active Pending
- 2017-05-12 WO PCT/GB2017/051333 patent/WO2017194962A1/en unknown
- 2017-05-12 CN CN201780037984.2A patent/CN109416843B/zh active Active
-
2018
- 2018-11-13 US US16/188,693 patent/US20190080463A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5936628A (en) * | 1991-08-06 | 1999-08-10 | Canon Kabushiki Kaisha | Three-dimensional model processing method, and apparatus therefor |
US20080031492A1 (en) * | 2006-07-10 | 2008-02-07 | Fondazione Bruno Kessler | Method and apparatus for tracking a number of objects or object parts in image sequences |
WO2010010342A1 (en) * | 2008-07-25 | 2010-01-28 | Omniperception Limited | A system and method for facial recognition |
CN101383053A (zh) * | 2008-10-31 | 2009-03-11 | 北京理工大学 | 基于表面积保持的3d网格变形方法 |
US20140267248A1 (en) * | 2013-03-14 | 2014-09-18 | Robert Bosch Gmbh | System And Method For Generation Of Shadow Effects In Three-Dimensional Graphics |
CN103971409A (zh) * | 2014-05-22 | 2014-08-06 | 福州大学 | 一种利用rgb-d摄像机测量足部三维脚型信息及三维重建模型的方法 |
Non-Patent Citations (1)
Title |
---|
MATTHEW M. LOPER 等: "OpenDR: An Approximate Differentiable Renderer", 《COMPUTER VISION-ECCV 2014》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110393482A (zh) * | 2019-09-03 | 2019-11-01 | 深圳飞科机器人有限公司 | 地图处理方法以及清洁机器人 |
Also Published As
Publication number | Publication date |
---|---|
WO2017194962A1 (en) | 2017-11-16 |
US20190080463A1 (en) | 2019-03-14 |
KR20190015315A (ko) | 2019-02-13 |
CN109416843B (zh) | 2022-12-06 |
EP3455828A1 (en) | 2019-03-20 |
JP2019520633A (ja) | 2019-07-18 |
GB201608471D0 (en) | 2016-06-29 |
GB2550347A (en) | 2017-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109416843A (zh) | 实时高度映射 | |
CN110801180B (zh) | 清洁机器人的运行方法及装置 | |
KR101725060B1 (ko) | 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
US9025861B2 (en) | System and method for floorplan reconstruction and three-dimensional modeling | |
Gutmann et al. | A floor and obstacle height map for 3D navigation of a humanoid robot | |
KR101776622B1 (ko) | 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
US9858640B1 (en) | Device and method for merging 3D point clouds from sparsely distributed viewpoints | |
JP6044005B2 (ja) | 部分的に既知の環境におけるカメラの位置特定および3d再構築を行う方法 | |
EP2420975B1 (en) | System and method for 3d wireframe reconstruction from video | |
KR101776620B1 (ko) | 검색 기반 상관 매칭을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
US8896660B2 (en) | Method and apparatus for computing error-bounded position and orientation of panoramic cameras in real-world environments | |
Borrmann et al. | The project thermalmapper–thermal 3d mapping of indoor environments for saving energy | |
Sinclair et al. | Quantitative planar region detection | |
CA2813742A1 (en) | Rapid 3d modeling | |
Einhorn et al. | Generic 2D/3D SLAM with NDT maps for lifelong application | |
Shah et al. | Mobile robot navigation and scene modeling using stereo fish-eye lens system | |
Li et al. | Dense surface reconstruction from monocular vision and LiDAR | |
Alcantarilla et al. | Large-scale dense 3D reconstruction from stereo imagery | |
Pitzer et al. | Automatic reconstruction of textured 3D models | |
Ishikawa et al. | In-situ 3d indoor modeler with a camera and self-contained sensors | |
Koch | Automatic reconstruction of buildings from stereoscopic image sequences | |
CN114241134A (zh) | 一种基于人机交互的虚实融合三维物体快速碰撞检测系统 | |
Buck et al. | Capturing uncertainty in monocular depth estimation: Towards fuzzy voxel maps | |
Koch et al. | Automatic 3d model acquisition from uncalibrated image sequences | |
Cheng et al. | Stereovision bias removal by autocorrelation |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201204 Address after: England Atsushi Applicant after: Imperial Institute of Technology Innovation Co.,Ltd. Address before: England Atsushi Applicant before: IMPERIAL College OF SCIENCE TECHNOLOGY AND MEDICINE |
|
GR01 | Patent grant | ||
GR01 | Patent grant |