上個月筆者曾在《銀行家雜志》發文傳統銀行如何引領開放銀行時代潮流,就曾指出AI換臉等技術的興起將會我們未來的身份認證手段造成一定的麻煩。而最近ZAO換臉軟件再次爆紅社交媒體,而且其接近于霸王條款的使用協議也將對于用戶隱私造成一定的風險,雖然后來ZAO公開致歉,不過這波熱點效應也讓Faceswap這個開源的AI換臉項目登頂Github周排行的榜首。
AI換臉歷程簡介
AI換臉首次走進國人視線是在19年3月,一名叫做換臉哥的網友,就上傳了一段轟動全網的視頻,將扮演94版射雕中黃蓉的演員由朱菌換成了楊冪,而且幾乎真假難辯。
而AI換臉在學界早就有所涉及,在18年年中人工智能替換人臉面部特征的技術在科研學術研究領域和開源社區兩個方向上都獲得了不小的發展,首先是在SIGGRAPH(暨國際計算機圖形學會)的18年年會上一個由斯坦福大學、慕尼黑技術大學、巴斯大學等科研究機構聯系研發的”Deep Video portrait”系統橫空出世,該技術不但能讓被替換的人臉完全模板原視頻中人物的表情,甚至在放大對比時,兩個視頻在發絲和睫毛的表現上都能做到極度的精確,后來描述該技術的論文被發表在了《ACM圖形交易上》,不過所幸的是研發”Deep Video portrait”技術的幾家機構并沒有公開其項目的源代碼。
而在開源社區中“AI換臉技術”也是得到了相當多的關注,先是一種叫做Reddit上的deepfakes論壇發布多款使用AI換臉技術生成的不雅視頻,使多名女星中招,后來Reddit被迫直接關閉了deepfakes的板塊,后來在Github由deepfakes衍生而來的開源項目數量不下十幾個,其中以faceswap、Openfaceswap等開源項目為代碼的換臉技術在github上的更新與討論十分熱烈,極快的推動了開源換臉技術的迭代速度。
Faceswap安裝教程
而在之前AI換臉軟件還一般只能安裝在LINUX平臺,而有算力不低于1.0的N卡、裝有PYTHON、CONDA環境及CUDA和CUDAN等苛刻要求,這一番操作下來至少不是專業的IT人員還真是難以搞定,不過筆者親測了一下最新的Faceswap for windows版本的程序,其安裝布署的簡單快捷程度出乎我的意料,下面我就來詳細介紹一下安裝步驟。
1.下載Faceswap安裝程序
首先到Githhub上下載最新的Release版本目前最新的鏈接如下https://github.com/deepfakes/faceswap/releases/latest/download/faceswap_setup_x64.exe
特別揭示:deepfakes相關軟件在github被限制使用,必須登陸用戶才可以訪問,所以如果出現以下頁面,請登陸Github:
2.雙擊安裝程序進行安裝
只需要在開始界面選擇安裝路徑,在以下界面選擇顯卡類型,其余就不需要關心了,安裝程序會自行配置好Git和conda,還會自行配置環境變量。
Faceswap使用教程
首先需要明確一下AI換臉的基本概念,我在之前的博文終于把AI換臉的原理搞清了曾經介紹過AI換臉的基本原理,AI換臉當中兩大最重要的技術就是人臉檢測和人臉對齊。其中人臉檢測顧名思義就是在圖像中將人臉的部分檢測出來,人臉對齊其實就是要把從不同角度、光照、遮擋等情況下得到的人臉信息還原同標準場景下。
雖然安裝步驟比之前簡單了,不過Faceswap使用起來還是相對比較麻煩的,其基本流程如下:
獲取人臉A的信息:首先對于含有人臉A信息的視頻進行處理,偵測所有人臉并及人臉的對齊信息,然后需要用戶確認對于人臉A的偵測結果正確,如果含有其它人臉不屬于人臉A的信息則進行刪除,當然如果其它視頻中也包含人臉A的信息你也可以將上述文件合并,形成更大的人臉、人臉對齊信息
獲取人臉A的信息:重復上述步驟得到人臉B的偵測和對齊信息
模型訓練:使用人臉A和人臉B的偵測及對齊信息進行訓練。
視頻轉換:使用剛剛訓練好的模型就可以進行視頻轉換了。
接下來咱們分步介紹Faceswap的一般使用流程
1、啟動程序
在上面安裝成功后桌面上會自動多出一個“Faceswap"的圖標,雙擊程序會自動調起對應的Python及conda版本進行啟動
首次啟動大概需要幾分鐘,然后就可以進入相關圖像界面了。
2、處理視頻獲得人臉A的信息
進行圖型界面后直接在EXACT頁進行視頻的處理,其中
Input Dir: 如果是使用視頻則需要選定一個文件,如果使用一組圖片則選定一個文件夾。
Output Dir: Faceswap會把處理得到的人臉圖像放在output文件夾中
Alignments:不需要填寫,使用默認即可,注這里的對齊文件實際是指眉、眼、鼻子、嘴等68個
Serializer: 使用默認即可。
Detector:S3FD的效果的確比較不錯。
其余選項不需要更改均使用默認即可。
點擊Exact按扭即可開始。
揭示:這項操作非常吃內存,我這邊的經驗值是每1G內存可以處理40張1280*768的圖像,以此類推。
具體如下:
3.刪除不必要的信息
我們除了人臉的圖像外,還會得到一些如雜志封面的圖像,那么接下來我們就要把我們不需要處理的圖像刪除。
選擇tools標簽的sort選項,這時的input是實際是我們剛剛解壓完成的output文件壓,確保Final process選為rename選項,其余按默認可。
然后點擊Sort即可完成排序。
接下來將Sort完成的結果進行處理,刪除不需要的對齊信息。
選擇tools標簽的Alignment選項,job選項Remove-Faces具體如下:
其中Alignments files是步驟2生成的對齊文件,Face Folder是我們剛剛sort后的輸出目錄。設置完畢后點擊Alignments 即可。
4.重復2、3步獲得人臉B的相關偵測及對齊信息
5.訓練模型
獲得了人臉A和B的信息后就可以訓練模型了,其中
Input A:人臉A的圖像文件。
Alignments A:人臉A的對齊文件
Input B:人臉B的圖像文件。
Alignments B:人臉B的對齊文件
選定完成之后點擊Train按扭即可,不過這個時間一般比較長,筆者的2080處理的圖像數量在1000張左右,截止目前已經運行了接近一天,還未結束。
6.正式換臉
訓練完成后,就可以進行換臉了:
Input Dir: 要轉換的包含有人臉A的視頻。注意如果Input Dir中輸入的視頻不是步驟2中提取人臉A特征的視頻,也需要對于此視頻按照步驟2生成對齊文件。
Output Dir: 轉換后視頻的位置
Alignments:對齊文件位置
Model Dir:我們在步驟5中生成模型的位置。
配置完成后點擊convert即可完成轉換。
但是筆者的模型尚未訓練完成,且為了避免侵權,就放一個Github已訓練完成的模型效果圖吧(把詹尼佛.勞倫斯換成史蒂夫·布西密吧:
寫在最后
首先對于IT人員來說Faceswap的代碼質量上乘,值得一讀,重點推薦https://github.com/deepfakes/faceswap/tree/master/lib/alignments.py這個有關對齊的代碼質量不錯,找時間可以給大家詳細解讀一下。
其次目前尚沒有可靠的技術能夠鑒定視頻的真偽,雖然目前臉書、微軟t聯合麻省理工學院等一票大學共同發起了Deepfake挑戰賽,但是我之前的博客中也介紹過AI假新聞滿天飛,打假神器GROVER幫你看清一切中利用AI去鑒定假新聞的嘗試,不過其鑒定成功率和可靠率還很低,而且從目前AI換臉的原理來看,其技術破破綻更少,鑒定難度比NLP會更大。所以不排除今后實時的監控視頻都需要按照《GB/T 25724-2017公共安全視頻監控數字視音頻編解碼技術要求》進行安全加固,才算有效了。