鄭彤 劉亞美 張駿



摘要:顏色恒常性計算的目的是消除圖像場景中光照變化帶來的影響。一些先進的算法基于圖像塊進行光照估計,通過池化(如均值池化和中值池化)得到全局估計結果,然而不準確的局部估計很可能會影響全局估計結果。針對現有的圖像塊采樣方法的隨機性和局部到全局池化方式的局限性,一種基于局部置信度網絡的光照估計算法被提出,該算法包含三部分:(1)基于亮暗像素的圖像塊采樣方法,使得所采樣的圖像塊有較大的色度梯度,有利于光照估計;(2)采樣圖像塊的局部光照估計網絡;(3)置信度網絡計算局部光照估計網絡獲得的局部估計置信度,最后通過置信度池化得到全局估計結果。實驗驗證了該算法的有效性,以及在兩種標準數據集上都取得了競爭性的性能。關鍵詞:顏色恒常性;光照估計;卷積神經網絡;亮暗像素;置信度
0引言
人眼視覺系統擁有在不同顏色光照下感知物體真實顏色的能力,這種能力稱為顏色恒常性(Color Constancy)。在計算機視覺領域,對于未知光照下獲取的場景圖像,顏色恒常性計算的關鍵一步就是對場景進行光照估計(Ilhminant Estimation)以得到光照顏色,然后利用VonKries模型將圖像校正到標準光照下。相關研究成果已應用在數字相機的白平衡中,同時也是許多視覺任務的預處理步驟,例如目標跟蹤與監控、AR應用中的對象插入等。
圖像中像素顏色通常由場景中物體表面的反射特性、光照的光譜以及相機的感光特性三個條件綜合確定。因此對于給定的圖像,直接獲得場景中光照顏色是一個不確定性的問題,即存在多組光照與物體表面可以得到圖像中場景的顏色。現有的光照估計算法分為兩大類:基于統計的方法和基于學習的方法,基于統計的方法主要是通過RGB色彩空間的一些統計信息或物理信息確定場景中的光照。早期的方法假設場景中某些反射統計信息是非彩色的,如white-Patch.假設圖像場景中存在著白色表面,該表面的顏色反映了光照顏色。基于統計方法的優點是計算效率高,且不需要訓練數據,但受假設條件的限制,通用性不強。
基于學習的方法通過學習現有數據建立光照估計模型。如Gamma-Mapping方法,假設給定光照的場景中顏色數量有限,通過學習到的規范色域估計光照,貝葉斯方法將反射率與光照的可變性建模為隨機變量,根據圖像強度信息估計光照的后驗分布的。基于神經網絡的方法也被引入光照估計,神經網絡的輸入包括二值化色度直方圖,輸出為光照的色度值。
近些年深度卷積神經網絡憑借其強大的特征提取與映射能力,廣泛應用于計算機視覺領域。最早利用深度卷積神經網絡學習場景中,彩色像素與光照色度關系由NetColorChecker方法提出,該方法使用整幅圖像作為輸入,通過對現有的分類模型進行微調得到光照估計結果。Oh等人將光照估計問題轉化為光照分類問題,對訓練集圖像按光照顏色聚類,利用卷積神經網絡得到圖像光照所屬簇的概率(以簇為類),根據概率加權求得場景光照。這類對圖像整體進行光照估計的方法受訓練集數量的限制,網絡訓練比較困難,同時也忽略了局部信息。Bianco等人首次采用局部圖像塊作為輸入,構建5層卷積神經網絡得到局部光照估計結果,利用支持向量回歸完成全局估計,該方法中局部圖像塊由圖像網格化分塊獲得,其中不可避免地包含一些色差較小的圖像塊。DS-Net在UV色度空間對圖像塊進行光照估計,選擇網絡對估計網絡的2個估計結果進行選擇,該方法由圖像塊局部到圖像全局估計的方法簡單,使用均值池化、中值池化,這忽略了局部估計結果的置信度。
針對上述問題,本文提出了一種圖像塊采樣方法和光照估計網絡,包括局部光照估計網絡和置信網絡,整體結構如圖1所示。前者預測局部圖像塊的光照值,后者根據局部估計值進行權重置信度評估,獲取全局估計值。引入一種新的圖像塊采樣方法用于光照估計,計算并排序RGB空間內所有顏色像素到平均像素向量的投影距離,其中投影距離較大的部分為亮相素,較小的部分為暗像素,然后在圖像中提取同時包含亮像素與暗像素的圖像塊。
1 圖像塊采集方法
1.1 基于亮暗像素的圖像塊采樣
給定彩色圖像i.其中有N個像素點,表示為向量的集合P(x)={[PRR(x),PGG(x),PRR(x)]|x∈I},其中,x表示像素位置,PR(x)、PG(x)、PB(x)分別表示位置為x像素的RGB值。首先計算所有像素向量的平均向量Lave=[r.g.b],計算方法如公式(1)所示:
接下來計算所有像素向量在平均向量的方向上投影dx,如公式(2)所示:
其中,Ⅱ·Ⅱ代表對向量求L2范數,I(x)·Iave表示點積運算。
由此可以得到投影集合d={dx|x∈I}。dx值越大其對應的像素越亮,反之dx值越小其對應的像素更暗。對集合d從大到小排序,選擇前n%像素點為亮像素,后n%像素點為暗像素。圖2(b)中標定出了亮暗像素位置,其中綠色對應的位置是亮像素,藍色對應的位置是暗像素。
在圖像中色彩測試標板(Macbeth ColorChecker)之外的區域隨機截取大小為h×h的圖像塊,同時要求圖像塊包含至少一個亮像素和至少一個暗像素。對于圖像數據集,不同圖像亮暗像素分布的不同導致可取的圖像塊數量也不同。這里,設采樣圖像塊數量為m.對于無法取到M個圖像塊的圖像,可放寬亮暗像素的標定百分比n%,直至取夠M個圖像塊。圖2(a)為將顏色測試標板用黑色像素遮擋之后的原始圖像。圖2(b)中黑色方框為采樣的若干圖像塊位置,在圖2(a)中的對應位置白色框即為所采樣圖像塊。
1.2 局部光照估計網絡
搭建基于VGG-16的局部光照估計網絡用于圖像塊的光照估計。具體來說,將VGG-16中預測ImageNet類別的1000個節點的全連接層換為包含3個節點的全連接層(編碼RGB通道的連續光照顏色),其余層與VGG-16保持一致,如圖3所示。
1.3 置信度網絡
置信度網絡包括特征融合及決策層部分,如圖1中“置信度網絡”部分所示。由于空間位置不同,不同圖像塊中的光照信息是有差別的,這導致光照估計結果也不同。從局部到全局估計的過程中,為了緩解誤差較大的局部估計帶來的負面影響,本文通過置信度網絡得到圖像塊估計精度的置信度,利用置信度池化方式得到全局估計結果。首先利用局部光照估計網絡獲得同一圖像內M個圖像塊的光照估計結果{e|1≤i≤M}和相應的Fc-6層特征,以串聯的方式融合這些Fc-6層特征,然后將融合的特征輸入兩層全連接層(節點數分別為4096和15),通過softmax函數(歸一化指數函數)得到各個圖像塊的置信度{pi|1≤i≤M},最后利用公式(3)將M個圖像塊的光照估計結果{ei|1≤i≤M}進行置信度池化,得到最終的全局估計結果。
1.4圖像校正
在得到場景中的光照顏色之后,利用該光照顏色對圖像進行校正。常用的校正矯正方法使用von-Kries對角模型實現,如公式(4)所示:
2實驗結果與分析
通過實驗分別對圖像塊采樣方法、置信度網絡進行驗證,在2個常用數據集上給出了光照估計誤差結果與圖像色彩校正結果,并與其它方法進行了比較。
2.1 實驗設置
2.1.1 數據集與預處理
實驗中使用reprocessed ColorChecker和NUS 8-camera 2個常用的基準數據集進行方法驗證和性能評估。reprocessed ColorChecker數據集包含568張圖像,圖4(a)為數據集中的部分圖像;NUS-8圖像數據集包括1736張圖像,由8款相機分別拍攝得到相應的8個圖像子集,每個子集約210張圖像,模型的訓練測試在各子集上獨立進行。
每張圖像內都放置了色彩測試標板,由其中白色區域確定場景真實光照,在訓練時需用黑色像素遮擋顏色測試標板。此外,對輸入圖像進行y=1/2.2的伽馬校正。每張圖像采樣的圖像塊數量M=15.采樣時亮暗像素的比例按照n%確定(其中n按照{3.5.5.10}升序設置),直到在同一圖像中可以取到15個尺寸為224x224的圖像塊。與之前基于學習的方法相同,使用三重交叉驗證進行性能評估。
2.1.2性能評價指標
角度誤差作為廣泛使用的光照估計性能評價指標。假設估計光照為eest,場景中真實光照為eGT,角度誤差g的計算方法如公式(5)所示:
其中,·代表點積Ⅱ·Ⅱ代表L2范數。角度誤差g越小,光照估計精度越高。實驗中以角度誤差的Mean、Median、Trimean、Best-25%、Worst-25%來衡量算法性能。對于ColorChekcer和NUS 8-camera數據集,通常還分別以95-percentile、g.m.(geometric mean)作為性能指標。
2.1.3實驗環境配置
訓練所用電腦工作站CPU為Intel Xeon(R)E5-2620v2@2.1GHz X 15.顯卡為NVIDIA Titan X(Pascal)12g.內存為128g.系統為Ubuntu 14.04LTs.編譯軟件為Python2.7.深度學習框架為Caffe。使用自適應矩估計算法(AdaptiveMoment Estimation.Adam)優化網絡,訓練的初始學習率為0.0001。對于局部光照估計網絡,批尺寸(Barch Size)設置為32;對于置信度網絡,批尺寸設置為16。訓練的最大迭代次數為500個周期(Epoch),每100個周期學習率下降到0.1倍。訓練使用歐式損失作為損失函數,如公式(6)所示:
2.1.4 訓練策略
對于局部光照估計網絡,使用ImageNet上預訓練的VGG-16分類模型,初始化除最后一層全連接層外的其它層,Fc-8層使用零均值、方差為0.005的高斯分布初始化,接著以場景中真實光照為標簽對該網絡進行微調訓練。對于置信度網絡,使用零均值、方差為0.005的高斯分布初始化所有全連接層。利用已訓練好的局部光照估計網絡對應的Fc-6層特征作為置信網絡的輸入,以真實光照為標簽訓練置信度網絡。
2.2 亮暗像素圖像塊采樣的影響
本文在reprocessed ColorChecker數據集上使用局部光照估計網絡,比較了基于亮暗像素的采樣方法和隨機采樣方法。采樣圖像塊數量均為15.大小均為224x224。見表1.基于亮暗像素的采樣方法的各項性能均優于隨機采樣方法。圖4為兩種采樣方法的局部估計結果。圖4(a)為原始圖像,圖4(b)為隨機采樣的圖像塊,圖4(c)為本文所提出的采樣方法。每個圖像塊的角度誤差在其上方提供。
2.3 訓練策略的影響
本文在reprocessed ColorChecker數據集上與不同的訓練策略以及局部到全局估計池化方式進行了對比。見表2中,“ConfNet-A”將局部光照估計網絡與置信度網絡合并到一起進行端到端的訓練,其中的局部光照估計網絡使用在ImageNet上預訓練的VGG-16模型初始化:“ConfNet-B”將局部光照估計網絡與置信度網絡合并進行端到端的訓練,局部光照估計網絡使用在光照估計數據集上微調后的模型初始化,“ConfNet-C”只訓練置信度網絡的全連接層部分,局部光照估計網絡使用在光照估計數據集上微調后的模型初始化,同時固定其權重。
表3為不同訓練策略的定量結果。本文提出的C0nmet—C方法取得了較優的性能,這是由于分階段的訓練策略更有效地利用場景光照作為監督信息。同時,局部光照估計網絡單獨訓練保證了圖像塊的估計精度,在此基礎上置信度網絡才可以顯著改善光照估計性能。
2.4 置信度池化的有效性
在表4中,均值池化和中值池化相比,本文的試驗與DS-Net的結論一致,中值池化的方式更好,這是由于其可以防止異常值對全局估計的影響,但是當局部估計普遍不準確時,中值池化方式很難消除這種影響。置信度網絡對有利于光照估計的圖像塊分配了更多的置信度,這相比于中值池化顯著提升了光照估計的精確度。圖5為圖像塊估計實例,圖5(a)基于亮暗像素的圖像塊位置,圖5(b)中黃色字為圖像塊的光照估計誤差,藍色字為置信度網絡得到的置信度。估計誤差較小的圖像塊置信度明顯較高,而誤差大的圖像塊置信度較低。
2.5 與先進方法的對比
本文在reprocessed ColorChecker和NUS 8-camera數據集上與先進方法進行了對比,見表5、表6(表5.表6中最先進的性能分別用紅色,綠色標出)。在reprocessed ColorChecker數據集上,本文方法在Worst-25%度量指標上取得了最佳性能,在NUS 8-camera數據集上,幾何均值度量指標達到最優,并且還有2項度量指標取得了第二的好性能。圖6為部分圖像矯正結果,在室內室外等大部分情況下本文提出的光照估計方法表現良好:第三行中,由于亮暗像素在空間中相距較遠,導致亮暗像素標定條件寬松,因此難以采樣到適合光照估計的圖像塊。
3結束語
本文提出了基于亮暗像素的圖像塊采樣方法,這種采樣方法有利于深度卷積神經網絡獲取光照信息:此外,提出的置信度網絡比傳統的局部到全局池化方法取得了更好的性能。本文的方法在兩個常用數據集上展現了具有競爭性的性能。對于未來,可行的研究方向是利用圖像全局的語義信息協助評估局部圖像塊的置信度,以進一步改善光照估計性能。