天天看點

美顔特效SDK的工作原理,原相機如何實作視訊實時美顔

我們常吐槽手機(尤其是蘋果)原相機醜,其實并不是原相機醜,是“耿直”,不對拍攝出的圖檔做出任何修飾,鏡頭怎麼歪就怎麼扭曲圖像、不能自主實作左右翻轉、沒有磨皮效果且鏡頭高清,不給美白并對細節真實還原,照出你的全部缺點。如何解決該問題?給耿直的手機原相機加個美顔特效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;

接下來提高亮度,消除噪聲

pow函數中第二個參數可調(1/3~1),值越小,alpha越大,磨皮效果越明顯,修改該值可作為美顔程度。

并對混合後結果增加亮度,調整飽和度等參數得到最終圖。

2、 美白

在美顔特效SDK對人臉進行美白時,要用膚色檢測算法保護頭發、眉毛等區域,僅提亮人臉皮膚部分的亮度,保護其他地方,這裡會涉及到人臉分割、關鍵點識别和人臉檢測等知識點。

3、 将模糊後的圖像和原圖進行圖像融合并進行銳化處理。

手機原相機實作視訊實時美顔的意義何在?

首先舉幾個反應快的案例:美圖手機、VIVO和OPPO手機

然後舉一個反應慢的案例:蘋果手機

後者在手機系統上完爆前者五條街,但後者的相機在女性使用者的喜愛程度上,被前者甩了五條街。前者如果沒有美顔,根本不會成長為現在這個體量,後者如果有美顔,也許就不會失去一部分愛好原相機美顔的客戶。

而原相機,說白了就是一個軟體,給它接入個美顔特效SDK能有多難,連“直男手機”華為都加上了美顔。

扯遠了,以上就是本篇文章全部内容,轉載請注明原文出處及作者。