3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理只需0.27毫秒
新智元報道
來源:GitHub 作者:cleardusk
編輯:木青
【新智元導讀】此前,中科大自動化所的一篇論文《所有姿態範圍內的面部替換:3D解決方案》引起廣泛關注。近日,中科院的一位博士生對「3D實時換臉」論文PyTorch實現改進版,使得每張圖的推理時間只需0.27毫秒,同時還增加了實時培訓等功能。
2018年4月,針對如何解決所有姿勢範圍內的面部替換,中科院自動化所的研究人員發表了一篇論文,提出了3D實時解決方法。
近日,Github一位作者cleardusk(主頁:https://github.com/cleardusk,目前是中科院自動化所的在讀博士生)將「3D實時換臉」PyTorch實現改進版,每張圖的推理時間只需0.27毫秒!
這一改進版本幫助Pytorch改進了論文《所有姿態範圍內的面部替換:3D解決方案》中提到的方法。該論文的作者之一是來自中科院自動化所的Xiangyu Zhu,根據其個人主頁上的信息,他和cleardusk博士期間的導師均是李子青教授,二人可以說是同門師兄弟。
面部對齊使面部模型適合圖像並提取面部像素點的語義,已成為計算機視覺領域中的一個重要主題。此前,大多數演算法都是針對中小姿態(偏角小於45度)的面部而設計的,缺乏在高達90度的大幅度姿態中對齊面部的能力,這一論文就是針對所有姿態範圍內的面部替換所提出來的方法。
而此次這位博士生提出的改進版本還增加了一些額外的工作,包括實時培訓、培訓策略等,而不僅僅是重新實現「3D實時換臉」。更詳細的內容未來將會發布在相關博客中,包括一些重要的技術細節。到目前為止,這個改進版本發布了預訓練第一階段的pytorch模型,其中包括MobileNet-V1結構、訓練數據集和代碼。在GeForce GTX TITAN X上,每張圖像的推理時間約為0.27毫秒(輸入批量為128 的情況下)。
那麼,改進版能實現哪些應用呢?
首先,它能夠實現面部對齊。
其次是面部重塑,實現「變臉」!
如何入門:要求與用法
如果要著手嘗試改進版,那麼你需要:
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、複製下面這個改進版(這可能需要一些時間,因為它有點大)
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如下所示:
附加示例:
python3 ./main.py -f samples/emma_input.jpg --box_init=two --dlib_bbox=false
當輸入批量為128 的情況下,MobileNet-V1的推理時間約為34.7毫秒,平均每張圖像的推理時間約為0.27毫秒。
評估與訓練資源
在第一階段,不同損失的有效性依次為:WPDC> VDC> PDC,使用VDC來微調WPDC的方法取得了最好的結果,預訓練模型的性能如下所示:
訓練腳本位於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,增強訓練數據集的裁剪圖像;
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腳本呈現。
參考鏈接:
https://github.com/cleardusk/3DDFA
https://arxiv.org/abs/1804.01005
【加入社群】
新智元 AI 技術 + 產業社群招募中,歡迎對 AI 技術 + 產業落地感興趣的同學,加小助手微信號:aiera2015_2入群;通過審核後我們將邀請進群,加入社群後務必修改群備註(姓名 - 公司 - 職位;專業群審核較嚴,敬請諒解)。
※LinkedIn職場研究:美、中、印列前三,掌握AI技能的人數兩年猛增兩倍
※解讀谷歌最強NLP模型BERT:模型、數據和訓練
TAG:新智元 |