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