一种视觉信息融合数据手套设计研究
2018-12-20王赋攀吴亚东杨文超侯佳鑫
王赋攀 吴亚东,2 杨文超 杨 帆 侯佳鑫 廖 竞
1(西南科技大学计算机科学与技术学院 四川绵阳 621010) 2(西南科技大学四川省军民融合研究院 四川绵阳 621010) 3(达闼科技成都有限公司 成都 610100) 4(法国国家科学研究中心电子、计算与成像科学实验室(勃艮第大学) 法国第戎 21078)
手势交互是一种重要的自然交互方式,在基于手势的虚拟现实交互应用中,手势定位和识别是交互过程中的关键环节,良好的交互体验要求兼顾准确率和实时性.手势数据的获取可分为基于视觉的识别和基于可穿戴设备(数据手套)的识别2个基本类别[1-2].与基于视觉的手势识别技术相比,基于数据手套的手势识别反应灵敏、精度高、实时性好、沉浸感强.数据手套不受摄像头视场区域约束和遮挡,不受空间限制;其信息获取通道独立,高性能传感器和处理器使之满足高精度、实时性的要求,避免视觉手势识别方法复杂算法支撑造成的资源和时间消耗;可作为输入/输出通道,可提供力/触觉反馈以获取更自然的体验感,在特定领域(如虚拟装配、虚拟手术等特种操作)中具有重要的实用价值.
1 相关工作
目前针对数据手套的相关研究主要集中在虚拟手精确建模、手势识别、空间定位等方向.高龙琴等人[3]在建立虚拟手模型的基础上, 以18个传感器的CyberGlove数据手套作为手势输入设备, 通过人体手部运动学模型建立了数据手套与虚拟手之间的联系;文献[4-6]中也对基于数据手套的逼真虚拟手进行了讨论;手势识别方面,吴江琴等人[7]提出了用人工神经网络(artificial neural network, ANN)和隐Markov模型(hidden Markov model, HMM)混合方法训练手势并应用于中国手语识别系统;吕蕾等人[8]使用具有噪声的基于密度的聚类方法对手指特征点进行聚类以构造手势模板,实现高效的手势识别;Parvini等人[9]提出一种基于手指关节生物力学特征的识别算法,并在美国手语(American sign language, ASL)识别中得以应用;Iwasako等人[10]提出了一种基于5DT-14数据手套的手语训练系统,通过对手势的3D建模实现了对手势的精确还原并纠正学习者的动作;蔡兴泉等人[11]分析了基于无线数据手套的手势识别方法,以空间移动加速度信息判断手势动作,以手势和按键组合完成各种复杂交互;吕美玉等人[12]设计了一种数据手套和双目视觉技术相结合的方法,提出基于2个垂直摄像头的空间点定位与跟踪模型.
数据手套在实际应用中的问题主要体现在:1)手势识别精度取决于传感器节点的布设数量和位置,相应的标定和解算复杂,对处理芯片运算能力要求高[13];2)采用外骨骼、气动肌肉等形式获取力反馈通道造成结构复杂、重量增加,影响用户体验;3)传感器本身无法提供位置信息,通常需要在手套上加装位置跟踪系统,采用电磁、超声、红外等方式反馈手部的空间信息,需要增加更多的模块,实现复杂,效果不稳定;4)不同型号与规格导致相应的特征提取、手势识别算法缺乏通用性.
针对上述问题,本文提出了一种融合视觉信息的空间定位与手势姿态解算的数据手套解决方案.该方案通过传感器检测手势姿态,借助视觉设备构造模板库,采用高效特征校验霍夫变换实现位置追踪,实现了设备的轻量化和运行的高效率,具有较强的可扩充性,可以满足沉浸式实时虚拟现实交互系统的应用要求.
2 视觉信息融合数据手套总体框架
视觉信息融合数据手套的整体框架由姿态检测与解算、弯曲度检测、手势识别和空间位置追踪等模块组成,如图1所示.姿态检测解算模块主要获取手掌在三维空间的旋转角;弯曲度检测模块采集手指弯曲程度数据,该数据在视觉设备辅助下用于建立手势模板;手势识别模块将实时获取的手指弯曲度数据与模板库进行比对以确定手势;三维位置追踪模块通过视觉检测与计算获取手部在三维空间的实时位置移动信息.三维空间位置和经过识别的手势信息最终映射到虚拟手,实现虚拟空间中的交互.
Fig. 1 The design framework of data glove based on visual information fusion图1 视觉信息融合数据手套设计框架
3 视觉融合手套的手势识别与姿态解算
本文提出了一种简化的手势模板匹配方法,将传感器数据与视觉采集信息联合建模,实现了手势的快速匹配与识别.该方法主要包含基于弯曲度传感器数据的手势采集与模板定义、手势识别2个环节.
1) 手势采集与模板定义
为获得弯曲度传感器检测数据与特定手势的映射关系,借助了视觉识别设备.Leap公司的体感控制器LeapMotion可直接获取手部骨骼点的相对位
置信息并建立静态手势模型.由于本文中的手势识别主要面向虚拟装配以及虚拟实验等应用,因此首先预设了常用的6种区分度较高的基本手势并对其进行定义,如表1所示:
Table 1 The Definition of Hand Gestures表1 手势定义
在对每种手势进行模板采集时,需同时连接数据手套与体感控制设备.测试者佩戴数据手套,保持手势稳定,同时将LeapMotion置于前额与眼睛观察视角一致,使手指弯曲度检测数据和视觉设备获取的关节点相对位置同步.针对不同手势下的检测数组和手型模板,采用多组测试数据平均值作为该手势的最终模板.测试者由多名不同年龄、性别、体型人员组成.由于实际应用中拇指、食指和中指3指的组合可以表达多数常用手势,本方案中弯曲度传感器检测该3指数据作为输入.采集测试结果如表2所示:
Table 2 Hand Template of Static Gestures表2 静态手势模板
表2中弯曲度检测值为归一化处理后的值.关节相对位置为虚拟手模型关节点相对掌心的位置信息,包括22个关节点相对于掌心关节的相对位置.视觉设备所测得的关节相对位置还将作为虚拟空间中虚拟手的构造参数.
2) 手势识别
基于弯曲度数据与预定义手势的映射关系,可将实时检测数据与模板库数据逐一计算欧氏距离,以最小距离的模板数据所对应的手势作为识别结果.视觉设备的作用是辅助采集手势模板,采集完成即不再继续使用.手势的获取与识别完全由弯曲传感器数据决定.但存在的问题是在只定义6种手势时,对空间中的虚拟手手势的关节点相对位置数据也只有6组,即虚拟手的形状只有6个.在系统运行中手势的变化会非常突兀,影响用户体验.需要在已定义的手势模板之间增加若干没有特定手势意义的模板,这些模板用来向虚拟手传递手势动态变化.实验中在6种基本手势之外定义了4个无特定意义的模板,并选择在动作差异相对较大的“Fist”与“Palm”,“Okay”与“Tap”这2组手势之间采集模板数据,该2组手势在使用中通常连续出现,如抓取和释放、呼出菜单和点击.由于弯曲度数据的获取、手势识别,以及手势在虚拟空间中的映射是一个同步的过程,可采取一种分级的模板匹配识别方法,保证识别准确率和动作平滑性.其过程如算法1所示.
算法1. 分级的模板匹配识别算法.
输入:当前帧所获取的实时3指弯曲度检测数据inputFingers;
输出:手势识别结果gestureTemplateList[i],包括预定义手势序号i和当前手势对应的虚拟手关节点相对位置.
① fori←0 to 5*6种预定义手势模板*
②distance←sqrt((xi-x)2+(yi-y)2+
(zi-z)2);
③ ifD>distance
④D←distance;
⑤ end if
⑦ ifD≤T*阈值的选取同样由测试者在每种有效手势下的弯曲度数据计算与模板中对应数据的归一化距离取统计平均值*
⑨ end if
⑩ fori←0 to 3*4种无特定意义手势模板*
(zi-z)2);
旋转姿态解算模块实现手部姿态检测和解算功能,将手部旋转状态映射到虚拟空间的虚拟手,实现虚拟手的旋转控制.使用卡尔曼滤波对本数据手套中的3轴加速度计和3轴陀螺仪测量值进行数据融合,解算出准确的3轴旋转姿态角度.采用四元数法控制旋转方式以避免欧拉角万向节死锁问题[14],四元数可看作1个向量与1个实数的组合形式,向量v=(x,y,z)表示旋转轴,w的值表示旋转的大小,四元数法可完整表达绕任意轴旋转任意角度:
q=(v,w)=((x,y,z),w).
(1)
4 高效特征校验霍夫变换位置追踪算法
马克点是一种目标标定方式,本文对手套位置追踪的基本思想是在手套上固定发光小球作马克点,将其在二维平面的圆形位置和尺寸映射为三维空间的位置坐标,以此实现目标的追踪.该方法的核心是二维图像中圆形的检测.霍夫变换(Hough transform)[15]是一种可靠的圆形检测算法,在实际应用中通常基于霍夫梯度法实现圆的识别.但霍夫梯度法在使用中存在2个问题:1)需要借助高性能边缘检测算法如Canny算法来进行边缘检测,并且使用遍历计算二值图像中非零点的梯度以判决投票点,带来较大的计算量,特别在图像中还存在某些干扰轮廓时,会造成资源和时间的巨大消耗,严重影响了实时性;2)若边缘轮廓质量较差时会导致梯度方向的误差累积,造成圆心定位的偏差.针对以上问题,本文提出了一种高效的利用特征校验和改进霍夫梯度法的优化算法,通过改进霍夫梯度法检测圆形流程、引入特征校验、设置特殊颜色发光球优化边缘检测等措施降低复杂度,其实现过程如图2所示:
Fig. 2 The workflow of position tracking based on feature checking Hough algorithm图2 特征校验霍夫变换位置追踪算法流程
1) 基于改进霍夫变换的圆形检测算法
在进行圆检测时,等间距选取轮廓上的像素点作为圆周点,通过相邻圆周点估计直径方程.该直径与对应点的梯度方向相一致,类似霍夫梯度法,可沿该直径方向设定一定数量投票点.圆周扫描完成后以投票数组中最大值对应像素作为圆心,其原理如图3所示:
Fig. 3 The improved Hough algorithm for circle detection图3 改进的霍夫梯度法检测圆
此外,流程中通过对边界区域的判别机制可删除部分非圆轮廓点,进一步提高运行效率.该优化算法主要流程如算法2所示.
算法2. 基于改进霍夫变换的快速圆形检测.
输入:边缘轮廓图像vergemap、图像尺寸width,height;
输出:目标圆thiscircle.
①vecArray=newVector2[height,width];*创建投票数组vecArray,存放投票数和半径*
② for eachPixels∈vergemap*遍历图像以寻找边缘轮廓点*
③ if 扫描到边缘点像素X
④dotsList.add(X);
⑤ 更新集合区域框标记T(xt,yt)和B(xb,yb)坐标;
⑥ ifX有邻接边缘点
⑦ 更新X点坐标;
⑨ end if
⑩ ifdotsList.Count>40*满足点集数量的下限*
根据圆的特征判断找到的连续边缘点集dotsList是否可能为圆形区域,可以式(2)作为判断条件,其方法可表达为:若该区域边框的长宽比大于等于2(即式中的maxmin),则该点集区域不符合圆形特征.
max(|xt-xb|,|yt-yb|)<
2min(|xt-xb|,|yt-yb|),
(2)
(3)
y=ml′x+b.
(4)
Fig. 5 The binarization and edge detection of special color ball图5 特殊颜色发光球二值化和边缘检测
图3中L1,L2为通过点Ak具有相同弧长的对称割线,可根据相邻前一个点Ak-1和后一个点Ak+1得到,其斜率分别是ml1,ml2.通过点Ak切线L的斜率取ml1,ml2的均值,而过点Ak的直径L′与切线L垂直(切线L的斜率计算如式(3)所示),因此直径所在的直线方程为式(4),带入点Ak坐标计算出b值即可求解出直径的方程.
2) 结合可信度和特征校验的快速定位
对逐帧图像采取改进后的霍夫梯度法进行检测仍存在计算量较大的问题,为此进一步加入了特征校验法则以提高算法的整体效率.在霍夫梯度法确定圆心和半径后,从圆心处获取圆周上的部分测试点,以半径作为平均值计算这些测试点到圆心的距离的标准差,以该标准差进行一次可信度的判别.如可信度不低于特定阈值σref,(即标准差小于阈值),则说明该圆心可信度较高,在下一帧图像中可基于当前帧圆心,直接利用圆形特征校验计算新的圆心位置进行更新.图4表示了利用圆形特征获取新的圆心的原理:以上一帧圆心O为极点,等幅度增加角度值向圆外扫描到的系列圆周点a,b,c,…,n,根据这n个圆周上的点求取质心O′作为新的圆心位置,当n较大时,质心可近似表示圆心.如判断可信度不够,则继续使用前述改进后的霍夫梯度法检测圆.
Fig. 4 Locating the center of circle by feature checking图4 特征校验定位圆心
3) 使用特殊颜色发光球作为马克点
利用发光球其明显区别于环境背景的亮度、颜色特征,经RGB灰度化处理快速实现图像二值化和边缘提取.该方法提高了边缘检测效率,同时能得到更高质量的边缘轮廓图像.图5分别为简单背景和干扰背景下二值化及边缘检测的效果.
当发光球位于摄像头视场边缘时会导致所获球体图像不完整,对部分区域边缘点沿直径方向仍可进行投票操作,但算法首先会对区域点数和区域框外形进行筛选,因此丢失可能较大.由于本系统在实际应用中主要面向头戴式应用,用户视场可灵活调整以配合手部移动,在实用中不会造成影响.
5 实验及结果分析
5.1 平台搭建
视觉信息融合的数据手套原型系统如图6所示.旋转姿态解算模块采用MPU6050,弯曲度检测模块Flex Sensor完成手指弯曲程度的检测,选择安装在拇指、食指和中指位置;基于ARM的32 b微控制器STM32F103C8T6作为数据手套运算中心(MCU).手套上固定设置发光球作为马克点,由摄像头捕捉发光球进行目标追踪.
为了验证数据手套的功能,构造了一个VR沉浸式虚拟实验系统.系统主题为面向中学科普教育的虚拟直升机装配实验.基于Unity引擎搭建实验场景,场景模型采用3dMax生成.使用基于视觉融合数据手套作为交互输入设备,采用Cardboard盒子搭载智能手机.数据手套为自主开发的SDK接口,测试手机平台基本配置为高通骁龙801处理器,3 GB运行内存.
Fig. 6 The prototype of data glove based on visual information fusion图6 视觉信息融合数据手套原型
Fig. 7 Ball recognition test while moving图7 运动小球识别测试
5.2 算法验证
为验证算法性能,首先进行了运动小球识别效果对比测试.使用Opencv霍夫梯度法(HoughCircles函数)和本文的特征校验霍夫变换法在有灯光干扰的环境捕捉发光球的运动轨迹,结果如图7所示.
从图7中可以看出,特征校验的霍夫变换检测得到的正确定位点更多,轨迹连贯,错误点少.2种算法耗时曲线如图8所示.
Fig. 8 Computation cost of those two algorithms图8 算法耗时比较
同直接使用霍夫梯度法相比,特征校验霍夫变换识别算法最大耗时较高(13 ms),但最低耗时仅1 ms,整体耗时平均值低,与算法特征相符.进一步在不同复杂程度的环境下采集位于图像不同区域的发光小球图像共50幅,对比结果如表3所示.由于合理地控制计算点数量并结合特征校验,算法运行耗时和识别准确率在复杂背景下仍达到较好的水平.
Table 3 Comparison of Round Detection Algorithm inDifferent Background
Fig. 9 System scheme demonstration of visual glove图9 实验操作演示
5.3 实验结果与分析
实验征集10名学生志愿者参与测试,并对志愿者进行了训练以掌握交互操作的方法,最后根据实验要求,在虚拟环境下完成直升机装配操作.实验的系统界面操作方式和如图9、图10所示.用户佩戴数据手套和搭载智能手机的Cardboard盒子,按以下控制方式进行交互操作:
“Okay”手势——呼出菜单UI;
“Tap”手势——点击菜单,点击按钮进入组装实验场景;
“Shoot”手势——通过食指的指向控制视角上下移,结合头部转动实现视角移动;
“Fist”手势——关闭菜单或抓取零部件;
“Palm”手势——释放零部件.
测试完成后通过问卷形式对志愿者的个人主观体验从真实感、沉浸感、易用性等方面进行了调查.对调查项采用5分制的方法评分,最终统计结果如图11所示.
Fig. 10 The experimental system interface图10 实验系统界面
Fig. 11 User experience of virtual experiment based on this data glove图11 虚拟实验用户主观体验评分统计
统计调查结果表明:参与测试的志愿者对基于该型数据手套的虚拟实验系统的真实感、沉浸感、自然性等指标打分较高,同时表现出强烈的兴趣;受运行平台性能的影响,易用性指标上得分偏低,但总体评分满意度仍达到了较好的水平,且具有进一步提升的空间.实验结果表明:本文的视觉信息融合的数据手套方案可以有效满足虚拟现实系统的交互要求.
6 总 结
本文针对现有数据手套交互技术存在的问题,研究并实现了一种基于视觉融合的数据手套系统.该数据手套综合传感器数据和视觉信息实现了虚拟手势的交互,借助特殊颜色发光球和摄像头,采用特征校验霍夫变换算法实现了位置追踪.系统综合了数据手套和视觉手势检测技术的特点,满足了沉浸式虚拟现实交互体验系统的应用要求,其较好的沉浸感和体验感体现了新一代人机交互技术以用户为中心的特点,并且具有较强的可扩展性.后续工作中,在姿态解算精确度、手势识别、空间位置定位等方面将进一步进行探索,提高识别准确率、降低算法复杂度,加强在移动平台的运行流畅度,获取更好的体验效果.