基于2D-SLAM的轻量级语义驱动的稀疏重建方法与流程

文档序号:19741570发布日期:2020-01-18 05:18阅读:980来源:国知局
基于2D-SLAM的轻量级语义驱动的稀疏重建方法与流程

本发明涉及清洁机器人,尤其是涉及一种基于2d-slam的轻量级语义驱动的稀疏重建方法。



背景技术:

在2d-slam功能基础上,清洁机器人需要能够理解地面上的一滩水,或作为特殊地标的门,花瓶等,进行绕行或相关处理。需要有两项功能支持:目标对象的语义理解和空间定位。

如何在基本2d-slam能力的基础上,在不需要较大的计算能力的基础上,获得对特殊目标物的语义(物体类型)和空间(3d或2d范围)的理解,是一大难题。

例如,地面上的一滩水和一幅竖立的“水”图,对图像识别是没区别的。这就需要依赖“水”的空间定位帮助判别和规划。如果是一幅图,一定与激光雷达的边界重合。如果是地面上的水,是与地面贴近的,单依赖图像检测是做不到的。此外,目前使得图像具有空间结构的3d重建的计算量非常大,计算能力基本上都是pc级别的(例如,自动驾驶的汽车等)。



技术实现要素:

鉴于以上所述,本发明的目的在于提供一种基于2d-slam的轻量级语义驱动的稀疏重建方法,能够准确地识别特殊目标物。

本发明的基于2d-slam的轻量级语义驱动的稀疏重建方法,包括如下步骤:

(1)预设语义目标类型,当通过图像语义识别算法判断摄像头拍摄的图片中有与预设语义目标类型相同的目标物时,触发3d重建算法模块;

(2)通过2d-slam模块向所述3d重建算法模块提供所述摄像头在2d地图上的位置姿态信息,并通过图像特征提取匹配算法对步骤(1)中的目标物进行3d稀疏重建,得到目标物的3d空间坐标;

(3)将步骤(2)中的3d空间坐标放置在2d-slam地图上,得到目标物在2d-slam地图的坐标和目标物的类型。

根据本发明,采用2d-slam用于构建地图,并采用3d重建使得图像具有空间结构,尤其是,本发明并非实时进行3d重建,只有图像识别到目标物,才进行3d重建;也并非对目标物所有的特征点进行3d重建,只对最能准确构建3d结构的特征点进行3d重建,从而减少计算量。

优选地,清洁机器人根据步骤(3)得到的目标物在2d-slam地图的坐标和目标物的类型采取相应的清洁策略。

根据本发明,结合图像识别在清洁机器人领域的应用具有有益效果,可以对待清扫物体准确理解从而相应地采取清洁策略。

优选地,所述清洁策略包括清洁机器人绕行,只扫不拖,只拖不扫,增加吸尘风速,和/或报警。

优选地,所述步骤(1)中,通过摄像头对前方景物进行图像识别,通过语义识别算法,前方景物的图像根据其中的物体类型被分割成一个个图像块,每个图像块对应有类型和置信度,当某个图像块的置信度高于阈值时,即判断该图像块中的物体类型和预设语义目标类型一致。

优选地,所述步骤(2)中,通过图像特征提取匹配算法提取图像中的特征点,并对语义目标相关的特征点加以匹配,获得目标物在不同图像中的运动变化关系,并基于所述运动变化关系和成像模型得到目标物的3d空间坐标。

优选地,当2d-slam模块提供的位置姿态信息不准确时,对被重建物的边界进行优化。

优选地,可采用sba非线性优化。

本发明使用摄像头和图像识别技术,对特殊目标物进行语义层面的检测。当检测到特殊目标物,并达到一定的置信度时,启动针对目标物的3d重建。

对目标物的3d重建使用摄像头,例如可在目标物周围不同点采集5~10帧图像,使用3d重建和非线性优化的方法,得到目标物的3d空间结构。

把目标物3d结构映射到2d地图上,得到清洁机器人的作业范围。

有益效果:

本发明的基于2d-slam的轻量级语义驱动的稀疏重建方法,采用2d-slam用于构建地图,并采用3d重建使得图像具有空间结构,尤其是,本发明并非实时进行3d重建,只有图像识别到目标物,才进行3d重建;也并非对目标物所有的特征点进行3d重建,只对最能准确构建3d结构的特征点进行3d重建,从而减少计算量。

附图说明

图1是本发明的基于2d-slam的轻量级语义驱动的稀疏重建方法的总体算法框架图;

图2是图1所示图像语义识别算法的示意图;

图3是图像语义识别算法中的对象识别的示意图;

图4是图像语义识别算法中的语义分割的示意图;

图5是图1所示图像特征提取匹配算法的示意图;

图6是图1所示3d稀疏重建算法的针孔相机模型的示意图;

图7是图1所示3d稀疏重建算法的对极约束的示意图;

图8是sba非线性优化的示意图;

图9是本发明的基于2d-slam的轻量级语义驱动的稀疏重建方法的流程图。

具体实施方式

以下,参照附图进一步详细说明本发明。

本发明中的基于2d-slam的轻量级语义驱动的稀疏重建方法具体指基于2d-slam的轻量级语义驱动的3d稀疏重建方法。

针对现有技术中3d重建计算量大等问题,本发明提供了一种基于2d-slam的轻量级语义驱动的稀疏重建方法,可包括如下步骤。

1、预设语义目标类型,通过图像语义识别算法判断摄像头拍摄的图片中是否有和预设语义目标类型相同的目标物体,如果有,则开始3d重建。

2、通过2d-slam模块向3d重构算法模块提供相机在2d地图上的位置姿态信息,并通过图像特征提取匹配算法对步骤1中的目标物体进行3d稀疏重建,得到目标物的3d空间坐标。

3、将步骤2中的3d空间坐标放置在2d-slam地图上,得到目标物在2d-slam地图的坐标和目标物的类型。

4、清洁机器人根据步骤3得到的目标物在2d-slam地图的坐标和目标物的类型采取相应的清洁策略。

在一个实施例中,上述步骤中的目标物包括粪便、水、铁钉、人、火苗等。

在一个实施例中,步骤4中的清洁策略包括清洁机器人绕行,只扫不拖,只拖不扫,增加吸尘风速,报警等。

图1是本发明的基于2d-slam的轻量级语义驱动的稀疏重建方法的总体算法框架图。如图1所示,图像语义识别算法是整个方法的触发条件。图像语义识别算法可采用现有的各种算法,当语义目标的识别置信度高于阈值时,触发3d重构流程,并向3d重构算法提供语义目标在图像中的位置区域信息。也就是说,本发明并非实时进行3d重建,只有图像识别到目标物,才进行3d重建。

具体地,首先预设语义目标的类型,预设语义目标的类型可以是影响清扫策略的物体类型,如水,宠物粪便,铁钉,人,火苗等,然后通过摄像头对前方景物进行图像识别,通过语义识别算法,前方景物的图像根据其中的物体类型被分割成一个个图像块,每个图像块对应有类型和置信度,当某个图像块的置信度高于阈值时,即判断该图像块中的物体类型和预设语义目标的类型一致,从而开始3d重建。

图像特征提取匹配算法将提取图像中的特征点(例如可采用现有技术中的各类算法进行提取),并对语义目标相关的特征点加以匹配,获得目标对象在不同图像中的运动变化关系。具体地,在下文结合图6和图7的数学模型进行详细描述,图6和图7的数学模型可以是现有的3d重建模型。

2d-slam模块向3d重构算法提供相机在2d地图上的位置姿态信息,也就是提供了图像间的运动关系的初始值。2d-slam是一类算法,可以是基于激光雷达的,也可以是基于声呐,视觉的。其输出是2d的实时定位和地图信息。定位信息描述相机所在位置姿态(x,y,theta),地图信息是相机的参照系统。其中,theta是摄像头的角度,即摄像头光轴方向。2d-slam模块可采用各种现有的手段得到上述位置姿态信息。

3d稀疏重构算法针对语义目标的特征点,以相机运动关系(来自2d-slam模块)和相机成像模型(基于图6和图7的数学模型)为输入,计算出语义目标的特征点的3d坐标。

此外,如果2d-slam模块提供的相机位姿足够准确,则3d稀疏重构算法将输出足够准确的语义目标的3d空间分布。若2d-slam模块提供的相机位姿不够准确,则可以针对语义目标的对极约束误差,进行sba非线性优化,获得更准确的目标空间分布。

进一步而言,图2是图1所示图像语义识别算法的示意图。图像语义识别算法包括:对象识别(objectdetection)和语义分割(semanticsegmentation)。近几年深度学习的方法超越了传统算法,甚至超越了人的判断力。本发明基于深度学习的方法,但不限于深度学习的图像处理技术。它们的处理过程类似,如图2所示。

图3是图像语义识别算法中的对象识别的示意图。对象识别的输出如图3所示,每个语义目标的关键信息有:

类型:识别算法支持的物体类型的子集,例如,图3中“人”、“车”、“马”、“狗”;

位置,即各个语义模块在整个图片中的位置:在图3中是一个矩形区域,某些对象识别模型(maskrcnn)也可以是对物体的实际边界区域;

置信度:例如,图3中的0.991,表示矩形内主体有“人”的概率达到99.1%。

图4是图像语义识别算法中的语义分割的示意图。语义分割算法输出图像不同区域“含义”的理解,是像素级别的分类。如图4所示,汽车,人,人行道,汽车道有不同的“作用”,这种“含义”的不同决定了图片中每个像素的“类型”或空间划分。即,将图片根据语义分割,得到一个个具有语义的图片块。

图5是图1所示图像特征提取匹配算法的示意图。现有的图像特征提取(featureextraction)算法有surf,sift,orb等。输出是图像中的特征点(feature)及其描述子(descriptor)。相机在运动过程所拍摄的图像,相邻帧之间会有重复的物体(不考虑相机运动超出相机快门的情况)。重复的物体有相同的特征点,会有对应关系,通过匹配算法(matching)将对应关系找出来。如图5所示,相机相对于小车有不同视角的拍摄,算法将小车在不同图片中的特征点联系起来。

图6是图1所示3d稀疏重建算法的针孔相机模型的示意图。3d稀疏重构算法根据针孔相机模型和对极约束,以及相邻两帧之间的位姿关系,计算出目标点或者目标点群的空间位置(x,y,z)。该模型的数学描述是:

s*puv=k*t(r,t)*pw

其中:s是相机焦距,

puv是目标点在标准成像平面上的位置(u,v,1).t,

k是相机的内部参数,是常数,

pw是目标点的3d坐标(x,y,z).t,此处的3d坐标并不是目标点的空间3d坐标,该坐标是以成像平面为参考系的3d坐标,

t(r,t)相机的变换矩阵,

r,旋转矩阵,

t,平移量。

图7是图1所示3d稀疏重建算法的对极约束的示意图。如图7所示,可以通过对两幅图片中的“匹配点”(即是相同点)构造方程组:

1)s*puv=k*pw

2)s*puv’=k*t(r,t)1:3*pw

其中,puv是第一幅图上目标点的坐标,puv’是第二幅图上目标点的坐标。解此方程组可以得到r,t以及pw值。pw是目标点的3d坐标。

使用2d-slam模块的数据直接计算目标点:

当2d-slam模块能够提供准确的相机位姿和相对移动r,t值时,可以通过方程2)直接算出pw,也就是目标点的(x,y,z)。

使用2d-slam模块的数据提高数据的准确性:

当2d-slam模块提供的r,t和对极约束计算的r‘,t‘方差稳定时,可以用滤波算法互相校正,获得更准确的数据来计算目标对象的坐标pw。

可选地,当目标物边界分布的范围不服从正态分布,意味着重建不够准确,本发明还可采用sba非线性优化,对被重建物体的边界进行优化。当上述算法计算的r,t和位姿依然不够准确时,可以使用相邻的多帧,做非线性优化来获得更准确的目标对象坐标,如图8所示。其方法是构造一幅图,图的节点是相机的位姿(x,y,theta).t和目标点的坐标(x,y,z).t。

约束边是相邻相机位姿的运动(r,t)和相机与目标点之间的相机投影模型,即s*puv=k*t*pw。最后通过非线性优化库,如g2o或ceres求解。

图9是本发明的基于2d-slam的轻量级语义驱动的稀疏重建方法的流程图。

本发明的目的是在2d-slam有限的资源条件下,赋予目标对象的语义特性和3d坐标重建方法。其特点在于:

1、只有在检测到目标物,且识别置信度高到一定程度,才做3d重建;即、非实时3d重建,减少计算量和能耗;

2、3d重建只针对图像中的目标物的特征点,不对全图做3d重建;即、稀疏重建,只对特征点进行重建,非对所有点进行3d重建;

3、可以优选特征点数量(选择特征点匹配值高的点),所以是稀疏的3d重建;即、选择匹配值高的点,以尽可能少的点构建3d模型;

4、不需要较大的计算能力;

5、是一种基于2dslam的廉价的语义slam方案。

更具体地,如下所述:1、图像处理的对象识别,一般会得到对象的{对象类型,位置,置信度}。位置信息一般是一个框,或者对象在图片上的mask,或边界。

2、当置信度在某个阈值之上时,机器人进入3d重建模式:

a)控制机器人横向或斜向行走;

b)在目标对象被观测区域选取5~10帧图片,对相邻两张图片做orb特征提取和匹配,(opencvxfeature2d模块);

c)若匹配点落在对象识别区域,则用于做3d重建。其它点删除;

d)使用对极约束求相邻两帧之间的运动(r,t)(基于opencvcalib3d)。这里可用里程计数据作为观测校正;

e)对所有5~10帧数据做bundleadjustment(光束平差法),得到优化后的相机运动【r,t】及位姿{x/y/theta}以及目标物特征点的3d坐标值。(如果d步经过里程计校正后已经很准,可以跳过这一步)。

3、把目标物的3d坐标z值归零,得到2d地图上的区域。于是获得了相关区域的语义理解(图像识别的对象类型)和空间位置(目标物区域)。

此外,也可能存在以下情况:

有可能目标物的图像特征点不丰富。建议:放弃3d重构。

目标物的物体的边界上特征点缺失。导致边界不全(范围缩小)。建议可根据前期的3d重建结果,做增强版的3d重建(通过绕行,采集更多图像数据)。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1