齐彦甫,陈 以, 陈 辉,刘文滔,林 玲
(桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004)
一种基于坐标变换的手势识别算法及运用
齐彦甫,陈以, 陈辉,刘文滔,林玲
(桂林电子科技大学 电子工程与自动化学院,广西 桂林541004)
摘要:现有的手势识别都是采用空间算法计算手势的空间运动轨迹,模块较多、算法复杂、成本较高;同时对于车载娱乐影音系统而言功能过于繁杂,而且成本高显得华而不实。本文提出了一种基于坐标变换的手势识别算法及其在实际车载娱乐影音系统的运用。此算法主要用于车载娱乐影音系统的手势识别模块,其特点是可迅速准确识别驾驶员的手势状态,使其在不影响驾驶的情况下,更加方便地进行娱乐影音系统的各种操作。
关键词:手势识别;车载娱乐影音系统;二维坐标;最小二乘法
随着汽车保有量的迅速增加,人们对汽车安全的重视程度越来越高。车辆在行驶过程中,驾驶员操作车载GPS、DVD等娱乐系统时,必须腾出手来按键或者触摸HMI界面点击图标,同时还要低头查看操作界面,然后选择所需求的功能,这样在驾驶过程中会不可避免地产生安全隐患,严重者甚至会造成不可挽回的人身财产损失[1-3]。
而针对技术本身而言,现有的手势识别都是采用空间算法计算手势的空间运动轨迹,算法复杂、模块较多、成本较高[4-6]。目前为止, 大多数研究都集中在静态手势识别技术,而动态识别技术不仅要对手势进行跟踪,还要进行识别,其难点主要是手势目标检测和识别[7];同时对于车载娱乐影音系统而言,功能过于繁杂而且成本较高显得华而不实[8]。因此,在保证驾驶员安全驾驶的同时,为方便其对娱乐影音系统的操作,笔者提出了一种基于坐标变换的手势识别算法,并在实际车载娱乐影音系统进行运用。此算法主要用于车载娱乐影音系统的手势识别模块,其特点是可低成本、迅速、准确地识别车主的手势,如接近、离开、左滑、右滑等状态,使驾乘人员在不影响驾驶的情况下,更加方便地进行娱乐影音系统的各种操作。
1系统硬件结构
算法应用于某款车载娱乐影音系统的硬件结构原理图如图1所示。手势识别模块选用3个ISL29004红外传感器,通过感应手势变化触发产生中断,形成负脉冲下降沿信号,然后利用HUB芯片PCA9545将多路中断集成一路输出,采用IIC通信协议将数据传输到ARM9处理器进行处理。
图1 硬件原理框图Fig.1 Block diagram of hardware
2手势识别算法描述
2.1二维坐标系的建立
建立一个二维坐标系:x轴代表水平方向,z轴代表垂直方向,建立这样的坐标系的目的在于可以将手势的动作拟化到坐标系上。x轴可拟化为手势的左滑和右滑,z轴可拟化为手势的接近和离开,具体如图2所示。
图2 二维坐标变换图Fig.2 Two-dimensional coordinate transformation diagram
为方便计算此硬件系统,选用3个红外传感器,可根据距离拟化标尺。其中G1、G2、G3分别代表红外传感器1、2、3的位置;0、1、2相连所绘制的曲线为红外触发中断的阈值;ABC为模拟的手势移动曲线;s为红外传感器的个数。
为提高手势判断精确性,需要尽可能多的数据来进行分析,因此采用定时器来设定采样频率。创建一个线程,然后设定一个定时器,固定频率采样。一旦触发中断,系统定时采样,然后根据算法计算,判断手势动作。
2.2一维数据映射为二维坐标系(x, z)值方法
当中断触发,系统定时采集红外数据。如图3所示,以当前手势在B点为例,采样点数据有3个,即传感器1值为m、传感器2值为n、传感器3值为p。设计算法如下:
(1)为方便等分换算, 将z轴G1G4段拟化为0~255,x轴G1G3段拟化为0~100坐标值的二维坐标系;
图3 二维坐标变换原理图Fig.3 Two-dimensional coordinate transformation principle diagram
(2)针对x轴的映射关系:
步骤1:观测红外值,有n>m>p(m、 n、 p为对应当前红外传感器的值);
步骤2:将手势B定位在G1G2段范围(忽略传感器G3的影响);
步骤3:将手势B点映射到x轴靠近G2;
步骤4:手势B点映射到x轴的值为50n/(m+n)。n的数值是红外传感器G2输出的数值,由于传感器数值与感应距离成反比,将G1G2线段分成m+n等份,每份的值为1/(m+n), B点映射到x轴上的点为H, G1H段映射单位值为n/(m+n), HG2映射单位值为m/(m+n), 则B点映射到x轴的值为 G1H=50n/(m+n)。
(3)针对z轴的映射关系:
步骤1:取最大红外传感器的值n;
步骤2:手势B点映射到z轴的值为100(1-n/255)。 由于传感器数值与z轴感应距离成反比,将z轴的有效区域G1G4段255等分, 每份的值为1/255, B点映射到z轴上的点为S, 映射G1S段的单位值为(1-n/255), 则B点映射到z轴的值为100(1-n/255)。
3手势识别判断算法优化
3.1使用最小二乘法优化算法
考虑到红外传感器值浮动偏差,单纯比较相邻两组数据的x、z轴的值很可能出现误报,因此拟采用多组数据分析,然后通过最小二乘法将多组数据归一化为最接近的一条直线,通过该直线的斜率来判断手势状态。
最小二乘法拟化直线原理[7]:设x和y之间的函数关系为y=bx+a。式中有2个待定参数, b代表斜率, a代表截距。 对于等精度测量所得到的N组数据(xi, yi), 其中: i=1, 2, …, N; xi(采样次数)值被认为是准确的, 所有的误差只联系着yi(x, z轴的值)。 利用最小二乘法把观测数据拟合为直线。
用最小二乘法估计参数时, 要求观测值yi的偏差的加权平方和为最小。 对于等精度观测值的直线拟合来说, 可使下式的值最小:
分别对上式a、 b求偏导,
整理后得到方程组:
方程组第一式乘以∑xi, 第二式乘以N, 然后相减,得
便可求得直线参数a和b的最佳估计值:
然后根据斜率b的大小来判断滑动趋势。
中断触发,系统定时采集一次红外数据。假设采样16次为1组数据,以x轴为例,建立与次数相关的二维坐标系,如图4所示。
图4 最小二乘法直线拟化Fig.4 Least squares method of line fitting
映射到x轴的值随着采样次数的增大而变化。采用最小二乘法将采集到的16组数据归化为最接近的一条直线y=bx+a,通过斜率b来判断手势状态:当b>0时,自左向右滑动;当b<0时,自右向左滑动。
3.2软件算法原理及实际运用说明
软件算法原理如图5所示。其中传感器采集到相关数据,然后经过此算法的处理,最终得出用户需要输入的准确命令,传给HMI作相应的界面逻辑跳转处理。
由于此项目硬件只采用3个传感器,故x轴变量与采样时的值不对应,需要建立映射关系,从右向左滑动时x轴的值变小,但实际采样其数据是触发哪个传感器, 则相应的x值就出现峰值,其他的两个传感器x值很小。
图5 软件算法原理Fig.5 Software algorithm schematic diagram
在实际运用中需要对此算法作如下说明:(1)此算法建模方法适用于红外传感器在车机上等距安装的机型;(2)建模坐标系与实物有一定差距,建模时忽略红外传感器安装位置与车机外沿的一段距离;(3)经过实车测试,在坐标系外围的区域感应效果不明显,考虑忽略,但不影响后续手势数据分析,如z轴左侧靠近G1和G3右侧会有小部分区域有感应,设计算法时会采用优化方法处理;(4)经过实车测试,2个红外传感器覆盖到的区域感应距离相应会有一定的叠加,实时传感器数值会相对大一些,但效果不太明显,设计算法时暂不考虑; (5)供应商提供的红外芯片资料有提及该型号芯片对外界光源影响不太敏感,可忽略外界环境对数值影响。
4软件设计
4.1系统软件架构框图
本文提出的手势识别算法运用的系统软件架构框图如图6所示。 手势识别模块采用3层驱动模型: APP、 MDD和PDD。 其中APP层: 主要是提供上层HMI应用接口, HMI通过相关的宏选择开启手势识别功能; MDD层: 负责相关逻辑处理; PDD层: 负责处理数据转化和相关算法优化并封装成固定的接口供HMI调用, 同时也负责硬件相关配置, 如HUB芯片寄存器、 ISL29044A芯片寄存器等。
图6 系统软件架构Fig.6 System software architecture diagram
4.2系统用例图
手势识别算法运用的系统用例图如图7所示。当用户上下左右前后滑动手势的时候,手势识别模块能准确的识别到用户当前的手势,并通过相应的消息机制通知应用层作相应的动作响应。
图7 系统用例图Fig.7 System use case diagram
4.3手势识别基本逻辑
HMI与MW(中间件)交互流程图如图8所示。当手快速靠近传感器时, 传感器将触发一次中断致使HUB产生一个脉冲,然后通过IIC将采样数据传输给ARM进行算法处理。
图8 交互流程图Fig.8 HMI and MW interaction flow diagram
4.4手势识别固定接口描述
APP层固定接口Gesture_Control提供给HMI几个固定接口函数, 包含: GESTURE_CTL_START开始; GESTURE_CTL_EXIT退出; GESTURE_CTL_SET_CALLBACK_FUNCTION回调; GESTURE_GET_CLOSE靠近; GESTURE_GET_AWAY离开;GESTURE_MOVE_LEFT左滑;GESTURE_MOVE_RIGHT右滑; GESTURE_MOVE_UP上滑;GESTURE_MOVE_DOWN下滑。
4.5系统相关类图
实际编码运用中编写的相关类见图9。 图中是对系统相关类图的介绍, 主要是系统实现所定义的函数以及函数接口的依赖, 其中主要有手势函数的定义以及其对应的构造函数和析构函数, 手势管理函数主要是对手势的接近、 离开、 左滑、 右滑等状态进行判断并作出相应的处理。
图9 相关类图Fig.9 Related class diagram
4.6手势识别总逻辑流程图
综上软件设计,整理出如图10所示的详细的运用此算法的软件逻辑流程图。
图10 手势识别软件设计详细逻辑流程Fig.10 Detailed logic flow chart gesture recognition software design
5结束语
本文算法目前主要用于车载娱乐影音系统的手势识别模块,其特点是可低成本迅速准确地识别驾驶员的手势如接近、离开、左滑、右滑等状态,使得驾驶员在不影响驾驶的情况下更加方便地进行娱乐影音系统的各种操作。从某大型汽车电子公司的售后跟踪及反馈的数据看,此算法的运用受到了客户的一致好评。
参考文献:
[1]朱继玉, 王西颖, 王威信, 等. 基于结构分析的手势识别[J]. 计算机学报:自然科学版, 2006, 29(12): 2130-2137.
[2]周航, 阮秋琦. 基于表现特征的手势识别[J]. 广西师范大学学报:自然科学版, 2003, 2l(1):25-30.
[3]葛元, 郭兴伟, 王林泉. 傅立叶描述子在手势识别中的应用[J]. 计算机应用与软件, 2005, 22(6): 12-13,92.
[4]路凯, 李小坚. 手势识别研究概述[J]. 西安文理学院学报:自然科学版, 2006, 9(2): 91-94.
[5]张运德. 手势识别技术的研究及应用[D]. 合肥: 安徽大学, 2013.
[6]李文生,解梅,邓春健.基于多点手势识别的人机交互技术框架[J].计算机工程与设计, 2011,32(6):2129-2133.
[7]冯志全, 蒋彦. 手势识别研究综述[J]. 济南大学学报:自然科学版, 2013, 27(4): 336-341.
[8]孙丽娟, 张立材, 郭彩龙. 基于视觉的手势识别技术[J]. 计算机技术与发展, 2008, 18(10): 214-216,221.
文章编号:1674-9057(2016)02-0395-07
doi:10.3969/j.issn.1674-9057.2016.02.035
收稿日期:2014-11-08
基金项目:广西自然科学基金项目(2015GXNSFAA139299)
作者简介:齐彦甫(1988—),男,硕士,研究方向:精密测量与智能控制。
通讯作者:陈以,教授,glcy1975@guet.edu.cn。
中图分类号:TP368.1
文献标志码:A
Gesture recognition algorithm and application based on coordinate transformation
QI Yan-fu,CHEN Yi,CHEN Hui,LIU Wen-tao,LIN Ling
(School of Electronic Engineering and Automation,Guilin University of Electronic Technology, Guilin 541004,China)
Abstract:The present gesture recognition algorithms usually computes the space motion trajectory of gesture in 3D space, it includes not only many modules and algorithm complexity but also high cost. The function is too complicated and appears to be flashy without substance for in-car entertainment systems. This paper proposes a gesture recognition algorithm based on coordinate transformation and application of in-car entertainment systems. This algorithm is mainly used for gesture recognition module of in-car entertainment systems. The gesture state of the driver can be quickly and accurately identified without affecting driving and make various operations of entertainment system more convenient.
Key words:gesture recognition; in-car entertainment systems; two dimensional coordinate; the least square method
引文格式:齐彦甫,陈以, 陈辉,等.一种基于坐标变换的手势识别算法及运用[J].桂林理工大学学报,2016,36(2):395-401.