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