Single-image shadow detection and removal using paired regions學習解讀

本文[1]實現了陰影的檢測和去除。

一、摘要
與其他基於像素和邊緣的方法不同,該方法是基於區域的。1.對於分割出來的不同區域,預測其之間的相對光照條件,並進行按對分類;2.分類結果之後用於構建各部分之間的圖,然後利用graph-cut來標記陰影區域和非陰影區域;3.通過image matting對於檢測結果進行處理,基於光照模型,點亮陰影區域。

二、主要介紹
對於所建的圖,節點對應着區域特徵,稀疏邊代表相同表面的兩塊不同區域是否有着相同或者不同的光照。然後,根據graph-cut,將區域按照陰影進行分類。
該方法也是數據驅動的,通過訓練數據對分類器進行學習。與其他方法不同的是,該算法明確地對於區域對(包括不相鄰的區域)之間的光照和材質關係進行建模,

三、陰影檢測
首先,利用mean-shift對圖像進行分割;
然後,使用一個訓練好的分類器,估計每塊區域爲陰影區域的置信度,同時獲取一些相同材質的區域對,包括光照一致的區域對和光照不同的區域對;
然後,利用區域對之間的光照關係構造稀疏圖;
最後,定義瞭如下目標公式,通過求解其最大值,得到關於每個區域有無陰影的label。
這裏寫圖片描述
這裏寫圖片描述
上式中,這裏寫圖片描述是由區域面積(?)來給定其權值的單區域分類器置信度;這裏寫圖片描述表示不同光照下的區域對;這裏寫圖片描述是相同光照下的區域對;這裏寫圖片描述這裏寫圖片描述代表的是按對分類器所給出的區域權重置信度。也就是說,c代表的是權重,也就是由分類器獲得的分類結果。y代表的是label。在對上述目標函數最大化的過程中,通過不斷改變y的值,也就是不同區域的label,來求得使得目標函數最大的label,也就是最終能夠確定各個區域的陰影與否。

3.1單區域分類
由經驗所得,一旦某個區域被陰影覆蓋,其亮度值變暗,紋理信息變少。因此,一個區域的顏色和紋理可以用於輔助判斷區域是否處於陰影中。我們將顏色用Lab顏色空間[2]的直方圖表示,每個通道有21個bins。對於紋理信息,使用[3]提出的紋理基元直方圖表示。使用人爲標定的訓練數據對於SVM分類器進行訓練,這裏寫圖片描述。分類器的輸出乘以一個這裏寫圖片描述,結果作爲上文中提到的這裏寫圖片描述

3.2 區域對關係分類
事實上,只依靠某個區域的內在特徵實際上並不能準確判斷其是否處於陰影下,必須比較相同材質下的其他區域來判斷。本文定義了一個關係圖來檢測陰影,圖中的邊連接着每組光照對(相同光照或不同光照)。爲了解決遮擋問題,將由於陰影的存在導致分離的相同光照區域連接,我們允許不相鄰區域之間有邊。但是由於在一幅圖像中,兩兩區域塊並不是同一材質構成,因此我們的圖仍是稀疏的。
這裏寫圖片描述
這裏也是訓練了SVM分類器(相關參數:這裏寫圖片描述這裏寫圖片描述)來檢測區域塊之間的光照關係,基於下面四個指標的比較結果:

1. 顏色和紋理直方圖:
對於上面的第一個指標,是通過計算顏色和紋理直方圖的這裏寫圖片描述距離,作爲SVM分類器的核函數。
2. 亮度比值:
RGB平均亮度比值,如下計算:這裏寫圖片描述其中,這裏寫圖片描述代表的是第一塊區域的紅色通道的平均值。
3. 色度對齊:
陰影和非陰影區域在RGB顏色空間中實際上應該是對齊的,本文引用參考文獻1來說明,但是我沒有找到該名稱對應的完整文獻。說法無法使人信服。這一點我看下後面怎麼使用的。
4. 圖像距離:
區域之間的歸一化距離。由於距離較遠的區域有着比較小的可能性爲同一材質,所以此處可以使用距離來作爲一個特徵,計算兩塊區域之間的幾何均值距離這裏寫圖片描述
這裏應該是前三個特徵都用於分類器內,最後一個特徵距離與分類器輸出的結果相乘,作爲最終的權重,送入目標函數。

3.3 graph-cut
對於上文中的目標函數進行了改進,如下:
這裏寫圖片描述
使用grapg-cuts求解最優y。

因爲對於圖像中的不同區域來說,屬於同一材質相同光照下的區域有着相同的紋理和相同的顏色;而同一材質不同光照下的區域有着相同的紋理,但是顏色不同。本文同樣考慮到了區域之間的距離,這樣大大減少了檢測錯誤(與只考慮毗鄰區域相比)。

四、陰影去除
本文中使用的去陰影的方法是基於一個簡單的陰影模型,該模型定義光照因素是由直射光和環境光兩部分組成的。本文中試圖找出對於陰影區域來說,到底有多少的直射光被遮蔽,並根據該信息,重新點亮這些被陰影覆蓋的區域。首先,使用image matting來估計陰影係數值(大概是陰影的深淺啊大小);然後,估計直射光和環境光的比值,和上一步的陰影係數結合,對無陰影圖像進行重建。
4.1 陰影模型
陰影模型(我覺得這邊應該叫做光照條件下的成像模型)如下:
這裏寫圖片描述(公式1)
這裏,Ld爲直射光強度,Le爲環境光強度,Ri爲像素點處的反射率,Ii爲RGB空間得到的像素值。θi爲直射光方向和表面法向量的角度,ti值度量到達表面的直射光數量。當ti=1,像素處於非陰影區域;ti=0,像素點位於本影中;ti∈(0,1),像素點處於半影之中。下文中定義這裏寫圖片描述作爲i點處的陰影係數,無陰影區域按照陽光直射處理,ki=1。
4.2陰影蒙板摳圖
前面的陰影檢測結果中,我們得到的陰影mask是二值的,也就是k<sub>i</sub>等於0和1表徵有無陰影,但是實際上,在陰影存在的情況下,光照的變化通常是平緩的,因此,區域邊緣的分割往往會不夠精確產生誤差。因此,使用上述的陰影mask會導致很強的邊緣效應。爲了使得ki的值更加精確,並且使得陰影邊緣更加平滑,下面採用了soft matting技術。

對於一幅圖像來說,matting實際上就是將其分爲前景F和背景B兩個部分,如下式:
這裏寫圖片描述
對公式1進行變形,可得到與上式形式相同的式子,如下:
這裏寫圖片描述
因此,一幅有陰影的圖像可以看做是無陰影圖像這裏寫圖片描述和陰影圖像這裏寫圖片描述的線性組合。
【對於上述說法,我有一點想法。由前文知,R是表面反射率,雖然上式推出來,陰影蒙板可以用LeR來表示,但是從實際情況來說,陰影的大小或深淺的值,與表面有關係嗎?】
【對上述問題的解答:有關係。因爲LeR得到的也是對象或者目標某些光照量下的成像的像素值,只不過和前面同時具有直射光和環境光的區域所成像的效果比起來,暗了一些,而我們將這些比較暗的區域定義爲陰影。】

下面就是利用matting技術來對目標函數進行優化,求解最優的陰影mask——k.
這邊需要理解引用文獻[4]。

4.3 陰影區域的重新點亮???(relight)
基於上文中的陰影模型,通過計算一個比值r,結合陰影蒙板k,可以得到無陰影圖像的表示爲:
這裏寫圖片描述
這裏的r= 表示直射光和環境光之比。Ii則爲原始圖像的顏色值(本文中全部的計算都是對三個通道分別求解)。

這裏我們利用陰影邊緣兩側的兩塊區域來進行計算,也就是說,該兩塊區域對應於同一材質不同光照。如下:
這裏寫圖片描述
然後就可以得到:
這裏寫圖片描述
這裏注意,i和j要求屬於不同光照下的同一材質。對於這邊的r值的估計,計算區域塊內的均值直方圖,並進行投票,選擇最優的r值。

以上,就得到了無陰影圖像。

[1]Guo R, Dai Q, Hoiem D. Single-image shadow detection and removal using paired regions[C]// Computer Vision and Pattern Recognition. IEEE, 2011:2033-2040.
[2]同RGB顏色空間相比,Lab是一種不常用的色彩空間。它是在1931年國際照明委員會(CIE)制定的顏色度量國際標準的基礎上建立起來的。1976年,經修改後被正式命名爲CIELab。它是一種設備無關的顏色系統,也是一種基於生理特徵的顏色系統。這也就意味着,它是用數字化的方法來描述人的視覺感應。Lab顏色空間中的L分量用於表示像素的亮度,取值範圍是[0,100],表示從純黑到純白;a表示從紅色到綠色的範圍,取值範圍是[127,-128];b表示從黃色到藍色的範圍,取值範圍是[127,-128]。下圖所示爲Lab顏色空間的圖示;
[3]Martin D R, Fowlkes C C, Malik J. Learning to detect natural image boundaries using local brightness, color, and texture cues[J]. IEEE transactions on pattern analysis and machine intelligence, 2004, 26(5): 530-549.
[4]Levin A, Lischinski D, Weiss Y. A closed-form solution to natural image matting[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2008, 30(2): 228-242.

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