趙 亮,張 鴻
(1.武漢科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065;2.武漢科技大學(xué)智能信息處理與實(shí)時工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430065)
隨著互聯(lián)網(wǎng)時代的來臨和信息技術(shù)的發(fā)展,在網(wǎng)絡(luò)中充斥著越來越多的圖像內(nèi)容。但使用者在觀看這些圖像和使用這些圖像進(jìn)行一些相關(guān)工作時,會發(fā)現(xiàn)這些圖像的質(zhì)量良莠不齊,而復(fù)雜、多樣的光照條件是影響這些圖像質(zhì)量的重要因素。本文將注意力放在設(shè)計(jì)一種方法,能以較好的效果,較高的魯棒性解決一些常存在的光照相關(guān)問題,亦即對圖像進(jìn)行光照補(bǔ)償。通過光照補(bǔ)償,本身光照條件不佳而過暗、過曝,或反光、具有陰影的圖像,能獲得一個較為均衡的光照條件,從而顯示出更多的細(xì)節(jié),或使圖像觀感更佳。另外,在人工智能領(lǐng)域,進(jìn)行人臉識別、圖像分類等工作時,往往也對光照有較高的要求,此時對圖像進(jìn)行光照補(bǔ)償?shù)念A(yù)處理能極大提高這些智能識別工作的效率。
本文提出了一種基于循環(huán)生成對抗網(wǎng)絡(luò)的光照補(bǔ)償方法。該方法使用類似風(fēng)格遷移的思路,以分別處在正常光照和復(fù)雜光照下的同類事物或場景的圖像作為對抗訓(xùn)練集訓(xùn)練CycleGAN,以解決光照問題。在此基礎(chǔ)上,由于用于風(fēng)格遷移的CycleGAN所使用的Instance Normalization(IN)在處理光照問題時效果不佳,將其替換成了能夠自我訓(xùn)練參數(shù)的Switchable Normalization,得到了更好的效果。這種方法只要數(shù)據(jù)集的數(shù)據(jù)足夠豐富,就能很好平衡各種光照條件下的圖像光照,相較傳統(tǒng)方法具有更高的魯棒性。
生成式對抗網(wǎng)絡(luò)(generative adversarial networks,GANs)是由Goodfellow提出的一種采用對抗的思路來生成數(shù)據(jù)的網(wǎng)絡(luò)模型[1],其優(yōu)點(diǎn)在于先驗(yàn)假設(shè)少、模型設(shè)計(jì)簡單、無監(jiān)督。Radford等[2]提出的深度卷積生成網(wǎng)絡(luò)(DCGAN)將卷積神經(jīng)網(wǎng)絡(luò)(CNN)引入到了生成模型和判別模型當(dāng)中,大幅提升了生成性能。Arjovsky等[3]利用Wasserstein距離代替JS散度提出了Wasserstein GAN,這種模型緩解了梯度消失的問題,也大幅提升了訓(xùn)練穩(wěn)定性。Mirza等[4]提出的條件GAN(conditional GAN, CGAN)為生成器添加了約束條件,使得GAN能有目標(biāo)的學(xué)習(xí),根據(jù)提供的類別標(biāo)簽來生成圖像數(shù)據(jù)。Isola等[5]提出了pixtopix模型,該模型利用生成目標(biāo)和條件輸入之間的對抗來優(yōu)化損失函數(shù),增加條件約束,能夠?qū)嶒?yàn)逼真的圖像風(fēng)格遷移。Goodfellow等提出了條件生成對抗網(wǎng)絡(luò)(Defense-GAN),能在原始GAN的基礎(chǔ)上引入條件判定,對生成的圖像進(jìn)行約束[6]。Zhu等[7]提出了循環(huán)生成對抗網(wǎng)絡(luò)(CycleGAN),作為一種常規(guī)GAN的變形,能夠在不使用成對圖片的前提下,有效完成圖到圖的轉(zhuǎn)化與生成。
生成式對抗網(wǎng)絡(luò)的基本網(wǎng)絡(luò)流程如圖1所示。
圖1 GAN的網(wǎng)絡(luò)流程
G表示生成器,用于生成所需圖片;D代表的判別器,用于判斷圖片的真實(shí)性,以此來評估生成器的性能。生成器G、判別器D之間存在的對抗關(guān)系,可以用下式表示
(1)
式中:真實(shí)數(shù)據(jù)用Pdata(x) 表示,隨機(jī)噪聲用Pz(z) 表示,用于為生成器模擬真實(shí)數(shù)據(jù)中的擾動; D(x) 表示其經(jīng)由判別器判斷,認(rèn)為是真實(shí)樣本的概率; G(z) 表示由隨機(jī)噪聲經(jīng)由生成器生成的樣本, D(G(z)) 表示該樣本經(jīng)由判別其判斷,認(rèn)為是真實(shí)樣本的概率。
在GAN的訓(xùn)練過程中,生成器需要使生成樣本更接近真實(shí)樣本,也即要令D(G(z)) 接近1;判別器與之相對,要能判斷出真實(shí)樣本和生成樣本的真實(shí)性,也就是使D(x) 接近1,而D(G(z)) 更接近0。通過這樣一個對抗的過程,生成器和判別器的性能在該過程中交替提升,最終就能利用生成器生成近似于真實(shí)樣本的圖片。
循環(huán)生成對抗網(wǎng)絡(luò)(CycleGAN)是由Zhu等[7]提出的一種常規(guī)GAN的變形。
相比基礎(chǔ)GAN網(wǎng)絡(luò),CycleGAN是由兩個鏡像的GAN網(wǎng)絡(luò)構(gòu)成一個環(huán)形網(wǎng)絡(luò),其中每一個單向的GAN網(wǎng)絡(luò)都有2個生成器與1個判別器。這樣的結(jié)構(gòu),使得其訓(xùn)練不依賴成對的圖像,從而在應(yīng)用上有更好的適應(yīng)性。
CycleGAN中,其中一個單向GAN的判別器loss和生成器loss分別由以下式(2)與式(3)表示
LGAN(GXY,DY,X,Y)=Εy~Y[logDY(y)]+
Εx~X[log(1-DY(GXY(x)))]
(2)
(3)
其中,X與Y分別表示要進(jìn)行轉(zhuǎn)換的兩個類中的真實(shí)輸入, G(XY) 與G(YX) 分別表示兩個生成器; D(Y) 表示該單向網(wǎng)絡(luò)的判別器。
完整的CycleGAN網(wǎng)絡(luò)由兩個上述的單向網(wǎng)絡(luò)以圖2的方式組成,它們共用2個生成器,各自有1個判別器。
圖2 CycleGAN單向網(wǎng)絡(luò)組合方式
如圖2所示,G、 F分別是由X類真實(shí)樣本轉(zhuǎn)換成Y類樣本和由Y類真實(shí)樣本轉(zhuǎn)換成X類樣本的生成器,在生成樣本之后,分別通過D(X) 和D(Y) 對生成的樣本的真實(shí)性進(jìn)行判斷,通過這個過程訓(xùn)練判別器,并將判斷結(jié)果反饋到生成器對生成器進(jìn)行進(jìn)一步的訓(xùn)練。
傳統(tǒng)的光照補(bǔ)償方法,例如retinex算法或直方圖均衡法,通常是根據(jù)圖像的某種特性,使用固定的方法處理圖像。這些方法在其適合的特定情況下,能發(fā)揮較好的效果;但在實(shí)際應(yīng)用中,圖像的特征往往是復(fù)雜、多樣化的,這些算法適用情況單一、魯棒性差的缺點(diǎn)就會暴露出來。
本文通過建立一個特定結(jié)構(gòu)的改進(jìn)CycleGAN網(wǎng)絡(luò)來解決復(fù)雜光照下的光照補(bǔ)償問題。
原理上,本方法參照利用CycleGAN進(jìn)行風(fēng)格遷移的思路,將光照情況作為一種特殊的風(fēng)格進(jìn)行光照情況的遷移,從而達(dá)到將復(fù)雜光照圖像轉(zhuǎn)化為正常光照圖像的效果。
這種方法的原理參考了CycleGAN的一些特性,在 CycleGAN 中,整個網(wǎng)絡(luò)的損失可以總結(jié)為下式
L(G,F,DX,DY)=ΕX~Pdata(X)[(1-DY(G(x)))2]+
ΕY~Pdata(y)[(DY(y)-1)2]+ΕX~Pdata(X)[(DX(X)-1)2]+
ΕY~Pdata(y)[(1-DX(F(y)))2]+
(4)
式中:G代表通過正常光照圖像生成復(fù)雜光照圖像的生成器,F(xiàn)表示通過復(fù)雜光照圖像生成正常光照圖像的生成器,DX、DY分別表示復(fù)雜光照圖像判別器和正常光照圖像的判別器,整個函數(shù)的目的是令整個循環(huán)網(wǎng)絡(luò)的損失最小化。根據(jù)該loss函數(shù)進(jìn)行訓(xùn)練,就能有效優(yōu)化CycleGAN的網(wǎng)絡(luò)參數(shù),從而使生成的正常光照圖像或復(fù)雜光照圖像與真實(shí)的圖像越來越接近,最終達(dá)到通過真實(shí)的復(fù)雜光照圖像生成最大程度接近真實(shí)的正常光照圖像的目的。
本文方法實(shí)現(xiàn)光照補(bǔ)償?shù)木唧w算法流程如圖3所示。
圖3 基于循環(huán)生成對抗網(wǎng)絡(luò)的光照補(bǔ)償方法流程
其中一個單向網(wǎng)絡(luò)的訓(xùn)練流程如下:
(1)將真實(shí)的正常光照圖像輸入網(wǎng)絡(luò),首先用于訓(xùn)練判別器;
(2)經(jīng)過用于生成復(fù)雜光照圖像的生成器,將其轉(zhuǎn)換為復(fù)雜光照圖像;將生成的圖像送入判別器,并將判斷結(jié)果反饋至生成器中,以訓(xùn)練生成器生成圖像的真實(shí)性,使得復(fù)雜光照圖像生成器生成的圖像向真實(shí)的復(fù)雜光照圖像一步步靠近;
(3)將生成的圖像送入正常光照圖像的生成器,生成正常光照的驗(yàn)證圖像,反過來影響另一個生成器的相關(guān)參數(shù)。
以上是其中一個單向網(wǎng)絡(luò)的運(yùn)行邏輯,將這個過程逆轉(zhuǎn),輸入復(fù)雜光照圖像,并通過另一個單向網(wǎng)絡(luò)進(jìn)行類似的操作,并使兩個單向網(wǎng)絡(luò)的訓(xùn)練循環(huán)交替進(jìn)行,就能形成一個完整的閉環(huán)生成網(wǎng)絡(luò),并不斷訓(xùn)練網(wǎng)絡(luò)中的兩個生成器與兩個判別器,達(dá)到使網(wǎng)絡(luò)生成的圖像“以假亂真”的效果。
在訓(xùn)練中,最終會得到兩個生成器模型:將正常光照圖像轉(zhuǎn)換為復(fù)雜光照圖像的模型和將復(fù)雜光照圖像轉(zhuǎn)換為正常光照圖像的模型。實(shí)際上,在使用時只需如圖3左部所示,提取將復(fù)雜光照圖像轉(zhuǎn)換為正常光照圖像的模型,并將復(fù)雜光照圖像使用該模型進(jìn)行光照的轉(zhuǎn)換,就能將復(fù)雜光照圖像中的光照均勻化,得到相應(yīng)的正常光照圖像。
在本文中使用的生成器結(jié)構(gòu)如圖4所示。
圖4 生成器結(jié)構(gòu)
如圖4所示,圖像輸入格式為256×256的三通道彩色圖像。輸入的圖像先被送入3層卷積層進(jìn)行提取特征,在特征提取完畢后,會經(jīng)由一個包含11層的殘差塊來進(jìn)行轉(zhuǎn)換操作,以保證在風(fēng)格轉(zhuǎn)換的過程中不會對其它的特征產(chǎn)生影響。在此之后,轉(zhuǎn)換后的特征被送入兩層反向卷積層,以將高維特征重新復(fù)原成低級特征;最后,將獲得的特征送入一層卷積層以生成新圖像。
對于生成器而言,其損失可表示為式(5)
(5)
式中:G、F表示兩個生成器,x、y分別表示兩個生成器的輸入,即待轉(zhuǎn)換的正常光照/復(fù)雜光照圖像矩陣,Lcyc表示兩個生成器的循環(huán)損失,該值越小,則表示生成器輸入與輸出越相似。
與生成器相比,判別器的結(jié)構(gòu)更為簡潔。圖5是本文所使用的判別器結(jié)構(gòu)。
圖5 判別器結(jié)構(gòu)
判別過程中,將256×256的圖像輸入4層卷積層進(jìn)行特征提取,然后用一個卷積層進(jìn)行判斷。判別器的損失函數(shù)與生成器有所不同,兩個判別器的誤差需要分開計(jì)算。為了判別器訓(xùn)練的穩(wěn)定性,這里選擇了均方誤差作為損失函數(shù),則其中一個判別器的誤差可以表示為式(6)
LLSGAN=ΕX~Pdata(X)[(1-DY(G(x)))2]+
ΕY~Pdata(y)[(DY(y)-1)2]
(6)
式中:DY表示用于判別正常光照圖像真假的判別器, G(x) 是由生成正常光照圖像的生成器生成的圖像,y表示真實(shí)的正常光照圖像,LLSGAN表示該判別器的均方誤差,該值越小,則表示判別器分辨真實(shí)圖像與生成圖像的能力越強(qiáng)。
在整個網(wǎng)絡(luò)中綜合計(jì)算生成器、判別器的誤差,就可以得到全局損失函數(shù),即前文式(4),從而有效優(yōu)化整個網(wǎng)絡(luò)的參數(shù)。
此外,所有卷積層的激活函數(shù)選用Relu函數(shù)以更好擬合圖像特征,防止梯度消失;優(yōu)化器選用Adam優(yōu)化器,以提高訓(xùn)練效率,獲得更好的訓(xùn)練效果。
歸一化是在神經(jīng)網(wǎng)絡(luò)的各層中,為了降低分布變化的影響,在進(jìn)行實(shí)際操作之前就把數(shù)據(jù)分布根據(jù)特定規(guī)則映射到一個確定的區(qū)間的策略。簡單的說,歸一化就是要把原始數(shù)據(jù)通過某種方法處理后,限制在一定范圍內(nèi),以減少神經(jīng)網(wǎng)絡(luò)的運(yùn)算量,加速神經(jīng)網(wǎng)絡(luò)收斂,是神經(jīng)網(wǎng)絡(luò)中常用的一種結(jié)構(gòu)。
在神經(jīng)網(wǎng)絡(luò)中,比較常用的歸一化方式有Batch Normalization(BN)[8]、Instance Normalization(IN)[9]、Layer Normalization(LN)[10],Group Normalization(GN)[11]等。
由于在CycleGAN中,Batch size一般較小甚至為1,Batch Normalization效果欠佳,因此在進(jìn)行風(fēng)格遷移等工作時,常常使用Instance Normalization來進(jìn)行歸一化的工作。但在本文的光照補(bǔ)償工作中,發(fā)現(xiàn)IN的效果并不理想。由于IN過于注意圖像的獨(dú)立特征,保持圖像的獨(dú)立性,很多時候會把一些非光照的圖像特性也進(jìn)行遷移,對圖像本身的一些細(xì)節(jié)造成破壞,進(jìn)而影響光照補(bǔ)償?shù)淖罱K效果。
因此,本文考慮采用適用性更強(qiáng)的Switchable Normalizaton來解決這個問題。Switchable Normalizaton是一種能夠通過可微分學(xué)習(xí)自行學(xué)習(xí)歸一化相關(guān)參數(shù)的歸一化方式,它統(tǒng)一了現(xiàn)有的IN、BN、LN等歸一化方式的各個維度,并在訓(xùn)練的同時優(yōu)化自身相對不同歸一化方式的權(quán)重系數(shù),使自身結(jié)構(gòu)靠近效果最佳的歸一化方式。
在SN的歸一化過程中,同時計(jì)算了BN,LN,IN這3種歸一化方式的統(tǒng)計(jì)量,然后引入6個分別與均值和方差對應(yīng)的權(quán)值參數(shù)計(jì)算加權(quán)的均值和加權(quán)的方差作為SN的均值和方差,并對加權(quán)系數(shù)使用SOFTMAX來進(jìn)行歸一化。SN的計(jì)算方式如式(7)所示
(7)
式中:與其它標(biāo)準(zhǔn)化方式類似的,γ與β分別代表縮放系數(shù)和偏移系數(shù);Ω是一個包含BN、IN、LN的集合;μ和σ2分別表示均值和方差;wk和w′k分別是相應(yīng)統(tǒng)計(jì)量對應(yīng)的權(quán)重系數(shù)。
圖6體現(xiàn)了引入SN后的卷積層結(jié)構(gòu)。
圖6 引入SN后的卷積層結(jié)構(gòu)
如圖6所示,隨著卷積層的訓(xùn)練,SN部分也在隨之優(yōu)化自己的權(quán)重系數(shù),使自己更加接近最適合的歸一化方式。這樣,每一層可以以各不相同的歸一化方式適應(yīng)其需求,從而在訓(xùn)練中獲得更好的效果。通過使用SN來進(jìn)行歸一化,生成對抗網(wǎng)絡(luò)能更好地捕捉到所需求的光照特征,并加快其收斂速度;另一方面,使用SN來進(jìn)行歸一化也省去了對歸一化步驟的參數(shù)設(shè)定工作,能提高網(wǎng)絡(luò)的工作效率。
本文所使用的數(shù)據(jù)集是針對本文實(shí)驗(yàn),從真實(shí)航運(yùn)過程中收集的關(guān)于船舶的正常光照-復(fù)雜光照對抗數(shù)據(jù)集。該數(shù)據(jù)集包含兩類,即正常光照分類與復(fù)雜光照分類,每類有2000張各不相同的圖像,皆是從不同船舶的航行監(jiān)控視頻中截取的單幀,且統(tǒng)一為256×256的三通道彩色圖像。其中,正常光照分類中的圖像是在一般情況下的船舶主體圖像,保證圖像中無模糊、不反光、不過暗,且包含棚架船、蓋雨布的船、未蓋雨布的船等多種船型。復(fù)雜光照類中的圖像是相似船只、相似角度,在光照不正常的情況下的航行圖像,其中,光照不正常的類型包括:船只雨布反光、水面反光嚴(yán)重;整體背景較暗,船只細(xì)節(jié)不清晰;光線條件不佳,船只顏色失真等。
在本實(shí)驗(yàn)中,網(wǎng)絡(luò)里的各種參數(shù)比較繁瑣,這里取一些比較重要的參數(shù)以供參考:
網(wǎng)絡(luò)輸入格式為256×256×3,對應(yīng)本文數(shù)據(jù)集所使用圖像的分辨率;誤差使用的是均方誤差;batchsize限于網(wǎng)絡(luò)需求和機(jī)器性能限制,設(shè)定為1;學(xué)習(xí)率為0.0002;優(yōu)化器采用Adam優(yōu)化器,其動量項(xiàng)為0.5;激活函數(shù)采用Relu函數(shù);第一個卷積層中的gen過濾器數(shù)為64個。
為了評價光照補(bǔ)償效果的好壞,應(yīng)當(dāng)引入一定的評價指標(biāo)來進(jìn)行比較。由于單純通過主觀判斷或者客觀數(shù)據(jù)去評價光照補(bǔ)償?shù)男Ч紩惺H,所以本文將同時從這兩個角度出發(fā),來評判實(shí)驗(yàn)效果,具體評價方式如下:
在主觀判斷的層面,主要通過對比原圖和通過不同光照補(bǔ)償算法處理后的圖像來進(jìn)行,從清晰度、失真情況、可視細(xì)節(jié)、光照均勻程度等方面,全面評價每種光照補(bǔ)償方式的優(yōu)劣。
在客觀數(shù)據(jù)的層面,通過計(jì)算不同圖像的亮度、對比度等數(shù)據(jù)來判斷對光照的處理情況;通過計(jì)算原圖與補(bǔ)償后圖像的峰值信噪比數(shù)據(jù)、均方誤差,來判斷光照補(bǔ)償方法對原圖特征的保留情況。其中,亮度取圖像像素的均值;對比度取圖像各像素的標(biāo)準(zhǔn)差,峰值信噪比由式(8)計(jì)算
(8)
式中:I、K分別表示原圖像和光照補(bǔ)償后的圖像,m、n是圖像的長、寬,MAXI表示圖像點(diǎn)顏色的最大數(shù)值。該數(shù)值用于體現(xiàn)補(bǔ)償后圖像與原圖像相比的失真程度,該值越高說明失真程度越低。
除此之外,為了保證評價指標(biāo)的準(zhǔn)確性,測試用圖像將分別選取過暗圖像和反光圖像這兩種特征差異較大的復(fù)雜光照圖像,以更全面的分析各種光照補(bǔ)償方法在不同情況下的可靠性,和面對復(fù)雜光照的魯棒性。以及,為了進(jìn)一步說明本文算法的應(yīng)用價值,還展示了一組實(shí)際情況下使用本文算法進(jìn)行光照補(bǔ)償?shù)男Ч麍D。此外,為了比較實(shí)驗(yàn)中使用的標(biāo)準(zhǔn)化方式SN相對于IN的效果,還將對訓(xùn)練過程中兩種標(biāo)準(zhǔn)化方式的loss變化趨勢進(jìn)行可視化比較。
為了驗(yàn)證本文中光照補(bǔ)償方法的可行性和優(yōu)越性,選取一些傳統(tǒng)的光照補(bǔ)償方法來進(jìn)行對比實(shí)驗(yàn),這些方法包括:Retinex[12]算法、MSRCP(彩色恢復(fù)多尺度Retinex)[13]算法、Gamma矯正法[14]。同時,為了體現(xiàn)本文所使用的改進(jìn)的歸一化方法的有效性,將傳統(tǒng)的使用IN的CycleGAN也加入了對比實(shí)驗(yàn)的范圍,以更加全面對比各種方法的優(yōu)劣。
圖7是一組過暗的圖像和其經(jīng)過各種算法處理后得到的光照補(bǔ)償后圖像的對比效果。
圖7 過暗圖像光照補(bǔ)償效果對比
圖7可以直觀比較各種光照補(bǔ)償方法在對較暗圖像進(jìn)行光照補(bǔ)償時的效果??梢钥闯?,Retinex算法雖然提高了圖像的亮度,但也使得整張圖像偏灰,效果不佳;MSRCP算法相較Retinex而言有一個色彩恢復(fù)的過程,因而不會偏灰,但相比原圖又過于明亮,還原度不佳。Gamma 矯正法取Gamma值為1.5,在圖中前兩張圖像里效果較佳,但在最后一張圖像中,同時也加強(qiáng)了水面反射的強(qiáng)度,與實(shí)驗(yàn)的目的不符;并且,Gamma矯正需要手動針對圖像調(diào)整Gamma值,不適合作為一種普適性的方法使用。使用IN歸一化方式的CycleGAN雖然對光照進(jìn)行了一定程度的補(bǔ)償,但在圖像一些邊角位置,如船的雨布邊緣、陰影處出現(xiàn)了不同程度的失真、模糊。本文所使用方法既保留了圖像的原始細(xì)節(jié),也一定程度上加強(qiáng)了光照,并且平衡了水面的反射與船體之間的亮度,效果最佳。
表1以圖7中的第一行圖像為例,體現(xiàn)了在過暗圖像光照補(bǔ)償中各算法的一些相關(guān)指標(biāo)。在處理前,原圖的亮度偏低,而對比度偏高,這體現(xiàn)了原圖船體背光而顯得過暗的特點(diǎn)。Retinex算法處理過的圖像雖然亮度大大提升,但對比度降低,PSNR值也較低,說明圖像與原圖差距較大;MSRCP算法處理的圖像同樣亮度過高,而且對比度接近原圖,PSNR值較低,說明對于光照的平衡沒有做好,丟失了原圖的一些特征。Gamma校正法處理過的圖像對比度也較高,因?yàn)镚amma矯正對于亮度的增強(qiáng)是針對整張圖像的,同時也提高了沒有背光處如水面等位置的亮度。使用IN進(jìn)行歸一化的CycleGAN對于亮度的增強(qiáng)幅度不夠,圖像偏灰偏暗。相較而言,本文方法提高了亮度、降低了對比度,說明該方法真正對光照進(jìn)行了平衡,針對性的提高了背光偏暗部分的光照;同時較高的PSNR說明本圖保留了更多原圖中的特征,沒有出現(xiàn)嚴(yán)重失真的情況。
表1 不同算法對過暗圖像光照補(bǔ)償效果比較
圖8是一組有較嚴(yán)重反光的圖像在各種算法處理后的效果對比。如圖8所示,在處理有反光的圖像時,大部分光照補(bǔ)償算法的效果不佳。Retinex算法會使整張圖像偏灰,而且對于反光幾乎沒有影響;MSRCP算法反而使反光相對于背景更加刺眼,而且改變了圖像的風(fēng)格,使圖像與原圖相距甚遠(yuǎn)。Gamma算法這里取Gamma值為0.8進(jìn)行處理,但即使根據(jù)圖像特性選取了適合的Gamma值,圖像雖然一定程度上減輕了反光,卻也使其整體過暗,與原圖差異明顯。使用IN歸一化的原始CycleGAN對這些圖進(jìn)行處理的結(jié)果,則將雨布的顏色作為光照的一部分進(jìn)行了遷移,致使雨布部分大面積失真。本文方法則較好地減弱了反光,且并未對原圖其它部分造成較大影響,視覺效果較為柔和,也能夠看清雨布、棚架的紋理。
類似的,表2展示了圖8中第一列反光圖像的各項(xiàng)相關(guān)指標(biāo)。相對于原圖,Retinex算法和MSRCP算法的亮度都大幅提升,區(qū)別在于Retinex算法對比度過小,說明圖像細(xì)節(jié)不夠清晰;MSRCP算法對比度又過高,說明反光處與其它部分顏色反差較大,沒有起到預(yù)想中的減弱反光的效果。Gamma矯正法亮度過低,破壞了圖中原本較暗處的細(xì)節(jié);原始的CycleGAN對比度也較低,這可能也是由于雨布顏色發(fā)生較大變化的緣故。本文算法相對原圖亮度略微提升,對比度略微降低,PSNR值最高,說明光照處理的效果較佳,且對原圖保留了更多細(xì)節(jié)。
圖9利用同一條船從早晨9∶30開始、下午17∶30結(jié)束的5張不同時間下、光照各有特點(diǎn)的圖像,體現(xiàn)了本文方法在光照處理上的魯棒性,展示了本文方法在實(shí)際使用情況下的效果。
可以看出,本文算法在實(shí)際使用中,對在不同時刻、不同光照的5張圖像處理之后,使其光照統(tǒng)一化,并且沒有破壞圖像本身的細(xì)節(jié)。處理之后的圖像相對于原圖,可見度上升、陰影面積減小,過強(qiáng)的光源被削弱,可以很輕易看出是同一條船。這說明本文算法能顯著減弱光照造成的負(fù)面影響,對復(fù)雜光照圖像做出有效的光照補(bǔ)償,從而使其適應(yīng)深度學(xué)習(xí)或其它任務(wù)的需求。
圖8 反光圖像光照補(bǔ)償效果對比
表2 不同算法對反光圖像光照補(bǔ)償效果比較
圖9 本文算法實(shí)際應(yīng)用效果對照
圖10將通過網(wǎng)絡(luò)模型訓(xùn)練過程中循環(huán)誤差值loss的變化趨勢來比較SN和IN在訓(xùn)練中對于模型訓(xùn)練速度、訓(xùn)練精度等訓(xùn)練性能指標(biāo)造成的影響。
圖10 模型訓(xùn)練收斂速度對比
如圖10所示,在同樣60 000余步的訓(xùn)練過程中,本文提出的使用SN作為歸一化方式的網(wǎng)絡(luò)比原始的以IN為歸一化方式的網(wǎng)絡(luò)收斂速度更快、最終誤差更小、震蕩幅度更平穩(wěn)。這說明,使用SN作為歸一化方式在用CycleGAN進(jìn)行光照補(bǔ)償?shù)倪^程中,能降低訓(xùn)練時間、提高最終模型的效果,是比IN更為優(yōu)秀的選擇。
本文提出了一種基于經(jīng)過優(yōu)化的CycleGAN的光照補(bǔ)償方法,通過一個以SN為歸一化方式替換原本IN歸一化方式的CycleGAN網(wǎng)絡(luò),對光照條件不佳的圖像進(jìn)行光照補(bǔ)償使其光照均衡。本文方法通過復(fù)雜光照、正常光照兩個數(shù)據(jù)集的對抗訓(xùn)練,實(shí)現(xiàn)了將光照作為一種風(fēng)格進(jìn)行遷移的效果,也通過更換歸一化方式解決了原本CycleGAN存在的容易把非光照因素一并進(jìn)行遷移的問題。本文通過實(shí)驗(yàn)中的圖像對比和亮度、對比度、峰值信噪比的比較證明,本文使用方法在過暗圖像和強(qiáng)反光圖像上的光照補(bǔ)償效果均高于傳統(tǒng)算法如Retinex算法、Gamma校正法等,也大幅優(yōu)于原本的CycleGAN算法,訓(xùn)練速度快于該方法。由于本文方法暫時還只能應(yīng)用于事件、事物類似的數(shù)據(jù)集,下一步的工作是將該方法泛化,使其針對大部分常見場景都能進(jìn)行效果較好的光照補(bǔ)償。