广东石油化工学院电子信息工程学院 冼煜峰 汤 杰 马远佳
手语是一种听力障碍或者无法言语的人互相交流的一种手势语言,是通过手型变化来传达信息以取代有声语言信息从而完成交际交流的重要形式。我国目前手语翻译职业化刚刚起步,翻译人员匮乏,尚无法满足市场需求,故以采用信息技术便利聋哑人群的手语识别相关技术研究变得愈发重要与迫切。而本项目是综合深度学习、计算机视觉等新型技术开发的一套基于卷积神经网络的手语孤立词翻译系统。在Android系统平台下实现静态手语翻译,人机手语交互等功能。
近来的全国人口普查统计表面,全国大约存在2070万听障人士,包括重听(相对聋人来说,是存在残余的听力)、弱听引申状况等。根据世界银行的统计,目前全世界有超过10亿人、大概15%的比例为残疾人,而残疾人市场也是世界上服务需求确实最大的市场之一。本项目正是基于上述情况,构思设计出一款基于深度学习的手语识别应用,本项目的研发产品主要针对听力受损人士购物、与健全人交友,后期会针对会对本项目研发的应用的体验情况进行调研,并进行相应的优化和改进。本项目主要是针对计算机视觉市场。根据去年夏天美国劳工部的一份年度报告显示,2016年残疾人的失业率约为10.5%,而健全人士的失业率却只有为4.6%。同时只有大约十分之一的残疾人能够得到辅助性产品的帮助。 为此我们针对这些方面,设计出一款基于深度学习的手语识别应用。本项目主要运用了“计算机视觉”、“手语翻译”和“卷积神经网络”等相关技术,从动作、视觉和听觉三方面与用户进行人机交互,实现语音翻译手语、手语翻译文字等功能,目标是提供人性化、精确化以及智能化的手语翻译系统。
手语识别是一个在计算机视觉领域里面比较有难度的课题,传统的手语识别是大多是采用某些智能穿戴传感设备以及3D体感摄影机(如:Kinect)来进行数据采集。但随着深度学习在计算机视觉领域的广泛应用,普通的摄像头(如手机自带的摄像头)开始逐渐成为了计算机视觉识别的主要采集工具。而本项目便是基于深度学习中的卷积神经网络,利用Android手机自带的摄像头采集数据,进行手语孤立词的识别,实现简单的手语翻译系统。
卷积神经网络(CNN)作为深度神经网络的一种,其适合于处理图像识别、信号处理等数学信号之间的样本操作,被广泛应用于计算机视觉领域中的识别与认知。本项目采集的手语信息属于视频信息,如果利用传统的二维卷积神经网络(2DCNN)对视频信息进行操作的话,一般是对视频信息中的关键帧图像利用卷积来进行单帧图像信息的识别,但是这种识别方法缺少考虑到时间维度中的帧间运动信息,而手语信息大多数是连续的一种手势动作,因此若使用2DCNN则可能导致系统识别实时性不强。
所以为了有效的分析结合手语视频中的运动信息,可以在CNN卷积层中执行三维卷积核操作,构建三维卷积神经网络(3DCNN)架构,以便捕获空间维度和时间维度的特征信息。3D卷积输入是在三维空间的宽度维度Weight、高度维度Height以及一个与2D卷积不同的额外的深度维度Depth,该架构可以捕获多个视频关键帧的时间与空间特征,生成多信息通道从而可整合为运动特征信息,作为手语视频信息的最终特征表示。
TLD(Tracking-Learning-Detection)跟踪学习检测算法是一种单目标长时间跟踪算法,它是将传统的跟踪算法与检测算法相结合的一种算法,常用于解决目标在被跟踪过程中发生部分遮挡或消失等问题。由于系统观测只能从正面进行手语观测,而手语手势中有许多动作会产生手部的中包括手指的遮挡与重叠,采用TLD算法时在跟踪模块中如果发生手部区域在摄像头视野中消失将可能造成跟踪失败,并由算法的检测模版根据以往检测和学习到的目标模型,对视频帧进行全局搜索以定位手部目标可能出现的区域。
本项目系统将使用Android系统APP应用程序作为客户端实现图像获取及其图像预处理功能。在用户启动APP后调用系统摄像头拍摄手语者手语动作,将这些手势图片通过使用OpenCV开源计算机视觉库框架进行图像预处理。其中预处理操作包含图像分割、手势肤色检测、图像二值化和形态学分析等步骤。
图像分割作为图像预处理的第一步,需要提取出人体区域去除非目标区域,进而提取出手势区域。本项目将采用基于HSV彩色空间检测手部肤色来实现静态手语手部区域的提取,但在摄像头采集信息时会采集到人脸部分,由于人脸与人手肤色一致,会造成对手势区域检测位置的干扰,因此需要进行人脸识别并将其排除。关于人脸识别,本项目采用的是OpenCV中的人脸检测库,通过Haar特征检测实现对人脸信息的检测,并将其排除在图像信息中,实现精准的手势区域识别。并且由于系统处理的是视频信息,视频信息表现为30-180帧的图像,在数据处理中必须要提取关键帧,而本项目采用了SURF加速稳健特征算法来进行特征匹配实现提取关键帧。SURF算法是一种改进型的SIFT算法,加入构建了Hessian矩阵,实现更高效的特征提取与描述。
在实际中的视频图像数据采集的过程中,需要考虑到多种噪声影响导致的图像信息不稳定,如光照等,为了去除噪声信息的干扰,需要进行图像的区域增强,降低干扰,所以在图像预处理要进行图像平滑处理。本项目选用的图像平滑方法是基于均值漂移滤波(Mean Shift Filter)算法。均值漂移滤波是一种对空间域区域处理的图像平滑滤波算法,使任意一点的像素值,都是周围N×M个像素值的均值,常用于图像滤波与图像平滑等场景。
关于手势区域的检测通常是采用对于肤色的检测,同时会通过OpenCV人脸检测库中Haar特征提取排除了同样肤色的人脸信息,在项目肤色检测使用的是基于HSV颜色空间颜色检测来提取所需肤色区域。
HSV是根据颜色的直观特性构建的颜色模型,其颜色空间三种参数分别为色调H(Hue)、饱和度S(Saturation)和明度V(Value),色调代表色彩信息即光谱颜色位置,饱和度代表所选颜色的纯度和该颜色最大的纯度之间的比率,明度代表颜色的明暗程度。
在图像处理中将图像信息转换成HSV颜色空间,依据颜色信息来判定手势图像中的像素点颜色是否为手部的颜色范围内,并对其进行标记,最终实现按照标记轮廓查找并获取手势区域,实现手势区域的检测。
在已经提取到手势区域后,为了便于后续处理与分析,减小图像的计算数据量,需要对手势图像进行二值化处理。图像二值化是一种基础的图像预处理方法,它将彩色图像转换成灰度图,将HSV三通道信息转换成灰度单通道信息。对于本项目设计而言,将手部肤色区域灰度值设定为255,其他背景区域的灰度值设置为0,从而使图像颜色信息呈现黑白效果,突出检测物体的轮廓,便于数据处理。
本项目的类型为软件开发,客户端运行在Android手机APP上,服务端使用PythonFlask框架运行在Linux系统云服务器上。模型可通过TensorFlow开源机器学习平台训练,使用适用于设备端推断的开源深度学习框架TensorFlowLite搭建在APP中。
(1)用户打开软件进入手语孤立词翻译系统,打开手机摄像头采集手语信息。
(2)将采集到的信息进行预处理后输入模型中,输出孤立词翻译结构。
(3)软件文本显示翻译出的连续孤立词,通过用户对孤立词的解读大概可了解所采集手语信息含义,实现简单的手语翻译。
系统将采集到的手语图像进行分割并提取关键帧,然后进行图像平滑、去除非目标区域后进行具体的手势区域检测、图像二值化等图像预处理方法得到所需图像数据,最后通过采用TLD目标跟踪算法与3DCNN结合来进行手语孤立词的识别翻译,简单流程如图1所示。
图1 图像处理及检测识别流程
测试要注意以下几点:(1)在明亮且背景不变动的情况下,用摄像头捕捉手势是否能实现准确识别。(2)应区分好左右手,保证手势与训练时保持基本一致。经过测试,以上效果均可实现。
结论:本文设计了一种搭建在Android手机APP上的基于卷积神经网络的手语孤立词翻译系统,对目前手语识别所使用的算法进行研究与分析。该系统设计只适用于健全人与听力受损人士的短暂交流,今后可增添更多诸如手语学习、手语3D动画生成,使APP兼容更多便携设备等功能,使其双向交流更为方便、智能,也可使人们学习到更多实用性的手语,可应用于图书馆等特殊场所人们的交流,因此该系统还有很大的拓展空间。