薛 峰 洪自坤 李書杰 李 雨 謝胤岑
唇語識別主要任務(wù)是基于說話人的視覺圖像序列預(yù)測說話文本,可應(yīng)用在公共場所的無聲聽寫、嘈雜環(huán)境下的語音識別、輔助聽力和公共安全視頻中的關(guān)鍵詞識別等場景,具有較高的應(yīng)用價值[1].
人類通過聽覺可輕易識別并理解說話人的話語,然而僅通過觀察說話人的唇部動作很難理解說話人的意圖.人在說話時嘴唇運動幅度不大,一個嘴唇動作不僅可對應(yīng)多個不同的詞,而且每個人說同一個詞的嘴唇動作也存在差異,因此不管對于人類還是計算機,唇語識別任務(wù)都面臨較大挑戰(zhàn)[2].
按照識別語言元素不同,唇語識別可分為單詞級識別和句子級識別.單詞級識別任務(wù)中每個唇讀視頻對應(yīng)一個單詞,具有固定的詞庫.Weng等[3]引入視頻光流信息作為視頻視覺特征,提高單詞識別的正確率.句子級別的唇語理解滿足交流需要,更具有應(yīng)用價值,其識別的一般流程為:首先預(yù)處理唇語視頻,裁剪視頻幀的嘴唇區(qū)域;然后由模型前端提取視頻特征;最后由模型后端解碼得到預(yù)測文本.
在句子級唇語識別任務(wù)上,Assael等[1]提出LipNet,以3D 卷積神經(jīng)網(wǎng)絡(luò)(3D Convolutional Neu-ral Network,3D CNN)[4]作為視頻的時空特征提取模塊,使用雙向門控循環(huán)單元(Gated Recurrent Unit,GRU)[5]和CTC(Connectionist Temporal Classification)[6]解碼得到唇讀語句.CTC是一種編碼方式,可在無需對齊視頻和文本序列的情況下實現(xiàn)變長序列的預(yù)測,但缺少對語義信息的處理.Chung等[7]提出WLAS(Watch,Listen,Attend and Spell),通過兩個共用解碼器的序列到序列模型(Sequence-to-Sequence)[8]分別處理唇讀視頻特征序列和音頻特征序列,得到上下文向量,并聯(lián)合注意力模塊進行文本預(yù)測.Zhang等[9]使用TCN(Temporal Con-volutional Network)進行序列建模,克服句子級唇讀訓練過程中的梯度消失問題,提高收斂速度.Ma等[10]提出DS-TCN(Depthwise Separable TCN),使用深度可分離TCN,減少唇讀模型的參數(shù),并以自身作為教師模型進行知識蒸餾,實現(xiàn)模型優(yōu)化.Ma等[11]還引入基于唇讀視頻音頻模態(tài)的輔助任務(wù)和更多的額外數(shù)據(jù),提高唇讀模型的識別能力.
按照識別語種不同,唇語識別還可分為英文唇語識別[1,7]和中文唇語識別[12-13].目前英文唇語識別研究已取得較大發(fā)展,而對中文唇語識別的關(guān)注較少.中文唇語識別和英文唇語識別在處理流程上具有明顯差異.具體而言,傳統(tǒng)英文唇語識別通常把唇讀視頻作為輸入,生成以詞或字符為單位的句子.而漢字是一種象形文字,拼音表示發(fā)音,因此中文句子唇讀任務(wù)通常分為拼音預(yù)測和漢字預(yù)測兩個階段.Zhang等[12]提出LipCH-Net,在從新聞聯(lián)播節(jié)目收集的數(shù)據(jù)集上進行訓練.LipCH-Net是一個分兩步進行訓練的架構(gòu),首先分別訓練從視頻序列到拼音和拼音到漢字這兩種不同模型,然后再將兩個模型進行聯(lián)合優(yōu)化,得到最終的識別模型.Zhao等[13]公開大規(guī)模的句子級別中文普通話唇語識別數(shù)據(jù)集CMLR,視頻來自CCTV新聞聯(lián)播.同時,作者提出CSSMCM(Cascade Sequence-to-Sequence Model for Chinese Mandarin),利用中文特有的拼音和音調(diào)信息,級聯(lián)3個序列到序列模型,分別漸進地推理語句的拼音、音調(diào)和漢字,實現(xiàn)端到端的訓練.使用表示發(fā)音的信息作為中間結(jié)果的策略也被應(yīng)用在英文唇語識別中,Deng等[14]將代表發(fā)音且邊界更短的音素作為中間結(jié)果的預(yù)測單元,提高英文結(jié)果的識別準確性.
現(xiàn)有視覺特征提取模型的空間建模大多數(shù)是基于2D CNN或3D CNN架構(gòu).Chung等[15]使用堆疊的2D CNN VGG(Visual Geometry Group),從嘴唇圖像中提取特征,并對比不同的視頻幀特征融合策略對唇語識別正確率的影響.Stafylakis等[16]使用3D CNN提取視頻的時空特征,再通過2D的ResNet(Residual Network)傳遞每個時間步的特征并預(yù)測,在唇讀模型中結(jié)合2D卷積和3D卷積.Xu等[17]提出LCANet,使用堆疊的3D CNN和高速公路網(wǎng)絡(luò)自適應(yīng)組合嘴唇局部特征,提高視覺特征的建模能力.Jeon等[18]為了解決唇語識別視覺信息不足的挑戰(zhàn),提出融合不同3D CNN模塊的架構(gòu),獲得更好的視覺和運動信息表示,進一步提升唇語識別效果.由此可見,CNN的卷積計算能捕獲像素之間的結(jié)構(gòu)信息,較好地提取唇部視覺特征.
然而,受到卷積核大小的限制,CNN通常只能關(guān)注短距離像素之間的結(jié)構(gòu),難以捕獲遠距離像素之間的關(guān)系,造成唇語識別任務(wù)中相似發(fā)音字符的識別效果不佳.這是因為相近發(fā)音的字符在表達時嘴唇的局部圖像具有相似性,它們的差異主要體現(xiàn)在嘴唇發(fā)音時的整體運動,因此區(qū)分這些字符需要同時關(guān)注不同距離區(qū)域的唇形.通常,CNN架構(gòu)對圖像特征的提取是基于局部性的歸納偏置,這種對局部像素的卷積計算難以挖掘唇形的整體差異,導致識別精度的下降.
針對上述問題,本文基于Vision Transformer(ViT)[19]架構(gòu)在提取圖像全局視覺特征的優(yōu)異表現(xiàn),提出基于Vision Transformer的中文唇語識別模型(Chinese Lipreading Network Based on Vision Trans-former,ViTCLN),融合ViT和GRU,分別提取視頻序列的高質(zhì)量空間特征和時間特征.其中ViT可處理原始圖像塊的線性映射,它的自注意力機制允許關(guān)注圖像中長距離的像素間關(guān)系,動態(tài)計算區(qū)域之間的權(quán)重,提取嘴唇區(qū)域整體視覺特征,提高區(qū)分唇形的能力.此外,ViTCLN以級聯(lián)序列到序列模型作為中文文本解碼模塊,通過注意力模塊實現(xiàn)視頻、拼音和漢字序列的對齊.在中文句子級唇語識別數(shù)據(jù)集上的實驗表明,ViTCLN具有較好的中文唇語識別性能.
本節(jié)提出基于Vision Transformer的中文唇語識別模型(ViTCLN),完整模型架構(gòu)如圖1所示.首先使用ViT捕捉視頻每幀圖像全局細節(jié)的空間特征表示.然后,使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[20]構(gòu)建圖像幀空間特征的時間序列關(guān)系,得到視頻中唇部動作的視覺空間特征和時序特征的聯(lián)合表示.最后,使用級聯(lián)的序列到序列模型預(yù)測說話人的文本,預(yù)測分為拼音和漢字兩個階段.
1.1.1視頻預(yù)處理
本文將裁剪唇讀視頻得到的嘴唇區(qū)域幀序列作為預(yù)處理的輸入數(shù)據(jù),使模型集中關(guān)注嘴唇區(qū)域信息.具體地,使用Face Alignment人臉檢測庫提取視頻幀的人臉唇部特征點,并基于這些唇部特征點確定嘴唇區(qū)域,最終裁剪得到嘴唇居中的圖像序列,大小為128×64像素.
1.1.2視頻幀嵌入
基于Transformer[21]架構(gòu),ViT將圖像按塊(Patch)劃分構(gòu)建與自然語言處理中相似的線性映射序列,實現(xiàn)標準 Transformer在圖像處理上的原生應(yīng)用.相比傳統(tǒng)卷積操作,ViT的自注意力模塊根據(jù)整幅圖像計算動態(tài)權(quán)重,有助于獲得說話人唇部區(qū)域像素之間的更大范圍、更遠距離的結(jié)構(gòu)關(guān)聯(lián)信息,因此能獲得更具表達能力的視覺空間特征.
由于Transformer架構(gòu)需要輸入嵌入向量序列,ViT將每個輸入視頻序列x∈RW×H×C劃分為固定大小的塊序列xp∈RN×(P×P×C),其中W、H表示視頻幀的寬、高,C表示視頻幀的通道數(shù),N表示塊數(shù),P表示塊邊長.本文采用16×16像素的塊大小.然后,ViT利用一個可學習的線性投影E將圖像塊映射到嵌入向量,作為Transformer的標準輸入.同時在嵌入向量序列中引入分類標記zcls,用于生成圖像表示.ViT對圖像塊的理解依賴位置嵌入Epos,因此模型使用實現(xiàn)簡單且性能出色的一維位置嵌入,將圖像塊視為有序的一維序列,并將位置嵌入疊加到嵌入向量上.完整的嵌入向量序列為:
其中np表示圖像塊長度.
1.1.3ViT編碼器
視頻嵌入序列z0輸入ViT的Transformer層疊編碼器模塊中,其中每個編碼器層都由多頭自注意力模塊和前饋網(wǎng)絡(luò)兩部分構(gòu)成,同時還引入殘差連接和層歸一化.
多頭注意力模塊基于多頭注意力機制[21],允許模型關(guān)注來自不同位置的不同表示子空間的信息.
自注意力模塊將輸入序列z生成queryQ,keyK和valueV三個矩陣,通過點積計算query與當前key的相關(guān)程度,縮放得到權(quán)重系數(shù),并對value進行加權(quán),得到自注意力輸出向量.自注意力權(quán)重的計算過程如下:
其中d表示輸入序列z中向量的長度.
多頭注意力機制擴展自注意力機制,對輸入序列進行h次自注意力計算,將多個輸出結(jié)果拼接后通過WMHA投影得到最終輸出向量.每個頭都使用3個可學習的投影WQ、WK和WV,將Q、K、V投影到不同的向量空間.多頭注意力模塊為:
MHA(Q,K,V)=[head1,head2,…,headh]WMHA,
其中
每個編碼器層包含一個前饋網(wǎng)絡(luò),由兩層全連接層(Fully Connected Layers,F(xiàn)C)構(gòu)成,使用 GeLU(Gaussian Error Linear Unit)[22]激活函數(shù)轉(zhuǎn)換輸出.前饋網(wǎng)絡(luò)為:
FFN(x)=FC(GeLU(FC(x))).
綜上所述,塊嵌入序列在ViT模塊經(jīng)過L個編碼器層計算,并使用層歸一化提高網(wǎng)絡(luò)的泛化能力.計算過程如下:
z′l=MHA(LN(zl))+zl,
zl+1=FFN(LN(z′l))+z′l,
其中,LN(·)為層歸一化,zl為第l層Transformer編碼器輸入,l=0,1,…,L-1.
對視頻序列x1,x2,…,xnf的每幀都使用ViT模塊并行計算,得到特征表示構(gòu)成視覺特征序列y1,y2,…,ynf,其中nf表示圖像幀長度.
1.1.4時序特征提取
在視覺的空間特征表達的基礎(chǔ)上補充和增強在時序維度的特征表示,有助于提高唇語識別的精度.使用ViT模塊提取的視覺特征,只能表示唇部區(qū)域的空間特征,無法表示不同幀之間嘴唇運動變化特征,因此需要獲取視頻幀的視覺特征之間的時序關(guān)系.
GRU是RNN[22]的一種變體,在時序建模上解決傳統(tǒng)RNN 長期記憶能力不足的問題,同時避免梯度消失和梯度爆炸,廣泛應(yīng)用于自然語言處理、語音識別等序列處理任務(wù).雙向GRU 包含兩層隱藏層,可在時間維度的正反方向上處理輸入序列.ViTCLN使用兩層雙向GRU向視覺特征中融合視頻的上下文,彌補時序特征的不足,得到視頻的融合空間和時間維度的特征序列
文本解碼部分負責將視覺模態(tài)的時空特征轉(zhuǎn)換為文本模態(tài)的表示.
1.2.1序列到序列模型
其中,in表示輸入模態(tài),out表示輸出模態(tài),i表示GRU的時間步,Embedding(·)表示嵌入函數(shù),將文本字符映射到向量空間.
為了進一步利用輸入向量包含的信息,本文引入注意力機制,處理編碼器輸出的隱藏層向量.具體地,在解碼器的每個時間步上,注意力模塊會計算編碼器上所有隱藏層輸出的權(quán)重,生成上下文向量輔助解碼器預(yù)測.注意力模塊Attn的權(quán)重為:
加權(quán)得到的注意力上下文向量:
(1)
1.2.2級聯(lián)文本預(yù)測
由于拼音類別更少,與發(fā)音的唇形關(guān)聯(lián)性更強,更容易預(yù)測拼音,因此將拼音預(yù)測作為中間階段能保證中文唇語識別的精度.本文使用視頻到拼音和拼音到漢字兩個序列到序列模塊級聯(lián),漢字解碼器除了需要關(guān)注拼音隱藏層序列,同樣也需要關(guān)注視頻隱藏層序列,融合視頻和拼音信息進行預(yù)測.
以視頻特征序列ev和拼音特征序列ep分別作為兩個序列到序列模塊的輸入,應(yīng)用式(1)得到的注意力上下文向量和兩者的解碼器GRU輸出拼接,計算每個時間步輸出模態(tài)字符的概率分布:
在文本解碼階段,模型通過兩個子網(wǎng)絡(luò)預(yù)測視頻中的拼音和漢字,因此目標是通過模型訓練最大化拼音和漢字的條件概率,即最小化兩者的目標函數(shù),分別定義如下:
其中,p={p1,p2,…,pn-1}表示拼音序列,c={c1,c2,…,cn-1}表示漢字序列.
為了同時提高拼音和漢字預(yù)測的準確性,本文聯(lián)合優(yōu)化兩個目標函數(shù),最終的損失函數(shù)如下:
L=Lpinyin+Lcharacter.
目標函數(shù)計算中會忽略標簽填充的影響,使用Adam(Adaptive Moment Estimation)優(yōu)化器優(yōu)化,并裁剪梯度.
本文使用CMLR數(shù)據(jù)集[13]驗證ViTCLN的有效性.CMLR數(shù)據(jù)集是目前可獲取的最大中文句子級唇語識別數(shù)據(jù)集,由超過十萬個新聞聯(lián)播說話視頻構(gòu)成,包含11位說話人,共有394類拼音和3 517類漢字字符,字典覆蓋范圍廣(同時也意味著存在更多的同音字).CMLR數(shù)據(jù)集的視頻幀率為25 fps,幀長從15幀到223幀不等,最長的句子可達29個漢字.
目前公開的中文句子級唇語識別數(shù)據(jù)集較少,本文另外選取英文句子級唇語識別數(shù)據(jù)集GRID[23]、英文和中文單詞級唇語識別數(shù)據(jù)集LRW[15]和LRW-1000[24],驗證本文視覺提取模塊的魯棒性和泛化性.在英文句子級數(shù)據(jù)集上的實驗簡化文本解碼器,只使用單個基于注意力機制的序列到序列模塊.在單詞級數(shù)據(jù)集上的實驗將序列到序列模塊替換為分類網(wǎng)絡(luò).在實驗中僅使用數(shù)據(jù)集上的視頻數(shù)據(jù).
在句子級數(shù)據(jù)集使用的詞匯表中,除了原有的字符之外,還包含3個額外標記:〈sos〉,〈eos〉和〈pad〉,分別表示句子的開始,結(jié)束和填充.為了避免消融實驗中簡單增加模型參數(shù)量帶來的性能影響,ViT模塊中Transformer的輸入向量長度設(shè)置為192,并使用在ImageNet2012數(shù)據(jù)集上預(yù)訓練的ViT模型作為初始模型.
模型訓練時,為了提高收斂速度和穩(wěn)定性,本文采用學習率預(yù)熱策略,學習率在前5個輪次線性增長到基本學習率.使用Scheduled Sampling策略[25]訓練模型,利用真實標簽引導預(yù)測,消除訓練和測試中的差異,采樣率為0.5.此外,采用學習率衰減優(yōu)化,基礎(chǔ)學習率為0.000 3,當錯誤率不再下降時,學習率降低為原來的一半.
本文通過編輯距離計算預(yù)測語句的錯誤率以衡量語句的正確性,定義為使預(yù)測語句變換為標簽語句所需的最少操作次數(shù).編輯距離會找出將預(yù)測語句變換到標簽語句所需的3種基本編輯操作:替換(S)、刪除(D)和插入(I).可得錯誤率(Error Rate,ER)為:
其中N表示標簽語句的長度.錯誤率越低表明模型預(yù)測性能越優(yōu).拼音錯誤率(Pinyin ER,PER)、字符錯誤率(Character ER,CER)和詞錯誤率(Word ER,WER)分別為拼音、漢字字符和單詞在預(yù)測結(jié)果和標簽之間的編輯距離.本文使用PER、CER和WER作為句子級數(shù)據(jù)集上模型性能的評價指標.此外,在單詞級數(shù)據(jù)集上使用正確率(Accuracy,ACC)作為評價指標.
本節(jié)對比ViTCLN和經(jīng)典唇語識別模型,評估本文模型性能.具體基線模型如下所示.
1)LipNet[1].端到端英文句子級唇語識別模型,利用CTC解決文本序列的對齊問題.
2)CALLip[2].使用屬性學習模塊提取說話人的身份特征,消除跨說話人的差異.在訓練過程中,在視覺信號和音頻信號之間設(shè)計對比學習,加強對視覺特征的辨別.
3)WAS(Watch,Attend and Spell)[7].利用視頻信息,基于注意力的序列到序列模型預(yù)測句子,在對比中只使用Watch的視頻信息.
4)TCN[9].基于3D CNN、ResNet50、TCN和CTC模塊,使用TCN部分消除RNN梯度消失和性能不足的缺陷.
5)DS-TCN[10].基于深度可分離時空卷積(Depth-wise Separable TCN),并通過自我蒸餾的方式在迭代中學習原有唇讀模型.
6)LipCH-Net[12].端到端中文句子級唇語識別模型,以VGG和ResNet提取視覺特征.在訓練時,采用兩種模型分別進行視頻到拼音和拼音到漢字兩個階段的預(yù)測,然后進行聯(lián)合優(yōu)化.
7)CSSMCM[13].采用VGG提取視覺特征,使用多個序列到序列模型依次預(yù)測拼音、音調(diào)和漢字序列,同時使用注意力機制對齊之前生成的序列.
8)LIBS(Lip by Speech)[26].知識蒸餾方法,將預(yù)訓練模型作為教師模型,從序列、上下文和幀級多種尺度的層面上進行知識蒸餾.
9)InvNet[27].改進傳統(tǒng)卷積操作,在減少模型參數(shù)的同時,保證唇讀模型的性能.
10)SE-ResNet[28].訓練中引入圖像混合、標簽平滑、詞邊界等策略,降低唇讀模型的訓練難度.
11)3DCvT(A Lip Reading Method Based on 3D Convolutional Vision Transformer)[29].使用Trans-former處理3D CNN提取的特征圖,作為視覺特征.
ViTCLN和基線模型在各數(shù)據(jù)集上的實驗結(jié)果如表1和表2所示,其中,PER列中-表示對應(yīng)模型不包含預(yù)測拼音的步驟而直接預(yù)測漢字,WER列中-表示原文獻中無此結(jié)果.
由表1可見,ViTCLN性能最優(yōu),在CMLR測試集上達到24.94%的PER 和26.87%的CER,相比CSSMCM,PER和CER分別下降31%和17%.ViTCLN在GRID測試集上的WER達到1.09%,為最優(yōu)值.
由表2可見,ViTCLN在單詞級數(shù)據(jù)集LRW和LRW-1000上也取得和基線模型相當?shù)男阅埽蓱?yīng)用于不同的唇語識別任務(wù),從而驗證本文視頻特征提取模塊的魯棒性和泛化性.
表1 各模型在CMLR、GRID數(shù)據(jù)集上的性能對比Table 1 Performance comparison of different models on CMLR and GRID datasets %
表2 各模型在LRW、LRW-1000數(shù)據(jù)集上的ACC對比Table 2 ACC comparison of different models on LRW and LRW-1000 datasets %
不合適的學習率會使模型無法收斂,同時,訓練初期使用較大的學習率,可能導致模型參數(shù)優(yōu)化方向的不穩(wěn)定.為了對比基礎(chǔ)學習率和預(yù)熱輪次兩個超參數(shù)對ViTCLN的影響,分別調(diào)整學習率和學習率預(yù)熱輪次,在CMLR數(shù)據(jù)集上進行實驗,結(jié)果如下所示.當基礎(chǔ)學習率分別為1e-4,3e-4,5e-4,7e-4時,CER為27.73%,26.87%,32.31%,44.55%.當預(yù)熱輪次分別為0,3,5,7時,CER為30.02%,28.48%,26.87%,27.03%.因此,當基礎(chǔ)學習率為3e-4,預(yù)熱輪次為5時,模型性能最優(yōu).
為了驗證視覺空間特征提取模塊ViT和時序特征提取模塊GRU的有效性,構(gòu)建如下變體模型:1)模型1.ViT模塊替換為2D CNN,移除GRU模塊.2)模型2.ViT模塊替換為3D CNN,移除GRU模塊.3)模型3.保留ViT模塊,移除GRU模塊.4)模型4.ViT模塊替換為2D CNN,保留GRU模塊.5)模型5.ViT模塊替換為3D CNN,保留GRU模塊.6)模型6.ViTCLN.
各模型在CMLR、GRID數(shù)據(jù)集上的性能對比如表3所示.各模型訓練過程中,在CMLR驗證集上的錯誤率下降曲線如圖2所示.
由表3和圖2可知,模型4和模型5分別將ViTCLN中用于提取視頻特征的ViT模塊替換為2D CNN和3D CNN,CER均高于ViTCLN.ViTCLN在CMLR、GRID數(shù)據(jù)集上均取得最優(yōu)值,表明ViT捕獲嘴唇的整體視覺空間特征,相比CNN架構(gòu),具有更高的區(qū)分度.
相比模型4~模型6,模型1~模型3的錯誤率顯著上升,這是因為它們移除時序特征提取GRU模塊,說明GRU模塊可有效捕獲視頻幀序列的時間關(guān)系,并且為文本解碼提供運動信息.
表3 各模型在CMLR、GRID數(shù)據(jù)集上的性能對比Table 3 Performance comparison of different models on CMLR and GRID datasets %
在去除GRU的模型中,3D CNN前端(模型2)優(yōu)于ViT前端(模型3),這是因為3D CNN具有一定的時序圖像處理能力,而ViT雖然具有優(yōu)秀的視覺特征提取能力,但其獨立處理視頻幀,導致缺少序列信息的捕獲.因此GRU在模型中與ViT形成互補模塊,在序列任務(wù)中額外挖掘時序關(guān)系供編解碼器處理具有必要性.
為了分析各模塊對模型復雜度的影響,相同條件下模型4~模型6在CMLR數(shù)據(jù)集上的參數(shù)量和訓練時間如表4所示.
表4 各模型在CMLR數(shù)據(jù)集上的參數(shù)量和訓練時間Table 4 Parameters and training time of different models on CMLR dataset
ViTCLN的文本解碼模塊級聯(lián)兩個編解碼器,少于CSSMCM的三個.在后端模塊相同的情況下,CNN模型使用和ViT模型參數(shù)量相近的模塊,對模型帶來的性能差異并非由增加參數(shù)量帶來的.變體模型的訓練時間相近,由于2D CNN和ViT需要對每幀圖像前向計算,因此相比3DCNN,需要更多的訓練時間.
上述消融實驗表明,ViTCLN中的ViT和GRU組合結(jié)構(gòu)既可充分捕獲說話時唇部區(qū)域圖像像素的長距離視覺特征,也可有效建模不同圖像幀之間的運動關(guān)聯(lián)關(guān)系,得到最佳的唇語識別效果.
為了定性分析模型效果,本文從CMLR數(shù)據(jù)集的測試結(jié)果中選取部分案例進行對比分析.各模型預(yù)測得到的句子如表5所示,表中黑體字符表示預(yù)測錯誤的字符.由表可見,在第1個案例上,基于CNN的模型在拼音和漢字上均產(chǎn)生錯誤預(yù)測.模型2對時間特征提取不足導致未實現(xiàn)拼音和漢字的對齊,模型4和模型5沒有區(qū)分字符拼音“su”和“zu”的差異,兩者的聲母均為平舌音,發(fā)聲時嘴唇相似性較高,導致中文的詞預(yù)測錯誤,需要關(guān)注唇形的整體形狀和變化才能正確識別.在案例2的句子識別中,基于CNN的模型錯誤地將“tong guo”識別成韻母相同的“gong zuo”,以及將“tong”識別成聲母發(fā)音相似的“tou”,聲母或韻母的相似發(fā)音方式使唇形從視覺上更難區(qū)分.模型3雖然正確識別漢字“通過”,但仍出現(xiàn)預(yù)測錯誤,這可能是由于缺少上下文關(guān)聯(lián)信息.ViTCLN正確識別這些相近發(fā)音的字符,降低中文唇語識別的錯誤率.
表5 各模型在CMLR數(shù)據(jù)集上的預(yù)測結(jié)果對比Table 5 Prediction result comparison of different models on CMLR dataset
為了分析不同變體模型下輸入圖像對預(yù)測結(jié)果的貢獻程度,本文使用顯著性圖[30]進行可視化分析,結(jié)果如圖3所示.像素的顯著性反映其對字符分類評分的貢獻,其中模型4和模型5得到的顯著性區(qū)域包含大量遠離唇部的面部區(qū)域,然而這些區(qū)域?qū)ψR別唇語的影響較小.ViTCLN使用自注意力機制對圖像整體計算權(quán)重,所得圖像的顯著性區(qū)域集中在唇部附近的塊中,而背景和臉頰等區(qū)域顯著性較低,對預(yù)測結(jié)果的貢獻更準確.
(a)原始圖像(a)Original images
本文將變體模型在CMLR測試集上得到的易混淆音字特征可視化以觀察其分布情況.選擇表5中案例2產(chǎn)生混淆的拼音“tong”、“gong”和“tou”,特征來自于拼音解碼器的輸出特征,降維后繪制散點圖,如圖4所示.這些易混淆音字的區(qū)分是唇語識別的難點所在,在圖4(a)、(b)中,案例2標簽中拼音“tong”的特征整體上較分散,部分特征分布在其它拼音聚類中,容易發(fā)生混淆.在圖4(c)中,拼音“tong”的特征相對聚集,不同拼音特征聚類的可區(qū)分程度更高.
(a)模型4 (b)模型5 (c)ViTCLN(a)Model 4 (b)Model 5圖4 各模型的易混淆音字特征分布圖Fig.4 Distribution of confused phonetic features of different models
在CMLR數(shù)據(jù)集上,ViTCLN的文本預(yù)測模塊使用3個注意力機制,提高視頻特征序列和拼音序列對預(yù)測結(jié)果的貢獻,有效性體現(xiàn)在注意力權(quán)重矩陣和序列的對齊上.
為了可視化理解這些注意力機制的作用,本文根據(jù)3個注意力機制計算得到的注意力權(quán)重矩陣繪制圖5所示的熱力圖.圖中每行表示解碼器預(yù)測該字符時,在編碼器輸出結(jié)果上的注意力權(quán)重,圖5(a)、(b)中高亮區(qū)域意味著在視頻的這幾幀中,說話人正在講這些字.同時,每個字符覆蓋的連續(xù)幾幀符合每個字符的發(fā)聲時間窗口,這也會幫助解碼器更準確預(yù)測序列中的每個字.得益于ViTCLN提取的空間特征和時間特征,級聯(lián)序列到序列模塊的注意力模塊具有更好的對齊效果.
在圖5 (c)中預(yù)測第i個漢字時,拼音編碼器的第i+1個隱藏層輸出最大注意力權(quán)重,其中包含GRU編碼器計算得到的語義信息,并據(jù)此將拼音映射為合理的漢字語句.
圖5 注意力權(quán)重可視化熱力圖Fig.5 Heatmaps of attention weight visualization
本文研究ViT在句子級別中文唇語識別中的應(yīng)用,提出基于ViT的中文唇語識別模型(ViTCLN).通過ViT的圖像映射和自注意力機制,提取全局的嘴唇圖像特征,避免CNN的歸納偏置和卷積的局限性.ViTCLN融合ViT和GRU,實現(xiàn)對唇讀視頻視覺和運動信息的準確理解,通過互補的時空特征提高唇讀發(fā)音的區(qū)分度.最后通過級聯(lián)序列到序列模型對齊拼音和漢字預(yù)測結(jié)果,實現(xiàn)更準確的中文唇語識別.在最大的公開句子級別中文唇語識別數(shù)據(jù)集CMLR上的實驗表明,ViTCLN性能較優(yōu).進一步的消融實驗表明,ViT在視覺特征提取方面比CNN架構(gòu)更出色.此外,本文為了降低訓練和預(yù)測的計算需求,使用復雜度最低的ViT變體,選擇更長的向量表征可能會獲得更優(yōu)效果.今后將考慮從減少不同說話人差異帶來的視覺影響展開研究,進一步提高唇讀模型的泛化能力.