赋能人机交互——让机器学会手势识别
2019-12-05 来源:多智时代
直播简介
直播内容
内容看点:
1.生活中的交互手势及手势识别的应用
2.深度学习下的识别手势
3.手势识别中的关键点估计
4.手势识别中的挑战
一、生活中的交互手势及手势识别的应用
我们在生活当中经常会和身边的人去交流,除了语言,肢体语言也是非常重要的一部分,比如手势就传递了很多重要的信息。生活中手势的识别,可能是靠当事人自己去理解,如果这种把这种识别技术应用到工业、医学或其他方面,我们要怎么做?
首先是医学领域的手势识别应用,医生在手术过程中为了看一些内部影像,他们不用直接用手去触摸屏幕,而只需要用手和屏幕进行交互,就可以随意的进行上下左右切换以及对图片进行放大缩小的操作。
其实这个只属于众多应用中很小的一部分,因为人机交互的应用场景实在是太广泛了。比如日常生活当中有很多人是近视眼,经常会遇到一个很尴尬的问题:在路上如果有人向你打招呼,你看不见别人还以为你很高调。如果以后有某种增强机器能够告诉你某个人向你打招呼了,可以识别出别人的手势,就可以解决我们生活中的尴尬。
二、深度学习下的识别手势
我们今天直播的干货,就是分享怎么去求解手势。
在这里我先把问题简化一下,因为大家都知道可能有一些手势不是一个静态的手,比如说投篮,肯定是一个连续的动作。如果把它认为是一个手势,那我们今天的主题就是仅限于静态图片中的手势,其实动态手势和静态手势有很多类似的地方。
对于静态手势,首先我们怎么去谋划?即数学里面的建模概念。首先我们input所谓的输入,手势识别的输入肯定就是一张图片,然后会经过我们所码出的模型。这个模型就是机器学习的模型,它会告诉你这个图片是“比心”,我们最主要的问题就是去求解我们目前所码出的模型。
这就是手势识别在深度学习下的问题定义:我们输入一张图片,这张图片会经过我们建立的模型,然后这个模型会告诉我们这张图片的手势含义。
除了这种深度学习,也可以用传统机器学习,譬如说SVM。如果是深度学习,大概就是把一张图片输入到一个分类网络里面去,接着它会做两件事情,第一件是特征的处理。在这里加一句,如果是传统的机器学模型,还要面临的一个问题是如何去抽取显著特征,对于手势识别而言每一种任务都有不同特征。
因此这种分类网络它会有一个很大的问题,我们从这个图片就可以看出,其实这个手它占整张图片的比例不是非常大,而且我们截取的图片中手的比例本就大小不一,在图中的位置也是随机的,这对所谓的分类网络来说极具挑战性。虽然这种 Classification work 有一些平移不变性的属性,但是在实际模型组没法达到这种理论层面上的“不变”。
那我们应该怎么去改进?
手部在整个input image里面的位置、比例都有对应的信息,我们可以先capture图片中手的这部分,之后再去做这种classification,可能就会简单很多。大家在实际的项目或者研究当中可以选择直接去用现有的网络,也可以根据自己的任务去自己设计,因为有些网络适用于特定的场景。
如果这张图片经过Hand Detection网络之后它会输出,这个输出的我们肯定是希望它找了这个“手”的部分,如果手部检测模块能够检测出出来,之后我们就可以把这部分capture,之前提到的位置和比例问题就得到了很大的改善,不再是以人脸为主体,而是变成了手为主体。接着,手这部分就会被放到之前的手势识别模块中,即Gesture Classification(手势分类)。
我们再去回想一下这个问题,把手的特性全部整合到一个模型中解决了手部位置和比例的变化,这是因为手的形态太多,且过于灵活,因此同样的手势在不同的图片中出现不同的反应。譬如下面的这个视频,同一个拍照的手势不用的角度就发生了很大变化。
这里面临的一个问题就是你只有手部的检测,在放入手势识别的这种模块里面去也会面临所谓的拍摄角度或者手姿态变化的一些影响,这就比较难的部分。
如何解决?
三、手势识别中的关键点估计
手虽然很灵活,但是可以把它看作是钢铁交链的结合,那肯定有一些比较核心的关键点,比如说指尖或者关节,这样的信息就已经几乎可以把一个手的姿态给固定下来或者描述清楚。如果我们能拿到这种关键首部、关键点的信息,可能就更加有利于我们做手势识别,这样也能够保证我们整个模型算法的鲁棒性。
接下来我们就讲讲手势识别当中的一些关键点,这个pipeline到目前为止我觉得很成熟,而且鲁棒性也非常好。这里额外强调一下大家可以去构建适用于自己的业务场景模型。之前说到手部检测做出来后,首先不要急着放入Gesture Classification(手势分类) 中,应该先放入到Hand Keypoint Estimation(手部关键点估计)模块。目前为止我们这边是估计了21个关键点,比如说手腕是一个点,每一个手指是四个点,这个是比较符合医学上面的一些定义。
去年我们设计了一个类似于SUN的一个网络,这个可能还没有公布出来,后面也会有对它有一些改进,因为大家都知道Hourglass Module 和 Cascaded Pyramid Network对关键点的估计都有很好的效果,但我们发现其实把他们两个合在一起效果也会更好。
四、手势识别中的挑战
可以看下图中,对于机器来说它要学习的不仅是手的形状,可能还有纹理信息,比如识别出这是不是人的手之类的,图一戴手套的这种图片的识别就具有一定挑战性,还有图二这种手部遮挡的识别也是一个很大的问题。
下面我们看一下旷视这边手势识别当中关键点的一些工作视频,模型设计得足够合理,所谓的挑战挑的比较合适。这其实只是表象,主要是大家怎么去构建这个数学问题,因为它这里面直接涉及到一些数学问题,怎么去把这个点给找出来,怎么去去谋划和keep这个东西都是比较重要的。
问答环节
Q:基于RGB头像和基于深度头像哪种应用比较多?
A:说实话,目前基于这两种的图像的都不多,而基于红外的比较多,红外的这种头像应用场景会多一点。
Q:人机交互目前是什么样发展趋势和进程?
A:人机交互的发展前景是非常大的,以后可能随着这种VR或者AR的继续发展,肯定手势识别是其中最核心的一块,对以后的话很多东西不需要去我们人类去跟它做实体的接触就可以去控制,这也是一个很重要的场景,这个可应用的范围就太广了,大家刚刚看到的医学层面的应用,这已经是这里面展现出来的东西,已经是很有想象力。我觉着就是大家去解放自己,解放我们人类的双手。
Q:怎么确定不同手势代表的意义?
A:这个问题问得很好,每个国家和地区的手势都是不一样的,所以大家做手势识别要多加注意,因为有些手势可能在我我们看来是比较中规中矩,可能在西方或者在一些其他的有信仰的国家的话,手势的含义不一样。这个确实要考虑一下你的应用的人群,这个东西很重要,意义确实是不一样的。但是虽然每个国家或者每个地区人民对手势的理解啊有一些差别,但这不影响我们去做应用。站在计算机的角度,它只需要去识别这些手势,这对我们来说很重要。具体这些手势要赋予它们什么意义,这都是我们可以后面去定义的,就比如说你已经识别出来了这个OK的这个手势,但他具体是个什么定义,这可以是我们来定义的,对吧?这个算法研究的工作量其实没有想象中的那么大。
标签: 深度学习 人机交互 应用场景 机器学习 业务场景 计算机
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
上一篇:网络直播系统带来的教育变革
下一篇:什么是IT运维自动化