天天看點

3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒

2018年4月,針對如何解決所有姿勢範圍内的面部替換,中科院自動化所的研究人員發表了一篇論文,提出了3D實時解決方法。

近日,Github一位作者cleardusk(首頁:https://github.com/cleardusk,目前是中科院自動化所的在讀博士生)将“3D實時換臉”PyTorch實作改進版,每張圖的推理時間隻需0.27毫秒!

3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒

這一改進版本幫助Pytorch改進了論文《所有姿态範圍内的面部替換:3D解決方案》中提到的方法。該論文的作者之一是來自中科院自動化所的Xiangyu Zhu,根據其個人首頁上的資訊,他和cleardusk博士期間的導師均是李子青教授,二人可以說是同門師兄弟。

面部對齊使面部模型适合圖像并提取面部像素點的語義,已成為計算機視覺領域中的一個重要主題。此前,大多數算法都是針對中小姿态(偏角小于45度)的面部而設計的,缺乏在高達90度的大幅度姿态中對齊面部的能力,這一論文就是針對所有姿态範圍内的面部替換所提出來的方法。

而此次這位博士生提出的改進版本還增加了一些額外的工作,包括實時教育訓練、教育訓練政策等,而不僅僅是重新實作“3D實時換臉”。更詳細的内容未來将會釋出在相關部落格中,包括一些重要的技術細節。到目前為止,這個改進版本釋出了預訓練第一階段的pytorch模型,其中包括MobileNet-V1結構、訓練資料集和代碼。在GeForce GTX TITAN X上,每張圖像的推理時間約為0.27毫秒(輸入批量為128 的情況下)。

以下是關于ALFW-2000資料集的幾個訓練結果(根據模型phase1_wpdc_vdc.pth.tar進行推斷):

3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒
3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒

那麼,改進版能實作哪些應用呢?

首先,它能夠實作面部對齊。

3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒
其次是面部重塑,實作“變臉”!
3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒

如何入門:要求與用法

如果要着手嘗試改進版,那麼你需要:

 ●  PyTorch >= 0.4.1

 ●  Python >= 3.6 (Numpy, Scipy, Matplotlib)

 ●  Dlib (Dlib用于檢測面部和标志。如果你可以提供面部邊框線和标志,則無需使用Dlib。可選擇性地,你可以使用兩步推理政策而無需初始化這些資料。)

 ●  OpenCV(Python版,用于圖像IO操作。)

# 安裝順序:

sudo pip3 安裝torch torchvision。更多選擇點選:https://pytorch.org

sudo pip3 安裝numpy,scipy,matplotlib

sudo pip3 安裝dlib==19.5.0 # 19.15+ 版本,這可能會導緻與pytorch沖突,大概需要幾分鐘

sudo pip3 安裝opencv-python版

此外,強烈建議使用Python3.6 +而不是舊版,這樣可以實作更好的設計。

接下來具體用法如下:

1、複制下面這個改進版(這可能需要一些時間,因為它有點大)

https://github.com/cleardusk/3DDFA.git或者[email protected]:cleardusk/3DDFA.gitcd 3DDFA

2、使用任意圖像作為輸入,運作main.py:python3 main.py -f samples/test1.jpg

如果你可以在終端中看到這些輸出記錄,就可以成功運作它:

Dump tp samples/test1_0.ply

Dump tp samples/test1_0.mat

Save 68 3d landmarks to samples/test1_0.txt

Dump tp samples/test1_1.ply

Dump tp samples/test1_1.mat

Save 68 3d landmarks to samples/test1_1.txt

Save visualization result to samples/test1_3DDFA.jpg

因為test1.jpg有兩張人臉,是以有兩個mat(存儲密集面頂點,可以通過Matlab渲染)和ply檔案(可以由Meshlab或Microsoft 3D Builder渲染)預測。

結果samples/test1_3DDFA.jpg如下所示:

3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒

附加示例:

python3 ./main.py -f samples/emma_input.jpg --box_init=two --dlib_bbox=false
3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒

當輸入批量為128 的情況下,MobileNet-V1的推理時間約為34.7毫秒,平均每張圖像的推理時間約為0.27毫秒。

3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒

評估與訓練資源

首先,你需要下載下傳壓縮的測試集ALFW和ALFW-2000-3D(下載下傳連結:https://pan.baidu.com/s/1DTVGCG5k0jjjhOc8GcSLOw) ,下載下傳後解壓并将其放在根目錄中。接下來,通過提供訓練的模型路徑來運作基準代碼。我已經在models目錄中提供了四個預先訓練的模型。這些模型在第一階段使用不同的損失進行訓練。由于MobileNet-V1結構的高效率,模型大小約為13M。

在第一階段,不同損失的有效性依次為:WPDC> VDC> PDC,使用VDC來微調WPDC的方法取得了最好的結果,預訓練模型的性能如下所示:

3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒

訓練腳本位于training目錄中,相關資源如下:

1、train.configs(217M),連結:

https://pan.baidu.com/s/1ozZVs26-xE49sF7nystrKQ#list/path=%2F,該目錄與3DMM參數和訓練資料集的檔案清單相對應;

2、train_aug_120x120.zip(2.15G),連結:

https://pan.baidu.com/s/19QNGst2E1pRKL7Dtx_L1MA,增強訓練資料集的裁剪圖像;

3、test.data.zip(151M),連結:

https://pan.baidu.com/s/1DTVGCG5k0jjjhOc8GcSLOw,AFLW和ALFW-2000-3D測試集的裁剪圖像;

4、model_refine.mat(160M),連結:

https://pan.baidu.com/s/1VhWYLpnxNBrlBg5_OKTojA,BFM模型

準備好訓練資料集和配置檔案後,進入training目錄并運作bash腳本進行訓練。訓練參數都以bash腳本呈現。

原文釋出時間為:2018-11-25

本文來自雲栖社群合作夥伴新智元,了解相關資訊可以關注“AI_era”。

原文連結:

3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理隻需0.27毫秒