楊明羽,葉春明
(上海理工大學(xué) 管理學(xué)院,上海 200093)
手語(yǔ)通過(guò)擺出不同的手臂與手的姿勢(shì),輔以表情及其他肢體動(dòng)作傳達(dá)信息,是聾啞人重要的溝通語(yǔ)言,也是幫助他們?nèi)谌肷鐣?huì)的重要工具[1]。美式手語(yǔ)(American Sign Language,ASL)是適用于美國(guó)、加拿大等地區(qū)的手語(yǔ)語(yǔ)言[2-3]。在ASL 中,包含靜態(tài)手勢(shì)和動(dòng)態(tài)手勢(shì),以J 和Z 表示動(dòng)態(tài)手勢(shì),其余字母表示靜態(tài)手勢(shì)。但由于人類的手非常靈活,可以擺出很多形狀,因此增加了手勢(shì)識(shí)別的難度。
近年來(lái),許多學(xué)者在ASL 圖片的識(shí)別問(wèn)題上,使用流行的神經(jīng)網(wǎng)絡(luò)進(jìn)行研究。ASHA 等[4]提出一種通過(guò)提取靜態(tài)ASL 圖片的特征直方圖、統(tǒng)計(jì)量度等進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練的識(shí)別算法,最高識(shí)別率為98.17%。QUTAISHAT 等[5]通過(guò)使用霍夫變換和神經(jīng)網(wǎng)絡(luò)開發(fā)了ASL 語(yǔ)言翻譯及標(biāo)志系統(tǒng),識(shí)別準(zhǔn)確度率為92.3%。ADITHYA 等[6]通過(guò)使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[7]對(duì)ASL 數(shù)據(jù)集進(jìn)行訓(xùn)練預(yù)測(cè),準(zhǔn)確率達(dá)到94.7%。但在使用神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí),往往需要花費(fèi)大量的時(shí)間在訓(xùn)練模型上[8]。特別是近年來(lái)CNN的網(wǎng)絡(luò)層數(shù)不斷加深[9]和可訓(xùn)練參數(shù)驟增,更凸顯了模型訓(xùn)練時(shí)間過(guò)長(zhǎng)的問(wèn)題。因此,一些學(xué)者提出了將主成分分析(Principal Component Analysis,PCA)與神經(jīng)網(wǎng)絡(luò)相結(jié)合的觀點(diǎn)。吳偉[10]提出PCA 與CNN 相結(jié)合識(shí)別ASL 圖片的方法,通過(guò)在CNN 前插入PCA 層進(jìn)行特征降維,大幅提升了訓(xùn)練速度,且識(shí)別率達(dá)到94.45%。鐘健等[11]提出一種PCA 與自組織神經(jīng)網(wǎng)絡(luò)SOM 相結(jié)合的識(shí)別方法,使用SOM 作為分類器進(jìn)行圖片分類,同樣顯著提高了識(shí)別速度,且識(shí)別率穩(wěn)定在90%左右。上述方法使用的PCA 均在一維數(shù)據(jù)中使用,針對(duì)圖片等二維數(shù)據(jù),學(xué)者們又發(fā)展了二維主成分分析(Two-Dimensional PCA,2DPCA)[12]和雙向二維主成分分析(Bidirectional 2DPCA,Bi-2DPCA)[13]方法。相比于一維的PCA,改進(jìn)后的2DPCA 和Bi-2DPCA 對(duì)圖像的降維效果更好,提升速度的效果更明顯。
在基于神經(jīng)網(wǎng)絡(luò)的各種模型中,超參數(shù)的選擇對(duì)模型的性能影響很大,不恰當(dāng)?shù)某瑓?shù)或?qū)⒅苯佑绊懩P偷膽?yīng)用效果。近幾年在ImageNet比賽中獲得成功的GoogleNet、ResNet-52 和DenseNet 都需要對(duì)超參數(shù)進(jìn)行精細(xì)地調(diào)整,這3 個(gè)模型分別有78、150、376 個(gè)超參數(shù)[14],若手動(dòng)調(diào)參則會(huì)浪費(fèi)非常多的時(shí)間。因此,在優(yōu)化超參數(shù)時(shí)可使用粒子群優(yōu)化(Particle Swarm Optimization,PSO)算法[15]、遺傳算法(Genetic Algorithm,GA)[16]、貝葉斯優(yōu)化(Bayesian Optimization,BO)算法[17-19]等自動(dòng)調(diào)參算法。
為提高ASL 圖片識(shí)別準(zhǔn)確性同時(shí)加快模型訓(xùn)練速度,本文提出基于Bi-2DPCA 與CNN 的美式手語(yǔ)識(shí)別算法。利用Bi-2DPCA 對(duì)原始圖片進(jìn)行降維預(yù)處理,在此基礎(chǔ)上提取特征矩陣,并將降維后的數(shù)據(jù)輸入CNN 網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練。同時(shí),使用貝葉斯優(yōu)化方法,通過(guò)設(shè)計(jì)超參數(shù)的選取及其范圍優(yōu)化CNN的超參數(shù)。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)用于處理空間上有關(guān)聯(lián)的數(shù)據(jù)[20],其使用多個(gè)較小的卷積核(filter),有規(guī)律地掃描數(shù)據(jù)。CNN 的網(wǎng)絡(luò)連接是稀疏連接,卷積核使用的是共享參數(shù),這極大地減少了網(wǎng)絡(luò)可訓(xùn)練參數(shù)的數(shù)量,加快了網(wǎng)絡(luò)訓(xùn)練速度。CNN 的基本結(jié)構(gòu)由輸入層、卷積層、激活層、池化層、丟棄層(Dropout)、全連接層和輸出層構(gòu)成。在卷積層后加入批歸一化層(Batch Normalization,BN)可以進(jìn)一步增強(qiáng)網(wǎng)絡(luò)的性能和泛化能力[21-22]。
卷積層中有多個(gè)卷積核,對(duì)于前一網(wǎng)絡(luò)層傳入的圖像或特征圖,在其每一圖層都有一個(gè)卷積核進(jìn)行掃描。卷積核計(jì)算公式為:
BN 層對(duì)一批數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化,使數(shù)據(jù)符合以0為均值、以1 為標(biāo)準(zhǔn)差的分布,計(jì)算公式為:
池化層向下采樣可增加感受野,緩解過(guò)擬合。目前,常用的池化方法有最大值池化和均值池化。
Dropout 層在訓(xùn)練時(shí)舍棄一定比例的神經(jīng)元,這使得網(wǎng)絡(luò)的訓(xùn)練參數(shù)變少,增加了網(wǎng)絡(luò)的泛化能力,減少了某些神經(jīng)元的依賴性。當(dāng)網(wǎng)絡(luò)中存在BN 層時(shí),Dropout 的比例可適當(dāng)減少。
CNN 使用Adam 優(yōu)化器對(duì)Softmax 的交叉熵函數(shù)進(jìn)行優(yōu)化。Adam 定義了一階動(dòng)量mt和二階動(dòng)量Vt,分別為當(dāng)前t次迭代時(shí)梯度gt的一次函數(shù)與二次函數(shù),β1與β2為超參數(shù),設(shè)置為0.9 與0.999。一階和二階動(dòng)量表達(dá)式分別如式(4)和式(5)所示:
PCA 算法核心思想是將樣本投影到一個(gè)超平面上,并使所有樣本的投影盡可能分開,即最大化投影點(diǎn)的方差。2DPCA 針對(duì)圖片等二維矩陣,不需要將圖片數(shù)據(jù)打平為一維數(shù)據(jù),極大地減少了維度[12]。
利用2DPCA 算法對(duì)圖片Xi(m行n列)進(jìn)行特征提取,其中投影基W(n行k列)的列寬遠(yuǎn)小于圖片矩陣,由此可得到最后的投影矩陣為:
最后的投影矩陣Y為m行k列,實(shí)現(xiàn)了圖片在列維度的降維。其中,W矩陣為原數(shù)據(jù)中心化后的協(xié)方差矩陣前k個(gè)特征值組成的特征向量。協(xié)方差矩陣Gt表示為:
其中:N為樣本總數(shù)為樣本均值。計(jì)算Gt矩陣的特征值和特征向量,取前k個(gè)特征值組成的特征向量構(gòu)成W矩陣,即可計(jì)算最后的投影矩陣Y。
由于2DPCA 只對(duì)列維度進(jìn)行降維,整體維度仍比較大,因此出現(xiàn)了改進(jìn)算法Bi-2DPCA,其將2DPCA 處理后的數(shù)據(jù)Y(m行k列)繼續(xù)投影到某組基C上,得到最終的投影矩陣U,表示為:
其中,C為由新樣本構(gòu)造的協(xié)方差矩陣前j個(gè)特征值組成的特征向量。表示為:
最后得到行變換C與列變換W,將行列變換合并。對(duì)于圖片Xi,降維后的特征矩陣A的維度為j行k列,其中j和k遠(yuǎn)小于原始圖片的m和n,則行列變換矩陣公式為:
若對(duì)特征矩陣進(jìn)行復(fù)原顯示,則可得到:
在Bi-2DPCA 算法中也存在2 個(gè)超參數(shù),即列降維選取的k取值與行降維選取的j取值,其經(jīng)驗(yàn)選取為特征值貢獻(xiàn)率為0.9~0.99 的特征數(shù)[12]。
貝葉斯優(yōu)化(BO)算法基于順序模型,其目標(biāo)函數(shù)不需要具有可導(dǎo)、連續(xù)等數(shù)學(xué)性質(zhì),并且如果是昂貴的黑盒函數(shù),也可以在比較少的迭代次數(shù)內(nèi)計(jì)算得到最佳的取值[17]。
在BO 算法中,最重要的2 個(gè)部分是概率代理模型和采集函數(shù)。概率代理模型用于替代評(píng)估代價(jià)高昂的目標(biāo)函數(shù),常用的代理模型有貝塔-伯努利(Beta-Bernoulli)模型、線性模型、高斯過(guò)程(Gaussian Processes,GP)模型等。GP模型具有較好的靈活性、可拓展性和可分析性,是BO 中應(yīng)用最廣泛的概率代理模型。該模型由均值函數(shù)和協(xié)方差函數(shù)構(gòu)成,如式(12)所示:
其中:r為l為尺度參數(shù)。
采集函數(shù)從搜索域X中選擇評(píng)估點(diǎn),將其映射到實(shí)數(shù)空間α:X→R。該函數(shù)由已觀測(cè)數(shù)據(jù)集D1:t的后驗(yàn)分布組成,通過(guò)最大化該函數(shù)尋找下一個(gè)評(píng)估點(diǎn)xt+1,如式(14)所示:
該過(guò)程基于提升的策略EI(Expected Improvement),采集函數(shù)為:
其中:υ*為當(dāng)前最優(yōu)函數(shù)值;φ(·)為標(biāo)準(zhǔn)正態(tài)分布密度函數(shù);μt(x)為均值;σt(x)為標(biāo)準(zhǔn)差。
本文提出Bi-2DPCA-CNN 算法,算法流程如圖1所示。
圖1 Bi-2DPCA-CNN 算法流程Fig.1 Procedure of Bi-2DPCA-CNN algorithm
本文使用的ASL 數(shù)據(jù)集來(lái)源于Kaggle,為24 分類樣本,對(duì)應(yīng)A~Z(除去J、Z)的24 個(gè)英文字母,每一類有3 000 張圖片,共72 000 張圖片。每個(gè)字母對(duì)應(yīng)的照片集都在光照、姿勢(shì)、位置等方面有所不同,可以較好地模擬真實(shí)識(shí)別場(chǎng)景。圖2 展示了ASL 數(shù)據(jù)集部分圖片及其字母表示。
圖2 ASL 數(shù)據(jù)集部分圖片及其字母表示Fig.2 Some pictures of ASL dataset and their letter representations
圖2 中每張圖片的原始尺寸大小為200 像素×200 像素,在進(jìn)行特征估計(jì)并排序后,前30 位特征柱狀圖如圖3 所示。可以看出,排名高的特征值遠(yuǎn)大于其他特征值。
圖3 前30 個(gè)特征柱狀圖Fig.3 Top 30 feature histograms
若對(duì)圖像進(jìn)行復(fù)原,則可以直觀地看出降維后的效果,圖4~圖6分別為原始灰度圖與降維到100、50、25維度復(fù)原圖像的對(duì)比圖。可以看出降維到25 的復(fù)原圖像仍然可以還原手勢(shì)的形狀,所以,Bi-2DPCA 降維參數(shù)選擇為25,即200 像素×200 像素的原圖降維成25 像素×25 像素的尺寸。
圖4 100 維度原圖與復(fù)原圖對(duì)比Fig.4 Comparison of 100-dimensional original image and restored image
圖5 50 維度原圖與復(fù)原圖對(duì)比Fig.5 Comparison of 50-dimensional original image and restored image
圖6 25 維度原圖與復(fù)原圖對(duì)比Fig.6 Comparison of 25-dimensional original image and restored image
如圖7 所示,本文設(shè)計(jì)包含多個(gè)卷積層和池化層的卷積神經(jīng)網(wǎng)絡(luò)。加入BN 層進(jìn)行數(shù)據(jù)批標(biāo)準(zhǔn)化,并在Dropout 層進(jìn)行丟棄處理,避免過(guò)擬合,最后接入全連接層和Softmax 分類器進(jìn)行分類。
圖7 包含多個(gè)卷積層和池化層的CNN 結(jié)構(gòu)Fig.7 Structure of CNN with multiple convolution layers and pooling layers
卷積層、池化層和Dropout 層參數(shù)項(xiàng)如下,參數(shù)范圍如表1 所示。
表1 參數(shù)范圍Table 1 Range of parameters
1)卷積層1:卷積核的大小為dim1,數(shù)量為num_conv1。
2)池化層1 :池化大小為pool。
3)卷積層2:卷積核的大小為dim2,數(shù)量為num_conv2。
4)池化層2:池化大小為pool。
5)Dropout 層:丟棄率為drop。
6)學(xué)習(xí)率:設(shè)置為優(yōu)化參數(shù)lr。
本文實(shí)驗(yàn)使用Windows10 系統(tǒng),編程語(yǔ)言為Python,實(shí)驗(yàn)平臺(tái)使用TensorFlow2.1 版本,采用GPU加速,處理器為Inter i7-8750H 處理器,顯卡為NVIDIA GTX1060,6 GB 顯存。實(shí)驗(yàn)使用的樣本為72 000 張圖片,其中60 000張作為訓(xùn)練集,12 000張作為測(cè)試集集,模型迭代50 次,保存模型每次迭代的準(zhǔn)確率與損失。評(píng)價(jià)指標(biāo)選取準(zhǔn)確率、訓(xùn)練時(shí)間、測(cè)試時(shí)間和F1 值。
分別使用以下模型對(duì)ASL 數(shù)據(jù)集識(shí)別并進(jìn)行實(shí)驗(yàn)分析,驗(yàn)證Bi-2DPCA 對(duì)CNN 整體性能的提升:1)文獻(xiàn)[10]中的PCA-CNN 模型(下文簡(jiǎn)稱a-CNN模型);2)文獻(xiàn)[6]中的CNN 模型(下文簡(jiǎn)稱b-CNN無(wú)改進(jìn)模型);3)文獻(xiàn)[6]中加入Bi-2DPCA 的CNN模型(下文簡(jiǎn)稱b-CNN-2DPCA 模型);4)本文設(shè)計(jì)的CNN 網(wǎng)絡(luò)無(wú)改進(jìn)模型(下文簡(jiǎn)稱CNN 無(wú)改進(jìn)模型);5)本文設(shè)計(jì)的Bi-2DPCA-CNN 模型。
5 種模型的實(shí)驗(yàn)評(píng)價(jià)指標(biāo)如表2 所示??梢钥闯觯篴-CNN 模型雖然使用PCA 算法,但未使用Bi-2DPCA,仍需要花費(fèi)大量時(shí)間將圖片變?yōu)橐痪S向量進(jìn)行樣本矩陣的降維,且計(jì)算的協(xié)方差矩陣維度較大,無(wú)法準(zhǔn)確地進(jìn)行特征向量估計(jì),影響了準(zhǔn)確率與F1 值,其準(zhǔn)確率和F1 值分別為95.82%、95.67%,測(cè)試時(shí)間為158 s;b-CNN-2DPCA 模型使用3 輪卷積池化結(jié)構(gòu),由于存在較多的可訓(xùn)練參數(shù),訓(xùn)練時(shí)間較長(zhǎng),在進(jìn)行Bi-2DPCA改進(jìn)后,準(zhǔn)確率為98.32%,提升了0.28%,F(xiàn)1值為98.17%,提升了0.54%,訓(xùn)練時(shí)間縮減了91.5%,測(cè)試時(shí)間從244 s減少到96 s;本文提出的Bi-2DPCA-CNN 模型相比于CNN無(wú)改進(jìn)模型,準(zhǔn)確率為98.28%,降低了0.03%,F(xiàn)1值為98.26%,提升了0.02%,訓(xùn)練時(shí)間從3 707.3 s 縮短到358.2 s,縮減了90.3%,測(cè)試時(shí)間從232 s 減少到90 s,縮減了61.2%。圖8 為Bi-2DPCA-CNN 模型的準(zhǔn)確率與損失曲線。
表2 不同模型的評(píng)價(jià)指標(biāo)Table 2 Evaluation indicators of different methods
圖8 Bi-2DPCA-CNN 模型的準(zhǔn)確率與損失曲線Fig.8 Accuracy and loss cruves of Bi-2DPCA-CNN model
在Bi-2DPCA-CNN 的基礎(chǔ)上繼續(xù)使用貝葉斯算法優(yōu)化網(wǎng)絡(luò)存在的超參數(shù)。在上文2.2 節(jié)中,設(shè)計(jì)了7 組變量并分別設(shè)定了范圍,本文使用貝葉斯優(yōu)化算法,將7 組變量作為算法的輸入、將Bi-2DPCA-CNN的準(zhǔn)確率作為輸出進(jìn)行自動(dòng)調(diào)參迭代。在進(jìn)行5 次初始化尋優(yōu)和10 次自動(dòng)尋優(yōu)后,得出模型最優(yōu)參數(shù)。貝葉斯優(yōu)化后的模型最優(yōu)參數(shù)如表3 所示。
表3 Bi-2DPCA-CNN 模型最優(yōu)參數(shù)Table 3 Optimal parameters of Bi-2DPCA-CNN model
使用貝葉斯優(yōu)化后的最優(yōu)模型與未使用貝葉斯優(yōu)化的模型評(píng)價(jià)指標(biāo)如表4 所示。可以看出:經(jīng)過(guò)貝葉斯優(yōu)化后的模型性能更好,準(zhǔn)確率為99.15%,提升了0.87%,F(xiàn)1 值為99.02%,提升了0.76%;對(duì)比文獻(xiàn)[6]未經(jīng)貝葉斯優(yōu)化的模型,準(zhǔn)確率提升了1.11%,F(xiàn)1 值提升了1.39%。
表4 貝葉斯優(yōu)化前后Bi-2DPCA-CNN 性能對(duì)比Table 4 Performance comparison of Bi-2DPCA-CNN before and after Bayesian optimization %
圖9 為貝葉斯優(yōu)化后Bi-2DPCA-CNN 模型的準(zhǔn)確率與損失曲線??梢钥闯觯涸撃P褪褂肂i-2DPCA 算法對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,在保留原圖特征的同時(shí)降低了尺寸大小,顯著減少了運(yùn)行時(shí)間。在使用貝葉斯優(yōu)化后,準(zhǔn)確率與F1 值都有所提升。同時(shí),2D2DPCA 算法與其他模型結(jié)合也有較好的結(jié)果,能夠有效減少訓(xùn)練時(shí)間。
圖9 貝葉斯優(yōu)化后Bi-2DPCA-CNN 的準(zhǔn)確率與損失曲線Fig.9 Accuracy and loss cruves of Bi-2DPCA-CNN after Bayesian optimization
針對(duì)現(xiàn)有算法識(shí)別ASL 數(shù)據(jù)集訓(xùn)練模型速度慢和識(shí)別準(zhǔn)確率低的問(wèn)題,本文提出Bi-2DPCA-CNN算法。在圖片預(yù)處理階段使用Bi-2DPCA 算法對(duì)原始圖片特征提取降維,保留原圖重要特征并減小圖片尺寸。在此基礎(chǔ)上,設(shè)計(jì)多層卷積、池化結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征圖的識(shí)別分類,并加入批歸一化層與丟棄層防止過(guò)擬合。同時(shí),使用貝葉斯優(yōu)化方法對(duì)卷積神經(jīng)網(wǎng)絡(luò)中的超參數(shù)進(jìn)行優(yōu)化,以實(shí)現(xiàn)模型的最優(yōu)化。在對(duì)24 分類ASL 圖片進(jìn)行識(shí)別時(shí),該算法在準(zhǔn)確率、訓(xùn)練時(shí)間、F1 值方面較文獻(xiàn)[6,10]方法均具有優(yōu)勢(shì),驗(yàn)證了算法的有效性,并且2DPCA 算法得到了特征值矩陣,對(duì)不同識(shí)別任務(wù)可獲得基于當(dāng)前數(shù)據(jù)集的特征值,在其他圖像識(shí)別問(wèn)題上也有可拓展性。本文工作僅針對(duì)ASL 數(shù)據(jù)集英文靜態(tài)字母,并未對(duì)動(dòng)態(tài)字母及其他手語(yǔ)動(dòng)作進(jìn)行識(shí)別,下一步研究將聚焦于動(dòng)態(tài)手勢(shì)識(shí)別,包括單張圖片出現(xiàn)多個(gè)動(dòng)態(tài)手勢(shì)的復(fù)雜情況,以及手勢(shì)遮擋等問(wèn)題。