• 
    

    
    

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

      基于密集模塊與特征融合的SSD目標檢測算法

      2020-08-19 10:42:00秦曉偉
      計算機工程與應用 2020年16期
      關鍵詞:特征提取梯度卷積

      周 凡,樸 燕,秦曉偉

      長春理工大學 電子信息工程學院,長春 130022

      1 引言

      在人工智能與各行業(yè)深度不斷融合的大背景下,各個領域都能看到其被應用的場景,像智能農業(yè)、生物識別[1]、智慧醫(yī)療[2]等熱門領域。得益于計算機視覺與深度學習[3]的快速發(fā)展,有大量的基于神經網絡的相關目標檢測算法被提出和不斷改進。

      SSD(Single Shot Multibox Detector,SSD)[4]算法所代表的單階段檢測算法在實踐應用方面可操作性更高。端到端的學習模型將回歸模型運用于檢測問題上,省去了兩階段網絡中構建候選區(qū)域這一操作。但是與兩階段檢測算法相比,在小目標或被遮擋的弱目標識別上檢測精度要低一些。針對這一問題,目前已經有很多學者對SSD 進行了改進。例如Zhu 等[5]提出的FD-SSD模型、Li 等[6]提出的 FSSD 模型、Fu 等[7]提出的 DSSD 模型、Jeong等[8]提出的RSSD模型等。這些模型的改進思路大致相同,都利用了反卷積和特征融合的方式增強底層卷積網絡的語義信息,并替換特征提取更強的基礎網絡以保證特征信息能夠在傳播過程中得以更好保留。不過在精度提高的同時,往往降低了計算效率。因此本文采取相應的措施以平衡精度與速度之間的關系。故本文提出一種基于改進Inception-Dense 基礎網絡結合特征融合的方法,對SSD進行針對小目標檢測的改進。

      (1)設計了參數更少、特征提取更精細的Inception-Dense網絡。替換了原VGG16網絡;減少了由于小目標在原圖中占比較小的情況下,經過前饋網絡的層層傳播(卷積、池化操作);在深層卷積層上保留的特征信息越來越少甚至消失,導致真實目標與先驗框難于匹配,降低檢測精度的情況發(fā)生。

      (2)增加不同尺度的feature map 輸出。原有算法中針對小目標的feature map只有低層卷積層Conv4_3,本文在替換基礎網絡的前提下使用兩個不同尺度的低層卷積層進行小目標檢測,以此來實現檢測信息的多元化。

      (3)根據數據集的特性,重新調整了原有的特征框映射機制,使得特征框映射更加準確。

      (4)借鑒特征金字塔網絡(Feature Pyramid Networks,FPN)檢測算法思想,在不同尺寸的feature map之間進行特征融合。

      2 相關網絡模型

      2.1 SSD網絡模型

      SSD 作為典型的單階段模型,如圖1 所示,原網絡的構建思想并不復雜:(1)位于前端的特征提取結構(基礎網絡)。SSD采用了VGG 16的前5層,并用卷積層替換了原有的FC6 和FC7。(2)位于后端的是新增加的級聯卷積層,作用是對基礎網絡產生的特征層進行不同尺度的特征提取。在整個模型中,輸入圖像在進入網絡之后不斷向前傳播,在此過程中生成了不同分辨率和語義抽象層次[9]的特征圖。

      SSD希望在低層次卷積層輸出的高分辨率、低語義信息的特征圖上進行小目標的分類和邊界回歸,在高層次卷積層輸出的低分辨率、高語義信息的特征圖上進行大目標的分類和邊界回歸。因為低層卷積層的分辨率高,幾何細節(jié)信息表達能力強,小目標也不會丟失太多的位置信息。高層卷積層的大目標因為在圖片中的占比大,加上語義信息豐富,所以也能夠精確地定位和識別。這個思路是正確的,但是存在明顯的問題,就是低層卷積層中的小目標即使經過少許的卷積和池化操作,也會丟失掉足夠的特征信息以至于影響識別結果,降低檢測精度,故在小目標識別上沒有達到預期的效果。參照式(1)觀察到當k很大時,Φn-k代表的低層次卷積特征圖的抽象程度滿足不了檢測的精度。其中Φn為第n層特征圖,tn(·)為根據第n層特征圖運算得到的目標檢測結果的函數,D為最終檢測的結果。公式如下[4]:

      2.2 inception網絡(GoogLeNet)

      縱觀近幾年神經網絡的發(fā)展,研究人員傾向于加深網絡的深度來提高識別精度,但同時會帶來龐大的計算消耗和過擬合等問題。inception 結構正是受到生物神經系統(tǒng)中廣泛稀疏連接的方式及NIN(Network In Network)思想的啟發(fā),嘗試將卷積結構轉化為稀疏連接。但并非隨機的稀疏連接就能達到理想效果,因為計算機的高計算性能在非均勻數據下無法得到保證。所以inception結構[10-11]采取了相應的措施來實現密集成分近似最優(yōu)的局部稀疏結構。如圖2(a),首先采用了1×1、3×3、5×5大小的卷積核來提取特征,以對應不同級別的特征圖片。原理參照圖2(b),圖像中突出部分的尺寸存在著差別。例如每張圖像中目標(狗)所占據的比例不同,從左到右所占據的區(qū)域依次減少。故由于信息位置的差異,進行恰當的卷積就比較困難。信息分布更全局性的圖像偏好較大的卷積核,信息分布比較局部的信息偏好較小的卷積核。而在同一層上并聯不同尺寸的濾波器就可以解決這一問題,網絡會因此變寬。同時為了降低5×5卷積核帶來的過多的計算消耗,inception后期的結構中加入了1×1 卷積進行降維。1×1 卷積也能夠在保持原結構的前提下增強非線性。最后將相同維度的特征進行跨通道的聚合。通過上述inception 結構的操作就可以得到圖像更好的表征,檢測精度由此得到提高。

      圖1 SSD模型結構

      inception 網絡(GoogLeNet)[12]正是采用模塊化的inception結構,將不同的子結構層疊在一起。從2014年被提出之后,陸續(xù)地提出了多個版本的inception 網絡:Inception V1、V2、V3、V4以及結合殘差模塊的Inception-ResNet V1、V2。

      3 Inception-Dense-SSD模型的具體實現

      本部分對改進模型的理論依據、構建思路及實現方法進行必要的解釋說明和推導。

      3.1 提出Inception-Dense特征提取結構

      替換特征提取結構是改進SSD 各類方法中常見的做法,例如替換成ResNet[13]、DenseNet[14]等新的特征提取網絡。此外,為了將網絡部署在移動嵌入式設備上,將基礎網絡替換成SqueezeNet 等輕量化網絡,使CNN脫離實驗室的限制,更方便地應用于移動端。

      本文選用了Inception-ResNet-V2為模型,并對其做了一些改進。把原有的Inception-ResNet-V2 網絡截取到Inception-ResNet-C 模塊處,并將原網絡中的殘差模塊替換成了密集模塊。通過查閱研究文獻[14]發(fā)現,如式(2)所示,殘差模塊分為兩部分H(x)與x。即使在訓練過程中去除掉H(x),只保留x(殘差塊),網絡依舊會保存較好的精度。這是因為x(殘差塊)才是梯度的主要來源,所以在訓練過程中ResNet 并不能充分地利用計算資源,有浪費算力的情況。故本文借鑒了Huang等人在2017年提出的DenseNe(t密集網絡)。

      如圖3所示,DenseNet與ResNet都建立起了前饋網絡中后層與前層的連接。但是DenseNet連接方式更加稠密,建立了每一層與前面所有層的連接。也就是說每個層都會接受前面所有層作為其額外的輸入,連接數量更加龐大。每一層的輸入計算公式為:

      其中,[x0,x1,…,xl-1]是指0…l-1 層中產生的特征映射。這里l層與l-1 層之間可能實際上包含多個卷積層。除此之外,DenseNet在建立層與層之間的連接方式上也有區(qū)別。ResNet 是通過元素級相加(add 操作)。DenseNet是在維度上相加(concat操作),這樣既保持了ReseNet 中減輕梯度消失和加強特征傳遞和效率的特性,concat操作還能夠實現更加原始的特征重用。

      圖3 殘差模塊與密集模塊結構示意圖

      圖4中改進的Inception-Dense特征提取結構在參數相對較少的情況下還能保持優(yōu)秀的精確度,這得益于inception模塊與dense模塊的特性。在保證網絡速率方面:inception模塊中由稀疏連接、卷積分解與1×1降維卷積來保證計算的速率。但本文經過實驗表明:計算推導中的n×n卷積都可以分解成一個1×n和一個n×1。不過在網絡前期,使用filter 分解會造成精度的輕微降低。故本文只在改進結構的中后期運用此操作。而dense模塊中的稠密連接方式極大地縮短了前層與后層的連接,提升了層間信息的流動,故每一層產生的特征圖相比其他網絡少了很多,計算量由此得到充分地減少。除此之外,本文在構建網絡的時候,在每個卷積層中都增加了BN層。同時嚴格控制了各層輸出的維度,并沒有512、1 024那樣大數量的維度設置。也沒有設置維度驟增驟減的連接方式,避免對層的壓縮過大,丟失信息,導致網絡表達的瓶頸。在dense 塊中的學習率k也設置為12,以此保證網絡寬度不會過寬。密集模塊中如果將每個函數Hl產生k個特征圖作為輸出,則第l層的輸入維度為k×(l-1)+k0。其中k0是輸入圖像的維度,k是學習率。

      在提升檢測精度方面:通過2.2節(jié)的詳細介紹可知,inception 結構包括多個分支,分別對應不同的感受野,同時不同感受野的特征信息最終通過concat 操作進行特征融合。而dense 模塊對比于普通卷積網絡,它的稠密連接與concat 操作可以融合、利用更多低層次的特征,強化了特征的傳播和復用。除此之外,inception 結構與dense結構都有一個共同的優(yōu)點,即減少計算參數,減少梯度彌散,有利于深層網絡的構建。而梯度更新就是用來更新和計算影響模型訓練和模型輸出的網絡參數,調整網絡的學習使網絡逼近或達到其最優(yōu)值,故在檢測精度方面的影響是巨大的。

      圖4 Inception-Dense模型示意圖

      圖5(a)為斯坦福大學講解梯度傳播的簡化說明圖。在神經網絡中,梯度的傳播分為前向傳播和后向傳播。傳播時的計算過程遵循鏈式求導法則。圖中綠色和紅色箭頭分別代表梯度的前向和后向傳播過程。假設L為代價函數,x、y分別為輸入。從圖中可以清晰地理解:每一部分的梯度為最終梯度與局部梯度的乘積,即而將此思想代入到如圖5(b)所構建一個簡單的BP網絡時,設w1,w2…為權重,b1,b2…為偏置量,L為代價函數。其中神經元輸出之后需要經過激活函數sigmod:σ,則輸出為ai=σ(zi)。進而zi+1=wi+1×ai+bi+1就代表下一層的加權輸入。根據鏈式求導法計算出隱藏神經元的梯度,如式(4)所示:

      圖5 梯度傳播和簡單BP網絡示意圖

      然后根據sigmod函數導數的圖像,它的導數在1/4時達到最高。若使用零均值單位方差的正態(tài)分布來進行權重的初始化操作,那么所有的權重都會滿足,故wiσ′(zi)<1/4。又因為每一部分的梯度為最終梯度與局部梯度的乘積,則神經網絡中淺層上的梯度來自于深層梯度的連乘。而通過上文的推算可知,權重的連乘會導致指數下降。因此梯度在進行反向傳播的時候,即使回傳到了第一層,但是由于梯度嚴重地衰減甚至無限接近于0,導致前層神經元權重更新緩慢,無法學習,大幅降低網絡的識別精度。這就是所謂的梯度彌散現象。

      此時如圖6 構建了一個兩層的denseblock,結構與殘差網絡有些相似,但是存在著差別。通過鏈式求導法則,計算從L反向傳播到l1梯度如式(5)所示:

      其中,concat 為通道數相加操作。Wconcat1 表示在W(權值矩陣)與一個l1的尺寸大小且全為1 矩陣進行維度相加。即表示當梯度在此結構中進行反向傳播的時候,兩層的denseblock 可以通過右側的短連接結構,將深層的梯度直接通過維度相加的方式,添加到了淺層中,使淺層中的權值可以得到很好的訓練。而若是在多層的denseblock 結構中,如圖3(b)所示,每一層的梯度都是前面幾層梯度的加乘,故密集結構使梯度在反向傳播的過程中避免了彌散、消失,檢測精度由此得到有效的提高。

      圖6 兩層DenseNet結構示意圖

      此外,dense結構和inception結構中還有BN層,BN通過規(guī)范化輸入數據改變數據分布,從而在梯度的前傳過程中消除彌散現象。兩者的結合使得梯度在前傳和后傳的過程中都極大化避免了過度衰減甚至彌散的現象,故網絡得到很好地訓練與學習,從而檢測精度得到毋庸置疑地提升。

      3.2 增加不同尺度的feature map輸出

      經過2.1節(jié)的介紹,在多尺度預測的策略設置上,原SSD網絡雖存在低層卷積層缺乏足夠的語義信息,導致降低小目標檢測精度的缺陷,但本文通過更換特征提取結構以及構建特征融合模塊的操作,增強了不同層次之間特征的融合與復用,可以極大程度地增加低層卷積層的語義信息。故可沿用原SSD的多尺度策略。

      在Kitti數據集中,交通場景下的行人與非機動車屬于小尺寸物體。因此參照圖4 與圖8,本文選取低層卷積層中DenseBlock1、Reduction-A、DenseBlock2、Reduction-B這四層輸出的特征圖對這兩個類別進行檢測實驗。選取的4 個低層卷積層以及與原SSD 中Conv4_3在特征提取上的精度對比如表1所示。由結果可見,通過改進特征提取結構與特征融合手段之后,增加了檢測信息的豐富程度和低層卷積層的語義信息,檢測精度得到了有效提高。但在保證精度的前提下,出于對檢測速度的考量,若再增加不同的尺度進行預測就意味著增加相應的計算成本。故本文只選用了Block-1 與Block-2之后輸出的兩個尺度(75×75、37×37)的特征圖進行小目標預測,沒有選擇更多的特征圖。加上原SSD網絡設置的對中大目標進行檢測的特征圖尺度,本文一共選用了{75×75,37×37,19×19,10×10,5×5,3×3,1×1}7 個尺度,覆蓋了各類尺度的目標檢測。

      表1 低層卷積層特征提取效果對比

      3.3 基于特征金字塔的特征融合方法改進低層特征區(qū)域映射

      本文借鑒特征金字塔[15(]FPN)的思想,通過反卷積操作將語義信息強的低分辨率特征圖映射為高分辨率特征圖,通過元素相加實現特征融合。如圖7 所示,傳統(tǒng)的FPN算法左側bottom-up結構為特征提取網絡的卷積過程。特征圖的尺寸自下而上逐漸減小,語義信息逐漸增強。右側是top-down結構,自上而下地對左側特征層進行上采樣和融合。

      圖7 FPN算法結構圖

      圖中“⊕”為融合單元,其結構如標注框內所示。先對上層特征層進行雙線性插值的上采樣,而后與左側經過1×1 的卷積操作的特征層直接相加。相加完成后經過一個3×3 的卷積操作,去除混疊效應之后輸出魯棒性更強且精準度更高的特征圖。輸出的特征圖公式為式(6):

      其中,φn為第n個經過FPN結構融合之后的特征圖;g為FPN結構運算函數;f為卷積操作,右上角標代表卷積核的尺寸;v代表雙線性插值函數;Fn代表特征提取結構中的第n層特征圖。

      如圖8 所示。Inception-Dense-SSD 模型與原SSD模型在結構設置上都是由特征提取結構和多尺寸檢測兩部分構成。本文在多尺寸檢測的部分,增加了改進的FPN 特征融合模塊。這是考慮到原SSD 對于大目標的檢測能力是比較優(yōu)異的,再加上已經替換了精度更高的特征提取結構,為了不增加計算冗余,故采用了跳躍連接的改進手段。即對網絡中的Block-3、Conv6層不進行上采樣、融合等操作,僅針對中小目標檢測的Block-1、Block-2與Conv7層進行與高層卷積層的特征融合。

      通過上述的措施,可以在保證計算效率的前提下,既能將低層卷積層幾何表征能力強的優(yōu)勢保留,又能融合到高層卷積層中完善的語義信息,對中小目標的檢測能力有著極大的提升。

      圖8 Inception-Dense-SSD模型示意圖

      3.4 默認框映射設置

      在神經網絡中,圖像經過每一層會輸出不同尺寸的特征圖。圖中的特征信息與目標之間的對應關系是由網絡設置的默認框映射機制決定的。因此對網絡模型進行改進的同時也需要相應地重新設置默認框映射機制。故計算公式為式(7):

      其中,m為進行預測的特征圖個數,此處m=7。sk為默認框與輸入圖像的尺寸比例。smin與smax為設置比例的最小值及最大值。本文將Block-1 和Block-2 單獨設置為0.08與0.15。smin設置為0.2,smax設置為0.8.則7 個特征圖上默認框的尺度系數分別為(0.04,0.08,0.15,0.35,0.55,0.75,0.95)。而本文輸入圖像的大小為300×300,與尺度系數相乘得到7 個特征圖對應的默認框尺度為(15,24,45,105,175,225,285)。

      除了尺寸系數,默認框的大小還與寬高比有關。實際尺寸的計算公式如式(8):

      由于網絡的預處理機制,輸入圖片會轉化成300×300。而訓練用Kitti 數據集中的圖片大部分都是使用相機拍出來的,比較寬(原尺寸1 200×300),故實際的真實框會窄一點。而扁長形的汽車目標占多數,行人目標也基本上是瘦高型的。綜上設置的長寬比為{1,2,3,1/3,1/4}。

      4 實驗結果與分析

      實驗的軟硬件環(huán)境為深度學習框架TensorFlow,Windows Server2016 系統(tǒng),GPU 顯卡型號為 NVIDIAGTX1080ti-12G。

      4.1 實驗數據集

      選擇Kitti數據集中隨機打亂的7 481張圖片作為訓練集,7 581 張圖片作為測試集,并將類別進行精簡,相似的類別進行合并之后,共機動車、非機動車、行人3類。

      4.2 實驗結果分析與對比

      4.2.1 改進模型與相關SSD模型的性能對比

      由表2 可以看出,SSD512 由于改變了輸入圖像的尺寸,使得圖像在前饋網絡進行層層傳遞的時候仍可以在深層卷積層中保留一些細節(jié)信息。mAP(平均精度)和各類別的單獨精度都有所提升。但是尺寸變大,參數也會相應地增加,因此速度下降到了原速度的50%左右。而DSSD321同樣也在mAP和小目標識別精度上得到了提高,但是采取的特征融合方式比較低效,因此時間效率低,并不適用于實時檢測的應用范疇。圖9中黃色框代表輸入圖像中的漏檢目標。通過比較與SSD512、DSSD算法的檢測結果,本文提出的Inception-Dense-SSD模型在漏檢的情況上有較好的改善,檢測出了更多的中小目標,且計算出的概率值也更高。

      表2 Kitti數據集下SSD相關算法性能對比

      圖9 Kitti數據集檢測結果1

      4.2.2 改進模型與其他檢測的性能對比

      由表3可以看出,兩階段中具有代表性的FPN-FasterRCNN模型的精度最高,但其速度無法滿足最基本的實時性要求。而本文的改進模型與YOLO-V3 相比,識別率在非機動車和行人小目標上的AP值提升在1個百分點左右,mAP的提升在2個百分點左右。這是由于YOLOV3[16]采用了提取效果優(yōu)異的DarkNet-53,將分類器替換成Logistic loss[17]且每個ground truth 只匹配一個先驗框,再結合FPN 算法,使得小目標識別得到了極大地提高。但是它的弱勢在于大目標識別上并沒有得到相同水平的提高,因此本文算法在大目標識別上取得了優(yōu)勢。再加上本文算法中應用了inception網絡稀疏連接,比ResNet更快更優(yōu)的dense模塊以及其他限制操作,使得在FPS 這個評價指標上優(yōu)勢更加明顯。故可以得出本文提出的Inception-Dense-SSD 模型在計算精度與實時性之間達到了更加優(yōu)異的表現與平衡。圖10中綠色框代表尺寸過小且在被大面積遮擋情況下導致漏檢的目標,可以看出YOLO-V3 與本文模型在小目標識別上表現都相當出色,但是在后期還需要在被遮擋目標上做出改進,增強目標在尺寸變形、光影變化、大面積遮擋情況下的識別精度。

      表3 Kitti數據集下本文算法與主流算法性能對比

      圖10 Kitti數據集檢測結果2

      5 結束語

      本文首先闡述了SSD 及相關網絡的理論基礎。然后詳細解釋了工作的思路及成果:吸取了inception模塊中稀疏連接與密集模塊中密集連接的研究思路,將兩種連接思路相結合提出了Inception-Dense結構,保證了該特征提取結構的速度與精度。在多尺度檢測部分,借鑒并改進了FPN的特征融合模塊,重點加強對中小目標的檢測能力,并且對默認框映射機制的重新設定也使得檢測結果更加精確。實踐表明,本文提出的檢測模型的精度相對于原SSD模型有著很大的提升,mAP提升了11個百分點。FPS從原來的39提升到了54。在未來的研究工作中,將繼續(xù)改進網絡模型,增強特征信息的共享,提高計算效率,使得速度與精度達到優(yōu)異的平衡。

      猜你喜歡
      特征提取梯度卷積
      一個改進的WYL型三項共軛梯度法
      基于3D-Winograd的快速卷積算法設計及FPGA實現
      一種自適應Dai-Liao共軛梯度法
      應用數學(2020年2期)2020-06-24 06:02:50
      從濾波器理解卷積
      電子制作(2019年11期)2019-07-04 00:34:38
      一類扭積形式的梯度近Ricci孤立子
      基于Daubechies(dbN)的飛行器音頻特征提取
      電子制作(2018年19期)2018-11-14 02:37:08
      基于傅里葉域卷積表示的目標跟蹤算法
      Bagging RCSP腦電特征提取算法
      基于MED和循環(huán)域解調的多故障特征提取
      一種基于卷積神經網絡的性別識別方法
      電視技術(2014年19期)2014-03-11 15:38:20
      开原市| 高邮市| 陕西省| 石柱| 玉田县| 中方县| 松江区| 遂川县| 宣汉县| 南澳县| 会东县| 商南县| 左权县| 缙云县| 于都县| 东平县| 什邡市| 灵山县| 武宣县| 双桥区| 大竹县| 平山县| 双江| 乐东| 景东| 台前县| 沿河| 息烽县| 桂林市| 日照市| 潼关县| 晋宁县| 牟定县| 醴陵市| 阜阳市| 汉阴县| 阿拉善左旗| 安图县| 新龙县| 侯马市| 潮安县|