CN114860076A - 一种控制机器人的方法、装置及电子设备 - Google Patents
一种控制机器人的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114860076A CN114860076A CN202210465716.3A CN202210465716A CN114860076A CN 114860076 A CN114860076 A CN 114860076A CN 202210465716 A CN202210465716 A CN 202210465716A CN 114860076 A CN114860076 A CN 114860076A
- Authority
- CN
- China
- Prior art keywords
- gesture
- gesture data
- current
- data
- vector
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/28—Recognition of hand or arm movements, e.g. recognition of deaf sign language
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/61—Control of cameras or camera modules based on recognised objects
- H04N23/611—Control of cameras or camera modules based on recognised objects where the recognised objects include parts of the human body
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Social Psychology (AREA)
- Psychiatry (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供了一种控制机器人的方法、装置及电子设备,其中,该方法包括:获取目标用户的当前手势数据,当前手势数据包括手部的多个关键点的坐标;根据当前手势数据中多个关键点的坐标确定当前手势数据的手势类型;在当前手势数据的手势类型为运动手势的情况下,确定当前手势数据的变化程度,并生成用于控制机器人运动的连续控制指令;连续控制指令的类型与当前手势数据的手势类型相一致,连续控制指令的控制量与当前手势数据的变化程度之间为正相关关系。通过本发明实施例提供的技术方案,在运动手势的变化程度与机器人的物理量变化之间建立增益的映射关系,实现目标用户在机器人前能够连续、自由灵活、高效地控制该机器人。
Description
技术领域
本发明涉及人机交互技术领域,具体而言,涉及一种控制机器人的方法、装置、电子设备及计算机可读存储介质。
背景技术
随着数码相机的普及和手机拍照功能的逐渐强大,摄影已经成为每一个普通人记录生活和分享生活的重要方式,也是日常生产生活的重要组成部分。为方便用户进行远距离自拍,逐渐兴起机器人辅助摄影,例如无人机跟拍等。由于机器人并没有审美、构图等能力,需要靠用户控制机器人的位置和相机的参数等实现远距离自拍。
为了实现远距离控制辅助摄影机器人,目前一般需要借助其他的外部设备,例如遥控器、智能终端中的应用程序等。部分方案可以实现语音控制,但在需要精细化调整相机角度、位置等情况下,语音控制的调整效率较低,且容易发生调整不准确、甚至调整错误的问题。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种控制机器人的方法、装置、电子设备及计算机可读存储介质。
第一方面,本发明实施例提供了一种控制机器人的方法,包括:
获取目标用户的当前手势数据,所述当前手势数据包括手部的多个关键点的坐标;
根据所述当前手势数据中多个所述关键点的坐标确定所述当前手势数据的手势类型;
在所述当前手势数据的手势类型为运动手势的情况下,确定所述当前手势数据的变化程度,并生成用于控制机器人运动的连续控制指令;所述连续控制指令的类型与所述当前手势数据的手势类型相一致,所述连续控制指令的控制量与所述当前手势数据的变化程度之间为正相关关系。
第二方面,本发明实施例还提供了一种控制机器人的装置,包括:
获取模块,用于获取目标用户的当前手势数据,所述当前手势数据包括手部的多个关键点的坐标;
类型确定模块,用于根据所述当前手势数据中多个所述关键点的坐标确定所述当前手势数据的手势类型;
处理模块,用于在所述当前手势数据的手势类型为运动手势的情况下,确定所述当前手势数据的变化程度,并生成用于控制机器人运动的连续控制指令;所述连续控制指令的类型与所述当前手势数据的手势类型相一致,所述连续控制指令的控制量与所述当前手势数据的变化程度之间为正相关关系。
第三方面,本发明实施例提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现上述任意一项所述的控制机器人的方法中的步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的控制机器人的方法中的步骤。
本发明实施例提供的控制机器人的方法、装置、电子设备及计算机可读存储介质,预先设置运动手势,目标用户通过执行该运动手势可以输入相应的连续控制指令,从而控制机器人的运动。通过当前手势数据可以确定运动手势的变化程度,并基于该变化程度正相关地确定连续控制指令的控制量,从而在运动手势的变化程度与机器人的物理量变化之间建立增益的映射关系,例如在运动手势的移动速度或旋转速度与机器人的移动速度或旋转速度之间建立映射关系,实现目标用户在机器人前能够连续、自由灵活、高效地控制该机器人。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1示出了本发明实施例所提供的辅助拍摄场景的过程示意图;
图2示出了传统控制方式所存在问题的示意图;
图3示出了本发明实施例所提供的一种控制机器人的方法的流程图;
图4示出了本发明实施例所提供的手部关节点的一种示意图;
图5示出了辅助摄影场景的控制***结构图;
图6示出了本发明实施例所提供的控制机器人的方法中,用户手势的一种示意图;
图7示出了本发明实施例所提供的控制机器人的方法中,用户手势的详细示意图;
图8示出了本发明实施例所提供的控制机器人的方法中,建立相对坐标系的示意图;
图9示出了本发明实施例所提供的一种控制机器人的装置的结构示意图;
图10示出了本发明实施例所提供的一种用于执行控制机器人的方法的电子设备的结构示意图。
具体实施方式
在辅助摄影场景下,一般需要用户多次触发指令才能实现拍照。本发明实施例中,将用户完成拍照的行为分为三个阶段,遵循了一个先粗调再细调,最后确定拍摄的流程。图1展示了在这三个阶段时用户的行为特征。第一阶段,粗定拍摄画面:用户根据脑海中对画面的构思让机器人经过一个大的移动到达目标点附近。第二阶段,Control-Feedback Loop(控制-反馈循环):用户通过相机画面的实时反馈,经过自己大脑对于审美的预判,指引机器人进行微调,如此循环数次,直到微调效果满意后,进行拍摄。这也与现实中的拍照流程类似,真人摄影师与模特进行拍摄时,往往也是双方先粗调确定画面的大致内容与结构,然后进行微调。第三阶段,完成拍摄:用户确定相机实时画面符合自己的要求,下达拍照、录像等指令,完成拍照交互。
其中,第一阶段和第三阶段可采用手势指令与命令集的匹配,或语音指令与命令集的匹配进行实现,难度不高。而辅助摄影场景下用户-机器人的交互难点集中在第二阶段画面微调上。如何辅助用户更好地完成画面微调是辅助摄影场景下的关键问题,也是辅助摄影场景中交互的难点。
目前存在语音控制机器人的方式,若将语音控制的方式应用于第二阶段的微调,则用户需要通过语音向摄影机器人发出指令。在这种情况下,发明人发现,当控制摄影机器人的指令涉及到方向时,例如“向左一点”,需要用户自主地区分左右,导致用户在涉及到左右的指令时会有略微的迟疑,甚至将左右说反。并且,用户发出的类似“向左一点”的语音指令难以被摄影机器人准确地响应,机器人并不能准确确定用户所表达的“一点”为多少。
虽然用户也可以发出准确的语音指令,例如“向前1米”、“向后20cm”等,但是,对于被拍摄的用户而言,用户并没法直接得到一个机器人该移动多少米或旋转多少度的明确数值,导致难以实现准确控制,具体可参见图2所示。造成这一点的原因主要有两方面,其一是因为被拍摄者(即用户)并不知道想要达到心目中的拍摄效果需要移动多少明确的数值,只能不断根据屏幕中相机画面的反馈进行判断;其二是因为人无法像机器人一样准确测量明确的数值,只能根据以往经验进行估计。
这种语音控制方式难以通过一次或少次地微调得到所需效果,一般需要用户间断性地多次输入语音指令来控制机器人的运动,既耗时又耗力,也难以准确达到自己想要的效果,
本发明实施例中,用户通过手势输入控制指令,利用手势能够直观快速地表达方向的特点,可以避免用户区分左右,且手势能够直观快速且连续地表达需要控制的控制量(例如位移距离的大小、旋转角度的大小等),利用连续表达的手势能够实现高效控制。
下面结合本发明实施例中的附图对本发明实施例进行描述。
本发明实施例提供一种控制机器人的方法,该方法可以由被控的机器人执行,也可以由其他设备执行,例如云端服务器、用户的智能终端等。图3示出了本发明实施例所提供的一种控制机器人的方法的流程图。如图3所示,该方法包括:
步骤301:获取目标用户的当前手势数据,当前手势数据包括手部的多个关键点的坐标。
本发明实施例中,在某用户需要用手势对机器人进行控制时,将该用户作为目标用户,并采集该目标用户手部多个关键点的坐标,形成相应的手势数据;其中,由于可以采集在不同时刻的手势数据,本实施例将当前采集到的手势数据称为当前手势数据。例如,机器人中设有深度相机,基于该深度相机可以采集目标用户手部的多个关键点的坐标,从而生成手势数据,该目标用户为该深度相机取景范围内的用户。该机器人具体可以是具有辅助摄影功能的机器人,或者无人机等。
步骤302:根据当前手势数据中多个关键点的坐标确定当前手势数据的手势类型。
本发明实施例中,允许用户基于至少一种类型的手势实现对机器人的控制,即手势对应有相应的手势类型。本发明实施例中,手势类型是基于手势所能够起到的控制功能所分类得到的类型,不同的手势类型实现不同的控制功能。例如,手势类型包括移动手势、旋转手势、缩放手势、停止手势中的至少一种,该移动手势用于控制机器人移动,旋转手势用于控制机器人转动,缩放手势用于控制机器人采集画面的大小(在该机器人包含摄像设备时),停止手势用于暂停控制机器人。
其中,不同的手势类型中,多个关键点的坐标具有不同的特点。为了能够比较准确地区分多种手势类型,可以选取多个在不同手势类型下具有不同相对姿态的关键点。本发明实施例中,可以通过手指的不同姿态来区分不同的手势类型。例如,本发明实施例所涉及的多个关键点至少包括在不同手势类型下姿态固定的关键点(例如掌心关键点、腕部关键点等)以及至少一个手指上的关键点(例如指尖关键点)。
例如,可以从手部各关节点中选取本实施例所需的关键点。参见图4所示,手部共包含24个关节点,其包括腕部关节点(Wrist)、掌心关节点(Palm)以及五根手指上的关节点;其中,拇指(Thumb)涉及从拇指指根(Thumb0)到拇指指尖(ThumbTip)共5个关节点,食指(Index)涉及从食指指根(Index1)到食指指尖(IndexTip)共4个关节点,中指(Middle)涉及从中指指根(Middle1)到中指指尖(MiddleTip)共4个关节点,无名指(Ring)涉及从无名指指根(Ring1)到无名指指尖(RingTip)共4个关节点,小指(Pinky)涉及从小指指根(Pinky0)到小指指尖(PinkyTip)共5个关节点。其中,可以将序号为0或1的关节点作为指根关节点,将序号为Tip的关节点作为指尖关节点。例如,拇指的指根关节点可以为Thumb0或Thumb1,拇指的指间关节点为ThumbTip。其中,每个关节点均可作为相应的关键点。
其中,可以用多个关键点的坐标表示手势数据。例如,关键点i的坐标为si,且si=(xi,yi,zi),i=1,2,…,n,n为关键点的数量,例如n=24。该手势数据可以表示为n个关键点坐标的集合,即手势数据S满足:S={s1,s2,…,sn}。当用户执行某种类型的手势时,采集到的当前手势数据符合该类型的手势的特点,从而可以基于当前手势数据确定相应的手势类型,进而确定目标用户当前正在展现什么类型的手势。
步骤303:在当前手势数据的手势类型为运动手势的情况下,确定当前手势数据的变化程度,并生成用于控制机器人运动的连续控制指令;连续控制指令的类型与当前手势数据的手势类型相一致,连续控制指令的控制量与当前手势数据的变化程度之间为正相关关系。
本发明实施例中,手势类型至少可以分为运动手势和停止手势,运动手势指的是用户需要基于该类型的手势控制机器人运动的手势,相应地,停止手势指的是用户需要基于该类型的手势控制机器人静止的手势。在当前手势数据的手势类型为运动手势的情况下,生成用于控制机器人运动的连续控制指令,该连续控制指令用于实现对机器人的连续控制。
其中,连续控制指令至少包括类型和控制量两种属性;本实施例中,连续控制指令的类型与手势类型相一致,即每一类的手势类型对应一类连续控制指令。例如,运动手势的手势类型可以为移动手势或旋转手势,相应地,连续控制指令为连续控制机器人移动的指令,或者连续控制机器人旋转的指令。用户通过连续控制机器人,能够提高交互效率。
具体地,从控制***角度,可以将辅助摄影场景中人-机器人的交互总结为一个双反馈闭环控制***,该控制***的控制框图如图5所示。设初始机器人的目标位置为i时刻机器人的目标位置为i时刻用户对机器人的估计位置为i时刻机器人的实际位置为Xi。
其中,内反馈闭环控制回路是用户根据机器人目标位置控制机器人实际位置。在i时刻,控制器要控制的差值可以表示为下式:
外反馈闭环控制回路是用户根据相机实时画面不断调整机器人的目标位置内反馈闭环控制回路的输出Xi,经过相机画面呈现C(x)得到最终画面输出,同时经过用户主观审美评判S(x),确定i+1时刻机器人的目标位置也就是说,内反馈闭环控制回路的给定量是由外反馈闭环控制回路决定的。
可以看出,和其他场景中机器人位置的控制不同,辅助摄影场景中机器人的目标位置是动态变化的。因此,摄影机器人的空间操作必须是连续的,才能及时根据机器人目标位置的变化而改变对机器人的控制。本发明实施例基于手势输入连续控制指令,可以连续控制机器人(例如,摄影机器人等),从而能够提高控制效率。
并且,当前手势数据是基于目标用户触发运动手势所采集到的多个关键点的坐标,由于运动手势是动态的,故该当前手势数据也存在变化程度,例如,该当前手势数据对应的移动速度或旋转速度,或者,该当前手势数据与之前的历史手势数据之间的坐标变化量等。本实施例以当前手势数据的变化程度来确定连续控制指令的控制量,且该控制量与变化程度之间为正相关关系,即当前手势数据的变化程度越大,所生成的连续控制指令的控制量也越大。例如,当前手势数据的手势类型为移动手势,且其变化程度为移动速度,则可以生成用于控制机器人移动速度的控制指令;并且,利用多个连续时刻的手势数据可以实现在该多个连续时刻内连续控制机器人的移动速度。
目前,部分方案利用语音持续时间实现连续控制;或者,设计多种不同的静止手势,通过该静止手势的持续时间实现对机器人的连续控制。例如,用户张开手掌向前表示控制机器人向前移动,通过用户执行该张开手掌向前的手势的持续时间来确定机器人向前移动的时间,其中,机器人的移动速度一般是固定的。而在辅助摄影场景中,第二阶段为精细化的微调控制,在精细的空间位置调控中,机器人的移动速度通常不会设置过快以避免错过目标点。
究其根本,这种重复相同的手势进行机器人导航的方法的底层逻辑是以时间换空间,通过手势的持续时间来控制机器人的移动距离,因此难免会带来效率不高的问题,与通过语音持续时间或命令间隔时间来控制机器人移动距离的方式较为类似,都是线性关系。具体地,设机器人距离目标位置为D,则控制机器人到达目标位置的时间MTref如下式:
MTref=aref+bref·D (2)
其中bref为机器人移动速度的倒数,aref为常量。然而,这种线性效率对交互而言并不高效。并且,这种控制方式也不够自由灵活,由于机器人的变换速度恒定,无法像直接控制相机、三脚架等随意速度地调整。
根据费茨定律(Fitts Law),任务的难度指数ID与当前的机器人和目标位置的距离D,以及目标大小S有关,如下式:
到达目标位置的时间MT可以表示为下式:
MT=a+b·ID (4)
以当前的手势为移动手势为例,设移动手势控制机器人到达目标位置的时间为MTTF,该时间应为准备、触发、划动、停止触发和收回的时间开销总和。其中,准备、触发、停止触发和收回的时间和***响应及用户自身有关,可视为常量。而划动的时间可以看成用手让机器人到达一个目标的时间,符合一维空间的费茨定律。因此,使用移动手势控制机器人到达目标位置的时间MTTF可以表示为下式:
其中,aTF、bTF为常量,DTF为使得机器人到达目标位置时手需要移动的距离,例如,移动手势的变化程度;STF为用户心中目标区域范围的宽度。
由此可见,使用移动手势到达目标位置的时间MTTF与使得机器人到达目标位置时手需要移动的距离DTF成对数关系,比线性关系更优,可实现更高的操控效率。
此外可选地,该方法还包括:在当前手势数据的手势类型为停止手势的情况下,生成用于暂停控制机器人的停止指令。本发明实施例通过设置停止手势,使得用户可以在触发运动手势之后,通过触发该停止手势来调整手部的位置,之后继续执行该运动手势,为用户提供更多的操作空间。
当目标用户触发运动手势时,机器人处于一种被控状态,即目标用户基于该运动手势可以控制机器人的位置、角度等;当目标用户触发停止手势时,机器人处于空闲状态,此时机器人可以不响应目标用户的手势。目标用户通过触发运动手势、停止手势,可以实现被控状态与空闲状态的切换。
本发明实施例提供的一种控制机器人的方法,预先设置运动手势,目标用户通过执行该运动手势可以输入相应的连续控制指令,从而控制机器人的运动。通过当前手势数据可以确定运动手势的变化程度,并基于该变化程度正相关地确定连续控制指令的控制量,从而在运动手势的变化程度与机器人的物理量变化之间建立增益的映射关系,例如在运动手势的移动速度或旋转速度与机器人的移动速度或旋转速度之间建立映射关系,实现目标用户在机器人前能够连续、自由灵活、高效地控制该机器人。
可选地,本发明实施例中,该手势类型包括移动手势、旋转手势、缩放手势、停止手势中的至少一种。
其中,移动手势为多个手指张开的情况下,沿掌心朝向移动的手势;旋转手势为目标手指张开的情况下,保持目标手指位置不变并围绕目标手指转动的手势;缩放手势为多个手指张开的情况下,沿掌心朝向移动的手势,且缩放手势与移动手势为分别由左右手所触发的手势;停止手势为所有手指均收起的手势。
在辅助摄影场景中,目标用户主要需要控制机器人移动以及机器人(尤其是相机)的朝向,故需要设置移动手势和旋转手势;此外,也可以设置缩放手势,以能够缩放机器人所采集到的画面大小。其中,移动手势、旋转手势、缩放手势均为一种运动手势。为了方便目标用户直观地确定控制方向,例如确定移动方向、旋转方向等,本实施例将掌心朝向对应的移动方向作为移动手势的移动方向,将沿目标手指转动时的转动方向作为旋转手势的旋转方向。
具体地,参见图6所示,图6中的左图表示移动手势,其多指伸直(例如,五指伸直),自然合拢;用户触发该移动手势后,沿此时的掌心朝向(即图6中的掌心方向)移动,即可控制机器人移动;其中,可以顺着掌心朝向移动(如图6中向左移动手掌),也可以逆着掌心朝向移动(如图6中向右移动手掌),本实施例对此不做限定。
图6中的中间图表示一种旋转手势,即选取一个手指作为目标手指,该目标手指张开伸直,除该目标手指之外的其他手指收起;以该目标手指为转轴转动整个手掌,转动过程中目标手指的位置基本是不变的;一般情况下,目标手指可以为食指或拇指,图6中以食指作为目标手指为例示出。
图6中的右图表示停止手势,五指都攥于掌心,一种握拳的手势。
此外,左手和右手也可以代表不同的手势。本发明实施例中,缩放手势与移动手势相似,二者均为在多个手指张开的情况下,沿掌心朝向移动的手势,区别在于二者由不同的手掌触发。例如,移动惯用手(例如,右手),触发移动手势;而移动非惯用手(例如,左手),触发缩放手势。
例如,本发明实施例提供的一种手势集可参见图7所示,图7中以目标用户与机器人之间的方向为y轴方向为例。其中,对于移动手势,目标用户手掌的掌心朝向沿y轴,通过沿y轴移动手掌可以触发向前移动或向后移动的移动手势;目标用户的掌心朝向沿x轴,通过沿x轴移动手掌可以触发向左移动或向右移动的移动手势;目标用户的掌心朝向沿z轴,通过沿z轴移动手掌可以触发向上移动或向下移动的移动手势。本领域技术人员可以理解,在向前、向后移动时,手掌的掌心朝向可以朝向前(y轴负方向),也可以朝向后(y轴正方向);在向上、向下移动时,手掌的掌心朝向可以朝向上(z轴正方向),也可以朝向下(z轴负方向),之后通过移动手势的坐标变化确定移动手势具体是朝向哪个方向移动。例如,目标用户的手掌朝上时,可以执行向上移动,也可以执行向下移动。
对于旋转手势,目标手指(例如,食指)朝向z轴正方向,以此时的目标手指为转轴转动手掌,可以生成朝向旋转的旋转手势,以控制机器人的偏航角(Yaw);目标手指(例如,食指)朝向y轴负方向,以此时的目标手指为转轴转动手掌,可以生成倾斜旋转的旋转手势,以控制机器人的滚动角(Roll);目标手指(例如,食指)朝向x轴负方向,以此时的目标手指为转轴转动手掌,可以生成俯仰旋转的旋转手势,以控制机器人的俯仰角(Pitch)。
对于缩放手势,由左手触发,且其与移动手势类似,都需要张开多个手指。具体地,左手向左移动时为放大手势,左手向右移动时为缩小手势。
此外,为了能够区分移动手势和旋转手势,本发明实施例所涉及的多个关键点至少包括在不同手势类型下姿态固定的关键点(例如掌心关键点、腕部关键点等)、目标手指上的关键点(例如目标手指的指尖关键点)以及其他手指上的关键点(例如其他手指的指尖关键点);例如,多个关键点包含五个手指上的关键点。
虽然三维空间中手势的姿态有许多,但本发明实施例所采用的移动手势、缩放手势、停止手势等,以掌心的朝向代表移动方向,以沿目标手指转动时的转动方向来指示机器人转动,这些运动手势与用户的日常操作习惯相一致,能够保证交互的自然性。
可选地,本发明实施例中,关键点的坐标为绝对坐标系中的绝对坐标。例如,通过机器人侧的深度相机确定每个关键点的坐标,该坐标为在该深度相机的三维绝对坐标系中的坐标,其为一种绝对坐标。当用户的手掌发生移动或转动时,即使手势类型未发生变化,其对应的关键点的绝对坐标也会发生变化,从而影响确定当前手势数据的手势类型。本发明实施例中,以相对坐标来确定当前手势数据的手势类型。具体地,上述步骤302“根据当前手势数据中多个关键点的坐标确定当前手势数据的手势类型”包括步骤A2和步骤A4:
步骤A2:将当前手势数据中多个关键点的绝对坐标转换为相对坐标系中的相对坐标;在手势类型保持不变的情况下,该相对坐标系能够保持不变。
步骤A4:根据多个关键点的相对坐标确定当前手势数据的手势类型。
本发明实施例中,每种手势类型对应相应的手势姿态,当用户在执行某种手势类型的手势时,其手部的手势姿态是不变的(手部的位置可能发生变化);其中,该手势姿态包括手部多个关键点之间的相对姿态。本发明实施例所建立的相对坐标系,其在手势类型保持不变的情况下,自身也能够保持不变。例如,可以选取其中两个关键点作为相对坐标系的其中一个轴,基于此来确定相对坐标系的另外两个轴,从而建立三维的相对坐标系。在该相对坐标系下,用户持续执行某一手势类型的手势时,关键点的相对坐标能够保持不变;即,对于每一手势类型,关键点具有一种相对坐标,从而基于该关键点的相对坐标能够更简洁、准确地表示手势类型,提高确定手势类型的准确度。
可选地,该相对坐标系为以手掌表面和掌心朝向为基准所确定的坐标系,掌心朝向为垂直于手掌表面的方向。
本发明实施例以手掌表面和掌心朝向为基准确定相对坐标系。当目标用户在执行不同类型的手势时,一般只会改变手指的姿态,例如从伸直手指改为收起手指等,但在改变不同类型的手势时手掌表面及掌心基本不发生变化,本实施例基于手掌表面和掌心朝向建立相对坐标系,可以更好地表示各个关键点的相对坐标,且在手势类型发生变化时也能够快速确定关键点的相对坐标。
并且,对于不同手势类型的手势,其相对坐标系基本上是相同的,即使手势移动或在三维空间中自由旋转,也不影响建立相对坐标系。即,在同一种相对坐标系下,可以有效且统一地表达不同手势类型中多个关键点的坐标,进而能够基于关键点的相对坐标准确地对不同的手势类型进行区分,可以准确地识别出当前手势数据的手势类型。
可选地,在上述步骤A2之前还包括建立相对坐标系的过程,该过程具体包括步骤A11-A14:
步骤A11:确定手掌表面中的第一向量。
步骤A12:确定手掌表面中,位于以第一向量为法向量的平面中的第二向量。
步骤A13:确定垂直于第一向量和第二向量的第三向量。
步骤A14:确定第一向量、第二向量和第三向量对应的单位向量基,基于单位向量基建立相对坐标系。
本发明实施例中,该相对坐标系是基于手掌表面和手掌朝向所建立的坐标系,且手掌朝向垂直于该手掌表面,故可以先在手掌表面内确定两个垂直的向量。由于从手部的关键点中,难以直接提取出两个垂直的向量,本实施例以投影的方式确定两个垂直的向量,即第一向量和第二向量。
具体地,基于手掌表面中的两个关键点确定第一向量,例如,参见图4所示,以关节点为关键点为例,用户完成各种手势的过程中,其腕部关键点(Wrist)、掌心关键点(Palm)、各个手指的指根关键点(例如,Thumb0、Pinky0等)一般始终位于手掌表面,此时可以从中选取两个关键点,将这两个关键点之间的向量作为第一向量。并且,确定以该第一向量为法向量的平面,该平面与手掌表面之间的共线即可作为第二向量。例如,基于手掌表面中另外两个关键点确定与该第一向量不平行的其他向量A,将该其他向量A到以第一向量为法向量的平面的投影作为第二向量。在确定手掌表面中的第一向量和第二向量之后,即可确定垂直于该手掌表面的第三向量;例如,通过向量叉乘的方式可以确定第三向量。进而,基于互相垂直的第一向量、第二向量、第三向量可以确定三维坐标系的单位向量基,基于该单位向量基所确定的坐标系即为相对坐标系。
例如,参见图8所示,本实施例将腕部关节(Wrist)作为坐标原点,构建相对坐标系。具体地,以腕部关节(Wrist)指向掌心关节(Palm)朝向作为x轴,以手掌表面上垂直于x轴并指向拇指一侧方向作为y轴;以垂直于手掌表面的方向作为z轴。其中,腕部关节(Wrist)指向掌心关节(Palm)的向量可以作为第一向量x;并且,可以将腕部关节(Wrist)到拇指指根关节(Thumb0)之间的向量作为其他向量A,该向量A到以第一向量x为法向量的平面的投影即为第二向量y。以s0表示腕部关节的绝对坐标,s1表示掌心关节的绝对坐标,s2表示拇指指根关节的绝对坐标,则三个向量x、y、z满足下式:
其中<,>表示向量内积,×表示向量叉乘。对三个向量x、y、z进行归一化后所得到的单位向量基为{ex=x/||x||,ey=y/||y||,ez=z/||z||},进而可以建立相对坐标系。
此外可选地,本发明实施例中,相对坐标系的原点一般选取手掌表面内的关键点,例如腕部关键点、掌心关键点或指根关键点等。此时,原绝对坐标系中的任一关键点可投影至该相对坐标系中,且当前手势数据中多个关键点的相对坐标满足:
pi=(<si-s0,ex>,<si-s0,ey>,<si-s0,ez>) (6)
其中,pi表示关键点i的相对坐标,si表示关键点i的绝对坐标,s0表示腕部关键点、掌心关键点或指根关键点的绝对坐标,{ex,ey,ez}为单位向量基,<,>表示向量内积;腕部关键点、掌心关键点、指根关键点均为多个关键点中的一个。
可选地,可以基于预设的分类模型确定当前手势数据的手势类型。或者,在确定关键点相对坐标的情况下,上述步骤A4“根据多个关键点的相对坐标确定当前手势数据的手势类型”,包括步骤A41-A42:
步骤A41:确定当前手势数据中多个关键点的相对坐标与每种手势类型对应的标准姿态之间的相似度,标准姿态包括在相应的手势类型下多个关键点在相对坐标系中的标准坐标。
步骤A42:将大于预设阈值的相似度所对应的手势类型作为当前手势数据的手势类型。
本发明实施例中,当目标用户执行某种手势类型的手势后,即使目标用户移动或旋转手掌,关键点的相对坐标是不变的。因此,可以预先确定每种手势类型对应的多个关键点的标准坐标,以该标准坐标为基准来确定当前手势数据属于哪种手势类型。
例如,本发明实施例设置移动手势、旋转手势和停止手势(如图6所示的三种手势),对于每一种手势,可以预先采集多个用户在不同角度位置时采集到的关键点的相对坐标进行平均,得到在相应手势类型下每个关键点的标准坐标。将当前手势数据中多个关键点的相对坐标作为该当前手势数据的基本特征将每种手势类型下多个关键点的标准坐标作为该手势类型的标准特征例如,若关键点的数量为24个,则该标准特征可记为:其中,hi表示每个关键点的标准坐标。
分别确定该基本特征与每种手势类型的标准特征之间的相似度,此时识别手势类型是一个基本的二分类问题。若当前手势数据的基本特征与某手势类型的标准特征之间的相似度大于某一预设阈值时,则认为此时手势为该该手势类型。例如,可以将欧几里得相似度作为度量指标,计算两个手势的各相应关节点的欧几里得距离并求平均,归一化至[0,1]范围即得到二者之间的相似度
在上述任一实施例的基础上,发明人发现,经实验结果表明,在辅助摄影场景中用户更偏好恒定的速度增益,因此可以将速度的映射转化为距离(或角度)的映射,通过距离(或角度)的变化实现对机器人的连续控制。上述步骤303“确定当前手势数据的变化程度”,包括步骤B1和/或步骤B2:
步骤B1:在当前手势数据的手势类型为移动手势的情况下,确定在当前手势数据的移动方向上,当前手势数据与第一历史手势数据之间的位移变化量,将位移变化量作为当前手势数据的变化程度。
步骤B2:在当前手势数据的手势类型为旋转手势的情况下,确定在当前手势数据的旋转方向上,当前手势数据与第二历史手势数据之间的角度变化量,将角度变化量作为当前手势数据的变化程度。
本发明实施例中,移动手势、旋转手势均为一种运动手势,在不同类型的运动手势的情况下,基于不同的方式确定当前手势数据的变化程度。具体地,如步骤B1所示,若当前手势数据为移动手势,即目标用户在执行移动手势时,确定该当前手势数据之前的历史手势数据,即第一历史手势数据,将该当前手势数据与第一历史手势数据之间的位移变化量作为当前手势数据的变化程度,即以位移变化量生成连续控制指令的控制量。
或者,如步骤B2所示,若当前手势数据为旋转手势,即目标用户在执行旋转手势时,确定该当前手势数据之前的历史手势数据,即第二历史手势数据,将该当前手势数据与第二历史手势数据之间的角度变化量作为当前手势数据的变化程度,即以角度变化量生成连续控制指令的控制量。
可选地,该移动手势为沿掌心朝向移动的手势;例如,参见图6所示,该移动手势为多个手指张开的情况下,沿掌心朝向移动的手势。上述步骤B1“确定在当前手势数据的移动方向上,当前手势数据与第一历史手势数据之间的位移变化量”可以包括步骤B11-B13:
步骤B11:确定当前手势数据对应的掌心朝向d。
本发明实施例中,移动手势为沿掌心朝向移动的手势时,该掌心朝向能够代表移动的方向,此时需要确定该掌心朝向对应的向量d。例如,在建立上述相对坐标系的情况下,可以用第三向量z表示该掌心朝向d,即d=z。
步骤B12:确定当前手势数据与第一历史手势数据之间有效关键点的位移,有效关键点为多个关键点中的一个,且有效关键点的位移满足:
其中,当前手势数据为T时刻的手势数据,第一历史手势数据为t1时刻的手势数据,表示当前手势数据中有效关键点i的绝对坐标,表示第一历史手势数据中有效关键点i的绝对坐标,<,>表示向量内积,Distancei(T;t1,d)表示有效关键点i的位移。
本发明实施例中,当前手势数据为T时刻的手势数据,第一历史手势数据为t1时刻的手势数据,该t1时刻早于T时刻;例如,该第一历史手势数据可以为当前手势数据的前m帧数据(例如,m=1)。本实施例中,从多个关键点中选取至少一个作为有效关键点,基于两个手势数据(即当前手势数据和第一历史手势数据)中同一个有效关键点的位移向量来确定,有效关键点沿掌心朝向d的位移,即从t1时刻到T时刻,该有效关键点的移动距离表示为Distancei(T;t1,d)。
本领域技术人员可以理解,若该距离Distancei(T;t1,d)为正,则说明目标用户的手掌是朝向该掌心朝向d正向移动的;相反地,若该距离Distancei(T;t1,d)为负,则说明目标用户的手掌是朝向该掌心朝向d的相反方向移动的。
步骤B13:基于至少一个有效关键点的位移确定当前手势数据与第一历史手势数据之间的位移变化量。
本发明实施例中,可以选取其中一个关键点作为有效关键点,即关键点的数量为一个,例如,将掌心关键点(或腕部关键点)作为有效关键点;此时,可以直接将该有效关键点的位移作为当前手势数据与第一历史手势数据之间的位移变化量。或者,若有效关键点的数量为多个,则可以将多个有效关键点的位移平均值作为当前手势数据与第一历史手势数据之间的位移变化量。
本发明实施例中,利用位移变化量(例如,Distancei(T;t1,d))和掌心朝向d,可以准确描述移动手势的方向和移动量,从而可以生成相应的连续控制指令。例如,掌心朝向d表示朝向左侧时,基于该位移变化量的正负确定向左移动或向右移动,并基于该位移变化量的大小确定连续控制指令的控制量大小,实现对机器人的左右移动控制。
可选地,连续控制指令的控制量与当前手势数据的变化程度之间为正比例关系。本发明实施例中,在当前的手势为移动手势时,所生成的连续控制指令的控制量表示机器人的移动距离,该控制量可表示为:
ft=wt·x
其中x是该位移变化量,ft为映射的机器人移动距离,即控制量;系数wt为可调整的超参数常量。
若缩放手势与该移动手势相似,只是左右手的区分,则在当前为缩放手势时,也可基于相同的方式确定位移变化量,并基于位移的方向来确定当前是放大手势还是缩小手势,本实施例对此不做赘述。
可选地,旋转手势为围绕目标手指转动的手势;例如,参见图6所示,旋转手势为目标手指张开的情况下,保持目标手指位置不变并围绕目标手指转动的手势。上述步骤B2“确定在当前手势数据的旋转方向上,当前手势数据与第二历史手势数据之间的角度变化量”可以包括步骤B21-B24:
步骤B21:确定当前手势数据中目标手指的朝向drota。
本发明实施例中,当前手势数据中,至少包括位于目标手指中的两个关键点,基于这两个关键点的绝对坐标可以确定该目标手指的朝向。一般情况下,当前手势数据中可以包含指根关键点和指尖关键点的坐标。例如,将食指作为目标手指,即手势是以食指为旋转轴所触发的,此时可以由食指上的指根关键点(Index1)与指尖关键点(IndexTip)的绝对坐标相减得到食指的朝向,记为drota。
步骤B22:根据当前手势数据确定与朝向drota不平行的当前向量,并根据第二历史手势数据确定与朝向drota不平行的历史向量;当前向量和历史向量为采用相同方式从相应的手势数据中所确定的向量。
本发明实施例中,为了方便计算围绕目标手指的旋转角度,基于与该朝向drota不平行的向量在以朝向drota为法向量的平面中的投影向量来确定旋转角度。具体地,如上述步骤B22-B24所示,对于当前手势数据与之前的第二历史手势数据,采用相同的方式从中选择与朝向drota不平行的向量;例如,选取食指指根关节(Index1)指向掌心关节(Palm)的向量。从当前手势数据中所确定的向量称为当前向量,从第二历史手势数据中所确定的向量称为历史向量。基于投影公式可确定,当前向量、历史向量在以朝向drota为法向量的平面中的投影向量。例如,选取食指指根关节(Index1)指向掌心关节(Palm)的向量:spalm-sindex1=(xpalm-xindex1,ypalm-yindex1,zpalm-zindex1),该向量投影到以朝向drota为法向量的平面上,投影向量vrota为:
相应地,本实施例以表示当前投影向量,以表示历史投影向量。其中,当前手势数据为T时刻的手势数据,第二历史手势数据为t2时刻的手势数据,t2时刻早于T时刻。例如,该第二历史手势数据可以为当前手势数据的前m帧数据(例如,m=1),或者,第二历史手势数据为在触发该旋转手势的初始时刻所采集到的手势数据。
该夹角RotationAngle(T;t2)即可作为当前手势数据与第二历史手势数据之间的角度变化量。
此外可选地,由于上式(10)所确定的夹角为正,仅基于此不能确定旋转手势的旋转方向,故本发明实施例还可以包括:
步骤B25:确定方向指示值,基于方向指示值的正负确定旋转手势的旋转方向;方向指示值满足:
其中,当前手势数据为T时刻的手势数据,第二历史手势数据为t2时刻的手势数据,RotationDirection(T;t2)表示该方向指示值,×表示向量叉乘。
本发明实施例中,基于该方向指示值可以确定旋转手势。具体地,当该方向指示值为正时,表示旋转方向为逆时针旋转,否则为顺时针旋转。
类似地,对于旋转手势,连续控制指令的控制量与当前手势数据的变化程度之间为正比例关系。本发明实施例中,在当前的手势为旋转手势时,所生成的连续控制指令的控制量表示机器人的旋转角度,该控制量可表示为:
fr=wr·θ
其中θ是该角度变化量,fr为映射的机器人旋转角度,即控制量;系数wr为可调整的超参数常量;例如,wr=1。
本发明实施例提供的一种控制机器人的方法,利用手势数据中包含的关键点的绝对坐标,可以准确快速地确定位移变化量或角度变化量,能够实现快速响应。
上文详细描述了本发明实施例提供的控制机器人的方法,该方法也可以通过相应的装置实现,下面详细描述本发明实施例提供的控制机器人的装置。
图9示出了本发明实施例所提供的一种控制机器人的装置的结构示意图。如图9所示,该控制机器人的装置包括:
获取模块91,用于获取目标用户的当前手势数据,所述当前手势数据包括手部的多个关键点的坐标;
类型确定模块92,用于根据所述当前手势数据中多个所述关键点的坐标确定所述当前手势数据的手势类型;
处理模块93,用于在所述当前手势数据的手势类型为运动手势的情况下,确定所述当前手势数据的变化程度,并生成用于控制机器人运动的连续控制指令;所述连续控制指令的类型与所述当前手势数据的手势类型相一致,所述连续控制指令的控制量与所述当前手势数据的变化程度之间为正相关关系。
在一种可能的实现方式中,所述关键点的坐标为绝对坐标系中的绝对坐标;
所述类型确定模块92包括:
转换单元,用于将所述当前手势数据中多个所述关键点的绝对坐标转换为相对坐标系中的相对坐标;所述相对坐标系为以手掌表面和掌心朝向为基准所确定的坐标系,所述掌心朝向为垂直于所述手掌表面的方向;
确定单元,用于根据多个所述关键点的相对坐标确定所述当前手势数据的手势类型。
在一种可能的实现方式中,所述类型确定模块92还包括:坐标单元;
在所述将所述当前手势数据中多个所述关键点的绝对坐标转换为相对坐标系中的相对坐标之前,所述坐标单元用于:
确定所述手掌表面中的第一向量;
确定所述手掌表面中,位于以所述第一向量为法向量的平面中的第二向量;
确定垂直于所述第一向量和所述第二向量的第三向量;
确定所述第一向量、第二向量和第三向量对应的单位向量基,基于所述单位向量基建立所述相对坐标系。
在一种可能的实现方式中,所述当前手势数据中多个所述关键点的相对坐标满足:
pi=(<si-s0,ex>,<si-s0,ey>,<si-s0,ez>)
其中,pi表示关键点i的相对坐标,si表示关键点i的绝对坐标,s0表示腕部关键点、掌心关键点或指根关键点的绝对坐标,{ex,ey,ez}为所述单位向量基,<,>表示向量内积;所述腕部关键点、所述掌心关键点、所述指根关键点均为多个所述关键点中的一个。
在一种可能的实现方式中,所述确定单元根据多个所述关键点的相对坐标确定所述当前手势数据的手势类型,包括:
确定所述当前手势数据中多个所述关键点的相对坐标与每种手势类型对应的标准姿态之间的相似度,所述标准姿态包括在相应的手势类型下多个所述关键点在所述相对坐标系中的标准坐标;
将大于预设阈值的相似度所对应的手势类型作为所述当前手势数据的手势类型。
在一种可能的实现方式中,所述处理模块93包括移动单元和/或旋转单元;
所述移动单元用于:在所述当前手势数据的手势类型为移动手势的情况下,确定在所述当前手势数据的移动方向上,所述当前手势数据与第一历史手势数据之间的位移变化量,将所述位移变化量作为所述当前手势数据的变化程度;
所述旋转单元用于:在所述当前手势数据的手势类型为旋转手势的情况下,确定在所述当前手势数据的旋转方向上,所述当前手势数据与第二历史手势数据之间的角度变化量,将所述角度变化量作为所述当前手势数据的变化程度;
其中,所述移动手势、所述旋转手势均为一种运动手势。
在一种可能的实现方式中,所述移动手势为沿掌心朝向移动的手势;所述移动单元确定在所述当前手势数据的移动方向上,所述当前手势数据与第一历史手势数据之间的位移变化量,包括:
确定所述当前手势数据对应的掌心朝向d;
确定所述当前手势数据与第一历史手势数据之间有效关键点的位移,所述有效关键点为多个所述关键点中的一个,且所述有效关键点的位移满足:
其中,所述当前手势数据为T时刻的手势数据,所述第一历史手势数据为t1时刻的手势数据,表示所述当前手势数据中有效关键点i的绝对坐标,表示所述第一历史手势数据中有效关键点i的绝对坐标,<,>表示向量内积,Distancei(T;t1,d)表示有效关键点i的位移;
基于至少一个所述有效关键点的位移确定所述当前手势数据与第一历史手势数据之间的位移变化量。
在一种可能的实现方式中,所述旋转手势为围绕目标手指转动的手势;所述旋转单元确定在所述当前手势数据的旋转方向上,所述当前手势数据与第二历史手势数据之间的角度变化量,包括:
确定所述当前手势数据中所述目标手指的朝向drota;
根据所述当前手势数据确定与所述朝向drota不平行的当前向量,并根据所述第二历史手势数据确定与所述朝向drota不平行的历史向量;所述当前向量和所述历史向量为采用相同方式从相应的手势数据中所确定的向量;
在一种可能的实现方式中,所述旋转单元还用于:
确定方向指示值,基于所述方向指示值的正负确定所述旋转手势的旋转方向;所述方向指示值满足:
其中,所述当前手势数据为T时刻的手势数据,所述第二历史手势数据为t2时刻的手势数据,RotationDirection(T;t2)表示所述方向指示值,×表示向量叉乘。
在一种可能的实现方式中,所述连续控制指令的控制量与所述当前手势数据的变化程度之间为正比例关系。
在一种可能的实现方式中,所述处理模块93还用于:
在所述当前手势数据的手势类型为停止手势的情况下,生成用于暂停控制所述机器人的停止指令。
在一种可能的实现方式中,所述手势类型包括移动手势、旋转手势、缩放手势、停止手势中的至少一种;
所述移动手势为多个手指张开的情况下,沿掌心朝向移动的手势;
所述旋转手势为目标手指张开的情况下,保持所述目标手指位置不变并围绕所述目标手指转动的手势;
所述缩放手势为多个手指张开的情况下,沿掌心朝向移动的手势,且所述缩放手势与所述移动手势为分别由左右手所触发的手势;
所述停止手势为所有手指均收起的手势。
此外,本发明实施例还提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该收发器、该存储器和处理器分别通过总线相连,计算机程序被处理器执行时实现上述控制机器人的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
具体的,参见图10所示,本发明实施例还提供了一种电子设备,该电子设备包括总线1110、处理器1120、收发器1130、总线接口1140、存储器1150和用户接口1160。
在本发明实施例中,该电子设备还包括:存储在存储器1150上并可在处理器1120上运行的计算机程序,计算机程序被处理器1120执行时实现上述控制机器人的方法实施例的各个过程。
收发器1130,用于在处理器1120的控制下接收和发送数据。
本发明实施例中,总线架构(用总线1110来代表),总线1110可以包括任意数量互联的总线和桥,总线1110将包括由处理器1120代表的一个或多个处理器与存储器1150代表的存储器的各种电路连接在一起。
总线1110表示若干类型的总线结构中的任何一种总线结构中的一个或多个,包括存储器总线以及存储器控制器、***总线、加速图形端口(Accelerate Graphical Port,AGP)、处理器或使用各种总线体系结构中的任意总线结构的局域总线。作为示例而非限制,这样的体系结构包括:工业标准体系结构(Industry Standard Architecture,ISA)总线、微通道体系结构(Micro Channel Architecture,MCA)总线、扩展ISA(Enhanced ISA,EISA)总线、视频电子标准协会(Video Electronics Standards Association,VESA)、***部件互连(Peripheral Component Interconnect,PCI)总线。
处理器1120可以是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中硬件的集成逻辑电路或软件形式的指令完成。上述的处理器包括:通用处理器、中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、复杂可编程逻辑器件(Complex Programmable LogicDevice,CPLD)、可编程逻辑阵列(Programmable Logic Array,PLA)、微控制单元(Microcontroller Unit,MCU)或其他可编程逻辑器件、分立门、晶体管逻辑器件、分立硬件组件。可以实现或执行本发明实施例中公开的各方法、步骤及逻辑框图。例如,处理器可以是单核处理器或多核处理器,处理器可以集成于单颗芯片或位于多颗不同的芯片。
处理器1120可以是微处理器或任何常规的处理器。结合本发明实施例所公开的方法步骤可以直接由硬件译码处理器执行完成,或者由译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(Random Access Memory,RAM)、闪存(FlashMemory)、只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、寄存器等本领域公知的可读存储介质中。所述可读存储介质位于存储器中,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
总线1110还可以将,例如***设备、稳压器或功率管理电路等各种其他电路连接在一起,总线接口1140在总线1110和收发器1130之间提供接口,这些都是本领域所公知的。因此,本发明实施例不再对其进行进一步描述。
收发器1130可以是一个元件,也可以是多个元件,例如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发器1130从其他设备接收外部数据,收发器1130用于将处理器1120处理后的数据发送给其他设备。取决于计算机***的性质,还可以提供用户接口1160,例如:触摸屏、物理键盘、显示器、鼠标、扬声器、麦克风、轨迹球、操纵杆、触控笔。
应理解,在本发明实施例中,存储器1150可进一步包括相对于处理器1120远程设置的存储器,这些远程设置的存储器可以通过网络连接至服务器。上述网络的一个或多个部分可以是自组织网络(ad hoc network)、内联网(intranet)、外联网(extranet)、虚拟专用网(VPN)、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、无线广域网(WWAN)、城域网(MAN)、互联网(Internet)、公共交换电话网(PSTN)、普通老式电话业务网(POTS)、蜂窝电话网、无线网络、无线保真(Wi-Fi)网络以及两个或更多个上述网络的组合。例如,蜂窝电话网和无线网络可以是全球移动通信(GSM)***、码分多址(CDMA)***、全球微波互联接入(WiMAX)***、通用分组无线业务(GPRS)***、宽带码分多址(WCDMA)***、长期演进(LTE)***、LTE频分双工(FDD)***、LTE时分双工(TDD)***、先进长期演进(LTE-A)***、通用移动通信(UMTS)***、增强移动宽带(Enhance Mobile Broadband,eMBB)***、海量机器类通信(massive Machine Type of Communication,mMTC)***、超可靠低时延通信(UltraReliable Low Latency Communications,uRLLC)***等。
应理解,本发明实施例中的存储器1150可以是易失性存储器或非易失性存储器,或可包括易失性存储器和非易失性存储器两者。其中,非易失性存储器包括:只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存(Flash Memory)。
易失性存储器包括:随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如:静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本发明实施例描述的电子设备的存储器1150包括但不限于上述和任意其他适合类型的存储器。
在本发明实施例中,存储器1150存储了操作***1151和应用程序1152的如下元素:可执行模块、数据结构,或者其子集,或者其扩展集。
具体而言,操作***1151包含各种***程序,例如:框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序1152包含各种应用程序,例如:媒体播放器(Media Player)、浏览器(Browser),用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序1152中。应用程序1152包括:小程序、对象、组件、逻辑、数据结构以及其他执行特定任务或实现特定抽象数据类型的计算机***可执行指令。
此外,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述控制机器人的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
计算机可读存储介质包括:永久性和非永久性、可移动和非可移动媒体,是可以保留和存储供指令执行设备所使用指令的有形设备。计算机可读存储介质包括:电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备以及上述任意合适的组合。计算机可读存储介质包括:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带存储、磁带磁盘存储或其他磁性存储设备、记忆棒、机械编码装置(例如在其上记录有指令的凹槽中的穿孔卡或凸起结构)或任何其他非传输介质、可用于存储可以被计算设备访问的信息。按照本发明实施例中的界定,计算机可读存储介质不包括暂时信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如穿过光纤电缆的光脉冲)或通过导线传输的电信号。
在本申请所提供的几个实施例中,应该理解到,所披露的装置、电子设备和方法,可以通过其他的方式实现。例如,以上描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的、机械的或其他的形式连接。
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是或也可以不是物理单元,既可以位于一个位置,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或全部单元来解决本发明实施例方案要解决的问题。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术作出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(包括:个人计算机、服务器、数据中心或其他网络设备)执行本发明各个实施例所述方法的全部或部分步骤。而上述存储介质包括如前述所列举的各种可以存储程序代码的介质。
在本发明实施例的描述中,所属技术领域的技术人员应当知道,本发明实施例可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本发明实施例可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本发明实施例还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的***、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、闪存(Flash Memory)、光纤、光盘只读存储器(CD-ROM)、光存储器件、磁存储器件或以上任意组合。在本发明实施例中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行***、装置、器件使用或与其结合使用。
上述计算机可读存储介质包含的计算机程序代码可以用任意适当的介质传输,包括:无线、电线、光缆、射频(Radio Frequency,RF)或者以上任意合适的组合。
可以以汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,例如:Java、Smalltalk、C++,还包括常规的过程式程序设计语言,例如:C语言或类似的程序设计语言。计算机程序代码可以完全的在用户计算机上执行、部分的在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行以及完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括:局域网(LAN)或广域网(WAN),可以连接到用户计算机,也可以连接到外部计算机。
本发明实施例通过流程图和/或方框图描述所提供的方法、装置、电子设备。
应当理解,流程图和/或方框图的每个方框以及流程图和/或方框图中各方框的组合,都可以由计算机可读程序指令实现。这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机可读程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或方框图中的方框规定的功能/操作的装置。
也可以将这些计算机可读程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储介质中。这样,存储在计算机可读存储介质中的指令就产生出一个包括实现流程图和/或方框图中的方框规定的功能/操作的指令装置产品。
也可以将计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程数据处理装置上执行的指令能够提供实现流程图和/或方框图中的方框规定的功能/操作的过程。
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例披露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以权利要求的保护范围为准。
Claims (16)
1.一种控制机器人的方法,其特征在于,包括:
获取目标用户的当前手势数据,所述当前手势数据包括手部的多个关键点的坐标;
根据所述当前手势数据中多个所述关键点的坐标确定所述当前手势数据的手势类型;
在所述当前手势数据的手势类型为运动手势的情况下,确定所述当前手势数据的变化程度,并生成用于控制机器人运动的连续控制指令;所述连续控制指令的类型与所述当前手势数据的手势类型相一致,所述连续控制指令的控制量与所述当前手势数据的变化程度之间为正相关关系。
2.根据权利要求1所述的方法,其特征在于,所述关键点的坐标为绝对坐标系中的绝对坐标;
所述根据所述当前手势数据中多个所述关键点的坐标确定所述当前手势数据的手势类型,包括:
将所述当前手势数据中多个所述关键点的绝对坐标转换为相对坐标系中的相对坐标;在手势类型保持不变的情况下,所述相对坐标系能够保持不变;
根据多个所述关键点的相对坐标确定所述当前手势数据的手势类型。
3.根据权利要求2所述的方法,其特征在于,所述相对坐标系为以手掌表面和掌心朝向为基准所确定的坐标系,所述掌心朝向为垂直于所述手掌表面的方向。
4.根据权利要求3所述的方法,其特征在于,在所述将所述当前手势数据中多个所述关键点的绝对坐标转换为相对坐标系中的相对坐标之前,还包括:
确定所述手掌表面中的第一向量;
确定所述手掌表面中,位于以所述第一向量为法向量的平面中的第二向量;
确定垂直于所述第一向量和所述第二向量的第三向量;
确定所述第一向量、第二向量和第三向量对应的单位向量基,基于所述单位向量基建立所述相对坐标系。
5.根据权利要求4所述的方法,其特征在于,所述当前手势数据中多个所述关键点的相对坐标满足:
pi=(<si-s0,ex>,<si-s0,ey>,<si-s0,ez>)
其中,pi表示关键点i的相对坐标,si表示关键点i的绝对坐标,s0表示腕部关键点、掌心关键点或指根关键点的绝对坐标,{ex,ey,ez}为所述单位向量基,<,>表示向量内积;所述腕部关键点、所述掌心关键点、所述指根关键点均为多个所述关键点中的一个。
6.根据权利要求2所述的方法,其特征在于,所述根据多个所述关键点的相对坐标确定所述当前手势数据的手势类型,包括:
确定所述当前手势数据中多个所述关键点的相对坐标与每种手势类型对应的标准姿态之间的相似度,所述标准姿态包括在相应的手势类型下多个所述关键点在所述相对坐标系中的标准坐标;
将大于预设阈值的相似度所对应的手势类型作为所述当前手势数据的手势类型。
7.根据权利要求1所述的方法,其特征在于,所述确定所述当前手势数据的变化程度,包括:
在所述当前手势数据的手势类型为移动手势的情况下,确定在所述当前手势数据的移动方向上,所述当前手势数据与第一历史手势数据之间的位移变化量,将所述位移变化量作为所述当前手势数据的变化程度;
在所述当前手势数据的手势类型为旋转手势的情况下,确定在所述当前手势数据的旋转方向上,所述当前手势数据与第二历史手势数据之间的角度变化量,将所述角度变化量作为所述当前手势数据的变化程度;
其中,所述移动手势、所述旋转手势均为一种运动手势。
8.根据权利要求7所述的方法,其特征在于,所述移动手势为沿掌心朝向移动的手势;
所述确定在所述当前手势数据的移动方向上,所述当前手势数据与第一历史手势数据之间的位移变化量,包括:
确定所述当前手势数据对应的掌心朝向d;
确定所述当前手势数据与第一历史手势数据之间有效关键点的位移,所述有效关键点为多个所述关键点中的一个,且所述有效关键点的位移满足:
其中,所述当前手势数据为T时刻的手势数据,所述第一历史手势数据为t1时刻的手势数据,表示所述当前手势数据中有效关键点i的绝对坐标,表示所述第一历史手势数据中有效关键点i的绝对坐标,<,>表示向量内积,Distancei(T;t1,d)表示有效关键点i的位移;
基于至少一个所述有效关键点的位移确定所述当前手势数据与第一历史手势数据之间的位移变化量。
9.根据权利要求7所述的方法,其特征在于,所述旋转手势为围绕目标手指转动的手势;
所述确定在所述当前手势数据的旋转方向上,所述当前手势数据与第二历史手势数据之间的角度变化量,包括:
确定所述当前手势数据中所述目标手指的朝向drota;
根据所述当前手势数据确定与所述朝向drota不平行的当前向量,并根据所述第二历史手势数据确定与所述朝向drota不平行的历史向量;所述当前向量和所述历史向量为采用相同方式从相应的手势数据中所确定的向量;
11.根据权利要求1所述的方法,其特征在于,所述连续控制指令的控制量与所述当前手势数据的变化程度之间为正比例关系。
12.根据权利要求1-11任意一项所述的方法,其特征在于,还包括:
在所述当前手势数据的手势类型为停止手势的情况下,生成用于暂停控制所述机器人的停止指令。
13.根据权利要求1-11任意一项所述的方法,其特征在于,所述手势类型包括移动手势、旋转手势、缩放手势、停止手势中的至少一种;
所述移动手势为多个手指张开的情况下,沿掌心朝向移动的手势;
所述旋转手势为目标手指张开的情况下,保持所述目标手指位置不变并围绕所述目标手指转动的手势;
所述缩放手势为多个手指张开的情况下,沿掌心朝向移动的手势,且所述缩放手势与所述移动手势为分别由左右手所触发的手势;
所述停止手势为所有手指均收起的手势。
14.一种控制机器人的装置,其特征在于,包括:
获取模块,用于获取目标用户的当前手势数据,所述当前手势数据包括手部的多个关键点的坐标;
类型确定模块,用于根据所述当前手势数据中多个所述关键点的坐标确定所述当前手势数据的手势类型;
处理模块,用于在所述当前手势数据的手势类型为运动手势的情况下,确定所述当前手势数据的变化程度,并生成用于控制机器人运动的连续控制指令;所述连续控制指令的类型与所述当前手势数据的手势类型相一致,所述连续控制指令的控制量与所述当前手势数据的变化程度之间为正相关关系。
15.一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至13中任一项所述的控制机器人的方法中的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至13中任一项所述的控制机器人的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210465716.3A CN114860076A (zh) | 2022-04-29 | 2022-04-29 | 一种控制机器人的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210465716.3A CN114860076A (zh) | 2022-04-29 | 2022-04-29 | 一种控制机器人的方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860076A true CN114860076A (zh) | 2022-08-05 |
Family
ID=82636116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210465716.3A Pending CN114860076A (zh) | 2022-04-29 | 2022-04-29 | 一种控制机器人的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860076A (zh) |
-
2022
- 2022-04-29 CN CN202210465716.3A patent/CN114860076A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110169056B (zh) | 一种动态三维图像获取的方法和设备 | |
US10043308B2 (en) | Image processing method and apparatus for three-dimensional reconstruction | |
WO2019205850A1 (zh) | 位姿确定方法、装置、智能设备及存储介质 | |
WO2019205851A1 (zh) | 位姿确定方法、装置、智能设备及存储介质 | |
US9860448B2 (en) | Method and electronic device for stabilizing video | |
CN113747050B (zh) | 一种拍摄方法及设备 | |
CN105678809A (zh) | 手持式自动跟拍装置及其目标跟踪方法 | |
JP7382994B2 (ja) | 仮想現実システム内の仮想コントローラの位置および向きの追跡 | |
WO2018223381A1 (zh) | 一种视频防抖方法及移动设备 | |
WO2018050128A1 (zh) | 目标跟踪方法、电子设备及存储介质 | |
WO2021088498A1 (zh) | 虚拟物体显示方法以及电子设备 | |
US11886167B2 (en) | Method, system, and non-transitory computer-readable recording medium for supporting object control | |
JP7395070B1 (ja) | ビデオ処理方法及び装置、電子設備及びコンピュータ読み取り可能な記憶媒体 | |
JP2021521559A (ja) | 画像合成方法及び装置 | |
US20210248359A1 (en) | Dynamic Motion Detection Method and Apparatus, and Storage Medium | |
WO2021031790A1 (zh) | 一种信息处理方法、装置、电子设备、存储介质和程序 | |
WO2023173668A1 (zh) | 一种虚拟场景中的输入识别方法、设备及存储介质 | |
CN114390201A (zh) | 对焦方法及其装置 | |
WO2020037924A1 (zh) | 动画生成方法和装置 | |
CN114125305A (zh) | 拍摄方法、装置及设备 | |
WO2022061541A1 (zh) | 控制方法、手持云台、***及计算机可读存储介质 | |
CN114860076A (zh) | 一种控制机器人的方法、装置及电子设备 | |
CN114845056B (zh) | 一种辅助摄影机器人 | |
JP6381092B2 (ja) | 摂動因子存在下で入力の値を推定する方法及び装置 | |
US9619714B2 (en) | Device and method for video generation |
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 |