楊繼明, 丁世宏
(江蘇大學(xué)電氣信息工程學(xué)院, 江蘇 鎮(zhèn)江 212013)
實(shí)現(xiàn)自動(dòng)化操作是集裝箱碼頭建設(shè)的發(fā)展趨勢(shì), 這一自動(dòng)化發(fā)展離不開圖像處理和識(shí)別技術(shù).碼頭的地理位置特殊,雨雪天氣尤為常見,惡劣的天氣常常會(huì)遮擋圖像的重要目標(biāo)特征,干擾圖像識(shí)別或分類.對(duì)此, Barnum等[1]提出基于頻率分析的圖像除雨雪痕跡算法,可對(duì)視頻圖像進(jìn)行實(shí)時(shí)處理,但去除效果并不理想; Wang等[2]提出基于導(dǎo)向?yàn)V波的圖像除雨雪痕跡算法; Huang等[3]提出基于自適應(yīng)的算法用于圖像去噪; Fu等[4]針對(duì)除雨跡算法提出了基于深度卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)的構(gòu)架,但去除效果和圖像細(xì)節(jié)上仍有待改進(jìn).
生成對(duì)抗網(wǎng)絡(luò)(generative adversarial networks, GANs)是當(dāng)下深度學(xué)習(xí)領(lǐng)域的重要研究方向.GANs由生成式模型(generator)和判別式模型(discriminator)兩部分組成,通常使用判別器(discriminator)引導(dǎo)生成器不斷訓(xùn)練,直到判別器無法分辨出數(shù)據(jù)來自生成器還是訓(xùn)練集樣本.GANs訓(xùn)練的過程本質(zhì)上是生成器和判別器通過相互競(jìng)爭(zhēng)和學(xué)習(xí)實(shí)現(xiàn)兩者共同提升的過程.許多學(xué)者基于GANs提出的衍生網(wǎng)絡(luò)結(jié)構(gòu)也極大地豐富了GANs體系:Du等[5]基于深度卷積神經(jīng)網(wǎng)絡(luò),將有監(jiān)督學(xué)習(xí)的CNN與無監(jiān)督學(xué)習(xí)的GANs相結(jié)合;Deng[6]基于GANs提出的圖像超分辨率技術(shù)能滿足由低分辨率圖像生成高分辨率圖像的需求.GANs雖然在理論上能夠訓(xùn)練任何一種生成器模型,但實(shí)際上難度較大,而且由于沒有預(yù)先建模,整個(gè)模型的自由度過高,當(dāng)圖像較大、像素較多時(shí)生成的結(jié)果可控性會(huì)降低.條件生成式對(duì)抗網(wǎng)絡(luò)(conditional generative adversarial nets, CGAN)[7]在一定程度上解決了該問題,CGAN在訓(xùn)練的同時(shí)加入標(biāo)簽作為限制手段,在訓(xùn)練過程中給網(wǎng)絡(luò)提供更多的信息,指導(dǎo)網(wǎng)絡(luò)的訓(xùn)練過程,可以生成高質(zhì)量、細(xì)節(jié)清晰的圖像.去除圖像雨雪痕跡的難點(diǎn)在于去除的同時(shí)要保證圖像色彩不發(fā)生偏差.對(duì)此,本文擬以CGAN為網(wǎng)絡(luò)框架,應(yīng)用改進(jìn)的感知損失函數(shù)算法,去除碼頭集裝箱圖像中的雨雪痕跡.
CGAN的訓(xùn)練方式采用交替迭代訓(xùn)練.首先訓(xùn)練判別器模型,然后訓(xùn)練生成器模型,最后使兩者達(dá)到動(dòng)態(tài)平衡.當(dāng)生成器生成的圖片通過判別器判別的結(jié)果接近0.5時(shí),即判別器無法判斷圖片來自生成器還是原始數(shù)據(jù)集時(shí),表明訓(xùn)練(納什平衡)完成.
圖1 生成器網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of generator network
圖2 判別器網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Structure of discriminator network
本文將輸入的圖像轉(zhuǎn)入特定的域中并分成雨雪痕跡和圖像本體兩部分, 然后將圖像本體從新域返回到原始域中, 故需要對(duì)稱的生成器網(wǎng)絡(luò)結(jié)構(gòu).本文設(shè)計(jì)的生成器結(jié)構(gòu)如圖1所示, 卷積層使用了批標(biāo)準(zhǔn)化(batch normalization, BN)和PReLU激活函數(shù),相比于ReLU函數(shù), PReLU函數(shù)收斂速度更快,在網(wǎng)絡(luò)中表現(xiàn)更好;卷積層后設(shè)置若干轉(zhuǎn)置卷積層, 并使用跳躍連接(skip connection, ⊕)[8]的方式使整個(gè)網(wǎng)絡(luò)易于收斂和訓(xùn)練; 最后設(shè)置Tanh函數(shù).生成器的參數(shù)設(shè)置為通道數(shù)M, 步長(zhǎng)為1.為保證卷積后的圖像大小不變, 可以適當(dāng)?shù)赜?填充缺少的像素以保持特征圖的尺寸.判別網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2所示, 首先使用帶有PReLU函數(shù)的卷積層, 通道數(shù)為N; 再設(shè)置一組采用批標(biāo)準(zhǔn)化函數(shù)的卷積層, 以及一系列使用批標(biāo)準(zhǔn)化和PReLU函數(shù)的卷積層; 然后設(shè)置一組單通道的卷積層; 最后使用Sigmoid函數(shù)輸出判別結(jié)果.
本試驗(yàn)的測(cè)試平臺(tái)是Ubuntu16.04 LTS, Tensorflow1.4.0, Anaconda3-4.2.0, Python3.5版本.在碼頭現(xiàn)場(chǎng)采集800張晴天條件下的圖像, 統(tǒng)一裁剪為256×256像素后, 使用Photoshop軟件批量加入多樣性的雨線、雪痕等極端天氣特征, 因此每張含有雨線或雪痕的圖像都有對(duì)應(yīng)的正確標(biāo)注圖像.將600張?zhí)幚砗蟮膱D像用作訓(xùn)練集,另外200張用作測(cè)試集.設(shè)置訓(xùn)練批尺寸為5,迭代次數(shù)為20萬次,學(xué)習(xí)率為10-3.設(shè)置損失函數(shù)中參數(shù)x1=x2=1,x3=0.005.生成器和判別器模型的通道數(shù)分別設(shè)為M=64和N=48.生成器中的過濾器大小為3×3, 步長(zhǎng)為1,填充值設(shè)為1;判別器中的過濾器大小為4×4,步長(zhǎng)為2,填充值設(shè)為1,其中填充是指用“0”適當(dāng)填充缺少的像素以保持特征圖的尺寸.迭代訓(xùn)練時(shí),先固定生成器的結(jié)果為0, 訓(xùn)練判別器; 然后,固定判別器再訓(xùn)練生成器,完成一個(gè)迭代周期的訓(xùn)練.重復(fù)上述迭代過程,以期達(dá)到生成器和判別器的均衡.
圖3展示了基于CGAN算法過程中捕捉到的雨線和雪痕特征.如圖3所示,本算法對(duì)雨線和雪痕的特征捕捉較精確,因此能夠?qū)D像進(jìn)行有效處理.同時(shí), CGAN算法具有良好的適應(yīng)性,能在同一框架中實(shí)現(xiàn)除雨線和雪痕的功能,應(yīng)對(duì)不同惡劣天氣條件的影響.本文將CGAN算法與卷積網(wǎng)絡(luò)算法[4]、先驗(yàn)算法[10]的圖像除雨雪痕跡效果進(jìn)行比較,結(jié)果如圖4所示.由圖4可見,先驗(yàn)法的算法僅去掉了部分雨線和雪痕,仍有較多的雨雪痕跡未能去除;卷積網(wǎng)絡(luò)算法保留了原始圖像的清晰度,去除了圖像中大部分的雨雪痕跡,但是在圖像的亮度以及對(duì)比度上與原圖之間存在一定差異;相比之下,CGAN算法去除了圖像中大部分的雨線和雪痕,同時(shí)也較好地保留了圖像背景,生成圖像的亮度和色彩與原始圖像基本一致,效果優(yōu)于基于卷積網(wǎng)絡(luò)和基于先驗(yàn)法的算法.
圖3 基于CGAN的算法對(duì)雨線(a)和雪痕(b)特征的捕捉Fig.3 Capture of rain(a) and snow(b) features based on CGAN