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

文档序号:6524421阅读:153来源:国知局
一种基于视觉内容的多层语义地图的创建方法
【专利摘要】本发明公开一种基于视觉内容的多层语义地图的创建方法,包括:将机器人在环境中漫游拍摄的图像集合按照拍摄地点场景进行标注;构建分层词汇树;构建知识拓扑层,为知识拓扑层赋予知识;构建场景拓扑层;构建地点拓扑层。本发明利用视觉传感器对空间构建多层语义地图,在知识拓扑层使用有向图结构存储和查询知识,可以省去知识表达系统中不必要的操作,插入和查询速度快;利用场景拓扑层对环境进行抽象划分,将整个环境抽象成子区域,可减小图像的检索空间和路径搜索空间;利用地点拓扑层对特定的地点图像进行保存,采用图像检索技术即可自定位,不必维护全局的世界坐标系,解决了自定位估计误差累计问题。
【专利说明】一种基于视觉内容的多层语义地图的创建方法
【技术领域】
[0001]本发明属于机器人导航领域,涉及一种利用视觉传感器进行多层语义地图的创建方法,该多层语义地图共有三层,包括特定地点互连信息的拓扑地图、场景互连的拓扑地图和知识拓扑地图。
【背景技术】
[0002]当前,移动机器人被广泛地应用于工业、航空航天、军事和服务等领域。随着社会的发展,人们对机器人的智能性要求也越来越高,服务机器人已成为研究和应用的热点。在人类的一次导航任务中,通常首先思考目标地点,例如“我要找的玩具机器人在什么地方”,然后思考“我现在在什么地方”,接着思考“怎么从我所在地方到玩具机器人所在的地方”。而“地方”、“玩具机器人”等信息就是环境中的语义信息,具有先验知识的人类能通过视觉获得场景中的语义信息。描述某一地点的图像具有明确的语义内容,例如“机器人实验室”、“走廊”、“会议室”等都代表着一定的区域(语义),而不同区域之间通常具有差异性。此外,“玩具机器人”则表示一个物体,人类同样也可以通过视觉方便地获得。具备语义识别能力的人不需要知道环境的世界坐标,仅仅通过对环境的熟悉程度,利用已有的语义信息和大致的空间位置关系,即可找到“玩具机器人”。同样,服务机器人只有具备对语义信息的处理能力,才能更好、更加智能地完成诸如“拿盒牛奶”等事务性导航任务。由此可见,环境中的语义信息对机器人的导航具有很好的指导作用,可以大大地减少机器人路径规划的搜索空间,并实现更加智能的任务操作。
[0003]随着计算机视觉领域的物体识别、场景识别、姿态估计以及图像检索等技术的发展,机器人的视觉导航已经成为可能。2006年,D.Nister等在论文“Scalable Recognitionwith a Vocabulary Tree”中提出一种分层词汇树图像检索方法,采用分层词汇树方法对图像内容进行压缩,使用生成的视觉单词向量表示整个图像,并以视觉单词为检索元素,将图像进行倒排索引。该方法可以处理百万数量的图像,而且查询的时间在十毫秒级别,完全可以用于机器人视觉导航中的实时地点识别任务。2007年,F.Fraundorfer等在论文“Topological mapping, localization and navigation using image collections,,中将D.Nister提出的分层词汇树图像检索方法用于机器人视觉导航中,机器人漫游过程中拍摄的图像经过分层词汇树视觉单词化之后存入倒排索引数据库,一帧图像代表一个拓扑节点,形成拓扑地图。该方法通过相似地点的查询实现定位,以及图像之间的姿态差进行导航。其不足是,在大范围场景中,需要维护庞大的词汇树和倒排索引数据库,影响拓扑导航的性能。2007 年 A.Bouguerra 等在论文 “Semantic Knowledge-Based ExecutionMonitoring for Mobile Robots”中提出使用视觉传感器获得的语义信息对机器人的定位进行指导的技术,通过视觉传感器识别物体,然后判断物体应该所属的房间。该系统对语义信息的利用仅仅在判断机器人是否到达目标房间,而没有充分考虑语义信息对机器人导航的作用。2008 年 H.Zender 等在论文“Conceptual spatial representations for indoormobile robots”中提出了一种对机器人所在的室内环境进行分层描述的方法,利用激光传感器实现自定位和几何地图同时构建、场景的识别以及保存机器人漫游中经过的路径构建导航图,和利用视觉传感器进行物体识别获取空间中的语义信息,并将激光和视觉传感器获得的场景和物体语义信息加入到知识表达系统中。该系统侧重获取空间中的语义信息并实现与人的交流,例如告诉人某个地方有什么,哪个区域跟那个区域相连等。在对环境描述以及导航方面,存在一下问题:需要维护一个全局世界坐标系,机器人自定位误差会随着系统运行而累计,会对选择导航图中的节点产生较大影响;该系统通过跟踪人来实现导航,在自主导航能力方面较弱;该系统利用无线网络连接知识表达系统完成语义信息处理,操作复杂,处理速度慢;该系统采用激光传感器,成本也较高。
[0004]综上所述,现有技术在室内坏境的多层描述及视觉导航存在以下问题:利用知识表达系统进行语义信息的处理,需要利用网络连接知识库,限制了机器人活动范围,查询和插入知识实时性也受到影响;现有基于图像检索的视觉导航维护一个大的图像检索库,没有利用室内空间中场景的划分构建不同场景的小检索库,提高检索的精度;在自定位方面,通过维护世界坐标系的方法,自定位误差会随着时间而累计;利用激光传感器普遍的比较
曰虫印贝ο

【发明内容】

[0005]针对现有技术中存在的上述问题,本发明提出一种基于视觉内容的多层语义地图的创建方法。所述多层语义地图共有三层:底层为特定地点互连信息的拓扑地图,中层为场景互连的拓扑地图,高层为知识拓扑地图。
[0006]一种基于视觉内容的多层语义地图的创建方法,其特征在于包括以下步骤:
[0007]步骤1,将机器人在室内环境中漫游拍摄的图像集合按照拍摄地点场景进行标注。
[0008]设所述图像集合为P,每个场景一般不少于50帧图像。对P中的图像进行标注,形成标注文件,标注文件的每一行代表一个图像,行号与图像编号对应,每行内容包括该图像拍摄时机器人所处的场景和图像的内容,图像的内容用于显示图像是什么物体或者什么地点。
[0009]步骤2,构建分层词汇树;
[0010]步骤2.1,利用 0penCV2.4.4 (URL:http://opencv.0rg/)中的GoodFeatureToTrack检测子获得图像集P中每巾贞图像的特征点集合,利用0penCV2.4.4中的SIFT描述子对特征点进行描述获得特征向量集合。
[0011]步骤2.2,利用开源库 VLFeat0.9.17 (URL:http://vlfeat.0rg/)中 C 语言接 P的层次化整数类型K-Means聚类模块构建多层词汇树,对图像集合的特征向量集合进行训练,得到一棵多层词汇树T。
[0012]分层词汇树的分支数为10,层数为4。
[0013]步骤3,构建多层语义地图中的知识拓扑层,为知识拓扑层赋予知识。
[0014]知识的定义格式为:源语义关联目的语义。
[0015]其中,语义和关联所表达的知识在计算机中以有向图的方式表示和存储,源语义位于有向图的源节点,目的语义位于有向图的目的节点,关联位于源节点和目的节点之间的有向边,有向图采用邻接表的方式存储。
[0016]步骤4,构建多层语义地图中的场景拓扑层。[0017]场景拓扑层采用无向图表示,在计算机中采用邻接表的方式存储。构建场景拓扑层的方法如下:
[0018]步骤4.1,从步骤I形成的标注文件中依次取一帧图像和其所属的场景。
[0019]步骤4.2,如果是第一帧图像,则在场景拓扑层加入第一帧图像所在的场景节点;
[0020]步骤4.3,如果不是第一帧图像,且当前图像的场景和前一个插入到场景拓扑层中的节点的场景不相同,则查询已经构建的场景拓扑层节点中是否有当前图像的场景,如果没有,则在场景拓扑层中插入当前图像的场景节点,并与前一个插入到场景拓扑层中的节点互连;如果有,则查看该图像场景节点和前一个插入到场景拓扑层中的节点是否已经互连,若没有互连,则为两个场景节点添加一条边;
[0021]步骤4.4,如果不是第一帧图像,且该图像的场景和前一个插入到场景拓扑层中的节点的场景相同,则从标注文件取下一帧图像标注,重复步骤4.1?4.4,直到处理完标注文件中的所有图像。
[0022]步骤5,构建多层语义地图中的地点拓扑层。
[0023]地点拓扑层采用无向图表示,在计算机中采用邻接表的方式存储。构建场景拓扑层的方法如下:
[0024]步骤5.1,采用黑白国际象棋棋盘对针孔相机进行标定,得到内参矩阵K。初始化每个场景倒排索引数据库,其中以视觉单词为属性值,图像在地点拓扑层中的位置编号为记录名称构建倒排索引库。
[0025]步骤5.2,从图像集合P中顺序取一帧图像和标注文件中取其所属的场景和内容,检测图像的GoodFeatureToTrack特征点,并保存其坐标到坐标集合中,对每一个检测到的特征点进行SIFT描述,得到特征向量集合。
[0026]步骤5.3,利用词汇树获取图像SIFT特征向量集合中每个特征向量的视觉单词,构成视觉单词集合。
[0027]步骤5.4,如果图像是集合P中的第一帧图像,将当前拍摄图像地点所属的场景、视觉单词集合和对应的坐标集合插入到地点拓扑层中,生成地点拓扑节点;将图像的视觉单词集合、图像在地点拓扑层中的位置编号作为名称,插入到当前图像所在的场景的倒排索引数据库中。
[0028]步骤5.5,如果当前图像不是集合P中的第一帧图像,则根据估计当前图像和上一帧插入到地点拓扑层的图像之间的距离判断是否将当前图像作为新的节点插入到地点拓扑层:如果所述距离足够大,将当前拍摄图像地点所属的场景、视觉单词集合和对应的坐标集合插入到地点拓扑层中,生成新的地点拓扑层节点,并与上一帧插入到地点拓扑层的图像所在的拓扑节点互连;将当前图像的视觉单词集合、图像在地点拓扑层中的位置编号作为名称,插入到当前图像所在的场景的倒排索引数据库中;如果所述距离不够大,则抛弃当前图像,转到步骤5.2,直到处理完图像集合P中所有图像。
[0029]估计当前图像Ij与插入到地点拓扑层的上一帧图像Ik之间距离的方法如下:
[0030](I)在地点拓扑层中获取图像Ik的视觉单词集合和坐标集合,以Ik为第一帧图像,Ij为第二帧图像,两图像之间相同的视觉单词构成匹配点集合Matches,剔除误匹配点得到新的匹配点集合Matches’。剔除误匹配点的规则为:一个特征点有且只有一个匹配点,且匹配点在各自图像上坐标(uk, vk)和(Uj, Vj)满足:max(| Uk-Uj |,| Vk-Vj I) < thres_dist,thres_dist通常取图像宽高较大值的(λ 05~(λ I倍。
[0031](2)如果Matches’匹配个数小于8,则Ik和Ij之间距离足够远,判断结束;
[0032](3)如果Matches’匹配个数大于等于8,根据更新过的Matches’,采用随机采样一致性算法(RANSAC)结构下的8-points算法计算基础矩阵F,剔除不满足极线约束条件m/Fmk = O的匹配点,极限约束示意图如图6所示,通常设置一个较大的阈值,若模
Im/FmJ I >3.0,则剔除该匹配点,其中,Hij表示匹配点在Ij上坐标,mk表示匹配点在Ik上坐标,采用齐次坐标形式,更新Matches’得到Matches",如果Matches"匹配个数小于8,则Ik和Ij之间距离足够远,判断结束。
[0033](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和I」之间距离足够大,判断结束,thres_motion为阈值,其值根据场景的大小确定,通常取40~200,medium越大,两帧图像之间距离越小,medium越小,两帧图像之间距离越大;否则两帧图像之间的距离偏小,判断结束。
[0034]步骤5.6,计算每个场景倒排索引数据库中每个视觉单词权值,公式如下:
[0035]
【权利要求】
1.一种基于视觉内容的多层语义地图的创建方法,其特征在于包括以下步骤: 步骤1,将机器人在环境中漫游拍摄的图像集合按照拍摄地点场景进行标注; 设所述图像集合为P,每个场景一般不少于50帧图像;对P中的图像进行标注,形成标注文件,标注文件的每一行代表一个图像,行号与图像编号对应,每行内容包括该图像拍摄时机器人所处的场景和图像的内容,图像的内容用于显示图像是什么物体或者什么地点; 步骤2,构建分层词汇树; 步骤2.1,利用OpenCV2.4.4中的GoodFeatureToTrack检测子获得图像集P中每帧图像的特征点集合,利用0penCV2.4.4中的SIFT描述子对特征点进行描述获得特征向量集合; 步骤2.2,利用开源库VLFeat0.9.17中C语言接口的层次化整数类型K-Means聚类模块构建多层词汇树,对图像集合的特征向量集合进行训练,得到一棵多层词汇树T ; 步骤3,构建多层语义地图中的知识拓扑层,为知识拓扑层赋予知识; 知识的定义格式为:源语义关联目的语义; 其中,语义和关联所表达的知识在计算机中以有向图的方式表示和存储,源语义位于有向图的源节点,目的语义位于有向图的目的节点,关联位于源节点和目的节点之间的有向边,有向图采用邻接表的方式存储; 步骤4,构建多层语义地图中的场景拓扑层; 步骤5,构建多层语义地图中的地点拓扑层。
2.根据权利要求1所述的一种基于视觉内容的多层语义地图的创建方法,其特征在于,步骤2.2构建的所述多层词汇树`的分支数为10,层数为4。
3.根据权利要求1所述的一种基于视觉内容的多层语义地图的创建方法,其特征在于,步骤4所述场景拓扑层采用无向图表示,在计算机中采用邻接表的方式存储;构建场景拓扑层的方法如下: (1)从步骤I形成的标注文件中依次取一帧图像和其所属的场景; (2)如果是第一帧图像,则在场景拓扑层加入第一帧图像所在的场景节点; (3)如果不是第一帧图像,且当前图像的场景和前一个插入到场景拓扑层中的节点的场景不相同,则查询已经构建的场景拓扑层节点中是否有当前图像的场景,如果没有,则在场景拓扑层中插入当前图像的场景节点,并与前一个插入到场景拓扑层中的节点互连;如果有,则查看该图像场景节点和前一个插入到场景拓扑层中的节点是否已经互连,若没有互连,则为两个场景节点添加一条边; (4)如果不是第一帧图像,且该图像的场景和前一个插入到场景拓扑层中的节点的场景相同,则从标注文件取下一帧图像标注,重复步骤(1)~(4),直到处理完标注文件中的所有图像。
4.根据权利要求1所述的一种基于视觉内容的多层语义地图的创建方法,其特征在于,步骤5所述地点拓扑层采用无向图表示,在计算机中采用邻接表的方式存储;构建场景拓扑层的方法如下: (I)采用黑白国际象棋棋盘对针孔相机进行标定,得到内参矩阵K ;初始化每个场景倒排索引数据库,其中以视觉单词为属性值,图像在地点拓扑层中的位置编号为记录名称构建倒排索引库;(2)从图像集合P中顺序取一帧图像和标注文件中取其所属的场景和内容,检测图像的GoodFeatureToTrack特征点,并保存其坐标到坐标集合中,对每一个检测到的特征点进行SIFT描述,得到特征向量集合; (3)利用词汇树获取图像SIFT特征向量集合中每个特征向量的视觉单词,构成视觉单词集合; (4)如果图像是集合P中的第一帧图像,将当前拍摄图像地点所属的场景、视觉单词集合和对应的坐标集合插入到地点拓扑层中,生成地点拓扑节点;将图像的视觉单词集合、图像在地点拓扑层中的位置编号作为名称,插入到当前图像所在的场景的倒排索引数据库中; (5)如果当前图像不是集合P中的第一帧图像,则根据估计当前图像和上一帧插入到地点拓扑层的图像之间的距离判断是否将当前图像作为新的节点插入到地点拓扑层:如果所述距离足够大,将当前拍摄图像地点所属的场景、视觉单词集合和对应的坐标集合插入到地点拓扑层中,生成新的地点拓扑层节点,并与上一帧插入到地点拓扑层的图像所在的拓扑节点互连;将当前图像的视觉单词集合、图像在地点拓扑层中的位置编号作为名称,插入到当前图像所在的场景的倒排索引数据库中;如果所述距离不够大,则抛弃当前图像,转到步骤(2),直到处理完图像集合P中的所有图像。 (6)计算每个场景倒排索引数据库中每个视觉单词权值,公式如下:
5.根据权利要求4所述的一种基于视觉内容的多层语义地图的创建方法,其特征在于,估计当前图像L与上一帧插入到地点拓扑层的图像Ik之间距离的方法如下: (1)在地点拓扑层中获取图像Ik的视觉单词集合和坐标集合,以Ik为第一帧图像,Ij为第二帧图像,两图像之间相同的视觉单词构成匹配点集合Matches,剔除误匹配点得到新的匹配点集合Matches’ ;剔除误匹配点的规则为:一个特征点有且只有一个匹配点,且匹配点在各自图像上坐标(Uk, vk)和(U」,Vj)满足:max (| | Uk-Uj |, | Vk-Vj I I) < thres_dist,thres_dist通常取图像宽高较大值的0.05~0.1倍; (2)如果Matches’匹配个数小于8,则Ik和Ij之间距离足够远,判断结束; (3)如果Matches’匹配个数大于等于8,根据更新过的Matches’,采用随机采样一致性算法(RANSAC)结构下的8-points算法计算基础矩阵F,剔除| Imj1FmkI >3.0的匹配点,其中,Hij表示匹配点在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和I」之间距离足够大,判断结束,thres_motion为阈值,其值根据场景大小确定,通常取40~200, medium越大,两帧图像之间距离越小,medium越小,两帧图像之间距离越大;否则,两帧图像之间的距离偏小,判断结束。
6.根据权利要求1所述的一种基于视觉 内容的多层语义地图的创建方法,其特征在于,多层语义地图用于机器人视觉导航,可使机器人执行事务性任务;可以将地点拓扑层的每个节点都作为导航入口点;划分场景能缩小图像检索空间和地点拓扑层路径搜索空间;采用自然场景图像,不需要人工设置标志。
【文档编号】G06F17/30GK103712617SQ201310700792
【公开日】2014年4月9日 申请日期:2013年12月18日 优先权日:2013年12月18日
【发明者】杨金福, 赵伟伟, 解涛, 李明爱, 高晶钰, 张济昭 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1