发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种能够舒适轻松的控制扫地机器人到达某一特定区域执行清扫,提高清扫效率、降低操作繁琐度的基于手势控制的扫地机器人控制方法及系统。
为了实现上述目的,本发明采用的技术方案为:
一种基于手势控制的扫地机器人控制方法,包括以下步骤:
S10:获取用户手势活动过程中手势坐标集合;
S20:获取用户双眼中点的坐标;
S30:根据所述手势坐标集合和所述双眼中点的坐标确定用户手势活动范围对应到预存室内地图中的区域形成目标清扫区域;
S40:根据所述目标清扫区域规划行进路线,执行所述行进路线运动至所述目标清扫区域进行清扫。
上述设计中,通过手势坐标集合和双眼中点的坐标的获取,并借助三维重建以及投影原理,能够准确的获取到用户手势活动范围对应到室内地面上的区域,完成对用户想要清扫区域的完整识别;并最终自动规划路线到达,有利于实现根据手势的一次定位和清扫,实现特定区域的定向清扫,增强了人机结合,操作过程轻松且舒适。
进一步地,所述步骤S30包括以下步骤:
S31:将所述手势坐标集合和所述双眼中点的坐标转换为与预存室内地图相对应的世界坐标系下的坐标;
S32:在所述世界坐标系下,计算所述手势坐标集合中每个手势坐标点和所述双眼中点的坐标点两点连线交于预存室内地图平面上的交点;
S33:将所有所述交点拟合成完整的轮廓曲线以形成目标清扫区域。
进一步地,所述步骤S10包括以下步骤:
S11:利用相机获取用户手势活动过程中手势的深度信息和像素坐标;
S12:根据所述手势的深度信息和像素坐标计算手势在相机坐标系下的手势坐标;
S13:重复步骤S11、S12获取用户手势起点至手势终点的所有手势坐标形成手势坐标集合。
进一步地,所述步骤S20包括以下步骤:
S21:利用相机获取用户双眼深度信息和像素坐标;
S22:根据所述双眼深度信息和像素坐标计算双眼在相机坐标系下的双眼坐标,并根据双眼坐标计算双眼中点的坐标。
进一步地,所述步骤S10之前还包括以下步骤:
S01:构建并保存室内地图;
S02:识别手势指令并根据所述手势指令进入相应的工作模式。
进一步地,所述步骤S02包括以下步骤:
S021:利用相机获取图像,根据人脸轮廓特征识别所述图像中的人脸并计算人脸区域的肤色,获取肤色范围值;
S022:根据肤色范围值确定所述图像中人手部的位置,并提取手部轮廓信息;
S023:根据所述手部轮廓信息获取手部凸包并根据所述手部凸包识别伸出的手指个数,根据所述伸出手指个数进入相应的工作模式。
一种基于手势控制的扫地机器人控制系统,包括:
手势坐标获取模块,用于获取用户手势活动过程中手势坐标集合;
中点坐标获取模块,用于获取用户双眼中点的坐标;
目标清扫区域确定模块,用于根据所述手势坐标集合和所述双眼中点的坐标确定用户手势活动范围对应到预存室内地图中的区域形成目标清扫区域;
路径规划模块,用于根据所述目标清扫区域规划行进路线。
进一步地,所述目标清扫区域确定模块包括:
转换单元,用于将所述手势坐标集合和所述双眼中点的坐标转换为与预存室内地图相对应的世界坐标系下的坐标;
第三计算单元,用于在所述世界坐标系下,计算所述手势坐标集合中每个手势坐标点和所述双眼中点的坐标点两点连线交于预存室内地图平面上的交点;
拟合单元,用于将所有所述交点拟合成完整的轮廓曲线以形成目标清扫区域。
进一步地,所述手势坐标获取模块包括:
手势图像信息采集单元,用于利用相机获取用户手势活动过程中手势的深度信息和像素坐标;
第一计算单元,用于根据所述手势的深度信息和像素坐标计算手势在相机坐标系下的手势坐标,直至计算完用户手势起点至手势终点的所有手势坐标形成手势坐标集合。
进一步地,所述中点坐标获取模块包括:
双眼图像信息采集单元,用于利用相机获取用户双眼深度信息和像素坐标;
第二计算单元,用于根据所述双眼深度信息和像素坐标计算双眼在相机坐标系下的双眼坐标,并根据双眼坐标计算双眼中点的坐标。
采用上述技术方案后,本发明的有益效果是:通过获取手势坐标和人的双眼中点的坐标,利用投影原理和三维重建技术可准确的获取用户手势对应的地面区域,有利于扫地机器人根据用户的手势划定目标清扫区域,实现定向清扫,增强人机结合的同时提高了清洁效率,且能够将用户从以往繁琐的机器操作中解脱出来,智能性大大加强;
通过识别手势指令并根据所述手势指令进入相应的工作模式时,设置利用相机获取图像,根据人脸轮廓特征识别所述图像中的人脸并计算人脸区域的肤色,获取肤色范围值;然后根据肤色范围值确定所述图像中人手部的位置,并提取手部轮廓信息;根据所述手部轮廓信息获取手部凸包并根据所述手部凸包识别伸出的手指个数,根据所述伸出手指个数进入相应的工作模式;首先识别人脸有利于确认使用权限,避免扫地机器人识别错误的手指指令,导致清扫出错;确认使用权限人后再通过肤色确定手部和提取手部轮廓信息,然后根据手部轮廓信息获取手部凸包并根据所述手部凸包识别伸出的手指个数,有利于提高手指伸出个数识别的准确度;根据伸出手指个数进入相应的工作模式,有利于避免扫地机器人在用户不需要根据手势进行清扫时,错误识别指令导致的电能浪费,提高了手势控制工作的安全性和可靠性。
具体实施方式
以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
需要指出的是,本文中出现的“第一”、“第二”、“第三”仅用于彼此的区分,而非表示它们的重要程度及顺序等。
目前基于手势控制的扫地机器人更多的是识别手势路径后将其与存储装置中存储的预设手势路径比对,当一致时,扫地机器人会进入手势控制模式以及进行相应动作,相应动作包括控制所述扫地机器人前进、后退、转向,即仅局限于移动,想要根据上述控制到达指定清扫区域,其操作过程完全由用户逐步控制,操作十分繁琐,费力费时,定向性低,如公开号为CN105334851A的专利文献公开的“一种可感应手势的移动设备”。因此,亟需一种能够根据手势控制确定目标清扫区域,实现清扫工作一次定位,降低操作繁琐度的控制方法。
实施例1
如图1所示,本实施例提供一种基于手势控制的扫地机器人控制方法,包括以下步骤:
S10:获取用户手势活动过程中手势坐标集合;
S20:获取用户双眼中点的坐标;
S30:根据所述手势坐标集合和所述双眼中点的坐标确定用户手势活动范围对应到预存室内地图中的区域形成目标清扫区域;
S40:根据所述目标清扫区域规划行进路线,执行所述行进路线运动至所述目标清扫区域进行清扫。
上述步骤中,需要说明的是,步骤S10和S20不存在固定的获取的先后顺序的区分,两者的获取顺序可任意调换。
用户手势活动过程跟踪最简单直接的方式,就是图像采集的方式,利用相机拍摄手势活动过程的视频或者多幅手势图像,并根据手势在视频或图像中的不同位置确定手势的运动,以及获取手在各幅图像中的坐标,并最终结合深度相机采集的手势深度信息和三维重建技术即可确切的获取手势的空间位置。手势活动过程中手势坐标的确定可以统一指定手上的某一特定点,譬如手指指尖末梢或手掌心或手的中心点等来确定手势坐标集合。
三维重建技术,简单地说,就是从输入数据中建立3D模型。其中,在面向消费者层面的深度相机出现以前,三维重建技术的输入数据通常只有RGB图像,通过对物体的不同角度拍摄的RGB图像,使用相关的计算机图形学和视觉技术,我们便可以重建出该物体的三维模型。不过,早期的三维重建技术得到的模型精度往往较低,且技术的适用范围有限。消费者层面的深度相机的出现为三维重建技术提供了深度图像(depth image)数据,大大降低了重建的难度,并使得三维重建技术可以应用到几乎任何现实场景中。由于基于深度相机的三维重建技术所使用的数据是RGB图像和深度图像,因此,这类技术通常也被称为基于RGBD数据的三维重建技术(D指代depth)。
双眼中点的坐标同样可采用三维重建技术来获取。
根据上述方法获取手势坐标集合和双眼中点的坐标后,由于该坐标仅是相机视觉下的坐标,需进一步根据相机在室内的空间地理位置建立起世界坐标系,并确定手势和双眼中点在世界坐标系的坐标,最终根据投影原理,以双眼中点为投影中心,以手势坐标点与双眼中点连线的延长方向为投影方向,确定手势坐标对应到地面的投影点,集合所有投影点围成的空间,即可作为扫地机器人根据手势指令划定的目标清扫区域,实现了特定区域的指定清扫;且降低了人控制操作扫地机器人的繁琐度。
除了上述利用图像获取手势坐标集合的采集方法之外,其他还可利用如红外跟踪技术等获取,但过程则相对更加复杂,需要进一步借助手上的穿戴设备。
具体的,为了使得手势活动指定的清扫范围更加明确,可定义用户采用一根手指做画圈的动作来下达任务;定义扫地机器人具体识别用户手指末梢的手势范围,以识别的手势路径近似闭环时默认一次指令下达完成,指令下达完成后结束手势坐标集合获取,完成目标清扫区域的确定;也可以以手势停顿超过预定时长时默认一次指令下达完成。
实施例2
如图2所示,本实施例相比实施例1,进一步的细化了说明了手势坐标集合和双眼中点的坐标的获取过程;获取方式简单,快速且准确度高;
所述步骤S30包括以下步骤:
S31:将所述手势坐标集合和所述双眼中点的坐标转换为与预存室内地图相对应的世界坐标系下的坐标;本步骤的过程,即为立体视觉中,相机坐标系与世界坐标系的转换过程,此过程中,转换关系如下:
其中,所述手势坐标集合中的各坐标点和双眼中点的坐标可表示为(Xc,Yc,Zc),所述手势坐标集合中的各坐标点和双眼中点的坐标转换成世界坐标系下的坐标后的坐标点表示为(X,Y,Z),R为旋转矩阵,描述了世界坐标系的坐标轴相对于相机坐标轴的方向,t为平移向量,描述了在相机坐标系下,空间原点的位置;R、t随相机的位置和角度变化(相机位姿变化)而发生变化,R和t的初始值可通过OpenCV中的相关函数(如compute_extrinsic_init_fisheye.m/compute_extrinsic_refine_fisheye.m)计算获得,由于计算过程较为繁琐,具体可参见摄像机内外参数计算过程的现有技术,R、t均为摄像机外参数。
S32:在所述世界坐标系下,计算所述手势坐标集合中每个手势坐标点和所述双眼中点的坐标点两点连线交于预存室内地图平面上的交点;预存室内地图平面在世界坐标系(X,Y,Z)中为Z=0的平面,世界坐标系模型如图3所示,其中,E为双眼中心的世界坐标系坐标,Px为世界坐标系下手势坐标集合,Pw为世界坐标系下交点的集合,C为相机世界坐标系坐标。
S33:将所有所述交点拟合成完整的轮廓曲线以形成目标清扫区域。具体的,利用常见的拟合算法如最小二乘法,当定义用户采用一根手指做画圈的动作来下达任务时,还可以更具体的采用椭圆拟合的方法拟合出完整的轮廓曲线以确定目标清扫区域。上述设计具有获取过程简单方便,获取结果准确度高的优点。
实施例3
如图4所示,本实施例与实施例2的区别在于,所述步骤S10包括以下步骤:
S11:利用相机获取用户手势活动过程中手势的深度信息和像素坐标;
S12:根据所述手势的深度信息和像素坐标计算手势在相机坐标系下的手势坐标;
S13:重复步骤S11、S12获取用户手势起点至手势终点的所有手势坐标形成手势坐标集合。
上述步骤中所述的相机为深度相机,可以是双目相机也可以是RGBD相机;以手指末梢为手势活动过程坐标认定的特征点为例,首先扫地机器人利用相机拍摄图像,然后识别出手指末梢,获取手指末梢的深度信息和手指末梢在图像中的像素坐标,其中手指末梢的深度信息为现实场景中手指末梢点到相机所在的垂直平面的距离值,这个距离值被称为深度值(depth)。具体的,相机坐标系模型如图5所示,其中,P代表手势坐标(手指末梢坐标),p代表手势的像素坐标,C为相机的光学中心。
获取手指末梢的深度信息和手指末梢在图像中的像素坐标后,利用光学中心到像平面的距离(焦距)即可计算出手指末梢在相机坐标系下的手指末梢坐标(Xc,Yc,Zc);
重复上述的参数获取步骤即可形成手指末梢坐标集合,其中手势起点至手势终点的认定在实施例1中也有说明,例如当图像中第一次出现手势时手上该特征点的位置为手势起点,手势停顿超过预定时长时该手上特征点的位置即为手势终点;又例如当手势的坐标集合组成的路径近似一个闭环时,该闭环路径上的最后一个点即为手势终点。
所述步骤S20包括以下步骤:
S21:利用相机获取用户双眼深度信息和像素坐标;即将左眼和右眼的深度信息和像素坐标均获取;
S22:根据所述双眼深度信息和像素坐标计算双眼在相机坐标系下的双眼坐标,并根据双眼坐标计算双眼中点的坐标。
实施例4
如图6、图7所示,本实施例与实施例1的区别在于,所述步骤S10之前还包括以下步骤:
S01:构建并保存室内地图;使用深度相机构建并保存室内地图;
S02:识别手势指令并根据所述手势指令进入相应的工作模式。例如:手势指令为伸出的手指个数,若识别伸出的手指个数为M(1<M<10)个则开启手势指令模式并提示用户已进入手势指令模式,用于告知用户可以开始下达任务,提示用户已进入手势指令模式可选用语音或指示灯闪烁等;进入手势指令模式后,若识别伸出的手指个数为1时,表示任务正在下达,扫地机器人进入任务下达模式可以开始执行步骤S10以及后续的步骤;上述设计使得扫地机器人首先进入手势指令模式后,再识别任务的下达过程,有利于提高手势识别的安全性和可靠性。
进一步地,所述步骤S02包括以下步骤:
S021:利用相机获取图像,根据人脸轮廓特征识别所述图像中的人脸并计算人脸区域的肤色,获取肤色范围值;
S022:根据肤色范围值确定所述图像中人手部的位置,并提取手部轮廓信息;
S023:根据所述手部轮廓信息获取手部凸包并根据所述手部凸包识别伸出的手指个数,根据所述伸出手指个数进入相应的工作模式。
上述设计中,先人脸轮廓特征识别所述图像中的人脸,从人脸中获取肤色范围值,然后根据肤色范围值确定所述图像中肤色值在所述肤色范围值内的图像特征部位,这些图像特征部位中有手部和人的其他裸露部位,人的手部相对人的其他裸露部位具有极高的辨识度,故可以充分且准确的获取到手部手部轮廓信息;然后所述手部轮廓信息获取手部凸包并根据所述手部凸包识别伸出的手指个数,最终根据所述伸出手指个数进入相应的工作模式;首先识别人脸有利于帮助确认使用权限,避免扫地机器人识别错误的手指指令(不是该权限用户的手势指令),导致清扫出错;确认使用权限人后再通过肤色确定手部和提取手部轮廓信息,然后根据手部轮廓信息获取手部凸包并根据所述手部凸包识别伸出的手指个数的方式,有利于提高手指伸出个数识别的准确度;根据伸出手指个数进入相应的工作模式,综上,有利于避免扫地机器人在用户不需要根据手势进行清扫时,错误识别指令导致的电能浪费,提高了手势控制工作的安全性和可靠性。
实施例5
如图8所示,本实施例提供一种基于手势控制的扫地机器人控制系统,用于提供实施例1-4所述控制方法的物理支持,包括:
手势坐标获取模块100,用于获取用户手势活动过程中手势坐标集合;
中点坐标获取模块200,用于获取用户双眼中点的坐标;
目标清扫区域确定模块300,用于根据所述手势坐标集合和所述双眼中点的坐标确定用户手势活动范围对应到预存室内地图中的区域形成目标清扫区域;
路径规划模块400,用于根据所述目标清扫区域规划行进路线。
所述目标清扫区域确定模块300包括:
转换单元310,用于将所述手势坐标集合和所述双眼中点的坐标转换为与预存室内地图相对应的世界坐标系下的坐标;
第三计算单元320,用于在所述世界坐标系下,计算所述手势坐标集合中每个手势坐标点和所述双眼中点的坐标点两点连线交于预存室内地图平面上的交点;
拟合单元330,用于将所有所述交点拟合成完整的轮廓曲线以形成目标清扫区域。
系统还包括相机,所述相机为深度相机;
所述手势坐标获取模块100包括:
手势图像信息采集单元110,用于利用相机获取用户手势活动过程中手势的深度信息和像素坐标;
第一计算单元120,用于根据所述手势的深度信息和像素坐标计算手势在相机坐标系下的手势坐标,直至计算完用户手势起点至手势终点的所有手势坐标形成手势坐标集合。
所述中点坐标获取模块200包括:
双眼图像信息采集单元210,用于利用相机获取用户双眼深度信息和像素坐标;
第二计算单元220,用于根据所述双眼深度信息和像素坐标计算双眼在相机坐标系下的双眼坐标,并根据双眼坐标计算双眼中点的坐标。
还包括:地图构建储存模块,用于构建并保存室内地图;
识别模块,用于识别手势指令并根据所述手势指令进入相应的工作模式。
所述识别模块包括:
人脸识别单元,用于根据人脸轮廓特征识别相机采集图像中的人脸;
肤色计算单元,用于计算图像中人脸区域的肤色,获取肤色范围值;
手部识别单元,用于根据肤色范围值确定所述图像中人手部的位置,并提取手部轮廓信息,根据所述手部轮廓信息获取手部凸包并根据所述手部凸包识别伸出的手指个数以及根据所述伸出手指个数进入相应的工作模式。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。