劉欣易,孔家偉,陳果然,孟祥佳
(山東青年政治學(xué)院 信息工程學(xué)院,山東 濟(jì)南 250103)
目前,手語是聾啞人與其他人交流的一種主要方式,而大多數(shù)正常人并不能準(zhǔn)確理解手語所表達(dá)的意思,使得正常人與聾啞人之間的交流存在一定的障礙。如果有手語識(shí)別系統(tǒng)的輔助,可以拉近聾啞人與正常人之間的距離[1-4]。手語識(shí)別系統(tǒng)不僅可以讓正常人走進(jìn)聾啞人的生活,同時(shí)也可以使這些特殊群體更自然、和諧、舒適地融入社會(huì)生活。
隨著深度學(xué)習(xí)的迅速發(fā)展,在圖像、語音等數(shù)據(jù)的處理和識(shí)別以及文本理解等各個(gè)方面都獲得了很大的突破。目前已有基于數(shù)據(jù)手套的手語識(shí)別方法,但該方法成本較高、推廣難度較大。隨著人工智能技術(shù)的發(fā)展,計(jì)算機(jī)視覺技術(shù)快速崛起,計(jì)算機(jī)視覺背景下的手語識(shí)別逐漸成為國內(nèi)外手語識(shí)別研究的主流趨勢[5]。與此同時(shí),人機(jī)交互技術(shù)興起,并在手語識(shí)別領(lǐng)域得到廣泛應(yīng)用。利用該技術(shù)可以更加及時(shí)、準(zhǔn)確、方便地學(xué)習(xí)和表達(dá)手語,有效地提高聾啞群體的學(xué)習(xí)興趣和效率,促進(jìn)特殊群體與正常人的交流。經(jīng)過多年的研究和探索,國內(nèi)外研究人員在該領(lǐng)域已取得了令人欣喜的成果,但現(xiàn)階段的手語識(shí)別方法在正確率和算法魯棒性方面有待改進(jìn)。為此,本文基于深度學(xué)習(xí)、計(jì)算機(jī)視覺等技術(shù),構(gòu)造了正常人與聾啞人之間的無障礙交流平臺(tái)。
近年來,隨著深度學(xué)習(xí)的快速發(fā)展,人工智能的可用性和高效率優(yōu)勢得到極大程度的發(fā)揮,其強(qiáng)大的特征學(xué)習(xí)能力使得人工智能的發(fā)展迎來了一波新的熱潮;同時(shí)將深度學(xué)習(xí)應(yīng)用于手語識(shí)別技術(shù)的研究將成為一個(gè)重要的方向。手語識(shí)別技術(shù)的研究,有助于增進(jìn)聾啞人與社會(huì)的溝通交流,使他們能夠更好地融入社會(huì),同時(shí)對(duì)人機(jī)交互的發(fā)展也能夠起到推動(dòng)作用[6]。
本文對(duì)基于深度學(xué)習(xí)的手語識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)過程做了完整性的論述;結(jié)合TensorFlow 框架和VGG-16 神經(jīng)網(wǎng)絡(luò)算法,驗(yàn)證了本手語識(shí)別系統(tǒng)的可行性;文中還對(duì)系統(tǒng)核心模塊的實(shí)現(xiàn)以及系統(tǒng)的可視化展示等功能進(jìn)行了詳細(xì)的介紹。本次手語識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)在功能上是可以滿足要求的,但也存在一定的不足。目前的手語圖像樣本數(shù)量還不夠龐大,不同的背景差異、不同人對(duì)同一手語動(dòng)作表示的差別、不同的采集方向、不同的光照亮度等因素會(huì)導(dǎo)致特征提取差異,進(jìn)而對(duì)手語識(shí)別的準(zhǔn)確率造成一定的影響。
系統(tǒng)主要包含5 大模塊,如圖1所示。下面介紹各個(gè)模塊所實(shí)現(xiàn)的功能。
圖1 手語識(shí)別系統(tǒng)模塊
2.1.1 手語圖像采集模塊
通過PC 端內(nèi)置攝像頭,拍照抓取用戶在鏡頭前做出的相應(yīng)手語手勢,或者將用戶上傳的需要識(shí)別的手語手勢圖像送入系統(tǒng)后臺(tái),以供訓(xùn)練和識(shí)別使用。圖像采集流程如圖2所示。
圖2 手語圖像采集流程
2.1.2 手語圖像預(yù)處理模塊
對(duì)采集到的手語圖像進(jìn)行相應(yīng)的預(yù)處理,如手語圖像分割、圖像維度的重構(gòu)等操作,提高模型訓(xùn)練和手語識(shí)別的效果。預(yù)處理流程如圖3所示。
圖3 手語圖像預(yù)處理流程
2.1.3 手語模型訓(xùn)練模塊
將ASL 手勢圖像數(shù)據(jù)集[7]和部分自己制作的數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù),采用TensorFlow 框架進(jìn)行處理,使用VGG-16神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)建訓(xùn)練模型。將訓(xùn)練數(shù)據(jù)中20%的數(shù)據(jù)作為測試集,測試圖像的預(yù)期效果,完成對(duì)24 個(gè)英文字母的靜態(tài)手語圖像以及“安靜”等手勢的識(shí)別。由于26 個(gè)英文字母中J 和Z 的手語是動(dòng)態(tài)表示的,故暫不做考慮。訓(xùn)練模塊處理流程如圖4所示。
圖4 手語模型訓(xùn)練流程
2.1.4 手語識(shí)別模塊
打開攝像頭抓取手語圖像,或者通過上傳圖像的方式將手語圖像傳至后臺(tái),對(duì)獲取到的手語圖像進(jìn)行預(yù)處理;然后選取該手語圖像,加載訓(xùn)練好的模型進(jìn)行手語識(shí)別;最后將識(shí)別結(jié)果返回。手語識(shí)別流程如圖5所示。
圖5 手語識(shí)別流程
2.1.5 軟件界面展示模塊
軟件界面包含手語采集窗口、結(jié)果展示窗口、時(shí)間控件以及各種按鈕(打開攝像頭、關(guān)閉攝像頭、抓取圖像、識(shí)別手語、朗讀結(jié)果、上傳圖像)。將識(shí)別出的手語結(jié)果以文本的方式展示到前端軟件界面的相應(yīng)位置,并提供朗讀按鈕,還可以根據(jù)需求將識(shí)別結(jié)果以語音形式表達(dá)出來。
VGG-Net 中進(jìn)行數(shù)據(jù)強(qiáng)化的方法是多尺度目標(biāo)檢測。該方法是先將圖像等比例地進(jìn)行尺度變化,然后隨意剪切成標(biāo)準(zhǔn)的輸入圖像大小,以此增多數(shù)據(jù)來有效地應(yīng)對(duì)模型訓(xùn)練過程中發(fā)生過擬合的現(xiàn)象。
VGG-16 共有6 個(gè)塊結(jié)構(gòu),每個(gè)塊結(jié)構(gòu)之間用池化層作為分界且其中的通道數(shù)一致。該網(wǎng)絡(luò)結(jié)構(gòu)中的卷積層和池化層用來完成提取特征,全連接層完成分類任務(wù)[8]。VGG-16詳細(xì)結(jié)構(gòu)如圖6所示。
圖6 VGG16 詳細(xì)結(jié)構(gòu)
整個(gè)網(wǎng)絡(luò)有224×224×3 的input(輸入)層和5 個(gè)vgg-block(卷積)塊以及5 個(gè)max pooling(最大化池化)層逐個(gè)相連,然后進(jìn)入FC(全連接)層,直到最后1 000 路softmax(分類)輸出。block 和block 之間通過maxpool 的stride(步長)為2,使pool size(池化單元尺寸)=2 進(jìn)行減半池化,卷積塊內(nèi)部要保證卷積層間形狀相同,卷積核大小統(tǒng)一設(shè)置為3×3。
綜上,基于深度學(xué)習(xí)的分類網(wǎng)絡(luò)就是通過對(duì)輸入網(wǎng)絡(luò)的圖像進(jìn)行多次卷積,然后將降維之后的特征圖平鋪成一維向量,最后通過全連接網(wǎng)絡(luò)分類器得到一個(gè)類別向量。
2.3.1 ReLU 激活函數(shù)
線性整流函數(shù)可以有效解決神經(jīng)網(wǎng)絡(luò)當(dāng)中的梯度消失問題,從而有效穩(wěn)定模型的擬合狀態(tài)。
f(x)=max(0,x)
ReLU 函數(shù)的API 如下:
tf.nn.relu(features,name=None)
參數(shù)如下:
(1)features:類型為浮點(diǎn)型、雙精度浮點(diǎn)型、整型或無符號(hào)整型的張量,卷積后加上偏置的結(jié)果;
(2)name:操作的名稱;
(3)返回:一個(gè)與功能具有相同類型的張量。
2.3.2 Conv2d 卷積函數(shù)
Conv2d 卷積函數(shù)是完成卷積操作的重要函數(shù)。卷積的API 如下:
tf.nn.conv2d(input,filter,strides,padding,use_cudnn_on_gpu=None,name=None)
參數(shù)如下:
(1)input:32/64 位浮點(diǎn)型變量,指輸入的圖像張量的shape 為[圖像批次,高,寬,通道數(shù)];
(2)filter:類似卷積神經(jīng)網(wǎng)絡(luò)中的卷積核,shape 為[高,寬,通道數(shù),卷積核數(shù)量]的四維張量,類型要求、通道數(shù)都與input 一致;
(3)strides:圖像每個(gè)維度卷積的步長,長度最長為4;
(4)padding:填充算法類型的值,決定卷積的方法,參數(shù)VALID 匹配圖像里面的像素,而參數(shù)SAME 是在圖像的外面加0,從而只需要圖像中的一個(gè)像素就可以與卷積核做卷積操作;
(5)use_cudnn_on_gpu:布爾型變量,用來控制是否使用深度學(xué)習(xí)GPU 加速庫來加速計(jì)算;
(5)name:操作的名稱;
(6)結(jié)果:返回與輸入具有相同類型的一個(gè)張量。
2.3.3 max pool 最大池化計(jì)算函數(shù)
max pool 函數(shù)的功能是實(shí)現(xiàn)最大值池化,選取池化窗口中的最大值傳遞給下一層,使特征更加明顯[9]。最大值池化公式如下:
max pool 函數(shù)的API 如下:
tf.nn.max_pool(value,ksize,strides,padding,name=None)
參數(shù)如下:
(1)value:卷積層下面的池化層輸入,通常取[批次,高,寬,通道數(shù)];
(2)ksize:池化窗口取[1,高,寬,1]的4 維向量,由于此處不在批次和通道數(shù)這兩個(gè)維度上做池化操作,所以均置為1;
(3)strides:各個(gè)維度上池化窗口滾動(dòng)的步長,通常取為[1,步長,步長,1];
(4)padding:與卷積函數(shù)參數(shù)說明一致;
(5)name:操作的名稱;
(6)結(jié)果:返回一個(gè)Tensor,最大池化輸出張量,類型不變。
2.3.4 Dropout 隨機(jī)失活函數(shù)
Dropout隨機(jī)失活函數(shù)[10]在模型學(xué)習(xí)的時(shí)候隨機(jī)把輸出層與輸入層之間的某些權(quán)重參數(shù)歸零,以此減少各結(jié)點(diǎn)之間的依賴性,降低模型復(fù)雜度進(jìn)而降低結(jié)構(gòu)風(fēng)險(xiǎn)。
Dropout 的API 如下:
tf.nn.dropout(x,keep_prob,noise_shape=None,seed=None)
參數(shù)如下:
(1)x:浮點(diǎn)型張量;
(2)seed:創(chuàng)建隨機(jī)種子;
(3)noise_shape:整型張量,說明任意產(chǎn)生的保持或替換的形狀;
(4)keep_prob:浮點(diǎn)型,保存每個(gè)元素的概率;
(5)結(jié)果:返回一個(gè)Tensor,與x 具有相同shape。
2.3.5 softmax 歸一化指數(shù)函數(shù)
softmax 歸一化指數(shù)函數(shù)是sigmoid 函數(shù)在多分類問題中的引申,將結(jié)果表示成概率,這樣多個(gè)標(biāo)量就可以反映成一個(gè)概率分布。
其中:exp(xk)是指利用指數(shù)函數(shù)把輸出映射為0 →+∞,使得預(yù)測的結(jié)果大于等于0;是指把結(jié)果相加,然后做歸一化處理。
2.3.6 交叉熵?fù)p失函數(shù)
交叉熵?fù)p失函數(shù)為損失函數(shù)加L2正則化項(xiàng)(系數(shù)為0.0 005)。
其中:y為one-hot 類別;fθ(x)為關(guān)于輸入x和分類器fθ猜測的one-hot 向量;θ為準(zhǔn)備學(xué)習(xí)的參數(shù);L2為正則化項(xiàng)損失。
手語識(shí)別是一個(gè)有監(jiān)督的分類任務(wù),對(duì)于訓(xùn)練數(shù)據(jù),需要提供手語圖片與其對(duì)應(yīng)的標(biāo)簽。本系統(tǒng)使用自制的手語數(shù)據(jù)集和在互聯(lián)網(wǎng)上收集到的部分公開的美國手語數(shù)據(jù)集進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練和測試。
本項(xiàng)目采用American Sign Language 數(shù)據(jù)集和LaRED 數(shù)據(jù)集[10]。American Sign Language 數(shù)據(jù)集中共有5 組手語圖像,每組有24 種手勢,分別對(duì)應(yīng)A~Z 中除J 和Z 的24 個(gè)英文字母(由于J 和Z 兩個(gè)手勢是動(dòng)態(tài)的,本系統(tǒng)暫不考慮),共計(jì)約6 000 張。數(shù)據(jù)集預(yù)覽如圖7所示,該數(shù)據(jù)集中每張手語圖像的大小平均在20 KB 左右,每組圖像都是由不同的人在不同的環(huán)境下拍攝得到的。
圖7 American Sign Language 數(shù)據(jù)集
LaRED 數(shù)據(jù)集是使用Intel 新開發(fā)的短程深度相機(jī)拍攝的深度手勢圖像數(shù)據(jù)集。該數(shù)據(jù)集包含3 個(gè)不同方向的27個(gè)手勢,共構(gòu)成81 個(gè)類,數(shù)據(jù)集中共有10 位志愿者的手勢,每個(gè)手勢約包含300 張圖片。如圖8所示為24 個(gè)字母對(duì)應(yīng)的手語手勢。
圖8 字母對(duì)應(yīng)手語手勢
對(duì)于本次的測試數(shù)據(jù),系統(tǒng)的平均識(shí)別準(zhǔn)確率可以達(dá)到94.80%,其中識(shí)別準(zhǔn)確率最高的手語為A。由于QUIET 的訓(xùn)練數(shù)據(jù)集較少,故識(shí)別準(zhǔn)確率較低。總體來說,系統(tǒng)的識(shí)別準(zhǔn)確率可以達(dá)到預(yù)期設(shè)想,能夠滿足需求。
本文基于深度學(xué)習(xí)、計(jì)算機(jī)視覺等技術(shù),對(duì)手語識(shí)別技術(shù)進(jìn)行研究和探索,構(gòu)造了正常人與聾啞人之間的無障礙交流平臺(tái),為后續(xù)進(jìn)一步探索指明了方向。后續(xù)的改進(jìn)方向如下:
(1)樣本數(shù)據(jù)集的擴(kuò)充:目前手語數(shù)據(jù)集的數(shù)據(jù)量還有待擴(kuò)充,數(shù)據(jù)模型的適用性及準(zhǔn)確性對(duì)數(shù)據(jù)集的質(zhì)量和數(shù)量有著很強(qiáng)的依賴性,巨量的訓(xùn)練數(shù)據(jù)能夠大幅度地提高模型的識(shí)別精度和識(shí)別范圍,用于更多的情景之中。
(2)實(shí)現(xiàn)動(dòng)靜結(jié)合的手語識(shí)別:動(dòng)態(tài)的手語擁有更強(qiáng)的復(fù)雜度和隨機(jī)性,可以更好地完成語義的表達(dá)轉(zhuǎn)換,動(dòng)靜結(jié)合的手語識(shí)別也能夠更好地應(yīng)用于生活的方方面面,是非常值得研究的方向。
(3)系統(tǒng)優(yōu)化:對(duì)系統(tǒng)的代碼、所使用的算法等進(jìn)行優(yōu)化,提高神經(jīng)網(wǎng)絡(luò)對(duì)數(shù)據(jù)特征選擇提取的學(xué)習(xí)能力,實(shí)現(xiàn)復(fù)雜場景下的手語識(shí)別,提高系統(tǒng)對(duì)新數(shù)據(jù)的識(shí)別效率,改善系統(tǒng)識(shí)別的實(shí)時(shí)性、準(zhǔn)確性與穩(wěn)定性。