前不久,社交媒體平臺上一款名為“螞蟻呀嘿”的特效火爆全網,許多網友都將自己的照片導入換臉軟件Avatarify中,照片便可以被算法驅動,生成一段表情夸張扭曲且跟著節奏晃動的換臉短視頻。
魔幻的特效讓這類的視頻迅速侵襲社交平臺,網友驚呼:簡直就像捅了螞蟻窩。
例如:馬云、馬化騰、馬斯克等大佬們,正在集體演唱神曲《螞蟻呀嘿》。
例如,李開復老師便友情上演了一首《Only You》。
這項技術可以完成在給定一張源圖片和一個目標動作視頻,將目標視頻的表情和動作遷移到源圖片上,使得源圖片中的人物做出目標視頻相同的表情動作。
Faceswap
這種換臉的算法,其實有很多。 例如 Faceswap 、DeepFaceLab、Faceswap-GAN 等等。 本文以 star 量最多的 Faceswap 為例,進行說明。
算法原理
Faceswap 是一個名為 deepfakes 的 Github 用戶開源的項目。 Deepfake 就是“Deep Machine Learning”(深度學習)和“Fake Photo”(假照片)組合而成的。 早期技術可以追溯到 2018 年,當時在構建模型的時候使用了 Encoder-Decoder 自編解碼架構。 而 Faceswap 算法,在此之上又引入 GAN(生成對抗網絡)技術,顯著提升了換臉的效果。 總體上,「Faceswap」換臉主要分為以下三個過程:
人臉檢測
特征提取
人臉轉換
人臉檢測 想要替換人臉,那首先得找到人臉的位置,這就需要用到人臉檢測算法。
Faceswap 算法采用了 SSD 這類比較成熟的檢測框架,同于提取面部圖像。 與傳統人臉檢測略有不同的,Faceswap 算法需要裁剪的人臉邊界框(bouding box, bbox)是正方形的,同時還會適當的向外擴充一些,以保證人臉都在 bbox 內。 特征提取 檢測到人臉后,需要提取人臉的特征。 首先要做的就是,人臉關鍵點檢測,也就是 landmark。
這些關鍵點,抽取了人臉的表情特征,同時大致描述了人臉的器官分布。 我們可以直接通過 dlib 和 OpenCV 等主流的工具包直接提取人臉的關鍵點。 當然,為了取得更好的定位精度,也可以使用 CNN 訓練一個人臉關鍵點檢測模型,簡單好用。 人臉轉換
人臉轉換的思想,就是采用自編碼器的原理。 簡單來講,就是將人臉圖像壓縮到短向量,再由短向量恢復到人臉圖像。這些短向量包含了人臉的主要信息,例如該向量的元素可能表示人臉膚色、眉毛位置、眼睛大小等等。
所以如果我們用某個編碼器學習所有人,那么它就能學習到人臉的共性;如果再用某個解碼器學習特定的某個人,那么就能學習到這個人的特性。 簡單而言,當我們用通用編碼器編碼人臉 A,再使用特定解碼器 B 解碼短向量,那么就能生成出擁有 A 的人臉表情,但卻是 B 人臉的圖像。 就好比,你擺出一個表情,我根據你睜眼的大小,嘴巴咧開的大小等面部特征,模仿出你的表情。 我們表情一樣,但長相不一樣。 人臉轉換,除了自編碼器的方法,還有一種 GAN 方法。 GAN 會利用提取的人臉特征點,使用生成器直接生成對應的目標人臉圖像,這跟 StyleGAN 人臉生成算法很類似,但不同的是需要生成指定表情的人臉。 在生成的圖片后,會接一個判別器,判斷圖片的逼真程度。
上述算法都是針對單張圖片而言的,對于視頻而言,就是多了一個視頻拆分成圖片,圖片拼接成視頻的過程。 DeepFakes 技術發展已久,2020 年有一篇發表的綜述論文,包含了各種 DeepFakes 算法的概述,想了解更多的讀者,可以去“啃”一下論文了。 論文地址: https://arxiv.org/pdf/2001.00179.pdf 預處理和后處理 大致思路就是這樣,里面還有很多細節,我們稱之為 Tricks ,這就需要通過閱讀源碼去學習了。 比如,在進行提取人臉特征之前,需要進行圖像的預處理。 對數據進行規范化(Normalization),使訓練的圖像的分布信息盡可能相近:
訓練的數據集是分為 A 數據集和 B 數據集的,如上圖,A 數據集為川普,B 數據集為凱奇。 我們可以將 A 數據集(川普)加上兩者數據集的平均差值(RGB三通道差值)來使兩個輸入圖像圖像的分布盡可以相近,這樣我們的損失函數曲線下降會更快些。 用代碼表示就是:
images_A+=images_B.mean(axis=(0,1,2))-images_A.mean(axis=(0,1,2))再比如,換臉之后,需要進行圖像的后處理。 為了是生成的人臉效果更加,會進行諸如邊緣融合、色彩均衡等處理方法。 想要了解算法背后的實現方法,那就得耐著性子看源碼了。
最后我們再簡單解釋一下換臉的基本原理:提取兩個例子,分為A&B,進行以下三步:1.人臉偵測和識別。2.確定變換矩陣。3.人臉替換。對于視頻中的每一幀信息重復以上操作直至結束即可!
-
軟件
+關注
關注
69文章
4926瀏覽量
87405 -
AI
+關注
關注
87文章
30747瀏覽量
268900 -
源碼
+關注
關注
8文章
639瀏覽量
29185
原文標題:帶你揭開AI換臉技術的原理
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論