程序員體驗AI換臉就不要用ZAO了,詳解Github周冠軍項目Faceswap的變臉攻略

本文連接:https://blog.csdn.net/BEYONDMA/article/details/100594136
       上個月筆者曾在《銀行家雜誌》發文傳統銀行如何引領開放銀行時代潮流,就曾指出AI換臉等技術的興起將會咱們將來的身份認證手段形成必定的麻煩。而最近ZAO換臉軟件再次爆紅社交媒體,並且其接近於霸王條款的使用協議也將對於用戶隱私形成必定的風險,雖而後來ZAO公開致歉,不過這波熱點效應也讓Faceswap這個開源的AI換臉項目登頂Github周排行的榜首。git

       AI換臉歷程簡介       
         AI換臉首次走進國人視線是在19年3月,一名叫作換臉哥的網友,就上傳了一段轟動全網的視頻,將扮演94版射鵰中黃蓉的演員由朱菌換成了楊冪,並且幾乎真假難辯。github

       而AI換臉在學界早就有所涉及,在18年年中人工智能替換人臉面部特徵的技術在科研學術研究領域和開源社區兩個方向上都得到了不小的發展,首先是在SIGGRAPH(暨國際計算機圖形學會)的18年年會上一個由斯坦福大學、慕尼黑技術大學、巴斯大學等科研究機構聯繫研發的」Deep Video portrait」系統橫空出世,該技術不但能讓被替換的人臉徹底模板原視頻中人物的表情,甚至在放大對比時,兩個視頻在髮絲和睫毛的表現上都能作到極度的精確,後來描述該技術的論文被髮表在了《ACM圖形交易上》,不過所幸的是研發」Deep Video portrait」技術的幾家機構並無公開其項目的源代碼。     windows

       而在開源社區中「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版本的程序,其安裝佈署的簡單快捷程度出乎個人意料,下面我就來詳細介紹一下安裝步驟。ide

    1.下載Faceswap安裝程序人工智能

    首先到Githhub上下載最新的Release版本目前最新的連接以下https://github.com/deepfakes/faceswap/releases/latest/download/faceswap_setup_x64.exe.net

特別揭示:deepfakes相關軟件在github被限制使用,必須登錄用戶才能夠訪問,因此若是出現如下頁面,請登錄Github:視頻

 

 

2.雙擊安裝程序進行安裝blog

      只須要在開始界面選擇安裝路徑,在如下界面選擇顯卡類型,其他就不須要關心了,安裝程序會自行配置好Git和conda,還會自行配置環境變量。排序

 

 

      Faceswap使用教程
      首先須要明確一下AI換臉的基本概念,我在以前的博文終於把AI換臉的原理搞清了曾經介紹過AI換臉的基本原理,AI換臉當中兩大最重要的技術就是人臉檢測和人臉對齊。其中人臉檢測顧名思義就是在圖像中將人臉的部分檢測出來,人臉對齊其實就是要把從不一樣角度、光照、遮擋等狀況下獲得的人臉信息還原同標準場景下。

     雖然安裝步驟比以前簡單了,不過Faceswap使用起來仍是相對比較麻煩的,其基本流程以下:

     獲取人臉A的信息:首先對於含有人臉A信息的視頻進行處理,偵測全部人臉並及人臉的對齊信息,而後須要用戶確認對於人臉A的偵測結果正確,若是含有其它人臉不屬於人臉A的信息則進行刪除,固然若是其它視頻中也包含人臉A的信息你也能夠將上述文件合併,造成更大的人臉、人臉對齊信息

    獲取人臉A的信息:重複上述步驟獲得人臉B的偵測和對齊信息

    模型訓練:使用人臉A和人臉B的偵測及對齊信息進行訓練。

    視頻轉換:使用剛剛訓練好的模型就能夠進行視頻轉換了。

    接下來我們分步介紹Faceswap的通常使用流程

   一、啓動程序

  在上面安裝成功後桌面上會自動多出一個「Faceswap"的圖標,雙擊程序會自動調起對應的Python及conda版本進行啓動

 

首次啓動大概須要幾分鐘,而後就能夠進入相關圖像界面了。

二、處理視頻得到人臉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.重複二、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公共安全視頻監控數字視音頻編解碼技術要求》進行安全加固,纔算有效了。

相關文章
相關標籤/搜索