辛明勇,徐長寶,高吉普,高在武,王波,王曉陽
(1.貴州電網(wǎng)有限責(zé)任公司電力科學(xué)研究院,貴州 貴陽 550002;2.貴州電網(wǎng)有限責(zé)任公司安順供電局,貴州 安順 561000;3.武漢大學(xué) 電氣與自動化學(xué)院,湖北 武漢 430072)
無人機巡檢圖像是無人機巡檢中最重要的信息載體,通過對機巡影像的目標(biāo)檢測和故障定位可以達到智能化巡檢的目的[1-2]。無人機在野外巡線的過程中有時攝像頭上會有雨滴存在,雨滴會覆蓋背景圖像中目標(biāo)物體信息,降低圖像質(zhì)量。雨滴使得輸電線路設(shè)備成像時吸收了更廣泛的環(huán)境光線,這些折射光線與目標(biāo)物體反射光線疊加造成了圖像的退化。另外無人機巡線拍照時相機應(yīng)該聚焦在輸電線路設(shè)備上,雨滴會影響相機的聚焦,使得圖像背景虛化,圖像細節(jié)信息損失嚴(yán)重。因此,雨滴的存在會導(dǎo)致拍攝的機巡影像質(zhì)量參差不齊,影響圖像信息提取和利用,降低目標(biāo)檢測的準(zhǔn)確性和可靠性[3]。
單幅圖像去雨滴是圖像處理領(lǐng)域中極其復(fù)雜的技術(shù),國內(nèi)外開展相關(guān)技術(shù)研究的時間不長,現(xiàn)有方法不多,大致可以分為傳統(tǒng)去雨滴方法和基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的去雨滴方法。傳統(tǒng)去雨滴方法又分為基于濾波的方法和基于字典學(xué)習(xí)加稀疏編碼的方法,其中濾波法包括引導(dǎo)濾波法[4]、改進引導(dǎo)濾波法[5]、多次引導(dǎo)濾波法[6]、L0最小范數(shù)平滑濾波法[7]、非均值濾波法[8]等。濾波法生成的去雨滴圖像較為模糊,且存在部分雨滴無法去除的問題。Fu等人[9]利用濾波器對含雨滴圖像濾波得到高頻圖像和低頻圖像,再利用字典學(xué)習(xí)和稀疏編碼對高頻圖像去雨滴,然后將高頻去雨滴圖像和低頻圖像合并得到去雨滴圖像。在此基礎(chǔ)上,Kang等人[10]引入雨滴梯度直方圖特征,利用K-means聚類方法對高頻圖像進行聚類,獲得有雨字典和無雨字典,然后分別進行稀疏編碼,獲得高頻無雨圖像,將高頻無雨滴圖像和低頻圖像融合獲得無雨滴圖像,該方法比文獻[9]提出的方法獲得的圖像背景更清晰。Lou等人[11]提出了判別式稀疏編碼方法去除圖像雨滴,該編碼方式具有一定的判別能力,能夠降低雨滴判別的失誤率,提升去雨滴效果。2013年,David等[12]首次將CNN用于圖像去雨滴,首先構(gòu)建包含有雨滴-無雨滴圖像對的樣本庫,利用步長為1的滑動窗口對相應(yīng)圖像進行分割,然后利用對應(yīng)圖像塊之間的均方誤差進行網(wǎng)絡(luò)訓(xùn)練,最終獲得能夠去雨滴的CNN模型。之后Fu[13-14]等將CNN和圖像分解融合,利用CNN提取圖像中的雨滴特征,作為高頻分量中的雨滴特征實現(xiàn)對高頻分量去雨滴,提升去雨滴效果圖的質(zhì)量。
通過對現(xiàn)有圖像去雨滴方法進行研究發(fā)現(xiàn),目前傳統(tǒng)的去雨滴方法大多是基于模型去雨滴,利用經(jīng)典模型分別描述雨滴、雨線和背景圖像,通過相應(yīng)的優(yōu)化算法一步步迭代優(yōu)化去除雨滴。傳統(tǒng)方法對于雨滴密集的圖像處理效果很差,被雨滴覆蓋區(qū)域的背景圖像不能精細修復(fù)。而基于CNN的去雨滴方法能夠充分提取圖像的特征信息,利用此方法實現(xiàn)圖像去雨滴的效果明顯優(yōu)于傳統(tǒng)方法。但隨著網(wǎng)絡(luò)深度的增加,網(wǎng)絡(luò)容易出現(xiàn)過擬合現(xiàn)象,去雨滴效果很難有進一步的提高。針對上述算法的不足,本文分析了雨滴圖像生成原理,論述了生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)的基本結(jié)構(gòu),在此基礎(chǔ)上將雨滴圖像生成模型融入到GAN中,提出了基于GAN的去雨滴方法,該方法得到的去雨滴圖像更加接近真實圖像。
在研究圖像去雨滴的過程中,通常將含雨滴圖像建模為背景圖像和雨滴層的線性組合,數(shù)學(xué)表達式為
I(x)=(1-M(x))ΘB(x)+Z(x).
(1)
式中:I為無人機巡線時拍攝的含雨滴圖像;x為圖像中像素點的位置;B為背景圖像,即無人機拍攝的清晰輸電線路設(shè)備;Z為雨滴對圖像造成的影響;M為二進制掩碼,用來表示雨滴對背景圖像造成的影響;Θ為漸近緊確界記號。
近年來隨著深度學(xué)習(xí)的不斷發(fā)展,學(xué)者提出了GAN,在處理復(fù)雜數(shù)據(jù)分布方面表現(xiàn)出了較好的性能,是無監(jiān)督學(xué)習(xí)領(lǐng)域最具前景的方法之一。該模型包含生成模塊和判別模塊,在圖像修復(fù)方面,通過2個模塊之間的互相博弈能夠輸出高質(zhì)量的圖片。
GAN的核心思想在于博弈,生成模型用于生成1個逼真的樣本,判別模型用于判斷生成圖像的真假。判別網(wǎng)絡(luò)應(yīng)能夠判別輸入的圖像是真實拍攝圖片還是來自于生成網(wǎng)絡(luò)生成的圖片,如果為真實拍攝圖像則輸出1,否則輸出0。生成網(wǎng)絡(luò)應(yīng)按照拍攝的真實圖片規(guī)律不斷生成新的圖片,通過與判別網(wǎng)絡(luò)進行博弈使得生成圖片質(zhì)量盡可能接近真實拍攝圖像,以至于判別器無法識別該圖像來自于生成器還是拍攝圖像集。GAN為了實現(xiàn)這樣的功能需要分別對生成網(wǎng)絡(luò)和對抗網(wǎng)絡(luò)進行交替迭代訓(xùn)練。
GAN的強大之處在于能夠快速學(xué)習(xí)復(fù)雜的數(shù)據(jù)分布,而且網(wǎng)絡(luò)不需要復(fù)雜的約束函數(shù),整個學(xué)習(xí)過程無需人為干預(yù)。GAN另外一個特點是可以依靠樣本數(shù)據(jù)分布規(guī)律自動更新網(wǎng)絡(luò)損失函數(shù)。在GAN進行訓(xùn)練的過程中,判別網(wǎng)絡(luò)可以作為生成網(wǎng)絡(luò)的損失函數(shù),對生成網(wǎng)絡(luò)的優(yōu)化起著監(jiān)督和引導(dǎo)的作用。判別網(wǎng)絡(luò)參數(shù)更新的過程也就是不斷優(yōu)化生成網(wǎng)絡(luò)損失函數(shù)的過程。
和GAN的最基本結(jié)構(gòu)一樣,本文提出的基于GAN的去雨滴模型主要包括生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)。生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)之間相互博弈,在注意力圖的引導(dǎo)下盡可能生成清晰真實的去雨滴圖像,去雨滴網(wǎng)絡(luò)總體架構(gòu)如圖1所示。
圖1 去雨滴網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of the raindrop removal network
下面對改進的生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)進行詳細說明。
基于GAN的去雨滴模型的整體損失函數(shù)為
(2)
式中:PR、PI分別為真實圖像和生成圖像的概率;C為生成網(wǎng)絡(luò);D為判別網(wǎng)絡(luò);I為含雨滴圖像;G(I)為去雨滴后的圖像;R為不含雨滴的真實樣本。
1.3.1 改進的生成網(wǎng)絡(luò)
改進的生成網(wǎng)絡(luò)包含注意力循環(huán)網(wǎng)絡(luò)和上下文自動編碼-解碼網(wǎng)絡(luò)。注意力循環(huán)網(wǎng)絡(luò)中包含長短期記憶(long short term memory,LSTM)神經(jīng)網(wǎng)絡(luò),通過循環(huán)迭代的方式生成注意力圖。注意力圖是含雨滴圖像中雨滴的位置和形狀信息,引導(dǎo)上下文編碼-解碼器重點關(guān)注雨滴及其周圍區(qū)域。
1.3.1.1 注意力循環(huán)網(wǎng)絡(luò)
注意力循環(huán)網(wǎng)絡(luò)曾經(jīng)被應(yīng)用于視覺注意模型中,定位圖像中的目標(biāo)區(qū)域,提高目標(biāo)識別的準(zhǔn)確性[15-17]。受此啟發(fā)本文將這一結(jié)構(gòu)應(yīng)用在去雨滴網(wǎng)絡(luò)中,利用視覺注意引導(dǎo)生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)尋找圖像中雨滴的位置。如圖1中生成器部分所示,注意力循環(huán)網(wǎng)絡(luò)共包含4個循環(huán)模塊,每個模塊中包含殘差模塊(Residual Block)[18]、LSTM單元和卷積層(Convs),其中殘差模塊用于從輸入圖像和前一個循環(huán)模塊產(chǎn)生的注意力圖中提取雨滴特征信息,LSTM單元[19]和卷積層用于生成二維注意力圖。
在注意力圖生成過程中,二進制掩碼圖起著關(guān)鍵作用。掩碼圖中只包含有0和1,0表示這個像素點沒有雨滴存在,1表示該像素點有雨滴存在。將掩碼圖和含雨滴圖像輸入到注意力循環(huán)網(wǎng)絡(luò)的第1個循環(huán)模塊中用于初始注意力圖的生成。掩碼圖是由含雨滴圖像減去清晰圖像,然后設(shè)置一定的閾值進行過濾得到的,雖然獲得的掩碼圖比較粗糙,但是對精細的注意力圖的生成有很大作用。注意力圖和掩碼圖最大的區(qū)別是掩碼圖只包含0和1,而注意力圖的取值是[0,1]。注意力圖中,取值越大表示去雨滴網(wǎng)絡(luò)越應(yīng)該注意該像素點,也即該像素點處存在雨滴的可能性越大。即使在同一個雨滴區(qū)域內(nèi)注意力圖的值也會有所不同,這和雨滴的形狀和厚度有關(guān),同時也反映雨滴對背景圖像不同像素點的影響程度。
注意力循環(huán)網(wǎng)絡(luò)中包含1個LSTM單元,LSTM單元包括1個輸入門it、1個遺忘門ft、1個輸出門ot以及1個單元狀態(tài)ct。狀態(tài)和各門之間在時間維度上的相互作用定義為:
it=σ(Wxi*xt+Whi*ht-1+Wci?ct-1+bi);
ft=σ(Wxf*xt+Whf*ht-1+Wcf?ct-1+bf);
ct=ft?ct-1+
it?tanh(Wxc*xt+Whc*ht-1+bc);
ht=ot?tanh(ct).
(3)
式中:下標(biāo)t為時間步長;xt為殘差網(wǎng)絡(luò)生成的圖像特征;ht為LSTM單元的輸出特征;Wxi、Whi、Wci分別為xt、ht、ct與輸入門it之間的權(quán)重矩陣;Wxf、Whf、Wcf分別為xt、ht、ct與遺忘門ft之間的權(quán)重矩陣;Wxc、Whc分別為xt、ht與單元狀態(tài)ct之間的權(quán)重矩陣;bi、bf、bc分別為it、ft、ct的偏差向量;“?”表示矩陣乘法,“*”表示卷積運算。LSTM單元的輸出一方面輸入到卷積層用于產(chǎn)生二維注意力圖,另一方面輸入給循環(huán)網(wǎng)絡(luò)的下一個LSTM單元中實現(xiàn)時間維度上的特征保留。
生成網(wǎng)絡(luò)的輸入是背景完全相同的圖像對,一幅含雨滴,另一幅不含雨滴。每個循環(huán)模塊的損失函數(shù)定義為輸出注意力圖與二進制掩碼M之間的均方誤差LMSE。對于注意力循環(huán)網(wǎng)絡(luò)前邊的循環(huán)模塊損失函數(shù)賦予較小的權(quán)值,后邊的模塊損失函數(shù)賦予較大的權(quán)值。損失函數(shù)
(4)
式中:A為循環(huán)網(wǎng)絡(luò)運算期間產(chǎn)生的注意力圖;N為循環(huán)模塊的數(shù)量;θ表示每個步驟映射與前一步的交互;LMSE(At,M)為At和二進制掩碼M的均方誤差,其中At為時間步長t時循環(huán)網(wǎng)絡(luò)產(chǎn)生的注意力圖,At=Ut(Ft-1,ht-1,ct-1),F(xiàn)t-1為含雨滴圖像和上一個循環(huán)單元輸出注意力圖的融合向量,Ut函數(shù)表示在時間步長為t時的循環(huán)單元。在整個循環(huán)網(wǎng)絡(luò)中,N越大越有利于生成更加精細的注意力圖,但是N的增大也意味著需要更多的內(nèi)存儲存中間參數(shù),經(jīng)過測試發(fā)現(xiàn)當(dāng)N=4、θ=8時網(wǎng)絡(luò)效率最高。
1.3.1.2 上下文自動編碼-解碼器
上下文自動編碼-解碼器的輸入為含雨滴圖像和注意力循環(huán)網(wǎng)絡(luò)生成的注意力圖,在注意力圖的引導(dǎo)下實現(xiàn)圖像去雨滴和背景修復(fù)。上下文自動編碼-解碼器共有16個Conv+ReLU模塊,編碼和解碼部分結(jié)構(gòu)對稱,對應(yīng)模塊之間添加了跳躍連接,防止去雨滴圖像模糊。上下文自動編碼-解碼器采用2種損失函數(shù)——多尺度損失和感知損失。
多尺度損失函數(shù)從解碼器不同層提取圖像特征信息,充分利用圖像多層次信息對模型進行優(yōu)化,獲得清晰的去雨滴圖像。多尺度損失函數(shù)
(5)
式中:S為模型輸出的圖像特征;Si為從編碼器中第i層提取出的圖像特征;ANi為具有與Si相同尺度的真實圖像;λi為權(quán)重;Y為編碼器的層數(shù)。多尺度損失函數(shù)的設(shè)計更關(guān)注在大尺寸圖像上進行特征提取,尺寸較小的圖像包含信息量較少,對于模型優(yōu)化的影響也較小。解碼器最后1層、倒數(shù)第3層和倒數(shù)第5層的輸出圖像尺寸分別為原來尺寸的1/4、1/2和1,對應(yīng)的權(quán)重分別設(shè)置為0.6、0.8、1.0。
除了基于像素點的尺度損耗之外,本文還增加了感知損耗,用于獲得上下文自動編碼-解碼器輸出與相應(yīng)清晰圖片之間的全局差異。感知損耗從圖像的全局角度衡量去雨滴圖像和真實的圖像之間的差異,使去雨滴圖像更加接近真實樣本。圖像全局信息可以利用VGG16進行提取,需要事先在ImageNet數(shù)據(jù)集上完成網(wǎng)絡(luò)預(yù)訓(xùn)練。感知損失函數(shù)
LP(O,R)=LMSE(V(O),V(R)).
(6)
式中:V為經(jīng)過預(yù)訓(xùn)練的CNN網(wǎng)絡(luò),能夠完成對給定輸入圖像的特征提取;O為自動編碼器的輸出圖像,O=G(I)。
綜上所述,生成網(wǎng)絡(luò)的損失函數(shù)
(7)
式中LGAN(O)=lg(1-D(O))。
1.3.2 改進的判別網(wǎng)絡(luò)
判別網(wǎng)絡(luò)的作用是區(qū)分真假樣本,GAN中的判別器通常采用全局判別器[20-22],判斷生成器輸出的圖像和真實樣本之間的差異。僅利用全局信息進行圖像真假判別不利于生成網(wǎng)絡(luò)對圖像局部信息的恢復(fù)。對于圖像去雨滴來說,該方法希望能夠盡可能恢復(fù)圖像的細節(jié),以便進行后續(xù)的目標(biāo)檢測工作,現(xiàn)有的判別網(wǎng)絡(luò)不能直接使用;因此,本文將全局判別器和局部判別器組合起來,共同判別生成網(wǎng)絡(luò)輸出樣本的真假。
局部判別器的使用是以知道圖像中雨滴的位置信息為前提的,在圖像修復(fù)階段注意力循環(huán)網(wǎng)絡(luò)中生成了注意力圖,這就解決了圖像中雨滴位置的定位問題;因此,可以將注意力圖引入到判別器網(wǎng)絡(luò)中,指導(dǎo)局部判別器自動尋找圖像中雨滴區(qū)域。利用CNN從判別器的內(nèi)層進行特征提取,同時也對生成器生成的去雨滴圖像進行特征提取,然后將獲得的特征圖和注意力圖結(jié)合構(gòu)成局部判別器的損失函數(shù)。注意力圖的存在將會引導(dǎo)判別網(wǎng)絡(luò)對圖像中的雨滴區(qū)域進行重點關(guān)注,在判別網(wǎng)絡(luò)的最后1層使用全連接層來判斷輸入圖像的真假。判別網(wǎng)絡(luò)的整體損失函數(shù)
LD(O,R,AN)=-lg(D(R))-
lg(1-D(O))+γLmap(O,R,AN) ,
(8)
Lmap(O,R,AN)=
LMSE(Dmap(O),AN)+LMSE(Dmap(R),0).
(9)
式中:系數(shù)γ設(shè)置為0.05;式(8)等號右邊前2項為全局判別器的損失函數(shù);Lmap為局部判別器的損失函數(shù);Dmap為由判別網(wǎng)絡(luò)生成的二維注意力掩碼圖函數(shù);式(9)中0表示僅包含0值的注意力圖,即真實的圖像中沒有雨滴,不需要注意力圖引導(dǎo)網(wǎng)絡(luò)進行特征提??;AN為真實圖像。
本文中的判別網(wǎng)絡(luò)包含7個卷積層,其內(nèi)核為(3,3),全連接層神經(jīng)元個數(shù)為1 024,單個神經(jīng)元采用Sigmoid激活函數(shù)。
對于本文提出的去雨滴網(wǎng)絡(luò)的訓(xùn)練,需要1組輸電線路設(shè)備圖像對,每對圖像包含完全相同的背景場景,其中一幅圖像含有雨滴,另一幅沒有雨滴。為了使本文所提方法能夠適用于無人機巡線場景下的圖像去雨滴,在制作數(shù)據(jù)集時盡可能模擬輸電線路真實場景。拍攝圖片時采用無人機上攜帶的2個攝像頭,使用2塊完全相同的玻璃(厚度3 mm),其中一塊噴水以模擬雨天時攝像頭上有雨滴的情形,另一塊保持清潔。將玻璃和攝像頭之間的距離設(shè)置為2~5 cm,以產(chǎn)生不同的雨滴圖像,并且要最大限度地減少玻璃的反射效果。在拍攝過程中保持?jǐn)z像頭與玻璃鏡片的相對位置不變,保證2個攝像頭拍攝的背景圖像相同,同時確保在圖像對的采集過程中大氣條件(例如陽光、云等)和背景物體是相對靜態(tài)的。采用上述方法,拍攝了2 000對包含輸電線路設(shè)備場景的圖像。
將數(shù)據(jù)集中的2 000對圖片按照8∶2進行分配,其中1 600對作為模型訓(xùn)練集,400對作為模型測試集。對模型的超參數(shù)進行設(shè)定,其中初始學(xué)習(xí)率設(shè)為0.001,批大小設(shè)為16,迭代次數(shù)設(shè)為40 000。最初采用Adam優(yōu)化算法,在訓(xùn)練過程中發(fā)現(xiàn)梯度下降的速率較低;后改為Momentum優(yōu)化算法,模型收斂速度明顯加快。經(jīng)過40 000次迭代訓(xùn)練之后,利用測試集對模型進行驗證,發(fā)現(xiàn)基于GAN的去雨滴模型具有較好的可移植性。
隨機從含雨滴的圖像數(shù)據(jù)集中選取2張圖片進行去雨滴處理,結(jié)果如圖2、圖3所示。
圖2、圖3中背景圖像分別是桿塔和絕緣子串,(a)—(f)分別是原始圖像、去雨滴圖像和4個循環(huán)網(wǎng)絡(luò)生成的注意力圖。原始圖像中含有密集的雨滴,利用本文提出的去雨滴方法能夠去除圖像中的大部分雨滴,并對雨滴覆蓋部分的背景圖像進行修復(fù)。從注意力圖中可以看出原始圖像中雨滴的位置和大小已經(jīng)能夠清晰確定。對比(a)和(b)可以發(fā)現(xiàn),去雨滴圖像與原圖像的對比度、亮度和目標(biāo)邊緣信息基本一致。
圖2 去雨滴圖像及注意力圖(桿塔)Fig.2 Raindrop removal images and attention maps (tower)
圖3 去雨滴圖像及注意力圖(絕緣子串)Fig.3 Raindrop removal images and attention maps (insulator string)
隨機從含雨滴數(shù)據(jù)集中選1張圖片,分別利用W.Yang去雨滴方法[23]、Fu去雨滴方法和本文提出的方法進行去雨滴處理,計算3種方法獲得圖像的峰值信噪比(peak signal to noise ratio,PSNR)和結(jié)構(gòu)相似性(structural similarity,SSIM)值,結(jié)果見表1。
表1 去雨滴圖像的PSNR和SSIM值Tab.1 PSNR and SSIM values of raindrop removal images
由表1可知,本文所提方法獲得圖像的PSNR和SSIM值均高于W.Yang、Fu的方法,表明本文所提方法獲得的去雨滴圖像和原始的清晰背景圖像之間的相似度較高,證明基于GAN的圖像去雨滴方法效果優(yōu)于W.Yang、Fu的方法。
從測試集中隨機選取含有桿塔故障、小尺寸金具故障、導(dǎo)地線故障、絕緣子故障的帶雨滴輸電線路巡檢圖像各50張。分別利用W.Yang去雨滴方法和本文提出的去雨滴方法進行圖像去雨滴處理。利用Faster RCNN目標(biāo)檢測算法對含雨滴圖像、W.Yang去雨滴圖像、Fu去雨滴圖像和本文方法的去雨滴圖像進行設(shè)備缺陷目標(biāo)檢測,分別計算4種故障的平均精度(average precision,AP)以及每組圖像的均值平均精度(mean average precision,MAP),結(jié)果見表2。
表2 目標(biāo)檢測結(jié)果Tab.2 Target detection results
由表2中AP值和MAP值可以看出,去雨滴之后圖像的目標(biāo)檢測精度要高于沒有經(jīng)過圖像增強時的精度,本文所提方法比傳統(tǒng)方法在去雨滴和圖像修復(fù)方面效果更好。
本文提出了基于GAN的輸電線路機巡影像去雨滴方法,該方法利用注意力遞歸網(wǎng)絡(luò)生成含雨滴圖像的注意力圖,注意力圖引導(dǎo)上下文編碼-解碼器實現(xiàn)對含雨滴圖像的修復(fù),生成清晰真實的去雨滴圖像。判別網(wǎng)絡(luò)利用全局判別器和局部判別器結(jié)合的方法對生成的去雨滴圖像進行判別。利用本文中的測試集對模型進行測試,結(jié)果表明本文所提方法能夠徹底去除圖像中的雨滴并對背景圖像進行修復(fù),去雨滴圖像更加接近真實圖像,利用本文方法進行圖像去雨滴處理能夠恢復(fù)圖像細節(jié)信息,提高目標(biāo)檢測算法的精度。