此前,中科院自動化所的一篇論文《所有姿態(tài)范圍內(nèi)的面部替換:3D解決方案》引起廣泛關(guān)注。近日,中科院的一位博士生對“3D實時換臉”論文PyTorch實現(xiàn)改進(jìn)版,使得每張圖的推理時間只需0.27毫秒,同時還增加了實時培訓(xùn)等功能。
2018年4月,針對如何解決所有姿勢范圍內(nèi)的面部替換,中科院自動化所的研究人員發(fā)表了一篇論文,提出了3D實時解決方法。
近日,Github一位作者cleardusk(主頁:https://github.com/cleardusk,目前是中科院自動化所的在讀博士生)將“3D實時換臉”PyTorch實現(xiàn)改進(jìn)版,每張圖的推理時間只需0.27毫秒!
這一改進(jìn)版本幫助Pytorch改進(jìn)了論文《所有姿態(tài)范圍內(nèi)的面部替換:3D解決方案》中提到的方法。該論文的作者之一是來自中科院自動化所的Xiangyu Zhu,根據(jù)其個人主頁上的信息,他和cleardusk博士期間的導(dǎo)師均是李子青教授,二人可以說是同門師兄弟。
面部對齊使面部模型適合圖像并提取面部像素點的語義,已成為計算機(jī)視覺領(lǐng)域中的一個重要主題。此前,大多數(shù)算法都是針對中小姿態(tài)(偏角小于45度)的面部而設(shè)計的,缺乏在高達(dá)90度的大幅度姿態(tài)中對齊面部的能力,這一論文就是針對所有姿態(tài)范圍內(nèi)的面部替換所提出來的方法。
而此次這位博士生提出的改進(jìn)版本還增加了一些額外的工作,包括實時培訓(xùn)、培訓(xùn)策略等,而不僅僅是重新實現(xiàn)“3D實時換臉”。更詳細(xì)的內(nèi)容未來將會發(fā)布在相關(guān)博客中,包括一些重要的技術(shù)細(xì)節(jié)。到目前為止,這個改進(jìn)版本發(fā)布了預(yù)訓(xùn)練第一階段的pytorch模型,其中包括MobileNet-V1結(jié)構(gòu)、訓(xùn)練數(shù)據(jù)集和代碼。在GeForce GTX TITAN X上,每張圖像的推理時間約為0.27毫秒(輸入批量為128 的情況下)。
以下是關(guān)于ALFW-2000數(shù)據(jù)集的幾個訓(xùn)練結(jié)果(根據(jù)模型phase1_wpdc_vdc.pth.tar進(jìn)行推斷):
那么,改進(jìn)版能實現(xiàn)哪些應(yīng)用呢?
首先,它能夠?qū)崿F(xiàn)面部對齊。
其次是面部重塑,實現(xiàn)“變臉”!
如何入門:要求與用法
如果要著手嘗試改進(jìn)版,那么你需要:
PyTorch >= 0.4.1
Python >= 3.6 (Numpy, Scipy, Matplotlib)
Dlib (Dlib用于檢測面部和標(biāo)志。如果你可以提供面部邊框線和標(biāo)志,則無需使用Dlib??蛇x擇性地,你可以使用兩步推理策略而無需初始化這些數(shù)據(jù)。)
OpenCV(Python版,用于圖像IO操作。)
# 安裝順序:
sudo pip3 安裝torch torchvision。更多選擇點擊:https://pytorch.org
sudo pip3 安裝numpy,scipy,matplotlib
sudo pip3 安裝dlib==19.5.0 # 19.15+ 版本,這可能會導(dǎo)致與pytorch沖突,大概需要幾分鐘
sudo pip3 安裝opencv-python版
此外,強(qiáng)烈建議使用Python3.6 +而不是舊版,這樣可以實現(xiàn)更好的設(shè)計。
接下來具體用法如下:
1、復(fù)制下面這個改進(jìn)版(這可能需要一些時間,因為它有點大)
https://github.com/cleardusk/3DDFA.git或者git@github.com: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渲染)預(yù)測。
結(jié)果samples/test1_3DDFA.jpg如下所示:
附加示例:
python3 ./main.py -f samples/emma_input.jpg --box_init=two --dlib_bbox=false
當(dāng)輸入批量為128 的情況下,MobileNet-V1的推理時間約為34.7毫秒,平均每張圖像的推理時間約為0.27毫秒。
評估與訓(xùn)練資源
首先,你需要下載壓縮的測試集ALFW和ALFW-2000-3D(下載鏈接:https://pan.baidu.com/s/1DTVGCG5k0jjjhOc8GcSLOw) ,下載后解壓并將其放在根目錄中。接下來,通過提供訓(xùn)練的模型路徑來運行基準(zhǔn)代碼。我已經(jīng)在models目錄中提供了四個預(yù)先訓(xùn)練的模型。這些模型在第一階段使用不同的損失進(jìn)行訓(xùn)練。由于MobileNet-V1結(jié)構(gòu)的高效率,模型大小約為13M。
在第一階段,不同損失的有效性依次為:WPDC> VDC> PDC,使用VDC來微調(diào)WPDC的方法取得了最好的結(jié)果,預(yù)訓(xùn)練模型的性能如下所示:
訓(xùn)練腳本位于training目錄中,相關(guān)資源如下:
1、train.configs(217M),鏈接:
https://pan.baidu.com/s/1ozZVs26-xE49sF7nystrKQ#list/path=%2F,該目錄與3DMM參數(shù)和訓(xùn)練數(shù)據(jù)集的文件列表相對應(yīng);
2、train_aug_120x120.zip(2.15G),鏈接:
https://pan.baidu.com/s/19QNGst2E1pRKL7Dtx_L1MA,增強(qiáng)訓(xùn)練數(shù)據(jù)集的裁剪圖像;
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模型
準(zhǔn)備好訓(xùn)練數(shù)據(jù)集和配置文件后,進(jìn)入training目錄并運行bash腳本進(jìn)行訓(xùn)練。訓(xùn)練參數(shù)都以bash腳本呈現(xiàn)。
-
自動化
+關(guān)注
關(guān)注
29文章
5575瀏覽量
79272 -
計算機(jī)視覺
+關(guān)注
關(guān)注
8文章
1698瀏覽量
45993 -
pytorch
+關(guān)注
關(guān)注
2文章
808瀏覽量
13225
原文標(biāo)題:3D實時換臉又有新進(jìn)展!中科院博士生提出改進(jìn)版本,每張圖推理只需0.27毫秒
文章出處:【微信號:tyutcsplab,微信公眾號:智能感知與物聯(lián)網(wǎng)技術(shù)研究所】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論