文/錢真真
(北京交通大學(xué)計算機與信息技術(shù)學(xué)院 交通數(shù)據(jù)分析與挖掘北京市重點實驗室 北京市 100044)
隨著計算機技術(shù),尤其是人工智能的崛起,圖像分割、運動物體追蹤等視覺領(lǐng)域得到了十足的發(fā)展。然而,光照及遮擋物的遮擋使得陰影在自然圖像中幾乎是無處不在的,圖像中的陰影對后續(xù)的圖像處理造成了極大的干擾。由于光源的種類、強度、遮擋物體的大小、形狀、透明度以及背景材質(zhì)、反射率參數(shù)等多種因素的影響,圖像中的陰影也隨之變得更加復(fù)雜。如何有效地將圖像中的陰影去除、為后續(xù)的圖像處理提供便利,成為圖像預(yù)處理的重中之重。
圖像陰影去除大都可以分為陰影檢測和陰影去除兩個步驟。陰影檢測是應(yīng)用相應(yīng)的算法對圖像進行處理,確定圖像中的陰影區(qū)域,對陰影區(qū)域與非陰影區(qū)域進行標(biāo)注;陰影去除大多是利用檢測到的陰影,運用相應(yīng)的算法、模型或計算將陰影去除,并盡可能完整地保留陰影區(qū)域原有的信息,使其無限接近于在相同照明條件、相同場景下的無遮擋物的無陰影圖像。
對于相同反射率的區(qū)域,在相同的照明條件下,它們具有相似的紋理和顏色分布,而不同的光照條件,其紋理仍然相似,顏色強度卻會存在很大的差異。這種方法的思路是用區(qū)域的顏色和紋理特征來預(yù)測該區(qū)域是否處于陰影區(qū)域。無論是相鄰還是不相鄰的區(qū)域?qū)?,若它們具有相同的紋理和相同的顏色強度,則它們極有可能處于相同的照明條件下,即它們應(yīng)共享相同的陰影/非陰影標(biāo)簽;若具有相同的紋理和不同的顏色強度,則顏色強度相對較弱的極有可能處于陰影區(qū)域,而顏色強度較強的則處于非陰影區(qū)域。
近年來,深度學(xué)習(xí)得到了巨大發(fā)展,它憑借自身強大、穩(wěn)定的性能而延伸到計算機視覺、自然語言處理等眾多領(lǐng)域,其中,它在計算機視覺領(lǐng)域的突破尤為引人注目。陰影檢測作為計算機視覺領(lǐng)域存在已久的難題,越來越多的人開始嘗試用卷積神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)的方法來解決這個問題。而隨著生成對抗網(wǎng)絡(luò)的提出與發(fā)展,我們發(fā)現(xiàn)它在處理計算機視覺領(lǐng)域的諸多問題上有著其他深度模型無法超越的優(yōu)勢。scGAN[1]、ST-CGAN[7]等生成對抗網(wǎng)絡(luò)模型的提出,使得陰影檢測的精度有了很大程度的提高。
不同的陰影檢測算法檢測出的圖像“陰影”有不同的表示形式,如圖1所示(其中陰影圖像來自SRD數(shù)據(jù)集,“mask”為作者本人標(biāo)注,“matte”圖像為作者本人采用[8]中方法生成)。有的方法得到的陰影圖像是二值圖,即非陰影區(qū)域用黑色表示,陰影區(qū)域用白色表示,這種陰影圖像通常被稱為陰影“mask”;還有一種陰影表示形式中包含很多層次的透明度,這種陰影圖像通常被稱為陰影“matte”。
圖1:陰影圖像及其對應(yīng)的mask與matte示例
若檢測出的是陰影表示為后者,那我們可以根據(jù)公式Is=Sm·Ins[8]來計算出對應(yīng)的無陰影圖像,來達(dá)到陰影去除的目的。其中Is表示含陰影的圖像,Ins表示陰影圖像Is所對應(yīng)的不含陰影的圖像,Sm表示陰影“matte”。也就是說,陰影圖像可以表示為無陰影圖像與陰影“matte”的像素級乘積。
首先,根據(jù)圖片序列分離出前景圖像和背景圖像,其中,圖像陰影屬于前景圖像。之后,檢測出前景圖像和背景圖像的邊緣,將二者進行差分計算得到物體邊緣。同時,通過光照檢測計算出陰影屬性。最后,利用物體的邊緣及陰影屬性,根據(jù)像素的明暗對比規(guī)則恢復(fù)圖像來達(dá)到陰影去除的效果。這種方法多用于連續(xù)圖像中物體陰影的去除,如去除交通監(jiān)控圖像中道路汽車產(chǎn)生的陰影[5]。與其他方法不同的是,這種基于邊緣的陰影去除方法無需預(yù)先檢測出陰影區(qū)域。
當(dāng)不發(fā)光的物體被某一光源照射后,物體對光會出現(xiàn)吸收、反射、折射等一系列現(xiàn)象。我們之所以能看見世間萬物,就是因為我們看到了反射光、折射光等。為了便于理解這些復(fù)雜的物理模型,很多人提出用數(shù)學(xué)模型進行模擬,我們將這些數(shù)學(xué)模型稱之為光照模型(或明暗模型)。定義不同的光照模型[11],通過計算直射光、環(huán)境光、遮擋率、陰影系數(shù)等參數(shù),使無陰影圖像得以恢復(fù)。
與陰影檢測一樣,深度學(xué)習(xí)模型也被更多地應(yīng)用到圖像陰影去除的工作中。卷積神經(jīng)網(wǎng)絡(luò)是深度學(xué)習(xí)的代表算法之一,這種算法的思路是利用卷積層對圖像進行卷積提取特征,并結(jié)合池化層、合適的激活函數(shù)及其他模塊進一步提升圖像處理效果。由于卷積核的參數(shù)共享性,使得卷積神經(jīng)網(wǎng)絡(luò)能夠快速、有效地對圖像中的像素進行學(xué)習(xí),進而提取不同層次的特征,實現(xiàn)陰影去除。
近年來,生成對抗網(wǎng)絡(luò)(Generative Adversarial Nets,GAN)[9]的發(fā)展尤其迅速,它由生成器和判別器兩部分組成,GAN的基本目標(biāo)函數(shù)如下:
圖2:陰影去除的邊界效應(yīng)
如公式(1)所示,生成器需盡可能地生成真實的圖像,來混淆判別器的判斷,而判別器則需盡可能準(zhǔn)確地識別出真實圖像和生成器生成的“假”圖像。GAN就在二者的動態(tài)對抗中優(yōu)化其參數(shù),使得生成器能生成滿足目標(biāo)函數(shù)并且使判別器難以區(qū)分的真實圖像。因此,我們將陰影圖像Is輸入到GAN模型中,經(jīng)過生成器的編碼器、解碼器,能夠生成相應(yīng)的無陰影圖像G,判別器對G以及Is進行判別,并通過最小化相應(yīng)的損失函數(shù)來優(yōu)化模型參數(shù)。
從簡單的深度卷積神經(jīng)網(wǎng)絡(luò)模型[2][7][9]到生成對抗網(wǎng)絡(luò)[8],陰影去除的性能逐步得到提升。
雖然圖像陰影去除是一個被長久關(guān)注的問題,但去除的效果仍存在一些不足。首先目前大多數(shù)的陰影去除會采用特定場景下的自然圖像來訓(xùn)練模型,尤其是生成對抗網(wǎng)絡(luò)模型,這使得訓(xùn)練好的模型在其他場景圖像的測試下的效果與訓(xùn)練效果相差懸殊;其次,對于在采用有監(jiān)督下方式的生成對抗網(wǎng)絡(luò)模型來說,用來進行訓(xùn)練的數(shù)據(jù)集在數(shù)量和內(nèi)容上遠(yuǎn)遠(yuǎn)不能滿足一個深度學(xué)習(xí)模型訓(xùn)練的需要,這使得深度學(xué)習(xí)模型的訓(xùn)練和優(yōu)化受到了很大的限制。最后,由于半影的存在,使得生成的去除陰影后的圖像存在很明顯的邊界效應(yīng),如圖2所示(生成的無陰影圖像為作者本人使用ISTD[7]數(shù)據(jù)集并采用[15]中方法生成),這在很大程度上阻礙了陰影去除效果的提升。
多年來,圖像陰影去除是困擾計算機視覺領(lǐng)域的一個大難題,有眾多的研究學(xué)者關(guān)注了很長時間,積極尋找解決辦法,但是目前大多數(shù)仍處于科學(xué)研究的階段,還沒有與具體的應(yīng)用相結(jié)合。目前,交通、醫(yī)學(xué)等領(lǐng)域越來越需要陰影去除的幫助來更好地完成交通監(jiān)控車輛識別、病歷拍照識別等任務(wù)。因此,圖像的陰影去除不應(yīng)該僅僅停留在研究階段,而應(yīng)該盡快將其落地應(yīng)用到更多的領(lǐng)域中。