• 工作总结
  • 工作计划
  • 心得体会
  • 领导讲话
  • 发言稿
  • 演讲稿
  • 述职报告
  • 入党申请
  • 党建材料
  • 党课下载
  • 脱贫攻坚
  • 对照材料
  • 主题教育
  • 事迹材料
  • 谈话记录
  • 扫黑除恶
  • 实施方案
  • 自查整改
  • 调查报告
  • 公文范文
  • 思想汇报
  • 当前位置: 雅意学习网 > 文档大全 > 公文范文 > 正文

    基于手势识别的无接触解锁系统

    时间:2023-05-31 17:30:27 来源:雅意学习网 本文已影响 雅意学习网手机站

    陈万泽 陈家祯

    (福建师范大学计算机与网络空间安全学院,福建 福州 350117)

    人机交互、机器人技术、虚拟现实、增强现实等领域通过手势识别这一技术迸发出无穷的应用潜力[1]。传统的手势识别大都需要使用如深度传感器、红外传感器等硬件设备才能达到高精度的要求。无论是通过传感器还是触摸屏的推广运用,人机交互为人们提供了诸多便利。然而,2020年初新冠肺炎疫情的暴发,使得许多日常生活需要触摸的人机交互产品成了病毒扩散的帮凶,“无接触式”服务应运而生,成为培育新动能、构筑新优势、抢占产业制高点的着力点之一。因此,人们需要一种更安全的人机交互方式,如无接触式查询、无接触式导购,文章所提系统通过手势估计这一技术将人机交互转变为无接触式交互,从而可以大幅减少病毒接触式的传播风险。

    现阶段,学术界提出了多种技术来识别基于图像的手势,主流的解决方案依靠深度学习框架,摒弃了传感器对使用场景的限制,解决了在颜色空间中进行凸包检测的不准确性,并在各种光照条件及各种使用场景下都表现出优异的性能。已有研究如CHEVTCHENKO等[2]提出了基于特征融合的CNN网络,从输入的手势图像中提取Zemike矩、Gabor滤波器及轮廓特征,将上述特征输入至全连接层上进行融合得到手势分类。LEE等[3]提出了一种基于腕带的轮廓特征(wristband-based contour features,WBCFs)用于识别复杂环境中的静态手势,具体是在双手腕部添加黑色腕带,从而准确地分割手部区域。CHEVTCHENKO等[4]使用多目标遗传算法对特征和维度的组合进行了优化。FANG等[5]使用Fisher向量优化局部描述符,并使用支持向量机(SVM)分类器识别手势,其中局部描述符为手势轮廓中的角度、距离和曲率特征。BARBHUIYA等[6]从AlexNet和VGGNet的全连接层中提取深度特征,并将其输入至SVM分类器进行分类,最终实现了手势识别。

    系统采用客户端-服务端模型,服务器负责手势视频流数据的解析,客户端负责显示数据、展示数据结果及发送用户请求。

    2.1 技术介绍

    该系统选择C/S模式,客户端显示界面开发采用PyQt5编写,功能是负责与用户进行交互,服务器端使用Python进行编写,负责对手势视频数据流的处理,最终结果返回至前端调用。

    2.1.1 MediaPipe-Hands模型

    MediaPipe-Hands[7]模型是高效的手部跟踪解决方案,其使用机器学习从单个帧中推断出手的21个骨骼点。模型共有两个部分组成:手掌检测器与手部骨骼关节标注器。相比于检测面部,手势估计较为复杂,面部图像有大面积高对比区域(如眼睛、嘴巴),而手掌图像无上述高对比特征,故检测难度较高。此外,模型需适应各种大小的手掌(跨度约为20倍),同时还要求能够检测被遮挡和被自遮挡的剩余部分,故使用下述不同的策略来应对上述问题。

    因手掌的轮廓在视频流中较为稳定,故首先对整个图像进行手掌检测,通过定向的手边界框来定位手掌。手掌可以使用正方形边界框来建模[8],因此可将锚点的数量减少3~5倍。将精确裁剪的手掌图像输入至手部骨骼关节标注模型可以较大地减少对数据增广(如旋转、平移和缩放)的需求,并使得整个模型可以将大部分算力用于骨骼关节定位的准确性。在实时跟踪的情况下,以往的方案大多需使用前一帧的标注,进而预测出一个边界框作为当前帧的输入,使模型在每个帧上都进行检测,最终造成性能浪费。新方案仅将检测器应用于第一帧或当手形预测指示手丢失时使用。

    2.1.2 PyQt5框架

    Qt是一组跨平台C++库,其包含的API用于访问现代桌面和移动系统。PyQt5是针对Qtv5版本的一套全面的Python跨平台语言实现。在Python中实现了超过35个扩展模块,每一个PyQt控件都对应一个Qt控件,使得在所有支持Python的平台可以开发如C++平台相同的应用程序。同时,PyQt5还可以嵌入基于C++的应用程序中,以方便不同用户配置的跨平台使用。

    2.2 无接触手势操作解锁系统解决方案

    2.2.1 系统整体流程

    该系统实现了手势识别和手指关节移动的识别。首先,设置相机识别目标,并设定两个单点识别结点,分别为食指和中指的指尖和指根,接着设定相应的识别规则,如图1所示,启动密码解锁时,当手指指尖触碰到设定的九宫格区域附近时,系统会自动记录触碰的结点,若触碰到任意两个结点系统会自动连线,其中触碰距离可以自行设置,图2 为软件运行画面,左图为录入成功,右图为重新输入密码,当触碰距离较大时,触碰灵敏度高,系统判定较为简单,反之同理。为了保证实验者手势密码指令的复杂度,同时保证系统识别手势密码的精度,将系统设置为:任意一个结点只能在当前设置的手势密码中出现一次。换言之,设置的指令结点信息,任意一个九宫格代表的结点只能被识别记录一次。当图案是解锁者想要的结果时可以使用“ok”手势进行确认,此时服务器端的系统会进行判断,或者打开全手掌形成重新录入手势。此外,本作品可以重新录入手势密码,并将密码上传至服务器。为了防止显示保存造成的密码泄露问题,该系统对输入的密码使用AES算法(ECB模式)进行了加密,可以将记录的手势密码录入成功的向量加工成一些看似无意义的字符串。其中,以手势密码录入的数据保存在服务器端的数据结构为列表,但在加密过后变成字符串,如可将[0,3,4,5,8,7,6]加密成1a95cce20408cc2efe5f2651ced8c8d4,其中,列表序列为手指触碰到九宫格的序列。通过对序列加密大幅提高了系统的安全性。为了检验本作品的鲁棒性,设置了一些现实场景,分别是光线充足与光线昏暗,效果分别如图3和图4所示,其中黑色圆点是骨骼结构点,灰色线条为各个骨骼的连线,最终可以看出本系统对于光线具有鲁棒性。

    图1 系统流程图

    图2 软件运行画面,左图为录入成功,右图为重新输入密码

    图3 光线充足的情况

    图4 光线昏暗的情况

    2.2.2 系统手势判断

    3种不同手势示意图如图5所示,服务器端接收客户端视频数据流时会判断用户手掌是否出现,若出现会计算21个手掌各个部位的骨骼节点,如图5(a)所示,其中黑色圆点为计算出的骨骼节点,黑色线条为节点之间的连线,手掌出现在视频中时,节点和连线会跟随手掌实时移动。计算出的21个骨骼节点的位置是以整体视频画面左上角为原点的二维数组,通过数组可以计算骨骼节点之间构成的角度及距离,进而判断用户是否在做系统提前预设好的固定手势。本系统内置了10个不同的手势,列举了如图5(a)的张开手势、图5(b)的“ok”手势、图5(c)的“手枪”手势3种。

    以图5(a)为例,详细介绍系统对手势的判断方法。当人做出张开手势时,四个手指需要伸直且不同手指微微张开,故此时的骨骼节点满足以下条件:0~4号骨骼节点可以分为两组,第1组为0、1、2号节点,第2组为2、3、4号节点,两组分别可以构成以1号点及3号点为角点,其他两条线为边的角。理想情况下,即手指伸直时,两个角应同时为180°,但考虑到不同用户的手势习惯及增加系统鲁棒性,系统中将阈值设定为167°,其中的阈值是通过在不同环境及光线下收集到的同一手势图片相同部位的角度平均值。系统中角度是通过不同组的节点坐标使用余弦定理进行计算,算法步骤如表1所示,通过distance函数计算输入的两个节点间的距离,接着使用余弦定理计算的角度值,其中,极小值min防止出现如分母为0等计算错误。当两个角同时大于167°时,代表此时由0~4号节点构成的拇指为伸直状态,同理可以计算其他手指的状态,当手指均为伸直状态、且手指间的四个角度为25°时,系统将判定手势为张开手势。在系统中除了使用角度判定外,还有不同节点的距离判断,所有的API内部判断遵循责任链的设计原则,通过不同判断方式的组合及阈值设计,实现不同手势的实时判别。

    表1 骨骼结构点角度算法

    图5 不同手势示意图:(a)张开手势;
    (b)“ok”手势;
    (c)“手枪”手势

    选取不同光照条件、不同受试者性别样本,不同拍摄设备进行模型鲁棒性分析。测试环境选取实验室、电梯、室外自然场景。拍摄设备为Spedal 120°广角摄像头,模型运行环境如下:GPU为Nvidia GeForce RTX 2060 (6 GB),CPU为Intel Core i7-10875H八核处理器。视频帧率为30fps左右。在不同场景的各种光照条件下对该系统进行多次测试,结果显示,在阳光充足的条件下正确识别率可以达到98%,但在场景较为昏暗时,正确识别率会有所下降,其表现为无法成功定位到手指坐标。对于失败的情况,经过分析发现原因如下:首先,受肤色的影响,手部在画面光线比较强烈的区域会影响识别结果。其次,由于场景某些物体的影响,若画面中没有手部,那么模型会有极小的概率将物体误判为手。再次,受手部拍摄距离的影响,会造成算法对手势的判断出现错误,建议使用本算法时手部与摄像头的距离在2 m之内效果最好。最后,若手部运动大于一定速度,则可能会出现追踪不到手势的情况。

    疫情时代背景下,按钮和触摸屏等简单、方便的人机交互方式已经成了疫情防控的阻碍。无接触手势操作可以减少病毒交叉感染,保证人民的健康安全。近年来,虽然动态手势识别算法已经取得了长足发展,但仍存在较大的提升空间。该系统通过模拟手机九宫格解锁来说明通过无接触的手势操作可以完成复杂操作,在不同的光线条件及不同场景中准确进行手势追踪和手势识别。但由于该系统的部署方式比较复杂,未来需要对算法及系统整体流程有较为深入的了解才能根据实际的使用场景进行调整。

    猜你喜欢 手部手掌手势 手部皮肤软组织缺损修复的皮瓣选择实用手外科杂志(2022年2期)2022-08-31尺动脉腕上皮支逆行岛状皮瓣修复手部皮肤软组织缺损实用手外科杂志(2022年2期)2022-08-31封闭负压吸引技术联合游离股前外侧穿支皮瓣修复手部大面积软组织缺损实用手外科杂志(2022年2期)2022-08-31挑战!神秘手势红领巾·萌芽(2019年9期)2019-10-09摊开手掌儿童故事画报(2019年12期)2019-01-07手掌上的童话小学生导刊(2018年22期)2018-08-21胜利的手势小学阅读指南·低年级版(2017年6期)2017-06-12把手掌放在画纸上描一描,画出一只考拉吧小溪流(画刊)(2017年1期)2017-03-16认手势说数字数学大世界·小学低年级辅导版(2010年9期)2010-09-08

    推荐访问:手势 解锁 识别

    • 文档大全
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章