基于静态手势识别的智能交互系统研究

2024-02-03 04:55王育阳古玉锋肖子叶陈孟伟
技术与市场 2024年1期
关键词:手势终端界面

王育阳,古玉锋,肖子叶,陈孟伟

长安大学道路施工技术与装备教育部重点实验室,陕西 西安 710064

0 引言

随着物联网、深度学习等技术的快速兴起与应用,车辆逐渐向智能化、网联化方向发展,车载人机交互系统的智能化是实现车辆智能化的关键一环,对加快实现自动驾驶、发展智能交通具有重要意义[1]。手势作为信息传递最自然的方式之一,在人机交互领域受到广泛关注[2-3],但当前手势识别应用存在普及程度不高、识别精度较低等问题,此外,基于手工特征提取的传统手势识别模型易受客观因素如光照、遮挡和复杂背景等干扰,导致手势识别较为困难[4]。因此,本文搭建了基于SSDLite-MobileNetV2的离线手势识别智能交互系统,模型通过离线识别用户手势指令,即可完成对车辆行进方向、加减速、制动等功能以及车载多媒体、车载电器等设备的控制,提高了交互的便捷性和人性化,具有广阔的应用前景。

1 智能交互系统架构

本文设计的车辆手势识别智能交互系统框图如图1所示。静态手势识别算法采用基于SSDLite-MobileNetV2的目标检测模型搭建,并使用Light-HaGRID公开手势数据集进行训练和测试。将训练完成后的手势识别算法部署在嵌入式设备上,输入用户手势图片进行正向推理,将输出的手势类别及位置结果转化为控制指令并发送给智能交互终端,智能交互终端响应用户指令完成车载多媒体设备的控制或利用STM32完成对车辆动力系统、制动系统、车载电器(灯光、空调)等设备的调整。其中,智能交互终端界面软件基于Qt开发,用于显示车辆当前状态信息,用户可通过在智能交互终端上触控实现上述功能的控制。

图1 智能人机交互系统框图

2 基于SSDLite-MobileNetV2的手势识别算法

2.1 手势数据集介绍

本次算法训练及验证所用数据集源自大型公开手势数据集HaGRID[5],该数据集中的手势用于设计设备控制系统和提供符号学功能,本文使用HaGRID子集Light-HaGRID进行训练,该子集包含13 000张彩色图片,手势背景复杂多样,数据集所含手势类型及示例如图2所示,其中包括13种日常生活常见手势,每种类型手势共1 000张,此外还包含1个名为no-gesture的自然手部动作类,训练与测试集数量比例为7:3。为提高深度学习模型的泛化性,本文采用随机裁剪、水平翻转和色调变换等数据增强手段。

图2 数据集中的手势类型及示例

2.2 SSDLite-MobileNetV2模型结构

SSDLite-MobileNetV2算法是目前主流的单阶段目标检测算法之一,具有识别精度高、识别速度快等优点,由前端网络、附加提取网络、回归检测头和损失函数等部分组成。其核心思想是采用多尺度的特征图对不同大小的目标进行检测,通过前端网络MobileNetV2[6]结合额外特征提取层,自底向上生成包含不同语义信息的预测特征图。浅层特征图感受野较小,用于检测小目标;深层特征图感受野较大,用于检测大目标。获得不同尺度的预测特征图后,分别在每个特征图上逐点生成不同尺寸、宽高比的先验边界框,随后将特征图送入目标预测层,对每个边界框进行softmax分类及边界框参数回归,通过边界框回归参数将边界框调整到目标真实边界附近,最后通过非极大值抑制算法(NMS)滤除重合度较高的检测框,从而实现目标检测。

与单发多边框检测(single shot multibox detector,SSD)算法[7]不同的是,本文使用的算法利用MobileNetV2替换VGG16前端网络,在降低模型规模的同时,有效提高了模型的推理速度,使其更好地在嵌入式、移动端设备上运行。同时,本文算法使用深度可分离卷积构建检测头结构,对于3×3卷积来说,理论上使用深度可分离卷积的参数量与计算量可以达到普通卷积的1/9,极大地降低了模型的复杂度[8]。SSDLite-MobileNetV2网络结构如图3所示。

图3 SSDLite-MobileNetV2模型结构

2.3 模型训练过程及结果

本文采用PyTorch深度学习框架搭建SSD Lite-MobileNetV2网络,试验计算机CPU型号为Intel® Core(TM) i5-11260H,GPU型号为NVIDIA GeForce RTX3050。利用CUDA11.2加速训练,并使用PyCharm软件平台完成程序编写。训练过程采用Warm-up热身训练方式,在网络训练初期将学习率从较小值逐渐增大到预设值,可防止出现因训练初期学习率设置过大而造成的训练不稳定现象。batch_size大小设置为16,学习率采用等间隔调整策略,初始学习率设为0.001,采用SGD算法更新网络参数,动量参数设为0.9,权重衰减设为0.000 5。

训练过程的精度及学习率曲线如图4所示,精度曲线如图5所示。由图可知,训练时模型平均精度(mAP)随损失的下降而逐步上升至0.93附近,模型收敛性较好。此外,为直观验证模型的可靠性及精度,本文将室外不同场景下采集的用户图像输入网络进行预测,结果如图6所示。可以看出,该手势识别算法对具有单一、复杂背景的不同手势,均达到了99%以上识别精度和精确的定位效果,模型具有良好的泛化性能,可保证在复杂背景下手势识别的准确性。

图4 训练损失及学习率曲线

图5 训练过程精度曲线

图6 复杂背景手势图像识别效果

3 智能交互终端界面软件开发

人机交互界面(human-machine interface,HMI)可有效提高用户交互效率和系统的灵活性[9],本文选择图形化UI界面设计,与传统的命令行、文字界面相比,图形化界面具有直观易懂、用户友好、可视化展示、交互性强等优点[10],能够更好地满足用户的需求,提供更好地交互体验,用户可通过触控或语音实现不同功能的控制。

本文基于Qt平台完成上位机程序开发及人机交互界面设计,并集成至计算机上,该软件界面主要包括用户登录、行车控制、界面设置、影音娱乐、车辆状态显示、历史数据查询等模块,图7为智能交互终端界面的软件架构。

图7 智能交互终端界面软件架构

1)用户登录模块。通过验证操作者用户名和密码完成用户身份验证和权限分配,防止非专业操作人员非法操作车辆,同时记录用户每次操作行为并上传至数据库,方便后续检查和维修,登录成功后进入主界面。该人机交互终端主界面如图8所示。

图8 人机交互终端主界面

2)行车控制模块。用于控制车辆的行驶和车载电器设备,包括加速、刹车、换向等行车控制功能和灯光空调开启、模式切换等功能。用户可以通过界面上的按钮或语音来控制车辆的运动。

3)界面设置。用于设置人机交互界面的主题、背景及字体,同时用于配置与车辆整车控制器的连接方式。

4)影音娱乐模块。该模块提供播放音乐、视频观看和其他娱乐功能。用户可以通过界面上的控制按钮来选择和播放音乐、视频等媒体内容。

5)车辆状态显示模块。该模块用于实时显示车辆的各项状态信息,包括电机转速、车载电器状态等。用户可以通过界面上的图表、数字或指示灯来查看车辆的当前状态,界面如图9所示。

图9 车辆状态显示界面

6)历史数据查询。用户登录云端数据库可下载车辆历史操作信息、状态信息等车辆的历史数据记录,如车辆速度、电机转速、行驶轨迹等,用户可通过选择日期、时间范围等条件进行数据查询和分析。

4 仿真验证

交互系统由Jetson Nano、智能交互终端、STM32组成。首先利用摄像头实时采集用户交互图像,其次将图像缩放并转成Tensor格式后送入部署在Jetson Nano的手势识别算法进行特征提取、手势类型识别及位置坐标输出,最后将检测结果转化为控制指令,通过USB数据线上传至交互终端完成手势交互控制。

仿真试验过程如图10所示:用户通过手势完成了灯光的控制。通过试验可知,利用该交互系统进行手势交互,每次交互和系统响应平均时间约0.1 s,部署在Jetson Nano上的手势识别算法能够准确快速地识别当前手势及其位置,并发送相应控制指令,且影音娱乐应用、被控设备能够按照用户操作意图快速响应并执行相应动作,控制过程通信状况稳定,系统工作状态正常,实现了预期的手势交互目标。

图10 仿真试验

5 结论

本文设计的手势识别智能人机交互系统以深度学习和Qt集成开发环境为平台,实现了手势凌空控制,用户无需与按键产生视觉交互即可完成控制,提高了交互效率及其便捷性,通过SSDLite-MobileNetV2模型检测手势,识别精度达99%,同时模型对不同环境背景下的手势均具有较好的识别效果。此外,上述交互系统不仅可用于车辆领域,而且在工业控制、智能家居等领域具有广阔的应用前景。

在后续的研究中,将通过扩充手势、采用动态手势与静态手势相结合的方式,进一步丰富车载场景下的手势识别内容,提高人机交互系统的性能。

猜你喜欢
手势终端界面
X美术馆首届三年展:“终端〉_How Do We Begin?”
国企党委前置研究的“四个界面”
通信控制服务器(CCS)维护终端的设计与实现
挑战!神秘手势
V字手势的由来
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
胜利的手势
多功能北斗船载终端的开发应用
人机交互界面发展趋势研究
手机界面中图形符号的发展趋向