罗昆 王子华 黄祖邦
摘要:随着无人驾驶技术的迅速发展,交警手势识别逐渐成为了交通领域的紧迫需求。因肢体运动的任意性都给手势识别带来了巨大挑战,针对交警的指挥手势检测与识别的问题,对交警手势识别的动作检测和识别技术进行了深入研究,并且基于Python的OpenCV库函数和目标检测算法以及BP神经网络算法实现了智能交警手势识别系统。实验表明,系统对交警手势的识别具有较高的识别率,能够很好地处理采光环境、手势动作速度不一致和手势姿态不同等带来的识别问题,具有较好的应用前景。
关键词: 无人驾驶; 交警手势; BP网络; 手势检测; 手势识别
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2019)09-0209-03
1 前言
随着现代科技的迅猛发展,机器视觉技术、人体行为识别系统在交通领域的应用面越来越广。由于无人驾驶汽车不仅能大幅度缓解交通拥堵,降低公共道路上车祸的发生频率,还能大幅提高燃油效率、减少温室气体的排放,因此使得无人驾驶汽车成为近年来的研究热点[1]。随着大量的汽车企业及科技公司加入汽车智能化、自动化的研究行列,使的未来无人驾驶汽车的普及成为可能。
在日常交通生活中,交通指挥除了靠固定式的交通信号来指挥外,交警手势指挥也是交通指挥的基本方式之一。当道路上遇到特殊紧急的交通事故或者碰到恶劣的天气环境时,仅靠交通信号灯来调度车辆已然无法满足要求。因此,需要经验丰富的交警们对现场的交通情况进行合理灵活的疏导[2]。然而,无人驾驶汽车现如今已逐步的走进了人们的视野,无人驾驶汽车不仅除了需要能够识别固定式的交通信号,还需对交警灵活多变的手势快速的作出反应和处理[2]。在无人驾驶技术和智能辅助驾驶系统日益成熟的今天,对于智能交警手势识别技术的研究有重要的应用价值。对人工智能领域的发展、缓解城市交通压力、便捷现代人生活具有重要的研究意义[3]。
2 手势图像预处理和特征提取
在交警手势检测和识别的研究过程中,采用三种不同的方式对交警指挥手势进行检测,并在最好的交警手势检测效果的基础上采用PCA特征学习算法来实现交警手势的特征提取。
2.1 手势样本的预处理
获取的手势视频或图像在产生和传输过程中容易受设备性能差异或外部环境以及各种噪声等客观因素的影响,导致图像的质量将难以达到正常识别的标准。因此,进行手势识别处理前必须要先对手势视频或图像进行预处理。图像预处理的流程主要包括灰度处理、归一化处理、二值化处理以及降噪处理等。其具体步骤为:原始图像首先通过灰度处理转变为灰度图像,并对其归一化,然后采用二值化处理使图像的背景和前景相对分离,最后利用灰度拉伸增加目标图像的前景和背景的对比程度。然而,经过前面一系列的处理后发现,处理后的图像中会存在大量的噪点,此时将需要对其进行降噪处理,降噪主要采用平滑滤波和阈值调节相结合的方式来进行,如此便获得了经过噪点抑制和归一化处理的二值图像。
2.2 PCA特征提取
主成分分析也叫主分量分析,其利用降维的方式将多个指标转化为的少数几个综合指标。这些综合指标最大化的描述了原指标的大部分信息,且所含信息相互独立[4]。采用该方法可大幅降低样本间的相关性和数据冗余,其基本思想是将一个矩阵中的样本数据投影到一个新的空间中去。若将矩陣拆解为一些向量和系数的线性组合,且这些组合满足线性无关的原则,则包含重要特征最多的向量可作为主成分方向,即数据的主轴方向。由于PCA具有算法简单计算量小,且易于实现等优点,因此它的应用场景非常广泛。
3 手势检测技术
人们经常会使用高速摄像机来记录目标物体在不同时刻的运动信息。而运动目标检测是利用目标检测算法将我们感兴趣的目标信息从视频或图片中分离出来的一种技术。常用的运动目标检测方法有三种,其中主要包括背景估计的方法、基于差分法的方法和基于光流法的方法[5][6]。
(1)背景减除法是通过对图像中的所选择的背景模型和帧序列信息进行比较,其中背景模型是为了反映目标元素所处环境下的背景信息[7]。然而这种检测方法的局限性比较大,在周围环境变化幅度较小的情况下才适用于该算法。
(2)帧间差分法是通过图像灰度值变化来锁定运动物体的位置,其原理是将检测范围缩小到肢体运动的区域,帧间差分法通过像素点的时间差分,提取阈值,检测范围锁定在两到三帧的图像内[7]。
(3)光流法一般用来检测图像在空间上的瞬时速度,并且通过它还能检测出物体在运动区域内图像灰度值的变化。图像在进行图像灰度二值化处理后都能基于灰度值之间的相关性和时间的变化来确定每个像素点的位置信息。
4 基于BP神经网络算法的手势识别技术
20世纪80年代中期,经过D.E.Rumelhart和J.L.Mc Celland及其研究小组的共同努力下研究并设计出来了BP(Back Propagation)网络,解决了多层神经网络隐含层连接权学习问题,并在数学上给出了完整推导。人们把采用这种算法进行误差校正的多层前馈网络称为BP网络[8]。BP网络即反向传播神经网络,它是一种非常有效的多层神经网络的学习方法,其主要特点是信号向前传递,误差向后传播,通过大量的训练和学习能不断优化网络中各神经元节点间的权重值,使得网络逐渐适应环境的需要,让网络的真实输出尽可能逼近预期输出,从而达到训练的目的。由于BP网络具有算法成熟、结构简单以及精确寻优等优点,使得其广泛应用于图像分类、数据压缩、模式识别、数学分析与预测等领域。BP网络主要由输入节点、输出节点以及一层或多层的隐含节点构成。图1是一个典型的多层神经网络。输出层的传递函数一般需要通过输入和输出的映射关系来进行确定,由该映射关系可以确定传递函数是线性还是非线性的。隐含层则通常情况下都是非线性函数。
在采用BP神经网络进行手势识别前,首先要先将原始图像或手势视频样本通过前文提到的手势检测算法,分割出交警指挥手势的特征,然后将分割出来的特征向量输入到BP网络模型中进行样本训练,其中手势特征向量的维数与网络中输入层的神经元个数是相等的。最后将手势特征与模板数据库中的手势进行对比,从而识别出与该图像所对应的交警指挥手势。
基于BP神经网络的手势识别算法详细流程如下:
(1)预先设定好训练模型的参数。其主要包含各层神经元数量、误差精度、最大训练次数、学习率等,同时将各层节点的权值设定为0~1内的随机数。
(2)将挑选好的样本输入到手势检测的模型中,经模型提取后得到手势样本的特征向量,最后将其特征向量输入到神经网络中。
(3)循环迭代训练输入到网络中的特征向量,如果训练次数多于预设次数或者误差函数比预设误差精度小,则终止训练。
(4)网络训练完成后,将从待测手势中获取到的特征向量重新输入到训练后的网络中进行识别。
5 交警指挥手势识别系统的设计与实现
该系统由手势在线识别系统和离线学习系统两大系统组成,两个系统分别负责不同的功能。系统主要由样本上传、样本预处理、手势特征采集、样本训练、手势识别等功能模块组成。基于前文提出的手势检测、BP神经网络、ELM极限学习机等方法,开发了一套智能交警手势识别系统,系统以WEB网页的形式呈现。该系统整体架构如图3所示。
5.1 交警手势在线识别系统的实现
交警手势在线识别系统主要给用户提供视频样本手势识别的功能。其具体流程如图4所示。用户将采集好的样本通过系统的WEB端程序上传到手势在线识别系统中进行训练和识别。在训练之前需要对样本进行预处理,然后将预处理得到的二值化图像采取动态手势检测算法,将运动的手势参数从视频中提取出来,再结合PCA特征提取技术得到手势特征,最后将手势特征导入到BP网络或极限学习机中进行训练和识别。交警在进行交通指挥时,若处于摄像头的拍摄区域,摄像头捕捉到的视频会通过手势检测算法将交警的指挥动作从视频序列中分离出来,为手势识别做准备。而手势识别主要是将前面检测到的运动的手势参数存储到数据库中,然后与标准的交警手势库的动作参数进行比对,最后获得识别结果。
5.2 离线学习系统的实现
离线学习系统,由于需要对大量的样本进行学习训练,需要耗费较多的时间,所以不适合设计成在线系统。只能通过定期增加大量新的交警手势样本,让离线学习系统进行学习,将学习后的BP神经网络和极限学习机得到的网络结构参数,同步给在线学习系统的BP神经网络和极限学习机检测系统,以此不断提高手势识别的能力。
离线学习系统具体流程如下:
(1)首先收集大量手势样本,用于离线系统的学习训练。
(2)通过前文的图像预处理方法,将这些样本文件转换成二值化图像,如图5所示。
(3)将步骤(2)得到的二值化图像通过手势特征采集系统提取每个二值化图像的特征,并保存在数据库中,如图6所示。
(4)将步骤(3)得到的样本特征库用于训练BP神经网络和极限学习机,并得到训练后的BP神经网络和极限学习机的结构参数,将这些离线学习得到的参数更新到同步到在线手势识别系统中。如此便完成一轮交警手势识别系统的学习升级。每次的学习训练,都能逐渐提高交警手势识别系统的准确度。
5.3 系统功能演示
该系统的功能主要包括:系统登录、样本上传检测、在线识别、离线学习、识别结果反馈、实验日志等功能。系统功能主界面如图7所示。通过点击“本地上传”按钮,将交警的手势测试视频上传到系统中,或者在输入框中粘贴网络视频的URL链接,作为测试样本来源。视频上传完成后,点击“检测按钮”,系统会提示“手势检测中,请耐心等待!”。手势识别完成后,系统将自动匹配并锁定下方相应的交警标准手势库的手势缩略图,从而完成手势识别结果的定位和反馈,如下图所示。
每次系统进行手势检测和识别都会生成实验日志,实验日志记录了管理员的每一次的操作记录以及系统识别结果记录的生成,如下图8所示。
6 结论
随着现代科技的迅速发展,机器视觉技术在交通领域的应用面越来越广,智能驾驶技术也逐渐进入了人们的生活视野。交警手势识别技术应用于无人驾驶领域不仅能给交通管理部门提供极大的便利,还能为无人驾驶技术提供强大的功能支持。
文章中对交警手势识别的手势检测和识别技术进行了深入研究,并且基于Python的OpenCV库函数和手势检测以及BP神经网络算法实现了智能交警手势识别系统。针对交警的指挥手势识别的问题,在经过深入的研究和探索后,选取了神经网络算法作为交警手势识别的主要研究方向,并实现了基于BP神经网络的手势识别算法。经系统测试后发现,该算法对交警手势的识别具有较高识别率,能够很好地处理采光环境、手势动作速度不一致和手势姿态不同等带来的识别问题。该智能交警手势识别系统可高效、智能、动态地识别交警手势,为今后无人驾驶技术的普及提供了强大的功能支撑,将有利于人工智能的发展,为人们的生活提供了极大的便利,具有很好的应用前景。
参考文献:
[1] 刘丽,赵晓峰.给发动机叶片穿上“保护衣”[N].科技日报,2014-03-13(007).
[2] 常津津,罗兵,杨锐,等.基于深度学习的交警指挥手势识别[J].五邑大学学报(自然科学版),2018, 32(02):38-44+66.
[3] 张冰.无线车载网链路层HCCA策略优化及服务质量研究[D].天津大学,2017.
[4] 詹小孟.人脸表情识别关键技术研究[D].西安电子科技大学,2011.
[5] 李颖晶.基于全方位视觉的运动目标检测和跟踪方法研究[D].哈尔滨工程大學,2012.
[6] 周振.基于Kinect深度图像的手势识别算法研究[D].湖南大学,2015.
[7] 胡建强.复杂背景下动态手势跟踪算法研究[D].兰州理工大学,2010.
[8] 冯桐.基于神经网络的手势识别研究[D].北京理工大学,2015.
【通联编辑:代影】