?

基于改進SSD算法的行人檢測方法

2020-11-02 11:52董永昌單玉剛
計算機工程與設計 2020年10期
關鍵詞:置信度網絡結構行人

董永昌,單玉剛,袁 杰

(1.新疆大學 電氣工程學院,新疆 烏魯木齊 830047;2.湖北文理學院 教育學院,湖北 襄陽 441053)

0 引 言

隨著深度學習在目標檢測領域的表現日益突出[1]。先后出現了R-CNN系列[2-4]、YOLO系列[5-7]、SSD[8]等目標檢測方法。相對來說,R-CNN方法在檢測精度上更好,YOLO方法在檢測速度上表現更優。在行人檢測方面:文獻[9]改進Faster R-CNN中候選框的選取方法,使得行人檢測的精度有了一定的提高。文獻[10]根據行人在圖像中的幾何特點,對YOLO網絡結構進行優化,取得了不錯的檢測效果。

SSD(single shot MultiBox detector)算法是一種以VGG[11]為前置網絡的目標檢測算法。它會均勻地在圖片上產生不同大小和長寬比的候選框,然后利用卷積層提取圖像特征,最后是回歸和分類。文獻[12]對SSD的基礎網絡部分進行改進并在檢測階段對不同特征層添加縮放因子,提高了行人檢測的準確性。文獻[13]用MobileNetV2作為SSD模型的基礎網絡,有效減少了圖像特征提取過程中花費的時間及運算量。DenseNet[14]是一種密集連接的卷積神經網絡,比VGG其更易于訓練,且精度更高。本文提出一種以DenseNet模型為前置網絡的SSD算法。與SSD、YOLO、Faster R-CNN等模型進行對比,實驗結果表明,改進的SSD模型具有更高的準確率。

1 相關模型

1.1 SSD檢測原理

原始的SSD以VGG16或VGG19作為其前置網絡,本文以前置網絡為VGG16的SSD300模型為網絡架構,其網絡結構如圖1所示。

圖1 SSD網絡結構

該模型要求輸入圖片大小是300×300,然后根據VGG16網絡結構,將其前5層做為基礎,將兩個全連接層轉換為兩個卷積層,并在其后添加3個卷積層和一個平均池化層所組成。網絡在Conv4_3、Conv7、Conv8_2、Conv9_2、Conv10_2、Pool11層上輸出一組不同寬高比和不同大小的默認框。

默認框的生成是以特征層上每個點為中心生成一系列同心框,每個特征層上默認框的尺寸由式(1)確定

(1)

式中:m指不同預測特征層尺寸的數量,SSD300中預測特征層尺寸的數量為6,同時Smin為0.2,Smax為0.9。

而更小的特征層意味著更大的感受野,更大的特征層意味著更小的感受野。因此不同特征層上相同尺寸的默認框在輸入圖像上的映射范圍是不同的,在其默認框生成各自的置信度和位置信息之后,通過reshape來調整特征層為相同尺寸,之后用非極大值抑制和Softmax得檢測結果。

1.2 DenseNet模型

DenseNet模型是一種用于圖片分類的模型,與VGG、ResNet[15]和Inception[16,17]不同,它是一種前饋方式的密集型連接(dense connection)的網絡,即

Xl=Hl([X0,X1,…,Xl-1])

(2)

其中,Xl表示第l層的輸入,[]表示將X0,X1,…,Xl-1所有輸出進行組合拼接,H表示批量正則化、ReLU激活函數以及Conv(3×3)卷積層的組合。這種連接方式加強了網絡中各層之間的信息交流,有效提高了網絡的訓練效率,以DenseNet-121為例,其網絡參數見表1。

表1 DenseNet-121網絡結構

其中,Stride默認為2,用Dropout來隨機丟棄一部分特征層來減少參數。由于在DenseNet中需要對不同特征層進行拼接,所以要求Dense_Block中的特征圖尺寸保持相同的尺寸,在相鄰兩個Dense_Block之間設置過渡層(transition layers)進行下采樣,過渡層由批量正則化、(1×1)的卷積層和 (2×2)的平均池化層組成。在Dense_Block中,輸入先經過1×1卷積核來減少特征圖數量,然后作為3×3卷積核的輸入進行運算,大大減少了計算量,過渡層通過參數縮減將輸入到該層的特征圖數量減小到原來的一半。

2 行人檢測算法

2.1 改進SSD網絡結構

本文用DenseNet-121作為SSD的前置網絡。首層是3×3的卷積層,然后經過4個分別含有6層、12層、24層、16層的Dense_Block,每兩個Dense_Block之間是非線性變換BN+ReLU+Conv(3×3)的組合,DenseNet之后是4層包含1×1和3×3卷積層。最后,選取后兩層Dense_Block和4個卷積層進行目標框的選取。新構建的網絡在選取目標框的時候能夠更好利用不同特征層的信息。其網絡結構模型如圖2所示。

網絡中Growth_k為 24,Dropout_rate為0.5。優化函數使用Adam(adaptive moment estimation),它綜合了一階矩估計和二階矩估計來計算梯度下降的更新步長。相對于其它優化函數其具有效率高,實現方便,內存使用率低等優點。

圖2 本文網絡結構模型

SSD網絡結構在一定程度上利用了淺層網絡的目標特征,降低了因網絡太深而造成的模型參數數量暴增和梯度消失的風險。但是,更淺的特征層意味著更弱的表征能力,所以可以通過提高淺層網絡的表征能力來提高網絡的檢測性能。本文以DenseNet作為SSD的基礎網絡,與傳統的SSD模型相比,該模型不僅有效緩解了梯度消失問題,使得網絡更加容易訓練,又大幅度減少了網絡的參數量,而且加強了特征向更深層次傳播。

2.2 損失函數選擇

損失函數由兩部分組成:置信度損失和位置損失,如式(3)~式(5)所示

(3)

其中

(4)

(5)

其中,N為匹配成功的默認邊框數目,Lconf(x,c)代表置信度損失,Lloc(x,l,g)代表位置損失。用Smooth L1函數的好處是當預測框和真實框差距過大時避免梯度爆炸,當預測框和真實框差距過小時梯度不至于消失。

2.3 行人檢測算法流程

整個算法流程分為訓練模塊和測試模塊。在訓練模塊,為了使訓練模型具有更強的泛化能力,防止訓練模型過擬合,將原始數據集進行擴充增強。之后將數據標注成VOC2007數據格式用于訓練、測試和驗證,最后將批量輸入圖片送入設計網絡進行訓練并得到最終訓練模型。在測試模塊,網絡會首先在輸入圖片中生成默認框,并判斷默認框的置信度,然后根據訓練模型對目標框進行位置和置信度的調整,最后在產生的N個檢測框中利用非極大值抑制原理產生最終的檢測結果。其算法流程如圖3所示。

圖3 算法流程

3 實驗與分析

3.1 實驗平臺

仿真的實驗環境為:Win10的操作系統,英特爾i5-9400F處理器和NVIDIA GeForce GTX 1070顯卡。實驗采用Python編程語言在Tensorflow深度學習框架上進行模型的訓練和測試。

3.2 數據集構建和模型訓練

本文使用INRIA 數據集來進行模型的訓練,它包括訓練樣本和測試樣本共902張(包含3542個行人)。圖片中人體有站立、坐、蹲、跳起等姿勢,目標人物包含兩個性別各年齡階段,且目標相對于整幅圖片尺寸大小不定。背景包括室內、野外、運動場、街道、海邊等不同地方,圖片高度大于100個像素。為了增加樣本多樣性,提高樣本質量,有效緩解訓練過程中的過擬合現象,本文在此基礎上通過水平翻轉、裁剪等樣本增強方法將數據集擴展為3000張,其中2400張為訓練樣本,600張為測試樣本。每個每批次處理16張圖片,迭代60 000次。訓練過程中設置學習率從0.01以指數衰減形式進行衰減,衰減因子為0.94,每12個Epoch衰減一次。學習率變化曲線如圖4所示。

圖4 學習率變化曲線

模型改進前后訓練過程的損失值和準確度曲線如圖5所示。

圖5 模型結果對比

由圖5可見,本文所提SSD模型比傳統SSD模型的收斂速度更快,且改進的SSD模型比傳統的SSD模型更低的損失和更高的準確率。迭代60 000此后,原模型的損失和準確率分別為5.6和0.86;改進后模型的損失和準確率分別為3.7和0.94。

3.3 評價指標

選取準確率(Precision,P)和召回率(Recall,R)作為檢驗網絡優越性的指標,其定義為

(6)

(7)

式中:TP表示正確檢測到行人的數量,FP表示誤把非行人目標檢測為行人目標的數量,FN表示誤把行人檢測為背景的數量。

3.4 結果分析

在INRIA數據庫中隨機選出300張圖片,其中含有1658個行人的圖片集進行測試。將實驗結果和原始SSD算法、Faster-RCNN以及YOLO_v3進行比較,在檢測精度和目標被遮擋方面分析改進后網絡的檢測效果。對比結果見表2。

表2 不同模型檢測結果對比

從檢測結果的指標來看:與 Faster RCNN、YOLO_v3等模型相比,改進后的模型比原始模型具有更高的檢測精度和召回率,本文模型在準確率上分別提高10.1%和5.3%,在召回率上分別提高14.95%和6.11%。故而相對于其它3種模型,本文模型具有更高的檢測精度,具有良好的應用前景。具體檢測結果如圖6所示。

圖6是改進后的SSD網絡與原始網絡、Faster RCNN、YOLO_v3的檢測效果對比,從檢測結果來看,Faster RCNN檢測精度較高,但是對于圖6(a)第3幅圖中的目標人物遮擋顯現的檢測效果并不好;圖6(b)中原始SSD在對小目標的檢測率上有所提高,但是對小目標的誤檢率也隨之上升,而且對于遮擋現象也同樣沒有很好的檢測效果; YOLO_v3的檢測結果要明顯優于前兩種模型,其在目標被遮擋和檢測精度上有了較大的提高,但是如圖6(c)第一幅圖所示,該模型對小目標的檢測率卻不太好;圖6(d)中經本文改進后的SSD模型在相同的測試圖片中,其目標人物的檢測置信度都較高,且對于第3幅圖中被遮擋的目標人物的置信度為0.916,而且對于邊緣小目標的檢測率也有較大的提高。相對于其它模型,本模型在保證檢測精度的基礎上對被遮擋目標和邊緣小目標的檢測率有了較大的改善,檢測結果更好,具有更強的魯棒性。

4 結束語

本文將DenseNet作為SSD模型的前置網絡,使得網絡的深度得到增加,在生成目標檢測框的時候,不僅利用了更深特征層信息,也使得淺層網絡信息得到充分利用,其結構特點也提升了梯度的反向傳播,使得網絡更容易訓練。對由于陰影、遮擋等造成的行人檢測效果不理想等問題,本模型對其性能具有較好的提升,對不同像素、不同姿態的行人檢測具有較好的魯棒性。

猜你喜歡
置信度網絡結構行人
一種基于定位置信度預測的二階段目標檢測方法
硼鋁復合材料硼含量置信度臨界安全分析研究
毒舌出沒,行人避讓
系統可靠性評估與更新方法
路不為尋找者而設
正負關聯規則兩級置信度閾值設置方法
我是行人
曝光闖紅燈行人值得借鑒
基于時效網絡的空間信息網絡結構脆弱性分析方法研究
基于互信息的貝葉斯網絡結構學習
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合