首页> 中国专利> 一种基于视觉内容的多层语义地图的创建方法

一种基于视觉内容的多层语义地图的创建方法

摘要

本发明公开一种基于视觉内容的多层语义地图的创建方法,包括:将机器人在环境中漫游拍摄的图像集合按照拍摄地点场景进行标注;构建分层词汇树;构建知识拓扑层,为知识拓扑层赋予知识;构建场景拓扑层;构建地点拓扑层。本发明利用视觉传感器对空间构建多层语义地图,在知识拓扑层使用有向图结构存储和查询知识,可以省去知识表达系统中不必要的操作,插入和查询速度快;利用场景拓扑层对环境进行抽象划分,将整个环境抽象成子区域,可减小图像的检索空间和路径搜索空间;利用地点拓扑层对特定的地点图像进行保存,采用图像检索技术即可自定位,不必维护全局的世界坐标系,解决了自定位估计误差累计问题。

著录项

  • 公开/公告号CN103712617A

    专利类型发明专利

  • 公开/公告日2014-04-09

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN201310700792.9

  • 申请日2013-12-18

  • 分类号G01C21/00(20060101);G06F17/30(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人张慧

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2024-02-19 22:44:42

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-01

    专利权的转移 IPC(主分类):G01C21/00 登记生效日:20190202 变更前: 变更后: 申请日:20131218

    专利申请权、专利权的转移

  • 2016-08-24

    授权

    授权

  • 2014-05-07

    实质审查的生效 IPC(主分类):G01C21/00 申请日:20131218

    实质审查的生效

  • 2014-04-09

    公开

    公开

说明书

技术领域

本发明属于机器人导航领域,涉及一种利用视觉传感器进行多层语义地图的创建方法, 该多层语义地图共有三层,包括特定地点互连信息的拓扑地图、场景互连的拓扑地图和知识 拓扑地图。

背景技术

当前,移动机器人被广泛地应用于工业、航空航天、军事和服务等领域。随着社会的发 展,人们对机器人的智能性要求也越来越高,服务机器人已成为研究和应用的热点。在人类 的一次导航任务中,通常首先思考目标地点,例如“我要找的玩具机器人在什么地方”,然后 思考“我现在在什么地方”,接着思考“怎么从我所在地方到玩具机器人所在的地方”。而“地 方”、“玩具机器人”等信息就是环境中的语义信息,具有先验知识的人类能通过视觉获得场 景中的语义信息。描述某一地点的图像具有明确的语义内容,例如“机器人实验室”、“走廊”、 “会议室”等都代表着一定的区域(语义),而不同区域之间通常具有差异性。此外,“玩具 机器人”则表示一个物体,人类同样也可以通过视觉方便地获得。具备语义识别能力的人不 需要知道环境的世界坐标,仅仅通过对环境的熟悉程度,利用已有的语义信息和大致的空间 位置关系,即可找到“玩具机器人”。同样,服务机器人只有具备对语义信息的处理能力,才 能更好、更加智能地完成诸如“拿盒牛奶”等事务性导航任务。由此可见,环境中的语义信 息对机器人的导航具有很好的指导作用,可以大大地减少机器人路径规划的搜索空间,并实 现更加智能的任务操作。

随着计算机视觉领域的物体识别、场景识别、姿态估计以及图像检索等技术的发展,机 器人的视觉导航已经成为可能。2006年,D.Nister等在论文“Scalable Recognition with a  Vocabulary Tree”中提出一种分层词汇树图像检索方法,采用分层词汇树方法对图像内容进行 压缩,使用生成的视觉单词向量表示整个图像,并以视觉单词为检索元素,将图像进行倒排 索引。该方法可以处理百万数量的图像,而且查询的时间在十毫秒级别,完全可以用于机器 人视觉导航中的实时地点识别任务。2007年,F.Fraundorfer等在论文“Topological mapping, localization and navigation using image collections”中将D.Nister提出的分层词汇树图像检索 方法用于机器人视觉导航中,机器人漫游过程中拍摄的图像经过分层词汇树视觉单词化之后 存入倒排索引数据库,一帧图像代表一个拓扑节点,形成拓扑地图。该方法通过相似地点的 查询实现定位,以及图像之间的姿态差进行导航。其不足是,在大范围场景中,需要维护庞 大的词汇树和倒排索引数据库,影响拓扑导航的性能。2007年A.Bouguerra等在论文“Semantic  Knowledge-Based Execution Monitoring for Mobile Robots”中提出使用视觉传感器获得的语义 信息对机器人的定位进行指导的技术,通过视觉传感器识别物体,然后判断物体应该所属的 房间。该系统对语义信息的利用仅仅在判断机器人是否到达目标房间,而没有充分考虑语义 信息对机器人导航的作用。2008年H.Zender等在论文“Conceptual spatial representations for  indoor mobile robots”中提出了一种对机器人所在的室内环境进行分层描述的方法,利用激光 传感器实现自定位和几何地图同时构建、场景的识别以及保存机器人漫游中经过的路径构建 导航图,和利用视觉传感器进行物体识别获取空间中的语义信息,并将激光和视觉传感器获 得的场景和物体语义信息加入到知识表达系统中。该系统侧重获取空间中的语义信息并实现 与人的交流,例如告诉人某个地方有什么,哪个区域跟那个区域相连等。在对环境描述以及 导航方面,存在一下问题:需要维护一个全局世界坐标系,机器人自定位误差会随着系统运 行而累计,会对选择导航图中的节点产生较大影响;该系统通过跟踪人来实现导航,在自主 导航能力方面较弱;该系统利用无线网络连接知识表达系统完成语义信息处理,操作复杂, 处理速度慢;该系统采用激光传感器,成本也较高。

综上所述,现有技术在室内坏境的多层描述及视觉导航存在以下问题:利用知识表达系 统进行语义信息的处理,需要利用网络连接知识库,限制了机器人活动范围,查询和插入知 识实时性也受到影响;现有基于图像检索的视觉导航维护一个大的图像检索库,没有利用室 内空间中场景的划分构建不同场景的小检索库,提高检索的精度;在自定位方面,通过维护 世界坐标系的方法,自定位误差会随着时间而累计;利用激光传感器普遍的比较昂贵。

发明内容

针对现有技术中存在的上述问题,本发明提出一种基于视觉内容的多层语义地图的创建 方法。所述多层语义地图共有三层:底层为特定地点互连信息的拓扑地图,中层为场景互连 的拓扑地图,高层为知识拓扑地图。

一种基于视觉内容的多层语义地图的创建方法,其特征在于包括以下步骤:

步骤1,将机器人在室内环境中漫游拍摄的图像集合按照拍摄地点场景进行标注。

设所述图像集合为P,每个场景一般不少于50帧图像。对P中的图像进行标注,形成标 注文件,标注文件的每一行代表一个图像,行号与图像编号对应,每行内容包括该图像拍摄 时机器人所处的场景和图像的内容,图像的内容用于显示图像是什么物体或者什么地点。

步骤2,构建分层词汇树;

步骤2.1,利用OpenCV2.4.4(URL:http://opencv.org/)中的GoodFeatureToTrack检测子 获得图像集P中每帧图像的特征点集合,利用OpenCV2.4.4中的SIFT描述子对特征点进行 描述获得特征向量集合。

步骤2.2,利用开源库VLFeat0.9.17(URL:http://vlfeat.org/)中C语言接口的层次化整 数类型K-Means聚类模块构建多层词汇树,对图像集合的特征向量集合进行训练,得到一棵 多层词汇树T。

分层词汇树的分支数为10,层数为4。

步骤3,构建多层语义地图中的知识拓扑层,为知识拓扑层赋予知识。

知识的定义格式为:源语义关联目的语义。

其中,语义和关联所表达的知识在计算机中以有向图的方式表示和存储,源语义位于有 向图的源节点,目的语义位于有向图的目的节点,关联位于源节点和目的节点之间的有向边, 有向图采用邻接表的方式存储。

步骤4,构建多层语义地图中的场景拓扑层。

场景拓扑层采用无向图表示,在计算机中采用邻接表的方式存储。构建场景拓扑层的方 法如下:

步骤4.1,从步骤1形成的标注文件中依次取一帧图像和其所属的场景。

步骤4.2,如果是第一帧图像,则在场景拓扑层加入第一帧图像所在的场景节点;

步骤4.3,如果不是第一帧图像,且当前图像的场景和前一个插入到场景拓扑层中的节点 的场景不相同,则查询已经构建的场景拓扑层节点中是否有当前图像的场景,如果没有,则 在场景拓扑层中插入当前图像的场景节点,并与前一个插入到场景拓扑层中的节点互连;如 果有,则查看该图像场景节点和前一个插入到场景拓扑层中的节点是否已经互连,若没有互 连,则为两个场景节点添加一条边;

步骤4.4,如果不是第一帧图像,且该图像的场景和前一个插入到场景拓扑层中的节点的 场景相同,则从标注文件取下一帧图像标注,重复步骤4.1~4.4,直到处理完标注文件中的所 有图像。

步骤5,构建多层语义地图中的地点拓扑层。

地点拓扑层采用无向图表示,在计算机中采用邻接表的方式存储。构建场景拓扑层的方 法如下:

步骤5.1,采用黑白国际象棋棋盘对针孔相机进行标定,得到内参矩阵K。初始化每个场 景倒排索引数据库,其中以视觉单词为属性值,图像在地点拓扑层中的位置编号为记录名称 构建倒排索引库。

步骤5.2,从图像集合P中顺序取一帧图像和标注文件中取其所属的场景和内容,检测图 像的GoodFeatureToTrack特征点,并保存其坐标到坐标集合中,对每一个检测到的特征点进 行SIFT描述,得到特征向量集合。

步骤5.3,利用词汇树获取图像SIFT特征向量集合中每个特征向量的视觉单词,构成视 觉单词集合。

步骤5.4,如果图像是集合P中的第一帧图像,将当前拍摄图像地点所属的场景、视觉单 词集合和对应的坐标集合插入到地点拓扑层中,生成地点拓扑节点;将图像的视觉单词集合、 图像在地点拓扑层中的位置编号作为名称,插入到当前图像所在的场景的倒排索引数据库中。

步骤5.5,如果当前图像不是集合P中的第一帧图像,则根据估计当前图像和上一帧插入 到地点拓扑层的图像之间的距离判断是否将当前图像作为新的节点插入到地点拓扑层:如果 所述距离足够大,将当前拍摄图像地点所属的场景、视觉单词集合和对应的坐标集合插入到 地点拓扑层中,生成新的地点拓扑层节点,并与上一帧插入到地点拓扑层的图像所在的拓扑 节点互连;将当前图像的视觉单词集合、图像在地点拓扑层中的位置编号作为名称,插入到 当前图像所在的场景的倒排索引数据库中;如果所述距离不够大,则抛弃当前图像,转到步 骤5.2,直到处理完图像集合P中所有图像。

估计当前图像Ij与插入到地点拓扑层的上一帧图像Ik之间距离的方法如下:

(1)在地点拓扑层中获取图像Ik的视觉单词集合和坐标集合,以Ik为第一帧图像,Ij为 第二帧图像,两图像之间相同的视觉单词构成匹配点集合Matches,剔除误匹配点得到新的 匹配点集合Matches'。剔除误匹配点的规则为:一个特征点有且只有一个匹配点,且匹配点 在各自图像上坐标(uk,vk)和(uj,vj)满足:max(||uk-uj||,||vk-vj||)<thres_dist,thres_dist 通常取图像宽高较大值的0.05~0.1倍。

(2)如果Matches'匹配个数小于8,则Ik和Ij之间距离足够远,判断结束;

(3)如果Matches'匹配个数大于等于8,根据更新过的Matches',采用随机采样一致性 算法(RANSAC)结构下的8-points算法计算基础矩阵F,剔除不满足极线约束条件 mjTFmk=0的匹配点,极限约束示意图如图6所示,通常设置一个较大的阈值,若模 ||mjTFmk||>3.0,则剔除该匹配点,其中,mj表示匹配点在Ij上坐标,mk表示匹配点在Ik上 坐标,采用齐次坐标形式,更新Matches'得到Matches",如果Matches"匹配个数小于8,则Ik和Ij之间距离足够远,判断结束。

(4)如果Matches"匹配个数大于等于8,由E=KTFK得到本质矩阵E。本质矩阵E恢 复旋转矩阵R和平移向量的方向t,根据R和t利用标准的三角测量方法计算匹配点Matches" 在图像Ik所在的相机坐标系下的3D坐标值构成集合X。利用3D点的坐标集合X中每个点 的坐标的x、y、z的绝对值之和构成一个序列arr,并对arr排序,获得3D坐标值集合的距离 中值medium。如果medium<thres_motion,则说明两帧图像Ik和Ij之间距离足够大,判断结 束,thres_motion为阈值,其值根据场景的大小确定,通常取40~200,medium越大,两帧图 像之间距离越小,medium越小,两帧图像之间距离越大;否则两帧图像之间的距离偏小,判 断结束。

步骤5.6,计算每个场景倒排索引数据库中每个视觉单词权值,公式如下:

wij=log(Nifj/nij)

其中,表示第j个场景倒排索引库中第i个视觉单词的权值,表示第j个场景倒排 索引库中共可索引的图像的个数,表示第j个场景倒排索引库中第i个视觉单词可索引的 图像个数。

多层语义地图用于机器人视觉导航,可使机器人执行事务性任务;可以将地点拓扑层的 每个节点都作为导航入口点;划分场景能缩小图像检索空间和地点拓扑层搜索空间;采用自 然场景图像,不需要人工设置标志。

与现有技术相比,本发明具有以下优点:

(1)本发明仅仅利用视觉传感器对室内空间构建多层语义地图,在知识拓扑层使用有向 图结构存储和查询知识,可以省去知识表达系统中不必要的操作,插入和查询速度快;

(2)利用场景拓扑层对室内环境进行抽象划分,将整个环境抽象成子区域,可减小图像 的检索空间和路径搜索空间;

(3)利用地点拓扑层对特定的地点图像进行保存,采用图像检索技术即可自定位,不必 维护全局的世界坐标系,解决了自定位估计误差累计问题。

附图说明

图1为模拟的机器人所在环境示意图,图中虚线表示机器人漫游拍摄图像的路径;

图2为多层语义地图中高层的知识拓扑层对图1模拟环境描述的示意图;

图3为多层语义地图中中层的场景拓扑层对图1模拟环境描述的示意图;

图4为多层语义地图中底层的地点拓扑层对图1模拟环境描述的示意图;

图5为分支数为3、层数为2的分层词汇树示意图;

图6为两帧图像之间的极线约束示意图;

图7为多层语义地图构建方法流程图。

具体实施方式

下面结合附图对本发明做进一步说明。

本发明所述的多层语义地图的创建方法流程图如图7所示,包括以下步骤:

步骤1,标定相机,同时采用避障系统以保证机器人不会发生碰撞。机器人在室内环境 中漫游,保存漫游过程中拍摄的图像,并对图像按其所属的场景和图像内容进行标注,形成 标注文件。

步骤2,构建分层词汇树。

提取所有图像特征向量集合,使用K-means算法对特征向量集合(根节点)进行聚类形 成子特征向量集合(子节点),迭代的对每个子特征向量集合再进行K-means聚类,直到满足 深度deepth限制,保存每个节点储存的子节点的聚类中心,即完成分层词汇树的构建。一个 特征向量从根节点进入词汇树,在每个节点与该节点保存的聚类中心比较欧式距离,进入欧 式距离最近的聚类中心表示子节点,直到到达叶子节点,叶子节点从左到右的编号即为该特 征向量的视觉单词。图5所示是一棵简化的3分支、2层的分层词汇树示意图。

步骤3,构建多层语义地图的知识拓扑层。

人为定义语义之间的关联(拓扑的边)和语义知识。在图1所示的模拟环境中,定义规 则包括:is_a、has_a、locates_in。定义的知识包括:robot is_a object,object has_a robot, conference_table is_a object,object has_a conference_table,robot locates_in laboratory,labratory  has_a robot,conference_table locates_in conference_room,conference_room has_a  conference_table,labratory is_a area,area has_a laboratory,area has_a conference_room, conference_room is_a area,corridor is_a area,area has_a corridor,如图2所示。

步骤4,构建多层语义地图的场景拓扑层。

顺序提取图像和图像的标注,动态地构造场景拓扑层,构建结构示意图如图3所示。

步骤5,构建多层语义地图的地点拓扑层。

首先为每个场景构建一个倒排索引数据库,然后顺序的提取图像和图像的标注,动态地 构造地点拓扑层,构建结构示意图如图4所示。

将创建的多层语义地图应用于机器人视觉导航,包括以下步骤:

步骤1,确定导航在场景拓扑层的目的场景。

步骤2,确定场景拓扑层中的导航路径。

步骤3,确定机器人在地点拓扑层中的起始位置。

步骤4,确定机器人导航终点在地点拓扑层中的节点位置。

步骤5,获得在地点拓扑层中从当前源节点到目的节点之间的一条导航路径。

步骤6,根据步骤5得到的导航路径,指导机器人从当前节点移动到下一节点。

步骤7,重复步骤6,直到达到目标节点。如果在步骤6中出现找不到下一节点的情况, 则转到步骤3确定当前节点以及重新规划路径。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号