您當前位置 : 首頁 電商百科 深度學習---抖音漫畫算法解密
? ? ? ? 要說最近抖音最火的效果是什么,無疑就是上周推出的漫畫效果,這里本人來對該效果進行一些技術分析。
? ? ? ? 首先,我們先看一下效果展示:
? ? ? ? 這個效果可謂非常驚艷,真切的將真人照片轉換為了漫畫風格,而且支持多人處理,也是因此,一時間刷遍了抖音和朋友圈,周末兩天的使用量達到了20億次以上。
? ? ? ? 對于抖音的漫畫效果,包括兩個版本,一個是實時處理版本,也就是抖音上線的第一個版本,如圖Fig.1所示,可以實時展示漫畫效果;另一個是后來的圖片版本,如圖Fig.2所示,這個版本更加精細;該功能目前同步上線字節跳動旗下的一些app,比如:抖音/剪映/FaceU等。
? ? ? ? 下面,我們針對這個動漫效果來做一些技術分析,幫助大家了解一下背后的技術秘密。
? ? ? ? 本人以實時版本為例,經過分析和測試,對該效果做了如下幾點總結:
實時版本中,漫畫并非全圖處理,而是基于人臉矩形框區域進行動漫處理;人臉之外的背景區域非漫畫效果,而是做了一些類似漫畫的濾鏡處理;整體漫畫分辨率不高;不同的人臉,漫畫人臉風格始終保持一致;
? ? ? ? 本人多年來一直從事人像特效相關工作,這里,我們先了解一下漫畫風格的特點,這里總結如下:
? ? ? ? 1,線條化,漫畫風格的邊緣比較突出,主要表現為線條感強烈;
? ? ? ? 2,顏色單一,一種漫畫風格往往使用的顏色數比較少,不會像真實照片中那樣包含那么多顏色數,往往只有幾種顏色搭配,比如新海誠效果,如圖Fig.3所示;
? ? ? ? 3,人臉五官簡單、夸張,這一點可以參考大多數漫畫的五官分類,抖音漫畫的五官繪制模型如下圖Fig.4所示;
? ? ? ? 與正常的真人照片相比,鼻子,嘴巴和眉毛基本都以線條來表達,簡單清晰,而眼睛則表現為夸張的大眼睛,也比較符合漫畫的審美;
? ? ? ? 有了上述的知識前綴,我們就可以對漫畫風格有所理解了。本人先做了一個簡單的測試,用美女景甜的圖做了漫畫效果如下:
? ? ? ? 通過這個效果我們可以發現對于景甜的人臉五官,漫畫效果非常好,但是右圖卻隱約看到了一個人臉框區域,在這個區域之外的漫畫風格好像與人臉框內不太一樣,仔細觀察,確實如此,這也和前面本人的總結相一致了,也就是說,漫畫風格只處理了人臉框區域。
? ? ? ? 為什么這么做?本人認為有以下幾點:①人像照片包括半身照和全身照以及多人情況,分類復雜,場景也復雜,直接全圖處理技術上要更難一點;②實時版本追求用戶的實時處理,對時間消耗要求較高,如果全圖處理,很有可能無法達到實時要求;
? ? ? ? 對于人臉框之外的區域,本人也做了分析,發現,這些區域是做了一些顏色濾鏡和 包邊特效之類,整體的色調與動漫色調保持一致;
? ? ? ? 綜合以上幾點,本人對實時版本的動漫效果算法流程做了如下設計:
? ? ? ? ①假設用戶圖為S,效果圖為D,將S進行人臉檢測,得到人臉區域圖像A,A一般為正方形;
? ? ? ? 人臉檢測技術目前已經較為成熟,開源算法也較多,大家可以自行了解;
? ? ? ? ②使用深度學習技術來生成漫畫效果,這一步個人猜測,抖音大概率應該是使用的GAN網絡,通過圖像直接生成效果,即輸入圖像A,輸出人臉漫畫效果圖B;
? ? ? ? 目前可以實現漫畫效果的可行性網絡,本人推薦:Pix2Pix,CycleGan,CartoonGan等。
? ? ? ? ③構建一張與A大小相同的正方形蒙版圖C,這個蒙版為黑白色,白色表示前景,黑色表示背景,如下圖Fig.6中的蒙版所示;
? ? ? ? ④對圖S進行濾鏡調色和保邊算法處理,得到圖M,使得M的色調與B一致;
? ? ? ? 這里的濾鏡調色,可以直接使用LUT,速度最快。
? ? ? ? ⑤將M和B按照蒙版C進行Alpha混合,C圖像素灰度值表示為alpha值,得到最終效果圖D,公式如下:
D = B * alpha + (1 - alpha) * M
? ? ? ? ⑥將D填充到S即可。
? ? ? ? 整個流程如圖Fig.6所示。
? ? ? ? 上述步驟就是本人對抖音實時版漫畫效果算法的推演解析,當然,只是個人意見。上述的難點在于第2步驟中,如何生成漫畫效果,這個步驟中,如果選用Pix2Pix網絡,那么需要成對的樣本,也就是一張原圖對應一張漫畫效果圖,這樣的樣本非常稀缺,也非常難以制作,因此,本人覺得抖音應該沒有使用這個方法。而CycleGan不需要成對的樣本來訓練,因此個人覺得,CycleGan是個不錯的選擇!
? ? ? ? 本文主要針對當前最新技術進行了一些細節分析,由于沒有實現,因此,代碼無從參考,不過,無論是Pix2Pix還是CycleGan,代碼在github上都有開源,這個不是什么難事,總之,這個效果,關鍵問題就是樣本和優化。
? ? ? ? 這里我們給出一些相關代碼鏈接:
? ? ? ? Pix2Pix:
? ? ? https://github.com/williamFalcon/pix2pix-keras
? ? ? ? CycleGan:
? ? ? https://github.com/simontomaskarlsson/CycleGAN-Keras
? ? ? https://github.com/d1ggs/cycleGAN-keras
? ? ? ? CartoonGan:
? ? ? https://github.com/penny4860/Keras-CartoonGan
? ? ? ? 最后,本人使用Pix2Pix做了一些其他風格的漫畫特效,如下圖所示,左邊為原圖,其余為效果圖。
? ? ? ? 本人公眾號“SF圖像算法”,QQ交流群:600926436
?
?
上一篇: 上一篇:抖音情感類賬號怎么做,抖音情感類分為幾種?
下一篇: 下一篇:抖音賬號運營策劃