- PAMI2015
- Shape, Illumination, and Reflectance from Shading
- ICCV2015
- Intrinsic Decomposition of Image Sequences from Local Temporal Variations
- PAMI2016
- Intrinsic Scene Properties from a Single RGB-D Image
- ICCV2016
- Deep Specialized Network for Illuminant Estimation
- ICCV2017
- A Joint Intrinsic-Extrinsic Prior Model for Retinex
- CVPR2018
- SfSNet: Learning Shape, Reflectance and Illuminance of Faces `in the Wild'
- Attentive Generative Adversarial Network for Raindrop Removal from A Single Image
- ECCV2018
- Single Image Intrinsic Decomposition without a Single Intrinsic Image
- Joint Learning of Intrinsic Images and Semantic Segmentation
- CGIntrinsics: Better Intrinsic Image Decomposition through Physically-Based Rendering
- BMVC2018
- Deep Retinex Decomposition for Low-Light Enhancement
PAMI2015
Shape, Illumination, and Reflectance from Shading
作者:Jonathan T. Barron , Jitendra Malik
對於一幅圖像而言,要推斷出圖像的場景屬性(shape, reflectance, illumination),也可以說是本征圖像,是一件非常困難的事,因為有無數的形狀、顏料和燈光可以精確地再現一幅圖像。為了恢復出場景屬性,需要對場景屬性進行約束(也就是先驗),作者基於在自然圖像中出現的統計規律(這些規律是因為生成這些圖像的底層世界的統計規律)對場景屬性構建多種先驗,對本征圖像分解問題進行建模,進行統計推斷, 得到最有可能的解釋。
主要貢獻:
-
將統計規則從自然圖像中擴展到產生自然圖像的世界;
-
第一個使用這些統計觀測來同時恢復所有場景本質屬性;
-
提出了SIRFS算法(可以看作是intrinsic image算法,不過shading是shape和Illumination的組合函數形成的,還可以被看作SFS但reflectance和illumination是未知的),首次完整的本征圖像分解(將原圖分解為reflectance,shape,Illumination)
許多這些本征圖像算法的限制因素似乎是它們將shading視為一種圖像,忽略了這樣一個事實,即shading從結構上來說是某種形狀和某種照明模型的產物。通過解決這個本征圖像問題的超集,恢復shape和Illumination而不是shading,我們的模型產生了比任何本征圖像方法更好的結果。
SIRFS問題公式化:
其中\(R\)為log-reflectance image,\(Z\)為depth-map,\(L\)為球面諧波Illumination向量。\(S(Z, L)\)是一個渲染引擎,它的作用是將\(Z\)線性化一組表面法線,然后通過這些表面法線和L構成log-shading,\(P(R), P(Z), P(L)\)分別是reflectance, shape和illumination的先驗,SIRFS算法就是要在重構約束下,最大化三個先驗的似然概率。
進一步化簡,將最大化問題轉化成最小化問題,取負對數,然后根據重構約束,可以將最大化似然概率轉為如下公式,去除了R這個自由未知量。
反射先驗
三種先驗:Smoothness,Parsimony,Absolute Reflectance。
Smoothness:自然圖像的反射圖趨向於分段連續,這等效於反射圖的變化趨向小而稀疏,作者在灰度反射平滑使用一個多元高斯尺度混合(GSM),將每個反射率像素與其相鄰像素之間的差值疊加在一起,在這個模型下使R的可能性最大化,它對應於最小化下面的cost函數:
其中\(R_i - R_j\)為從像素\(i\)到像素\(j\)的\(log-RGB\)的差異, \(N(i)\)是圍繞i領域為5的區域,\(c(\cdot ; \alpha, \sigma)\)為離散單變量的負對數似然混合高斯尺度,\(\alpha\)和\(\sigma\)為參數,公式如下:
反射率圖像最可能是平的,所以設定GSM的均值為0.
高斯尺度混合模型以前曾被用於模擬自然圖像中的重尾分布,用於去噪或圖像修復。同樣地,使用這個分布族給我們一個對數似然,它看起來像一個光滑的,重尾樣條曲線,從0開始單調地遞減。反射率變化的代價隨變化幅度的增大而增大,但由於分布具有較重的尾部,小變化的影響是最強烈的(對應於shading的變化),大變化的影響是最微弱的。這與希望反射圖大部分是平的,但偶爾變化很大吻合。(這句話不太懂)
Parsimony
對反射率圖像的期望是,在一張圖像中有少量反射率,即用於繪制圖像的調色板是小的。作者展示了數據集中三個對象的灰度對數反射率的邊緣分布。雖然人造的cup1物體在其分布上表現出最明顯的峰頂,但像apple這樣的自然物體卻表現出明顯的集群性。因此,我們將構建一個鼓勵節儉的先驗——即我們對場景反射率的表示是經濟和有效的,或“稀疏的”。
只使用一個平滑的先驗,如在a,允許反射率變化在不連通區域。在b中,只使用節儉的先驗,鼓勵反射率取少量的值,但不鼓勵它形成大的分段常數區域。只有把這兩個先驗結合起來使用,如c我們的模型是否正確地支持正常的、類似於油漆的棋盤配置。這證明了我們對反射率的光滑性和節儉先驗的重要性。
利用二次熵公式,使對數反射率的熵最小,從而鼓勵節儉,公式如下:
Absolute Reflectance
沒有絕對先驗,我們的模型將樂於將圖像中的灰色像素解釋為在灰色照明下的灰色反射,或者像在極亮照明下的近似黑色反射,或者在黃色照明下的藍色反射,等等。
絕對先驗對於顏色恆常性是基本的,因為大多數基本的白平衡或自動對比度/亮度算法都可以被看作是將類似的成本最小化:灰色世界假設對非灰色的反射率進行懲罰,白色世界假設對非白色的反射率進行懲罰,基於色差的模型對位於以前可見反射率范圍之外的反射率進行懲罰。
先驗公式:
\(f\)是我們的樣條曲線,它決定了分配給每個反射率的非標准化負對數似然,\(n\)為對數反射率的一維直方圖,\(\mathbf{f}^{\prime \prime}\)是樣條函數的二階偏導,\(\epsilon\)確保先驗公式可微。
形狀先驗
三種先驗:Smoothness,Surface Isotropy,The Occluding Contour。
Smoothness
平滑度的假設是基於形狀很少彎曲,通過最小化平均曲率的變化來建立模型。
上面圖形是形狀及其平均曲率的可視化(藍色=正,紅色=負,白色= 0)。平面和肥皂膜的平均曲率為0,球體和圓柱體的平均曲率為常數,形狀彎曲時平均曲率變化。
平均曲率的計算公式如下:
對形狀的平滑先驗是一個高斯尺度的混合對Z的平均曲率的局部變化:
公式與反射圖的平滑先驗一致。
Surface Isotropy
我們假設形狀的表面是各向同性的——同樣可能面向任何方向,比如在球體中。然而,觀察各向同性形狀會產生偏差,因為觀察到的表面更可能面向觀察者,而不是垂直於觀察者(如下圖a中放置在球體上的紅色標尺圖形圖釘所示)。我們通過在\(N^z\)上施加先驗來消除這種偏差,如下圖b所示,它粗略地類似於我們的訓練數據
表面各向同性先驗的公式如下:
\(N_{x, y}^{z}(Z)\)是Z的表面法線在位置\((x,y)\)上的\(z\)分量.
The Occluding Contour
形狀的遮擋輪廓(包圍形狀輪廓的輪廓)是一種強大的形狀解釋線索,它通常控制shading線索,並提出了算法來粗略估計給定輪廓信息的形狀.
在物體的遮擋輪廓上,表面與所有有利位置的光線相切。在正交投影下(我們假設),這意味着法線的z分量為0,x和y分量由圖像中的輪廓決定。表面的閉合輪廓往往由分支(表面從有利位置與光線相切的點,如圓柱體的光滑面)和邊緣(表面的突然不連續,如圓柱體的頂部或一張紙的邊緣)組成.
我們提出了分支先驗的“軟”版本,它捕捉了我們期望看到的類似“分支”的行為,但是它可能被邊緣或小分支違反。
該杯的側面是“分支”,即表面法線面向外並垂直於閉合輪廓的點,而杯的頂部是“邊緣”,即表面任意定向的尖銳間斷。
光照先驗
因為光照是未知的,必須在推理過程中對其進行正則化。對光照的先驗是:在訓練集中對球面諧波光照進行多元高斯擬合。在推斷過程中,我們強加的cost是該模型下的(非標准化)負對數似然:
以上就是所有的先驗,這篇文章難度好大,沒有理解,先到這吧。
ICCV2015
Intrinsic Decomposition of Image Sequences from Local Temporal Variations
作者:Pierre-Yves Laffont,Jean-Charles Bazin,來自蘇黎世聯邦理工學院。
這篇文章是基於圖像序列的本征圖像分解,采用基於優化的方法,主要特色是觀察隨着時間變化局部色彩的變化,通過構造這一約束來解決本征圖像分解這個病態的問題,另外,為了保證全局連續,還使用了一個距離對的像素約束。
假定輸入有\(T\)幀,定義\(M\)為一幀的像素個數,\(I_t\)代表第t幀,\(t \in\{1, \ldots, T\}\). \(I(p, t)^{(c)}\)代表第t幀第c個顏色通道的第p個像素,假設場景是靜態的和朗伯的(Lambertian), 可以構建如下等式:
其中\(R\)代表反射率,\(S\)代表光照,下面可以忽略上標\(c\), 因為每個單獨通道是獨立的,可以單獨處理。
來自時間顏色變化的局部約束
首先要對\(T\)幀數據進行滑窗,得到重疊的小塊區域,每個小塊區域都是正方形,有N個像素,考慮這樣的小塊區域,可以在局部區域構建平滑能量,在確定條件下,光照在這一個小塊區域中,是一個常量。所以上述公式又可以變為:
於是對於每個小塊區域,可以構建如下局部能量:
然后不同幀的小塊區域可能某些會有陰影分界線以及深度不連續,所以對於這些小塊區域,不能完全用平等地對待它們,有兩個處理方式,第一個是加入魯棒的損失函數,將上式變為如下形式:
這里的\(\rho(x)\)是\(\sqrt{x}\)函數,對於那些有陰影分界線以及深度不連續的區域(外點),它們會構成很大的殘差,所以使用平方根函數對殘差進行縮小,減小外點的影響,另外一點是使用了迭代重權重最小二乘法對局部能量進行約束,公式如下:
這里的\(e_{\text {local}}(i, t)\)是加上上面魯棒損失函數的,\(w_{i t}^{(k)}\)就是對不同幀的局部區域進行加權,方法是自適應的,所以會給那些影響局部能量大的外點更小的權重,減輕它們的影響。
公式5中還是由兩個未知量\(R\)和\(S\),然后作者在文中中,區域的光照可以表示為區域反射值得累加並通過一個函數表示,具體說明在支撐材料中,然而並沒有找到那個材料。這里給出公式:
這里的\(\mathbf{I}_{i t}^{\top}\)是\(Nx1\)的列向量,是對第\(t\)幀第\(i\)個局部區域\(W_i\)的像素進行縱向堆疊而成。於是公式4變為了\(e_{\text {local}}(i, t)=\left\|\mathbf{M}_{i t} \mathbf{R}_{i}\right\|^{2}\),其中\(\mathbf{M}_{i t}=\mathbf{I} \mathbf{d}_{N}-\left(\mathbf{I}_{i t}^{\top} \mathbf{I}_{i t}\right)^{-1} \mathbf{I}_{i t} \mathbf{I}_{i t}^{\top}\),\(\mathbf{I} \mathrm{d}_{N}\)是一個\(NxN\)的單位矩陣。將這個關系帶入到公式5中,得到迭代公式如下:
上述公式7只有一個未知數\(\mathbf{R}_{i}\),可以通過\(SVD\)算法求出最優解\(\mathbf{R}_{i}\)對應的與矩陣最小奇異值相關的奇異向量\(\mathbf{M}_{i}\)=\(\sum_{t} \sqrt{w_{i t}^{(k)}} \mathbf{M}_{i t}\),最后將所有區域和在的一起的總局部能量\(E_{\text {local}}\)為如下公式:
陰影一致性的成對約束
上述約束是針對於局部能量,然而只使用上面的能量會導致局部與局部之間發生不連續的作用。所以作者提出了一種基於距離的點對點的約束,這個約束是選取相同光照值的兩個點進行約束,對於第\(t\)幀擁有相同光照的兩個點\(p\)和\(q\),根據公式1,可以寫出如下公式:
然后類似可以構建如下能量公式:
依然,使用迭代重加權最小二乘法,給公式10加上權重項,自適應地分配權重,公式如下:
最后的總距離點對點能量如下:
上面還沒介紹如何選擇這樣的點對,作者也沒有詳細介紹,只說了方法,對像素點的外觀輪廓進行聚類,在每個聚類中心選擇點對集合。
總的能量約束
根據上面的兩個約束,總的約束為:
其中\(E_{\mathrm{reg}}\)為\(\sum_{p} \sum_{t}\left(R(p)-\frac{3 I(p, t)}{\sum_{c} I(p, t)^{(c)}}\right)^{2}\),是一個正則項,用於傾向於接近輸入圖像色度的反射率值。
PAMI2016
Intrinsic Scene Properties from a Single RGB-D Image
作者:Jonathan T. Barron , Jitendra Malik
之間介紹了一篇“Shape, Illumination, and Reflectance from Shading”,也就是SIRFS算法,這篇論文是SIRFS算法的延申,SIRFS假設輸入圖像是單個對象的分割圖像,在單個全局光照模型下進行光照,這嚴重限制了其性能。相反,自然圖像包含許多形狀,這些形狀可能相互遮擋或相互支持,以及以陰影、衰減和相互反射的形式出現的復雜的、空間變化的照明。作者在這篇文章中提出了Scene-SIRFS算法(extends SIRFS from objects to scenes),將混合的形狀和混合的光照嵌入到輸入圖像的“軟”分割中,另外通過kinect提供的有噪聲的深度圖提升形狀估計,給定單個RGB-D圖像推斷出所有的場景屬性。
原始的SIRFS:
其中\(R\)為log-reflectance image,\(Z\)為depth-map,\(L\)為27維的球面諧波Illumination向量。\(S(Z, L)\)是一個渲染引擎,它的作用是將\(Z\)線性化一組表面法線,然后通過這些表面法線和L構成log-shading,\(g(R), f(Z)\) 和 \(h(L)\)分別為反射,形狀,光照的損失函數。
Scene-SIRFS:
其中\(Z=\left\{Z^{n}\right\}, \boldsymbol{U}=\left\{U^{n}\right\}, \boldsymbol{L}=\left\{L^{m}\right\},\boldsymbol{V}=\left\{V^{m}\right\}\), 這里的\(Z\)和\(L\)是形狀和光照的集合,而原始的SIRFS是單個形狀和單個光照,另外這里還多了兩個東西,一個是\(U\),一個是\(V\),\(U\)和\(V\)可以看作兩組“圖像”,分別定義形狀和光照的分布。\(U\)可以看作為可見性地圖,如果\(U_{i, j}^{n}\)等於1,那么對應的\(Z_{i, j}^{n}\)在像素點(i, j)中就是可見的。\(V\)可以看作\(L\)中每個照明的所有權,如果\(V_{i, j}^{m}\)等於1,那么則代表像素點(i, j)被\(L^m\)完全照明。在形狀上的先驗現在是每個正規化獨立的單深度圖先驗的求和。在光照上的先驗現在是圖像的每個像素的光照加權求和。形狀混合概率\(U\)和光照混合概率\(V\)是分別被矩陣\(\boldsymbol{\psi}\)和\(\boldsymbol{\omega}\)權重化,矩陣的每一列是一個17維的向量,代表場景中形狀混合和光照混合的所有權。\(U\)和\(V\)分別由它的權重矩陣以及B(RGB圖像的歸一化拉普拉斯特征向量)點乘,然后通過一個softmax函數得出。實驗設立\(|L| = |Z| = 8\).
為了能進行優化,還需要定義這個混合形狀的法線場\(N^{\prime}(Z, \boldsymbol{U})\),將把每個\(Z^n\)線性化為x和y中的一組偏導數,取那些對U的期望,然后從那些期望的偏導數中構造一個正規場,公式如下:
根據上述公式,\(S^{\prime}(Z, U, L, V)\)可變換為如下形式:
這里的\(S(\cdot)\)就是SIRFS里面的渲染引擎。
使用形狀和光照的混合來對深度不連續和空間變化的光照進行建模是必要的,這兩者都容易在圖像中產生輪廓、強度變化、紋理梯度等形式的變化。因此,我們應該將形狀和光的混合物嵌入到某個空間中,每個混合物的“所有權”都依附於場景的分割。
下面是嵌入的過程:給定一個圖像,首先我們計算該圖像的多尺度\(Pb\)。然后利用中間輪廓線索從mPb中生成一個親和矩陣,計算出對應於最小特征值的17個特征向量\(\left\{\mathbf{u}_{i}\right\}\)。對於特征向量2到17,我們從每個\(\mathbf{u}_{i}\)中減去均值並除以它的標准差,然后將這些標准化特征向量連接到一個矩陣B中,每個像素一列。B是嵌入空間,其中每個混合分量由一個17維向量定義,向量與B的內積定義了混合分量在輸入圖像的每個像素處的優勢程度。下圖就是嵌入的可視化。
形狀先驗與Kinect圖像
總的先驗公式如下:
\(f_{\kappa}(Z)\)是最小化Z的平均曲率的局部變化,\(f_{f}(Z)\)則是最小化Z的斜率,鼓勵Z正面平行。這兩項是之前就有的,第三項是新的,如果Z被認為是“可見的”,則鼓勵Z類似於原始的傳感器深度圖,將此方法應用於混合物中的每個單獨深度圖,而不是某個平均深度圖。這鼓勵場景的組成深度圖是平滑的,同時允許混合物所暗示的預期深度圖突然變化,從而允許我們建模深度不連續和遮擋。
構造一個損失函數,以鼓勵我們的恢復深度Z類似原始傳感器深度\(\hat{Z}\),首先,讓我們通過量化對應於\(\hat{Z}\)的視差來近似誤差的上界:
第一項來自Kinect的基線,第二項是額外松弛。假設如果\(Z_{i, j}\)和\(\tilde{Z}_{i, j}\)在像素(i,j)小於\(Z_{i, j}^{e r r}\),那么這個差是量化造成的,應該忽略。大於\(Z_{i, j}^{e r r}\)的誤差將受到魯棒性的懲罰,因為它們可能是由於傳感器噪聲或校准誤差造成的。最后的損失函數:
光照先驗
光照先驗是SIRFS的簡單擴展,做法是把一組光照的期望正則化。給定L和V,計算模型在圖像各像素處的期望:
然后剩下的就和SIRFS的一樣了,公式如下:
ICCV2016
Deep Specialized Network for Illuminant Estimation
作者:WuShi1, Chen Change Loy1,2, and Xiaoou Tang1,2 來自中國香港中文大學和中科院。
這篇論文不是本征圖像分解問題,但類似,這是一篇光照估計的論文,首先看看這個問題目的是啥,看下圖:
左邊的圖像是受到了光照的影響整體偏綠,需要還原出右邊的正常圖片,這個問題可以歸為如下等式問題:
其中\(I\)為受光照影響形成的偏綠圖像,\(E\)為RGB光照,R為在白光條件下的RGB值(需要還原的圖像)。這篇文章設計了兩個網絡以及一個學習策略(HypNet + winner-take-all learning scheme + SelNet),來對這個問題來進行求解。
先貼出網絡結構圖:
輸入通過了紫外線轉換,變成了兩個通道,更加魯棒地學習,最后可以通過反操作得到RGB值。上面這個HypNet網絡是用來預測原圖的光照信息,輸入是原圖的一個小塊區域,這個網絡共享卷積層,但在全連接層分出了兩個分支,預測了兩個光照輸出,下面這個SelNet網絡跟上面網絡結構類似,不過只有一個分支,輸出是一個2維列向量,標簽由上面這個網絡得到。
如何訓練?
HypNet網絡預測兩個光照輸出,哪個分支產生的輸出與真實的標簽更接近,就更新哪個分支的全連接層,另外一個分支的全連接層固定不動,這是策略作者取了一個很好聽的名字,叫做贏者通吃策略
, 對於那個更接近真實標簽的輸出,設立它所在的分支為1,另一個分支為0,這個將作為下面SelNet網絡的標簽,使SelNet進行訓練。
如何測試?
測試的時候也是通過小塊區域,通過SelNet網絡選出采用哪個分支的結果,然后根據結果恢復出當前區域,最后整合所有恢復的小塊區域得到原圖。
思想還是挺有趣的,PypNet相當於是一個集成網絡,不同分支學習到了不同的特征,見下圖,可以預測多種類型的輸出。而下面的SelNet則是自動篩選最優的估計。感覺很完整優美。
ICCV2017
A Joint Intrinsic-Extrinsic Prior Model for Retinex
這篇文章的主要特點在於首次將形狀先驗帶入到Retinex中,提出了Local Variation deviation(LVD)的概念,通過將LVD作為形狀先驗來保護結構的完整性。然后聯合紋理先驗,光照先驗以及重建損失構成最終的優化函數,求解最優解,與之前的retinex方法相比,達到了SOTA。(論文中S代表觀測圖像,I代表Illumination,R代表Reflectance)
LVD可以分成兩個部分來看,第一個部分是LV,即局部變化,代表的是梯度特征,然后第二部分是D,即偏差,指的是梯度的偏差。LVD可以看作是對局域梯度進行一種規范化,去除均值的影響,得到梯度變化的方差相關性,紋理是趨向於弱相關性的,而結構是趨向於強相關性的,LVD則正好對紋理和結構有非常強的鑒別能力。LVD的公式如下所示,這里的沒有使用減去均值的絕對偏差,而采用的是相對偏差,相對偏差更能放大相關性差異。從下圖中人物中紋理(藍色方框)與結構(綠色方框)的在絕對偏差和相對偏差中數值可以看出,紋理和結構確實在LVD中有明顯差別,而且使用相對偏差能夠放大差異。
另外,文章還給出了紋理先驗以及光照先驗,紋理先驗是保持反射圖間斷連續,則紋理先驗可以形成如下公式:
作者對\(S=I \cdot R\)進行反轉,變換成了\((1-S)=1-I \cdot R=(1-R) \cdot I+(1-I)\), 通過讓\(\mathrm{H}=1-\mathrm{S}, \mathrm{J}=1-\mathrm{R}, \mathrm{T}=\mathrm{I}\)以及\(a=1\),原始變換成了\(\mathrm{H}=\mathrm{J} \cdot \mathrm{T}+\mathrm{a}(1-\mathrm{T})\),最后公式類似霧霾圖像的形成模型,H代表有霧霾的觀測圖像,J是需要還原出的圖像,T是媒介傳播,a是全球大氣光,作者引用了何凱明等人提出的去霧算法的暗通道先驗,暗通道先驗公式如下所示,更具體地推導可以看原始論文
暗通道先驗是說在絕大多數非天空的局部區域內,某一些像素至少一個顏色通道具有很低的值,這是何凱明等人基於5000多張自然圖像的統計得到的定理。作者根據公式推導出了亮通道先驗,公式如下:
然后令\(\mathrm{B}=\max _{\Omega}\left(\max _{c} S^{c}\right)\),最后使用L2距離損失最小化估計光照和亮通道先驗。
聯合優化的最后公式如下:
然后由於\(E_{s}(I)\)以及\(E_{t}(I)\)都是L1范數,非凸,所以作者這兩個先驗進行了改進,變成了L2范數,公式如下:
項目主頁:https://caibolun.github.io/JieP/
代碼: https://github.com/caibolun/JieP
CVPR2018
SfSNet: Learning Shape, Reflectance and Illuminance of Faces `in the Wild'
之前相關人臉本征圖像分解的工作都是在合成數據集中完成的, 但到真實的人臉,不同分布使得泛化效果很差,這篇論文的特色是提出了一種新的訓練范式(SFS-supervision),從真實無標簽的真實人臉數據中學習形狀,反射以及光照,並且還提出了一種更強大的網絡模型(SFS-Net)。
SFS-supervision分為以下三步:
a) 先使用3DMM中合成的數據集訓練SFS-Net;
b) 然后用訓練好的網絡對真實的人臉數據集生成偽標簽;
c) 最后共同訓練合成數據集以及帶有偽標簽的真實數據集。
直接對真實圖像使用重建損失進行反向傳播會使分解過程中各個組件發生崩潰而產生平凡解,這里的偽標簽是很大程度上緩解這種情況的產生。
SFS-Net****網絡結構如下:
網絡並沒有采用傳統的U-Net結構,作者指出了U-Net的缺點,由於高頻特征可以直接通過遠跳躍連接從編碼器傳到解碼器,所以對於胡須以及皺紋這種高頻特征是不知道它來自於Normal還是Albedo的,潛在空間所具有的信息性弱,所以作者提出了SFS-Net,通過一個共享Conv,然后分兩路通過Normal Residual Blocks和Albedo Residual Blocks(殘差塊可以進行低頻與高頻的共同學習),得到Normal features和Albedo features,最后Normal features和Albedo features分別通過各自的Conv得到形狀圖以及反射圖,生成光照信息則是將image features,Normal features和Albedo features三者進行concat,然后通過一個Light Estimator得到SH light,最后形狀圖和光照信息聯合通過一個函數得到光照圖,光照圖和反射圖相乘重建出原圖。網絡有四個LOSS,除了SH light是L2 loss,Normal,Albedo以及Recon都是L1 loss。網絡更多細節參考論文附錄以及代碼。
Attentive Generative Adversarial Network for Raindrop Removal from A Single Image
這篇論文是關於去雨算法,屬於圖像恢復的內容,但還是基於image-to-image的恢復問題,與本征圖像很相似,有借鑒意義。
話不多說,直接上模型:
這是一個基於生成對抗的網絡,生成器的輸入是有雨滴的退化圖像,輸出則是復原后的輸出圖像。鑒別器的輸入是生成器輸出的假圖像以及是真實的圖像,判別器最后的輸出是真假圖像的概率。
生成器由兩個子網絡組成:一個注意遞歸(attentive-recurrent)網絡和一個上下文自動編碼器(contextual autoencoder)。注意遞歸網絡的目的是在輸入圖像中找到需要注意的區域(雨滴的區域)。這些區域主要是上下文自動編碼器需要關注的雨點區域及其周圍結構,以便生成更好的局部圖像恢復,以及判別網絡需要關注的區域。注意遞歸網絡生成對應雨滴的mask(mask初始值都設置為0.5),mask的范圍是0到1,不是二值mask,有雨滴的地方的強度越強。注意力是通過LSTM實現的,源代碼中進行了四次迭代,下面是看源碼畫的流程圖,每次迭代都會產生mask圖,每次mask的雨滴能量強度越來越強烈,如上圖所示。
其中LSTM的結構圖如下(除了g是conv+tanh,f,i,o都是conv + sigmiod):
這里為什么會越來越強烈,這不僅跟LSTM序列有關系(將前面LSTM得到的mask用於后面的LSTM繼續進行生成更厲害的mask),還跟loss也有很大關系,mask的loss如下:
\(\boldsymbol{A}_{t}\)是第\(t\)次迭代輸出的mask,M為mask的二值標簽,前面的\(\theta\)設置為0.8,N為迭代次數,設置為1,可以看出迭代次數越大,相應的權重也越大,那么為了最小化loss,網絡會將權重越大的mask生成與真實的mask更加接近。
上面是生成器的第一個loss,還有3個loss,下面的兩個loss分別為多尺度損失(multi-scale losses)和知覺損失(perceptual loss)。通過論文中的原圖進行介紹,原圖如下:
上圖中的上下文自編碼器就是生成器的另外一個子網絡, 該子網絡有16個conv-relu塊(不算output層),加入跳過連接防止輸出模糊。看了源代碼,16個conv-relu塊中,分別在第一層和第三層的輸出引入了跳躍連接,在第二層和第四層進行了下采樣,在倒數第二層和倒數第四層進行上采樣,上采樣的輸出與跳躍連接過來的編碼器特征進行相加,是對稱的。另外,還有一點就是16個conv-relu塊中,最中間的四層使用的是不改變特征size的空洞卷積,卷積核元素間距依次為2,4, 8, 16,為了保持size不變,padding要設置為卷積核元素間距。以pytorch為例,間距為8代碼如下:
nn.Conv2d(inchannel, outchannel, 3, 1, 8, dilation = 8) # size不變
多尺度損失\(L_M\)是將解碼器的逐層特征與真實標簽進行比較,從不同的尺度獲取更多的上下文信息(這也是為啥叫上下文自編碼器,名字有特色)。loss公式如下,\(S_i\)表示從解碼器中提取的第\(i\)個輸出, 使用最后5層、3層和1層的輸出,其大小分別為原尺寸的\(\frac{1}{4}, \frac{1}{2}\) 和 \(1\)。\(T_i\)代表原圖resize成\(S_i\)對應的尺度。越高層的特征希望與原圖越像,所以對應的權重loss越大,\(\lambda_i\)分別為0.6, 0.8, 1.0。
知覺損失\(L_P\)是使用VGG-16,預測的生成圖像和真實圖像都經過VGG,兩個輸出進行MSE,得到兩個輸出特征之間的全局差異,公式如下,
最后的一個\(\mathcal{L}_{G A N}(\mathbf{O})\)則是生成器傳統的loss,欺騙鑒別器,讓鑒別器預測生成圖像為真的概率越大越好。loss公式如下:
總的生成器的loss如下:
下面再來看看鑒別器,結構如下,鑒別器輸入是真假圖像,輸出是0到1,值越大代表該圖像是真圖像的概率也就越大,所以真圖像希望輸出越接近1,假圖像輸出越接近0(與生成器相反,產生對抗),鑒別器前兩個loss就是標准GAN的loss,公式為\(-\log (D(\mathbf{R}))-\log (1-D(\mathbf{O}))\)。
另外還引入了一個注意力損失\(\mathcal{L}_{m a p}\left(\mathbf{O}, \mathbf{R}, \mathbf{A}_{N}\right)\),公式如下,在鑒別真假圖像,有基於全局的圖像內容一致性和局部的圖像內容一致性。而如果我們知道某一個區域(有雨滴的部分)是假的,基於局部的圖像內容的一致性是非常有用的,但在測試階段,是沒有信息給出那些區域是有問題的,需要鑒別器自己去尋找這樣的區域。所以作者在鑒別器中引入了一個注意力,下面藍色的convs是將128層的特征生成1層的mask,與生成器mask做MSE,希望鑒別器也能生成帶有雨滴注意力的特征,另外,作為對比,我們不希望真實圖像產生注意力,因為是沒有必要的,區分的就是雨滴和沒雨滴,所以加了一個原圖經過convs塊的loss,不過希望它的mask趨近於0,沒有注意力。
總的鑒別器損失如下:
項目主頁:https://rui1996.github.io/raindrop/raindrop_removal.html
Code:https://github.com/rui1996/DeRaindrop
paper link: https://arxiv.org/abs/1711.10098
ECCV2018
Single Image Intrinsic Decomposition without a Single Intrinsic Image
本征圖像分解按照圖片的數量可以分為single-image based和multi-image based,基於單張圖片的方法的缺點在於缺少標簽,而基於多張圖片的算法雖然不需要標簽,但由於需要多張圖像,這在現實情況下很難應用。
本文提出了一種全新的思路,通過多張圖片進行無GT訓練,但在測試過程中使用單張圖片進行預測,還可以聯合帶標簽的數據進一步提升分解效果,實驗表明當使用50%的標簽圖像時就可以達到SOTA。網絡結構圖如下:
將不同光照條件的同一物體的兩個圖像通過一個共享參數的孿生網絡(用的常規U-Net),得到兩個圖像的反射圖,光照圖以及軟分配掩模,首先\(I_1\)通過孿生網絡得到反射圖\(A_1\)以及光照圖\(S_1\), 反射圖\(A_1\)和光照圖\(S_1\)可以相乘重建原圖\(I_1\),\(I_2\)通過孿生網絡同樣得到反射圖\(A_2\)以及光照圖\(S_2\),由於反射圖是光照不變性的,所以\(A_2\)和\(S_1\)同樣可以重建原圖\(I_1\),兩個重建可以與\(I_1\)構成兩個重建L1_loss, 軟分配掩模是預測圖片在每點像素值的梯度是屬於反射圖的概率,所以\(I_2\)的梯度與軟分配掩模\(M_2\)相乘代表的是反射圖\(A_2\)的梯度,與預測的\(A_2\)的梯度進行梯度L1_loss,反射圖和光照圖的概率和為1,通過1減去軟分配掩模\(M_2\)的概率即使光照圖的梯度概率,剩下的操作與反射圖一樣。另外,反射圖可能會出現全白像素的圖像,這種圖像也是光照不變性的,為了防止這種退化情況的產生,作者加了一個額外的embedding loss \(L_{1}^{e b d}\)用來正則化,讓兩個反射圖盡可能一樣,同時隨機采樣要保持兩個反射圖有差異。
Joint Learning of Intrinsic Images and Semantic Segmentation
這篇論文是本征圖像分解與語義分割的結合,本征圖像去除了光照的影響,會促進語義分割的准確度,而語義分割的標簽給圖像分塊,使得圖像具有像素塊的顏色信息,邊界導向的信息,同質反射值相同信息等等,所以語義分割應該也會促進本征圖像分解的性能。
由於缺少既有本征圖像以及語義分割的數據集,所以作者自己做了一個,場景級下的自然環境合成數據集,含有本征圖像GT以及語義分割GT。另外,作者提出了一個新的層級CNN架構用來聯合訓練本征圖像分解以及語義分割,最后用實驗分析了兩種問題聯合訓練所帶來的好處。
CNN層級架構如下:
網絡結構與U-Net有些不同,一個是多一個生成語義分割圖的decoder,另外光照圖的decoder和反射圖以及語義分割的decoder進行了互相層間級聯concat,這種網絡有一點比較有特色,通過這樣級聯以及共用一個編碼器,可以是本征圖像分解以及語義分割互相影響,相互監督並促進性能提升。作者做了多個實驗驗證了兩個任務的確有促進作用,聯合訓練效果更佳。
損失函數如下圖,反射圖和光照圖使用的MSE以及帶尺度的MSE,語義分割圖用的則是交叉熵損失函數,\(p_{x}^{L}\)代表給定像素x屬於類別L的概率。
項目主頁:https://ivi.fnwi.uva.nl/cv/intrinseg(數據集和模型還未公開)
CGIntrinsics: Better Intrinsic Image Decomposition through Physically-Based Rendering
這篇論文分析現有本征圖像數據集存在的一些問題,如合成數據集受限於單個物體(shapeNet),不真實的光照(CG Animation),缺少細節以及低信噪比(SUNCG),而真實本征圖像數據集是稀疏的(IIW和SAW),並且難以收集富集標簽,作者在這篇論文中提出了一個高質量,高信噪比,真實的,仔細渲染的合成數據集CGI(基於SUNCG,擁有大於20000張圖片並帶有GT)。另外,作者用半監督學習方式來聯合訓練帶標簽的CGI以及無標簽的IIW和SAW,最后在IIW以及SAW兩種數據集下達到了SOTA。使用的網絡還是基本的U-Net,如下圖。
損失函數如下圖,詳細公式可以參考原論文。
BMVC2018
Deep Retinex Decomposition for Low-Light Enhancement
這篇論文是將本征圖像分解應用在低光照增強上面的。作者收集了一個包含低/正常光圖像對的低光數據集(LOL),並提出了一個在該數據集上學習到的深層Retinex網絡,包括用於分解的Decom-Net和用於照明調節的Enhance-Net。在Decom-Net的訓練過程中,沒有分解反射率和光照的地面真實值。Decom-Net只在關鍵約束條件下學習,包括匹配的低/常光圖像共享的一致反射率和光照的平滑度。在分解的基礎上,利用Enhance-Net增強光照進行后續亮度增強,聯合去噪時對反射率進行去噪操作。模型結構如下:
兩個輸入分別為input_high和input_low,input_high在Decom-Net的輸出是R_high和I_high,input_low在Decom-Net的輸出是 R_low和I_low, Enhance-Net的輸出是I_delta。
Decom-Net loss:
- 四種重構損失,分別是R_high和I_high合成input_high,R_low和I_low合成input_low,R_low和I_high合成input_high,R_high和I_low合成input_low.
- 反射圖一致性:R_low和R_high構成的1范數損失。
- 光照平滑約束:\(\mathcal{L}_{i s}=\sum_{i=l o w, n o r m a l}\left\|\nabla I_{i} \circ \exp \left(-\lambda_{g} \nabla R_{i}\right)\right\|\),通過\(\exp \left(-\lambda_{g} \nabla R_{i}\right)\)的權重的作用,\(\mathcal{L}_{i s}\)在反射率梯度較大的情況下,即圖像結構位置和光照不連續的情況下,放寬了平滑度的約束。分別是R_low和I_low以及R_high和I_high構成的兩個約束
Enhance-Net loss:
- 重構損失: I_delta和R_low合成input_high
- 光照平滑約束:I_delta和R_low構成的平滑約束。