美顏的算法及實現基礎

在圖像處理領域,大家接觸最多的算法加成應該就是手機裏的美顏自拍了,除了有專用的美顏APP之外,很多手機的相機原生系統也都支持美顏功能。

美顏按功能需求來看可分爲基礎、高級和附加功能三大塊。基礎概念就是磨皮、處理膚色,目前即便是原生系統自帶的相機美顏也能做到基礎美顏功能的實時計算,所以啓動相機取景預覽時就能看到,目前直播用的美顏攝像頭已經可以實現高級功能的即時演算,比如祛痘、瘦臉、增大眼睛、五官立體等……此前翻車的某網紅女主播就是在扭頭瞬間人臉未被識別,現了不到1秒的原形但被喫瓜網友抓包,所以人臉識別是實現美顏,特別是實時美顏的第一前提。而年齡計算、AR裝飾、美妝等就屬於美顏之外(或之上)的另一類圖像算法了。

美顏功能的基本構架就是這樣,接下來就來一點一點地聊聊美顏算法的細節,首當其衝的自然是最重要的基本功能:磨皮。從算法的角度來看,磨皮是用濾波器將痘印、胎記、傷痕等高頻信息給濾除,再用光滑皮膚燈領域低頻信息進行填充。在種類繁多的高頻濾波器裏,適用於人像修復的主要都是帶通濾波器,比如雙邊濾波、導向濾波、灰度圖像各向異性擴散等,因爲它們的特色是可以保留邊緣信息,在磨皮的同時不會像高斯濾波那樣讓整張照片都模糊掉。

雙邊濾波,簡單來說它是高斯濾波的衍生版,區別在於雙邊濾波在把像素空域距離納入計算的同時,還考慮了像素值域之間差值的高斯係數,兩個像素的值域差距越大,計算過程中的權重就越小,反之亦然,所以這個值域係數的作用就很關鍵。

對於完全從背景中抽離的人像來說,雙邊濾波磨皮很實用,但不足也比較明顯,第一是一些面積較大的雀斑或胎記因爲值域相差較大,就無法被磨皮操作簡單平滑掉,很多時候就需要手動干預,在用戶選取區域後以該區域中心爲起點,選取一個包含但大於整個選取面積的矩形窗口並計算均值,再將整個均值融合到選取範圍內,實現膚色自然過渡。

當然,也有自動檢測的方法,但需要結合很精確的人臉識別,在皮膚區域採用模板匹配的方式,按水平/垂直方向進行掃描,因爲雀斑、胎記等區域亮度值往往小於正常皮膚,從而實現自動判斷。

雙邊濾波的第二個不足恰恰就是缺乏人臉區域計算機制,手機自拍不可能總是在純色或大縱深的環境裏,在能清晰辨別背景的情況下,雙邊濾波會對整張圖像進行磨皮,這時候雖然皮膚磨得很光滑,邊緣也比較清晰,但我們想要清晰呈現的背景細節也都跟着被磨掉了,照片嚴重失真(如上圖)。所以磨皮的進階就必須要先把人臉部分識別並摳出來,單獨進行,關於人臉皮膚摳圖算法的研究有很多,可以說是手機圖像處理算法裏最經典的主題了,所謂聚沙成塔,現在大多品牌自拍美顏的效果都相當不錯也有它的一分功勞。

人臉摳圖算法主要是利於膚色和紋理來進行識別一個相對準確的人臉範疇,因爲皮膚區域的色彩即便是光照變化較大時,也會集中在一個相對較窄的區域內,抽取難度相對不大。當然也有很多公司採用機器學習模型參考,提高效率。

當得到人臉蒙版之後,將其與濾波結果進行混合,就能獲得想要的磨皮效果,背景等其餘區域還是使用原圖,細節得以保留。

所以目前來說,人臉識別並摳圖美顏功能的根基,磨皮之外的膚色處理也是類似的道理,比如很多妹子都喜歡用的美白效果,首先是用人臉皮膚摳圖算法計算出需要處理的圖像區域,然後將圖像專爲YUV或HSV等亮度色彩分離的顏色空間,然後提高亮度,減小色差,從而實現美白效果。

接下來聊聊瘦臉等高級算法,它的基礎就是人臉檢測和對齊。

人臉檢測很好理解,對齊是啥意思?簡單來說就是匹配具體五官、輪廓的位置,比較著名的算法有ASM、AAM等,當確定了五官位置和輪廓之後纔有後面的瘦臉、眼睛放大、提高鼻樑等美顏功能。以瘦臉爲例,在確定臉部輪廓後,計算美顏後圖像中的每個像素在原圖像中相應的位置,利用插值的方法計算實際像素的值,再回填到最終圖像上來。眼睛增大是將人眼輪廓向外部擴張,並進行插值計算,縮小鼻子是將鼻子輪廓向中心移動,然後插值……

五官立體等進階美顏操作是將眼部或鼻樑附近區域的像素變暗或調亮,形成陰影或高光區域,看上去更立體,事實上亮眼、美白牙齒等功能也是通過先定位需要改變的目標位置,再改變亮度、對比度和色差,從而實現最終效果。

美妝效果在當下美顏APP裏也相當流行,主要是不塗口紅、不抹眼影也能拍出漂亮的脣妝眼妝,確實方便。而美妝的基礎也是人臉檢測和對齊,只要找準了眉毛、眼線、臉頰、嘴脣等相應位置,將設計好的美妝效果對應像素映射就可搞定。不過,如何選取這些非規則的區域中的像素確實是個手藝活兒,第一種方案是根據五官的位置,計算這些像素的外接多邊形,再利用掃描線方法,掃描每行位於多邊形內部的像素,獲得這些像素;另一種方案是預先設計像素區域的掩碼,在具體的美妝計算中進行相應人臉輪廓關鍵點的匹配,消除由人臉大小、朝向不同造成的偏差。

因爲是人臉實時跟蹤和配準,因此算法要求其實很高。圖玩智能科技爲企業提供更穩定更優質的美顏產品及服務,歡迎隨時諮詢www.toivan.com.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章