你說我導!微軟玩轉標題描述生成視訊
■ 論文 | To Create What You Tell: Generating Videos from Captions
■ 連結 | https://www.paperweekly.site/papers/2315
■ 作者 | Yingwei Pan / Zhaofan Qiu / Ting Yao / Houqiang Li / Tao Mei
視訊生成在計算機視覺上已經是很困難的工作了,按照描述去生成視訊是更具有挑戰性的工作。 To Create What You Tell: Generating Videos from Captions 簡稱為 TGANs-C,在實驗上實現了由描述的標題生成相對應的視訊 ,這個工作很有意義,整體思想上採取 GAN 為主題框架實現,我們一起來讀一下。
論文引入
視訊生成的困難在於視訊是視覺上連貫和語義相關的幀的序列,也就是在時序序列上做生成,一涉及到時序就存在大量的不確定性,這也是語音和視訊生成上的難點所在。
視訊通常伴隨有文字描述,例如標籤或字幕,因此學習視訊生成模型對文字進行調節從而減少了取樣不確定性,這個是具有很大的潛在實際應用。GAN 在實現時序上的生成我們之前有寫到 Temporal GAN 論文解讀 [1]、VGAN 論文解讀 [2],整體的思想都是採用 3D 卷積處理視訊序列從而實現視訊的生成。
TGANs-C 和 TGAN 的區別在與 TGANs-C 實現了由描述性文字到視訊的生成, 這篇論文在基礎上借鑑了文字到圖片生成的 GAN-CLS 即採用配對的思想 ,這個我們後續再談,如果你對 GAN-CLS [3] 印象很深的話這篇文章讀起來會很輕鬆。
通常,在採用標題調節的視訊生成中存在兩個關鍵問題:跨視訊幀的時間一致性以及標題描述與生成的視訊之間的語義匹配。前者產生了對生成模型學習的見解,相鄰視訊幀通常在視覺上和語義上是連貫的,因此應該隨著時間的推移而平滑地連線,這可以被視為產生視訊的內在和通用屬性。後者追求的模型能夠建立與給定標題描述相關的真實視訊。
因此,一方面考慮條件處理以建立類似於訓練資料的視訊,另一方面考慮通過整體利用字幕語義和視訊內容之間的關係來規範生成能力,這正是 TGANs-C 所考慮的。
總結一下 TGANs-C 的優勢:
-
這是第一個在標題描述下生成視訊的工作之一
-
實現了視訊/幀內容與給定標題對齊
-
通過一系列廣泛的定量和定性實驗,驗證了 TGANs-C 模型的有效性
TGANs-C模型結構
我們還是先來看一下模型的網路結構:
整體上模型分為左右兩塊,左邊是生成器,右邊就是判別器,所以說 TGANs-C 是以 GAN 為主體框架的模型 ,我們分開來分析。
生成網路
生成網路下由兩塊組成,下面是標題描述的文字編碼,上面就是在噪聲和文字編碼特徵作為輸入的生成器。對於文字編碼,文章採用的是雙向LSTM做的編碼。文字描述的時序和語義結構是緊密相關的,所以需要保留時序資訊,所以 RNN 的思想是處理的關鍵。對於文字編碼過程中採用逐個單詞雙向處理,雙向LSTM可以保證文字上更加緊密的時序和語義結構,最終編碼到特徵維度為 文中取的是 256 維。



代表的是通道數、幀、高、寬,這裡的高和寬對應的是視訊一幀影象的長寬,幀代表反捲積下包括多少視訊幀,比如最後的輸出文中取的是 16 幀作為視訊的輸出。
可以看到,經過 3D 反捲積後,由噪聲和文字編碼最後生成了彩色的 16 幀大小為 48×48 的視訊輸出。整個生成器我們可以將標題描述特徵作為條件,整個生成器是類似於條件生成器,由標題描述特徵作為條件生成對應的視訊。
判別網路
TGANs-C 有著強大的判別網路,文章為了實現判別效果設計了 3 個判別器,圖中對應的是右半邊上、中、下。
上面一路的判別器命名為 ,它的目的是為了區別生成的視訊和真實的視訊的真假,為了保證與標題描述對應,在最後嵌入了標題特徵做匹配。這個思想在 GAN-CLS 最早被應用,為了實現和描述文字的匹配,在判別器的設計上增強了判別器的能力。
判別器不僅判斷視訊的真假還判斷視訊是否和標題描述對應,配對就這樣產生了,由 3 組配對關係:真實視訊和正確標題描述 、生成視訊和真實標題描述
還有就是真實視訊和錯誤標題描述
。判別器
只有在真實視訊和正確標題對應上才判斷為真,否則為假,即
真,
、
為假。與之對應的損失函式為:
中間一路的判別器命名為 D1,它的目的是為了區分對應的視訊幀的真假,同樣的加入了與標題描述的匹配,用 描述視訊的第 i 幀對應的影象,對於整個視訊一共有
幀,這個判別器對應的損失為:
下面一路的判別器命名為 D2,它的目的是為了在時序上調整前後幀的關係,一般視訊中前後幀之間不會有太大的變動,由此思想文章設計了時序關聯損失。它的作用是保證視訊的前後幀之間不會有太大的差異,用 D 表示:
由於決定生成的視訊幀的幀之間的關係的是生成器,對於真實視訊沒必要再做差異優化,所以這部分主要作用的是生成器,這一塊的損失可以寫為:
為什麼這裡的上標為 1 呢,因為對應的還有 2,這一部分是考慮到生成視訊幀之間的關聯差異,從動態差異上實現對抗又會怎麼樣呢?這就是另一種實現時序關聯的方法。 這一部分用 Φ2 判斷真假,此損失表示為:
文中對時序關聯上採取的方法 (1) 時間相干約束損失命名為 TGANs-C-C,對於方法 (2) 時間相干性對抗性損失命名為 TGANs-C-A。從後續的實驗上驗證出 TGANs-C-A 的方法效果更好,所以文章的名字 TGANs-C 其實指的是 TGANs-C-A。
整合一下,對於方法 (1) TGANs-C-C 對應的判別器和生成器最終損失為:
對於方法 (2) TGANs-C-A 對應的判別器和生成器最終損失為:
最後貼上實現整個 TGANs-C 的虛擬碼:
TGANs-C實驗
實驗的資料集選擇了單數字邊界 MNIST GIF(SBMG),兩位數的彈跳 MNIST GIF(TBMG)和微軟研究視訊描述語料庫(MSVD)。
SBMG 是通過在 64×64 幀內彈出單個手寫數字而產生的。它由 12,000 個 GIF 組成,每個 GIF 長 16 幀,包含一個 28×28 左右移動的數字左右或上下。數字的起始位置是隨機均勻選擇的。每個 GIF 都附有描述數字及其移動方向的單句。
TBMG 是 SBMG 的擴充套件合成數據集,包含兩個手寫數字彈跳,生成過程與 SBMG 相同,每個 GIF 中的兩個數字分別左右或上下移動。MSVD 包含從 YouTube 收集的 1,970 個視訊片段。每個視訊大約有 40 個可用的英文描述。在實驗中,手動過濾掉有關烹飪的視訊,並生成 518 個烹飪視訊的子集。資料集的部分描述如下圖:
TGANs−C1 為僅考慮視訊對抗 ,TGANs−C2 為考慮了
未考慮
,TGANs-C-C 和 TGANs-C-A 都已經知道了構成,這幾個對比結果為:
定性分析不同模型產生的結果如下圖,主要對比了 VGAN、Sync-DRAW(基於 VAE 實現的)、GAN-CLS 和 TGANs-C。
定量上以不同人的選擇,給分越低效果越好,TGANs-C 也展示了很好的效果:
總結
TGANs-C 實現了標題描述到視訊的生成,正如文章的題目說的那樣 To Create What You Tell! 雖然這個題目有點大,但是確實在理論上是可以行得通的。匹配的思想對於嚴格的固定生成來說是很重要的一個技術環節,可以借鑑在很多地方,正是這種嚴格的配對關係往往限制了一些發展,因為這種算是全監督式學習了。無監督下條件生成是最為困難的,這個也是未來大家一起努力的地方。