劉詩瑤,張忠民
哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001
手語識別(sign language recognition, SLR)將手語視頻翻譯成自然語言,從而擬合聾啞人與正常人之間的溝通鴻溝[1]。在手語識別任務(wù)中,主要分為2 類:孤立手語識別(isolated sign language recognition, ISLR)和連續(xù)手語識別(continuous sign language recognition, CSLR)。ISLR 是一種細(xì)粒度的動作識別,每一個視頻中只包含一個手語動作,孤立手語識別其實就相當(dāng)于是動作識別。然而CSLR 是將視頻序列轉(zhuǎn)換為句子序列的任務(wù),在連續(xù)手語識別任務(wù)中,對于每個視頻,只提供有序的符號注釋,沒有時間邊界注釋[2]。連續(xù)手語識別任務(wù)比較困難,也是本文的研究重點。
目前大多數(shù)的連續(xù)手語識別架構(gòu)包含3 個組件:特征提取模型、上下文模型以及對齊模型。特征提取模型首先從輸入的視頻幀中提取視覺特征,上下文模型關(guān)注的則是句子中詞與詞之間的相關(guān)性。對齊模型主要解決標(biāo)簽沒有時間邊界的問題。在特征提取方面,早期的工作設(shè)計了細(xì)粒度的手工特征提取[3],例如梯度直方圖(gradient histogram, HOG) 、 尺度不變特征變換(scale invariant feature transformation , SIFT)、在幀級手動跟蹤面部特征等。最近的研究中展示了在連續(xù)手語識別中深層特征相對于手工特征的優(yōu)越性。在深度方法中,二維卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)[4]是幀級提取特征最常用的方法。然而二維CNN 不考慮時間依賴性,這通常由循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)來解決這個問題。此外,文獻(xiàn)[5]用三維 CNN 來提取時空特征,雖然三維CNN提取的時空特征更為自然,但它的計算成本很高,并需要調(diào)整大量參數(shù)。除此之外還可以利用二維和一維CNN[6]的組合來提取片段的特征,與三維CNN 相比,該方法在可調(diào)整參數(shù)少的情況下也獲得了非常不錯的結(jié)果。在連續(xù)手語識別任務(wù)中,由于只提供句子級的標(biāo)簽,沒有明確的時間邊界,所以需要一個對齊模型來找到視頻幀和注釋標(biāo)簽之間的映射關(guān)系,以便模型可以進(jìn)行訓(xùn)練。與傳統(tǒng)的應(yīng)用隱式馬爾可夫模型 (hidden markov model, HMM)[7]方法不同的是Graves 等[8]采用了連接時態(tài)分類(connectionist temporal classification, CTC)[9]的方法進(jìn)行對齊。CTC 不依賴于輸入和輸出序列之間的事先對齊,而是在模型訓(xùn)練期間集成所有可能對齊。CTC 損失將所有可能的對齊路徑的概率最大化。
在本文中將選用CTC 作為對齊模型,但是基于CTC 對齊方法的模型在訓(xùn)練過程中通常都需要對特征提取部分進(jìn)行微調(diào),已經(jīng)有研究[10]表明特征提取網(wǎng)絡(luò)在端到端的學(xué)習(xí)中無法進(jìn)行充分的學(xué)習(xí)從而得到有效的特征。為了解決這個問題,本文提出增加輔助對齊模塊,來強制特征提取器僅基于視覺特征來進(jìn)行預(yù)測,使用聚合交叉熵散度[11]和CTC 損失函數(shù)進(jìn)行聯(lián)合訓(xùn)練。為了更好地提取特征,在特征提取模塊采用2D 和1D CNN提取幀級特征,與3D CNN 相比,需要調(diào)整的參數(shù)更少,并加入通道-空間注意力機(jī)制模塊(convolutional block attention module, CBAM)。同時為了提高模型魯棒性以及緩解過擬合的問題,在訓(xùn)練過程中進(jìn)行隨機(jī)掉幀機(jī)制。本文的具體工作如下:1)對連續(xù)手語識別中的基礎(chǔ)模塊設(shè)計進(jìn)行簡單介紹;2)對基礎(chǔ)模塊進(jìn)行改進(jìn),并對隨機(jī)掉幀機(jī)制、引入的注意力機(jī)制以及聯(lián)合訓(xùn)練策略進(jìn)行詳細(xì)介紹;3)通過消融以及對比實驗證明方法的可行性。
現(xiàn)有的基于端到端進(jìn)行連續(xù)手語識別的框架主要包括特征提取、序列學(xué)習(xí)以及對齊模塊這3 個基礎(chǔ)部分。本文網(wǎng)絡(luò)的整體設(shè)計也遵循這一思路。在本節(jié)對基礎(chǔ)模塊的設(shè)計進(jìn)行簡單介紹?;A(chǔ)框架如圖1 所示,在特征提取階段首先使用2D-CNN 提取幀級特征,再用1D-CNN 提取時間感受野為 Δt的局部視覺信息。在序列學(xué)習(xí)階段,將1D-CNN 輸出作為視覺特征送入到雙向長短時記憶網(wǎng)(Bi-directional long short-term memory,BiLSTM),并選用CTC 作為對齊模型。
圖1 連續(xù)手語識別基本框架
基于視頻的手語翻譯的主要目的是將輸入的長度為T幀的視頻序列x=(x1,x2,···,xT)預(yù)測成相應(yīng)的標(biāo)簽序列l(wèi)=(l1,l2,···,lN)。特征提取器在整個網(wǎng)絡(luò)架構(gòu)中非常的重要。如圖1 所示,選擇ResNet-18[12]來提取幀特征,選擇1D-CNN 從相鄰的幀中提取運動信息。用來表示輸入的長度為T的視頻流,使用fCNN來代表二維CNN將輸入視頻序列轉(zhuǎn)換成某種空間表示序列,其中C代表特征維度。將得到的特征序列送入到1D-CNN 模塊,通過時間卷積以及池化操作之后得到Rt×C→RD,本文用?代表感受野,用δ代表時間步長,用D代表輸出維度,可以得到:
在序列學(xué)習(xí)階段循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)是最常用到的網(wǎng)絡(luò)結(jié)構(gòu),單向的RNN 有一個缺點是它的隱藏層狀態(tài)僅以以前的時間步計算。然而手語識別中每個手勢的表現(xiàn)和意義與其前后的語境都密切相關(guān)。因此本文使用BiLSTM[13]將時空表示序列映射到有序的標(biāo)簽序列,BiLSTM 將前向的長短期記憶網(wǎng)絡(luò)(long short-term memory, LSTM)和后向的LSTM 結(jié)合起來,分別計算前向和后向的隱藏序列:
式中:、為前向LSTM 模塊在第t個時間步隱藏層的狀態(tài),、為后向LSTM 的隱藏狀態(tài),ffro和bck分別為前向和后向傳播系數(shù)。此種計算方式有助于遞歸神經(jīng)網(wǎng)絡(luò)同時利用前向信息和后向信息[14]。最后,通過softmax 分類器計算M個標(biāo)簽的分類概率:
式中:W和b為softmax 分類器所需要學(xué)習(xí)的權(quán)重矩陣和偏差向量,[;]為串聯(lián)操作。
上下文模型生成具有T個時間步長的時空特征序列,為了將特征序列與目標(biāo)標(biāo)簽序列對齊,本文使用CTC 方法[9]。CTC 是不需要輸入輸出對齊的,但是對于給定的輸入,為了計算對應(yīng)輸出標(biāo)簽的概率,仍需要對所有可能的對齊概率求和。CTC 引入了一系列的隱藏變量π={π1,π2,···,πT},πt∈V∪{blank},其中blank代表的是空白標(biāo)簽,是用于表示靜默時間步和分隔連續(xù)重復(fù)光澤符號的特殊標(biāo)記。隱藏狀態(tài) πt表示輸入時間步長t與目標(biāo)句子中相應(yīng)的符號之間的對齊。給定完整序列的CTC 校準(zhǔn)路徑的后驗概率定義為
后驗概率公式是為了將路徑 π轉(zhuǎn)換為相應(yīng)的符號序列,CTC 定義了一種多對一的映射操作B,它刪除對齊路徑中的所有空白標(biāo)簽和重復(fù)單詞,例如:B(aa-a-b)=B(-aa-abb)=B(a-aaa-b)=aab,用這種方法,可以根據(jù)給定的輸入序列x={x1,x2,···,xT}和標(biāo)簽序列y={y1,y2,···,yL}得到條件概率:
p(π|x)可以近似地計算成CTC 損失可以被定義為
以CTC 損失函數(shù)對模型進(jìn)行端到端的訓(xùn)練會導(dǎo)致對齊模塊過度擬合,特征提取器無法得到充分訓(xùn)練。本節(jié)在圖1 的基礎(chǔ)上提出了一種增加輔助對齊模塊和注意力機(jī)制的完整框架,此外,為了緩解過擬合問題,在數(shù)據(jù)讀取階段還引入隨機(jī)掉幀機(jī)制。改進(jìn)的完整網(wǎng)絡(luò)框架如圖2 所示。
圖2 改進(jìn)連續(xù)手語識別框架
由于手語數(shù)據(jù)集中的手語數(shù)據(jù)有限,過擬合仍然是訓(xùn)練中存在的一個主要問題。為了避免網(wǎng)絡(luò)過度學(xué)習(xí)一些具有代表性的幀而忽略不太具有代表性的幀,本文使用隨機(jī)掉幀機(jī)制,在網(wǎng)絡(luò)的訓(xùn)練過程中隨機(jī)丟掉一些幀。由于數(shù)據(jù)集中每個視頻的時間有長有短,定義一個取樣間隔F,每個視頻的取樣間隔取決于總幀數(shù),將讀取到的數(shù)據(jù)幀保存到列表中,并以一定的比例隨機(jī)丟棄一些幀。定義一個參數(shù)pdrop,根據(jù)此參數(shù)刪除一個列表中隨機(jī)索引對應(yīng)的元素,并保證最后送入網(wǎng)絡(luò)中的每個視頻的幀數(shù)相同。隨機(jī)掉幀不僅提高了時間效率,還減少了內(nèi)存占用,因為在訓(xùn)練和測試過程中處理的幀更少。
為了提升特征提取器的性能本文在殘差結(jié)構(gòu)后加入通道-空間注意力機(jī)制[15]。CBAM 注意力網(wǎng)絡(luò)的結(jié)構(gòu)如圖3 所示。
圖3 CBAM 注意力機(jī)制
采用通道注意力模塊與空間注意力模塊順序連接的方式,輸入的特征F與通道注意力模塊作用點乘,得到特征,同理得到改進(jìn)之后的特征。其中通道注意力機(jī)制是將特征圖在空間維度上進(jìn)行壓縮,得到一個一維矢量后再進(jìn)行操作。在空間維度上進(jìn)行壓縮時,不僅考慮到了平均值池化(average pooling)還考慮了最大值池化(max pooling),其作用原理如圖4 所示。
圖4 通道注意力機(jī)制
空間注意力機(jī)制是對通道進(jìn)行壓縮,在通道維度分別進(jìn)行了平均值池化和最大值池化,其原理如圖5 所示。
圖5 空間注意力機(jī)制
通道注意力和空間注意力模塊一個關(guān)注位置,另一個關(guān)注內(nèi)容,二者相輔相成。因為本文使用的2D-CNN 網(wǎng)絡(luò)是在ImagNet 上預(yù)訓(xùn)練好的,因此不能破壞ResNet 的網(wǎng)絡(luò)結(jié)構(gòu)。本文將CBAM 模塊加在最后一層卷積后,同時本次實驗選擇將原始二維殘差網(wǎng)絡(luò)的最后一層線性層去掉。注意力機(jī)制所加位置如圖6 所示,圖6 中上下2 部分分別代表對特征的通道和空間注意力。
圖6 CBAM-ResNet
由于CTC 函數(shù)使得對齊模塊在樣本有限的CSLR 數(shù)據(jù)集上比特征提取器收斂得快得多,并且無法向特征提取器提供足夠的反饋。對齊模塊的過度擬合導(dǎo)致特征抽取器的訓(xùn)練不足,并降低訓(xùn)練模型的泛化能力。為了增強特征提取器,本結(jié)構(gòu)利用輔助分類器將特征提取器提取到的特征序列進(jìn)行片段級特征學(xué)習(xí)。輔助分類器能夠在片段級別對符號詞進(jìn)行分類,有助于全局序列特征提取。輔助分類器添加在特征提取器后面為
增加的輔助分類器使片段級特征學(xué)習(xí)更加直接,而不是靠序列學(xué)習(xí)的反向傳播。為了實現(xiàn)這一點,本文選擇使用在場景文本識別領(lǐng)域中使用的聚合交叉熵(ACE)損失函數(shù)[11]。不同于CTC損失函數(shù),聚合交叉熵不考慮路徑對齊的問題,而是計算預(yù)測序列中出現(xiàn)的目標(biāo)單詞數(shù)為
式中:詞匯表中第k個符號詞的標(biāo)準(zhǔn)化數(shù)量為=Nk/T,Nk為在真實的標(biāo)簽序列中出現(xiàn)符號k的數(shù)量;為在時刻t第k個單元的輸出。聚合交叉熵?fù)p失函數(shù)強制特征提取器為對齊模塊提供更加強大的視覺特征,在此損失的幫助下,特征提取模塊獲得了與對齊模塊一致的監(jiān)督,最終損失函數(shù)由全局CTC 損失和輔助的ACE 損失構(gòu)成為
本文使用目前比較流行的手語數(shù)據(jù)集,即中文手語數(shù)據(jù)集(Chinese sign language dataset, CSL)[16]來驗證所提出方法的有效性。中文手語數(shù)據(jù)集是在實驗室條件下收集的,共有100 個手語句子,詞匯量為178。一共有50 名手語演示者將每句話重復(fù)表演5 次,數(shù)據(jù)集中總共包含25 000 個視頻,總時長超過100 h。本文按照8∶2 的比例將數(shù)據(jù)集拆分為訓(xùn)練集與測試集。使用標(biāo)準(zhǔn)度量—單詞錯誤率(word error rate, WER)來衡量2 個句子之間的相似性,測量替換、刪除(del)和插入(ins)的最小操作,將預(yù)測序列轉(zhuǎn)換為標(biāo)簽序列。256×256數(shù)據(jù)集中部分視頻幀如圖7 所示。
圖7 數(shù)據(jù)集中部分視頻幀
本文選用ResNet18[12]作為進(jìn)行逐幀特征提取的網(wǎng)絡(luò),并在ImageNet 上進(jìn)行預(yù)訓(xùn)練獲得預(yù)權(quán)重。所有的幀大小調(diào)整為256×256。本文使用Adam 優(yōu)化器訓(xùn)練,batch size 設(shè)置為8,初始學(xué)習(xí)率設(shè)置為10-4,權(quán)重衰減設(shè)置為10-5,dropout 設(shè)置為0.5,使用Step-LR 來動態(tài)調(diào)整學(xué)習(xí)率,BiLSTM的隱藏狀態(tài)設(shè)置為512。
在本節(jié)中使用WER 評價指標(biāo)將本文的方法與CSL 數(shù)據(jù)集上一些現(xiàn)有方法進(jìn)行比較。為了進(jìn)行公平的對比,所有的比較方法都使用預(yù)訓(xùn)練的ResNet 模型提取的相同特征。本文旨在以端到端的方式改進(jìn)連續(xù)手語識別。如表1 所示,將本文的模型與現(xiàn)有的一些廣泛用于解決連續(xù)手語識別的模型進(jìn)行了對比。LSTM&CTC是解決序列問題的最基本模型,為了驗證本文所提出方法的有效性,在CSL 數(shù)據(jù)集上與傳統(tǒng)方法對比,WER 達(dá)到16.1%;同時,還將本文的模型與現(xiàn)有的編碼-解碼結(jié)構(gòu)模型進(jìn)行了對比,在S2VT[17]模型上WER 達(dá)到26.5%,在HAN[18]模型上WER 達(dá)到 20.5%,在LS-HAN[19]上達(dá)到 17.5%。在LSTMglobal-Attention[20]使用全局注意力機(jī)制來學(xué)習(xí)輸入序列和輸出序列之間的對齊,錯誤率達(dá)到了12.5%,而本文的方法是在特征提取階段使用注意力機(jī)制。在LSTM-LSTM 方法[21]中,編碼器與解碼器均使用LSTM 結(jié)構(gòu),WER 達(dá)到了10.9%。3DCNN+TEM+CTC[22]提出了動態(tài)偽標(biāo)簽解碼,以在迭代過程中生成更好的偽標(biāo)簽,WER 達(dá)到了8.9%,相反,本文的方法是端到端學(xué)習(xí),沒有任何迭代。本文的競爭結(jié)果得益于更好的特征提取。可以看出本文的方法都優(yōu)于其他方法,并實現(xiàn)了6.9%的WER。
表1 對比實驗結(jié)果
在本節(jié)研究各個模塊的有效性,在表2中“baseline”代表不加入注意力機(jī)制也不使用輔助分類的基礎(chǔ)架構(gòu),“Attention”代表在baseline基礎(chǔ)上加入注意力機(jī)制,“ACE”代表增加輔助對齊模。表2 中的“T-WER”代表在訓(xùn)練集上的錯誤率,“D-WER”代表在驗證集上的錯誤率。
本文提出了一種新的連續(xù)手語識別方法。過擬合是在連續(xù)手語識別中存在的主要問題之一,這也導(dǎo)致了特征提取器訓(xùn)練不足。對此,在研究中本文提出了增加輔助對齊模塊,通過強制特征提取器直接進(jìn)行預(yù)測來解決訓(xùn)練不足的問題。在訓(xùn)練過程中利用CTC 和ACE 損失函數(shù)進(jìn)行聯(lián)合訓(xùn)練,并通過引入注意力機(jī)制和隨機(jī)掉幀機(jī)制來進(jìn)一步改善模型的性能。在中文手語數(shù)據(jù)集CSL 上驗證了本文方法的有效性。