• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      改進SSD的輸電鐵塔鳥窩檢測①

      2020-05-22 04:47:32焦良葆
      計算機系統應用 2020年5期
      關鍵詞:類別卷積分類

      祁 婕,焦良葆

      (南京工程學院 人工智能產業(yè)技術研究院,南京 211167)

      引言

      輸電線路在電力系統巡行中扮演著至關重要的角色,一旦產生故障,將會對于輸電網絡造成巨大的經濟損失.影響到輸電線路安全運行的因素有很多,鳥害便是其中之一.近年來,鳥害事故的發(fā)生明顯增多,通過對其分析,鳥窩造成的短路故障這一現象最為普遍,而對于鳥窩的檢測目前采用最多的便是傳統的人工巡檢方法,這就要求巡檢工作人員定期的前往檢查,這種方法不僅效率低,而且容易受地形,天氣等客觀因素影響[1].

      近年來,機器學習的出現帶動目標檢測這一課題也被重視起來,目標檢測就是在所給定的圖片中精確的找到所需物品的位置,并標注其類別.傳統的目標檢測算法代表有:V-J[2]檢測算法、HOG[3]特征+SVM[4]算法、DPM[5]算法,傳統的目標檢測算法流程如圖1所示.

      圖1 傳統的目標檢測算法流程圖

      傳統的目標檢測算法更注重特征的提取,只能夠適用于有明顯特征,背景簡單的圖片,所提取的特征一般較為抽象,不能夠擁有較好的魯棒性.而在實際情況中,無人機所拍攝的照片背景復雜,且所需要檢測的目標復雜多變,很難通過所提取出來的一般的抽象特征對目標進行檢測.

      伴隨著深度學習的不斷發(fā)展,目標檢測技術的研究取得了突破性的進展.基于深度學習的目標檢測方法可以分為兩大類:Two-stage[6]目標檢測算法;Onestage[7]目標檢測算法.Two-stage 檢測算法如Faster RCNN[8]等,是通過一個完整的卷積神經網絡來實現整個目標檢測過程,以CNN 網絡為主干網絡,對圖片進行深度特征的提取,其提取的是CNN 卷積特征,后由RPN[9]網絡產生候選區(qū),并完成其分類,對目標的位置進行初步的定位,最終通過分類和回歸對邊界框進行位置精修和對目標的類別進行判定.One-stage 檢測算法如YOLO[10],SSD[11],Retina-Net 等,是在給定輸入之后,同樣以CNN 網絡為主干網絡完成特征的抽取,然后直接進行區(qū)域的回歸和目標的分類,One-stage 的核心思想就體現在回歸網絡上.對于目標檢測而言,Twostage 的方法則可以獲得高精度,而One-stage 的方法具有高效率的優(yōu)點,能夠實現端到端的實時監(jiān)測,但其檢測精度不如Two-stage 高.

      本文以SSD 算法為基礎對輸電鐵塔上的鳥窩進行目標檢測,通過將前置網絡VGGNet[12]替換為ResNet-101[13],以提升SSD 算法的特征提取能力,并對其損失函數作了改進,將Softmax loss[14]用Focal loss[15]替換,改善了SSD 算法中的樣本不平衡問題,從而使得模型的檢測性能得到提高.

      1 SSD 原理和方法

      1.1 SSD 目標檢測模型

      SSD (Single Shot multibox Detector)算法是一種多框檢測的One-stage 算法,其網絡模型是基于一個前饋CNN 網絡,該網絡產生一個固定大小的包圍框集合,并對這些框中存在的對象類別進行評分,然后利用非極大值抑制方法產生最后的檢測結果.其網絡結構如圖2所示[16].

      圖2 SSD 網絡結構

      總結SSD 算法的核心設計理念可以概括為以下3 點:

      (1)采用多尺度的特征圖進行檢測.

      從圖2可以看出,SSD 以去除了全連接層的分類網絡作為前端的特征提取網絡,在其后面添加了多尺度特征檢測網絡,通過池化操作將這些層的尺寸逐步縮小,對于相同大小的先驗框,高層的特征圖中具有高級語義信息,由于相對應的感受野較大,便于檢測大的目標,而低層的特征圖中具有細節(jié)信息,相同范圍內所對應的感受野更小,便于檢測小的目標,SSD 提出在多個尺度上進行檢測,并且每個特征層用于預測檢測的卷積模型都是不同的,這樣可以提高識別的準確度.

      (2)用于檢測的卷積預測器.

      不同于YOLO 在采用全連接層之后做檢測,SSD是通過卷積直接對特征圖進行提取檢測的全卷積神經網絡,對于網絡中的6 個特定的卷積層輸出采用兩組3×3 的卷積核分別做分類和boundingbox 回歸,其實質就是對6 個特征圖對應的實際有效感受野進行分類和回歸.

      (3)設置多種寬高比的default box.

      Default box 是指在feature map[17]的每一個小格上都有一系列固定大小的box,在default box 寬高比的設置上,SSD 借鑒了Faster R-CNN 中anchor 的理念,所預測的bounding box 是以default box 為基準的,該做法在一定程度上可以減少訓練的難度.對default box 尺寸大小的確定是根據6 層卷積層輸出的特征圖大小決定的,其分別是Conv4_3、Conv7、Conv8_2、Conv9_2、Conv_10_2、Conv11_2,所對應的特征圖大小分別是38×38、19×19、10×10、5×5、3×3、1×1.由于特征圖的不同,所需設置的先驗框的尺度和長寬比也不盡相同.對于先驗框的尺度要遵循線性遞增的規(guī)則,是按式(1)進行計算的.

      式中,smin為 0.2,即最低層的尺度為0.2,smax為0.9,即最高層的尺度為0.9,m是所使用feature maps 的數量.再使用不同的長寬比,用 αr來表示:αr∈{1,2,3,1/2,1/3}.至此,可以求出每個default box 的寬(w)和高(h):由于長寬比有等于1 的情況,即每個特征圖都會有一個尺度為sk的先驗框,除此之外,還會設置一個尺度為且長寬比為1 的先驗框,這樣每個特征圖就會定義6 個default box.

      1.2 目標損失函數

      SSD 在計算損失函數時用到了兩項的加權和,分別是:分類loss:Softmax loss;回歸loss:smoothL1loss.

      其中,Lconf為分類loss,Lloc為回歸loss,N為真實框與標記框所匹配的數量,α為權重值,用于調節(jié)分類loss 與回歸loss 的比例,一般默認值為1,p指代類別序號,當p=0 時表示背景,指代第i個預測框與第j個真實框關于類別p是否匹配,即第i個搜索框和第j個類別框的IOU 是否大于闕值,若大于闕值則取1,反之則為0.cip表示第i個搜索框對于類別p的預測概率,概率通過Softmax 產生,當p的概率預測越高,則損失越小.

      對于分類損失函數,樣本的正負比控制尤為重要,本文將闕值設置為0.5,當搜索框與類別框的IOU 大于闕值時為正樣本,否則為負樣本.在正負樣本的處理過程中,一般負樣本的數目不要超過正樣本數目的3 倍或4 倍,這樣確保其能夠收斂,而當負樣本與正樣本的比例超過3:1 或4:1 時的數據就可歸類為不平衡數據,數據的不平衡會使分類出現嚴重的偏向性,這在一些常用指標上無法顯現出來,但對于準確率的影響很大.

      回歸損失是預測框(l)和ground truth box (g)的smoothL1loss,其相較于L1損失函數的優(yōu)點是收斂速度更快,而相較于L2損失函數,smoothL1loss 對離群點、異常值不敏感,更加魯棒,梯度變化相對較小,訓練時不容易跑飛.

      1.3 改進策略

      1.3.1 前置網絡的改進

      深度學習網絡的深度對于目標的分類與識別有著很大的影響,因此,常規(guī)的思路為網絡越深越好,然而,事實卻并非如此,常規(guī)的網絡堆疊在網絡很深的時候效果卻變差了,其原因之一就是:伴隨著網絡的加深,梯度消失的現象越來越明顯,網絡的訓練效果也隨之下降.SSD 算法較為明顯的缺點就是對小目標不夠魯棒,這主要是由于在淺層提取的feature map 表征能力不夠強,但是現在淺層的網絡已經無法明顯的提升網絡的識別效果,因此,對于SSD 算法的改進所需要解決的問題是在加深網絡的情況下解決梯度消失的問題.本文將SSD 原有的VGGNet 用ResNet-101 進行替換,以提高網絡特征提取能力,從而提升目標檢測精度.由于ResNet-101 比VGG 的網絡更深,所以ResNet-101提取的特征就有更高的語義信息,且ResNet-101 的分類精度比VGG 高,其網絡結構如表1所示.

      表1 ResNet-101 網絡結構表

      在不斷的加深神經網絡深度時,會出現準確率不斷上升后達到飽和,再增加深度時則會導致準確率下降,這一現象的出現并不是由于過擬合,而是由于更深的網絡會導致訓練集和測試集的誤差增大.

      針對網絡越深,梯度消失的現象越明顯這一問題,He KM 等[18]提出一種殘差網絡,該網絡能夠實現identity mapping,即恒等映射.模塊中除了正常的卷積層輸出外,還通過一種連接方式將當前的輸入直接傳遞給輸出,其連接方式為shortcut connection,最終整個結構的輸出為卷積層輸出與該層輸入做算術相加所得,當卷積層的輸出與該層的輸入channel 個數相同時,其公式為H(x)=f(x)+x,而當個數不同時,兩者是不能相加的,其公式為H(x)=f(x)+ωx,其中 ω是用于調整x的channel 維度的卷積操作,這樣人為的將神經網絡的某些層跳過下一層神經元的連接,隔層相連,弱化每層之間的強聯系.這種簡單的加法不會給網絡增加額外的參數以及計算量,同時卻可以增加模型的訓練速度以及提高訓練效果,并當網絡的層數加深時,該網絡能夠很好的解決退化問題.

      VGG-16 中,用于提取小目標信息的是Conv4_3層,作為最淺的網絡層,在信息傳遞時,或多或少的會存在信息丟失、損耗的問題,而ResNet 在某種程度上解決了這個問題,通過將輸入信息直接傳遞到輸出,以保護信息的完整性,使得整個網絡只需學習輸入和輸出差別的那一部分,簡化學習目標與難度.

      值得注意的是,當輸入圖像尺寸為300×300 時,精度不升反降,當輸入為512×512 時,精度才有所提升,這是由于ResNet 網絡很深,在前置網絡后接入SSD 網絡時,根據其接入倒退計算其輸入尺寸時,其輸入的分辨率要增加,而尺寸為300×300 的的圖像對于ResNet而言數值偏小了.在VOC2007 test 上的評估結果見表2.

      表2 VOC2007 test 檢測結果

      1.3.2 損失函數的改進

      對于One-stage 的檢測準確率不如Two-stage 這一問題進行分析,主要原因為樣本的類別不均衡.在目標檢測算法中,對于輸入的一張圖像會產生成千上萬的預選框,但是,其中只有少部分包含真實的目標,換言之,無用的易分反例樣本過多,會使得整個模型學習的方向跑偏,導致無效學習,即只能分辨出沒有物體的背景,而無法分辨具體的目標.

      在所獲得的輸電鐵塔數據原始圖中,有鳥窩的圖片數量僅占4%,且每張圖中鳥窩所占面積較小,即負樣本的數量太大,占據總的loss 函數輸入的大半,這就造成了嚴重的樣本不平衡現象,使得模型的優(yōu)化方向與所期望的背道而馳.為了改善這一現象,本文針對分類損失函數做了一定的改進,將Softmax loss 由Focal loss 代替,Focal loss 是基于Cross Entropy 的改進,用以解決數據不平均的問題,其主要思路直接體現在式(4)中[19].

      式中,pt指 代各個類別的預測概率,(1?pt)γ對loss 有縮放作用,從式(4)中很容易推斷出:當 γ確定時,假設γ=2,在pt=0.9的情況下,說明該類別為easy example,該loss 經過公式變換會縮小至 0.01αt倍;在pt=0.968的情況下,說明該類別仍為easy example,該loss 經過式(4)變換會縮小至 0.001αt倍;而在pt=0.1的情況下,說明該類別為hard example,該loss 經過式(4)變換會縮小至 0.81αt倍.即所有的樣本loss 都會縮小,但hard example 比easy example 縮小的倍數要小.αt的作用則在于平衡權重,解決正負樣本不平衡的問題.改進后損失函數的計算可以總結為式(5).

      2 實驗

      2.1 實驗平臺

      本文實驗平臺具體參數配置如表3所示.

      表3 實驗平臺參數配置

      2.2 數據預處理

      輸電鐵塔的數據原始圖是由某市供電公司提供的,總計40 966 張圖片,其中有鳥窩圖的有1624 張,其數據集類別數量如表4所示.在進行數據訓練之前首先要制作自己的數據集,而在制作數據集之前則是要對數據進行預處理,由于SSD 采用的是固定的輸出尺寸,如300×300 或者512×512,而通過無人機拍攝的圖像尺寸過大,在7000×4000 以上,需要對其進行縮放或者裁剪,本文使用了圖片轉換器對于圖片進行批量的處理,將圖像的尺寸縮至512×512,使之能夠匹配SSD 的輸入.繼而通過數據增廣以提高數據的多樣性,在SSD中的數據增廣對于SSD 網絡識別小物體效果明顯.對圖像進行等比例變換、隨機裁剪加顏色扭曲、水平翻轉、隨機采集塊域、色彩變換、減去ImageNet 中RGB 的平均數等方法經常被用于訓練當中,以提高模型的魯棒性.

      表4 本文數據集類別數量

      對于進行數據增廣之后的圖片,本文使用了labelImg工具給圖片打標簽,由其自帶的pascalVOC可以得到與圖片相對應的XML 文件,進而由XML 文件集合生成可供caffeine 框架讀取的lmdb 文件,由于前置網絡的替換,lmdb 數據的生成隨之也產生變化,要對原Caffe 框架下所自帶的腳本進行修改,依據所標注好的XML 文件來產生新的lmdb 文件.所標圖示例如圖3.

      圖3 圖片標簽示例

      2.3 性能評價指標

      本文采用精確率(Precision,P)和召回率(Recall,R)對算法的性能進行定量評估,其中,P表示有多少目標被正確預測,R表示找到了多少目標,其計算公式為:

      式中,TP表示為被正確地劃分到正例的個數,FP表示為被錯誤地劃分到正例的個數,FN表示為被錯誤的劃分到負例的個數.

      2.4 訓練

      在進行訓練前,需針對電腦配置、搭建環(huán)境,檢測目標及數據預處理時生成的文件路徑等對訓練程序的參數及路徑做一定修改.本文將改進后SSD 算法與原始的SSD 算法在相同數據集中進行對比實驗,為保障實驗的公平性,對學習率,權重衰減及迭代次數進行統一設置,初始學習率為1 0?3,權重衰減為5 ×10?4,前5×104次迭代學習率保持不變,后5 ×104次迭代學習率為1 0?4,總迭代次數為100 000 次,學習動量為0.9.其算法對比結果見表5.

      表5 SSD 算法改進前后檢測精度(%)

      針對該算法的收斂性,和原有的SSD 算法進行對比,其對比的loss 曲線如圖4所示.從圖中可以看出雖然一開始Focal loss 的損失值較大,但隨著迭代次數的增加,其損失快速收斂并逐步穩(wěn)定.

      針對該算法的實時性,在相同迭代次數的前提下,將本文改進后的SSD 算法與Faster-RCNN、原始SSD 算法和YOLO 在使用相同數據集的前提下進行對比,如表6所示.

      圖4 對比損失曲線圖

      表6 算法檢測時間對比

      其檢測效果圖如圖5所示,在圖中可以看出改進后的SSD 目標檢測算法在小目標上的漏檢問題得以改善.

      圖5 SSD 算法改進前后效果對比圖

      3 結束語

      本文針對輸電鐵塔上的鳥窩檢測的問題,提出了了基于SSD 算法改進的目標檢測網絡,主要做了以下兩方面的改進:(1)將SSD 原有的前置網絡VGGNet替換為ResNet-101,通過加深網絡提升SSD 算法的特征提取能力,提高對小目標的檢測精度.(2)將損失函數中的分類函數Softmax loss 用Focal loss 替換,改善了SSD 算法中的樣本不平衡問題.實驗結果證明本文提出的改進方法比起原SSD 算法更能實現對小目標的檢測,能夠提升目標檢測的準確度.

      猜你喜歡
      類別卷積分類
      基于3D-Winograd的快速卷積算法設計及FPGA實現
      分類算一算
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      分類討論求坐標
      數據分析中的分類討論
      基于傅里葉域卷積表示的目標跟蹤算法
      教你一招:數的分類
      服務類別
      新校長(2016年8期)2016-01-10 06:43:59
      論類別股東會
      商事法論集(2014年1期)2014-06-27 01:20:42
      一種基于卷積神經網絡的性別識別方法
      電視技術(2014年19期)2014-03-11 15:38:20
      普定县| 临汾市| 保亭| 墨脱县| 罗田县| 永善县| 怀化市| 安仁县| 徐闻县| 于都县| 仁怀市| 都江堰市| 九龙坡区| 苗栗县| 石楼县| 娱乐| 海淀区| 光山县| 阿拉尔市| 许昌市| 驻马店市| 兴宁市| 万安县| 凤阳县| 永城市| 南安市| 建德市| 白河县| 秦皇岛市| 侯马市| 三门县| 峨眉山市| 汤阴县| 陇西县| 安阳市| 丰都县| 广平县| 安仁县| 崇阳县| 靖安县| 甘洛县|