APP下载

基于手势传感器的智能人机交互识别系统设计*

2021-06-29王建亮蒙源李芳芳

数字技术与应用 2021年5期
关键词:手势识别率按键

王建亮 蒙源 李芳芳

(1.北京科技大学天津学院,天津 301830;2.天津天狮学院,天津 301700;3.河北省电子信息产品监督检验院,河北石家庄 050071)

0 序言

语言是人与人之间沟通交流的重要形式,但如手势、体态和表情等人类的肢体形态语言,也是常用的交互方式。人与计算机的交流方式较单一且灵活度很低,远不如人与人之间交互的更深入,形式更多样。因此,研究人机交互的多种形式,人体肢体无声语言与有声语言的相结合,对于提高机器视觉识别率,进而拓宽了人机交互接口的多样性和实用性。在人机交互中,“手势”具有直观、形象和生动的显著特点,具有很强的视觉效果,在一定程度上完全可以作为一种交互手段。针对不同的应用目的,手势可以分为操作手势、通信手势、控制手势和对话手势。其中对话手势和通信手势是“手语”最重要的应用,其规律性和结构性很强,非常适用于计算机机器视觉算法平台的实现。基于视觉的手势识别技术,涉及图像处理、模式识别和计算机视觉等研究内容,是当前的热点研究课题[1]。

1 系统的总体设计

当作出一个手势信号时,手势识别传感器芯片将手势信号从给入的视频信号中进行分离,通过建立手势模型来进行手势的分析,包括手势特征和模型参数的分析,然后根据识别的不同手势结果形成不同的手势描述性语言,再通过主控芯片去驱动目标设备进行具体的应用,从而达到手势识别和控制的作用。

基于手势传感器的智能人机交互系统由最小单片机系统、电源模块、传感器模块、串口模块、显示模块等组成。由PAJ7620手势传感器通过不同手势动作的识别,获取待测目标特征原始数据,再对特征原始数据进行识别处理,最后将手势结果存到控制器存储器中,采用IIC接口对原始数据和手势识别的结果进行数据调取,由STM32主控芯片处理和分析,从而来识别不同手势,进而在OLED屏上显示出手势的信息和驱动载体作出不同响应的效果。总体结构如图1 所示。

图1 系统框图Fig.1 System block diagram

2 硬件设计

2.1 主控单元

主控制单元是采用单片机最小电路STM32F103C8T6芯片和相应的外电路组成。该芯片是STM32 系列的一种类型,具有64个引脚和128KB的FLASH,采用了串行输出单线和JTAG接口调试模式,具有很多的优点比如:高性能、低成本、功耗低等,该单片机是增强后的系类单片机类型。本系统采用主控制单元对手势传感器采集来的手势信号进行ADC,并进行片内信号处理便于识别不同的手势,进而控制显示屏把相应手势进行正确显示,还可以驱动载体做出相应的动作[2]。

图2 STM32F103C8T6 单片机Fig.2 STM32F103C8T6 micro controller

2.2 手势传感器模块

PAJ7620手势识别模块是由原相科技(PixArt)公司新推出的一款光学数组式传感器件,它的内部自带有一种集成的特殊LED,该LED里面内部是各种感测器和一些内置集成光源,可以在黑暗或者弱光的环境下仍然保持高度警觉的工作状态,更为强大的是它还支持上、下、左、右、前、后、顺时针旋转、逆时针旋转和挥动的九个手势类型和输出的手势中断和结果[3]。手势识别返回的信号可作为机器人接收的控制信号,手势模块采用IIC接口通信协议,其电路图如图3所示。

图3 手势传感器电路接口Fig.3 Gesture sensor circuit interface

2.3 显示单元

为了让识别结果和效果更佳直观清晰的显示,同时本次设计需要屏幕作为前端输入工具,而数字管不能实现此功能,所以本次显示电路选择的是OLED1602液晶显示屏。该OLED 显示屏和传统的LCD 和CRT 相比具有启动电压低、响应快、主动发光、可折叠、重量轻等多方面优点。

2.4 电源单元

电路输出的电压先经过C1 的滤波,将大部分的交流成分滤除,然后再加到AMS117 芯片构成的滤波电路中。C2的容抗与AMS117芯片构成一个分压电路,因C2的容抗很小,所以对交流成分的分压衰减量很大,达到滤波目的。对于直流电而言,由于C2具有隔直作用,所以AMS117和C2 分压电路对直流不存在分压衰减的作用,这样电压通过AMS117 输出。

2.5 按键电路

按键的设置使用独立按键的方式来实现。?这种按键的突出优点就是它的软件和硬件相对比较简单,易于操作。当按键处于正常状态时,即处于未开机状态时,CPU对应的I/O接口由于内部有上拉电阻,其输入状态为高电平;当某个按键被我们的使用用户按下后,对应的I/O接口由高电平状态转变为低电平状态。我们在系统程序运行时,只需要知道I/O 接口到底是处于什么样的一个状态,我们就可以判断出来到底哪个按键是开的状态以及哪个按键是关闭状态。以此来实现各按键的设置逻辑,其设计电路图如图4 所示。

图4 按键电路Fig.4 Button circuit

3 软件设计

(1)系统运行工作就是对数据的检测和处理,首先各模块会实现初始化管脚信息,这有利于系统的后续操作以及机器自检工作。因为系统不会告诉此时的系统运行到那个阶段了,但是通过编程提示进行相应的人机交互,编译后了解了整个设备的运行情况,随后传感器检测数据并传输到单片机中进行处理,最后由主控单元处理后发送至显示模块上显示出来,以此实现数据的识别与显示[4]。(2)手势识别(GS)测试-通过KEY1按键进入此项测试。实现PAJ7620U2自带8个手势识别的检测,向上(Up)、向下(Down)、向左(Left)、向右(Right)、向前(Forward)、向后(Backward)、顺时针(Clockwise)、逆时针(Counterclockwise)。(3)显示流程开始后,程序开始驱动一个初始化的操作。经过一个延迟后,程序会选择控制显示的开关操作,再经历一个延迟后,启动清屏的操作,并初始化显示的位置,然后在主函数会调用显示的子程序,利用单片机内部的串行接口,接收需要显示的信号,并在OLED设定的显示地址上将向左、向右、向上、向下、向前、向后、顺时针、逆时针等数值显示出来。(4)手势信号采集过程开启一个延迟后,对所有选择的模式、寄存器地址等进行定义,然后发送显示的命令,包括写命令和写数据的命令等;并在数据完成写入显示后打开中断,结束该过程。(5)本次设计采用的是独立按键,键盘的扫描程序启动后,首先进行的是模块的初始化,然后确定有没有按键按下并且判断是哪一个按键。每当检测到确定有键按下后,就需要去除键抖动,并且延时一段时间再进行下一步的检测判断,这样就能够识别出是哪一个键闭合。

图5 手势定义Fig.5 Gesture definition

图6 各个手势注册的数据和地址图Fig.6 Data and address map of each gesture registration

4 实验测试

根据PAJ7620的工作特性,设计了八种手势人机距离由5~30cm手势识别率的实验,每间隔5cm距离各做50次八种不同的手势,分别测试距离对识别结果的影响,测试结果如表1 所示。

表1 手势识别率表Tab.1 Gesture recognition rate table

由表1 可以确认,距离在0~10cm 之间,识别率接近100%;距离在10~25cm之间,表现出个别结果不准确,除去光以及物体移动速度的影响,识别率可以达到60%以上;距离大于25cm,识别率接近0,所以该系统识别最大范围在25cm以内,距离在10cm以内最为准确。

猜你喜欢

手势识别率按键
基于有限状态机的按键检测程序设计
基于类图像处理与向量化的大数据脚本攻击智能检测
挑战!神秘手势
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
V字手势的由来
提升高速公路MTC二次抓拍车牌识别率方案研究
一种多方向导光按键结构设计
高速公路机电日常维护中车牌识别率分析系统的应用
按键的多种状态检测及消抖处理方法
解析某型号手机按键检测程序的缺陷