許文稼,李 克
(1.常州機(jī)電職業(yè)技術(shù)學(xué)院電氣工程學(xué)院,江蘇 常州 213164;2.東南大學(xué)信息科學(xué)與工程學(xué)院,江蘇 南京 210096)
在人類日常的社交溝通中,語言是最重要的一種信息傳遞途徑。盡管音頻信號通常比視頻信號包含更多的語言信息,但人類往往在無意識的情況下也能夠利用視覺線索,即嘴唇運動信息。在過去的十幾年里,研究者開始關(guān)注僅使用視覺線索來理解語言,即通過唇語識別(Automatic Lip-Reading,ALR)技術(shù)模仿人類進(jìn)行唇讀的能力。ALR 技術(shù)具有廣泛的應(yīng)用場景,例如在嘈雜環(huán)境中向終端口述命令的任務(wù)、在安全驗證領(lǐng)域引入一種無聲的視覺密碼、為無聲電影自動生成字幕或解決視頻中的話音不同步問題[1-2]以及根據(jù)聽障人士的嘴唇動作為其合成語音[3-4]等等。
基于深度學(xué)習(xí)的ALR 技術(shù)是目前的主流研究方向,其中深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練依賴大規(guī)模的ALR 數(shù)據(jù)集。謝菲爾德大學(xué)于2006 年發(fā)布的GRID[5]是首個擁有較大樣本數(shù)量的句級ALR 數(shù)據(jù)集,并曾用于構(gòu)建基于深度神經(jīng)網(wǎng)絡(luò)的ALR 技術(shù)架構(gòu)[2,6]。GRID包含由34 名說話人在實驗室環(huán)境下通過每人說1 000個句子組成的34 000 條樣本,共涉及51 種單詞。2016 年后,隨著神經(jīng)網(wǎng)絡(luò)逐漸向更深層的結(jié)構(gòu)發(fā)展,ALR 技術(shù)對于數(shù)據(jù)集的規(guī)模也不斷提出更高的要求,因此多個超大規(guī)模的句級ALR 數(shù)據(jù)集相繼被發(fā)布,例如LRS[1]、MV-LRS[7]、LRS2[8]、LRS3-TED[9]和CMLR[10]。其中CMLR 是由浙江大學(xué)視覺智能與模式分析組于2019 年發(fā)布的首個大規(guī)模中文句級ALR 數(shù)據(jù)集,其數(shù)據(jù)收集自中國中央電視臺的電視節(jié)目,說話人數(shù)量為11 名,樣本數(shù)量達(dá)到102 072 條。
根據(jù)識別對象的不同,ALR 技術(shù)一般可分為字符級、單詞級和句級。關(guān)于句級ALR 技術(shù)的研究可分為兩條路徑,一些研究者遵循了經(jīng)典的CNN+RNN 圖像序列分類架構(gòu),并在此基礎(chǔ)上引入常用于語音識別任務(wù)中的聯(lián)結(jié)時序分類(Connectionist Temporal Classification,CTC)結(jié)構(gòu)以輸出完整的句子,2016 年Assael 等[2]提出的LipNet 便是如此。這一架構(gòu)以固定長度的RGB 歸一化圖像序列作為輸入,經(jīng)3D-CNN 提取特征后通過雙層的Bi-GRU 對序列進(jìn)行分類,末端使用CTC 結(jié)構(gòu)進(jìn)行解碼并計算損失,在GRID 上實現(xiàn)了1.9%的字錯誤率(Character Error Rate,CER)和4.8%的詞錯誤率(Word Error Rate,WER)。而目前在GRID 上 的最佳結(jié)果由Zhang 等[11]取得,他們提出了一個時間焦點模塊來充分描述短距離的依賴關(guān)系,以及一個空間-時間融合模塊來保持局部空間信息并減少特征尺寸,將GRID 上的WER 降至1.3%。另一些研究者利用NLP 領(lǐng)域中的經(jīng)典方法如編碼器-解碼器結(jié)構(gòu)和Transformer 等技術(shù)進(jìn)行唇語識別。2017 年Chung等[1]基于編碼器-解碼器結(jié)構(gòu)提出了端到端的AVASR 技術(shù)架構(gòu)WLAS。該架構(gòu)由“看”、“聽”、“注意”和“拼寫”四個模塊組成,其中“看”模塊通過CNN 與LSTM 對圖像序列建模;“聽” 模塊使用LSTM 對音頻的梅爾頻率倒譜系數(shù)(Mel Frequency Cepstral Coefficients,MFCCs)建模;“注意”模塊使用注意力機(jī)制計算來自音視頻的上下文向量;“拼寫”模塊則根據(jù)前三個模塊的輸出逐個解碼字符的概率分布。WLAS 首次面對無約束條件下的句級ALR任務(wù),在LRS 上實現(xiàn)了39.5%的CER 和50.20%的WER。2018 年,Afouras 等[12]提出了三種不同的句級ALR 技術(shù)架構(gòu),這些架構(gòu)均由3D-CNN 與深度殘差網(wǎng)絡(luò)(Deep Residual Network,ResNet)[13]構(gòu)成圖像特征提取模塊,但采用了不同的時序建模方式。在LRS 上,采用Bi-LSTM+CTC 以及全卷積網(wǎng)絡(luò)+CTC 的架構(gòu)分別實現(xiàn)了62.20%和55.00%的WER,而基于Transformer 的模型則實現(xiàn)了最佳50.00%的WER。在句級ALR 任務(wù)中,Transformer 取得了十分突出的表現(xiàn)。
表1 列出了近三年主要的句級ALR 技術(shù)研究工作在各數(shù)據(jù)集上取得的結(jié)果,英文數(shù)據(jù)集以WER評價,中文數(shù)據(jù)集以CER 評價。可見,目前在唯一可用的大規(guī)模中文句級數(shù)據(jù)集CMLR 上開展的工作十分有限。對于CMLR,Zhao 等[14]的工作提出了一種通過學(xué)習(xí)語音識別器進(jìn)而提升唇讀效果的方法,將語音識別器學(xué)習(xí)到的信息進(jìn)行知識蒸餾,同時設(shè)計了一種有效的音視頻對齊方式,實現(xiàn)了31.24%的CER,這是截至目前的最佳結(jié)果。
表1 2020~2022 年主要的句級ALR 技術(shù)研究工作
本文針對句級ALR 任務(wù),設(shè)計了一種基于光流與注意力機(jī)制的架構(gòu),能夠處理連續(xù)輸入的句級唇讀視頻,如圖1 所示。其中神經(jīng)網(wǎng)絡(luò)的圖像特征提取模塊基于3D-ResNet18 與空間-時間雙重注意力機(jī)制,時間序列分類模塊基于Transformer,二者將分別在第2 節(jié)與第3 節(jié)介紹。系統(tǒng)前端的唇讀端點檢測模塊則基于光流閾值變化,將連續(xù)不斷輸入神經(jīng)網(wǎng)絡(luò)的唇讀視頻進(jìn)行切分,從而實現(xiàn)逐句的唇語識別,這一模塊將在第4 節(jié)介紹。第5 節(jié)則詳細(xì)介紹了為驗證我們的系統(tǒng)所進(jìn)行的實驗,包括其配置細(xì)節(jié)和結(jié)果分析。
圖1 基于光流與注意力機(jī)制的句級唇語識別技術(shù)架構(gòu)
我們選擇ResNet18[13]用于提取唇部圖像的深度特征。ResNet18 以若干殘差單元構(gòu)成一個殘差塊,再通過不斷地堆疊殘差塊構(gòu)成網(wǎng)絡(luò)。3DResNet18 的具體結(jié)構(gòu)如表2 所示,批量歸一化(Batch Normalization,BN)將作用在每個卷積層之后,其中s為輸入圖像的尺寸,d為輸出特征的維數(shù)。
表2 3D-ResNet18 的網(wǎng)絡(luò)結(jié)構(gòu)
由表2 可見,我們使用作用在唇讀視頻整體上的3D 卷積替代了原始ResNet18 頭部的2D 卷積。以含有P個三維卷積核、在D個通道上滑動的卷積層為例,3D 卷積的過程可表示為
式中:1≤p≤P,?表示三維卷積計算,Wp,bp表示三維卷積核與偏置。采用3D 卷積的優(yōu)勢一方面在于其避免了在每一幅唇讀圖像上運行大尺寸卷積,減少了計算量;另一方面也使得CNN 能夠?qū)W習(xí)到唇讀視頻的時序信息,有助于提升特征的描述能力。
注意力機(jī)制可以使得網(wǎng)絡(luò)學(xué)習(xí)到特征中對結(jié)果貢獻(xiàn)較大的信息,通過一個注意力矩陣與原始特征映射相乘從而為其分配更高的權(quán)重,進(jìn)而關(guān)注重要的區(qū)域或通道并抑制不必要的噪聲信息。為增強(qiáng)特征的描述能力,我們設(shè)計了一種同時作用在空間和通道維度上的雙重注意力機(jī)制模塊,并嵌入3DResNet18 的每個殘差塊之后。
空間注意力機(jī)制如圖2 所示,殘差塊提取出的三維特征映射F∈?C×H×W將分別輸入三個1×1 卷積層從而獲得三個新的特征映射Fa,F(xiàn)b,F(xiàn)c并均展平空間維度至二維,即{Fa,F(xiàn)b,F(xiàn)c}∈?C×(H×W)。隨后將Fa轉(zhuǎn)置并與Fb相乘并進(jìn)行歸一化處理,即
圖2 空間注意力機(jī)制
式中:As∈?(H×W)×(H×W),為空間注意力矩陣,矩陣中的元素表示(i,j)位置對應(yīng)的特征像素對結(jié)果的貢獻(xiàn)程度。令Fc與As相乘并與原始特征F∈?C×H×W逐項相加,即可得到輸出特征Fs:
式中:η為可訓(xùn)練的尺度因子,用于避免Ais,j過大,初始化為0。因此,F(xiàn)s本質(zhì)上是根據(jù)空間注意力矩陣選擇性進(jìn)行聚合的特征與F的加權(quán)和,這使得模型能夠?qū)W習(xí)到需要被多加關(guān)注的區(qū)域。
類似地,通道注意力機(jī)制負(fù)責(zé)學(xué)習(xí)不同通道的重要程度。參考SENet[21]的設(shè)計方式,通道注意力機(jī)制無需再將輸入特征經(jīng)過三個1×1 卷積層,而是直接在展平輸入特征的寬高維度后將其與自身的轉(zhuǎn)置做乘積,獲得通道注意力矩陣At∈?C×C,即:
隨后使F與At相乘并與自身逐元相加,得到Ft,如圖3 所示。將每一個殘差塊提取出的特征映射F并行地經(jīng)過空間注意力和通道注意力機(jī)制分別處理得到Fs與Ft,隨后在通道維度上堆疊,則雙重注意力機(jī)制模塊最終輸出特征映射F'∈?(2×C)×H×W,即輸入下一層網(wǎng)絡(luò)的張量。
圖3 通道注意力機(jī)制
綜上,圖像特征提取模塊接收四維的灰度唇讀視頻X∈?1×T×H×W,經(jīng)過一系列的卷積與注意力機(jī)制處理后,最終通過全連接層輸出維數(shù)為256 的特征向量序列f1,f2,…,fT=F∈?T×256,用于后續(xù)模塊的時間序列分類。
Transformer 是Google 于2017 年提出的一種用于機(jī)器翻譯任務(wù)的網(wǎng)絡(luò)結(jié)構(gòu),基于多頭自注意力機(jī)制進(jìn)行時序建模。相比于RNN,其有效解決了長程依賴問題,并且能夠更好地利用GPU 并行計算。本節(jié)設(shè)計的時間序列分類模塊總體架構(gòu)如圖4 所示,由詞嵌入模塊、位置編碼模塊以及6 對編碼器-解碼器構(gòu)成,其中編碼器與解碼器的設(shè)計參考了Vaswani 等[22]的工作。特征序列在經(jīng)過位置編碼后作為6 個連續(xù)編碼器的輸入,這6 個編碼器各自的輸出再依次作為6 個連續(xù)解碼器的輸入,最終解碼出唇讀視頻對應(yīng)的單詞序列。
圖4 基于Transformer 的時間序列分類模塊
在包含N個單詞的單詞表中,我們將其中某一個單詞的d維詞嵌入向量e表示為:
式中:W∈?N×d為可訓(xùn)練的權(quán)重矩陣,c∈?N為單詞的one-hot 編碼。由于圖像特征提取模塊已將唇讀圖像編碼為256 維的特征向量,因此詞嵌入向量的維數(shù)也需設(shè)置為256。
詞嵌入向量的位置編碼則通過位置嵌入向量PE 并與原始向量逐元相加的方式,PE 可表示為:
式中:pos 表示當(dāng)前向量在序列中的位置,2i表示偶數(shù)維,2i+1 表示奇數(shù)維。
在解碼過程中,我們首先初始化一個單獨的語句開始標(biāo)志‘<sos>’作為真實語句標(biāo)簽輸入解碼器,根據(jù)輸出的概率分布得到下一時刻的單詞后,將其拼接在‘<sos>’之后再次作為真實語句標(biāo)簽輸入解碼器,以此方式進(jìn)行循環(huán),直至完成對長度為L的語句中每一個單詞的預(yù)測。
由于輸出過程中每一個單詞均依靠已解碼的單詞進(jìn)行預(yù)測,若窮舉所有可能的語句,并選取整體概率最高的語句作為最終輸出,理論上需要計算LN種情況,這將帶來極高的計算復(fù)雜度。為此,我們在l時刻僅選取概率最高的k個單詞作為候選輸出,在l+1時刻再基于每一個候選單詞進(jìn)行輸出,并得到l+1時刻概率最高的k個候選單詞,以此遞推出所有可能的Lk種語句組合,進(jìn)而選取整體概率最高的語句作為最終輸出。這一搜索過程稱為集束搜索,在我們的模型中,搜索寬度k取值為3。
我們采用一種基于標(biāo)簽平滑與KL 散度的損失用于訓(xùn)練模型。在一般的分類問題中,損失通過真實標(biāo)簽的one-hot 編碼與模型預(yù)測的概率分布之間計算的交叉熵進(jìn)行表示。但ALR 模型將面對大規(guī)模的單詞表,這種損失計算方式僅使唯一正確的單詞參與損失計算,而忽略了標(biāo)簽之間的關(guān)系,導(dǎo)致模型的泛化能力較差。為此,我們首先進(jìn)行標(biāo)簽平滑的操作,在正確標(biāo)簽上增加噪聲,即:
式中:N為單詞表的規(guī)模,噪聲α是一個隨機(jī)超參數(shù),取值為0~0.2。隨后計算真實標(biāo)簽的概率分布與模型輸出的概率分布之間的相對熵,也即KL 散度,作為模型的損失,其計算方式為:
在語音識別任務(wù)中,語音端點檢測(Voice Activity Detection,VAD)能夠應(yīng)對說話人連續(xù)說出多條語句時的斷句問題。唇語識別中同樣存在類似的問題,因此我們在系統(tǒng)前端設(shè)置了唇讀端點檢測模塊,通過定位視頻中唇讀的實際起止時刻,剔除不含唇讀動作的噪聲片段并將包含多條語句唇讀視頻進(jìn)行分割,便于神經(jīng)網(wǎng)絡(luò)進(jìn)行處理。該模塊首先基于68 點人臉關(guān)鍵點標(biāo)定裁剪出只包含唇部區(qū)域的圖像,隨后基于金字塔KL 光流法[23]在時間維度中檢測唇部運動,進(jìn)而根據(jù)一系列的閾值判定對唇讀的起止時刻進(jìn)行定位。
對于待檢測的唇讀視頻,我們采用開源的C++機(jī)器學(xué)習(xí)工具箱Dlib 對人臉進(jìn)行檢測和68 點關(guān)鍵點標(biāo)定。為消除人臉旋轉(zhuǎn)對光流計算的影響,我們首先對圖像進(jìn)行了對齊操作,通過旋轉(zhuǎn)使49 號關(guān)鍵點與55 號關(guān)鍵點處于同一水平線,隨后以67 號嘴唇中心關(guān)鍵點作為裁剪中心,以55 號左嘴角與67號、67 號與49 號右嘴角之間橫坐標(biāo)距離中的較小值作為1/4 邊長,從而裁剪出唇部圖像,即:
隨后,我們基于金字塔KL 光流法計算每一組相鄰幀之間唇部區(qū)域的光流總值I,即唇部區(qū)域所有像素點x與y方向光流絕對值的和;此外還需計算相鄰幀各自三組關(guān)鍵點之間的歐氏距離之和D,分別為62 號與68 號、63 號與67 號、64 號與66 號,以此評估唇部的開閉程度。
唇讀端點檢測流程如圖5 所示。令唇動指數(shù)a=I·D,則a將在時間軸上不斷變化,當(dāng)其大于閾值μ時則進(jìn)入唇讀狀態(tài),將當(dāng)前幀加入緩沖隊列,若此時緩沖隊列長度已達(dá)上限L,則加入結(jié)果隊列,緩沖隊列的作用是避免因瞬時頭部運動造成的誤檢。當(dāng)出現(xiàn)連續(xù)k幀的a值小于閾值μ時則進(jìn)入非唇讀狀態(tài),若結(jié)果隊列不為空則將緩沖隊列與結(jié)果隊列中的圖像序列合并,同時輸出合并的圖像序列并清空隊列,否則只清空緩沖隊列且不輸出。為防止因頭部運動導(dǎo)致唇部區(qū)域大幅偏移,68 點關(guān)鍵點標(biāo)定將在每一幀上運行,當(dāng)檢測到的唇部區(qū)域與當(dāng)前使用區(qū)域之間的交并比小于閾值λ時,則更新唇部區(qū)域的定位框,且更新僅在唇讀狀態(tài)下進(jìn)行,以防因唇讀區(qū)域變化產(chǎn)生的光流值影響算法判斷。若當(dāng)前幀無法檢測人臉或無法標(biāo)定人臉關(guān)鍵點,則延續(xù)上一幀的狀態(tài)。
圖5 唇讀端點檢測流程
我們將在本節(jié)中進(jìn)行大量的實驗以評估所提出系統(tǒng)的性能,其中的神經(jīng)網(wǎng)絡(luò)部分和唇讀端點檢測部分將分別評估,用于評估的數(shù)據(jù)集為英文數(shù)據(jù)集GRID 和中文數(shù)據(jù)集CMLR。
GRID 包含由34 名說話人在實驗室環(huán)境下通過每人說1 000 個句子組成的34 000 條樣本。每條樣本是在“命令”、“顏色”、“介詞”、“字母”、“數(shù)字”和“副詞”這6 類英文單詞中各隨機(jī)挑選一個組成的無意義句子,如Bin green at C 1 please。每類單詞的可選范圍固定,數(shù)據(jù)集共涉及51 種單詞。視頻樣本分辨率均為360px×288px,長度均為75 幀。CMLR中的數(shù)據(jù)從2009 年6 月~2018 年6 月的《新聞聯(lián)播》節(jié)目中收集,包含來自11 名主播的102 072 條樣本,數(shù)據(jù)集的樣本劃分情況如表3 所示,所有樣本最長不超過29 個漢字,視頻樣本分辨率大部分為480px×360px,幀率均為25 FPS。
表3 CMLR 數(shù)據(jù)集的樣本劃分情況
由于GRID 與CMLR 均未在標(biāo)注信息中給出唇部的定位坐標(biāo),因此我們通過人臉關(guān)鍵點標(biāo)定對唇部進(jìn)行定位從而裁剪出唇部區(qū)域的正方形圖像,裁剪方式同式(9)。,兩個數(shù)據(jù)集提取出的唇部區(qū)域圖像均歸一化為72 px×72 px 的灰度圖像,如圖6 所示,進(jìn)而在數(shù)據(jù)增強(qiáng)的過程中通過隨即裁剪保留64 px×64 px 的部分,同時執(zhí)行概率為0.5 的隨機(jī)水平翻轉(zhuǎn)。對于一個mini-batch 中不足最大長度的圖像序列,我們采用在末尾填充全0 圖像的方式進(jìn)行對齊。
圖6 GRID 與CMLR 數(shù)據(jù)集樣本示例
對于真實語句標(biāo)簽,我們建立了一個單詞/漢字表,將數(shù)據(jù)集中所有的單詞/漢字映射為一個數(shù)字。單詞表另需添加‘<sos>’、‘<eos>’、‘<pad>’三個特殊單詞,其中‘<sos>’添加在句首,用于指示語句開始;‘<eos >’添加在句尾,用于指示語句結(jié)束;‘<pad>’則用于單詞序列長度歸一化中的補(bǔ)齊操作,在每一個mini-batch 訓(xùn)練標(biāo)簽中將不足最大長度的單詞序列進(jìn)行補(bǔ)齊。
Chan 等[24]的研究表明,若網(wǎng)絡(luò)在訓(xùn)練初期便學(xué)習(xí)較長的序列時,將導(dǎo)致其收斂過程十分緩慢甚至難以收斂。為此,我們采用了三種訓(xùn)練優(yōu)化策略應(yīng)對這一困境并加速模型收斂,分別為訓(xùn)練樣本長度遞增、學(xué)習(xí)率預(yù)熱和針對中文樣本的逐級遷移學(xué)習(xí)。
我們在訓(xùn)練初期令模型僅學(xué)習(xí)長度較短的視頻樣本,在后續(xù)的訓(xùn)練周期中再逐漸學(xué)習(xí)更長的訓(xùn)練樣本。GRID 與CMLR 中的視頻樣本長度為0.5 s~4.0 s 不等,訓(xùn)練樣本長度遞增的策略具體為在開始訓(xùn)練的第一個周期,只選取其中長度低于1.5 s 的視頻樣本構(gòu)建訓(xùn)練集,在第二個周期加入長度1.5 s~2.5 s 的樣本,在第三個周期開始利用全部樣本進(jìn)行訓(xùn)練。
同時,我們在模型訓(xùn)練的過程中采取學(xué)習(xí)率預(yù)熱的策略,參考Goyal 等[25]的方法,學(xué)習(xí)率初始化為0,并通過線性增長達(dá)到峰值,隨后開始指數(shù)衰減,即:
式中:s為迭代次數(shù)為預(yù)熱終止點,設(shè)置為第二個訓(xùn)練周期結(jié)束從而配合訓(xùn)練樣本長度遞增的策略,峰值學(xué)習(xí)率lrmax設(shè)置為1×10-3,衰減率λ設(shè)置為0.999 8。
中文ALR 任務(wù)的難度遠(yuǎn)大于英文,這很大程度由中文的語言特性造成,即漢字具有不同的聲調(diào),且存在大量同音不同字的問題,因此針對中文樣本,我們額外采用一種逐級遷移學(xué)習(xí)的方法,如圖7 所示。訓(xùn)練共分為四個階段,第一步對數(shù)據(jù)集中的語句樣本進(jìn)行切分,獲得若干中文單詞形式的訓(xùn)練樣本,從而訓(xùn)練一個單詞級的唇語識別模型。我們在構(gòu)建單詞級數(shù)據(jù)集時僅選取出現(xiàn)頻率最高的999 類單詞與所有其他單詞合并成的“其他”類,共計1 000 類。第二步搭建句級唇語識別模型,并將第一步中模型的圖像特征提取部分權(quán)重用于初始化。在訓(xùn)練模型的過程中,第二、三、四步用于訓(xùn)練的最小分類單元按照無聲調(diào)拼音、有聲調(diào)拼音和漢字三種形式逐級遞進(jìn),且第二、三步的模型均用于后一步模型的初始化,這使得模型學(xué)習(xí)的過程能夠由易到難遞進(jìn)。
圖7 針對中文樣本的逐級遷移學(xué)習(xí)流程
我們設(shè)置小批量大小為16,將模型參數(shù)初始化為正態(tài)分布,并采用Adam 算法[26]進(jìn)行梯度下降。訓(xùn)練持續(xù)100 個周期并采取早停策略,當(dāng)驗證集損失連續(xù)三個周期未下降則提前終止訓(xùn)練。
本小節(jié),我們將評估本文提出的ALR 系統(tǒng)在GRID 與CMLR 上的實際效果,對于其中的神經(jīng)網(wǎng)絡(luò)模型,我們將采用數(shù)據(jù)集給出的標(biāo)準(zhǔn)化唇讀區(qū)間構(gòu)建訓(xùn)練和驗證數(shù)據(jù)進(jìn)行測試,系統(tǒng)前端的唇讀端點檢測部分則在GRID 上單獨測試。
我們以WER 和CER 分別作為GRID 和CMLR上的主要評價指標(biāo),雙語評估替換(Bilingual Evaluation Understudy,BLEU)[27]分?jǐn)?shù)則作為衡量句子流暢程度的額外指標(biāo)。
我們首先驗證了時間序列分類模塊中參數(shù)設(shè)置的合理性,分別控制編解碼器數(shù)量、注意力頭數(shù)量h、集束搜索寬度k和標(biāo)簽平滑噪聲α四個參數(shù)的設(shè)置,驗證模型在GRID 和CMLR 數(shù)據(jù)集上分別取得的WER 和CER,如圖8 所示。由此可見,6 對編解碼器、h=8、α∈[0,0.2]的設(shè)置能夠使模型表現(xiàn)出最佳的總體性能。至于k值,盡管較大的搜索寬度能小幅降低錯誤率,但因其增大而造成運算量的指數(shù)級增加在大多數(shù)情況下是得不償失的,因此模型依然維持k=3 的設(shè)置。
圖8 基于自注意力機(jī)制與編碼器-解碼器結(jié)構(gòu)的模型參數(shù)對結(jié)果的影響
模型在GRID 和CMLR 數(shù)據(jù)集上的整體表現(xiàn)情況如表4 所示,其中CMLR 的結(jié)果在測試集上計算,GRID 通過10 折交叉驗證計算平均值。表中特定說話人模式即單獨采用某一說話人的數(shù)據(jù)用于訓(xùn)練和測試,這與某些實際應(yīng)用場景相符,后續(xù)實驗非特殊說明均在非特定說話人模式下進(jìn)行。
表4 模型在GRID 與CMLR 上的實驗結(jié)果
在非特定說話人模式下,我們的模型在GRID數(shù)據(jù)集上取得了最佳1.69% 的WER,相比由LipNet[2]實現(xiàn)的4.8%的基線結(jié)果提升了3.11%;對于中文數(shù)據(jù)集CMLR,我們的模型實現(xiàn)了31.27%的CER,相比由Zhao 等[10]實現(xiàn)的32.48%的基線結(jié)果降低了1.21%。
圖像特征提取模塊采取了作用在空間和通道維度中的注意力機(jī)制,為驗證其有效性,我們進(jìn)行了消融實驗。以去除雙重注意力機(jī)制、去除空間注意力機(jī)制和去除通道注意力機(jī)制的三種模型與完整模型進(jìn)行對比,結(jié)果如表5 所示??梢婋p重注意力機(jī)制對模型性能起到了有效的提升作用,其中通道注意力相對具有更明顯的效果。
表5 應(yīng)用不同注意力機(jī)制的模型在GRID和CMLR 上的結(jié)果
表6 展示了選取不同長度的測試樣本構(gòu)成測試集驗證模型性能的實驗結(jié)果。由此可見,隨著樣本長度的增大,模型表現(xiàn)出更高的CER 和BLEU,這是由于長時間建模難度更大,但同比例的錯字卻對語句通順度的影響更小,同時也證明模型對更符合現(xiàn)實條件的長樣本具有良好的處理效果。
表6 CMLR 數(shù)據(jù)集不同長度測試樣本的實驗結(jié)果
GRID 中的樣本包含了未發(fā)生唇讀的冗余視頻片段,故可用于測試第4 節(jié)唇讀端點檢測算法的效果。對于給定的視頻片段,唇讀端點檢測算法輸出唇讀動作的起始/終止幀號,二者分別與數(shù)據(jù)集標(biāo)注的起始/終止幀號計算絕對偏移量,再以偏移量之和與唇讀持續(xù)時間計算比值得到相對偏移量。唇讀端點檢測算法的性能以GRID 上所有樣本的平均相對偏移量進(jìn)行評價。在參數(shù)的設(shè)置上,L與k分別取2和10,而唇動指數(shù)閾值μ的取值會使得結(jié)果產(chǎn)生較大波動,圖9 展示了μ值對算法性能的影響。
圖9 閾值設(shè)置對唇讀端點檢測結(jié)果的影響
由此可見,μ值設(shè)置為8 500 可實現(xiàn)最佳的檢測性能,平均相對偏移量達(dá)到0.151 7。在該設(shè)置下,圖10 直觀地展示了GRID 數(shù)據(jù)集中s1/bbaf2n.mpg樣本的唇動指數(shù)變化曲線以及唇讀端點檢測結(jié)果。算法在該樣本上預(yù)測的唇讀起止點相比數(shù)據(jù)集標(biāo)注的時刻略有提前,實現(xiàn)了0.094 0 的相對偏移量。
圖10 s1/bbaf2n.mpg 的唇動指數(shù)變化曲線及唇讀端點檢測結(jié)果
本文研究了語句級別的唇語識別問題,設(shè)計了一種基于注意力機(jī)制與光流的唇語識別系統(tǒng)。我們的ALR 系統(tǒng)分為神經(jīng)網(wǎng)絡(luò)模型以及其前端的唇讀端點檢測模塊,能夠有效處理連續(xù)的唇讀視頻并逐句解碼為文字。神經(jīng)網(wǎng)絡(luò)以圖像特征提取模塊和時間序列分類模塊構(gòu)成,其中圖像特征提取模塊基于3D-ResNet18 并在每一個殘差塊后嵌入了基于空間-通道融合的雙重注意力機(jī)制模塊;時間序列分類模塊基于Transformer 進(jìn)行時序建模,并采用了基于集束搜索的解碼方式,以基于標(biāo)簽平滑的KL 散度作為損失訓(xùn)練模型。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練采用了訓(xùn)練樣本長度遞增、學(xué)習(xí)率預(yù)熱和逐級遷移學(xué)習(xí)三項措施進(jìn)行優(yōu)化。唇讀端點檢測模塊負(fù)責(zé)將連續(xù)不斷輸入神經(jīng)網(wǎng)絡(luò)的唇讀視頻逐句切分,其基于金字塔KL光流法計算閾值,并根據(jù)一定的判定流程確定唇讀的實際起始位置。實驗部分分別對系統(tǒng)中的神經(jīng)網(wǎng)絡(luò)部分和唇讀端點檢測部分進(jìn)行了評估,多項實驗的結(jié)果表明,我們設(shè)計的系統(tǒng)參數(shù)設(shè)置合理,神經(jīng)網(wǎng)絡(luò)中的注意力機(jī)制也對結(jié)果起到了有效提升作用,在英文數(shù)據(jù)集GRID 和中文數(shù)據(jù)集CMLR 上分別實現(xiàn)了1.69%與31.27%的詞/字錯誤率,并且能夠有效應(yīng)對現(xiàn)實條件下的長段語句。唇讀端點檢測模塊在GRID 數(shù)據(jù)集上進(jìn)行了測試并確定了最佳參數(shù)設(shè)置,實現(xiàn)了0.151 7 的平均相對偏移量。我們的系統(tǒng)提供了解決連續(xù)語句唇語識別的一種有效方案,但其仍有一定的提升空間。例如開發(fā)更輕量級、能夠?qū)崟r運行的唇語識別架構(gòu)、構(gòu)建更符合現(xiàn)實條件的大規(guī)模中文唇讀數(shù)據(jù)集并提升系統(tǒng)處理中文數(shù)據(jù)的準(zhǔn)確性、在圖像特征提取任務(wù)中應(yīng)用自注意力機(jī)制以及開發(fā)多模態(tài)融合的唇語識別技術(shù)等等。