国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于YOLOv5的違章建筑檢測方法

2021-10-28 06:01:04娟,羅
計算機工程與應(yīng)用 2021年20期
關(guān)鍵詞:損失卷積函數(shù)

于 娟,羅 舜

福州大學(xué) 經(jīng)濟(jì)與管理學(xué)院,福州 350108

隨著我國經(jīng)濟(jì)的的不斷發(fā)展,城市規(guī)模日益擴大,對城市管理也提出更高的要求,其中就包括違章建筑的檢察。城市違章建筑是指不符合土地規(guī)劃和城市管理相關(guān)法律法規(guī),擅自改變建筑樣式的建筑,例如彩鋼瓦房、破舊平房等。城市違章建筑占用城市發(fā)展空間,破壞城市形象,甚至危害到人民的生命財產(chǎn)安全,是我國城市管理發(fā)展路程上迫切需要解決的路障。目前,我國城市管理中的違章建筑檢測主要依賴效率低下的人工訪查方式。隨著無人機航拍科技的不斷普及和深度學(xué)習(xí)方法的日益成熟[1],違章建筑的自動檢測成為可能。

目前,城市違章建筑物的拍攝方式主要有兩種:衛(wèi)星遙感和無人機航拍。在基于衛(wèi)星遙感影像的違章建筑檢測方面,文獻(xiàn)[2-3]采用多時相影像和變化檢測相結(jié)合的方法對違章建筑進(jìn)行監(jiān)測,通過對比不同時期的圖像得到區(qū)域的變化圖斑,并以人工解譯的方式判斷變化區(qū)域,定位違章建筑。文獻(xiàn)[4]改進(jìn)形態(tài)學(xué)標(biāo)記分水嶺算法,強化違章建筑的提取效果,將結(jié)果與定位數(shù)據(jù)進(jìn)行疊加與匹配,得出最終的檢測結(jié)果。由于衛(wèi)星必須在規(guī)定的軌道上行進(jìn),其拍攝范圍受到約束,且其拍攝結(jié)果易受到外部條件的干擾,所以衛(wèi)星遙感影像不適用于城市違章建筑的實時檢測。另一方面,無人機航拍科技近幾年飛速發(fā)展,具有靈活、成本低、操作簡單等優(yōu)點,且其影像分辨率高,能夠清晰地反映建筑物的基本特征,更適用于地面小目標(biāo)的檢測。因此,本文采用無人機航拍圖像作為數(shù)據(jù)源研究城市違章建筑的自動檢測方法。

同時,深度學(xué)習(xí)方法在圖像目標(biāo)檢測問題上表現(xiàn)相當(dāng)出色。2012年,Krizhevsky等[5]提出了一個卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)結(jié)構(gòu)——AlexNet,使用非線性激活函數(shù)ReLu[6]與Dropout[7]方法,在減少過擬合方面取得了卓越的效果。自此,基于深度學(xué)習(xí)的圖像目標(biāo)檢測方法研究迅速發(fā)展,目前已形成兩類主要的檢測流程。其中一類是基于候選區(qū)域的深層卷積網(wǎng)絡(luò),首先生成可能包含檢測目標(biāo)的候選區(qū)塊,再用CNN對候選區(qū)塊進(jìn)行分類和位置回歸并得到檢測框,其代表模型有R-CNN(Region CNN)[8]、Fast R-CNN(Fast Region-Based CNN)[9]和Faster R-CNN(Faster Region-Based CNN)[10]等。另一類為基于回歸計算的深層卷積網(wǎng)絡(luò)的目標(biāo)檢測。這類方法將目標(biāo)定位整合在單一CNN網(wǎng)絡(luò)中,只需進(jìn)行向前運算就能預(yù)測不同目標(biāo)的類別與位置。第二類方法的準(zhǔn)確度較低,但檢測速度比前一類快,其標(biāo)志性模型有YOLO(You Only Look Once)[11]、SSD(Single Shot MultiBox Detector)[12]和YOLOv4(YOLO Version 4)[13]等。

YOLOv5屬于目前比較優(yōu)秀的檢測算法,學(xué)者們將它應(yīng)用于不同對象的檢測中,并提出不同的改進(jìn)方案。對于牛日常行為的實時檢測,文獻(xiàn)[14]改進(jìn)YOLOv5,構(gòu)建牛特征部位的空間關(guān)系向量,對圖像中的多目標(biāo)和重疊目標(biāo)取得較優(yōu)的檢測效果;文獻(xiàn)[15]對YOLOv5網(wǎng)絡(luò)的卷積層進(jìn)行降維并使用非極大值抑制提高了噴碼字符的檢測精度。雖然改進(jìn)后的YOLOv5在各個數(shù)據(jù)集上取得了較優(yōu)的檢測結(jié)果,但是不能直接運用于城市違章建筑的檢測,因為違章建筑多為小目標(biāo)且有許多被部分遮擋的目標(biāo),而YOLOv5的網(wǎng)絡(luò)參數(shù)過多,使得訓(xùn)練時間變長,難度變大,圖像的檢測時間也會變長,難以同時滿足檢測中準(zhǔn)確性和實時性的要求。

綜上,本文提出一種基于YOLOv5卷積神經(jīng)網(wǎng)絡(luò)模型,對無人機航拍的城市建筑圖像進(jìn)行處理,改進(jìn)YOLOv5的批量標(biāo)準(zhǔn)化模塊、損失函數(shù)與網(wǎng)絡(luò)結(jié)構(gòu),自動定位其中的違章建筑,以提高城市違章建筑檢測的準(zhǔn)確率和速度。

1 違章建筑數(shù)據(jù)集預(yù)處理

1.1 數(shù)據(jù)來源

本文研究的違章建筑圖像來自無人機航拍的城鎮(zhèn)建筑影像,尺寸為3 992像素×2 442像素,共107張。圖像為白天晴天航拍,包括彩鋼瓦房和其他疑似違章建筑,其中包括單目標(biāo)圖像、多目標(biāo)圖像以及違章建筑被電線桿等異物遮擋的特殊圖像。圖1為幾種典型的違章建筑示例圖。

圖1 數(shù)據(jù)集中的城市違章建筑的主要類型Fig.1 Main types of urban illegal constructions in data set

1.2 數(shù)據(jù)集構(gòu)建

原本的航攝圖片尺寸較大,如果用原尺寸作為訓(xùn)練所用數(shù)據(jù)集會導(dǎo)致參數(shù)過多的現(xiàn)象,所以首先通過像素變換的方式將原來所有的航拍圖片尺寸統(tǒng)一縮小為608像素×608像素。并且在原圖的基礎(chǔ)上對圖像進(jìn)行旋轉(zhuǎn)變化、裁剪變換、對比度變換等,使得違章建筑圖像有不同的表現(xiàn)形式和尺度,這樣有助于避免過擬合現(xiàn)象的產(chǎn)生,從而提高訓(xùn)練網(wǎng)絡(luò)的泛化能力[16]。圖2為不同表現(xiàn)形式的預(yù)處理圖片。

圖2 預(yù)處理圖片示意圖Fig.2 Schematic diagram of preprocessing picture

通過預(yù)處理后最終得到1 000張城市違章建筑圖片,模仿VOC2007數(shù)據(jù)集格式,利用LabelImg標(biāo)注軟件依次對這些圖片中的違章建筑進(jìn)行標(biāo)注外圍框,轉(zhuǎn)化為訓(xùn)練所需要的xml格式[17]。LabelImg是使用Python語言編寫用于深度學(xué)習(xí)的圖片數(shù)據(jù)集制作的標(biāo)注工具,用來標(biāo)注圖片中目標(biāo)的類別名稱與位置的信息。

1.3 數(shù)據(jù)集分析

1 000幅存在城市違章建筑的圖像中,共有2 062個城市違章建筑目標(biāo),其邊界框分布如圖3所示,縱坐標(biāo)表示標(biāo)記框高度占原圖高度的比例,橫坐標(biāo)為寬度占比。由圖3可知,目標(biāo)框大小具有多樣性,但總體占原圖像比例較小,屬于小目標(biāo),背景信息較多。

圖3 邊界框分布圖Fig.3 Boundary box distribution

2 YOLOv5目標(biāo)檢測算法及改進(jìn)

2.1 YOLOv5算法概述

Ultralytics LLC公司提出的YOLOv5(You Only Look Once version 5),為基于YOLOv4的改進(jìn)版本,是目前從準(zhǔn)確性以及檢測速度效果來說比較優(yōu)秀的單階段(one-stage)檢測網(wǎng)絡(luò)[18]。在吸取了之前版本以及其他網(wǎng)絡(luò)的優(yōu)點之后,YOLOv5改變了之前YOLO目標(biāo)檢測算法的檢測速度較快但精度不高的特點,YOLOv5目標(biāo)檢測算法在檢測準(zhǔn)確度以及實時性上都有所提高,滿足視頻圖像實時檢測需求,同時結(jié)構(gòu)也更加小巧,其網(wǎng)絡(luò)模型分為4個部分,分別為Input(輸入端)、Backbone(骨干網(wǎng)絡(luò))、Neck(多尺度特征融合模塊)和Prediction(預(yù)測端),其網(wǎng)絡(luò)結(jié)構(gòu)如圖4[19]所示。

圖4 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.4 Network structure diagram of YOLOv5

2.1.1 Input端

Input端包含Mosaic數(shù)據(jù)增強、自適應(yīng)錨框計算和自適應(yīng)圖片縮放三個部分。YOLOv5的輸入端采用了和YOLOv4一樣的Mosaic數(shù)據(jù)增強的方式,使用隨機裁剪、隨機縮放和隨機分布的方式對圖像進(jìn)行拼接,將4張圖片拼接,豐富了檢測數(shù)據(jù)集,讓網(wǎng)絡(luò)的魯棒性更好,并且減少了GPU的計算,增加了網(wǎng)絡(luò)的普遍適用性;自適應(yīng)錨框計算針對不同的數(shù)據(jù)集設(shè)定初始的錨框,因原錨框已達(dá)到較好效果,本文實驗的錨框參數(shù)不變,錨框參數(shù)分別為[116,90,156,198,373,326]、[30,61,62,45,59,119]、[10,13,16,30,33,23],并在初始錨框的基礎(chǔ)上輸出預(yù)測框,與真實框進(jìn)行比對,計算差距后再反向更新,不斷迭代網(wǎng)絡(luò)參數(shù),其過程如圖5所示;自適應(yīng)圖片縮放則是將圖像統(tǒng)一縮放成統(tǒng)一尺寸。

2.1.2 Backbone

Backbone包括Focus結(jié)構(gòu)和CSPNET(Cross Stage Partial Network,跨級部分網(wǎng)絡(luò))結(jié)構(gòu)。Focus將輸入的608×608×3的圖像進(jìn)行切片操作,得到304×304×12的特征圖,然后再經(jīng)過32個卷積核的卷積后得到304×304×32的特征圖,其過程如圖6所示。

圖6 Focus結(jié)構(gòu)中切片和卷積得到的特征圖Fig.6 Feature maps obtained by slicing and convolution in focus structure

YOLOv5借鑒YOLOv4主干網(wǎng)絡(luò)中的CSP結(jié)構(gòu),設(shè)計了CSP1_X和CSP2_X兩種CSP結(jié)構(gòu),2者結(jié)構(gòu)如圖4中所示,其中Backbone中包含CSP1_X模塊,Neck中包含CSP2_X模塊。

2.1.3 Neck

Neck使用FPN(Feature Pyramid Networks,特征金字塔網(wǎng)絡(luò))+PAN(Pyramid Attention Network,金字塔注意力網(wǎng)絡(luò))結(jié)構(gòu),其結(jié)構(gòu)如圖7所示,F(xiàn)PN自頂向下將高層的特征信息通過上采樣的方式進(jìn)行傳遞融合,傳達(dá)強語義特征,PAN為自底向上的特征金字塔,傳達(dá)強定位特征,兩者同時使用加強網(wǎng)絡(luò)特征融合能力。

圖7 Neck結(jié)構(gòu)示意圖Fig.7 Neck structure diagram

2.1.4 Prediction

Prediction包括Bounding box損失函數(shù)和NMS(Non-Maximum Suppression,非極大值抑制)。YOLOv5使用GIOU_Loss作為Bounding box的損失函數(shù),有效解決邊界框不重合的問題,并且提高了預(yù)測框回歸的速度和精度。在目標(biāo)檢測預(yù)測階段使用加權(quán)NMS,對于多目標(biāo)和有遮擋的目標(biāo)增強了識別能力,獲得最優(yōu)目標(biāo)檢測框。

2.2 YOLOv5算法改進(jìn)

2.2.1 批量標(biāo)準(zhǔn)化改進(jìn)

批量標(biāo)準(zhǔn)化(Batch Normalization,BN)已成為現(xiàn)代神經(jīng)網(wǎng)絡(luò)穩(wěn)定訓(xùn)練的默認(rèn)組件,在BN中,中心化和縮放操作以及均值和方差統(tǒng)計用于批量維度上的特征標(biāo)準(zhǔn)化。BN的批依賴性使得網(wǎng)絡(luò)具有穩(wěn)定的訓(xùn)練和更好的表示,同時不可避免地忽略了實例之間的表示差異。為了對BN進(jìn)行特征校正,借鑒代表性批量標(biāo)準(zhǔn)化的思想,將原來的BN模塊進(jìn)行改進(jìn),在BN的原始標(biāo)準(zhǔn)化層的開始和結(jié)束處分別添加了中心和縮放校準(zhǔn)[20]。首先對特征進(jìn)行中心校準(zhǔn),如式(1)所示:

式中,X cm為中心校準(zhǔn)后的特征圖,X為輸入的特征圖,滿足X∈RN×C×H×W(N、C、H、W分別表示批量大小batch size、通道數(shù)channel、輸入特征圖高度和輸入特征圖寬度);w m為可學(xué)習(xí)的權(quán)重向量,滿足w m∈R1×C×1×1,其數(shù)值隨網(wǎng)絡(luò)層數(shù)的變化如圖8(a)中所示,大多數(shù)層中的數(shù)值接近于0,并且其絕對值隨著層數(shù)的增加而增加,因為層數(shù)越高網(wǎng)絡(luò)就具有更多特定于實例的特征;⊙是點積運算器,它將兩個特征傳播成同一形狀,然后進(jìn)行點積運算。為了更好地展示其效果,對網(wǎng)絡(luò)中的特征圖進(jìn)行提取,其結(jié)果如圖9所示,可以看出最右邊經(jīng)過中心校準(zhǔn)后的特征圖比中間輸入的特征圖的特征分布更加顯著。

圖8 可學(xué)習(xí)權(quán)重變量折線圖Fig.8 Line chart of learnable weight variables

圖9 中心校準(zhǔn)效果圖Fig.9 Centering calibration renderings

再對X cm進(jìn)行中心化:

式中,E(X cm)表示X cm的均值。再對中心化后得到的X m進(jìn)行縮放,得到式(3):

式中,Var(X cm)表示X cm的方差,ε為避免方差為0而設(shè)置的大于0的常數(shù)。接著在原本的縮放操作上,再添加縮放校準(zhǔn)操作:

式中,w v,w b∈R1×C×1×1為可學(xué)習(xí)的權(quán)重向量,如圖8(b)中所示,與w m類似,大多數(shù)層中趨近于0且其絕對值隨著層數(shù)的增加而增加,R()為受限函數(shù),可以定義為多種形式,這里將它定義為tanh函數(shù),Xcs為縮放校準(zhǔn)后得到的值,其效果和圖9相似。最后如式(5)所示,將訓(xùn)練好的可學(xué)習(xí)尺度因子γ和偏差因子β作線性變換得到最終的代表性批量標(biāo)準(zhǔn)化結(jié)果Y:

通過在BN的原始標(biāo)準(zhǔn)化層的開始和結(jié)束處分別添加了中心和縮放校準(zhǔn),增強有效特征并形成更穩(wěn)定的特征分布,加強了網(wǎng)絡(luò)模型的特征提取能力。

2.2.2 損失函數(shù)改進(jìn)

YOLOv5算法對于目標(biāo)框坐標(biāo)回歸過程中采用的是均方誤差(Mean Square Error,MSE),使用交叉熵作為置信度和類別的損失函數(shù)。但MSE作為目標(biāo)框損失函數(shù),其損失值對目標(biāo)框較為敏感,為了進(jìn)一步提高收斂穩(wěn)定性,本文在對置信度設(shè)計損失函數(shù)時將交叉熵?fù)p失替換為基于KL散度的分布損失函數(shù)。KL散度也被稱為相對熵[21],對于同一個連續(xù)變量的2個概率分布p和Q而言,KL散度的定義式為:

本文使用?表示模型對n個輸入樣本的坐標(biāo)預(yù)測概率分布和真實標(biāo)簽分布之間的KL散度最小化的參數(shù)變化過程,表達(dá)式如式(7)所示:

式中,Q D(x)表示真實標(biāo)簽坐標(biāo)概率分布,P?(x)表示預(yù)測坐標(biāo)概率分布,定義Q D(x)和P?(x)均為高斯分布函數(shù)。真實標(biāo)簽坐標(biāo)概率分布和預(yù)測坐標(biāo)概率分布越接近越好,因此將邊界框回歸損失函數(shù)定義如式(8)所示:

根據(jù)高斯分布函數(shù)性質(zhì)推導(dǎo),得到如下公式:

狄拉克函數(shù)的定義如式(10)所示,由于高斯分布在標(biāo)準(zhǔn)差接近0時為狄拉克函數(shù)的近似,于是將式(9)根據(jù)式(11)中的狄拉克函數(shù)的篩選性質(zhì)推導(dǎo),得到式(12):

由于常數(shù)項對于求導(dǎo)沒有影響,因此可以將不含參數(shù)的項舍去,得到如下公式:

式中,σ的初始值如果較大,很容易導(dǎo)致網(wǎng)絡(luò)在訓(xùn)練的初始階段產(chǎn)生梯度爆炸現(xiàn)象從而導(dǎo)致模型無法正常收斂,且ln在數(shù)學(xué)計算中存在輸入受到限制的問題,因此本文在模型訓(xùn)練的預(yù)測階段令變量α和σ滿足關(guān)系式(14),再將式(14)帶入式(13)中,得到損失函數(shù)如式(15)所示:

為了進(jìn)一步增強模型的魯棒性,本文將KL損失函數(shù)進(jìn)行平滑化處理,當(dāng)|x g-x e|>1時,得到模型邊界框回歸損失函數(shù):

在模型訓(xùn)練過程中,經(jīng)過平滑處理后的損失函數(shù)對噪聲大的樣本數(shù)據(jù)不會產(chǎn)生驟變,從而降低其在反向傳播過程中受到的干擾,模型收斂也更加穩(wěn)定。

2.2.3 網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn)

原YOLOv5中的CSPNET結(jié)構(gòu)將基礎(chǔ)層的特征層劃分為兩部分,然后使用跨階段層次結(jié)構(gòu)將兩者合并,使得網(wǎng)絡(luò)能夠?qū)崿F(xiàn)更豐富的梯度組合信息,然而這也更容易導(dǎo)致信息損失與梯度混淆。因此,本文借鑒mobileneXt網(wǎng)絡(luò)[22]的思想,使用類沙漏狀模塊LSandGlass替代YOLOv5網(wǎng)絡(luò)中的Res unit殘差模塊。LSandGlass模塊的結(jié)構(gòu)如圖10所示,不同于中間具有深度空間卷積的瓶頸結(jié)構(gòu),本文將3×3深度空間卷積層Dwise移動到具有高維表示的殘差路徑的兩端,并將YOLOv5的兩個基本組件CBL置于中間。兩次的深度卷積可以編碼更多的空間信息,并且使得更多的梯度跨多層傳播,減少了信息損失。圖11展示了使用LSandGlass模塊的前后比對,圖11左邊的兩張圖為未使用LSandGlass模塊,連續(xù)使用6次卷積的結(jié)果,可以看出沒有很好地提取出建筑的邊緣特征,信息丟失嚴(yán)重,圖11右邊的兩張圖為使用LSandGlass改進(jìn)后的特征提取結(jié)果,建筑的邊緣特征信息得到了更好的提取,背景信息與特征信息也有更加明顯的區(qū)別。

圖10 LSandGlass模塊示意圖Fig.10 Schematic diagram of LSandGlass module

圖11 改進(jìn)前后對比Fig.11 Comparison before and after improvement

在原版YOLOv5的輸入中,因為其卷積層后邊的全連接層特征數(shù)固定,使得本文的輸入圖像的大小會固定在608像素×608像素,由此得到的特征層網(wǎng)絡(luò)的尺寸分別是19×19、38×38、76×76。特征層尺寸越小,說明其神經(jīng)元感受野越大,也就意味著語義層次更豐富,但會出現(xiàn)局部與細(xì)節(jié)特征丟失。與之相反,當(dāng)卷積神經(jīng)網(wǎng)絡(luò)較淺,感受野變小,特征圖中的神經(jīng)元會偏向于局部與細(xì)節(jié)[23]。為了減少語義丟失,去除主干特征提取網(wǎng)絡(luò)里的19×19特征層,保留其他兩個特征層。這樣不僅減少了語義丟失,還減少了網(wǎng)絡(luò)的參數(shù)量。圖12展示了剔除低分辨率特征層后的檢測結(jié)果,可以看出右邊剔除低分辨率特征層后的檢測結(jié)果比剔除前更好,減少了語義丟失從而降低了漏檢率。

圖12 剔除前后對比Fig.12 Comparison before and after cutting

圖13展示了改進(jìn)后的YOLOv5網(wǎng)絡(luò)的完整結(jié)構(gòu)圖,其中LSG表示LSandGlass模塊,RBN表示改進(jìn)后的BN模塊。

圖13 改進(jìn)后的YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.13 Network structure diagram of improved YOLOv5

3 實驗結(jié)果與分析

3.1 實驗環(huán)境

本文采用違章建筑數(shù)據(jù)集進(jìn)行訓(xùn)練,搭建OpenCV深度學(xué)習(xí)平臺,具體測試環(huán)境:顯卡為Nvidia Tesla V100,顯存為16 GB,CUDA版本10.1,cuDNN版本7.6.5,編譯語言為Python3.8,batch size設(shè)置為16,一共訓(xùn)練200個epochs。

3.2 評價標(biāo)準(zhǔn)

涉及目標(biāo)檢測領(lǐng)域,通常使用召回率(Recall)、精準(zhǔn)率(Precision)和綜合前兩者的mAP(mean Average Precision)對目標(biāo)檢測算法性能進(jìn)行評價[24]。召回率針對樣本,用于描述在所有正例的樣本中,有多少在預(yù)測中被檢測出來,其計算公式如下:

式中,R表示召回率;TP表示算法將樣本正類預(yù)測為正類的個數(shù);FN表示將樣本正類預(yù)測為負(fù)類的個數(shù),即遺漏檢測的個數(shù);精準(zhǔn)率針對最后的預(yù)測結(jié)果,用于描述預(yù)測出來的正例占所有正例的比率,計算公式如下:

式中,P表示精準(zhǔn)率,F(xiàn)P表示將樣本中負(fù)例預(yù)測為正例的個體數(shù)量,即檢測錯誤的目標(biāo)。但一般情況下召回率和精準(zhǔn)率很難都維持在高水平,由此就需要一個參數(shù)來綜合這兩個參數(shù),使用mAP值來衡量檢測網(wǎng)絡(luò)的算法性能,其適用于多標(biāo)簽圖像分類,計算公式如下:

式中,N表示test集中的樣本個數(shù),P(k)是精準(zhǔn)率P在同時識別k個樣本時的大小,ΔR(k)表示召回率R在檢測樣本個數(shù)從k-1個變?yōu)閗個時的變化情況,C則是多分類檢測任務(wù)重類別的個數(shù)。

3.3 對比實驗

首先為了驗證應(yīng)用基于KL散度的損失函數(shù)是否能夠?qū)W(wǎng)絡(luò)收斂能力有所提升,在相同數(shù)據(jù)集上對改進(jìn)損失函數(shù)前后的網(wǎng)絡(luò)分別進(jìn)行相同epoch數(shù)量的訓(xùn)練,損失曲線圖如圖14所示,帶點曲線和不帶點曲線分別表示原YOLOv5網(wǎng)絡(luò)損失曲線和單獨改進(jìn)損失函數(shù)后網(wǎng)絡(luò)的損失曲線。由圖可知改進(jìn)后的損失函數(shù)降低了其在反向傳播過程中受到的干擾從而使得初始損失值更小,模型收斂速度也快于原網(wǎng)絡(luò),說明將原損失函數(shù)置信度中的交叉熵替換為基于KL散度的損失函數(shù)后提高了網(wǎng)絡(luò)的收斂能力。

圖14 改進(jìn)損失前后損失曲線圖Fig.14 Loss curve graph before and after improving loss

接著對改進(jìn)后網(wǎng)絡(luò)整體的收斂性進(jìn)行分析,為了比較改進(jìn)后的YOLOv5網(wǎng)絡(luò)與標(biāo)準(zhǔn)YOLOv5網(wǎng)絡(luò),將對它們進(jìn)行相同epoch數(shù)量的訓(xùn)練,同時,加入YOLOv4網(wǎng)絡(luò)做多元對比。為了方便比對,將改進(jìn)后的模型稱為YOLOv5-Building。首先對比各模型之間損失下降的情況,圖15為三種模型的loss圖,橫坐標(biāo)為epoch個數(shù),縱坐標(biāo)為損失量,實線、虛線和點線分別代表三種不同的模型。可以看到,YOLOv5-Building的loss下降速度比YOLOv5和YOLOv4的loss下降速度更快,說明改進(jìn)后的YOLOv5-Building的損失網(wǎng)絡(luò)收斂速度更快。收斂后YOLOv5-Building的損失波動范圍在0.1~0.2之間,YOLOv5在0.3~0.5之間,YOLOv4則在0.7~0.9之間,本文提出的改進(jìn)模型的損失值更趨近于0且更為平滑。

圖15 損失曲線對比圖Fig.15 Loss curve comparison chart

另外在YOLOv4、YOLOv5和YOLOv5-Building進(jìn)行對比分析的同時,結(jié)合YOLOv3和雙階段檢測網(wǎng)絡(luò)Faster RCNN的測試結(jié)果進(jìn)行多元分析[25],結(jié)果如表1所示。

表1 綜合指標(biāo)測試結(jié)果Table 1 Test results of comprehensive index

表1中FPS(Frame Per Second)代表檢測速度,即算法在每秒鐘里能夠檢測圖片的數(shù)量。分析表1的數(shù)據(jù)可得知,YOLOv5-Building的檢測精度指標(biāo)相較于原來的YOLOv5網(wǎng)絡(luò)有所提高,mAP提高了4.57個百分點,說明YOLOv5-Building準(zhǔn)確檢測城市違章建筑的能力有所提升,并且改進(jìn)后網(wǎng)絡(luò)的檢測速度也有較大提升,F(xiàn)PS提高了9.61。Faster RCNN采取了雙階段檢測機制,二次微調(diào)了anchor區(qū)域,但其mAP較其他算法只超過了YOLOv3,但檢測速度卻遠(yuǎn)低于后者。從整體參數(shù)規(guī)模來看,改進(jìn)后的網(wǎng)絡(luò)代表整體參數(shù)規(guī)模的網(wǎng)絡(luò)權(quán)重從14.1 MB減少為13.2 MB,而且遠(yuǎn)小于其他網(wǎng)絡(luò)的權(quán)重,由此可以看出改進(jìn)后的YOLOv5-Building網(wǎng)絡(luò)在提高了檢測準(zhǔn)確性的同時提高了檢測實時性,并且減少了對電腦硬件的要求,可以部署于更多環(huán)境。

進(jìn)一步對本文提出的改進(jìn)YOLOv5模型進(jìn)行消融實驗以驗證各模塊的有效性。對部分網(wǎng)絡(luò)模塊進(jìn)行替換,其結(jié)果如表2所示,其中CUT表示剔除低分辨率特征層操作。由表中數(shù)據(jù)可知,RBN模塊、LSG模塊和KL散度損失函數(shù)的使用均提高了檢測的精度與速度,而改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)的操作提高了檢測速度,但檢測精度有所下降。RBN模塊由于其強化了網(wǎng)絡(luò)的特征提取能力,明顯對于檢測的精度與速度有較大的提升,分別提高了1.35個百分點和3.21;KL散度損失函數(shù)降低了噪聲干擾,mAP提高了1.87個百分點,但對于檢測速度沒有明顯影響;LSG模塊減少了梯度下降過程中的信息損失,對于檢測的精度與速度也有一定的提升;剔除低分辨率特征層的網(wǎng)絡(luò)由于比沒有剔除低分辨率特征層的網(wǎng)絡(luò)少了一層特征層,同時減少了卷積和拼接等操作,使得網(wǎng)絡(luò)檢測速度有比較明顯的提升,但也因此降低了檢測的精度,由此也顯示出了RBN模塊、LSG模塊和KL損失函數(shù)對于模型檢測精度提高的必要性。

表2 消融實驗測試結(jié)果Table 2 Test results of ablation

3.4 檢測結(jié)果分析

改進(jìn)YOLOv5網(wǎng)絡(luò)前后的檢測結(jié)果如圖16所示。由于無人機拍攝角度等問題,原圖中有部分圖像中的目標(biāo)與圖16(a)、(b)最左邊圖像一樣被遮擋。從圖16(a)、(b)最左邊圖像的對比中可以看出,原YOLOv5對于存在遮擋目標(biāo)的圖像存在漏檢的現(xiàn)象,而YOLOv5-Building在目標(biāo)被遮擋導(dǎo)致部分圖像特征丟失的情況下依然檢測出了目標(biāo),說明YOLOv5-Building提高了圖像特征的提取能力;從圖16(a)、(b)中間和右邊存在多目標(biāo)的圖像對比中可以看出,原YOLOv5存在部分目標(biāo)漏檢的情況,而改進(jìn)后的YOLOv5-Building能夠準(zhǔn)確檢測出圖像中所有的違章建筑目標(biāo),說明改進(jìn)后的網(wǎng)絡(luò)減少了圖像信息損失從而獲取了更多的信息,提高了有效信息完整性,使得漏檢問題得到有效改善。

圖16 改進(jìn)YOLOv5與原YOLOv5檢測結(jié)果對比Fig.16 Improved YOLOv5 and original YOLOv5 detection results comparison

4 結(jié)語

針對人工檢測城市違章建筑費時費力的問題,本文在YOLOv5的基礎(chǔ)上,提出改進(jìn)的YOLOv5城市違章建筑目標(biāo)自動檢測方法。本文方法采用無人機航拍的城市違章建筑圖像,經(jīng)過預(yù)處理構(gòu)建數(shù)據(jù)集,在YOLOv5網(wǎng)絡(luò)中使用改進(jìn)的代表批量標(biāo)準(zhǔn)化替代原有BN模塊,并使用平滑化處理后的KL散度損失函數(shù)替代交叉熵?fù)p失函數(shù),最后用LSandGlass模塊代替殘差網(wǎng)絡(luò)并剔除低分辨率特征層,得到更適用于違章建筑檢測的YOLOv5-Building模型。對比實驗的結(jié)果表明,YOLOv5-Building的損失函數(shù)收斂速度更快,并且與YOLOv5相比FPS提高了9.61,mAP提高了4.57個百分點。

通過將改進(jìn)YOLOv5網(wǎng)絡(luò)應(yīng)用到無人機航拍違章建筑圖像檢測領(lǐng)域,說明深度學(xué)習(xí)在違章建筑的自動監(jiān)察方面具有可行性,能夠用于支持城市建筑管理。并且,由于YOLOv5-Building對建筑中的違章建筑有較好的檢測速度和精度,其還可用于其他類型的建筑異常檢測等方面。

猜你喜歡
損失卷積函數(shù)
少問一句,損失千金
二次函數(shù)
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
第3講 “函數(shù)”復(fù)習(xí)精講
胖胖損失了多少元
二次函數(shù)
函數(shù)備考精講
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
玉米抽穗前倒伏怎么辦?怎么減少損失?
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
左贡县| 全州县| 赣州市| 延津县| 南昌市| 怀柔区| 楚雄市| 望城县| 印江| 宜都市| 两当县| 肇东市| 新宁县| 巴塘县| 正宁县| 高唐县| 施甸县| 同德县| 平顺县| 灯塔市| 天津市| 满城县| 中宁县| 揭东县| 丹阳市| 井陉县| 炉霍县| 上犹县| 洛隆县| 怀宁县| 泾源县| 浮梁县| 华宁县| 孝义市| 咸宁市| 怀安县| 赣榆县| 博爱县| 滨州市| 调兵山市| 高邮市|