opencv 手部识别_手势识别结合到VR头显中,有哪些难点?

VR头盔实现手势识别面临控制精准度和视域要求。选择和操纵物体需要高精度,表达意义则相对宽松。操纵物体及表达意义通常需在FOV内,而选择物体不一定。文章探讨了手势识别在VR中的应用场景和需求。
摘要由CSDN通过智能技术生成
文/知乎用户mysunnytime

”VR 头盔要做到「手势识别」,有哪些需要攻克的难点?“

工业场景下,我们可以把这个问题转化为,如何利用更少的软硬件条件,对VR使用场景的手势识别功能提足够的用户体验。 那么怎样是足够的用户体验呢?这要看我们在VR中为什么需要手势识别。

 为什么VR中需要手势识别?

VR应用中需要什么样的手势识别? 

虚拟现实之所以是虚拟现实,是因为它带给用户一个沉浸式体验,把用户的视觉和听觉等替换成了一个虚拟出来的环境。或许是魔法的霍格沃兹,或许是你异地同事的办公室。除非是VR电影,否则一般用户都需要和场景进行交互,比如选择、操纵物体,和虚拟环境中的其他人物互动、移动。 想象一下我们的真实世界中,我们和世界是怎样交互的? 人和人接触时,互动方式主要是靠三种方式:语言、表情和手势;而人和物体的互动则绝大部分是靠手;人在世界中的移动(locomotion)主要靠脚,偶尔需要手的参与(开车等)。所以不管是哪一种互动,手都起着很重要的作用。在人机交互的设计中,“手”可是比心脏更还要的器官XD。 VR中要用到“手”的地方可以分类如下:
  • 选择物体(select):发出射线进行远程选择,或者直接触碰进行近处的选择;
  • 操纵物体(manipulate):比如把被选择的物体放大缩小、移动位置;
  • 表达意义:比如挥手问好的手势,“请”的手势,还可以是程序自定义的表达意义的手势,比如在空中画一个圈,就出现一个魔法效果等。这其中又分成两种,一种是用手臂就能表达的(比如指向某个方向),一种是还需要手掌手指的细节的(比如猜拳)。这三种手势的应用中,从控制精准度的要求来讲,操纵物体和选择物体要求较高,而表达意义要求较低。从FOV(Field of View 视域)角度来说,选择物体时一般不需要手势发生在FOV中,用户主要会盯着被选择的物体;而操纵一般需要手势发生在FOV中,一般设计中,物体和手势都需要被看到;表达意义时,主要需要被表达的对象(人或系统)感知到手势,然而如果手势复杂,用户也可能需要看着手势发生的地方。
e90d8548fccbea5e5c1ce7867975e17c.png 当前实现VR手势识别的方式有哪些? 关于“VR头盔要如何做到手势识别”这一问题,如果纯使用VR头戴,当前可以完成的识别方式有: 1. 图像识别:在头戴上安装摄像头捕捉,再利用CV技术识别出“手”这个物体,进而识别手势。 ad16214a16154ca4d8da34cf61b2d912.png 从图像中识别手部轮廓 | Adrian Rosebrock @ https://www.pyimagesearch.com/2016/04/11/finding-extreme-points-in-contours-with-opencv/ 2. 深度传感器:原理是从头盔处发射和接受红外线,根据收发时间差得出距离,结合发射角度从而得到空间点的位置。这样可以得出一个深度扫描图。再识别出“手”这个物体,识别出其关节,识别手势。 01e2f94bbbfe187090bf3b38b6ec0544.png 深度摄像头得到的点云图(point cloud)| pmd,https://pmdtec.com/picofamily/ 图像识别基于二维点阵图的色彩信息,而深度传感器的识别基于视域内点集的三维位置——一个是平面,一个是立体。深度传感器一定程度上可以直接还原物体的3D信息(3D建模),手部的信息集和环境信息集差异更大,从这个角度上讲可靠性比图像识别更加可靠(得多);然而要把这个原始的手部信息识别成手势,和从图像中识别出手以后再识别手势相比,各有其难度。 不管是使用普通照相机作为输入源的图像识别方法,还是使用深度传感器的方法,又有一个重大局限,那就是传感器处于VR头戴设备上,那么,用户的手必须出现在设备传感器的检测区域里,也就是说,设备必须“看得见”你的手(用户的手要在设备的FOV中)。这造成两个方面的局限: 1)用户必须抬手,或者低头; 2)只有当手掌方向和传感器“视角”平行并且无遮挡的时候,识别效果最好,如果设备不能完整地“看到”用户的手(例如一些手势中,较近地手指遮挡了较远的手指,或者两只手距离很近、或互相遮挡时),那么很容易造成误判。比如,下图两个OK的手势,左边就较好识别,右边就较难识别。 c17301251398024d2fcd5a5b146925a2.png 那么除了在VR头盔上做文章,还有什么别的方法呢? 如果不限于仅仅使用VR头盔,那么额外借助其他硬件的方法还有: 3. 手持控制器/手柄(controller):可以实现的输入渠道有按钮、加速度传感器/螺旋仪定位。如果定位上再结合以上1、2两点利用VR头戴的传感器(如windows mixed reality头戴),或者室内传感器(lighthouse),进行手柄的识别,那么精度相当可靠。这样,手柄可以实现高精度的手部定位功能。除此之外,现在很多手柄还巧妙结合硬件设计,可以识别“抓”、“指”等简单收拾的手势。 5058d474a95b843839b90dfa6dffc430.png Oculus Rift手柄的巧妙手势识别 4. 手套:优势是精准,可以识别到每一根手指和每一个关节,并且有些设计还能提供反向作用力,让人在抓握时感受到被抓物体的硬度。一般是用手柄或定位器进行手掌的位置方向定位,然后利用套在手指上的传感器,进行手指和关节定位。缺点是佩戴会降低舒适度。 3d682818309f77071ae1bab62ba56202.png Plexus VR手套 | https://vimeo.com/276517370

 总结 

那么说了这么多,让我来尝试总结一下各种VR中手势识别的特点: db7051239c128b6f02624ecf6fc0dd9f.png 其中,标红的部分就是每种方式的短板所在,也就是需要攻克的难点。 同时,考虑到这些方式的特点,我们在设计VR应用时,也应根据我们的使用场景来扬长避短,选择适合的手势识别方式。这里按照之前总结的三个基础使用场景,提出适合的手势识别方式,来尽可能地利用更少的软硬件条件,创造足够的用户体验。 52e014d8352bdfe1eae1896801a0ee9a.png

(本文已获得知乎用户mysunnytime授权发布,原回答链接:https://www.zhihu.com/question/348026118/answer/843541717)

  第一时间了解XR资讯  

  关注VR陀螺官网(vrtuoluo.cn)

VR陀螺的联系方式:

商务合作 | 采访 | 投稿 :

西瓜(微信号 18659030320) 文静(微信 mutou_kiki) 交流分享 | 爆料:案山子 (微信 shimotsuki_jun) 投稿邮箱:tougao@youxituoluo.com

近期热文



f16a8f3c2bbc7fdd407a0bf3192d0ed4.png

3dc2d00fe1cfa950165a82b8c6af22c7.png

dda9ca6b31f45b14f20cf53749bc8f53.png

ff974a07a4ceaa5dbd7602dcebb256a9.png

22bcae050f81373fefb0c907f22d5314.png

你的每一个“在看”,都是我们坚持原创的动力c340e318e221dd8e51e43f210667d02a.gif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值