999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LeapMotion手語翻譯器的設計與實現

2015-04-12 00:00:00翁省輝陳韋澔陳匡林
現代電子技術 2015年24期

摘 要: 手語翻譯器作為不懂手語的正常人與使用手語的殘障人士之間的溝通橋梁,近來成為研究熱點,但是目前市場上成熟的手語翻譯器并不多見。在此設計利用Leap Motion對手部識別精度高以及體積小巧等特性,實現了一種識別精度高、便于攜帶的手語翻譯器。該翻譯器不僅支持靜態手語的識別,同時也能識別動態手語,實現了手語識別、文本翻譯、語音播報,多語言翻譯等功能。實驗結果表明該手語翻譯器具有識別準確率高的特點,能基本實現殘障人士與正常人之間簡單的交流,具有良好的應用前景。

關鍵詞: Leap Motion; 手勢識別; 手語翻譯器; 語音播報; 多語言翻譯

中圖分類號: TN919.8?34 文獻標識碼: A 文章編號: 1004?373X(2015)24?0114?04

Design and implementation of sign language interpreter system based on Leap Motion

WENG Shenghui, CHEN Weihao, CHEN Kuanglin

(School of Computing Science, Beijing Institute of Technology (Zhuhai), Zhuhai 519085, China)

Abstract: As a communication bridge between normal people ignorant of the sign language and handicapped persons using the sign language, the sign?language translator has recently become a hot research. However, sign?language interpreters on the market are rare. A high recognition accuracy and portable sign?language translator was achieved by utilizing Leap Motion’s characteristics of high recognition accuracy and small size. The interpreter implemented the sign?language recognition, text translation, voice broadcast, multi?language translation and other functions, as well as can support static sign?language recognition and recognize dynamic sign?language. The experimental result shows that the sign?language interpreter has high recognition accuracy, and can basically realize simple communication between people with disabilities and normal people. Therefore, it has a nice prospect.

Keywords: Leap Motion; gesture recognition; sign language interpreter; voice broadcast; multi?language translation

0 引 言

目前全球大概有1億聾啞人,而我國就有超過2 000萬聾啞人,而且每年還在以2萬~3萬名的速度遞增。聽力正常人之間主要采用口語和書面語進行交流,并輔之以一定的體勢和表情。在聾人之間的交流中,手語如同正常人的口語一樣,起著非常重要的作用。由于正常人懂手語的較少,所以正常人與聾啞人之間的溝通存在較大的障礙。隨著社會的發展,聾啞人的地位不斷提高,手語翻譯工作應用的范圍也越來越廣泛,也將越來越引起社會各界的關注和重視。我國目前手語翻譯職業化道路剛剛起步,各方面還很不完善,缺少專業的手語翻譯,尤其分科明確專業程度很高的手語翻譯人員。目前手語翻譯工作大多是由聾校教師和殘疾人工廠的手語翻譯人員,這些人不僅缺乏手語翻譯技能技巧等方面的專業培訓,而且更缺乏某一專業領域的知識儲備和訓練,如法律、醫療、心理咨詢等專業知識,手語翻譯的水平極大地限制了聾人群體的發展和生存質量的提高。但是近年來互聯網和計算機不斷的發展,機器翻譯變得隨處可見。機器能有豐富的專業知識儲備,能在不帶任何私人感情和主觀意識的情況下準確無漏地進行翻譯,解決了手語翻譯人員存在的一些翻譯缺陷,而且其便攜性也是一大優點[1]。

目前手語識別系統主要分為基于數據手套的識別和基于視覺(圖像)的手語識別系統[2]。基于數據手套的手語識別系統,是利用數據手套和位置跟蹤器測量手勢在空間運動軌跡和時序信息[3?4]。這種方法的優點是系統的識別率高,缺點是打手語的人必須穿戴復雜的數據手套和位置跟蹤器,并且輸入設備比較昂貴。

本文提出的手語翻譯器屬于基于視覺(圖像)的手語識別系統[5]。采用的識別設備是Leap Motion體感控制器Leap Motion是一款μm級3D手動交互設備,只有三寸長,一寸寬,看起來像一個U盤大小[6]。可以追蹤到小到0.01 mm的動作,擁有150°的視角,可跟蹤一個人10個手指的動作,最大頻率為290幀/s,延遲比顯示器的刷新率還要低,特別適合用作手語翻譯器。

1 系統概述

手語翻譯器主要由3大模塊組成,分別是手勢識別模塊,文本顯示模塊和語音播報模塊。總體框架圖如圖1所示。

圖1 系統總體框架圖

該手語翻譯器主要利用手勢識別模塊中的Leap Motion體感設備自身的兩個紅外攝像頭進行手勢的捕捉,通過識別人手的姿勢和動作,將其轉換成數據通過數據線發送到主機進行處理,主機將對這些數據進行提取,把提取出來的有用的數據通過算法處理識別出手勢動作,翻譯成文本信息顯示在顯示器上,語音模塊可以根據需要轉換成語音信息,最后還可以通過接入互聯網的方式連接云翻譯服務平臺實現多語言翻譯功能。

2 各模塊的設計與實現

2.1 手勢識別

該模塊功能主要由Leap Motion控制器實現,該設備中內置兩個紅外線攝像頭,內部結構如圖2所示[6]。

它可捕捉到設備面前的一塊半球型區域中的人手和一切棍棒狀的工具,虛構出xyz三個軸,生成一個監聽者將檢測到的物體計算生成相關的數據,如手中各個手指的骨骼點之間的距離、手指的長度、數量、方向等;還可以識別出各種基礎手勢特征基元,如轉圈,平移等,這些數據都將按照時間片的單位封裝成1幀使用。由于手語不只有靜態的,還有動態手勢,所以一個動態手勢可以細化成很多幀,每一幀都有其特定的ID與之區別開來,而Leap Motion設備一次捕獲一幀,之后可以通過對控制器物體的輪詢獲得幀,然后將其通過數據線發送到處理機。

圖2 Leap Motion內部結構示意圖

為了更方便,需要將控制器檢測到的數據進行提取,放進一個onframe()函數中。onframe()是核心函數,它實時返回控制器所監聽到的一些基本信息并顯示,能以數據的形式更直觀的對當前手勢進行分析。通過controller對象調用onframe()函數,函數將獲取最新的運動跟蹤幀數據,并把檢測目標的信息作為標準輸出。

下面的代碼是手勢識別代碼中的一部分,實現的功能有:獲取最新的Frame對象,并根據Frame對象檢索人手的list列表,然后輸出Frame的ID、時間戳、以及幀數據中人手的數量、手指數、工具的數量:

const Frame frame = controller.frame();

std::cout << \"Frame id: \" << frame.id()

<< \", timestamp: \" << frame.timestamp()

<< \", hands: \" << frame.hands().count()

<< \", fingers: \" << frame.fingers().count()

<< \", tools: \" << frame.tools().count()

<< \", gestures: \" << frame.gestures().count()

<< std::endl;

接下來,函數將檢測list列表中的第一只手,并判斷左右手:

const Hand hand = *hl;

LRhand = hand.isLeft() ? \"Left hand\" : \"Right hand\";

if(LRhand==\"Left hand\")

ui?>lineEdit?>setText(\"左手\");

else

ui?>lineEdit?>setText(\"右手\");

Hand類的一個對象包含ID、反映人手物理特征的屬性、手指對象的list列表,而每個Finger對象又包含ID、反映手指物理特征的屬性。

這是基本的信息提取,Leap還提供了基礎手勢特征基元的識別,首先調用enableGesture()函數,啟用了所有的手勢識別類型:

controller.enableGesture(Gesture::TYPE_CIRCLE); controller.enableGesture(Gesture::TYPE_KEY_TAP);

controller.enableGesture(Gesture::TYPE_SCREEN_TAP);

controller.enableGesture(Gesture::TYPE_SWIPE);

Leap設備把代表識別動作模型的Gesture對象放到Frame對象中gestures的list列表中。通過對控制器的輪詢循環讀取gestures的list列表,并把每個手勢的信息輸出。

在動態手勢的識別中,需要將當前幀的手勢信息與前面的幀里對應的手勢進行比較,可以隨時調用一個時間范圍內的幀數據,設置一個x值,通過比較并計算當前幀frame()與x幀之前frame(x)中數據變化來識別手勢。例如,畫圈的手勢動作中有個進度屬性,此屬性用來表示手指已經畫圈的次數。這是一個完整的過程,如果想在幀與幀之間獲取這個進度,需要減去前一幀中手勢進度值。在實際操作中,可以通過手勢gesture的ID找到對應的幀。下面的代碼就是用了這個方法由前幀導出相應的角(單位:rad):

float sweptAngle = 0;

if (circle.state() != Gesture::STATE_START) {

CircleGesture previousUpdate = CircleGesture(controller.frame(1).gesture(circle.id()));

sweptAngle = (circle.progress()-previousUpdate.progr

ess()) * 2 * PI;

}

2.2 文本顯示

文本顯示模塊主要是將手勢手語翻譯成文本并顯示出來,能更方便聾啞人和正常人之間交流,實現實時交談。為了使該軟件更具實用性,該系統還加入了多語翻譯的功能,可連接上云翻譯服務平臺,將文本顯示的容易翻譯成多種語言。

多語言翻譯功能是利用網上百度公司提供的百度翻譯API實現的[7]。百度翻譯提供中文、英語、日語、韓語、法語、泰語、德語、俄語、西班牙語、葡萄牙語、阿拉伯語、意大利語、粵語等16個語種,136個語言方向的翻譯服務,支持文本翻譯和網頁翻譯兩種類型。目前市面上百度翻譯API目前有近萬個開發者接入,日均訪問量近億次。手機百度App、金山詞霸全線產品、靈格斯詞霸、華為手機、OPPO手機、敦煌網、百度文庫、騰訊SOSO、特快翻譯IOS和Android版、百度PC瀏覽器和手機瀏覽器、百度輸入法等均與百度翻譯建立了良好的合作關系。要使用百度翻譯API需要先向百度申請開發所需的ApiKey。默認翻譯API使用頻率為每個IP 1 000次/h,如有需要可向百度開發者中心申請更高頻次權限。然后通過HTTP協議發送get翻譯請求。

發送的請求中需包含字符編碼必須為UTF?8的待翻譯內容和作為開發者已授權用戶的身份證明的ApiKey,指定要翻譯的源語言和目標語言種類(可設置為自動識別)。之后便可以得到相應的響應。

返回的響應是ISO?8859?1編碼格式的標準JSON字符串。為了能正常使用需要先將其轉換成日常使用的字符編碼格式UTF?8格式:

QTextCodec *codec = QTextCodec::codecForName(\"UTF?8\");

然后使用QScriptEngine一層層解析返回的嵌套JSON字符串,除去多余的內容,將需要的翻譯完成后的文字內容顯示出來:

QString all = codec?>toUnicode(reply?>readAll());

QJsonDocument myjson = QJsonDocument::fromJson(all.toLatin1(),jsonErr);

QByteArray byte_array = myjson.toJson(QJsonDocument::Compact);

QString json_str(byte_array);

QScriptEngine engine;

QScriptValue sc = engine.evaluate(\"s=\" + json_str);

qDebug()<

QScriptValue subsc = sc.property(\"trans_result\");

QScriptValue subsc1 = subsc.property(0);

ui?>textEdit?>setText(subsc1.property(\"dst\").toString());

2.3 語音播報

語音功能是該翻譯器的拓展功能。翻譯不應該只有翻譯顯示的功能。為了更加適應聾啞人和正常人之間的交流,引入了語音播報的功能,使其更符合正常人日常之間使用語言而非文字的交流習慣。對此,翻譯器除了能發出聲音,還加入了不少特色功能。同時支持簡體中文和英語,根據使用者的性別,可在男聲女聲選項中選擇對應的聲音,而且加入了聲音大小調節、語速快慢調整等功能功能,使該翻譯器更具人性化和實用性。

語音播報模塊使用微軟免費提供的的TTS引擎和發音包,同樣只需要使用官方提供的API即可。微軟SDK提供的SAPI是基于COM封裝的,無論是否熟悉COM,只要按部就班的初始化COM獲取接口,調用接口完成某個功能,實現語音控制,程序結束時釋放資源[8?9]。

模塊的核心是ISpVoice接口,其主要功能是speak()函數,該函數的具體實現如下:

bool TextSpeech::speak(QString txt)

{

if(!_binit)

return 1;

int result = this?>_voice.dynamicCall(\"Speak(QString, SpeechVoiceSpeakFlags)\", txt ,1).toInt();

_bReading = true;

return result;

}

傳入可識別的字符串為參數,執行播報功能,返回一個參數表示是否執行成功除了Speak()外IspVoice接口還有許多成員函數,如通過SetRate(int),SetVolume(int)等語句將具體參數傳入,設置音量、音調,Pause(void)和Resume(void)來暫停和回復語音的朗讀,幾乎可以使輸出達到自然語音效果。至于音色,則通過SetVoice(ISpObjectToken *pToken)函數選擇預裝的語音庫,可實現男聲女聲的切換。不僅如此,這個TTS API功能最強大之處在于能夠分析XML標簽,輸入文本并不需要嚴格遵守W3C的標準,只要含有XML標簽就行。XML標簽同樣也能做到上述函數中的功能:設置音量、音調、延長、停頓等。再另外,根據XML標注的不同,數字、日期、時間之類的讀法有自己的一套規則。例如數字1 024,\"1024\"念成“一千零二十四”,\"1024\"將念成“一零二四”。

實際上所有的語言發音都是由基本的音素組成,以中文發音為例,拼音是組成發音的最基本的元素,只要知道漢字的拼音,即使不知道怎么寫,也不知道怎么讀,都沒有關系。對于TTS引擎來說,它不一定認識所有字,但是只要把拼音對應的符號(SYM)給它,它就一定能夠讀出來,而英語發音則可以用音標表示,例如“h eh ? l ow 1”就是hello這個單詞對應的語素。所以與一些用預先錄制的聲音文件實現發聲的應用程序相比,TTS的發聲引擎不需要大量的聲音文件支持,只有幾兆大小,因此可以節省很大的儲存空間,縮小了程序的體積。

3 應用前景預測

目前市面上的手語翻譯器很少,但是對于這種應用的需求可以從助聽器市場中窺知一二。2012年我國助聽器國內銷量為406.5萬個,同比增長21.2%,增幅較2011年增加6.5個百分點。2008—2012年我國助聽器銷量統計如表1所示[10]。

表1 2008—2012年我國助聽器銷量統計統計表

以上的數據都顯示出我國助聽器市場強勁的需求,從而可推斷出算出手語翻譯器潛在的市場容量,絲毫不必過多地擔心市場容量問題。目前市場上助聽器價格昂貴,品牌助聽器最便宜2 000元起,貴則幾萬元,據殘疾人的就業調查相關數據顯示我國聾啞人群體的就業狀況不容樂觀,雖然市場上有針對聽力障礙者推出的各類品牌助聽器,但是也相對比較昂貴。這對于有就業困難的特殊人群來說,無疑是難以負擔的。而且據調查,大部分助聽器的使用者均表示佩戴不適,伴有噪音,輕微頭暈等癥狀。而本文提出的手語翻譯器,不僅不會給使用者帶來不適,其小巧的機身與低廉的價格更具競爭力。2009—2014年我國助聽器銷量如圖3所示[11]。

圖3 2009—2014年我國助聽器銷量圖

4 結 語

本文敘述了基于Leap Motion的手語翻譯器的設計與實現。這種翻譯器利用了Leap Motion對手部識別的高精度,手勢時間片段的細化和其體積小巧的特性,做出了識別度高,便攜性好的手語翻譯器。日常手語中有很多動態手勢,該翻譯器不僅支持靜態手語的識別,同時也能識別出動態的手語。而且該設備還內置有光感調節,紅外線打的攝像頭對環境的兼容性很高,即使在強光弱光的情況下均能使用,基本實現了聾啞人與正常人之間簡單的交流。相對其他手語翻譯設備來說,Leap Motion除了具有精度高、體積小等優點外,價格也比較低廉,具有較好的應用前景。

參考文獻

[1] 倪訓博,趙德斌,高文,等.非特定人手語數據生成及其有效性檢測[J].軟件學報,2010,21(5):1153?1168.

[2] 姜華強,潘紅.基于關鍵幀的多級分類手語識別研究[J].計算機應用研究,2010,27(2):491?493.

[3] 顧偉宏,閔昆龍,張曉娜.新型數據手套及其手勢識別研究[J].自動化儀表,2011(2):56?58.

[4] 劉明濤,雷勇.基于數據手套的漢語手指字母流識別系統[J].計算機工程,2011,37(22):168?170.

[5] 楊全,彭進業.基于深度圖像信息的手語識別算法[J].計算機應用,2013,33(10):2882?2885.

[6] Leap Motion, Inc. Leap Motion controller [EB/OL]. [2015?04?11]. https://developer.leapmotion.com.

[7] Microsoft Corporation. Speech [EB/OL]. [2015?03?12]. http://cn.bing.com/dev/speech.

[8] 章森,劉磊,刁麓弘.大規模語音語料庫及其在TTS中應用的幾個問題[J].計算機學報,2010,33(4):687?696.

主站蜘蛛池模板: 亚洲天堂精品在线| аv天堂最新中文在线| 极品尤物av美乳在线观看| 本亚洲精品网站| 国产91色在线| 成人av专区精品无码国产| 伊人久热这里只有精品视频99| 无码AV动漫| 又粗又硬又大又爽免费视频播放| 国产精品黑色丝袜的老师| 久久精品娱乐亚洲领先| 国产剧情一区二区| 免费国产高清精品一区在线| 在线精品视频成人网| 福利姬国产精品一区在线| 色噜噜在线观看| yjizz视频最新网站在线| 视频国产精品丝袜第一页| 亚洲精品黄| 国产一级二级在线观看| 新SSS无码手机在线观看| 91香蕉国产亚洲一二三区| 国产精品性| av一区二区三区在线观看| 久久综合色视频| 国产精品香蕉| 青青草国产精品久久久久| 中文字幕亚洲精品2页| 国产超碰一区二区三区| 国产日韩欧美成人| 激情六月丁香婷婷四房播| 日本精品αv中文字幕| 欧美另类一区| 欧美国产日韩一区二区三区精品影视| 欧美激情福利| 99精品影院| 婷五月综合| 久久亚洲国产最新网站| 一级黄色片网| 在线观看国产一区二区三区99| 91po国产在线精品免费观看| 无码AV高清毛片中国一级毛片| 免费看美女毛片| 国产精品人人做人人爽人人添| 伊人福利视频| 性色生活片在线观看| 在线观看av永久| 这里只有精品在线播放| 国产手机在线小视频免费观看| 欧美成人综合视频| 欧美精品在线免费| 精品小视频在线观看| 无码国产偷倩在线播放老年人 | 熟妇丰满人妻av无码区| 亚洲黄色成人| 色综合成人| 久久久久国产精品熟女影院| 国产91蝌蚪窝| 国产亚洲视频中文字幕视频 | 亚洲大尺码专区影院| 亚洲天堂网在线视频| 五月丁香在线视频| 一区二区影院| 日韩人妻少妇一区二区| 99re这里只有国产中文精品国产精品 | 又大又硬又爽免费视频| 国产91无码福利在线| 欧美午夜网| 2021国产精品自产拍在线| 国产特级毛片aaaaaa| 精品99在线观看| 美女无遮挡免费视频网站| 777午夜精品电影免费看| 午夜精品福利影院| 国产又粗又猛又爽视频| 亚洲天堂自拍| 波多野结衣一二三| 2022国产无码在线| 国产精品流白浆在线观看| 国产在线一二三区| AV无码无在线观看免费| 麻豆国产在线不卡一区二区|