一种手语识别翻译系统及方法与流程

文档序号:15836904发布日期:2018-11-07 07:58阅读:508来源:国知局
一种手语识别翻译系统及方法与流程

本发明属于手语翻译软件技术领域,具体地说,特别涉及到一种带有完整客户端、服务端、数据管理的,可运用于多个场景的手语识别翻译系统及方法。

背景技术

通常聋哑人士都是通过手语来进行沟通表达,这需要交流的双方都要懂得手语,而一般人学习手语需耗费大量的时间和精力。为了解决聋哑人士和非手语使用者之间的沟通问题,需要一种功能齐备的、高识别精度的和实用性较强的手语翻译系统。

现有的手语翻译系统主要是基于计算机视觉或数据手套等设备进行手语识别,基于计算机视觉的方法易受遮挡和光照条件等因素的影响,且便携性较差;而基于数据手套的方法具有易损坏、穿脱不便和价格昂贵的缺点。虽然目前出现了一些基于可穿戴设备的手语识别方法和设备,但这些方法和设备尚处于研发阶段,尚未出现一种融合了成熟算法和系统性管理的实用性的手语翻译产品。

同时,现阶段针对聋哑人士在公共服务场合如医院、银行等,与服务人员的交流存在较多不便,缺少一套行之有效的解决方案,目前相关的解决方案要么处在概念状态,要么存在功能不完全、可用性低和价格昂贵等缺点。



技术实现要素:

为了克服上述不足,本发明旨在建立一种可用于特定公共服务场合的手语翻译系统。本发明系统分为各个模块,分别负责在识别过程中各个步骤所需的功能,以及支撑系统持续运行的数据内容的管理。

本发明的技术方案:

一种手语识别翻译系统,包括以下模块:

前端模块,该模块作为整个手语识别系统的直接接口,用于用户在手语识别过程中与系统的交互,包括控制手语识别过程的开关、选择处于连接状态的手环、展示每次手语识别的结果和向后端发送识别结果的反馈信息;

网络连接模块,用于前端与后端之间进行双工实时信息交流;还包括在识别过程中维护用于前后端双工通讯的套接字连接监听线程和数据发送线程;

交互同步模块,用于在识别过程中将手语数据和识别结果进行对应,以及传感器数据源配对和前后端的协作与控制;

算法模块,用于对处理后的手语数据进行分类,完成手语识别工作。通过装载预先训练好的算法模型,对传入模型的数据进行分类,在置信度高于设定值后方才输出分类结果,否则视为此次分类过程失败;

数据采集、处理模块,用于手语识别过程中,以固定频率对表面肌电信号、加速度信号和陀螺仪信号这三种物理信号进行采集,采集结束后对数据进行分割、特征提取和数据标准化处理;

手语数据管理模块,用于对手语句子以及句子中每个手语词数据进行格式化提取、存储和持久化管理;该过程可为开发人员提供模型更新优化过程中所需的手语数据。

资源管理模块,用于管理在识别过程中,为每个识别实例提供算力的进程和采集数据所需的运算资源。

进一步地,上述交互同步模块还包括在交互同步过程中对所有手语句子以及手语句子中的每个手语词分配唯一的id编码,并对每个识别实例和数据采集设备进行配对。

进一步地,上述数据采集、处理模块还包括根据采集的数据种类对数据进行不同特征的提取工作,对于表面肌电信号,提取均方根、小波系数和自回归系数;对于加速度和陀螺仪信号,提取均方根、过零点率和自回归系数。

进一步地,上述资源管理模块还包括对每个识别实例启动各个工作所需的线程和进程组,以及管理他们之间用于通讯的消息队列。在实例结束后,负责对资源的及时释放。

上述手语识别翻译系统的方法,包括如下步骤:

s101使用前端设备选择未被占用的手环向后端发出匹配请求,后端根据请求,创建、初始化、启动用于完成识别任务的线程、进程组,与前端建立socket长连接;

s102前端发起开始识别请求,后端接收到请求后进入数据采集状态,数据采集线程开始以固定频率通过传感器,采集表面肌电信号、加速度信号和陀螺仪信号三种物理信号;

s103当采集的时序信号长度满足手势识别的窗口大小时,根据数据类型对数据进行分段、降噪、滤波、特征提取、压缩;

s104启动算法模块,将数据传入算法模块,通过长时短期记忆循环神经网络对时序信号进行模式识别,根据分类结果的置信度,对分类结果再进行调整;

s105将识别结果转换为自然语言文本,传回前端显示,前端进行文本语音合成;用户可根据执行结果向后端对识别结果进行反馈;后端根据反馈结果对每次的识别数据进行持久化保存。

进一步地,上述s102中,对每次手语句子识别的请求,手语句子中每个手语词的识别过程都分配唯一性的识别id,并将其保存至后端服务器数据库中。

进一步地,上述s103中对采集的陀螺仪信号、加速度信号进行拆分,将其分割成固定长度的窗口,之后对每个窗口提取均方根、过零点数和自回归系数三种特征,最后对特征数据进行归一化;对采集的表面肌电信号进行阈值滤波降噪、dbn小波变换、消除零点漂移和数据标准化。

本发明的有益效果:根据采集到的传感器数据,进行数据处理及特征提取。对处理后的数据进行模式识别,实现多元分类,准确、完整的将手语动作转换为自然语言文本信息。对系统及算法进行了良好设计,既保证在识别过程中有良好的识别精准度,又确保用户的在使用过程中有良好的用户体验。

附图说明

图1为本发明具体实施方式中手语识别方法流程图。

图2为本发明具体实施方式中手语识别系统各模块作用图。

图3为本发明具体实施方式中手语识别系统线程、进程组关系图。

图4为本发明具体实施方式中信号提取示意图,(a)加速度信号(acceleration,acc);(b)陀螺仪信号(gyroscope,gyr);(c)表面肌电信号(surfaceelectromyography,semg)。

图5为本发明具体实施方式中输入数据示意图。

图6为本发明具体实施方式中神经网络结构图。

具体实施方式

以下结合附图和技术方案,进一步说明本发明的具体实施方式。

本发明实施基于手环传感器的手语识别软件系统,如图2所示,具体包括:

前端模块201,该模块作为整个手语识别系统的直接接口,用于用户在手语识别过程中与系统的交互,包括控制手语识别过程的开关、选择处于连接状态的手环、展示每次手语识别的结果和向后端发送识别结果的反馈信息;

网络连接模块202,用于前端与后端之间进行双工实时信息交流;还包括在识别过程中维护用于前后端双工通讯的套接字连接监听线程和数据发送线程;

交互同步模块203,用于在识别过程中将手语数据和识别结果进行对应,以及传感器数据源配对和前后端的协作与控制;

算法模块204,用于对处理后的手语数据进行分类,完成手语识别工作。通过装载预先训练好的算法模型,对传入模型的数据进行分类,在置信度高于设定值后方才输出分类结果,否则视为此次分类过程失败;

数据采集、处理模块205,用于手语识别过程中,以固定频率对表面肌电信号、加速度信号和陀螺仪信号这三种物理数据信号进行采集,采集结束后对数据进行分割、特征提取和数据标准化处理;

手语数据管理模块206,用于可持久化用于对手语句子以及句子中每个手语词数据进行格式化提取、存储和持久化管理;该过程可为开发人员提供模型更新优化过程中所需的中间手语数据。

资源管理模块207,用于管理在识别过程中,为每个识别实例提供算力的进程和采集数据所需的运算资源。

进一步的,各个模块采用消息队列的方式进行通讯,考虑到多进程并发的特性,对于各个模块的临界区,合理添加了信号量及锁,避免出现并发导致的数据丢失错误。

本发明实施基于手环传感器的手语识别软件系统的方法,用以实现上述系统的功能,如图1所示,包含如下步骤:

s101,使用前端设备选择未被占用的手环向后端发出匹配请求,后端根据请求,创建、初始化、启动用于完成识别任务的线程、进程组,与前端建立socket长连接。

s102,前端发起开始识别请求,后端接收到请求后进入数据采集状态,数据采集线程开始以固定频率通过传感器,采集表面肌电信号、加速度信号和陀螺仪信号三种物理信号;

s103,当采集的时序信号长度满足手势识别的窗口大小时,根据数据类型对进行数据进行分段、降噪、滤波、特征提取、压缩。

s104,启动算法模块,将数据传入算法模块,通过长时短期记忆循环神经网络对时序信号进行模式识别,根据分类结果的置信度,对分类结果再进行调整;

s105,将识别结果转换为自然语言文本,传回前端显示,前端进行文本语音合成。用户可根据执行结果向后端对识别结果进行反馈。后端根据反馈结果对每次的识别数据进行持久化保存。

进一步地,本发明实施例中,前端与后端的信息交流采用双工实时套接字连接,在数据传输的格式上,采用utf-8编码,具有固定结构json字符串作为通信数据包,数据包包含控制信息字段和数据信息字段。

后端资源管理模块为每个识别实例开启独立的线程、进程组,从而可以良好支持多个识别实例在一个后端同时进行识别(线程、进程关系如图3)。一个识别线程、进程组分为识别实例主控线程、socket监听线程、传感器数据采集及处理进程、算法模块进程,他们之间通过消息队列和进程间信号进行通讯协作。每个线程组由一个单例对象统一管理,管理其启动、终止、回收。

后端时刻监听用于连接建立的双工socket,等待用户发送任何控制信息。当用户启动手语识别时,同步控制模块将会将用户所用的识别实例置为启动状态,同时为此次识别请求分配唯一的识别id,该手语句子的识别中,也会对手语句子中的每一个手势的识别过程分配唯一识别id,这些id用于前端后端之间每次识别动作的同步及对应,以及对每次手语识别的历史数据进行统一化管理。

对于数据的采集和处理,本方法以100hz的频率通过传感器对三种信号(表面肌电信号、加速度信号和陀螺仪信号)进行数据采集,并使用滑动窗口(长度为180,步长为8-20之间的随机值)对采集的数据进行抽取。随后会将抽取数据的前后空白段进行裁剪,数据段长度会被裁剪至160(裁剪后的数据样例如图4)。随后每10个长度作为一个特征窗口进行特征提取。由于物理特性的不同,表面肌电信号和加速度信号、陀螺仪信号分别采用不同的特征提取方式:对于加速度信号和陀螺仪信号,对每个特征窗口提取均方根、过零点数和3阶自回归系数特征;对于表面肌电信号,先进行阈值滤波预处理,然后进行小波变换,采用db3小波进行五层变换,对数据进行进一步的降噪和数值特征提取;表面肌电信号往往会出现零点漂移的现象,因此随后会对数据进行零点漂移消除处理,降低漂移误差对模型的影响。随后对数据进行标准化,归一化处理,保证各个维度的数值标量相近,加快模型训练时的收敛速度和提高识别准确率,最终神经网络的输入数据格式如图5所示。

识别算法方面,采用了循环神经网络的优化变种之一——长时短期记忆循环神经网络(lstmrnn),该网络是当前最适合完成序列识别任务的神经网络,以此保证了识别算法的准确以及健壮性,神经网络结构示意图如图6所示。神经网络读入特征提取后的时序信号,根据整个时序信号,输出一个特征向量。随后使用softmax分类器进行分类,该分类器将会输出每个分类类别的置信度,根据各个分类类比置信度的值,算法将会给出最佳的分类结果。

得到分类结果后,后端模块将其分类结果的序号转换为对应的自然语言文本,通过网络连接模块将结果返回到前端进行展示。前端收到文本消息后会根据文字进行语音合成,以文本和语音的形式同时向用户进行展示。用户可根据识别的结果使用前端设备向后端进行反馈,后端根据返回信息,使用mysql数据库将数据持久化保存,开发人员可通过简洁的接口快速获取识别的历史数据。

应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1