search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

「東亞四大邪術」之P圖邪術是怎麼煉成的

今年八一建軍節,手機平台上一款自動p圖的「軍裝照」應用火爆朋友圈,只需上傳一張正面照,就可以自動生產不同年代的軍裝照,讓我等吃瓜群眾們過了一把「軍裝」癮。

其實,這只是「東亞四大邪術」之首——p圖術的冰山一角。那麼,如此強大的p圖技術,背後是啥原理?今天就來聊一聊圖片美化背後的技術。

(一)P圖究竟怎麼P

P圖的「p」來自於Photoshop,一款由Adobe開發的圖像處理軟體,它由一個叫做Display的程序經過不斷修改而來。

時至今日,軟體儘管更新不斷,功能更為強大,但是,圖片編輯處理背後最基本的方式方法和當年都是類似的,只是隨著計算機硬體的提高,支持的圖片處理更加複雜而已。

(約翰·沃諾克John Warnock和查克·吉斯克Chuck Geschke)

1、顏色模型:從不友好的紅綠藍到友好的色相飽和度

對於計算機而言,使用最為廣泛的就是面向硬體的顏色模型——RGB(紅綠藍)模型。

計算機顯示和識別的所有顏色都由R\G\B的數值來表示,各種強度的RGB 光混合在一起就會產生出各種各樣的色彩。當然這是一種對於人十分不友好的模型,因為人眼根本無法從杏黃色中分離出紅綠藍的比例。

(HSL與HSV模型中的顏色)

於是,對人很友好的HSL顏色模型就產生了,這是一種基於色相(H)、飽和度(S)、明度(L)三個顏色通道的變化以及它們相互之間的疊加而產生各式各樣顏色的模型。在p圖中,要調整圖片的亮度,只對其L(亮度)部分調整,就可達到圖像亮度的線性調整。

(高斯模糊)

2、濾鏡:通過色彩系統識別與運算實現

而在PS中,各種濾鏡都有著自己基於色彩系統的識別與運算方法。比如,Convolution Matrix(卷積矩陣)是得到圖像處理的一個初級效果非常有效並快捷的工具,圖像的「高斯模糊」濾鏡,則是通過在處理圖像時採用統一的卷積矩陣進行的。而由於採用統一的卷積矩陣,「高斯模糊」往往在p圖時會造成一些細節,如眉毛、頭髮等細部也模糊。「表面模糊」能更好地解決這個問題,因為它在圖像處理時,是每一個像素點都有自己的卷積矩陣,而且還有對應R、G、B的分量,計算起來更為複雜。

而這些都是圖像處理的原理和模型,那麼如何實現,就靠廣大辛勤耕耘的碼農了。

(二)P圖術如何化腐朽為神奇?

P圖確實具有化腐朽為神奇的功能,配合著各種色彩調整、濾鏡調色、高光覆蓋、局部處理、自由變換等,能夠自由地修改圖片。然而,這麼複雜繁瑣的操作,並不是吃瓜群眾能夠掌握的。那麼,如何能夠讓高大上的PS技術走入尋常百姓家呢?

在移動設備普及,特別是手機智能翻倍的今天,各種APP層出不窮,它們還往往可以通過調用系統API(應用程序介面)訪問相機,從中採集畫面進行美圖處理,而這些其實就是一個集成的、程式化的、模板式的系列圖像處理程序。

在這裡舉一個簡單的美圖功能——磨皮遮瑕祛痘。

(磨皮前後效果)

在APP的UI界面菜單中看似簡單的一鍵操作,其實在APP背後是一個複雜的程序。

對於臉部的斑、痘之類的缺陷,在拍攝出來的照片中,其實就是相對比臉部周圍皮膚的顏色和灰度的變化。而如果一張照片的局部相鄰的區域灰度相差比較大的時候,就會被認定是一個「噪點」。因此,祛痘祛斑的過程實際上就是圖片處理的「降噪」。這是最常見的圖片處理方式,其中包含了各種演算法。

比如濾波演算法,就是用周邊的點的灰度平均值來代替原值,這樣各點的灰度相差就不會太大,而噪點就不會那麼明顯,而對於人臉來說就是皮膚看上去更加的光滑,一些斑、痘都消失了。在很多APP處理時拖動進度條的操作,其實就是在為降噪過程設定閾值。

(圖像的降噪對比)

但是,如果僅僅是在後台對於噪點判定並且調用一定演算法降噪,那麼原圖中的一些細節部分,比如眉毛、頭髮等也會丟失,看上去就「很假」。為了避免這種情況,在處理之後,圖片要和原圖進行融合,這就類似於PS中的圖層疊加。在一鍵P圖時,往往要調整兩張圖片的混合權重,使得處理之後的圖片更加自然。

(三)P圖術如何實現「換臉」?

當然,對於永遠自認為先天不足的朋友來說,僅僅皮膚光滑、白皙還遠遠不夠,最好還能身材苗條、面容姣好。OK,也沒問題。人臉識別技術,解決各種疑難雜症。

在這個看臉的時代,「刷臉」已經成為了一項很普通的功能,既然計算機可以識別人臉、捕捉人臉,那麼是否可以換臉?答案當然是肯定的。在八一建軍節時的軍裝照正是這種技術的應用——人臉融合。

儘管各家的演算法與代碼都存在差別,也代表著各種APP的核心技術,但是對於「換臉」這種技術活,從原理上說無外乎就是那麼幾步——人臉檢測、關鍵點定位、區域提取、色彩調和、邊緣融合。

第一步:對照片上所有人臉進行捕捉

人臉檢測是一個很初級的活,就是對於一張照片上有多少人臉進行捕捉,如今已經克服了人臉角度、表情變化、光照強度等等問題帶來的麻煩。人臉檢測的根據是關鍵點定位,也就是要找到哪裡是鼻子,哪裡是眼睛,而這個過程往往是通過神經網路技術進行機器學習的方法實現。

(人臉識別與關鍵點示意圖)

第二步:找到人臉輪廓進行「瘦臉」

進行了關鍵點定位之後,「瘦臉」的操作也就有了基礎,找到了人臉的輪廓后,再通過一定的計算和圖形變換,就可以改變臉型。眼睛、眉毛、嘴都是同樣的道理。

(人臉識別的關鍵點採集)

第三步:區域提取抽離五官

要想進行「換臉」,還得進行到下一步 ,經過平面變換之後,臉部就相當於一個繪畫,可以進行自由變換來改變形狀尺寸。至於此後的區域提取,就是抽離出臉部具體的五官,以便後續進行圖像融合。而為了保證能夠與即將植入的畫面協調,就要在色彩上對於臉部進行色彩調和以保證顏色協調一致,不至於產生違和感。

第四步:圖形融合調整臉型

最後要做的就是將五官植入準備好的模板照片。此時,經過色彩調整后的五官已經和模板圖片一致,而具體位置則靠關鍵點來定位,保證位置準確。

五官植入模板照片時,會遇到「臉型」的問題,因為雖然人體五官的位置基本相同,但臉型卻差別很大,這時候就要進行「圖形融合」。圖形融合技術有各種演算法,比如基於泊松方程的圖片處理、利用高斯金字塔與拉普拉斯金字塔的圖片融合等等。這屬於超綱題,就不講了。總之,效果大概是醬嬸的:

(基於泊松方程的圖片處理應用實例)

(四)P圖術如何實現動態圖像的實時美化?

隨著網路直播的興起,APP美顏技術不再局限於靜態的照片美容,而是要對主播的動態圖像進行實時美化:在各種直播平台上,主播的小眼睛要變成大眼睛雙眼皮,大餅臉要變成瓜子臉,游泳圈要變成蛇精腰……

這些對於強大的「攻城獅」而言,都不是事。

(深度學習神經網路示意圖)

相比於圖片美化,美女主播的動態美顏顯然要更加複雜,但是技術流程卻是相似的。

第一步:通過深度學習識別人臉

首先要做的依舊是「人臉識別」。APP只有先識別到人臉,才能夠進行美顏,這已經是十分成熟的技術了。在動態美顏中,人臉識別的核心技術是「深度學習」,具體地就是在後台構建一個神經網路,然後利用海量的圖片數據進行學習訓練,最終生成一種能夠自適應各種圖片的演算法。利用這種演算法,就可以對任何一幀動態畫面進行人臉識別。

第二步:實時捕捉畫面快速換膚

緊接著,對於實時捕捉的畫面,程序會抓取原圖,分析與美顏標準的差異,然後進行大量學習訓練之後,得到由主播膚色到「標準美膚」的計算方法,之後將原圖按照特定演算法快速完成膚色轉換,達到「美白」效果。由於這種計算要求極高的反應速度,所以程序演算法中採用的人工神經網路結構往往並不複雜。

(某款美顏攝像頭使用前後美白與磨皮效果對比)

瓜子臉、大眼睛等也都是類似的原理。在直播時,從相機採集的每一幀畫面,都會在人臉識別之後,通過關鍵點位置採集到五官的信息,然後按照「標準臉型」的尺寸,對畫面進行處理,然後將處理之後的畫面再做畫面輸出,這樣美顏之後的效果才逼真。

如今各種手機終端和軟體在性能上都不斷提高,卷積神經網路的引入使得深度學習更加靈活、快速、風格化。但是,深度學習技術也造成了一個問題——網紅臉。雖然神經網路構建的框架和演算法各不相同,但是在進行學習訓練時為了優化演算法往往靠一個樣本數據空間進行訓練。動態美顏就是在程序開發時提供一個「標準臉型」、「標準膚色」,這樣主播們在進行美顏時,就會抓取臉部數據與當下最流行的臉型、膚色進行比較,然後經過程序計算處理,整容成最受網友喜歡的臉型和膚色。

所以,很多時候並不是在直播平台上就有這麼多俊男靚女,而是強大的美顏APP使得主播們都「整」成了一個模子的俊男靚女。

本文為作者原創,未經授權不得轉載



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦