當前位置:
首頁 > 新聞 > 3D實時換臉又有新進展!中科院博士生提出改進版本,每張圖推理只需0.27毫秒

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:新智元 |