隨著數位文化產業的蓬勃發展,人工智慧技術開始廣泛應用於影像編輯和美化領域。其中,人像美膚無疑是應用最廣、需求最大的技術之一。傳統美顏演算法利用基於濾波的影像編輯技術,實現了自動化的磨皮去瑕疵效果,在社交、直播等場景中取得了廣泛的應用。
然而,在門檻較高的專業攝影行業,由於對影像解析度以及品質標準的較高要求,人工修圖師還是作為人像美膚修圖的主要生產力,完成包括勻膚、去瑕疵、美白等一系列工作。通常,專業修圖師對一張高清人像進行美膚操作的平均處理時間為 1-2 分鐘,在精度要求更高的廣告、影視等領域,該處理時間則更長。
相較於互娛場景的磨皮美顏,廣告級、影樓級的精細化美膚為演算法帶來了更高的要求與挑戰。一方面,瑕疵種類眾多,包含痘痘、痘印、雀斑、膚色不均等,演算法需要對不同瑕疵進行自適應地處理;另一方面,在去除瑕疵的過程中,需要盡可能的保留皮膚的紋理、質感,實現高精度的皮膚修飾;最後也是十分重要的一點,隨著攝影設備的不斷迭代,專業攝影領域目前常用的圖像分辨率已經達到了4K 甚至8K,這對算法的處理效率提出了極其嚴苛的要求。
因此,我們以實現專業級的智慧美膚為出發點,研發了一套高清影像的超精細局部修圖演算法ABPN,在超清影像中的美膚與服飾去皺任務都實現了很好的效果與應用。
傳統美顏演算法的核心是讓皮膚區域的像素變得更平滑,降低瑕疵的顯著程度,從而使皮膚看起來更加光滑。一般來說,現有的美顏演算法可劃分為三步驟:1)影像濾波演算法,2)影像融合,3)銳利化。整體流程如下:
其中為了實現皮膚區域的平滑,同時保留影像中的邊緣,傳統美顏演算法首先使用保邊濾波器(如雙邊濾波、導向濾波等)來處理影像。不同於常用的均值濾波、高斯濾波,保邊濾波器考慮了不同區域像素值的變化,對像素變化較大的邊緣部分以及變化較為平緩的中間區域像素採取不同的加權,從而實現對於圖像邊緣的保留。而後,為了不影響背景區域,分割偵測演算法通常被用於定位皮膚區域,引導原圖與平滑後的影像進行融合。最後,銳利化操作可以進一步提升邊緣的顯著性以及感官上的清晰度。下圖展示了目前傳統美顏演算法的效果:
#原始影像來自unsplash [31]
從效果來看,傳統美顏演算法存在兩大問題:1)對於瑕疵的處理是非自適應的,無法較好的處理不同類型的瑕疵。 2)平滑處理造成了皮膚紋理、質感的流失。這些問題在高清影像中尤其明顯。
3.2 現有深度學習演算法
#為了實現皮膚不同區域、不同瑕疵的自適應修飾,基於數據驅動的深度學習演算法似乎是更好的解決方案。考慮任務的相關性,我們對 Image-to-Image Translation、Photo Retouching、Image Inpainting、High-resolution Image Editing 這四類現有方法對於美膚任務的適用性進行了討論和對比。
圖片翻譯(Image-to-Image Translation) 任務最開始由pix2pix [1 ] 所定義,其將大量電腦視覺任務總結為像素到像素的預測任務,並提出了一個基於條件生成對抗網路的通用框架來解決這類問題。基於pix2pix [1],各類方法被陸續提出以解決影像翻譯問題,其中包括利用成對資料(paired images) 的方法[2,3,4,5] 以及利用非成對資料(unpaired images)的方法[6,7,8,9]。有些工作聚焦於某些特定的影像翻譯任務(例如語意影像合成 [2,3,5],風格遷移等 [9,10,11,12]),取得了令人印象深刻效果。然而,上述大部分的影像翻譯主要關注於影像到影像的整體變換,缺乏對局部區域的注意力,這限制了其在美膚任務中的表現。
#受益於深度卷積神經網路的發展,基於學習的方法[ 13,14,15,16] 近年來在修圖領域展現了出色的效果。然而,與大多數影像翻譯方法相似的是,現有的 retouching 演算法主要聚焦於操控影像的一些整體屬性,例如色彩、光線、曝光等。很少注意局部區域的修飾,而美膚恰恰是一個局部修飾任務(Local Photo Retouching),需要在修飾目標區域的同時,保持背景區域不動。
圖片補全(image inpainting) 演算法常用於對影像缺少的部分進行補全生成,與美膚任務有著較大的相似性。憑藉著強大的特徵學習能力,基於深度生成網路的方法 [17,18,19,20] 這些年在 inpainting 任務中取得了巨大的進步。然而,inpainting 方法依賴目標區域的 mask 作為輸入,而在美膚以及其他局部修飾任務中,取得精確的目標區域 mask 本身就是一個非常具有挑戰性的任務。因而,大部分的 image inpainting 任務無法直接用於美膚。近年來,一些 blind image inpainting 的方法 [21,22,23] 擺脫了對於 mask 的依賴,實現了目標區域的自動檢測與補全。儘管如此,與大多數其他 image inpainting 方法一樣,這些方法有兩個問題:a) 缺乏對於目標區域紋理及語義資訊的充分利用,b) 計算量較大,難以應用於超高解析度影像。
為了實現高解析度映像的編輯,[15, 24,25,26] 等方法透過將主要的計算量從高解析度圖轉移到低解析度影像中,以減輕空間和時間的負擔。儘管在效率上取得了出色的表現,由於缺乏對局部區域的關注,其中大部分方法都不適用於美膚這類局部修飾任務。綜上,現有的深度學習方法大都難以直接應用於美膚任務中,主要原因在於缺乏對局部區域的關注或是計算量較大難以應用於高解析度影像。
美膚本質在於對影像的編輯,不同於大多數其他影像轉換任務的是,這種編輯是局部的。與其相似的還有服飾去皺,商品修飾等任務。這類局部修圖任務具有很強的共通性,我們總結其三點主要的困難與挑戰:1)目標區域的精準定位。 2)具有全域一致性以及細節保真度的局部產生(修飾)。 3)超高解析度影像處理。為此,我們提出了一個基於自適應混合金字塔的局部修圖框架(ABPN: Adaptive Blend Pyramid Network for Real-Time Local Retouching of Ultra High-Resolution Photo, CVPR2022,[27]),以實現超高解析度影像的精細化局部修圖,以下我們將其實作細節進行介紹。
4.1 網路整體結構
#如上圖所示,網路結構主要由兩個部分組成:上下文感知的局部修飾層(LRL)和自適應混合金字塔層(BPL)。其中 LRL 的目的是對降採樣後的低解析度影像進行局部修飾,產生低解析度的修飾結果圖,充分考慮全局的上下文資訊以及局部的紋理資訊。進一步,BPL 用於將 LRL 中產生的低解析度結果逐步向上拓展到高解析度結果。其中,我們設計了一個自適應混合模組(ABM)及其逆向模組(R-ABM),利用中間混合圖層Bi,可實現原圖與結果圖之間的自適應轉換以及向上拓展,展現了強大的可拓展性和細節保真能力。我們在臉部修飾及服飾修飾兩個資料集中進行了大量實驗,結果顯示我們的方法在效果和效率上都大幅領先了現有方法。值得一提的是,我們的模型在單卡 P100 上實現了 4K 超高解析度影像的即時推理。下面,我們將 LRL、BPL 及網路的訓練 loss 分別介紹。
4.2 上下文感知的局部修飾層(Context-aware Local Retouching Layer)
在LRL 中,我們想要解決三中提到的兩個挑戰:目標區域的精準定位以及具有全局一致性的局部生成。如 Figure 3 所示,LRL 由一個共享編碼器、遮罩預測分支 (MPB) 以及局部修飾分支 (LRB) 構成。
總得來說,我們使用了一個多任務的結構,以實現明確的目標區域預測,與局部修飾的引導。其中,共享編碼器的結構可以利用兩個分支的共同訓練來最佳化特徵,提高修飾分支對於目標全局的語意資訊和局部的感知。大多數的圖像翻譯方法使用傳統的encoder-decoder 結構直接實現局部的編輯,沒有將目標定位與生成進行解耦,從而限制了生成的效果(網絡的容量有限),相比之下多分支的結構更利於任務的解耦以及互利。在局部修飾分支 LRB 中我們設計了 LAM(Figure 4),將空間注意力機制與特徵注意力機制同時作用,以實現特徵的充分融合以及目標區域的語義、紋理的捕捉。消融實驗(Figure 6)展現了各個模組設計的效能。
4.3 自適應混合金字塔層(Adaptive Blend Pyramid Layer)
LRL 在低解析度上實現了局部修飾,如何將修飾的結果拓展到高解析度同時增強其細節保真度?這是我們在這部分想要解決的問題。
在影像編輯領域,混合圖層(blend layer)常被用於與影像(base layer)以不同的模式混合以實現各種各樣的影像編輯任務,例如對比度的增強,加深、減淡操作等。通常地,給定一張圖片,以及一個混合圖層,我們可以將兩個圖層進行混合得到圖像編輯結果,如下:
其中f 是固定的逐像素映射函數,通常由混合模式決定。受限於轉化能力,一個特定的混合模式及固定的函數 f 難以直接應用於種類多樣的編輯任務中去。為了更好的適應資料的分佈以及不同任務的轉換模式,我們借鑒了影像編輯中常用的柔光模式,設計了一個自適應混合模組 (ABM),如下:
表示Hadmard product,和為可學習的參數,被網路中所有的ABM 模組以及接下來的R-ABM 模組所共享,表示所有值為1 的常數矩陣。
#,為了得到混合圖層B,我們對公式3 進行求解,建構了一個反向自適應混合模組(R-ABM),如下:
總的來說,透過利用混合圖層作為中間媒介,ABM 模組和R-ABM 模組實現了影像I 和結果R 之間的自適應轉換,相較於直接對低解析度結果利用卷積上採樣等操作進行向上拓展(如Pix2PixHD),我們利用混合圖層來實現這個目標,有其兩方面的優勢:1)在局部修飾任務中,混合圖層主要記錄了兩張影像之間的局部轉換訊息,這意味著其包含更少的無關訊息,且更容易由一個輕量級的網路進行最佳化。 2)混合圖層直接作用於原始影像來實現最後的修飾,可以充分利用影像本身的訊息,進而實現高度的細節保真。
實際上,關於自適應混合模組有許多可供選擇的函數或策略,我們在論文中對設計的動機以及其他方案的對比進行了詳細介紹,這裡不進行更多的闡述了,Figure 7 展示了我們的方法和其他混合方法的消融對比。
4.3.3 Refining Module
4.4 損失函數
#5.1 與SOTA 方法比較
5.1 與SOTA 方法比較5.2 消融實驗
5.3 運行速度與記憶體消耗
#效果顯示
#美膚效果展示:
原始圖片來自unsplash [31]
######原始影像來自人臉資料集FFHQ [32]#############
可以看到,相較於傳統的美顏演算法,我們提出的局部修圖框架在去除皮膚瑕疵的同時,充分的保留了皮膚的紋理和質感,實現了精細、智能化的膚質優化。進一步,我們將方法拓展到服飾去皺領域,也實現了不錯的效果,如下:
以上是一鍵抹除瑕疵、褶皺:深入解讀達摩院高清人像美膚模型ABPN的詳細內容。更多資訊請關注PHP中文網其他相關文章!