首页> 中国专利> 一种基于机器视觉的聋哑人手语识别语音输出方法

一种基于机器视觉的聋哑人手语识别语音输出方法

摘要

本发明涉及一种基于机器视觉的聋哑人手语识别语音输出方法,用于精确识别并匹配释义聋哑人手语,并转化为语音进行输出,解决手语翻译困难的问题,具体内容包括手语数据采集与预处理,基于Faster R‑CNN的手语识别及匹配模型的设计构建与训练,以及将手语手势语义信息转化为声音进行输出;本方法减小了数据计算量,与传统的手势识别方法依靠肤色信息与单张图想进行标注的方式,创新性地提出依靠骨骼点组合进行手语识别的方法,并利用掩膜层对处理过程进行了优化,提高了处理精度并减小了内存。此外,还提出了利用滤波器来处理帧间的点跳变,解决了识别错误的问题。比之以往方法,在精度、计算速度以及数据集简化程度上都有较大提高。

著录项

  • 公开/公告号CN113239716A

    专利类型发明专利

  • 公开/公告日2021-08-10

    原文格式PDF

  • 申请/专利权人 北京工业大学;

    申请/专利号CN202110176544.3

  • 发明设计人 于乃功;王婧瑶;

    申请日2021-02-09

  • 分类号G06K9/00(20060101);G06K9/40(20060101);G06K9/44(20060101);G06K9/62(20060101);

  • 代理机构11203 北京思海天达知识产权代理有限公司;

  • 代理人张慧

  • 地址 100124 北京市朝阳区平乐园100号

  • 入库时间 2023-06-19 12:10:19

说明书

技术领域

本发明涉及机器视觉及深度学习技术领域,特别是涉及一种基于机器视觉的聋哑人手语识别语音输出方法。

研究背景

手语是聋哑人之间交流的主要方式,但是正常人与聋哑人交流时经常会遇到障碍,致使其无法理解聋哑人所要表达的意思,无法为其提供服务和帮助。根据调查显示,截至2016 年底,我国聋哑人数量约为2057万,占中国人口总数的1.67%,且针对聋哑人的产品较少,价格高,大多数聋哑人并不具有购买该类产品能力,因此聋哑人与正常人之间的交流问题无法得到有效解决。

于是手语助残等产品逐渐走向市场,其中人工类的APP市场份额最大,多用于银行机场等场所。但考虑到其使用环境受限、人工费、翻译者水平参差不齐等问题,人工智能类的手语产品行业逐渐兴起。肌电手环、数据手套等产品,技术有待突破,不能完全适应市场,且价格高昂。因此亟待一款便携性方法解决以上问题。

机器视觉与深度学习相结合,从而对手势图像进行处理、识别匹配并进而输出,不仅能够解决手语识别、打破聋哑人交流障碍。同时由于手部属于人的基本特征,因此手势识别处理在人机交互等领域也占据着非常重要的地位。通过对人手特征的精确捕捉跟踪与特征提取,不仅可以解决手语同传的困难,真正帮助到聋哑人,还能够进一步扩大兼容性,促进计算机视觉与人机交互领域的发展。

目前虽然存在部分主要基于隐马尔科夫模型等手势识别技术,但还有很多局限性。例如:参数较多;环境可靠性差,在数据不充分时无法匹配,精度低;样本残缺情况下,无法自行解释推理依据。因此需要一款兼具环境可靠性与算法鲁棒性的方法,从而真正实现高精度的手势识别,真正打破聋哑人与社会的交流隔阂。

发明内容

本发明提供一种基于机器视觉的聋哑人手语识别语音输出方法。本研究利用机器视觉,深度学习、运动捕捉等技术,通过python编写本方法,构建手语识别匹配模型,将预处理后的输入图像进行识别匹配后,得到对应手语语义并转化为语音进行输出。本方法在所构建模型及优化中进行了创新。针对模型网络,在识别骨骼点与匹配手语动作两部分中,在Faster R-CNN的基础上,引入掩膜层,在两部分中达到了限制了模型网络每层处理的区域范围,提高了处理的精密度,减小内存占用量与计算量的效果。并在模型的识别骨骼点与匹配手语动作两部分之间,加入Savitzky-Golay滤波器,对识别到的骨骼点进行平滑处理,从而防止了点的跳变,提高识别精度。此外,在匹配手语动作的部分,对模型进行了简化,从原来的 13层减为6层,提高了处理速度,减小了计算量。

发明研究一种基于机器视觉的聋哑人手语识别语音输出方法。双目摄像头采集图像信息后,利用训练好的手势识别匹配模型对传入的手势图像信息进行手语翻译,得到对应语义文本信息。进一步利用开源AipSpeech语音库将该信息转换为语音进行输出,从而实现手语动作到声音的转换。本发明能够直接将聋哑人群的手语信息通过声音的方式传达给交流对象,在不改变聋哑人生活方式的前提下,打破聋哑人和社会的交流隔阂。所述方法工作过程包含以下几个步骤:

步骤1,采集数据并传输。双目摄像头获得操作者的手部图像数据,并将数据传输存储在内存单元中。

步骤2,图像信息预处理。对传输的图像进行去噪,以及resize(改变图像大小)操作,从而消除冗杂信息,减小内存占用量。

步骤3,构建手语识别匹配模型的数据集。通过将所采集传输的图片进行汇总与数据增强后,对数据集进行骨骼点区域标定,并以约7∶2∶1的比重分为训练集、交叉验证集及测试集。

步骤4,手语识别匹配模型的设计构建与训练。该步骤分为识别骨骼点与匹配手语动作两部分。识别骨骼点部分采用Faster R-CNN,并在原有基础上进行了改进。其中FasterR- CNN包括依次串联的多个卷积池化层,RPN层与全连接层,所述的卷积池化层为基础的conv+relu+pooling层,卷积池化层输出的特征图分为两路,一路直接输入至全连接层,另一路经过RPN层后再输入全连接层,改进之处在于,在原有的卷积池化层与RPN层之间,以及RPN层与全连接层之间,各自加入了一层掩膜层,用于对具体手部的骨骼点进行实例分割。同时,在识别骨骼点与匹配手语动作两个部分之间加入Savitzky-Golay滤波器,对识别到的骨骼点信息进行平滑处理,并输入匹配手语动作的部分,从而防止识别骨骼点跳变而导致的误识别,提高整体精度。匹配手语动作部分也在Faster R-CNN的基础上进行了修改,由于输入数据的关键点位置明确,特征信息较为精确,不需要再进行多层的特征提取操作,此减除了RPN层,并减少卷积与池化次数,将骨骼点间相对欧式距离作为特征信息,进行匹配处理。在不损失处理精度的前提下大大提高了处理速度。

步骤5,将识别匹配得到的手语手势语义信息转化为声音进行输出。利用开源AipSpeech 语音库,将重组得到的语句信息得以转化为声音进行输出。

为了进一步说明本发明所述方法,以下对手语识别匹配模型的构建、工作过程、以及训练过程进行详细说明:

构建模型基本框架。模型分为识别骨骼点与匹配手语动作两部分,皆是基于Faster R- CNN,并在基础上进行了改进。原Faster R-CNN共包含13层卷积层与13层池化层,提取图像特征。然后利用RPN获得bbox。最后为一层全连接层。改进之处在于,进行识别骨骼点时,在原有模型的基础上,引入两层掩膜层。一层位于卷积池化层与RPN层之间,一层位于RPN层与全连接层之间。第一层掩膜对特征提取后的数据进行识别到的骨骼点特征与背景之间进行分割,用掩膜滤除背景部分;第二层掩膜用于进行候选特征框与框外部分的分割,利用掩膜滤除特征框外部分,获取识别结果。在识别骨骼点与匹配手语动作之间加入Savitzky-Golay滤波器,对识别到的骨骼点信息进行平滑处理,消除误识别与点的跳变,进一步作为输入传入匹配手语动作部分。对于匹配手语动作部分,改进点为进行了卷积池化层,以及RPN层的减除,通过实验结果对比判断减除层数,对模型做有依据的减法,在保证精度的条件下提高处理速度。

工作过程:

利用Faster R-CNN网络中的卷积与池化操作,将传入的图像依次通过13层卷积,每层卷积都跟随一次池化操作,通过多次卷积池化从而提取到图像中手部的骨骼信息,并在13 层卷积池化层之后,加入一层掩膜层,将除骨骼信息外的背景赋值为0。从而将背景信息进行过滤,只提取出骨骼信息的部分。这一步获得了包含掩膜信息的特征图。

对这个特征图中的每一个识别到的骨骼点设定多个系统自动识别的候选框,从而使整张图获得多个候选的骨骼点框。

将包含有候选框的图像送入RPN网络,根据候选框与事先设定骨骼点框的交并比大小,过滤掉低于阈值的部分较差框。在RPN网络之后跟随一个掩膜层,用于进行特征框与框外部分的分割,获取识别结果,完成识别骨骼点。

将前一时刻与后一时刻识别骨骼点部分的的处理结果输入Savitzky-Golay滤波器,对图像中的骨骼点信息进行数据平滑,从而防止连续时间中的识别到的点的跳变,提高识别精度。

将Savitzky-Golay滤波器处理后的结果输入匹配手语动作部分的网络。该步骤为防止出现交并比满足阈值要求,但所的识别位置结果与实际结果有较大偏差的情况,以及应对单个骨骼点有多个候选框,为获得最优单候选框的两个目的,因此计算该图像每个骨骼点的多个候选框中心点之间的欧式距离,以及相对坐标(若某个骨骼点处为单候选框,则该步计算所得欧氏距离为0,及最优结果)。并加入掩膜层,将计算所得欧氏距离大于阈值的框进行过滤,进而可以得到该图像的最优识别骨骼点位置结果。此后进行一次全连接,计算损失函数。损失函数大小为待识别图像每个骨骼点,与不同预先设定动作图像的对应位置的每个骨骼点间的欧式距离的总和,及21项相加,每一项代表一对对应点间的距离。当损失函数最小时对应的预先设定动作,即为待匹配图像所匹配得到的手语动作语义。

由于此时图像的特征已经较为准确,因此为了提高匹配的处理速度,因此对所基于的 Faster R-CNN网络进行剪枝。及将原本的13次卷积池化,减到6层(经过迭代测试6层也可以达到最高精度,6层之后精度接近饱和)。

网络训练:

将数据集送入设定好的模型架构中,进行迭代训练。

每轮迭代打印训练结果,并打印精度值,当该值基本不进行变化即停止迭代,所保存的模型即为用于手语识别匹配的模型。

本方法减小了数据计算量,与传统的手势识别方法依靠肤色信息与单张图想进行标注的方式,创新性地提出依靠骨骼点组合进行手语识别的方法,并利用掩膜层对处理过程进行了优化,提高了处理精度并减小了内存。此外,还提出了利用滤波器来处理帧间(不同时刻) 的点跳变,识别结果错误的问题。从而言之,本方法比之以往方法,在精度、计算速度以及数据集简化程度上都有很大提高。

附图说明

图1为实现本发明所述方法的系统结构框图;

图2为实现本发明方法配套依赖硬件结构及构成框图;

图3为本发明方法部分数据集效果图;

图4为人手骨骼点识别模型;

图5为手部各关节关系(关键点)示意图。

图6为原Faster R-CNN模型结构图

图7为识别骨骼点模型结构图

具体实施方式

结合附图和实施例子对本发明做进一步详细说明。

图1和图2分别展示了实现本发明的方法结构框图以及配套依赖硬件结构及构成框图。本方法研究基于机器视觉,深度学习、运动捕捉等技术,通过python编写并实现相关算法。运用嵌入式系统,双目摄像头,以及移动电源搭建硬件系统。其中双目摄像头主要用于采集图像,双目相比于单目能够采集到的视野范围更大,同时也更仿照真实人眼所接收到的图像信息。嵌入式系统主要选择开发套件,拥有一个独立CPU,两个独立GPU,并集成了扬声器作为声音输出端口。本发明利用硬件平台,采集分析多种环境下的聋哑人手势动作及变化,利用本方法构建的手语识别匹配模型对手势语义进行分析,建立不同手势与手语意思的对应关系,并进一步送入语音输出模块,利用开源AipSpeech语音库,将重组得到的语句信息经由板载扬声器进行输出。从而在此硬件平台上实现基于机器视觉的聋哑人手语识别语音输出方法。

具体模型构建如下:

本手语识别匹配模型的构建主要基于Faster R-CNN进行设置,并在其中引入创新。如图4,5所示,即为本发明方法所选择的识别目标——骨骼点,一共21个骨骼点,并根据其不同组合来记录不同手势代表的不同语义,进而达到翻译的目的。模型共分为两个部分,识别骨骼点,以及匹配手语动作。

首先是第一部分识别骨骼点。利用双目摄像头采集手部图像,传入开发套件后,第一步就对图像进行resize操作。主要通过利用scale处理的方法来进行resize。对于传输的原始图像,在缩放的过程中,首先定义scale:

array,scale=resize(im,SHORT_SIDE,LONG_SIDE)

im代表这张图片,SHORT_SIDE为图片短边,LONG_SIDE为图片长边。原始参数SHORT_SIDE 为600,LONG_SIDE为1000。当输入某张图片时,长边的长度超过LONG_SIDE,就将scale 定义为LONG_SIDE/im_size_min,及最长边与图像最小尺寸的比值。否则就还是用原来的 scale。进而若输入的图片相对大点,最终对小目标也许效果就会更好。

接下来就是对resize的图片进行卷积池化操作,在这个步骤中,主要有13层卷积与池化,每一层池化都跟在卷积层之后,该步骤也是基于原始Faster R-CNN网络模型进行操作的。在经过卷积池化操作后,便会输出包含有粗略骨骼点特征信息的特征图,并将特征图输入紧接着的一层掩膜层中。这个掩膜层的mask主要实现的,是将处理骨骼信息之外的部分,设置为0,利用这层掩膜,可以过滤掉复杂的背景信息,并获得包含有掩膜信息,只有骨骼信息的特征图。接下来就是对每一个骨骼点信息设置7个候选框,每个候选框都有系统自动识别,但框选位置与框的大小都有差别。一共21个骨骼点,每个点有7个候选框,则此时图像中会出现147个左右的候选框,对骨骼点进行框选。

将包含有多个候选框的图像输入RPN网络中,进行交并比计算。即针对每一个骨骼点的候选框,计算7个框与预先设定的候选框的交并比,通过计算该交并比的值,来判断框选的效果,并对较差的结果进行过滤去除。最终实现对候选框的粗略筛选。此时引入新的掩膜层,主要用于进行候选特征框与框外部分的分割,利用掩膜滤除特征框外部分,此时则完成对候选框的精确筛选,获取识别结果。完成识别骨骼点的部分。

对于匹配手语动作的部分,也是基于Faster R-CNN网络进行的。与识别骨骼点部分的加入掩膜层的改进不同,在这一阶段,主要是对模型的简化。此时该部分输入为识别到骨骼点后的图像信息,因此图像的特征已经较为准确。那么为了提高匹配的处理速度,将原本的 13次卷积池化,减到6层。该层数的提出,通过不断改变卷积池化层数,从10层减小至4层,发现在6层及以上,匹配精度几乎不发生大的变化,6层之后提升层数成本较大。

在此阶段将图像进行6次卷积池化,主要获取不同点之间的欧式距离,以及不同点的相对坐标。并加入掩膜层,将欧氏距离大于阈值的部分设置为0,进行过滤,过滤掉与图像信息较为不符的匹配结果。并进行一次全连接,计算损失函数,损失函数大小为每个图像点与该点对应的预先设定动作点之间的欧式距离的总和:

其中x

在模型构建结束后,对模型进行了上限为300次,实际测试了32次,最终选择了194次迭代为最终结果,194次迭代后模型精度基本接近饱和。

但在进行识别测试后,发现存在关键点跳变的情况,因此而产生部分手势误识别。因此,在识别骨骼点与匹配手语动作两个部分之间加入滤波器。具体方法如下:

为了提高识别精度,避免骨骼点的误识别,引入Savitzky-Golay滤波器,即利用灰度互相关值以及数据滤波对模型处理结果进行优化的方法。针对较明显的抖动失真,采用灰度互相关值对结果进行处理。在前后帧图像中选择手部纹理Patch,对后续连续个位数帧进行 Patch相似度计算:

公式p

对分母做归一化操作后,NGC值越大,相关性越强,并作为依据对后续帧进行采补处理。由于连续两帧之间的抖动应该不会太大,因此在搜索最相似Patch时,在选取帧邻域内搜索即可,例如使用了50×50的邻域,计算2500个候选Patch与第一帧初始Patch的相似性,选取NGC值最高的Patch作为参考点,将当前帧的图像移动对应距离,使得NGC值最高的Patch 位置与初始Patch位置重合。该操作对较严重抖动进行初次过滤。

针对小范围抖动,利用指数滑动平均法对数据进行处理。对手势姿态组的时序进行数据标定,得到关键点坐标。利用指数平均对前后出现小范围跳变的点进行平滑处理。

p

(2)

p

(3) p

p

(4) 其中,x

利用滤波器指数衰减的特性,具有更强的实时性,更加接近当前时刻的观测值。经滤波后的效果经光流绘制后,抖动范围大幅减小。经过对数据平滑前后识别准确度进行对比评估后显示,经过灰度互相关与数据滤波后精度得到较大优化。

对加入滤波器后的模型进行了迭代测试,发现相同条件下,迭代162次即可达到相对最优精度,且模型识别效果具有很大提升。测试阶段的误识别手势正确识别79.47%,且满足中文手语64种基本词汇的识别匹配要求。总手语翻译精度经模型优化后从84.64%提升至 92.07%,基本且较好地实现了识别手语并转换为语音进行输出的功能。

后经过测试,该方法大大提高了识别速度,相比于传统方法在精度和数据量上都有很大提高。

表1模型性能评估

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号