美顏特效SDK的工作原理,原相機如何實現影片實時美顏

秋2305998853發表於2019-10-31
我們常吐槽手機(尤其是蘋果)原相機醜,其實並不是原相機醜,是“耿直”,不對拍攝出的圖片做出任何修飾,鏡頭怎麼歪就怎麼扭曲影像、不能自主實現左右翻轉、沒有磨皮效果且鏡頭高畫質,不給美白並對細節真實還原,照出你的全部缺點。如何解決該問題?給耿直的手機原相機加個美顏特效SDK,一切問題都能迎刃而解。
那麼,美顏特效SDK的工作原理是怎麼樣的?
接觸過UI或者有PS興趣的朋友可能會理解的更快一些,這裡簡單講一下在大名鼎鼎的PS中,透過後期對圖片影片進行美顏的技術是如何實現的(是的,ps+pr能實現影片美顏嗎,想不到吧)
以下是工作的具體步驟:
1、 磨皮
使用雙邊濾波/導向濾波/表面模糊等濾波演算法模糊影像,這裡要注意保邊處理,避免人臉和背景同時被模糊造成邊界不清。
以雙邊濾波為例。取出綠色通道,對綠色通道進行模糊,得到模糊後的值sampleColor。再用原圖綠色通道值減去sampleColor,加上0.5(即128),這兩個步驟即PS中的高反差保留。
vec3 centralColor = texture2D(inputImageTexture, textureCoordinate).rgb; 
float highpass = centralColor.g - sampleColor + 0.5; 
再對上述結果值進行3-5次強光處理,此步驟可以使得噪聲更加突出
if(color <= 0.5){ 
color = color color 2.0; 
}else{ 
color = 1.0 - ((1.0 - color)(1.0 - color) 2.0); 
美顏特效SDK自動計算原圖的灰度值,公式為0.299R + 0.587G + 0.114*B得到灰度圖片之後,將灰度值作為閾值,用來排除非皮膚部分,根據灰度值計算,將原圖與結果圖合成。
float alpha = pow(lumance, 0.333333); 
vec3 smoothColor = centralColor + (centralColor-vec3(highpass))alpha0.1;</span> 
接下來提高亮度,消除噪聲
pow函式中第二個引數可調(1/3~1),值越小,alpha越大,磨皮效果越明顯,修改該值可作為美顏程度。
並對混合後結果增加亮度,調整飽和度等引數得到最終圖。
2、 美白
在美顏特效SDK對人臉進行美白時,要用膚色檢測演算法保護頭髮、眉毛等區域,僅提亮人臉皮膚部分的亮度,保護其他地方,這裡會涉及到人臉分割、關鍵點識別和人臉檢測等知識點。
3、 將模糊後的影像和原圖進行影像融合並進行銳化處理。
手機原相機實現影片實時美顏的意義何在?
首先舉幾個反應快的案例:美圖手機、VIVO和OPPO手機
然後舉一個反應慢的案例:蘋果手機
後者在手機系統上完爆前者五條街,但後者的相機在女性使用者的喜愛程度上,被前者甩了五條街。前者如果沒有美顏,根本不會成長為現在這個體量,後者如果有美顏,也許就不會失去一部分愛好原相機美顏的客戶。
而原相機,說白了就是一個軟體,給它接入個美顏特效SDK能有多難,連“直男手機”華為都加上了美顏。
扯遠了,以上就是本篇文章全部內容,轉載請註明原文出處及作者。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69951589/viewspace-2662041/,如需轉載,請註明出處,否則將追究法律責任。

相關文章