本申请属于机器人技术领域,尤其涉及一种机器人控制方法、装置、机器人及计算机可读存储介质。
背景技术:
随着机器人技术的不断发展,机器人的应用也越来越广泛。
目前,通过手势指令可以控制机器人执行相应动作,例如,向右挥手,控制机器人向右行走。但是,以手势为指令控制机器人在实际应用中面临着一个问题:机器人何时应该响应手势指令。如果机器人错误地响应了手势指令,可能会引发严重安全问题,例如,机器人冲向用户。当手势为静态手势时,存在极大概率用户举起手就被识别,机器人相应地响应该手势指令;当手势为动态手势时,例如,左右挥手。用户可能在没有意图发送左右挥手的手势指令,但是,机器人识别出该动态手势之后,就会响应该手势指令,执行对应动作。
这种方式,手势过于简单,存在极大随意性,触发指令时机的不确定性,容易引发严重安全问题,如机器人冲向用户。也就是说,机器人错误响应手势指令的概率较高。
技术实现要素:
本申请实施例提供一种机器人控制方法、装置、机器人及计算机可读存储介质,以解决机器人错误响应手势指令的概率较高的问题。
第一方面,本申请实施例提供一种机器人控制方法,包括:
获取用户手部移动过程中采集的至少两帧手部图像;
根据所述手部图像,得到手部移动轨迹;
将所述手部移动轨迹划分成预设长度的轨迹片段;
根据相邻两个所述轨迹片段之间的角度,识别所述手部移动轨迹是否为预设笔画式手势轨迹;
若所述手部移动轨迹为所述预设笔画式手势轨迹,则响应与所述预设笔画式手势轨迹对应的手势指令。
本申请实施例通过采集用户手部移动轨迹,并根据相邻两个轨迹片段之间的角度识别用户的手部移动轨迹是否为预设笔画式手势轨迹,如果是笔画式手势轨迹则响应手势指令,降低了机器人错误响应手势指令的概率。
在第一方面的一种可能的实现方式中,根据相邻两个所述轨迹片段之间的角度,识别所述手部移动轨迹是否为预设笔画式手势轨迹,包括:
以相邻两个所述轨迹片段中前一个轨迹片段的方向作为横轴方向,构建相对坐标系;
在所述相对坐标系下,计算相邻两个所述轨迹片段中后一个轨迹片段的斜率;
根据所述斜率得到相邻两个所述轨迹片段之间的角度;
若所述角度小于预设角度,则判定相邻两个所述轨迹片段的方向相同;若所述角度大于或等于所述预设角度,则根据所述角度确定相邻两个轨迹片段中后一个轨迹片段的方向;
确定各个轨迹片段的方向之后,得到所述手部移动轨迹对应的手势轨迹;其中,第一个轨迹片段的方向基于图像坐标系确定;
若所述手势轨迹与所述预设笔画式手势轨迹一致,所述手部移动轨迹为所述预设笔画式手势轨迹。
在第一方面的一种可能的实现方式中,根据相邻两个所述轨迹片段之间的角度,识别所述手部移动轨迹是否为预设笔画式手势轨迹,还包括:
若所述手势轨迹与所述预设笔画式手势轨迹不一致,所述手部移动轨迹为非预设笔画式手势轨迹。
在第一方面的一种可能的实现方式中,根据所述手部图像,得到手部移动轨迹,包括:
确定每帧所述手部图像的手部中心;
按照手部图像采集的先后顺序连接每帧所述手部图像的手部中心,得到所述手部移动轨迹。
在第一方面的一种可能的实现方式中,确定每帧所述手部图像的手部中心,包括:
从所述手部图像中分割出手部区域图像;
对所述手部区域图像进行二值化处理;
计算二值化后的手部区域图像的重心,所述重心为所述手部图像的手部中心。
在第一方面的一种可能的实现方式中,获取用户手部移动过程中采集的至少两帧手部图像,包括:
通过摄像装置采集用户手部移动过程中的至少两帧手部图像;
其中,所述摄像装置包括带通红外滤波片、镜头和图像传感器,所述手部图像为红外图像。
需要说明的是,通过对摄像头进行改进,使得在光线不足的场景下,仍然能捕捉到清楚的手部图像。
第二方面,本申请实施例提供一种机器人控制装置,包括:
手部图像获取模块,用于获取用户手部移动过程中采集的至少两帧手部图像;
手部移动轨迹确定模块,用于根据所述手部图像,得到手部移动轨迹;
划分模块,用于将所述手部移动轨迹划分成预设长度的轨迹片段;
识别模块,用于根据相邻两个所述轨迹片段之间的角度,识别所述手部移动轨迹是否为预设笔画式手势轨迹;
响应模块,用于若所述手部移动轨迹为所述预设笔画式手势轨迹,则响应与所述预设笔画式手势轨迹对应的手势指令。
在第二方面的一种可能的实现方式中,所述识别模块具体用于:
以相邻两个所述轨迹片段中前一个轨迹片段的方向作为横轴方向,构建相对坐标系;
在所述相对坐标系下,计算相邻两个所述轨迹片段中后一个轨迹片段的斜率;
根据所述斜率得到相邻两个所述轨迹片段之间的角度;
若所述角度小于预设角度,则判定相邻两个所述轨迹片段的方向相同;若所述角度大于或等于所述预设角度,则根据所述角度确定相邻两个轨迹片段中后一个轨迹片段的方向;
确定各个轨迹片段的方向之后,得到所述手部移动轨迹对应的手势轨迹;其中,第一个轨迹片段的方向基于图像坐标系确定;
若所述手势轨迹与所述预设笔画式手势轨迹一致,所述手部移动轨迹为所述预设笔画式手势轨迹。
第三方面,本申请实施例提供一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面任一项所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面任一项所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在机器人上运行时,使得机器人执行上述第一方面中任一项所述的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供一种机器人控制方法的流程示意框图;
图2为本申请实施例提供的手部图像示意图;
图3为本申请实施例提供的手部区域图像示意图图;
图4为本申请实施例提供的手部移动轨迹示意图;
图5为本申请实施例提供的步骤s104的流程示意框图;
图6为本申请实施例提供的确定轨迹片段方向的示意图;
图7为本申请实施例提供的8个方向示意图;
图8为本申请实施例提供的手势轨迹示意图;
图9为本申请实施例提供的机器人控制装置的结构示意框图;
图10为本申请实施例提供的机器人的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的机器人控制方法可以应用于机器人,机器人的具体类型在此不作限定。例如,本申请实施例的机器人控制方法可以应用于桌面小型教育机器人和车载小型机器人。
参见图1,为本申请实施例提供一种机器人控制方法的流程示意框图,该方法可以包括以下步骤:
步骤s101、获取用户手部移动过程中采集的至少两帧手部图像。
需要说明的是,在用户手部移动过程中,通过摄像装置跟踪用户手部,并采集多帧手部图像,该手部图像包括手部区域。
上述摄像装置包括摄像头,该摄像头可以是普通彩色摄像头,此时,采集的手部图像为普通的彩色图像。
该摄像头也可以是改进后的摄像头,具体来说,普通彩色摄像头一般都携带有红外截止滤光片,以只允许可见光进入成像,阻止红外线等人眼不可见光进入图像传感器。而改进后的彩色摄像头摘除了红外截止滤光片,并添加一个带通红外滤波片,该带通红外滤波片可以只允许波长850nm的红外通过。另外,为了保证均衡的光照,避免图像阴影,还可以在摄像头的镜头外增加一圈红外led灯。
参见图2示出的手部图像示意图,如图2所示,图2(a)为普通彩色摄像头拍摄的手部图像,图2(b)为改进后的摄像头拍摄的手部图像。比较两幅手部图像可知,图2(b)的手部图像的前景目标(手部区域)和背景差异化明显,且在近距离下,手部图像的主要目标为手部区域。
在一些实施例中,可以通过摄像装置采集用户手部移动过程中的至少两帧手部图像;其中,摄像装置包括带通红外滤波片、镜头和图像传感器,手部图像为红外图像。
需要说明的是,通过对摄像头进行改进,使得在光线不足、近距离的场景下,仍然能捕捉到清楚的手部图像。
步骤s102、根据手部图像,得到手部移动轨迹。
具体地,通过跟踪手,采集得到手部移动过程的多帧手部图像,确定出每一帧手部图像的手部中心后,按照图像采集的先后顺序,将各帧手部图像的手部中心连接起来,得到手部移动轨迹。
换句话说,该步骤可以包括以下两个步骤:
第一步,确定每帧手部图像的手部中心。
首先,从手部图像中分割出手部区域图像。
具体地,可以将手部图像转换为灰度图,再通过图像阈值分割,分割出手部区域。具体参见图3示出的手部区域图像示意图。
接着,对手部区域图像进行二值化处理。
最后,计算二值化后的手部区域图像的重心,重心为手部图像的手部中心。
具体地,分割出手部区域图像之后,再对手部区域图像进行二值化处理,然后再通过二值化后的手部区域图像的几何矩计算手部区域图像的重心。
具体来说,先通过计算二值化图像的零阶矩和一阶矩,再基于零阶矩和一阶矩计算手部区域图像的重心。
其中,零阶矩的计算公式如下:
二值化后的手部区域图像为单通道图像,v(i,j)表示二值化后的手部区域图像在(i,j)点上的灰度值。m00是二值化后的手部区域图像上白色区域的总和,因此,m00可以用来求二值图像(轮廓、连通域)的面积。
一阶矩的计算公式如下:
二值化后的手部区域图像只有0(黑)和1(白)两个值。m10是指该图像上所有白色区域x坐标值的累加。m01是指该图像上所有白色区域y坐标值的累加。因此,一阶矩可以用来求二值图像的重心。
一阶矩求二值图像的重心如下:
二值化后的手部区域图像的重心坐标为(xc,yc)。
依据上述公式1、2、3和4,分别计算出每一帧手部图像的重心。将手部图像的重心作为手部中心。
第二步、按照手部图像采集的先后顺序连接每帧手部图像的手部中心,得到手部移动轨迹。
具体地,得到每帧图像的手部中心之后,依次连接即可得到手部移动轨迹。具体可以参见图4示出的手部移动轨迹示意图。
步骤s103、将手部移动轨迹划分成预设长度的轨迹片段。
需要说明的是,上述预设长度可以根据需要进行设定,在此不作限定。具体应用中,可以实时记录手部移动轨迹,当手部移动轨迹的长度达到上述预设长度时,则将记录的手部移动轨迹作为轨迹片段,进而计算该轨迹片段的斜率或角度。当然,也可以记录完完整的手部移动轨迹之后,再将完整的手部移动轨迹划分为多个预设长度的轨迹片段。
步骤s104、根据相邻两个轨迹片段之间的角度,识别手部移动轨迹是否为预设笔画式手势轨迹。
具体地,可以先确定出第一个轨迹片段的方向,然后分别第一个轨迹片段的方向作为横轴方向构建坐标系,然后计算第二个轨迹片段在所构建的坐标系中的斜率,再根据斜率得到相邻两个轨迹片段的角度。若第一个轨迹片段和第二个轨迹片段之间的角度小于一定角度,则认为第一个轨迹片段和第二个轨迹片段的方向一致,即第二个轨迹片段的方向与第一个轨迹片段的方向相同。反之,如果第一个轨迹片段和第二个轨迹片段的角度大于一定角度,则认为第二个轨迹片段的方向不同与第一轨迹片段的方向,则基于第二个轨迹片段相对于第一轨迹片段的方向,确定出第二轨迹片段的方向。
依次类推,依次确定第三个轨迹片段、第四个轨迹片段、…、第n个轨迹片段的方向,直到所有轨迹片段的方向均确定出来,则可以得到手部移动轨迹对应的手势轨迹。
得到手势轨迹之后,可以将该手势轨迹与预先存储的笔画式手势轨迹进行比对,确定是否有一致,如果有一致的,则认为该手部移动轨迹为预设笔画式手势轨迹,反之,如果没有一致的,则认为该手部移动轨迹不是预设笔画式手势轨迹。
步骤s105、若手部移动轨迹为预设笔画式手势轨迹,则响应与预设笔画式手势轨迹对应的手势指令。
可以理解的是,每一个预设笔画式手势轨迹,均对应有相应的指令。例如,某一个预设笔画式手势轨迹的手势指令用于指示机器人向前走,机器人识别到该手势指令之后,则响应该手势指令,执行向前走的动作。又例如,某一个预设笔画式手势轨迹的手势指令用于指示机器人向左转,机器人识别到该手势指令之后,则响应该手势指令,执行向右转的动作。
本申请实施例通过采集用户手部移动轨迹,并根据相邻两个轨迹片段之间的角度识别用户的手部移动轨迹是否为预设笔画式手势轨迹,如果是笔画式手势轨迹则响应手势指令,降低了机器人错误响应手势指令的概率。
下面结合图5对步骤s104作进一步介绍。
参见图5示出的步骤s104的流程示意框图,上述根据相邻两个轨迹片段之间的角度,识别手部移动轨迹是否为预设笔画式手势轨迹的过程可以包括:
步骤s501、以相邻两个轨迹片段中前一个轨迹片段的方向作为横轴方向,构建相对坐标系。
步骤s502、在相对坐标系下,计算相邻两个轨迹片段中后一个轨迹片段的斜率。
步骤s503、根据斜率得到相邻两个轨迹片段之间的角度。
参见图6示出的确定轨迹片段方向的示意图,如图6所示,其包括三个轨迹片段,按照时间先后顺序,这三段轨迹片段分别记为a、b、c。a和b是相邻的两个轨迹片段,b和c是相邻的两个轨迹片段。
对于a和b两个相邻轨迹片段,a是前一个轨迹片段,b是后一个轨迹片段,假设已经得知a轨迹片段的方向,为水平方向。此时,以a轨迹片段的方向作为横轴方向,a轨迹片段中的任意一点作为原点,在此选取轨迹片段的终点作为原点,构建出xoy坐标系。在xoy坐标系下,b轨迹片段的长度为预设长度,像素点坐标已知,故计算出b轨迹片段的在xoy坐标系下的斜率,进而根据三角函数等计算a和b两个轨迹片段之间的角度。根据角度,确定出b轨迹片段的方向。
然后,判定c轨迹片段的方向,对于b和c两个相邻轨迹片段,b是前一个轨迹片段,c是后一个轨迹片段。b轨迹片段的方向已经确定出来。此时,以b轨迹片段的方向作为横轴方向,b轨迹片段的终点作为原点,构建出xoy坐标系。在该xoy坐标系下,计算c轨迹片段的斜率,再根据斜率得到角度。根据角度确定c轨迹片段的方向。
依据图6的过程,分别确定出每一个轨迹片段的方向。对应第一个轨迹片段,可以基于图像坐标系确定其方向。轨迹片段上的各个点为手部中心,每个手部中心的像素坐标已经计算出来,基于此,可以确定出第一个轨迹片段的方向。例如,第一轨迹片段的方向是西北方向或者正东方向。确定出第一个轨迹片段的方向之后,即可确定出后面的轨迹片段相对于第一个轨迹片段的方向,从而得到手部移动轨迹的手势轨迹。
步骤s504、若角度小于预设角度,则判定相邻两个轨迹片段的方向相同;若角度大于或等于预设角度,则根据角度确定相邻两个轨迹片段中后一个轨迹片段的方向。
需要说明的是,手部连续移动时,不可能一直沿着直线移动,会有一定的抖动。故预先定义8个方向,相邻方向间相差45°。具体可以参见图7示出的8个方向示意图。
上述预设角度可以为45°,当相邻两个轨迹片段的角度小于45°时,则认为手部移动过程中出现抖动,仍然认为是同一个方向,即相邻两个轨迹片段的方向相同。例如,图6中的a和b两个片段之间的角度为30°,则认为a和b两个轨迹片段的方向相同,此时,如果a轨迹片段的方向为西南45°方向,则b轨迹片段的方向也为西南45°方向。
反之,如果相邻两个轨迹片段的角度大于或等于45°,则认为该偏差不是由手部移动过程中的抖动造成的。判定前后两个轨迹片段的方向不一致。此时,后一个轨迹片段的方向需要根据两个轨迹片段之间的角度确定。知道两个轨迹片段之间的角度之后,即可知道两个轨迹片段的相对方向,而前一个轨迹片段的方向已知,则可以确定出后一个轨迹片段的方向。
需要说明的是,当相邻两个轨迹片段的角度小于45°时,即相邻两个轨迹片段的方向相同时,在确定下一个轨迹片段的方向时,可以不用再重新构建坐标系,而是使用已构建的坐标系。例如,图6中的a和b两个相邻的轨迹片段的方向一致,则在确定c轨迹片段的方向时,可以不用再以b轨迹片段的方向为横轴方向构建坐标系,而是使用基于a轨迹片段构建的坐标系。依此类推,如果b和c的方向仍然相同,则在确定d轨迹片段的方向时,可以不用再构建新的坐标系。
步骤s505、确定各个轨迹片段的方向之后,得到手部移动轨迹对应的手势轨迹;其中,第一个轨迹片段的方向基于图像坐标系确定。
具体地,每个轨迹片段的方向已经知道,且每个轨迹的长度也是已经知道的,则可以得到对应的手势轨迹。手势轨迹可以参见图8示出的手势轨迹示意图。
步骤s506、若手势轨迹与预设笔画式手势轨迹一致,手部移动轨迹为预设笔画式手势轨迹。
步骤s507、若手势轨迹与预设笔画式手势轨迹不一致,手部移动轨迹为非预设笔画式手势轨迹。
得到手势轨迹之后,将该手势轨迹与预先存储的多个笔画式手势轨迹进行比对,确定是否有一致的手势轨迹,如果有,则认为是预设笔画式手势轨迹,反之,如果没有,则不是。
需要说明的是,本申请实施例提供的机器人控制方法,不用专用处理芯片(例如,ai芯片),无需额外计算力要求,可以实时地、鲁棒地识别出用户的笔画式手势,并且在近距离、光线不足的场景,仍然可以识别出用户的动态手势。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的机器人控制方法,图9示出了本申请实施例提供的机器人控制装置的结构示意框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图9,该装置包括:
手部图像获取模块91,用于获取用户手部移动过程中采集的至少两帧手部图像;
手部移动轨迹确定模块92,用于根据手部图像,得到手部移动轨迹;
划分模块93,用于将手部移动轨迹划分成预设长度的轨迹片段;
识别模块94,用于根据相邻两个轨迹片段之间的角度,识别手部移动轨迹是否为预设笔画式手势轨迹;
响应模块95,用于若手部移动轨迹为预设笔画式手势轨迹,则响应与预设笔画式手势轨迹对应的手势指令。
在一种可能的实现方式中,上述识别模块具体用于:
以相邻两个轨迹片段中前一个轨迹片段的方向作为横轴方向,构建相对坐标系;
在相对坐标系下,计算相邻两个轨迹片段中后一个轨迹片段的斜率;
根据斜率得到相邻两个轨迹片段之间的角度;
若角度小于预设角度,则判定相邻两个轨迹片段的方向相同;若角度大于或等于预设角度,则根据角度确定相邻两个轨迹片段中后一个轨迹片段的方向;
确定各个轨迹片段的方向之后,得到手部移动轨迹对应的手势轨迹;其中,第一个轨迹片段的方向基于图像坐标系确定;
若手势轨迹与预设笔画式手势轨迹一致,手部移动轨迹为预设笔画式手势轨迹。
在一种可能的实现方式中,上述识别模块还具体用于:
若手势轨迹与预设笔画式手势轨迹不一致,手部移动轨迹为非预设笔画式手势轨迹。
在一种可能的实现方式中,上述手部移动轨迹确定模块具体用于:
确定每帧手部图像的手部中心;
按照手部图像采集的先后顺序连接每帧手部图像的手部中心,得到手部移动轨迹。
在一种可能的实现方式中,手部移动轨迹确定模块具体用于:
从手部图像中分割出手部区域图像;
对手部区域图像进行二值化处理;
计算二值化后的手部区域图像的重心,重心为手部图像的手部中心。
在一种可能的实现方式中,上述手部图像获取模块具体用于:
通过摄像装置采集用户手部移动过程中的至少两帧手部图像;
其中,摄像装置包括带通红外滤波片、镜头和图像传感器,手部图像为红外图像。
需要说明的是,上述装置/模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图10为本申请一实施例提供的机器人的结构示意图。如图10所示,该实施例的机器人10包括:至少一个处理器100、存储器101以及存储在所述存储器101中并可在所述至少一个处理器100上运行的计算机程序102,所述处理器100执行所述计算机程序102时实现上述任意各个方法实施例中的步骤。
该机器人可包括,但不仅限于,处理器100、存储器101。本领域技术人员可以理解,图10仅仅是机器人10的举例,并不构成对机器人10的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备、摄像头等。
所称处理器100可以是中央处理单元(centralprocessingunit,cpu),该处理器100还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器101在一些实施例中可以是所述机器人10的内部存储单元,例如机器人10的硬盘或内存。所述存储器101在另一些实施例中也可以是所述机器人10的外部存储设备,例如所述机器人10上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器101还可以既包括所述机器人10的内部存储单元也包括外部存储设备。所述存储器101用于存储操作系统、应用程序、引导装载程序(bootloader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器101还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供一种计算机程序产品,当计算机程序产品在机器人上运行时,使得机器人执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
1.一种机器人控制方法,其特征在于,包括:
获取用户手部移动过程中采集的至少两帧手部图像;
根据所述手部图像,得到手部移动轨迹;
将所述手部移动轨迹划分成预设长度的轨迹片段;
根据相邻两个所述轨迹片段之间的角度,识别所述手部移动轨迹是否为预设笔画式手势轨迹;
若所述手部移动轨迹为所述预设笔画式手势轨迹,则响应与所述预设笔画式手势轨迹对应的手势指令。
2.如权利要求1所述的方法,其特征在于,根据相邻两个所述轨迹片段之间的角度,识别所述手部移动轨迹是否为预设笔画式手势轨迹,包括:
以相邻两个所述轨迹片段中前一个轨迹片段的方向作为横轴方向,构建相对坐标系;
在所述相对坐标系下,计算相邻两个所述轨迹片段中后一个轨迹片段的斜率;
根据所述斜率得到相邻两个所述轨迹片段之间的角度;
若所述角度小于预设角度,则判定相邻两个所述轨迹片段的方向相同;若所述角度大于或等于所述预设角度,则根据所述角度确定相邻两个轨迹片段中后一个轨迹片段的方向;
确定各个轨迹片段的方向之后,得到所述手部移动轨迹对应的手势轨迹;其中,第一个轨迹片段的方向基于图像坐标系确定;
若所述手势轨迹与所述预设笔画式手势轨迹一致,所述手部移动轨迹为所述预设笔画式手势轨迹。
3.如权利要求2所述的方法,其特征在于,根据相邻两个所述轨迹片段之间的角度,识别所述手部移动轨迹是否为预设笔画式手势轨迹,还包括:
若所述手势轨迹与所述预设笔画式手势轨迹不一致,所述手部移动轨迹为非预设笔画式手势轨迹。
4.如权利要求1所述的方法,其特征在于,根据所述手部图像,得到手部移动轨迹,包括:
确定每帧所述手部图像的手部中心;
按照手部图像采集的先后顺序连接每帧所述手部图像的手部中心,得到所述手部移动轨迹。
5.如权利要求4所述的方法,其特征在于,确定每帧所述手部图像的手部中心,包括:
从所述手部图像中分割出手部区域图像;
对所述手部区域图像进行二值化处理;
计算二值化后的手部区域图像的重心,所述重心为所述手部图像的手部中心。
6.如权利要求1至5任一项所述的方法,其特征在于,获取用户手部移动过程中采集的至少两帧手部图像,包括:
通过摄像装置采集用户手部移动过程中的至少两帧手部图像;
其中,所述摄像装置包括带通红外滤波片、镜头和图像传感器,所述手部图像为红外图像。
7.一种机器人控制装置,其特征在于,包括:
手部图像获取模块,用于获取用户手部移动过程中采集的至少两帧手部图像;
手部移动轨迹确定模块,用于根据所述手部图像,得到手部移动轨迹;
划分模块,用于将所述手部移动轨迹划分成预设长度的轨迹片段;
识别模块,用于根据相邻两个所述轨迹片段之间的角度,识别所述手部移动轨迹是否为预设笔画式手势轨迹;
响应模块,用于若所述手部移动轨迹为所述预设笔画式手势轨迹,则响应与所述预设笔画式手势轨迹对应的手势指令。
8.如权利要求7所述的装置,其特征在于,所述识别模块具体用于:
以相邻两个所述轨迹片段中前一个轨迹片段的方向作为横轴方向,构建相对坐标系;
在所述相对坐标系下,计算相邻两个所述轨迹片段中后一个轨迹片段的斜率;
根据所述斜率得到相邻两个所述轨迹片段之间的角度;
若所述角度小于预设角度,则判定相邻两个所述轨迹片段的方向相同;若所述角度大于或等于所述预设角度,则根据所述角度确定相邻两个轨迹片段中后一个轨迹片段的方向;
确定各个轨迹片段的方向之后,得到所述手部移动轨迹对应的手势轨迹;其中,第一个轨迹片段的方向基于图像坐标系确定;
若所述手势轨迹与所述预设笔画式手势轨迹一致,所述手部移动轨迹为所述预设笔画式手势轨迹。
9.一种机器人,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。
技术总结