都是技術(shù)流,為啥老公拍的那么丑,它拍的就自然又好看?
審核專家:徐潤生
加利福尼亞大學(xué)人工智能博士
隨著各類直播、短視頻和社交媒體的興起,我們仿佛生在一個“人均美女帥哥”的社會,事實(shí)真是如此嗎?
拜各類技術(shù)和軟件的發(fā)展所賜,當(dāng)我們出現(xiàn)在鏡頭面前時(shí),計(jì)算機(jī)算法就已經(jīng)自動將采集到的人像進(jìn)行了美顏處理,因此,鏡頭里的人總是美美的。
那么,這些軟件背后需要用到什么程序算法呢?計(jì)算機(jī)是如何識別人的面部和身體,并美化這些部位呢?

今天,我們就一起來了解美顏軟件是如何工作的。
美顏和繪畫有很多相似性,繪畫首先是畫線稿,確定人體基礎(chǔ)結(jié)構(gòu);然后在線稿之上進(jìn)行上色,逐步豐富細(xì)節(jié),最后完成一幅作品。
我們拍攝的原始人體圖像也是“畫線稿”,手機(jī)收集原始數(shù)據(jù),將圖像傳送到后臺進(jìn)行定位和識別,這一步的目的是確定人體的特征位置,接下來開始“上色”,用算法和技術(shù),對五官或身體部位進(jìn)行分析、處理、美化,最后得到美顏后的圖像。
只不過完成一幅繪畫作品需要較長的時(shí)間,而美顏卻是瞬時(shí)的、即刻的,這背后需要有強(qiáng)大的計(jì)算機(jī)技術(shù)作為支撐。
接下來我們以人臉美顏(如美白、磨皮、美膚)為例,具體聊聊美顏主要用到的專業(yè)技術(shù)。

人臉關(guān)鍵點(diǎn)定位技術(shù)
我們可以用美顏相機(jī)給眼睛畫眼影,給嘴唇涂口紅,這些功能怎么精準(zhǔn)地識別圖像中人臉的特定部位呢?

這里用到的是人臉關(guān)鍵點(diǎn)檢測技術(shù),即確定五官的精準(zhǔn)位置,可以通過尋找臉部特征點(diǎn),如眼睛、眉毛、鼻、嘴、臉部外輪廓來實(shí)現(xiàn)。
目前主流的人臉關(guān)鍵點(diǎn)檢測方法有兩種:基于特征(feature-based)的人臉檢測和基于圖像(image-based)的人臉檢測。使用最多的是基于特征的人臉檢測方法,且人的眼睛會被首先識別。一般來說,定位的關(guān)鍵點(diǎn)數(shù)量越多,最終的美顏效果越好。目前流行的定位關(guān)鍵點(diǎn)數(shù)有5、21、29、68、96等,以68點(diǎn)最為經(jīng)典,如下圖所示,左臉、右臉的最外點(diǎn)分別是0、16,左眼外角、內(nèi)角分別是36、39,右眼外角、內(nèi)角分別是45、42,下巴為8,鼻根、鼻尖分別為27、30,嘴中心為66。

原始人臉數(shù)據(jù)被上傳至后臺,人臉檢測技術(shù)對原始的圖像幀進(jìn)行識別。人眼、眉毛、T型區(qū)(眼睛+鼻子構(gòu)成的區(qū)域)、嘴、下巴會被依次識別。識別的數(shù)據(jù)被放入人臉信息結(jié)構(gòu)體中,之后再被應(yīng)用到具體的美顏算法中,對特定部位進(jìn)行美化。

磨皮技術(shù)
女生在化妝前會先涂一層粉底液,主要作用是美白和減少皮膚瑕疵,相當(dāng)于美顏功能中的“磨皮”和“美白”。?

來源丨網(wǎng)絡(luò)
好的磨皮效果應(yīng)該是怎樣的?首先最重要的是讓皮膚變光滑,同時(shí)還要盡量保留更多細(xì)節(jié)(如皮膚肌理),讓五官輪廓清晰可見,這樣的圖片看起來更真實(shí)、更有質(zhì)感。

磨皮用到的是圖像平滑技術(shù),因?yàn)樵谂臄z圖像時(shí)會受到噪聲干擾,使圖像質(zhì)量降低,因此要對噪聲進(jìn)行過濾。過濾后的圖像將變得平滑,多余無用的信息會被剔除掉。
過濾圖像噪聲的工具是濾波器,一般常用的濾波器有中值濾波、邊緣保持濾波、雙邊濾波(又稱高斯雙邊濾波)等方法。中值濾波和邊緣保持濾波的缺點(diǎn)是不能很好地保留圖像的邊緣信息;而雙邊濾波可以保留大量人臉細(xì)節(jié)且確保邊界處不會被模糊掉,因此使用最為普遍。

來源丨見水印
人像經(jīng)過雙邊濾波處理后,可以明顯看到皮膚變光滑了,且輪廓邊緣清晰,我們可以調(diào)節(jié)參數(shù),得到不同的磨皮效果。
讓皮膚更白皙
我們?nèi)搜鄣南袼睾芨?,能看見色彩斑斕的世界,那沒有“眼睛”的計(jì)算機(jī)怎么識別顏色呢?
圖像中的顏色一般用RGB模式表示,R、G、B分別代表紅、綠、藍(lán),數(shù)字從0~255變化。當(dāng)R、G、B數(shù)值越趨于0,圖像越黑;而數(shù)值越接近255,顏色就越白。此外,還有HSV色彩空間(H、S、V分別代表色彩、飽和度、明度),這兩種顏色空間可以通過算法實(shí)現(xiàn)轉(zhuǎn)換。

很多美白技術(shù)會將RGB轉(zhuǎn)化為HSV后再調(diào)整。先用算法對皮膚像素的顏色數(shù)據(jù)進(jìn)行大量統(tǒng)計(jì),得到膚色像素的取值范圍,然后再調(diào)節(jié)像素的各項(xiàng)數(shù)值大小。當(dāng)H、S、V的數(shù)值分別趨于0°、0和100%時(shí),皮膚最白最亮。

來源丨百度百科

來源丨pexels
讓臉變得更小
不愿減肥又想擁有小臉怎么辦呢?打開美顏軟件的瘦臉功能啊!
其實(shí),瘦臉、大眼、瘦鼻等調(diào)整都用到了液化變形技術(shù)。液化算法以一個點(diǎn)為中心,在其影響范圍內(nèi),我們推動中心點(diǎn)使圖像形狀發(fā)生改變。在圓形內(nèi),離中心O點(diǎn)越近,變形越明顯。
下圖為液化算法的原理示意,O為圓形的中心點(diǎn),R為液化半徑,當(dāng)我們將O向著OA方向拖動時(shí),則圖像中的像素C會變換到D的位置。經(jīng)過一系列公式,我們可以算出圓形區(qū)域內(nèi)每個變換后的點(diǎn)的像素值,這樣就能得到變換后的圖像。

我們將面部區(qū)域當(dāng)作一個圓形,選擇某點(diǎn)作為圓心,設(shè)定液化半徑,半徑內(nèi)的點(diǎn)就可以向著一定的方向移動發(fā)生變形,最后再渲染得到瘦臉效果。

相機(jī)替人“化妝”
美顏相機(jī)里還能DIY妝容,包括口紅、腮紅、眉毛、眼妝等,深受不會化妝的“手殘星人”喜愛。

相機(jī)里植入了預(yù)先設(shè)計(jì)的不同風(fēng)格的妝容模版,當(dāng)人臉出現(xiàn)后,首先會基于人臉關(guān)鍵點(diǎn)檢測識別出特定部位,然后妝容模版會投射到人臉特定區(qū)域,最后妝容和原圖像進(jìn)行高效合成。
以眉毛為例,相機(jī)提供了多套眉毛的圖片模版,先檢測出原圖像眉毛的關(guān)鍵點(diǎn)位置,眉毛的第一個關(guān)鍵點(diǎn)會作為貼合的起始位置;算法還會對眉毛模版的大小和范圍作出調(diào)整,使模版和原眉毛更好地貼合;最后在原圖上進(jìn)行融合,得到自然、逼真的眉毛效果。

來源丨某美顏相機(jī)
美顏是個技術(shù)活。今天我們只是分享了美顏基礎(chǔ)功能的相關(guān)算法和技術(shù),美顏還有很多高級功能,比如特效裝飾、摳圖等,這些功能用到的圖像算法會更復(fù)雜,大家可以多探索一下哦。
