當前位置:
首頁 > 最新 > 深度學習AI美顏系列—-基於摳圖的人像特效演算法

深度學習AI美顏系列—-基於摳圖的人像特效演算法

美顏演算法的重點在於美顏,也就是增加顏值,顏值的廣定義,可以延伸到整個人體範圍,也就是說,你的顏值不單單和你的臉有關係,還跟你穿什麼衣服,什麼鞋子相關,基於這個定義(這個定義是本人自己的說法,沒有權威性考究),今天我們基於人體摳圖來做一些人像特效演算法。

摳圖技術很早之前就有很多論文研究,但是深度學習的出現,大大的提高了摳圖的精度,從CNN到FCN/FCN+/UNet等等,論文層出不窮,比如這篇Automatic Portrait Segmentation for Image Stylization,在FCN的基礎上,提出了FCN+,專門針對人像摳圖,效果如下:

圖a是人像原圖,圖b是分割的Mask,圖cde是基於Mask所做的一些效果濾鏡;

要了解這篇論文,首先我們需要了解FCN,用FCN做圖像分割:

該圖中上面部分是CNN做圖像分割的網路模型,可以看到,最後是全連接層來處理的,前5層是卷積層,第6層和第7層分別是一個長度為4096的一維向量,第8層是長度為1000的一維向量,分別對應1000個類別的概率;而下圖部分是FCN,它將最後的三個全連接層換成了卷積層,卷積核的大小(通道數,寬,高)分別為(4096,1,1)、(4096,1,1)、(1000,1,1),這樣以來,所有層都是卷積層,因此稱為全卷積網路;

FCN網路流程如下:

在這個網路中,經過5次卷積(和pooling)以後,圖像的解析度依次縮小了2,4,8,16,32倍,對於第5層的輸出,是縮小32倍的小圖,我們需要將其進行上採樣反卷積來得到原圖大小的解析度,也就是32倍放大,這樣得到的結果就是FCN-32s,由於放大32倍,所以很不精確,因此,我們對第4層和第3層依次進行了反卷積放大,以求得到更加精細的分割結果,這個就是FCN的圖像分割演算法流程。

與傳統CNN相比FCN的的優缺點如下:

優點:

①可以接受任意大小的輸入圖像,而不用要求所有的訓練圖像和測試圖像具有同樣的尺寸;

②更加高效,避免了由於使用像素塊而帶來的重複存儲和計算卷積的問題;

缺點:

①得到的結果還是不夠精細。進行8倍上採樣雖然比32倍的效果好了很多,但是上採樣的結果還是比較模糊和平滑,對圖像中的細節不敏感;

②沒有充分考慮像素與像素之間的關係,也就是丟失了空間信息的考慮;

在了解了FCN之後,就容易理解FCN+了,Automatic Portrait Segmentation for Image Stylization這篇論文就是針對FCN的缺點,進行了改進,在輸入的數據中添加了人臉的空間位置信息,形狀信息,以求得到精確的分割結果,如下圖所示:

對於位置和形狀數據的生成:

位置通道:標識像素與人臉的相對位置,由於每張圖片位置都不一樣,我們採用歸一化的x和y通道(像素的坐標),坐標以第一次檢測到人臉特徵點為準,並預估了匹配到的特徵與人體標準姿勢之間的一個單應變換T,我們將歸一化的x通道定義為T(ximg),其中ximg是以人臉中心位置為0點的x坐標,同理y也是如此。這樣,我們就得到了每個像素相對於人臉的位置(尺寸也有相應於人臉大小的縮放),形成了x和y通道。

形狀通道:參考人像的標準形狀(臉和部分上身),我們定義了一個形狀通道。首先用我們的數據集計算一個對齊的平均人像mask。計算方法為:對每一對人像+mask,用上一步得到的單應變換T對mask做變換,變換到人體標準姿勢,然後求均值。

W取值為0或1,當變換後在人像內的取值為1,否則為0。

然後就可以對平均mask類似地變換以與輸入人像的面部特徵點對齊。

論文對應的代碼鏈接:點擊打開鏈接

主體FCN+代碼:

到這裡FCN+做人像分割已經講完,當然本文的目的不單單是分割,還有分割之後的應用;

我們將訓練數據擴充到人體分割,那麼我們就是對人體做美顏特效處理,同時對背景做其他的特效處理,這樣整張畫面就會變得更加有趣,更加提高顏值了,這裡我們對人體前景做美顏調色處理,對背景做了以下特效:

①景深模糊效果,用來模擬雙攝聚焦效果;

②馬賽克效果

③縮放模糊效果

④運動模糊效果

⑤油畫效果

⑥線條漫畫效果

⑦Glow夢幻效果

⑧鉛筆畫場景效果

⑨擴散效果

效果舉例如下:

原圖

人體分割MASK

景深模糊效果

馬賽克效果

擴散效果

縮放模糊效果

運動模糊效果

油畫效果

線條漫畫效果

GLOW夢幻效果

鉛筆畫效果

媒體合作請聯繫:

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 數盟 的精彩文章:

TAG:數盟 |