0
不好意思了,一篇文章帶了三個熱點:朱茵、楊冪以及波多野結(jié)衣。
我就說吃瓜群眾平常要多關(guān)注科技新聞,一個在科技界已經(jīng)誕生了一年多的“老技術(shù)”Deepfake 居然因為“明星換臉”的視頻火出了圈。
起因是這樣的:一個熱心網(wǎng)友運用 Deepfake 把《射雕英雄傳》里黃蓉的臉由朱茵變成了楊冪,然后這個小視頻就在網(wǎng)上火了,一些酸溜溜的評論就出來了:
呵,我們楊女士早就拿過國際影后了好嗎。
言歸正傳,視頻里換臉后人臉的輪廓、表情都一樣,動起來的效果也很真實,幾乎看不出破綻。高階的換臉技術(shù)也引來了一些恐慌:“怎么實現(xiàn)的換臉?如果這一技術(shù)被用在其他地方,會怎么樣?我會不會被別人假冒了都不知道?”
不用恐慌,因為早就發(fā)生了。
AI 換臉術(shù)誕生后,造出了無數(shù)假視頻,并且還被用到了制作“不可描述”視頻,各種“不可描述”視頻被換上了好萊塢女星的臉,比如《神奇女俠》的女主角蓋爾·加朵( Cal Gadot )的臉就被嫁接到一個成人電影女星的身上。
所以,在視頻里化身波多野結(jié)衣也不是不可能?這種“想看誰演AV就看誰演AV”的技術(shù)好像還真有點危險,不過雷鋒網(wǎng)作為一個優(yōu)秀的科技媒體,已經(jīng)報道了太多關(guān)于 Deepfake 的新聞,讓我們回顧一下:
博客平臺“medium”有位作者就描述了把尼古拉斯凱奇的臉,放在川普的頭上的過程,最后效果如下↓↓↓
雷鋒網(wǎng)發(fā)現(xiàn),實現(xiàn)這個效果分三步:
1.收集凱奇的照片并選擇要修改的視頻區(qū)域。
由于只需換臉,所以第一步就是要識別圖片上的臉部,找到要替換的位置,確定方向和大小。如下圖,就像照片的像素一樣,現(xiàn)在的人臉被分解為很多個像素,你要找出替換的像素區(qū)域。
2.使用方向梯度直方圖(簡稱HOG)得到凱奇的臉部特征。
把梯度方向平均劃分為多個區(qū)間,在每個單元里面對所有像素的梯度方向,在各個方向區(qū)間進行直方圖統(tǒng)計,得到一個多維的特征向量,每相鄰的單元構(gòu)成一個區(qū)間,把一個區(qū)間內(nèi)的特征向量聯(lián)起來得到多維的特征向量,用區(qū)間對樣本圖像進行掃描,掃描步長為一個單元。最后將所有塊的特征串聯(lián)起來,就得到了人臉的特征。
3.使用特征數(shù)據(jù),訓練一個自動編碼器。
自動編碼器是一種神經(jīng)網(wǎng)絡(luò)學習工具(深度學習背后的計算系統(tǒng))。
通過在目標圖片上訓練模型,以保證即使輸入的是一個不同的面孔,模型也會把它轉(zhuǎn)換成原來的面孔?,F(xiàn)在可以在目標視頻中識別人臉(視頻只是一堆圖片),然后通過訓練模型將川普轉(zhuǎn)換為凱奇。
最后,合并圖像,大功告成。
原文:除了一鍵生成明星色情片,“AI 換臉術(shù)”的應(yīng)用場景還有很多
Deepfake 的整個流程包括三步,一是提取數(shù)據(jù),二是訓練,三是轉(zhuǎn)換。其中第一和第三步都需要用到數(shù)據(jù)預處理,另外第三步還用到了圖片融合技術(shù)。所以我在技術(shù)上主要分三個方面來剖析:圖像預處理、網(wǎng)絡(luò)模型、圖像融合。
1. 圖像預處理
從大圖(或視頻)中識別,并摳出人臉圖像,原版用的是 dlib 中的人臉識別庫(這個識別模塊可替換),這個庫不僅能定位人臉,而且還可以給出人臉的 36 個關(guān)鍵點坐標,根據(jù)這些坐標能計算人臉的角度,最終摳出來的人臉是擺正后的人臉。
2. 網(wǎng)絡(luò)模型
Encoder: 64x64x3->8x8x512
x = input_
x = conv(128)(x)
x = conv(256)(x)
x = conv(512)(x)
x = conv(1024)(x)
x = Dense(ENCODER_DIM)(Flatten()(x))
x = Dense(4 * 4 * 1024)(x)
x = Reshape((4, 4, 1024))(x)
x = upscale(512)(x)
Decoder:8x8x512->64x64x3
x = input_
x = upscale(256)(x)
x = upscale(128)(x)
x = upscale(64)(x)
x = Conv2D(3, kernel_size=5, padding='same', activation='sigmoid')(x)
整個網(wǎng)絡(luò)并不復雜,無非就是卷積加全連接,編碼->解碼,但是仔細研究后發(fā)現(xiàn)作者其實是匠心獨運的,為什么我不急著說,我們先看看 con 和 upscale 的內(nèi)部實現(xiàn):
def conv(filters):
def block(x):
x = Conv2D(filters, kernel_size=5, strides=2, padding='same')(x)
x = LeakyReLU(0.1)(x)
return x
return blockdef upscale(filters):
def block(x):
x = Conv2D(filters * 4, kernel_size=3, padding='same')(x)
x = LeakyReLU(0.1)(x)
x = PixelShuffler()(x)
return x
return block
conv 是中規(guī)中矩的卷積加 relu 激活函數(shù),upscale 中有個函數(shù)叫 PixelShuffler,這個函數(shù)很有意思,其功能是將 filter 的大小變?yōu)樵瓉淼?1/4,讓后讓高 h、寬 w 各變?yōu)樵瓉淼膬杀叮@也就是為什么前面的卷積層的 filter 要乘以 4 的原因。
經(jīng)過測試對比,比如拿掉 upscale 換成步長為 2 的反卷積,或者簡單 resize 為原來的兩倍,實驗的效果都大打折扣,結(jié)果是網(wǎng)絡(luò)只能自編碼,而得不到需要的人臉。雖然作者沒有說這樣設(shè)計是引用那篇論文的思想,筆者也未讀到過直接討論這個問題的論文,但是有一篇論文可以佐證:Deep Image Prior,包括 Encoder 中的全連接層都是人為打亂圖像的空間依賴性,增加學習的難度,從而使網(wǎng)絡(luò)能夠更加充分地理解圖像。所以 Encoder 中的全連接層和 PixelShuffler 都是必不可少的。經(jīng)筆者測試,在不加 Gan 的情況下,去掉這兩個要素,網(wǎng)絡(luò)必定失敗。
3. 圖像融合
圖像融合放在技術(shù)難點分析中討論。
除了被用于色情內(nèi)容,這項技術(shù)其實也許還應(yīng)該有更寬泛的應(yīng)用場景。
比如在電影《速度與激情7》中,主演保羅·沃克在 2013 年 11 月因車禍逝世,當時電影還沒有拍完,
當時外界猜測可能會有三種彌補方案,一,原劇本拍攝,找替身,使用 CGI 特效,讓沃克把戲“演”完。 二,重新修改劇本,把保羅所飾演的角色寫死,或者讓他消失。三,重新找男一號,重頭拍攝。
在當時,后兩種成本都很高,修改劇本,把保羅所飾演的角色寫死,缺少對死者和影迷的尊重。而如果重新拍攝,損失太慘重。
最終,制片公司找到了保羅的弟弟,讓他飾演保羅的角色,然后用 CGI 動作捕捉技術(shù),加上保羅之前拍過但沒使用的素材,把弟弟的臉變成保羅的臉,觀眾在看電影時基本看不出來。
如果這部電影放在今天,也許可以嘗試文章開頭所用的技術(shù)。
其實,關(guān)于類似人工智能技術(shù)在視頻制作領(lǐng)域的應(yīng)用,以制作圖形處理器而聞名的英偉達已經(jīng)在嘗試了,去年12月,它就發(fā)布了一款圖像算法,可以改變視頻中的天氣或時間。
汽車明明行駛在陽光明媚的道路上,而經(jīng)過 AI 的改變,視頻居然呈現(xiàn)出了夜晚的景象。不僅汽車的尾燈清晰明亮,就連原本沒有路燈的道路兩旁,都出現(xiàn)了真實的燈光效果。
時間再往前推,在2016年,還有一項更牛氣的技術(shù),一位來自德國紐倫堡大學的教授 Justus Thies 帶領(lǐng)團隊,做了一個能實時進行面部轉(zhuǎn)換的模型,叫Face2Face。
使用者選擇一個目標角色,比如川普,F(xiàn)ace2Face會將他和川普的面部特征重構(gòu)并追蹤,當他做出一個面部表情時,比如大張嘴,模型會重新渲染川普的臉的形狀和光影,并對背景進行修改。
他們還拿普京做目標,效果看來也不錯。
原文:除了一鍵生成明星色情片,“AI 換臉術(shù)”的應(yīng)用場景還有很多
誰被和諧都能接受,你偏偏跟我說這次是GitHub?不對不對,這也對不上號呀!為啥這么說?我們先來看看GitHub是個啥吧:
雷鋒網(wǎng)得知,GitHub是一個面向開源及私有軟件項目的托管平臺,因為只支持git作為唯一的版本庫格式進行托管,故名GitHub。而DeepFake則是GitHub的一個開源項目代碼倉庫,按照正常狀態(tài)來說,即使在尚未登錄的情況下該庫也是對外開放的。然而,就是這樣一個不黃、不賭也無毒的東東在一篇來自Hacker News的帖子里被曝出——當在隱身模式下以未登錄的方式訪問DeepFake的GitHub 倉庫時,頁面的顯示結(jié)果卻如下圖示:
沒錯,待審核。正如上面說的,DeepFake是一個開源的項目代碼倉庫,如今卻被提示處在審核狀態(tài),那不就是被“和諧”了嗎?好端端的DeepFake為啥會遭到這般“待遇”呢?對此,該貼吧中開發(fā)者們展開了激烈的討論,這塊編輯會在文章的后面詳細講到。那么,能肯定的是這個DeepFake開源項目還真不一般,那它究竟是干啥的呢?實際上,這里面的程序代碼的確能夠讓人們實現(xiàn)“換臉”的操作。
原文:DeepFake疑遭審查,網(wǎng)友:此乃它“干爹”所為
這一技術(shù)的應(yīng)用會引發(fā)何種問題?
阿里安全圖靈實驗室高級算法專家覺奧表示,除了換臉引發(fā)的道德和倫理問題,黑灰產(chǎn)利用 AI 換臉,是目前常見的一種攻擊手段,“在人臉識別系統(tǒng)中,識別換臉的技術(shù)叫活體檢測技術(shù),這是一個攻防對抗技術(shù),即用 AI 的手段來解決 AI 的攻擊?!?nbsp;
舉個例子,2017 年 11 月下旬,阿里安全圖靈實驗室就發(fā)現(xiàn),有犯罪團伙通過 3D 軟件控制人臉照片進行攻擊操作,共發(fā)起過幾百次攻擊,導致近百名受害人駕照分被盜刷。通過 3D 合成“假臉”認證賬號注冊或登陸后,黑灰產(chǎn)人員可在受害人毫不知情的情況下,用于黑卡虛假注冊、刷單、薅羊毛、詐騙等不法行為。
基于安全 AI 的方法來很好地解決這一攻擊問題。“通過深度學習技術(shù),訓練模型,來通過兩者的紋理、膚色、反光等特性的不同而識別出來。”覺奧表示,可實現(xiàn)在毫秒級時間內(nèi)揪出假人臉,目前識別準確率達到 99.9 %。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。