CN107066507B - 一种基于云机器人混合云架构的语义地图构建方法 - Google Patents
一种基于云机器人混合云架构的语义地图构建方法 Download PDFInfo
- Publication number
- CN107066507B CN107066507B CN201710019515.XA CN201710019515A CN107066507B CN 107066507 B CN107066507 B CN 107066507B CN 201710019515 A CN201710019515 A CN 201710019515A CN 107066507 B CN107066507 B CN 107066507B
- Authority
- CN
- China
- Prior art keywords
- module
- robot
- picture
- object identification
- node
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/267—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Multimedia (AREA)
- Evolutionary Biology (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Remote Sensing (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于云机器人混合云架构的语义地图构建方法,目的是在提高物体识别的准确率和缩短识别时间之间达到一个恰当的平衡。技术方案是搭建由机器人、私有云节点、公有云节点构成的混合云,私有云节点基于ROS消息机制获得机器人拍摄的环境图片和里程计及位置数据,基于里程计和位置数据利用SLAM实时绘制环境几何地图。私有云节点基于环境图片进行物体识别,将可能识别错误的物体上传至公有云节点进行识别。私有云节点将公有云节点返回的物体类别识别标签与SLAM地图进行映射,将物体类别识别标签标在地图的相应位置完成语义地图的构建。采用本发明可减轻机器人本地的计算负载,最小化请求响应时间,提高物体识别的准确率。
Description
技术领域
本发明涉及机器人分布计算技术领域,具体涉及一种利用云计算作为后援支持,通过搭建混合云架构,实现基于云机器人语义地图构建的方法。
背景技术
机器人的感知数据来源可能包括视觉、力觉、触觉、红外、超声、激光雷达等多个维度,机器人语义地图构建是指机器人基于这些感知数据,认知和理解所处环境,核心关注如何对感知数据去粗取精、去伪存真,进而分析综合,提炼出可供机器人自主决策所使用的高层次语义信息(如物体名称和所处位置),具体表现为在几何地图上添加环境内物体的标签。语义信息的获取可通过射频识别技术、听觉技术、视觉技术等关键技术来实现,目前大多数研究集中在后者,本发明也是基于视觉技术。机器人基于视觉的语义地图构建过程同时具备计算密集和知识密集的特点。具体可分为如下两个并行执行的环节:(1)构建几何地图,通常借助于机器人所携带的RGB-D(Red Green Blue-Depth)摄像头、激光雷达等传感器,采用同步定位与地图构建算法SLAM(Simultaneous Location and Mapping),SLAM算法最早由Smith、Self和Cheeseman于1988年提出,相关思想发表在论文《Estimatinguncertain spatial relationship in robotics》(机器人学中不确定空间关系的估计)中(Smith R,Self M,Cheeseman P.Estimating uncertain spatial relationship inrobotic[M]//Autonomous robot vehickes.Springer New York,1990:167~193.)。这类算法通常使用基于统计学的滤波算法或者图像匹配技术,通过多次迭代来进行计算求解,是典型的计算密集型任务。(2)添加物体标签信息,机器人实时感知的图像中很可能包含多个物体,因此需要首先对图像进行分割,再通过机器学习等方法对分割后图像中的物体进行识别。该过程同样涉及到大量的图像运算,是典型的计算密集型任务。同时识别准确率严重依赖于机器人预置的知识,这些知识通常以机器学习训练出的模型等形式存在,因此也是知识密集型任务。如果环境是开放动态、无法精确预测的,则机器人语义地图的准确度将面临严峻挑战。
云机器人利用云计算和大数据等后台基础设施,提升机器人在复杂环境下遂行任务的能力,因此可以给机器人语义地图构建这类计算和知识密集型任务带来新的解决思路:(1)利用云端强大的计算资源进行地图构建,实现本地计算卸载。(2)更重要的是,利用云端丰富的经验知识,打破机器人本地知识的局限性,使机器人基于云端智慧实现知识扩展,对环境内物体有较好的识别能力。机器人能够利用的云包括私有云(Private Cloud)和公有云(Public Cloud):私有云是指为一个客户单独使用而构建的云,因而可以提供对数据、安全性和服务质量的最有效控制;公有云通常指第三方提供商为客户提供的能够使用的云,一般可通过互联网使用,成本低廉甚至有些是免费的,公有云的核心属性是共享资源服务。
目前,云机器人语义地图构建的主流方法一般是使用私有云,在私有云端为机器人提供物体知识库,机器人将图片上传至私有云获得物体识别类别标签,以解决机器人自身计算和知识资源的局限性,提高运行效率,缩短请求响应时间。但是这种私有云端物体识别是基于物体个体匹配的,或物体识别算法的准确率还比较低,而且知识仍需事先预置,并且无法识别陌生物体。也就是说,私有云虽资源可控、请求响应时间可缩短,但其知识仍存在局限性。
如果使用互联网基于大数据的公开物体识别云服务如CloudSight,将其应用于语义地图构建的物体识别环节,机器人就可以利用基于互联网大数据的丰富知识,提高在复杂开放环境中的识别准确率。CloudSight提供开放的API,用户上传图片,CloudSight即可返回物体标签或对物体的描述。基于互联网海量图片数据知识,CloudSight目前可以识别4千万余种物品,而且即使对于较差光线条件和角度下拍摄的物品也有较好的识别结果。但此类互联网公有云服务基于“Best Effort”模型,性能不可控、请求响应时间长,这对于许多机器人应用是不可接受的,尤其是当它们与物理世界直接交互时。也就是说,公有云虽具有互联网大数据丰富知识,但资源不可控、请求响应时间长。
综上所述,基于私有云的方案在请求响应时间上表现较好,能识别熟悉物体,但需要预先训练,且存在知识局限性,无法识别开放环境中的陌生物体;基于公有云的方案利用互联网大数据知识对环境中的物体识别具有更广泛的智能,可以在无需预先训练的情况下识别陌生物体,但识别延迟大,请求响应时间长。基于以上分析可以发现,在构建机器人语义地图时,机器人如何在开放环境中准确识别陌生物体,并且尽可能缩短识别延迟时间,是语义地图构建方法需要解决的技术问题。
发明内容
本发明要解决的技术问题是提供一种基于云机器人混合云架构的语义地图构建方法,利用公有云和私有云组合成的混合云,使得机器人可以利用云端来扩展识别能力,在提高物体识别的准确率和缩短识别时间之间达到一个恰当的平衡。混合云指公有云和私有云的组合,它综合二者的优势,并实现两者之间的良好协调。
本发明的技术方案是搭建由机器人、私有云节点、公有云节点构成的混合云环境,私有云节点基于ROS(Robot Operating System)的消息机制获得机器人拍摄的环境图片数据和机器人里程计及位置数据,基于里程计和机器人位置数据利用同步定位与建图算法SLAM实时绘制环境几何地图。然后私有云节点基于机器人拍摄的环境图片使用基于FasterR-CNN(Faster Region Convolutional Neural Network)的物体识别模块进行物体识别,将可能识别错误的物体上传至公有云节点进行识别。最后私有云节点将公有云节点返回的物体类别识别标签与SLAM地图进行映射,将物体类别识别标签标在地图的相应位置完成语义地图的构建。
本发明包括以下步骤:
第一步,构建机器人混合云环境,它由机器人计算节点和私有云节点、公有云节点构成。机器人计算节点是可以运行软件程序的机器人硬件设备(如无人机、无人车、人形机器人等),私有云节点是具有良好计算能力的资源可控的计算设备,可以运行计算密集型或者知识密集型的机器人应用。公有云节点是存储资源丰富、并能对外提供服务的计算设备。机器人计算节点、私有云节点通过网络设备互连,私有云节点通过互联网访问公有云节点。
机器人计算节点上除了装有操作***Ubuntu(例如14.04版本)、机器人中间件ROS(例如Indigo版本,由ROS消息发布者、ROS消息订阅者以及ROS通信协议等组成)外,还装有感知数据采集模块。
在ROS中,消息传递采用的是基于主题(Topic)的发布/订阅机制,即消息按照主题进行分类,消息的发布者在某一主题上发布消息,所有订阅了这个主题的消息订阅者将收到该消息。一个ROS主题名唯一标识一类消息,ROS主题名由字母、数字和“/”符号组成。
ROS中包含多个软件包,为机器人自主行动提供辅助支持。tf库是ROS中一系列软件包的集合,它可以提供坐标变换、方向计算功能。输入当前坐标系在参考坐标系中的描述,则tf库可以把当前坐标系里任何一个点的坐标变换成参考坐标系里的坐标;输入陀螺仪的历史数据和当前数据,则tf库可通过积分计算得到机器人当前的方向。
ROS中的rbx1包可以提供角度变换功能。机器人位姿信息中的方向使用四元数旋转方式表示(四元数是一种高阶复数,由一个实数单位和三个虚数单位组成),计算物体在SLAM地图上的位置时需要用到机器人的转动角度(即按照一定的坐标轴顺序,每个轴旋转一定角度),则要将四元数的方向表示方式变换到转动角度的方向表示方式。四元数到转动角度的方向表示方式变换是数学上的一个经典转换,相关数学算法最早在1843年由Hamilton提出,在图形、图像学里常用于物体定位等。
机器人的位姿信息指机器人的位置和姿态;里程信息指机器人走过的路程;深度信息指物体识别位置到机器人节点的摄像头平面的距离。
感知数据采集模块采集机器人的位姿信息、里程信息、深度信息和摄像头拍摄的彩色环境图片,并使用ROS的消息发布/订阅机制将这些数据发布给私有云节点上的感知数据接收模块。
私有云节点上除了装有操作***Ubuntu、机器人中间件ROS外,还装有感知数据接收模块、SLAM建图模块、基于Faster R-CNN物体识别模块、协同识别决策模块、图片上传模块和语义标注模块。
感知数据接收模块使用ROS的消息发布/订阅机制从感知数据采集模块订阅位姿信息、里程信息、深度信息和彩色环境图片。感知数据接收模块接收到位姿信息、里程信息、深度信息和彩色环境图片后,将位姿信息转发给SLAM建图模块和语义标注模块,将里程信息发送给SLAM建图模块,将彩色环境图片发送给基于Faster R-CNN物体识别模块,将深度信息发送给语义标注模块。
SLAM建图模块利用从感知数据接收模块接收的机器人位姿信息和里程信息,在完全没有先验知识的陌生环境中实时绘制环境SLAM地图,并将SLAM地图发送给语义标注模块。SLAM地图指使用SLAM算法绘制的二维几何地图。
基于Faster R-CNN物体识别模块利用从感知数据接收模块接收的彩色环境图片,基于Faster R-CNN模型对物体进行识别,得到彩色环境图片中各物***置、物体图片、物体识别类别标签、物体图片置信度得分。
Faster R-CNN模型是2015年由Shaoqing Ren,Kaiming He,Ross Girshick等人用卷积神经网络(CNN)实现的物体识别引擎(Ren S,He K,Girshick R,et al.Faster R-CNN:Towards real-time object detection with region proposal networks(使用区域推荐网络进行实时物体检测)[C]//Advances in neural information processingsystems.2015:91~99.)。利用卷积神经网络使用训练样本集图片对Faster R-CNN模型进行有监督的训练,即对训练样本集图片进行特征提取和物体分割,用已知类别标签的样本不断调整Faster R-CNN的softmax分类器的参数,使得经过分类器计算后的输出中的物体识别类别标签尽可能多地为训练样本真实的类别标签,也就是调整分类器参数使得分类效果尽可能好。Faster R-CNN模型训练完成之后,对彩色图片进行物体识别,得到物***置、物体识别类别标签、物体置信度得分。物***置指以物体左上角坐标、物体的长度和宽度来描述物体在环境图片中的位置。物体识别类别标签包括某种具体类别标签(如苹果类、杯子类等)和除具体类别物体之外的其他物体类别标签。“其他物体类”代表了“所有其他物体”,包含了多种多样其他类型的物体,只能确定这些都是物体但却无法表示其为具体某类物体的特征。置信度得分由Faster R-CNN的Softmax分类器计算得出,表征了Faster R-CNN识别结果的可靠性大小。识别置信度得分在0和1之间,得分越大表示识别结果的可靠性越大。
基于Faster R-CNN物体识别模块采用物体识别领域著名的PASCAL VOC2007数据集和互联网上随机下载的多幅包含各种物体的图片(例如著名的图片和视频网站www.flickr.com上的物体图片)对Faster R-CNN模型进行训练。PASCAL VOC的全称是Pattern Analysis,Statistical Modelling and Computational Learning VisualObject Classes Chanllenge,是该比赛为图像中物体识别所提供的标准化数据集,其中以2007年比赛的数据集最为代表性,简称PASCAL VOC2007。
基于Faster R-CNN物体识别模块对从感知数据接收模块传来的彩色环境图片,采用Faster R-CNN模型对彩色环境图片进行物体识别,输出彩色环境图片中各物体的物体识别位置、物体图片、物体识别类别标签、物体置信度得分。其中物体识别类别标签和物体置信度得分由Faster R-CNN模型进行物体识别后得到。物体识别位置指以物体外框像素点坐标位置来描述物体在环境图片中的位置,取物体外框的中心点坐标作为物体识别位置的坐标。物体图片指根据Faster R-CNN模型输出的物***置而分割出的图片。基于Faster R-CNN物体识别模块将识别结果(包括物体识别类别标签、置信度得分、物体识别位置、物体图片)发送给协同识别决策模块。
协同识别决策模块根据置信度阈值判断从基于Faster R-CNN物体识别模块收到的识别结果是否正确,对是否需要上传至公开云再次识别进行决策。置信度阈值由用户设置,是使用PASCAL VOC 2007数据集进行实验而选择的最优值:置信度阈值的可选择范围为0~1,在选择阈值时设置实验步长为0.1,即从[0,0.1,0.2,……1]中选择置信度阈值的最优设置值。实验发现,当置信度阈值设置为0.7时,协同识别决策模块在识别准确率的提升上效果最优,因此建议置信度阈值设置为0.7。
若识别结果中物体识别类别标签不是“其他物体类”且得分大于等于置信度阈值,协同识别决策模块认为对该物体识别正确,将物体识别位置和物体识别类别标签发送给语义标注模块。对于下述两种物体识别错误或无法识别的情况,协同识别决策模块将物体图片发送给图片上传模块,由公有云再次进行识别,最后协同识别决策模块将公有云返回的物体识别类别标签和物体识别位置发送给语义标注模块。两种物体识别错误或无法识别的情况包括:1)若物体识别结果中置信度得分小于阈值,则认为基于Faster R-CNN物体识别模块对此物体的识别结果置信度不够高,即基于Faster R-CNN物体识别模块对该物体识别错误;2)若该物体识别类别标签为“其他物体类”,则说明该物体所属类别可能未经训练,基于Faster R-CNN物体识别模块难以将其分类为某一具体类别,即基于Faster R-CNN物体识别模块无法对该物体所属类别进行识别。
图片上传模块从协同识别决策模块接收协同识别决策模块判断为识别错误或无法识别的物体图片,将这些物体图片传给公有云节点进行再次识别,并将公有云节点再次识别后得到的物体识别类别标签发送给协同识别决策模块。
语义标注模块从SLAM建图模块接收SLAM地图,从感知数据接收模块接收位姿信息和深度信息,从协同识别决策模块接收物体识别位置和物体识别类别标签,将其保存在“标签-位置”表中。语义标注模块通过“标签-位置”表,将物体识别类别标签标注在SLAM地图相应位置,完成语义地图的构建,最后将语义地图发布给机器人计算节点。语义地图指添加了物体识别位置、物体识别类别标签的SLAM地图,使得机器人和人能理解场景中各物体分布,是机器人实现自主行为能力的基础。
公有云节点使用互联网基于大数据的公开云服务CloudSight识别图片上传模块接收的物体图片,给出图片中物体的识别标签。2014年,CloudSight公司开发了物体识别云服务CloudSight(https://www.cloudsightapi.com)。CloudSight提供开放的API,用户上传图片,CloudSight即可返回物体识别类别标签或对物体的描述。CloudSight提供了POST方法和GET方法。用户首先需要获得API KEY,API KEY是字符串密码或数字证书,访问应用程序接口的凭据;POST方法是客户机向云服务CloudSight上传数据的方法;GET方法是客户机从云服务CloudSight上获得数据的方法,可以用GET方法从云服务CloudSight上获取到用于身份和安全认证的令牌token,然后获得物体图片的识别结果类别标签。
第二步,私有云节点订阅感知数据相关的ROS消息;机器人计算节点感知环境,发布感知数据相关的ROS消息并订阅语义地图相关的ROS消息。具体步骤如下:
2.1私有云节点的感知数据接收模块通过基于ROS的发布/订阅机制从机器人计算节点订阅主题名为/tf的位姿信息、主题名为/odom的里程信息、主题名为/camera/depth/points的深度信息和/camera/rgb/image_raw的彩色环境图片上的消息。
2.2基于Faster R-CNN物体识别模块采用物体识别领域PASCAL VOC 2007数据集和互联网上随机下载的多幅包含各种物体的图片所构成的“其它物体类”对Faster R-CNN模型进行训练。
2.3私有云节点的协同识别决策模块从键盘接收置信度阈值。
2.4机器人计算节点上ROS消息订阅者订阅/sem_map主题上的消息。
2.5机器人计算节点移动,通过硬件传感器和加速度计、陀螺仪感知环境获得数据,并通过ROS机制发布数据。具体步骤如下:
2.5.1感知数据采集模块从距离传感器获得数据,产生里程信息发布到/odom主题上;
2.5.2感知数据采集模块从距离传感器、加速度计、陀螺仪获得机器人移动的距离、各时刻的加速度、陀螺仪角度。感知数据采集模块获得机器人的初始位置和计算移动时间,根据上述信息使用ROS中tf库进行计算得到机器人当前在SLAM地图上的位置坐标(position)和方向(orientation)产生位姿信息,并发布到/tf主题上;
2.5.3感知数据采集模块从视觉传感器获得数据,视觉传感器数据包括图像中各像素点距离视觉传感器的深度信息和RGB(Red Green Blue)颜色值的彩色信息,后者即表现为拍摄到的彩色环境图片。感知数据采集模块根据视觉传感器数据产生机器人距前方物体的深度信息和彩色环境图片,并分别发布到/camera/depth/points和/camera/rgb/image_raw主题上。
第三步,私有云节点上的感知数据接收模块获取机器人计算节点的位姿信息和里程信息,并将机器人计算节点的位姿信息和里程信息发送给SLAM建图模块,SLAM建图模块建立SLAM地图。具体步骤如下:
3.1私有云节点上的感知数据接收模块使用ROS消息机制接收到/tf主题和/odom主题上的消息,获取机器人计算节点的位姿信息和里程信息,并将机器人计算节点的位姿信息和里程信息发送给SLAM建图模块,将机器人计算节点的位姿信息发送给语义标注模块。
3.2私有云节点的SLAM建图模块接收机器人计算节点的位姿信息和里程信息,利用同步定位与建图算法SLAM绘制环境几何地图即SLAM地图,并将SLAM地图发送给语义标注模块。
第四步,私有云节点上的感知数据接收模块获取机器人计算节点的彩色环境图片并将其发送给基于Faster R-CNN物体识别模块,基于Faster R-CNN物体识别模块进行物体识别后将识别结果发送给语义标注模块。具体步骤如下:
4.1感知数据接收模块使用ROS消息机制接收到/camera/rgb/image_raw主题上的消息,获取机器人节点当前拍摄的彩色环境图片,并将其发送给基于Faster R-CNN物体识别模块。
4.2基于Faster R-CNN物体识别模块接收机器人计算节点的彩色环境图片,进行物体识别,具体步骤如下:
4.2.1基于Faster R-CNN物体识别模块从感知数据接收模块接收彩色环境图片。
4.2.2基于Faster R-CNN物体识别模块使用Faster R-CNN模型进行图片特征提取和物体分割,根据物***置计算物体识别位置和从彩色环境图片中截取物体图片,并将物体识别位置、物体图片、物体识别结果类别标签和识别置信度得分发送给协同识别决策模块。具体步骤如下:
4.2.2.1Faster R-CNN模型对滑动窗口中的图片进行特征提取,并判断是否为一个物体。如果是,Faster R-CNN模型进行物体分割,并返回彩色环境图片中物***置、物体识别结果类别标签和对应的识别置信度得分,执行步骤4.2.2.2;否则执行步骤5.5。
4.2.2.2基于Faster R-CNN物体识别模块获得Faster R-CNN模型返回彩色环境图片中物***置、物体识别结果类别标签和对应的识别置信度得分,根据物***置计算物体识别位置和从彩色环境图片中截取物体图片。基于Faster R-CNN物体识别模块将物体识别位置、物体图片、物体识别结果类别标签和识别置信度得分发送给协同识别决策模块。
4.2.3协同识别决策模块判断物体识别是否正确。如果正确,协同识别决策模块将结果发送给语义标注模块,执行第五步;否则协同识别决策模块将识别错误的物体发送给图片上传模块,图片上传模块进一步上传至公有云节点。具体步骤如下:
4.2.3.1协同识别决策模块从基于Faster R-CNN物体识别模块接收物体图片、物体识别位置、物体识别类别标签和识别置信度得分,进行判断。若物体识别类别标签不是“其他物体类”且置信度得分大于等于置信度阈值,则协同识别决策模块判定对该物体识别正确,执行步骤4.2.3.4。
4.2.3.2若物体识别类别标签为“其他物体类”或识别置信度得分小于置信度阈值,则协同识别决策模块判定对该物体识别错误,将该物体图片发送给图片上传模块。
4.2.3.3图片上传模块使用公有云CloudSight对物体图片进行再次识别,并将物体识别类别标签发送给协同识别决策模块。具体步骤如下:
4.2.3.3.1图片上传模块申请一个CloudSight的API KEY。
4.2.3.3.2图片上传模块利用HTTP的POST方法将物体图片的地址URL(资源描述符)和所申请的API KEY上传至https://api.cloudsightapi.com/image_requests发出请求。
4.2.3.3.3图片上传模块利用HTTP的GET方法获取到用于身份和安全认证的令牌token。
4.2.3.3.4图片上传模块通过访问https://api.cloudsightapi.com/image_responses/[token]获得物体图片的识别结果类别标签,并将物体识别类别标签发送给协同识别决策模块。
4.2.3.4协同识别决策模块接收到物体识别结果类别标签后,将物体识别类别标签和物体识别位置发送给语义标注模块。
第五步,私有云节点上的语义标注模块接收机器人计算节点的深度信息、位姿信息、物体识别类别标签和物体识别位置后,计算出物体在SLAM地图上的位置坐标后,将物体识别类别标签标注在SLAM地图相应位置,完成语义地图的构建。具体步骤如下:
5.1感知数据接收模块使用ROS消息机制接收到/camera/depth/points主题上的消息,获取机器人节点的深度信息,并将机器人节点的深度信息发送给语义标注模块。
5.2语义标注模块从感知数据接收模块接收机器人节点的位姿信息,包括机器人的位置坐标(x0,y0)(笛卡尔坐标系)和表示3D姿态的方向γ。使用ROS中的rbx1包,将机器人方向γ转化为对应的转动角度β。
5.3语义标注模块从感知数据接收模块接收机器人计算节点的深度信息,从协同识别决策模块接收物体识别类别标签和物体识别位置(x2,y2),计算机器人节点到物体的视觉角度α和深度d。
视觉角度是通过结合物体识别位置和摄像头的角度侦测范围,按照三角函数比例对应关系计算得到。设图片水平像素值的一半为b,则图片中物体中心距离图片中心的水平像素值a为
a=|x2-b|
视觉传感器的水平侦测角度范围为θ(即以传感器为中心,左右水平侦测角度范围各θ/2),机器人到物体中心的视觉角度α为
α=tan-1((tan(θ/2))·a/b))
,通过结合机器人节点到物体的角度,按照三角函数关系计算得到机器人节点距离物体的深度。
设机器人节点获得的深度信息为D,机器人节点距离物体的水平深度d为
d=D/cosα
5.4语义标注模块融合环境图像中物体识别位置、机器人节点到物体的视觉角度和深度、机器人节点的位置坐标和转动角度,利用三角函数关系计算得到物体在SLAM地图上的位置坐标,将物体结果类别标签标注在SLAM地图的相应位置。利用三角函数关系计算物体在SLAM地图上的位置的方法是:
设机器人的位置坐标为(x0,y0),那么物体在SLAM地图上的位置坐标(x1,y1)为
对于摄像头左侧的物体而言:
对于摄像头右侧的物体而言:
5.5基于Faster R-CNN物体识别模块判断滑动窗口是否已经到右下角,如果是,即彩色环境图片已经完成识别,执行步骤5.6;否则将滑动窗口移到下一个位置,执行步骤4.2.2.1。
5.6语义标注模块将语义地图作为ROS消息发布在/sem_map主题上。
第六步,机器人计算节点使用ROS消息机制接收语义地图相关的ROS消息。具体步骤如下:
6.1ROS消息订阅者使用ROS消息机制接收私有云节点的语义标注模块发布的/sem_map主题上的消息,获得语义地图。
6.2机器人判定是否收到用户发出的“已完成整个环境的遍历”的指令,若收到,转第七步;若未收到,执行步骤2.5。
第七步,结束。
采用本发明可以达到如下的有益效果:
(1)私有云与机器人协同构建环境几何地图,利用云端强大的计算能力,减轻了机器人本地的计算负载。
(2)利用混合云架构进行环境中物体的识别,可以在利用云端扩展机器人能力的同时,同时最小化请求响应时间。基于协同识别决策模块,私有云熟悉的物体即可在私有云端进行识别,私有云的资源可控,请求响应时间短;对于私有云有可能识别错误的物体,会筛选出来上传至公有云进行再次识别,利用互联网基于大数据的丰富知识为物体打标签,扩展机器人的识别认知能力,提高了物体识别的准确率,使得在提高物体识别的准确率和缩短识别时间之间达到一个恰当的平衡。
(3)基于数据融合实现“物体标签-地图位置”的映射,完成语义地图的构建。融合不同空间维度的数据并进行计算,将物体标签标注在地图相应位置,构建语义地图,展示机器人对环境理解的效果。
附图说明
图1是本发明第一步构建的机器人混合云环境整体逻辑结构图。
图2是本发明第一步构建的机器人混合云环境上的软件部署图。
图3是本发明整体流程图。
图4是本发明第四步和第五步中机器人计算节点、私有云节点和公有云节点协同建立语义地图的流程图。
图5是本发明步骤5.3中机器人节点到物体的视觉角度和深度的计算示意图。
图6是本发明步骤5.4中物体在SLAM地图上位置的计算示意图。图6(a)是物体在摄像头左侧的计算示意图,图6(b)是物体在摄像头右侧的计算示意图。
具体实施方式
图1是本发明第一步构建的机器人混合云环境,它由机器人计算节点、私有云节点和公有云节点构成。机器人计算节点是可以运行软件程序的机器人硬件设备(如无人机、无人车、人形机器人等),私有云节点是具有良好计算能力的资源可控的计算设备,可以运行计算密集型或者知识密集型的机器人应用。公有云节点是存储资源丰富、并能对外提供服务的计算设备。机器人计算节点、私有云节点通过网络设备互连,私有云通过互联网访问公有云。
图2是本发明机器人计算节点和私有云节点上的软件部署图。机器人计算节点是可以在环境中移动、能够运行软件程序的机器人硬件设备,其上带有摄像头、激光雷达等传感器,机器人计算节点和私有云节点都装有操作***Ubuntu和机器人中间件ROS。除此之外,机器人计算节点上还装有感知数据采集模块。私有云节点上还装有感知数据接收模块、SLAM建图模块、基于Faster R-CNN物体识别模块、协同识别决策模块、图片上传模块和语义标注模块。公有云使用CloudSight物体识别云服务。
以下以轮式机器人TurtleBot构建语义地图为例说明本发明的具体实施方式。该实例的TurtleBot上配置有微软视觉传感器Kinect,可以实时拍摄环境图像和测距。私有云部署在服务器上,由于机器人和私有云存在知识的局限性,因此借助公有云基于互联网大数据扩展机器人的识别认知能力,使得混合云可以在扩增物体识别认知能力的同时最小化请求响应时间。
采用本发明的具体实施方式如图3所示如下:
第一步,构建机器人混合云***,它由TurtleBot轮式机器人、服务器和基于大数据的公开云服务CloudSight组成,三者通过网络设备互连。TurtleBot轮式机器人装有操作***Ubuntu14.04版本、机器人操作***中间件ROS Indigo版本和感知数据模块。服务器装有操作***Ubuntu、机器人中间件ROS、感知数据接收模块、SLAM建图模块、基于Faster R-CNN物体识别模块、协同识别决策模块、图片上传模块和语义标注模块。公有云使用CloudSight物体识别云服务(https://www.cloudsightapi.com)。
第二步,私有云节点订阅感知数据相关的ROS消息;TurtleBot感知环境,发布感知数据相关的ROS消息并订阅语义地图相关的ROS消息。
2.1私有云节点的感知数据接收模块通过基于ROS的发布/订阅机制从机器人计算节点订阅主题名为/tf的位姿信息、主题名为/odom的里程信息、主题名为/camera/depth/points的深度信息和/camera/rgb/image_raw的彩色环境图片上的消息。
2.2基于Faster R-CNN物体识别模块采用物体识别领域PASCAL VOC 2007数据集和互联网上随机下载的多幅包含各种物体的图片所构成的“其它物体类”对Faster R-CNN模型进行训练。
2.3私有云节点的协同识别决策模块从键盘接收置信度阈值0.7。
2.4TurtleBot上ROS消息订阅者订阅/sem_map主题上的消息。
2.5TurtleBot轮式机器人移动,通过硬件传感器和加速度计、陀螺仪感知环境获得数据,并通过ROS机制发布数据。具体步骤如下:
2.5.1感知数据采集模块从距离传感器获得数据,产生里程信息发布到/odom主题上;
2.5.2感知数据采集模块从距离传感器、加速度计、陀螺仪获得TurtleBot移动的距离、各时刻的加速度、陀螺仪角度。感知数据采集模块获得TurtleBot的初始位置和计算移动时间,根据上述信息使用ROS中tf库进行计算得到机器人当前在SLAM地图上的位置坐标和方向产生位姿信息,并发布到/tf主题上;
2.5.3感知数据采集模块根据Kinect视觉传感器数据产生机器人距前方物体的深度信息和彩色环境图片,并分别发布到/camera/depth/points和/camera/rgb/image_raw主题上。
第三步,私有云节点上的感知数据接收模块获取TurtleBot轮式机器人的位姿信息和里程信息,并将机器人计算节点的位姿信息和里程信息发送给SLAM建图模块,SLAM建图模块建立SLAM地图。具体步骤如下:
3.1私有云节点上的感知数据接收模块使用ROS消息机制接收到/tf主题和/odom主题上的消息,获取机器人计算节点的位姿信息和里程信息,并将机器人计算节点的位姿信息和里程信息发送给SLAM建图模块,将机器人计算节点的位姿信息发送给语义标注模块。
3.2私有云节点的SLAM建图模块接收机器人计算节点的位姿信息和里程信息,利用同步定位与建图算法SLAM绘制环境几何地图即SLAM地图,并将SLAM地图发送给语义标注模块。
第四步,私有云节点上的感知数据接收模块获取机器人计算节点的彩色环境图片并将其发送给基于Faster R-CNN物体识别模块,基于Faster R-CNN物体识别模块进行物体识别后将识别结果发送给语义标注模块。具体步骤如下:
4.1感知数据接收模块使用ROS消息机制接收到/camera/rgb/image_raw主题上的消息,获取机器人节点当前拍摄的彩色环境图片,并将其发送给基于Faster R-CNN物体识别模块。
4.2基于Faster R-CNN物体识别模块接收机器人计算节点的彩色环境图片,进行物体识别,具体步骤如下:
4.2.1基于Faster R-CNN物体识别模块从感知数据接收模块接收彩色环境图片。图片中包括了机器人和椅子。
4.2.2基于Faster R-CNN物体识别模块使用Faster R-CNN模型进行图片特征提取和物体分割,根据物***置计算物体识别位置和从彩色环境图片中截取物体图片,并将物体识别位置、物体图片、物体识别结果类别标签和识别置信度得分发送给协同识别决策模块。具体步骤如下:
4.2.2.1Faster R-CNN模型对滑动窗口中的图片进行特征提取,并判断是否为一个物体。判断是一个物体后Faster R-CNN模型返回的彩色环境图片中机器人的物***置、物体识别结果类别标签和对应的识别置信度得分。Faster R-CNN模型将机器人的物体识别结果类别标签设置为“person”,识别置信度得分为0.551。
4.2.2.2基于Faster R-CNN物体识别模块获得Faster R-CNN模型返回彩色环境图片中物***置、物体识别结果类别标签和对应的识别置信度得分,根据物***置计算物体识别位置和从彩色环境图片中截取物体图片。基于Faster R-CNN物体识别模块将物体识别位置、物体图片、物体识别结果类别标签和识别置信度得分发送给协同识别决策模块。
4.2.3协同识别决策模块判断物体识别是否正确。如果正确,协同识别决策模块将结果发送给语义标注模块,执行第五步;否则协同识别决策模块将识别错误的物体发送给图片上传模块,图片上传模块进一步上传至公有云节点。具体步骤如下:
4.2.3.1协同识别决策模块从基于Faster R-CNN物体识别模块接收机器人的物体图片、物体识别位置、物体识别类别标签和识别置信度得分,进行判断。若物体识别类别标签不是“其他物体类”且置信度得分大于等于置信度阈值,则协同识别决策模块判定对该物体识别正确,将物体识别位置和物体识别类别标签发送给语义标注模块,执行第五步。
4.2.3.2由于机器人的识别置信度得分小于阈值0.7,协同识别决策模块判定对该物体识别错误,将该物体图片发送给图片上传模块。
4.2.3.3图片上传模块使用公有云CloudSight对物体图片进行再次识别,并将物体识别类别标签发送给协同识别决策模块。具体步骤如下:
4.2.3.3.1图片上传模块申请一个CloudSight的API KEY。
4.2.3.3.2图片上传模块利用HTTP的POST方法将物体图片的地址URL(资源描述符)和所申请的API KEY上传至https://api.cloudsightapi.com/image_requests发出请求。
4.2.3.3.3图片上传模块利用HTTP的GET方法获取到用于身份和安全认证的令牌token。
4.2.3.3.4图片上传模块通过访问https://api.cloudsightapi.com/image_responses/[token]获得物体图片的识别结果类别标签为blue and white robot,并将物体识别类别标签发送给协同识别决策模块。
4.2.3.4协同识别决策模块接收到物体识别结果类别标签后,将物体识别类别标签和物体识别位置发送给语义标注模块。
第五步,私有云节点上的语义标注模块接收机器人计算节点的深度信息、位姿信息、物体识别类别标签和物体识别位置后,计算出物体在SLAM地图上的位置坐标后,将物体识别类别标签标注在SLAM地图相应位置,完成语义地图的构建。具体步骤如下:
5.1感知数据接收模块使用ROS消息机制接收到/camera/depth/points主题上的消息,获取机器人节点的深度信息,并将机器人节点的深度信息发送给语义标注模块。
5.2语义标注模块从感知数据接收模块接收机器人节点的位姿信息,包括机器人的位置坐标(0.21,0.18)和表示3D姿态的方向[0.8128,0.3430,0.4073,0.2362]T。使用ROS中的rbx1包,将机器人方向[0.8128,0.3430,0.4073,0.2362]T转化为对应的转动角度50.02°。
5.3语义标注模块从感知数据接收模块接收机器人计算节点的深度信息,从协同识别决策模块接收物体识别类别标签和物体识别位置(391,105),计算机器人节点到物体的视觉角度和深度。
如图5所示,在彩色环境图片水平像素值的一半为250,机器人图片中心距离图片中心的水平像素值为141。
a=|391-250|
kinect视觉传感器的水平侦测范围为57度(即以传感器为中心,左右各28.5度),则机器人到物体中心的视觉角度为
α=tan-1((tan(28.5°))·141/250))=17.03°
机器人节点距离物体深度为d,机器人节点获得的深度信息为2.15米,机器人节点到物体的视觉角度为17.03°,那么机器人距离物体深度为
d=2.15/cos(17.03°)=2.25(米)
5.4语义标注模块融合环境图像中物体识别位置、机器人节点到物体的视觉角度和深度、机器人节点的位置坐标和转动角度,利用三角函数关系计算得到物体在SLAM地图上的位置坐标,将物体结果类别标签标注在SLAM地图的相应位置。利用三角函数关系计算物体在SLAM地图上的位置的步骤是:
通过上面5.2和5.3步骤得到机器人到物体的视觉角度α为17.03°,机器人距离物体的深度d为2.25米,机器人的转动角度β为50.02°,机器人的位置坐标为(0.21,0.18),该物***于摄像头右侧,如图6(b)所示,物体在地图上的位置坐标(x1,y1)为
计算完成后,将物体结果类别标签(blue and white robot)标注在SLAM地图坐标为(2.10,1.41)的位置。
5.5Faster R-CNN模型判断滑动窗口是否已经到右下角,由于还没有到右下角,即没有完成彩色环境图片中物体识别,Faster R-CNN模型将滑动窗口移到下一个位置,执行步骤4.2.2.1,判断是否为一个物体,如果不是物体,继续移动滑动窗口,直到滑动窗口中是一个物体。继续执行步骤4.2.2.2识别下一个物体椅子,并将其标注在SLAM地图上。若滑动窗口已经滑到右下角,则完成识别彩色环境图片中物体(椅子和桌子)的识别,执行步骤5.6。
5.6语义标注模块将语义地图作为ROS消息发布在/sem_map主题上。
第六步,机器人计算节点使用ROS消息机制接收语义地图相关的ROS消息。具体步骤如下:
6.1TurtleBot轮式机器人上的ROS消息订阅者使用ROS消息机制接收私有云节点的语义标注模块发布的/sem_map主题上的消息,获得语义地图。
6.2机器人判定是否从用户收到“已完成整个环境的遍历”的指令,如果收到,转第七步,否则执行步骤2.5,TurtleBot继续移动,发布里程消息、位姿消息、深度消息、彩色环境图片;混合云节点上的感知数据接收、基于Faster R-CNN物体识别、协同识别决策、语义标注等模块继续接收消息、进行物体识别和标注语义地图,不断地丰富语义地图。
第七步,结束。
Claims (11)
1.一种基于云机器人混合云架构的语义地图构建方法,其特征在于包括以下步骤:
第一步,构建机器人混合云环境,它由机器人计算节点和私有云节点、公有云节点构成;机器人计算节点是可以运行软件程序的机器人硬件设备,私有云节点是可以运行计算密集型或者知识密集型的机器人应用的计算设备,公有云节点是存储资源丰富、能对外提供服务的计算设备;机器人计算节点、私有云节点通过网络设备互连,私有云节点通过互联网访问公有云节点;
机器人计算节点上除了装有操作***Ubuntu、机器人中间件ROS、ROS消息订阅者外,还装有感知数据采集模块;感知数据采集模块采集机器人的位姿信息、里程信息、深度信息和摄像头拍摄的彩色环境图片,并使用ROS的消息发布/订阅机制将这些数据发布给私有云节点上的感知数据接收模块;
私有云节点上除了装有操作***Ubuntu、机器人中间件ROS外,还装有感知数据接收模块、SLAM建图模块、基于Faster R-CNN物体识别模块、协同识别决策模块、图片上传模块和语义标注模块;
感知数据接收模块使用ROS的消息发布/订阅机制从感知数据采集模块订阅位姿信息、里程信息、深度信息和彩色环境图片;感知数据接收模块接收到位姿信息、里程信息、深度信息和彩色环境图片后,将位姿信息转发给SLAM建图模块和语义标注模块,将里程信息发送给SLAM建图模块,将彩色环境图片发送给基于Faster R-CNN物体识别模块,将深度信息发送给语义标注模块;
SLAM建图模块利用从感知数据接收模块接收的机器人位姿信息和里程信息,在完全没有先验知识的陌生环境中实时绘制环境SLAM地图,并将SLAM地图发送给语义标注模块;SLAM地图指使用SLAM算法绘制的二维几何地图;
基于Faster R-CNN物体识别模块利用从感知数据接收模块接收的彩色环境图片,基于Faster R-CNN模型对物体进行识别,得到彩色环境图片中各物***置、物体图片、物体识别类别标签、物体图片置信度得分;基于Faster R-CNN物体识别模块对Faster R-CNN模型进行训练;基于Faster R-CNN物体识别模块对从感知数据接收模块传来的彩色环境图片,采用Faster R-CNN模型对彩色环境图片进行物体识别,输出彩色环境图片中各物体的物体识别位置、物体图片、物体识别类别标签、物体置信度得分;其中物体识别类别标签和物体置信度得分由Faster R-CNN模型进行物体识别后得到;基于Faster R-CNN物体识别模块将识别结果即物体识别类别标签、置信度得分、物体识别位置、物体图片发送给协同识别决策模块;
协同识别决策模块根据置信度阈值判断从基于Faster R-CNN物体识别模块收到的识别结果是否正确,对是否需要上传至公有云再次识别进行决策;若识别结果中物体识别类别标签不是“其他物体类”且得分大于等于置信度阈值,协同识别决策模块认为对该物体识别正确,将物体识别位置和物体识别类别标签发送给语义标注模块;对于物体识别错误或无法识别的情况,协同识别决策模块将物体图片发送给图片上传模块,由公有云再次进行识别,最后协同识别决策模块将公有云返回的物体识别类别标签和物体识别位置发送给语义标注模块;
图片上传模块从协同识别决策模块接收协同识别决策模块判断为识别错误或无法识别的物体图片,将这些物体图片传给公有云节点进行再次识别,并将公有云节点再次识别后得到的物体识别类别标签发送给协同识别决策模块;
语义标注模块从SLAM建图模块接收SLAM地图,从感知数据接收模块接收位姿信息和深度信息,从协同识别决策模块接收物体识别位置和物体识别类别标签,将其保存在“标签-位置”表中;语义标注模块通过“标签-位置”表,将物体识别类别标签标注在SLAM地图相应位置,完成语义地图的构建,最后将语义地图发布给机器人计算节点;
公有云节点使用互联网基于大数据的公有云服务CloudSight识别图片上传模块接收的物体图片,给出图片中物体的识别标签;CloudSight提供POST方法和GET方法;POST方法是客户机向云服务CloudSight上传数据的方法;GET方法是客户机从云服务CloudSight上获得数据的方法;
第二步,私有云节点订阅感知数据相关的ROS消息;机器人计算节点感知环境,发布感知数据相关的ROS消息并订阅语义地图相关的ROS消息,具体步骤如下:
2.1私有云节点的感知数据接收模块通过基于ROS的发布/订阅机制从机器人计算节点订阅主题名为/tf的位姿信息、主题名为/odom的里程信息、主题名为/camera/depth/points的深度信息和/camera/rgb/image_raw的彩色环境图片上的消息;
2.2基于Faster R-CNN物体识别模块对Faster R-CNN模型进行训练;
2.3私有云节点的协同识别决策模块从键盘接收置信度阈值;
2.4机器人计算节点上ROS消息订阅者订阅/sem_map主题上的消息;
2.5机器人计算节点移动,通过硬件传感器和加速度计、陀螺仪感知环境获得数据,并通过ROS机制发布数据,具体步骤如下:
2.5.1感知数据采集模块从距离传感器获得数据,产生里程信息发布到/odom主题上;
2.5.2感知数据采集模块从距离传感器、加速度计、陀螺仪获得机器人移动的距离、各时刻的加速度、陀螺仪角度;感知数据采集模块获得机器人的初始位置和计算移动时间,根据上述信息使用ROS中tf库进行计算得到机器人当前在SLAM地图上的位置坐标和方向产生位姿信息,并发布到/tf主题上;
2.5.3感知数据采集模块从视觉传感器获得数据,视觉传感器数据包括图像中各像素点距离视觉传感器的深度信息和RGB即红绿蓝颜色值的彩色信息,后者即表现为拍摄到的彩色环境图片;感知数据采集模块根据视觉传感器数据产生机器人距前方物体的深度信息和彩色环境图片,并分别发布到/camera/depth/points和/camera/rgb/image_raw主题上;
第三步,私有云节点上的感知数据接收模块获取机器人计算节点的位姿信息和里程信息,并将机器人计算节点的位姿信息和里程信息发送给SLAM建图模块,SLAM建图模块建立SLAM地图,具体步骤如下:
3.1私有云节点上的感知数据接收模块使用ROS消息机制接收到/tf主题和/odom主题上的消息,获取机器人计算节点的位姿信息和里程信息,并将机器人计算节点的位姿信息和里程信息发送给SLAM建图模块,将机器人计算节点的位姿信息发送给语义标注模块;
3.2私有云节点的SLAM建图模块接收机器人计算节点的位姿信息和里程信息,利用同步定位与建图算法SLAM绘制环境几何地图即SLAM地图,并将SLAM地图发送给语义标注模块;
第四步,私有云节点上的感知数据接收模块获取机器人计算节点的彩色环境图片并将其发送给基于Faster R-CNN物体识别模块,基于Faster R-CNN物体识别模块进行物体识别后将识别结果发送给协同识别决策模块,协同识别决策模块将识别结果中的物体识别类别标签和物体识别位置发送给语义标注模块,具体步骤如下:
4.1感知数据接收模块使用ROS消息机制接收到/camera/rgb/image_raw主题上的消息,获取机器人节点当前拍摄的彩色环境图片,并将其发送给基于Faster R-CNN物体识别模块;
4.2基于Faster R-CNN物体识别模块接收机器人计算节点的彩色环境图片,进行物体识别,具体步骤如下:
4.2.1基于Faster R-CNN物体识别模块从感知数据接收模块接收彩色环境图片;
4.2.2基于Faster R-CNN物体识别模块使用Faster R-CNN模型进行图片特征提取和物体分割,根据物***置计算物体识别位置和从彩色环境图片中截取物体图片,并将物体识别位置、物体图片、物体识别类别标签和识别置信度得分发送给协同识别决策模块,具体步骤如下:
4.2.2.1 Faster R-CNN模型对滑动窗口中的图片进行特征提取,并判断是否为一个物体,如果是,Faster R-CNN模型进行物体分割,并返回彩色环境图片中物***置、物体识别类别标签和对应的识别置信度得分,执行步骤4.2.2.2;否则执行步骤5.5;
4.2.2.2基于Faster R-CNN物体识别模块获得Faster R-CNN模型返回彩色环境图片中物***置、物体识别类别标签和对应的识别置信度得分,根据物***置计算物体识别位置和从彩色环境图片中截取物体图片,基于Faster R-CNN物体识别模块将物体识别位置、物体图片、物体识别类别标签和识别置信度得分发送给协同识别决策模块;
4.2.3协同识别决策模块判断物体识别是否正确,如果正确,协同识别决策模块将结果发送给语义标注模块,执行第五步;否则协同识别决策模块将识别错误的物体发送给图片上传模块,图片上传模块进一步上传至公有云节点,具体步骤如下:
4.2.3.1协同识别决策模块从基于Faster R-CNN物体识别模块接收物体图片、物体识别位置、物体识别类别标签和识别置信度得分,进行判断;若物体识别类别标签不是“其他物体类”且置信度得分大于等于置信度阈值,则协同识别决策模块判定对该物体识别正确,执行4.2.3.4;
4.2.3.2若物体识别类别标签为“其他物体类”或识别置信度得分小于置信度阈值,则协同识别决策模块判定对该物体识别错误,将该物体图片发送给图片上传模块;
4.2.3.3图片上传模块使用公有云CloudSight对物体图片进行再次识别,并将物体识别类别标签发送给协同识别决策模块;
4.2.3.4协同识别决策模块接收到物体识别类别标签后,将物体识别类别标签和物体识别位置发送给语义标注模块;
第五步,私有云节点上的语义标注模块接收机器人计算节点的深度信息、位姿信息、物体识别类别标签和物体识别位置后,计算出物体在SLAM地图上的位置坐标后,将物体识别类别标签标注在SLAM地图相应位置,完成语义地图的构建,具体步骤如下:
5.1感知数据接收模块使用ROS消息机制接收到/camera/depth/points主题上的消息,获取机器人节点的深度信息,并将机器人节点的深度信息发送给语义标注模块;
5.2语义标注模块从感知数据接收模块接收机器人节点的位姿信息,包括机器人的位置坐标(x0,y0)和表示3D姿态的方向γ,使用ROS中的rbx1包,将机器人方向γ转化为对应的转动角度β;
5.3语义标注模块从感知数据接收模块接收机器人计算节点的深度信息,从协同识别决策模块接收物体识别类别标签和物体识别位置(x2,y2),计算机器人节点到物体的视觉角度α和深度d;
5.4语义标注模块融合环境图像中物体识别位置、机器人节点到物体的视觉角度和深度、机器人节点的位置坐标和转动角度,利用三角函数关系计算得到物体在SLAM地图上的位置坐标,将物体识别类别标签标注在SLAM地图的相应位置;
5.5基于Faster R-CNN物体识别模块判断滑动窗口是否已经到右下角,如果是,即彩色环境图片已经完成识别,执行步骤5.6;否则将滑动窗口移到下一个位置,执行步骤4.2.2.1;
5.6语义标注模块将语义地图作为ROS消息发布在/sem_map主题上;
第六步,机器人计算节点使用ROS消息机制接收语义地图相关的ROS消息,具体步骤如下:
6.1ROS消息订阅者使用ROS消息机制接收私有云节点的语义标注模块发布的/sem_map主题上的消息,获得语义地图;
6.2机器人判定是否收到用户发出的“已完成整个环境的遍历”的指令,若收到,转第七步;若未收到,执行步骤2.5;
第七步,结束。
2.如权利要求1所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于所述物***置指以物体左上角坐标、物体的长度和宽度来描述物体在环境图片中的位置;物体识别类别标签包括某种具体类别标签和除具体类别物体之外的其他物体类别标签;“其他物体类”代表“所有其他物体”,包含多种多样其他类型的物体,只能确定这些都是物体但却无法表示其为具体某类物体的特征;置信度得分由Faster R-CNN的Softmax分类器计算得出,表征Faster R-CNN识别结果的可靠性大小;识别置信度得分在0和1之间,得分越大表示识别结果的可靠性越大;物体识别位置指以物体外框像素点坐标位置来描述物体在环境图片中的位置,取物体外框的中心点坐标作为物体识别位置的坐标;物体图片指根据Faster R-CNN模型输出的物***置而分割出的图片;语义地图指添加了物体识别位置、物体识别类别标签的SLAM地图。
3.如权利要求1所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于所述基于Faster R-CNN物体识别模块采用物体识别领域PASCAL VOC2007数据集和互联网上随机下载的多幅包含各种物体的图片对Faster R-CNN模型进行训练。
4.如权利要求3所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于所述互联网上随机下载的多幅包含各种物体的图片指视频网站www.flickr.com上的物体图片。
5.如权利要求1所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于所述置信度阈值的可选择范围为0~1,在选择阈值时设置实验步长为0.1,即从[0,0.1,0.2,……1]中选择置信度阈值的最优设置值。
6.如权利要求5所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于所述置信度阈值设置为0.7。
7.如权利要求1所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于所述物体识别错误或无法识别的情况包括:1)物体识别结果中置信度得分小于阈值,则说明基于Faster R-CNN物体识别模块对该物体识别错误;2)该物体识别类别标签为“其他物体类”,则说明基于Faster R-CNN物体识别模块无法对该物体所属类别进行识别。
8.如权利要求1所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于4.2.3.3所述图片上传模块使用公有云CloudSight对物体图片进行再次识别的方法是:
4.2.3.3.1图片上传模块申请一个CloudSight的API KEY;
4.2.3.3.2图片上传模块利用HTTP的POST方法将物体图片的地址URL即资源描述符和所申请的API KEY上传至https://api.cloudsightapi.com/image_requests发出请求;
4.2.3.3.3图片上传模块利用HTTP的GET方法获取到用于身份和安全认证的令牌token;
4.2.3.3.4图片上传模块通过访问https://api.cloudsightapi.com/image_responses/[token]获得物体图片的识别结果类别标签。
9.如权利要求1所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于5.3步所述语义标注模块计算机器人节点到物体中心的视觉角度α的方法是:
α=tan-1((tan(θ/2))·a/b))
θ为视觉传感器的水平侦测角度范围,以传感器为中心,左右水平侦测角度范围均为θ/2,b为图片水平像素值的一半,a为图片中物体中心距离图片中心的水平像素值,a=|x2-b|。
10.如权利要求1所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于5.3步所述语义标注模块计算机器人节点距离物体的深度d的方法是:
d=D/cosα
D为机器人节点获得的深度信息,深度信息表示物体识别位置到摄像头平面的距离。
11.如权利要求1所述一种基于云机器人混合云架构的语义地图构建方法,其特征在于5.4步所述语义标注模块利用三角函数关系计算物体在SLAM地图上的位置的方法是:计算物体在SLAM地图上的位置即计算物体在SLAM地图上的位置坐标(x1,y1),
对于摄像头左侧的物体而言:
对于摄像头右侧的物体而言:
β为机器人的转动角度,(x0,y0)为机器人的位置坐标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710019515.XA CN107066507B (zh) | 2017-01-10 | 2017-01-10 | 一种基于云机器人混合云架构的语义地图构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710019515.XA CN107066507B (zh) | 2017-01-10 | 2017-01-10 | 一种基于云机器人混合云架构的语义地图构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107066507A CN107066507A (zh) | 2017-08-18 |
CN107066507B true CN107066507B (zh) | 2019-09-17 |
Family
ID=59597929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710019515.XA Active CN107066507B (zh) | 2017-01-10 | 2017-01-10 | 一种基于云机器人混合云架构的语义地图构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107066507B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766430B (zh) * | 2017-09-18 | 2020-12-25 | 北京春鸿科技有限公司 | 一种文件搜索方法及*** |
US10723027B2 (en) * | 2017-09-26 | 2020-07-28 | Toyota Research Institute, Inc. | Robot systems incorporating cloud services systems |
CN107632606A (zh) * | 2017-09-27 | 2018-01-26 | 哈工大机器人(合肥)国际创新研究院 | 大区域基于Slam和Tag标签的移动机器人导航与定位方法 |
WO2019093993A1 (en) * | 2017-11-07 | 2019-05-16 | Google Llc | Semantic state based sensor tracking and updating |
CN108092859B (zh) * | 2017-11-30 | 2021-02-02 | 山东大学 | 一种智能环境下家庭服务机器人***及工作方法 |
CN109905423B (zh) * | 2017-12-08 | 2022-11-08 | 上海仪电(集团)有限公司中央研究院 | 一种智能管理*** |
CN109974719A (zh) * | 2017-12-28 | 2019-07-05 | 周秦娜 | 一种基于云计算的移动机器人环境感知的控制方法及装置 |
CN108107897B (zh) * | 2018-01-11 | 2021-04-16 | 驭势科技(北京)有限公司 | 实时传感器控制方法及装置 |
CN108363387B (zh) * | 2018-01-11 | 2021-04-16 | 驭势科技(北京)有限公司 | 传感器控制方法及装置 |
WO2019148311A1 (zh) * | 2018-01-30 | 2019-08-08 | 深圳前海达闼云端智能科技有限公司 | 信息处理方法和***、云处理设备及计算机程序产品 |
CN108381519A (zh) * | 2018-02-24 | 2018-08-10 | 上海理工大学 | 一种智能机器人腿部*** |
CN108445504A (zh) * | 2018-03-20 | 2018-08-24 | 迪比(重庆)智能科技研究院有限公司 | 一种多旋翼无人机室内导航方法 |
CN108776474B (zh) * | 2018-05-24 | 2022-03-15 | 中山赛伯坦智能科技有限公司 | 集成高精度导航定位与深度学习的机器人嵌入式计算终端 |
CN109002037B (zh) * | 2018-06-27 | 2021-03-23 | 中国人民解放军国防科技大学 | 一种基于深度学习的多机器人协同路径跟随方法 |
CN109272493A (zh) * | 2018-08-28 | 2019-01-25 | 中国人民解放***箭军工程大学 | 一种基于递归卷积神经网络的单目视觉里程计方法 |
CN109186606B (zh) * | 2018-09-07 | 2022-03-08 | 南京理工大学 | 一种基于slam和图像信息的机器人构图及导航方法 |
CN112930554A (zh) | 2018-09-12 | 2021-06-08 | 丰田自动车欧洲公司 | 用于确定车辆环境的语义网格的电子设备、***和方法 |
CN110799983A (zh) * | 2018-11-22 | 2020-02-14 | 深圳市大疆创新科技有限公司 | 一种地图生成方法、设备、飞行器及存储介质 |
CN109737974B (zh) * | 2018-12-14 | 2020-11-27 | 中国科学院深圳先进技术研究院 | 一种3d导航语义地图更新方法、装置及设备 |
CN109782902A (zh) * | 2018-12-17 | 2019-05-21 | 中国科学院深圳先进技术研究院 | 一种操作提示方法及眼镜 |
CN109816686A (zh) * | 2019-01-15 | 2019-05-28 | 山东大学 | 基于物体实例匹配的机器人语义slam方法、处理器及机器人 |
CN109945871B (zh) * | 2019-03-15 | 2021-03-02 | 中山大学 | 一种通信带宽与距离受限情况下的多无人平台同步定位与地图构建方法 |
CN110166522B (zh) * | 2019-04-01 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 服务器识别方法、装置、可读存储介质和计算机设备 |
CN110263675B (zh) * | 2019-06-03 | 2024-02-20 | 武汉联一合立技术有限公司 | 一种社区安保机器人的垃圾目标识别***及其识别方法 |
CN110363816B (zh) * | 2019-06-25 | 2023-05-26 | 广东工业大学 | 一种基于深度学习的移动机器人环境语义建图方法 |
CN110599533B (zh) * | 2019-09-20 | 2023-06-27 | 湖南大学 | 适用于嵌入式平台的快速单目深度估计方法 |
CN110703747B (zh) * | 2019-10-09 | 2021-08-03 | 武汉大学 | 一种基于简化广义Voronoi图的机器人自主探索方法 |
CN112711249B (zh) * | 2019-10-24 | 2023-01-03 | 科沃斯商用机器人有限公司 | 机器人定位方法、装置、智能机器人和存储介质 |
CN110807782B (zh) * | 2019-10-25 | 2021-08-20 | 中山大学 | 一种视觉机器人的地图表示***及其构建方法 |
CN113296495B (zh) * | 2020-02-19 | 2023-10-20 | 苏州宝时得电动工具有限公司 | 自移动设备的路径形成方法、装置和自动工作*** |
CN111354045A (zh) * | 2020-03-02 | 2020-06-30 | 清华大学 | 一种基于红外热成像的视觉语义与位置感知方法和*** |
CN111737278B (zh) * | 2020-08-05 | 2020-12-04 | 鹏城实验室 | 同时定位与建图方法、***、设备及存储介质 |
CN113301645A (zh) * | 2020-10-15 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 信号源位置获取与位置标定方法、设备及存储介质 |
US11964398B2 (en) | 2021-01-28 | 2024-04-23 | Micropharmacy Corporation | Systems and methods for autonomous robot distributed processing |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105563484A (zh) * | 2015-12-08 | 2016-05-11 | 深圳前海达闼云端智能科技有限公司 | 一种云机器人***、机器人和机器人云平台 |
CN105844283A (zh) * | 2015-01-16 | 2016-08-10 | 阿里巴巴集团控股有限公司 | 用于识别图像类目归属的方法、图像搜索方法及装置 |
CN106052674A (zh) * | 2016-05-20 | 2016-10-26 | 青岛克路德机器人有限公司 | 一种室内机器人的slam方法和*** |
CN106066179A (zh) * | 2016-07-27 | 2016-11-02 | 湖南晖龙股份有限公司 | 一种基于ros操作***的机器人位置丢失找回方法和控制*** |
US10223638B2 (en) * | 2015-06-24 | 2019-03-05 | Baidu Online Network Technology (Beijing) Co., Ltd. | Control system, method and device of intelligent robot based on artificial intelligence |
-
2017
- 2017-01-10 CN CN201710019515.XA patent/CN107066507B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105844283A (zh) * | 2015-01-16 | 2016-08-10 | 阿里巴巴集团控股有限公司 | 用于识别图像类目归属的方法、图像搜索方法及装置 |
US10223638B2 (en) * | 2015-06-24 | 2019-03-05 | Baidu Online Network Technology (Beijing) Co., Ltd. | Control system, method and device of intelligent robot based on artificial intelligence |
CN105563484A (zh) * | 2015-12-08 | 2016-05-11 | 深圳前海达闼云端智能科技有限公司 | 一种云机器人***、机器人和机器人云平台 |
CN106052674A (zh) * | 2016-05-20 | 2016-10-26 | 青岛克路德机器人有限公司 | 一种室内机器人的slam方法和*** |
CN106066179A (zh) * | 2016-07-27 | 2016-11-02 | 湖南晖龙股份有限公司 | 一种基于ros操作***的机器人位置丢失找回方法和控制*** |
Non-Patent Citations (2)
Title |
---|
Toward QoS-aware Cloud Robotic applications: A Hybrid Architecture and Its Implementation;Yiying Li 等;《IEEE International Conference on Ubiquitous Intelligence and Computing》;20160721;33-40 |
基于云计算的机器人SLAM架构的实现与优化;谭杰夫 等;《软件》;20151015;第36卷(第10期);17-20、25 |
Also Published As
Publication number | Publication date |
---|---|
CN107066507A (zh) | 2017-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066507B (zh) | 一种基于云机器人混合云架构的语义地图构建方法 | |
JP7408792B2 (ja) | シーンのインタラクション方法及び装置、電子機器並びにコンピュータプログラム | |
CN102142081B (zh) | 图像处理设备、图像处理方法、以及程序 | |
EP2701818B1 (en) | Generating and joining shared experience | |
CN110908504B (zh) | 一种增强现实博物馆协作交互方法与*** | |
TWI615776B (zh) | 移動物件的虛擬訊息建立方法、搜尋方法與應用系統 | |
CN108230437A (zh) | 场景重建方法和装置、电子设备、程序和介质 | |
CN106598226A (zh) | 一种基于双目视觉和深度学习的无人机人机交互方法 | |
Li et al. | Camera localization for augmented reality and indoor positioning: a vision-based 3D feature database approach | |
CN102663722A (zh) | 使用深度图像的活动对象分割 | |
Alvey et al. | Simulated photorealistic deep learning framework and workflows to accelerate computer vision and unmanned aerial vehicle research | |
WO2022052782A1 (zh) | 图像的处理方法及相关设备 | |
US20230251094A1 (en) | Navigation video generation and acquisition methods and apparatuses, server, device, and medium | |
Zhao et al. | Vivid: Augmenting vision-based indoor navigation system with edge computing | |
US20230316675A1 (en) | Traveling in time and space continuum | |
Wong et al. | Visual gaze analysis of robotic pedestrians moving in urban space | |
Dang et al. | Perfc: An efficient 2d and 3d perception software-hardware framework for mobile cobot | |
Park et al. | AR room: Real-time framework of camera location and interaction for augmented reality services | |
JP7479070B2 (ja) | 階層的オクルージョン推論モジュール並びにこれを用いた不可視物体インスタンスセグメンテーションのシステム及び方法 | |
Ishigaki et al. | Real-time 3D reconstruction for mixed reality telepresence using multiple depth sensors | |
WO2019207875A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN116469142A (zh) | 目标定位与识别方法、设备及可读存储介质 | |
CN112785083B (zh) | 到达时间的预估方法、装置、电子设备以及存储介质 | |
Al Haj et al. | Beyond the static camera: Issues and trends in active vision | |
Ghahramani et al. | 6d object pose estimation for robot programming by demonstration |
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 |