倍可親

回復: 1
列印 上一主題 下一主題

如何通過機器學習解讀唇語?

[複製鏈接]

8181

主題

1萬

帖子

2萬

積分

貝殼光明大使

Rank: 6Rank: 6

積分
26631
跳轉到指定樓層
樓主
小康人家 發表於 2016-11-6 22:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  如何通過機器學習解讀唇語?DeepMind要通過LipNet幫助機器「看」懂別人說的話

  機器之心mp2016-11-06 16:45:07閱讀(356)評論(0)

  選自oxml.co.uk

  機器之心編譯

  參與:吳攀

  還記得經典科幻電影《2001 太空漫遊》中的飛船主控計算機 Hall 嗎?它具有依靠閱讀說話人的嘴唇運動理解其所表達的內容的能力,這種能力也在推動那個幻想故事的情節發展中起到了至關重要的作用。近日,牛津大學、Google DeepMind 和加拿大高等研究院(CIFAR)聯合發布了一篇同樣具有重要價值的論文,介紹了利用機器學習實現的句子層面的自動唇讀技術 LipNet。該技術將自動唇讀技術的前沿水平推進到了前所未有的高度。原論文可點擊文末「閱讀原文」下載。

  

  摘要

  唇讀(lipreading)是指根據說話人的嘴唇運動解碼出文本的任務。傳統的方法是將該問題分成兩步解決:設計或學習視覺特徵、以及預測。最近的深度唇讀方法是可以端到端訓練的(Wand et al., 2016; Chung & Zisserman, 2016a)。但是,所有已經存在的方法都只能執行單個詞的分類,而不是句子層面的序列預測。研究已經表明,人類在更長的話語上的唇讀表現會更好(Easton & Basala, 1982),這說明了在不明確的通信通道中獲取時間背景的特徵的重要性。受到這一觀察的激勵,我們提出了 LipNet——一種可以將可變長度的視頻序列映射成文本的模型,其使用了時空卷積、一個 LSTM 循環網路和聯結主義的時間分類損失(connectionist temporal classification loss),該模型完全是以端到端的形式訓練的。我們充分利用我們的知識,LipNet 是第一個句子層面的唇讀模型,其使用了一個單端到端的獨立於說話人的深度模型來同時地學習時空視覺特徵(spatiotemporal visual features)和一個序列模型。在 GRID 語料庫上,LipNet 實現了 93.4% 的準確度,超過了經驗豐富的人類唇讀者和之前的 79.6% 的最佳準確度。

  1 引言

  唇讀在人類的交流和語音理解中發揮了很關鍵的作用,這被稱為「麥格克效應(McGurk effect)」(McGurk & MacDonald, 1976),說的是當一個音素在一個人的說話視頻中的配音是某個人說的另一個不同的音素時,聽話人會感知到第三個不同的音素。

  唇讀對人類來說是一項眾所周知的艱難任務。除了嘴唇和有時候的舌頭和牙齒,大多數唇讀信號都是隱晦的,難以在沒有語境的情況下分辨(Fisher, 1968; Woodward & Barber, 1960)。比如說,Fisher (1968) 為 23 個初始輔音音素的列表給出了 5 類視覺音素(visual phoneme,被稱為 viseme),它們常常會在人們觀察說話人的嘴唇時被混淆在一起。許多這些混淆都是非對稱的,人們所觀察到的最終輔音音素是相似的。

  所以說,人類的唇讀表現是很差的。聽覺受損的人在有 30 個單音節詞的有限子集上的準確度僅有 17±12%,在 30 個複合詞上也只有 21±11%(Easton & Basala, 1982)。

  因此,實現唇讀的自動化是一個很重要的目標。機器讀唇器(machine lipreaders)有很大的實用潛力,比如可以應用於改進助聽器、公共空間的靜音聽寫、秘密對話、嘈雜環境中的語音識別、生物特徵識別和默片電影處理。機器唇讀是很困難的,因為需要從視頻中提取時空特徵(因為位置(position)和運動(motion)都很重要)。最近的深度學習方法試圖通過端到端的方式提取這些特徵。但是,所有的已有工作都只是執行單個詞的分類,而非句子層面的序列預測(sentence-level sequence prediction)。

  在這篇論文中,我們提出了 LipNet。就我們所知,這是第一個句子層面的唇讀模型。就像現代的基於深度學習的自動語音識別(ASR)一樣,LipNet 是以端到端的方式訓練的,從而可以做出獨立於說話人的句子層面的預測。我們的模型在字元層面上運行,使用了時空卷積神經網路(STCNN)、LSTM 和聯結主義時間分類損失(CTC)。

  我們在僅有的一個公開的句子層面的數據集 GRID 語料庫(Cooke et al., 2006)上的實驗結果表明 LipNet 能達到 93.4% 的句子層面的詞準確度。與此對應的,之前在這個任務上的獨立於說話人的詞分類版本的最佳結果是 79.6%(Wand et al., 2016)。

  我們還將 LipNet 的表現和聽覺受損的會讀唇的人的表現進行了比較。平均來看,他們可以達到 52.3% 的準確度,LipNet 在相同句子上的表現是這個成績的 1.78 倍。

  最後,通過應用顯著性可視化技術(saliency visualisation techniques (Zeiler & Fergus, 2014; Simonyan et al., 2013)),我們解讀了 LipNet 的學習行為,發現該模型會關注視頻中在語音上重要的區域。此外,通過在音素層面上計算視覺音素(viseme)內和視覺音素間的混淆矩陣(confusion matrix),我們發現 LipNet 少量錯誤中的幾乎所有都發生在視覺音素中,因為語境有時候不足以用於消除歧義。

  2 相關工作

  本節介紹了其它在自動唇讀研究上的工作,包含了自動唇讀、使用深度學習進行分類、語音識別中的序列預測、唇讀數據集四個方面。但由於篇幅限制,機器之心未對此節進行編譯,詳情請查看原論文。

  

  表 1:現有的唇讀數據集和對應數據集上已被報告出來的最佳準確度。Size 這一欄是指作者訓練時所用的話語的數量。儘管 GRID 語料庫包含了整個句子,但 Wand et al. (2016) 只考慮了更簡單的預測單獨的詞的情況。LipNet 預測的是句子,因此可以利用時間語境來實現更高的準確度。短語層面的方法被當作簡單的分類看待。

  3 LipNet

  LipNet 是一種用於唇讀的神經網路架構,其可以將不同長度的視頻幀序列映射成文本序列,而且可以通過端到端的形式訓練。在本節中,我們將描述 LipNet 的構建模塊和架構。

  3.1 時空卷積

  卷積神經網路(CNN)包含了可在一張圖像進行空間運算的堆疊的卷積(stacked convolutions),其可用於提升以圖像為輸入的目標識別等計算機視覺任務的表現(Krizhevsky et al., 2012)。一個從 C 通道到 C' 通道的基本 2D 卷積層(沒有偏置(bias),以單位步長)的計算:

  

  對於輸入 x 和權重:

  

  其中我們定義當 i,j 在範圍之外時,xcij=0.

  時空卷積神經網路(STCNN)可以通過在時間和空間維度上進行卷積運算來處理視頻數據:

  

  3.2 長短期記憶

  長短期記憶(LSTM)(Hochreiter & Schmidhuber, 1997)是一類在早期的循環神經網路(RNN)上改進的 RNN,其加入了單元(cell)和門(gate)以在更多的時間步驟上傳播信息和學習控制這些信息流。我們使用了帶有遺忘門(forget gates)的標準 LSTM 形式:

  

  其中 z := {z1, . . . , zT } 是 LSTM 的輸入序列,是指元素之間的乘法(element-wise multiplication), sigm(r) = 1/(1 + exp(?r))。

  我們使用了 Graves & Schmidhuber (2005) 介紹的雙向 LSTM(Bi-LSTM):一個 LSTM 映射

  

  ,另一個是

  ,然後

  

  ,該 Bi-LSTM 可確保 ht 在所有的 t' 上都依賴於 zt'。為了參數化一個在序列上的分佈,在時間步驟 t,讓 p(ut|z) = softmax(mlp(ht;Wmlp)),其中 mlp 是一個權重為 Wmlp 的前向網路。然後我們可以將長度 T 的序列上的分佈定義為

  ,其中 T 由該 LSTM 的輸入 z 確定。在 LipNet 中,z 是該 STCNN 的輸出。

  3.3 聯結主義的時間分類

  聯結主義的時間分類損失(onnectionist temporal classification (CTC) loss)(Graves et al., 2006)已經在現代的語音識別領域得到了廣泛的應用,因為這讓我們不再需要將訓練數據中的輸入和目標輸出對齊(Amodei et al., 2015; Graves & Jaitly, 2014; Maas et al., 2015)。給定一個在 token 類(辭彙)上輸出一個離散分佈序列的模型——該 token 類使用了一個特殊的「空白(blank)」token 進行增強,CTC 通過在所有定義為等價一個序列的序列上進行邊緣化而計算該序列的概率。這可以移除對對齊(alignment)的需求,還同時能解決可變長度的序列。用 V 表示該模型在其輸出(辭彙)的單個時間步驟上進行分類的 token 集,而空白增強過的辭彙

  

  其中空格符號表示 CTC 的空白。定義函數 B : V? ? → V ?,給定 V? 上的一個字元串,刪除相鄰的重複字元並移除空白 token。對於一個標籤序列 y ∈ V ?,CTC 定義

  

  其中 T 是該序列模型中時間步驟的數量。比如,如果 T=3,CTC 定義字元串「am」的概率為

  

  這個和可以通過動態編程(dynamic programming)有效地計算出來,讓我們可以執行最大似然(maximum likelihood)

  

  圖 1:LipNet 架構。一個 T 幀的序列被用作輸入,被一個 3 層的 STCNN 處理,其中每一層後面都有一個空間池化層(spatial max-pooling layer)。提取出的特徵是時間上上採樣(up-sample)的,並會被一個 Bi-LSTM 處理;LSTM 輸出的每一個時間步驟會由一個 2 層前向網路和一個 softmax 處理。這個端到端的模型是用 CTC 訓練的。

  3.4 LipNet 架構

  圖 1 給出了 LipNet 的架構,其始於 3×(時空卷積、通道上的 dropout、空間最大池化),後面跟隨時間維度中的上採樣。

  因為人類每秒鐘大約能發出 7 個音素,而且因為 LipNet 是在字元層面上工作的,所以我們總結得到:每秒輸出 25 個 token(視頻的平均幀率)對 CTC 來說太受限了。時間上採樣(temporal up-sampling)允許在字元輸出之間有更多的空格。當許多詞有完全相同的連續字元時,這個問題會加劇,因為他們之間需要一個 CTC 空白。

  隨後,該時間上採樣後面跟隨一個 Bi-LSTM。該 Bi-LSTM 對 STCNN 輸出的有效進一步會聚是至關重要的。最後在每一個時間步驟上應用一個前向網路,後面跟隨一個使用了 CTC 空白和 CTC 損失在辭彙上增強了的 softmax。所有的層都是用了修正線性單元(ReLU)激活函數。超參數等更多細節可參閱附錄 A 的表 3.

8181

主題

1萬

帖子

2萬

積分

貝殼光明大使

Rank: 6Rank: 6

積分
26631
沙發
 樓主| 小康人家 發表於 2016-11-6 22:55 | 只看該作者
  4 唇讀評估

  在這一節,我們將在 GRID 上評估 LipNet。

  4.1 數據增強

  預處理(Preprocessing):GRID 語料庫包含 34 個主題,每一個主題包含了 1000 個句子。說話人 21 的視頻缺失,其它還有一些有所損壞或空白,最後剩下了 32839 個可用視頻。我們使用了兩個男性說話人(1 和 2)與兩個女性說話人(20 和 22)進行評估(3986 個視頻),剩下的都用於訓練(28853 個視頻)。所有的視頻都長 3 秒,幀率為 25 fps. 這些視頻使用 DLib 面部檢測器和帶有 68 個 landmark 的 iBug 面部形狀預測器進行了處理。使用這些 landmark,我們應用了一個放射變換(affine transformation)來提取每幀中以嘴為中心的 100×50 像素大小的區域。我們將整個訓練集上對 RGB 通道進行了標準化以具備零均值和單位方差。

  增強(Augmentation):我們使用簡單的變換來增強數據集以減少過擬合,得到了多 15.6 倍的訓練數據。首先,我們在正常的和水平鏡像的圖像序列上進行訓練。然後,因為該數據集提供了每個句子視頻中的詞開始和結束時間,所以我們使用單獨的詞的視頻片段作為額外的訓練實例增強了句子層面的訓練數據。

  4.2 基線

  為了評估 LipNet,我們將其表現和三位懂得讀唇的聽覺受損者以及兩個由最近的最佳成果啟發的 ablation model(Chung & Zisserman, 2016a; Wand et al., 2016)的表現進行了比較。

  聽覺受損者:這個基線是由牛津學生殘疾人社區(Oxford Students』 Disability Community)的三位成員得到的。在被介紹了 GRID 語料庫的語法之後,他們從訓練數據集中觀察了 10 分鐘帶有註釋的視頻,然後再從評估數據集中註釋了 300 個隨機視頻。當不確定時,他們可以選擇覺得最有可能的答案。

  Baseline-LSTM:使用句子層面的 LipNet 配置,我們複製了之前 GRID 語料庫當時(Wand et al., 2016)的模型架構。參看附錄 A 了解更多實現細節。

  Baseline-2D:基於 LipNet 架構,我們使用僅空間的卷積替代了 STCNN,這類似於 Chung & Zisserman (2016a) 的那些。值得一提的是,和我們用 LipNet 觀察到的結果相反,Chung & Zisserman (2016a) 報告他們的 STCNN 在他們的兩個數據集上比他們的 2D 架構的性能差分別 14% 和 31%。

  4.3 性能評估

  


  表 2:LipNet 相比於基線的性能

  表 2 總結了相比於基線的性能。根據文獻,人類唇讀者的準確率大約是 20%(Easton & Basala, 1982; Hilder et al., 2009)。如預料的一樣,GRID 語料庫中固定的句子結構和每個位置有限的詞子集有助於對語境的使用,能提升表現。這三位聽覺受損者的詞錯率(WER)分別為 57.3%、50.4% 和 35.5%,平均詞錯率為 47.7%。

  4.4 學到的表徵

  在這一節中,我們從語音學的角度分析了 LipNet 的學習到的表徵。首先,我們創造了顯著性可視化(saliency visualisations (Simonyan et al., 2013; Zeiler & Fergus, 2014))來說明 LipNet 所學的重點區域。特別地,我們向該模型送入了一個輸入,並貪婪地解碼了一個輸出序列,得出了一個 CTC 對齊

  

  (遵循 3.2 和 3.3 節的符號)。然後,我們計算了

  

  的梯度,並考慮了輸入視頻幀序列,但和 Simonyan et al. (2013) 不一樣,我們使用了有引導的反向傳播(guided backpropagation (Springenberg et al., 2014))。第二,我們訓練 LipNet 預測的是 ARPAbet 音素,而不是字元,這樣可以使用視覺音素(viseme)內和視覺音素間的混淆矩陣(confusion matrix)來分析視覺音素。

  4.4.1 顯著性地圖(Saliency Maps)

  我們應用顯著性可視化技術(saliency visualisation techniques)來解讀 LipNet 學習到的行為,結果表明該模型會重點關注視頻中在語音方面重要的區域。特別地,在圖 2 中,我們基於 Ashby (2013) 為說話人 25 的詞 please 和 lay 分析了兩個顯著性可視化。

  

  圖 2:詞 (a) please 和 (b) lay 的顯著性地圖,由向輸入的反向傳播產生,展示了 LipNet 學會關注的地方。圖中的轉錄由貪婪 CTC 解碼(greedy CTC decoding)給出。CTC 空白由空格符號表示。

  4.4.2 視覺音素(viseme)

  根據 DeLand(1931)和 Fisher(1968),Alexander Graham Bell 首次假設給定說話人的多音素可被視覺地識別。這在後來得到了證實,這也帶來了視覺音素的概念,即一個音素的視覺對應(Woodward & Barber, 1960; Fisher, 1968)。為了我們的分析,我們使用了 Neti et al. (2000) 中音素到視覺音素的映射,將視覺音素聚類成了以下類別:Lip-rounding based vowels (V)、Alveolar-semivowels (A),、Alveolar-fricatives (B)、Alveolar (C)、Palato-alveolar (D)、Bilabial (E), Dental (F)、Labio-dental (G) 和 Velar (H)。完整映射可參看附錄 A 中的表 4. GRID 包含了 ARPAbet 的 39 個音素中的 31 個。我們計算了音素之間的混淆矩陣(confusion matrix),然後按照 Neti et al. (2000) 將音素分組成了視覺音素聚類。圖 3 表示了 3 個最容易混淆的視覺音素類別,以及視覺音素類別之間的混淆。完整的音素混淆矩陣參看附錄 B 圖 4.

  

  圖 3:視覺音素內和視覺音素間的混淆矩陣,描繪了 3 個最容易混淆的類別,以及視覺音素聚類之間的混淆。顏色進行了行規範化(row-normalised)以強調誤差。

  5. 結論

  我們提出了 LipNet,它是第一個將深度學習應用於模型的端到端學習的模型,可以將說話者的嘴唇的圖像幀序列映射到整個句子上。這個端到端的模型在預測句子前不再需要將視頻拆分成詞。LipNet 需要的既不是人工編入的時空視覺特徵,也不是一個單獨訓練的序列模型。

  我們的實證評估表明了 時空特徵提取和高效的時間聚集(temporal aggregation)的重要性,確認了 Easton 和 Basala 在 1982 年提出的假說(1982)。此外,LipNet 大大超越了人類的讀唇水平的基線,比人類水平高出 7.2 倍,WER 達到了 6.6%,比現在 GRID 數據集中最好的詞水平(Wand 等人,2016)還要低 3 倍。

  雖然 LipNet 在實證上取得了成功,Amodei 等人在 2015 年發表的深度語音識別論文顯示,只有更多的數據才能讓表現提升。在未來的研究中,我們希望通過將 LipNet 應用到更大的數據集中來證明這一點,如由 Chung 和 Zisserman 等人在 2016 年收集的這種數據集的句子水平變體(sentence-level variant)。像默寫這樣的應用只能使用視頻數據。然而,為了擴展 LipNet 的潛在應用,我們能將這種方法應用到一種聯合訓練的視聽語音識別模型上,其中視覺輸入會在嘈雜的環境中提升魯棒性。

回復 支持 反對

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 註冊

本版積分規則

關於本站 | 隱私權政策 | 免責條款 | 版權聲明 | 聯絡我們

Copyright © 2001-2013 海外華人中文門戶:倍可親 (http://big5.backchina.com) All Rights Reserved.

程序系統基於 Discuz! X3.1 商業版 優化 Discuz! © 2001-2013 Comsenz Inc.

本站時間採用京港台時間 GMT+8, 2025-8-1 13:32

快速回復 返回頂部 返回列表