宮法明,徐晨曦,李厥瑾
(1.中國石油大學(xué)(華東)計算機(jī)科學(xué)與技術(shù)學(xué)院,山東青島 266580;2.山東電子職業(yè)技術(shù)學(xué)院本科教務(wù)處,濟(jì)南 250200)
城鄉(xiāng)結(jié)合部違規(guī)占地導(dǎo)致建設(shè)混亂,影響城市市容并產(chǎn)生潛在危害。傳統(tǒng)的違建航攝方法存在費用昂貴且數(shù)據(jù)獲取不便等問題,例如衛(wèi)星遙感、普通航空遙感等。許多單位開始使用投入成本相對較低且易于維護(hù)和操作的無人機(jī)航拍技術(shù)對違建場地進(jìn)行拍攝。在實際工作場景中,無人機(jī)航拍檢測面積較大,為節(jié)省時間成本,無人機(jī)只能飛得較高,將拍攝范圍擴(kuò)大,而人工檢測只能通過無人機(jī)傳回的視頻在較小的屏幕內(nèi)觀察,極易產(chǎn)生遺漏。若違建場地未能及時被發(fā)現(xiàn)并制止,則在拆除違建場地的執(zhí)法工作中將面臨很多困難,甚至?xí)a(chǎn)生民事糾紛。對于違建檢查工作,理想的方法是在建設(shè)初期及時發(fā)現(xiàn)違建場地并制止,可以極大程度地避免由拆除違建引起的一系列糾紛。
在前期的研究中,無人機(jī)航拍視頻利用傳統(tǒng)的目標(biāo)識別算法直接對數(shù)據(jù)集進(jìn)行訓(xùn)練,但獲得的檢測效果并不理想,計算時間較長。無人機(jī)在拍攝過程中鏡頭方向和飛行高度均不確定,使得目標(biāo)場地在視頻中產(chǎn)生旋轉(zhuǎn)、放大、縮小等形變問題。樣本庫中因形變目標(biāo)樣本數(shù)量不足導(dǎo)致檢測器對形變目標(biāo)的檢測結(jié)果不理想。在當(dāng)前目標(biāo)檢測工作中,如果學(xué)習(xí)一個對于旋轉(zhuǎn)形變樣本具有穩(wěn)定性的目標(biāo)識別檢測器,需要大量數(shù)據(jù)集對其進(jìn)行訓(xùn)練。由于樣本庫具有的形變數(shù)據(jù)樣本較少,因此沒有足夠的樣本實例覆蓋所有可能出現(xiàn)的形變情況。
本文通過深度學(xué)習(xí)方法對無人機(jī)航拍視頻進(jìn)行自動檢測,提出一種結(jié)合空間變換網(wǎng)絡(luò)與Fast RCNN的生成對抗網(wǎng)絡(luò)ASTN-Fast RCNN 用于建設(shè)初期的違建場地識別。利用目標(biāo)檢測器的反饋優(yōu)化生成器,生成目標(biāo)檢測器難以識別的旋轉(zhuǎn)形變樣本,并將生成的旋轉(zhuǎn)形變樣本加入訓(xùn)練,解決檢測器對形變目標(biāo)識別精度低的問題。
無人機(jī)航拍視頻識別違建場地主要包括違建場地檢測、深度學(xué)習(xí)目標(biāo)檢測、生成性對抗網(wǎng)絡(luò)3 個方面工作。傳統(tǒng)的違建場地檢測方法主要通過遙感圖像分析檢測違建場地[2]。
深度學(xué)習(xí)目標(biāo)檢測的研究領(lǐng)域主要有3 個方向[3]:1)深度學(xué)習(xí)利用樣本數(shù)據(jù)來提高檢測精度[4],近年來,目標(biāo)檢測器通過可用性更高的數(shù)據(jù)來提高檢測器的檢測精度,例如,在樣本訓(xùn)練策略方面進(jìn)行改進(jìn),研究人員提出OHEM 算法,該算法在訓(xùn)練過程中主動選擇難樣本加入訓(xùn)練,在提升網(wǎng)絡(luò)性能的同時使訓(xùn)練更高效,其他工作[5-6]也是通過數(shù)據(jù)本身提高檢測性能;2)通過改變神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)結(jié)構(gòu)和增加神經(jīng)網(wǎng)絡(luò)的層次來提高檢測器的性能[7-8],這個方向的研究工作包括ResNet[9]、Inception-ResNet[10]和ResNetXt[11];3)利用多個卷積層特征來提高目標(biāo)檢測性能,例如使用上下文推理和多尺度特征提高小目標(biāo)檢測精確率[12-13],通過上下文的語義關(guān)聯(lián)學(xué)習(xí)互補信息[14],采用自上而下的上下文語義分割提高Faster RCNN 的檢測性能[15]等。
文獻(xiàn)[16]在GAN 中設(shè)計卷積神經(jīng)網(wǎng)絡(luò),改進(jìn)圖像生成技術(shù);文獻(xiàn)[17]引入新的方法,提高網(wǎng)絡(luò)的收斂和GAN 中圖像生成模型的性能;文獻(xiàn)[18-20]利用GAN 改進(jìn)傳統(tǒng)機(jī)器學(xué)習(xí)的算法;文獻(xiàn)[21]采用GAN 改進(jìn)口語識別算法;文獻(xiàn)[22]提出GAN 架構(gòu),解決目標(biāo)識別中樣本不足的問題;文獻(xiàn)[23]提出一種利用GAN 框架進(jìn)行半監(jiān)督或無監(jiān)督的算法。GAN 的樣本是通過學(xué)習(xí)大量的形變樣本,生成接近真實的形變圖像,但是此過程需要大量的形變樣本來加入訓(xùn)練,或者生成所有可能的形變樣本,然后利用這些形變樣本來訓(xùn)練檢測器。由于產(chǎn)生形變的范圍很大,因此訓(xùn)練效率較低。文獻(xiàn)[1]指出,選擇難樣本得到的檢測器相較于加入所有樣本的訓(xùn)練更優(yōu)。
本文通過樣本數(shù)據(jù)來提高檢測精度,但是由于樣本庫中的形變樣本數(shù)量不足,在樣本庫中直接篩選難以識別形變樣本的方法并不可行。本文利用GAN 生成檢測器在識別時易出錯的難以識別形變樣本。在GAN 中,生成器通過檢測器的反饋來學(xué)習(xí)預(yù)測檢測器難以識別的樣本,同時檢測器通過難以識別形變樣本來提高識別精度。GAN 通常是用于訓(xùn)練優(yōu)秀的圖像生成器,而在本文算法中GAN 用于完成相反的任務(wù),即通過GAN 競爭訓(xùn)練一個對形變樣本具有魯棒性的檢測器,利用對抗學(xué)習(xí)提高識別形變樣本的能力。
本文基于Fast RCNN 進(jìn)行目標(biāo)檢測識別[24]。Fast RCNN 網(wǎng)絡(luò)主要由2 部分組成:1)卷積網(wǎng)絡(luò)提取圖像特征生成特征圖,作為后續(xù)網(wǎng)絡(luò)的輸入;2)RoI-pooling 層和全連接層輸出目標(biāo)類別概率和邊界框。
將圖像輸入Fast RCNN 網(wǎng)絡(luò),該圖像依次通過卷積網(wǎng)絡(luò)、RoI-pooling 層和全連接層。卷積網(wǎng)絡(luò)通過對圖像進(jìn)行卷積和最大池化提取圖像特征,最終輸出卷積特征圖。因此,輸出特征圖的空間尺寸并不是固定的,將隨著輸入圖像尺寸變化而改變。RoI-pooling 層為候選區(qū)域池化,通過坐標(biāo)投影方式將特征圖中的候選區(qū)域投影到特征空間,并對該候選區(qū)域進(jìn)行池化,得到統(tǒng)一大小的的特征向量輸入全連接層。全連接層定義了損失函數(shù),通過Softmax分類器和boxbounding 回歸器分別輸出候選區(qū)域的類別概率以及包圍框坐標(biāo)。
為解決形變目標(biāo)的識別問題,本文算法通過對抗網(wǎng)絡(luò)對原始樣本進(jìn)行形變產(chǎn)生新樣本,加入檢測器的訓(xùn)練。針對生成器網(wǎng)絡(luò),本文算法選用空間變換網(wǎng)絡(luò)(Spatial Transformer Network,STN)[25]。STN 網(wǎng)絡(luò)作為一個可微分的網(wǎng)絡(luò),可以插入到卷積神經(jīng)網(wǎng)絡(luò)框架中,使神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)對輸入圖像進(jìn)行空間變換,以提高檢測模型對目標(biāo)幾何變化的魯棒性。本文算法通過對抗形變網(wǎng)絡(luò)ASTN-Fast RCNN 訓(xùn)練,得到對形變目標(biāo)具有魯棒性的目標(biāo)檢測器。
STN 網(wǎng)絡(luò)通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)如何對輸入圖像進(jìn)行空間變換,以提高模型的幾何不變性。STN 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,其運作機(jī)制可分為本地網(wǎng)絡(luò)、網(wǎng)格生成器和采樣器3 個部分。
圖1 STN 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of STN network
本地網(wǎng)絡(luò)將特征圖輸入STN 網(wǎng)絡(luò),根據(jù)特征圖預(yù)測產(chǎn)生的空間變換,并輸出對應(yīng)的參數(shù)變量。
網(wǎng)格生成器根據(jù)本地網(wǎng)絡(luò)預(yù)測的變換參數(shù)值θ,通過矩陣運算目標(biāo)圖V中每個位置對應(yīng)原圖U的坐標(biāo)位置,生成Tθ(G),如式(1)所示:
采樣器根據(jù)Tθ(G)中的坐標(biāo)信息和輸入的原始特征圖對原始圖目標(biāo)特征U進(jìn)行采樣并復(fù)制到目標(biāo)特征圖V中,輸出變換后的特征圖。本文算法根據(jù)STN 網(wǎng)絡(luò)的可微分特點,通過反向傳播直接優(yōu)化本地網(wǎng)絡(luò)參數(shù)。
GAN 包含生成器G 和判別器D 這2 個神經(jīng)網(wǎng)絡(luò)模型,GAN 訓(xùn)練過程是生成器G 與判別器D 對抗競爭的過程,通過一次迭代訓(xùn)練,生成器G 與判別器D在對抗博弈狀態(tài)中相互調(diào)整改進(jìn),以最大程度減小最小-最大損失以達(dá)到最佳狀態(tài)。
在本文的對抗形變網(wǎng)絡(luò)(ASTN-Fast RCNN)中,STN 網(wǎng)絡(luò)作為生成器,F(xiàn)ast RCNN 網(wǎng)絡(luò)用于識別分類的全連接層與分類回歸器并作為判別器。首先將原始圖片進(jìn)行卷積池化得到特征圖;然后將特征圖輸入訓(xùn)練模型中。特征圖作為ASTN 網(wǎng)絡(luò)輸入,生成器主要對特征圖產(chǎn)生變換,然后將變換后的特征圖輸入到判別器進(jìn)行訓(xùn)練識別,同時判別器將分類結(jié)果反饋給生成器。因此,在對抗學(xué)習(xí)過程中生成器可以生成檢測器不易識別的形變樣本。在生成器ASTN 中用于預(yù)測空間變換參數(shù)變量的本地網(wǎng)絡(luò)由3 個完全連接層構(gòu)成,其中第1 層與第2 層均使用ImageNet 預(yù)訓(xùn)練網(wǎng)絡(luò)進(jìn)行初始化。
GAN 在進(jìn)行正式訓(xùn)練前需要對判別器進(jìn)行初始訓(xùn)練,當(dāng)判別器具有一定的判別能力后,在對抗訓(xùn)練中才能更有效對生成器進(jìn)行反饋。本文網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2 所示,將特征圖輸入到STN 網(wǎng)絡(luò)中,將形變特征圖作為Fast RCNN 的輸入,由于STN 網(wǎng)絡(luò)是可以微分的,因此ASTN-Fast RCNN 網(wǎng)絡(luò)通過分類損失對ASTN 的本地網(wǎng)絡(luò)中空間變換參數(shù)進(jìn)行調(diào)整。
圖2 本文網(wǎng)絡(luò)模型結(jié)構(gòu)Fig.2 Structure of the proposed network model
數(shù)據(jù)集不包含所有可能的形變樣本。本文通過生成目標(biāo)檢測器難以識別的形變樣本來提高對形變樣本的識別精度。設(shè)原始目標(biāo)檢測器網(wǎng)絡(luò)為F(X),則原始檢測器損失函數(shù)如式(2)所示:
其中:X為候選區(qū)域;Fc為檢測器輸出的目標(biāo)類別;Fl為檢測器輸出的邊界框坐標(biāo);C為候選框區(qū)域的真值;L為空間位置。
訓(xùn)練生成對抗網(wǎng)絡(luò)的損失函數(shù)如式(3)所示:
其中:A(X)為對抗網(wǎng)絡(luò)。
檢測器很容易對GAN 的形變樣本進(jìn)行分類,則生成器即STN 網(wǎng)絡(luò)將獲得高損失,相反,如果檢測器對生成的形變樣本難以分類,則檢測器獲得高損失,而STN 網(wǎng)絡(luò)獲得低損失值。
本文將數(shù)據(jù)集按2∶1∶1 分為訓(xùn)練集、驗證集和測試集。原始數(shù)據(jù)來自于國土局下屬單位無人機(jī)采集視頻庫。無人機(jī)在外進(jìn)行飛行拍攝,并將實時拍攝視頻傳輸并存儲到視頻庫中。
3.1.1 本文實驗設(shè)計
在實驗之前,本文考慮到無人機(jī)拍攝范圍廣,相機(jī)拍攝清晰度要求高,導(dǎo)致圖片過大,在對圖片進(jìn)行處理時,計算量也會變大。因此,在訓(xùn)練之前,本文首先對視頻幀圖像進(jìn)行去均值處理,在訓(xùn)練自然圖像時,由于圖像任一部分的統(tǒng)計性質(zhì)都與其他部分相同,因此對每個像素單獨估計均值和方差意義不大。去均值處理歸一化可以移除圖像的平均亮度值。在對圖像進(jìn)行訓(xùn)練之前,本文去掉圖像中無關(guān)的特征值,能夠減少后處理中的計算量,提高訓(xùn)練速度。
實驗需要對模型進(jìn)行預(yù)訓(xùn)練,ASTN-Fast RCNN網(wǎng)絡(luò)模型使用標(biāo)準(zhǔn)Fast RCNN 并加入STN 對抗網(wǎng)絡(luò)。ASTN-Fast RCNN 模型采用分階段式訓(xùn)練,訓(xùn)練流程如圖3 所示。
圖3 ASTN-Fast RCNN 網(wǎng)絡(luò)模型訓(xùn)練流程Fig.3 Training procedure of ASTN-Fast RCNN network model
從圖3 可以看出,首先訓(xùn)練標(biāo)準(zhǔn)的Fast RCNN目標(biāo)檢測器,使用Image Net 預(yù)訓(xùn)練模型作為初始化網(wǎng)絡(luò)的權(quán)重,迭代1×104訓(xùn)練Fast RCNN 目標(biāo)檢測器得到預(yù)訓(xùn)練模型。ASTN 網(wǎng)絡(luò)利用Fast RCNN的共享卷積層、RoI-pooling 層,與自身獨立的完全連接層來預(yù)訓(xùn)練GAN 模型以創(chuàng)建旋轉(zhuǎn)形變。將得到的預(yù)訓(xùn)練STN 網(wǎng)絡(luò)和Fast RCNN 放在同一個網(wǎng)絡(luò)下聯(lián)合訓(xùn)練得到ASTN-Fast RCNN 網(wǎng)絡(luò)模型。實驗過程遵循標(biāo)準(zhǔn)的Fast RCNN 訓(xùn)練過程。訓(xùn)練采用選擇性搜索算法產(chǎn)生候選區(qū)域,利用隨機(jī)梯度下降對模型進(jìn)行8×104次迭代。學(xué)習(xí)率初始值設(shè)置為0.01,在大約6×104次迭代后學(xué)習(xí)率下降到0.000 1。
3.1.2 對照實驗設(shè)計
本文設(shè)計了2 組對照實驗,分別為:1)對照實驗1,本實驗為了對照生成形變樣本加入訓(xùn)練對檢測器的影響,直接訓(xùn)練標(biāo)準(zhǔn)的Fast RCNN 目標(biāo)檢測器,原始樣本集使用Image Net 的預(yù)訓(xùn)練模型作為初始化網(wǎng)絡(luò)的權(quán)重,采用選擇性搜索算法產(chǎn)生候選區(qū)域,利用隨機(jī)梯度下降對模型進(jìn)行8×104次迭代;2)對照實驗2,本實驗利用外部軟件對樣本集中的每個樣本進(jìn)行旋轉(zhuǎn)生成形變樣本,由于產(chǎn)生形變的空間較大,本文考慮到實驗效率問題,將形變限制在可接受范圍內(nèi)的5 個旋轉(zhuǎn)度與放大縮小,樣本集擴(kuò)充到原始的8 倍,用擴(kuò)充樣本集訓(xùn)練標(biāo)準(zhǔn)的Fast RCNN 目標(biāo)檢測器,同樣使用ImageNet 的預(yù)訓(xùn)練模型作為初始化網(wǎng)絡(luò)的權(quán)重,采用選擇性搜索算法產(chǎn)生候選區(qū)域,利用隨機(jī)梯度下降對模型進(jìn)行8×104次迭代。
為驗證檢測器對旋轉(zhuǎn)形變目標(biāo)的識別效果,本文在數(shù)據(jù)集中選取包含形變目標(biāo)圖像。違建場地如圖4 所示,2 個場景下有3 處目標(biāo)需要識別,已用方框標(biāo)出。
圖4 違建場地Fig.4 Unauthorized construction sites
對照實驗1 的識別結(jié)果如圖5 所示,使用原樣本集直接訓(xùn)練標(biāo)準(zhǔn)的Fast RCNN 目標(biāo)檢測器產(chǎn)生的部分實驗結(jié)果。從圖5 可以看出,在拍攝過程中,檢測器并未有效地識別出目標(biāo)旋轉(zhuǎn)。每個實驗抽出兩個場景下相同的15 張圖像展示旋轉(zhuǎn)過程的識別結(jié)果。組圖中主要包含目標(biāo)從傾斜旋轉(zhuǎn)到平行的過程。
圖5 對照實驗1 的違建場地識別結(jié)果Fig.5 Recognition results of unauthorized construction sites on controlled experiment 1
對照實驗2 的識別結(jié)果如圖6 所示,采用外部軟件對原樣本進(jìn)行無差別旋轉(zhuǎn)生成形變樣本,擴(kuò)大樣本集加入訓(xùn)練得到的部分實驗結(jié)果。從圖6 可以看出,通過人工添加有限的形變樣本改進(jìn)形變目標(biāo)的識別結(jié)果,但效果并不理想。
圖6 對照實驗2 的違建場地識別結(jié)果Fig.6 Recognition results of unauthorized construction sites on controlled experiment 2
本文網(wǎng)絡(luò)對違建場地的識別結(jié)果如圖7 所示,使用本文提出ASTN-Fast RCNN 網(wǎng)絡(luò)進(jìn)行聯(lián)合訓(xùn)練后的部分檢測結(jié)果,雖然仍有漏檢狀況,但相較于對照實驗1 與對照實驗2 的結(jié)果,能夠有效提升識別結(jié)果準(zhǔn)確率。
圖7 本文網(wǎng)絡(luò)對違建場地的識別結(jié)果Fig.7 Recognition results of unauthorized construction sites using the proposed network
3 個實驗的mAP 值對比如圖8 所示。mAP 為AP 的平均值,在目標(biāo)檢測任務(wù)中通常用mAP 值衡量模型性能。
圖8 3 個實驗的mAP 值對比Fig.8 mAP comparison of three experiments
從圖8 可以看出,對照實驗1 在訓(xùn)練的前期使用原樣本集直接訓(xùn)練標(biāo)準(zhǔn)Fast RCNN 目標(biāo)檢測器的mAP 上升較快,在大概4×104次迭代后曲線趨于平穩(wěn),mAP 值不再上升,檢測器對測試集中的形變樣本識別困難。對照實驗2 用外部軟件進(jìn)行旋轉(zhuǎn)生成形變樣本,擴(kuò)大樣本集之后進(jìn)行訓(xùn)練,由于樣本集數(shù)量過大,模型在約7×104次迭代后,mAP 值趨于穩(wěn)定。本文ASTN-Fast RCNN 網(wǎng)絡(luò)模型盡管在訓(xùn)練前期不穩(wěn)定,在1×104~1.5×104次出現(xiàn)下降的情況,但是隨著迭代次數(shù)的增加,mAP 值在6×104次迭代后趨于穩(wěn)定,mAP 值約為91%。3 個實驗的檢測結(jié)果對比如表1 所示。從表1 可以看出,對照實驗1 使用原樣本集直接訓(xùn)練標(biāo)準(zhǔn)的Fast RCNN 目標(biāo)檢測器在全部測試集上得到的檢測結(jié)果是76.53%,通過人工擴(kuò)大樣本集在Fast RCNN 上訓(xùn)練得到的檢測結(jié)果是84.69%,本文提出的聯(lián)合網(wǎng)絡(luò)訓(xùn)練出檢測器的檢測結(jié)果是91.84%。實驗結(jié)果表明,數(shù)據(jù)集可以結(jié)合基于Fast RCNN 的生成對抗網(wǎng)絡(luò)研究旋轉(zhuǎn)檢測,并取得較優(yōu)的結(jié)果。
表1 3 個實驗的檢測結(jié)果對比Table 1 Detection results comparison of three experiments %
目前對違建場地的檢測方法主要通過人工對無人機(jī)拍攝的視頻進(jìn)行查驗,不僅耗時費力,而且容易遺漏。本文提出一種結(jié)合空間變換網(wǎng)絡(luò)與Fast RCNN 的生成對抗網(wǎng)絡(luò)ASTN-Fast RCNN,將深度學(xué)習(xí)與無人機(jī)航拍視頻相結(jié)合用于違建場地的自動檢測識別。將空間變換網(wǎng)絡(luò)作為生成器生成形變樣本,通過Fast RCNN 目標(biāo)檢測器與生成器的競爭式訓(xùn)練,提高檢測器的魯棒性。實驗結(jié)果表明,該網(wǎng)絡(luò)能夠提高形變樣本的檢測性能和違建檢查的工作效率。下一步將在本文工作基礎(chǔ)上對復(fù)雜場景下違建場地的特征提取與背景分割進(jìn)行研究,以提升網(wǎng)絡(luò)的通用性,使其適用于更多復(fù)雜場景下違建場地的自動檢測工作。