FaceForensics:一個用於人臉偽造檢測的大型視頻數據集
來源:arXiv
編譯:Bot
編者按:幾個月前,深度學習演算法deepfakes風靡社交網路,引發無數網友將無辜女明星的臉用於合成AV。事件曝光後後,Reddit立即封禁了所有帖子,但它產生的惡劣影響卻令人擔憂——如今隨便一個普通人憑著一張GPU、一堆足夠多的訓練數據就能實現人臉替換,而且它的效果好到能超出人眼識別的範圍,那麼我們該如何防止它被濫用於損害他人名譽?又或者說,我們對以後在視頻中看到的內容又該保有幾分信任?
為了解決這個問題,近日慕尼黑工業大學(TUM)等高校的研究人員製作了一個名為FaceForensics的大型人臉偽造視頻數據集,並成功用深度學習演算法XceptionNet實現了「假臉」檢測。以下是論智對論文部分內容的編譯:
哪張臉是真實的臉?
摘要
隨著計算機視覺和圖像處理技術取得最新進展,現在我們已經能做到在視頻中實時合成極其逼真的人臉。這項技術的背後是無限的應用空間,但其中的某些濫用行為卻為我們拉響了安全警報,因此開發一個可靠的虛假視頻檢測器迫在眉睫。
事實上,區分原始視頻和造假視頻對人和計算機來說都是一個挑戰,特別是在視頻被壓縮或解析度較低的情況下,而這種視頻一般多見於社交媒體網站。由於缺乏足夠大的數據集,以往對人臉偽造視頻檢測的研究一直因受阻而停滯不前。為此,我們引入了一個全新的人臉偽造數據集,它包含約50萬張人臉圖像(來自1004個視頻),圖像所涉及的作偽技術都是當前最先進的,且在質量上超過現有同類視頻處理數據集至少一個數量級。
通過使用這個新數據集,我們提出了一種能在各種分類、剪輯、壓縮情況下對圖像進行經典圖像取證的基準,此外,我們還提引入了基準評估,它能在現實基礎上創建已知的、難以區分的偽造模型,例如生成細化模型。
數據集FaceForensics
FaceForensics中包含的數據來自1004個視頻,它由兩個子集組成。其中第一個數據集(source-to-target)包含的是存在差異的源視頻和目標視頻,而第二個數據集(self-reenactment)則是輸入視頻後由face2face還原的視頻,即源視頻與目標視頻相同。這兩個數據集允許我們訪問合成圖像和真實圖像的真值對(ground truth pairs)。
源-目標數據集:源演員的原始輸入圖像—目標演員的原始輸入圖像—重演結果—合成期間使用的3D模型
數據搜集:所有數據都來自YouTube。我們選擇的是解析度大於480p的視頻,它們在YouTube8m上已用「face」「newscaster」或「newsprogram」進行了標記。通過使用Viola-Jones人臉檢測器,我們從圖片中提取了包含超過300個連續幀的人臉視頻序列,之後再剪輯成果並手動放映,從中篩選出優質的、無遮擋的視頻。
數據處理:為了處理視頻,我們使用的方法是最先進的face2face,它能完全自動重演操作,並能在不同表情條件下重新渲染視頻中的人臉。在預處理階段,我們用第一幀獲取人臉的3D模型,並在剩下的幀中跟蹤表情。為了改善個體擬合和靜態紋理估計,面部左右角度的檢測框是自動選擇的,而這在face2face里原本是手動完成的。簡而言之,通過追蹤表情,我們能實現個體擬合和靜態紋理估計;而通過個體重建,我們就能追蹤整個視頻來計算每一幀的表達式、rigid pose和照明參數。
這兩個數據集的目標主要有以下兩點:
驗證用當前最先進技術生成的偽造視頻在分類和分割時會有什麼樣的表現。
能否使用生成網路提高偽造質量。
偽造分類任務
偽造分類任務的目的是識別偽造圖像,它可以被看作是一個二元分類問題,逐幀處理視頻。在數據集的支持下,我們理想中的檢測演算法不僅能分類高清視頻,它應該也能分類視頻被壓縮或解析度較低的視頻。為了測試演算法的性能,我們用H.264壓縮演算法設置了3個視頻壓縮基線:無壓縮視頻、參數為23的低壓縮視頻和參數為40的高壓縮視頻。
各基線的清晰度對比
我們在數據集上測試了一系列CNN模型,其中包括一個基於XceptionNet CNN架構的遷移模型。首先,我們在ImageNet上事先把XceptionNet CNN訓練好,並對數據集進行微調。在微調期間,我們固定與整個神經網路前4個模塊相對應的36個卷積層,然後把最後一層替換成兩個帶輸出的全連接層,隨機初始化後進行10個epoch的訓練。
當網路連續5個epoch基本保持不變後,為了優化輸出,我們又引入了一些超參數來進行評估:Adam、學習率=0.001、β1=0.9、β2=0.999、batch-size=64。下表是我們得出的各模型分類準確率:
分類準確率:無壓縮 (no-c);低壓縮 (easy-c);高壓縮(hard-c)
可以發現,在無壓縮情況下,所有模型都表現良好,而隨著視頻清晰度的下降,它們的準確率也都出現了不同程度的下降,其中較淺的CNN表現尤為明顯,而XceptionNet CNN總體表現優秀。事實上,這種下降是可以接受的,因為一旦視頻變得很模糊,人眼也無法作出準確的區分。
偽造分割任務
處理圖像的像素級分割是一項非常具有挑戰性的任務,而對於圖像取證,最有效的一種方法是根據基於相機的偽像(如感測器雜訊,去馬賽克)。但這種方法在我們的數據集上並沒有很好的表現,即便是未壓縮的視頻,它的表現也很一般。所以我們還是得用深度學習方法,用數據集進行充分訓練。
因為XceptionNet之前在分類任務中表現良好,所以這裡我們還是把它作為對比模型之一。在測試時,神經網路的滑動窗口以128×128像素大小移動,步長16。每個圖像塊Wi計算出操作概率的估計值p?i= CNN(Wi),然後把它分配給中央的16×16區域。(詳細過程略)
同樣的,當網路連續5個epoch基本保持不變後,我們再次引入學習率=0.001、β1=0.9、β2=0.999進行優化。因為要將和16個原圖像、偽造圖像相關的3個原圖像塊、偽圖像塊組合訓練,這次的batch-size=96。
精度和召回率
偽造人臉分割結果
如上圖所示,這次我們沿用了之前的定量評估,發現隨著壓縮率的上升,各模型分割性能都出現了明顯下降。最終,在高壓縮視頻中,只有基於XceptionNet的模型給出了較好的輸出。
反向用於生成偽像
在我們的「偽造分類任務」中,實驗證明Face2Face可以從未壓縮的視頻中檢測到相當多的數據信息,這就產生了一個問題,即這個數據集是否也能用於相反的目標——進一步提升合成人訓練的逼真程度。為了證實這一點,我們用包含521,406個目標真值的第二個數據集做了一次監督學習。
帶有skip connection的自動編碼器(AE)
作為基準,我們設計了一個帶有skip connection的自動編碼器CNN架構,它將128×128像素的圖像作為輸入,並預測具有相同解析度的圖像(見上圖)。為了從人臉圖像中獲得有意義的特徵,我們先使用VGGFace2數據集以無監督學習的方式對自動編碼器網路進行預訓練。該數據集包含9131個類別的313萬幅圖像,比我們的數據集多,但沒有經過標記。我們禁用了skip connection,強迫神經網路完全依靠瓶頸層進行訓練。
之後,我們又對FaceForensics中的368,135個訓練圖像進行微調,並把經過預訓練的自動編碼器網路放在上面訓練。我們輸入一張假臉,把監督學習的loss設置成1,啟用skip connection,以便網路能輸出更清晰的結果。
上圖展示了我們的成果。通過拉近特寫鏡頭,可以發現比起Face2Face,我們改進自動編碼器後生成的圖片能顯示更多細節。Face2Face在鼻孔、鼻子、下巴和臉頰周圍會生成大量偽影,我們的方法不僅讓這些區域的線條更清晰,還修改了人臉3D模型與背景之間的過渡錯誤。同時,它還改進了Face2Face由於照明參數估計錯誤導致的偽影問題。
原文地址:arxiv.org/pdf/1803.09179.pdf
數據集地址:niessnerlab.org/projects/roessler2018faceforensics.html
※利用深度學習幫助科學圖像分析
※除了Kaggle,數據科學競賽平台還有哪些選擇?
TAG:論智 |