0前言當(dāng)前基于深度學(xué)習(xí)的人工智能的換臉技術(shù)比較多,但實(shí)際上,對(duì)于一些相同角度、相似膚色換臉場(chǎng)景其實(shí)無須通過深度學(xué)習(xí)模型即可達(dá)到比較好的效果 。本文基于OpenCV針對(duì)相同臉部角度、相似膚色場(chǎng)景實(shí)現(xiàn)完美換臉 。最終效果如下所示(下圖為動(dòng)態(tài)圖,讀者可以仔細(xì)
0 前言當(dāng)前基于深度學(xué)習(xí)的人工智能的換臉技術(shù)比較多,但實(shí)際上,對(duì)于一些相同角度、相似膚色換臉場(chǎng)景其實(shí)無須通過深度學(xué)習(xí)模型即可達(dá)到比較好的效果 。本文基于OpenCV針對(duì)相同臉部角度、相似膚色場(chǎng)景實(shí)現(xiàn)完美換臉 。最終效果如下所示(下圖為動(dòng)態(tài)圖,讀者可以仔細(xì)觀察臉部變化過程):

1 原理原理如下:
2 查找臉部關(guān)鍵點(diǎn)臉部關(guān)鍵點(diǎn)可以通過
- 查找臉部關(guān)鍵點(diǎn)
- 獲取關(guān)鍵點(diǎn)凸包,并對(duì)凸包點(diǎn)計(jì)算
delanauy三角形 。- 每個(gè)對(duì)應(yīng)的
delanauy三角形做仿射變換- 人臉融合
dlib庫(kù)獲取:pip install dlib
如果安裝失敗,可以嘗試一下將Python版本降到3.6 。dlib可以檢測(cè)人臉68個(gè)關(guān)鍵點(diǎn),如下所示:
68個(gè)關(guān)鍵點(diǎn)
3 delanauy三角形得到
68個(gè)關(guān)鍵點(diǎn)后無法直接貼臉,因?yàn)槊總€(gè)人的臉型大小不一致 。為了適配不同大小的臉型,我們將人臉區(qū)域劃分為多個(gè)delanauy三角形,每個(gè)三角形區(qū)域單獨(dú)做仿射變換 。首先獲取人臉關(guān)鍵點(diǎn)凸包,即得到處于外圍的關(guān)鍵點(diǎn),直接調(diào)用
opencv函數(shù)cv2.convexHull即可 。得到如下所示:
對(duì)凸包點(diǎn)計(jì)算
delanauy三角形,每個(gè)三角形區(qū)域單獨(dú)仿射變換 。如下所示:
仿射變換實(shí)現(xiàn)如下:
def apply_affine_transform(src, src_tri, dst_tri, size):
\'\'\' 應(yīng)用仿射變換
推薦閱讀
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 菜豌豆炒肉怎么做好吃?
- 波波丁包包子的做法?
- 烤饅頭的做法
- 互聯(lián)網(wǎng)創(chuàng)業(yè)有哪些項(xiàng)目做 互聯(lián)網(wǎng)創(chuàng)業(yè)有哪些項(xiàng)目構(gòu)思
- 韓國(guó)辣白菜的做法步驟是什么 怎么做味道最好
- 怎樣做豬肉面?
- 五柳菜是怎樣做的?
- 香菇雞湯和海參能不能同時(shí)做湯
- 宮爆雞爆丁的做法王剛?
- 論壇推廣的技巧有哪些? 從哪些方面才能做好論壇推廣的工作
