首页/作品列表/手语翻译手套
手语翻译手套
26685 0
主要内容

项目目标

我们希望提供一套实时、有效的系统,将手语翻译成文本或语音,使得聋人和听人之间的交流变得更方便、快捷。为此,我们设计了这套手语的实时翻译系统,在操作者带上手套后,系统可以感应操作者手及手指的运动,识别手语手势并播放音频,从而实现聋哑人与听人之间的正常沟通。

项目原理

mCookie手套端的弯曲传感器测量手指的弯曲程度,Motion功能模块测量手在空间中的角方位和运动情况,经mCookie初步分析处理后,再通过蓝牙模块将实时数据发送至安卓端。通过安卓程序进行进一步手语匹配,并将识别结果以音频、图像、文字的形式输出。

柔性传感器

作为数据手套的核心传感器,作用是得到手指的弯曲程度。在参考了一些资料后,我们采用分压电路将柔性传感器的弯曲度转化为电压的变化,并通过mCookie的模拟输入端读取这些电压值,得到的数据经过初步处理后与姿态信息一并通过蓝牙串口发送至安卓端。另外,由于柔性传感器接头处较脆弱,我们在接头处安装了额外的排针并用胶带固定,保证传感器不受弯折损坏。

硬件组装

分压电路的设计参考自《Arduino互动设计实践》一书中对于柔性传感器的介绍,通过该电路可将传感器的弯曲程度转化为电压的变化,为了便于与mCookie模块的组装,我们将这一电路密集的焊接在了一小块万用板上,具体连线见下图。
由于弯曲传感器并不能像皮肤一样自由伸缩,我们将第一指关节用胶带固定,整体覆盖新一层的弹性布质手套,这样的设计既保证了弯曲传感器能够贴合手指弯曲,又保证了其移动的灵活性。

程序调试

1.算法设计: 在连续手语的识别上,我们主要采用的是K-近邻分类算法结合HMM模型。 对于K-近邻算法有这样一个很好的解释:“如果有一个动物叫起来像鸭子,走得像鸭子,看起来也像一只鸭子,那它很有可能就是一只鸭子。”这个算法被我们用于手型的识别:首先先找到与当前手型最相似的K组训练数据,这K组训练数据所属的分类中,若一个分类出现的次数最多,我们就认为当前手型很可能属于这个分类。如图所示:
在连续手语的识别中,当传感器传回一串数据时,我们首先先对这串数据进行K-近邻分类,找出训练集中与当前手型最接近的K个训练数据及这些数据所属的m个分类。并将该m值作为HMM模型的宽度。同时按得票数给以这m个分类不同的发射概率,当状态转移结束时,通过统计得到的状态转移概率矩阵及维特比算法得出最可能的手语识别结果。下面以K=3,m=2时的情况为例:
用这种投票的方式确定发射概率,其实一定意义上是对操作者的信任,即默认操作者不会打出毫无意义或十分模糊的手势,即误差的手势要与正确的手势比较相似。这样的简化还有一个好处是,数据的规模将被大大降低,因为m≤K,所以算法的复杂度将由O(W^2*L)降低至O(K^2*L),其中W是完整的HMM模型宽度,L为识别链的长度。 
2.-数据采集端 mCookie端作为数据的采集端,主要的功能为数据的采集和转发。为了便于安卓端的进一步识别,我们先在mCookie端对采集到的数据进行近邻分类,并将分类结果转发给安卓端处理。
3.程序流程图-安卓端: 安卓端主要负责数据的进一步分析与匹配,并将识别结果以音频、图像、文字的形式演示出来。

演示视频

APP二维码



代码展示

1. 手语

编程语言: C/C++(Arduino)

软件工具:Arduino IDE 1.6.9


附件下载
  • 资料展示
  • Sign-Language-Translation-Gloves-master.zip
5
大牛,别默默的看了,快登录帮我点评一下吧!

立即注册