?

基于改進YOLOv3的自然交通路況檢測研究

2021-08-06 05:24吳新淼趙一洲程廷豪
現代計算機 2021年16期
關鍵詞:類別卷積物體

吳新淼,趙一洲,程廷豪

(四川大學電子信息學院,成都610065)

0 引言

目標檢測是計算機視覺研究領域中的一個重要的研究分支[1],它是目標跟蹤和行為識別的基礎實現環節。隨著無人駕駛這一概念火爆的提出,車輛的目標檢測就成為了當前的熱點研究話題,其目標是通過車載攝像頭將錄取到的實時路況的視頻信息進行分幀拆分成一幅幅圖片,然后通過目標檢測算法,對圖片進行分析,從不同復雜程度的背景中返回車輛交通分析中所需要的目標的空間位置和物體類別,從而針對不同的交通情況進行自動緊急剎車或者轉彎。

近幾年,深度學習逐漸走入我們的視野中,當前的目標檢測模型大多是基于two-stage和one-stage分類的。其中基于two-stage的算法模型有R-CNN[2]、SPP-Net[3]、Fast R-CNN[4]和Faster R-CNN[5],這些算法都是需要先生成候選區域,然后在候選區域里面進行特征的提取,然后將特征圖送入分類器中進行類別的判定和邊框回歸。而基于one-stage的算法模型有YOLOv3[6]和SSD[7],這些算法通過回歸,解決了目標框定位問題,輸入圖片進網絡中直接輸出圖片中物體的類別跟位置。相對于two-stage的目標檢測方法,one-stage的方法具有檢測速度更快的優勢,但是其檢測精度卻沒有two-stage好,但是YOLOv3算法很好地平衡了檢測速度跟精度的問題,可以滿足交通路況的實時檢測。故本文選擇YOLOv3作為目標檢測算法對交通路況進行研究。

1 YOLOv3介紹

1.1 網絡訓練流程

YOLOv3算法是將輸入的圖片經過一定比例的寬高縮放之后,將其輸入到特征提取網絡DarkNet53進行卷積,經過卷積后將得到的特征圖尺度劃分為大小一致的網格,每個網格設置3個瞄點框,每個瞄點框用來預測一個邊界框。YOLOv3的網絡預測過程如圖1所示。

圖1 YOLOv3框架圖

在進行特征提取的過程中受到FPN[8]的思想啟發,低層特征圖的分辨率高,有利于提取小的目標,高層特征圖的語義信息豐富,有利于提取大目標,通過融合這些不同層的特征圖可以達到在滿足大目標檢測的同時兼顧小目標的檢測。在YOLOv3中設置了13×13、26×26、52×52這三個層次的特征進行目標的檢測,其中13×13負責檢測大尺寸目標,26×26和52×52負責檢測中、小尺度目標,并且將其中的13×13和26×26的特征圖分別進行一次上采樣跟前期同尺度的特征圖進行融合,將融合的結果來進行預測。

如果經過特征提取后的圖片中的某一物體的中心在網格中,那么這個網格就負責預測這個物體,則該網格中的三個瞄點框都會輸出三類參數。第一類參數為坐標參數,其中tx,ty,tw,th代表預測框中心坐標跟寬高,第二類參數為預測框的置信度c,第三類參數為物體的類別概率數組p。其中為了方便計算過程中的網絡的收斂,本文需要對坐標參數進行一個變換,變換公式如圖2所示。

圖2 預測框示意圖

其中pw和ph為本文通過K-means[9]算法得出的瞄點框的寬和高,cx和cy為網絡負責預測物體的網格的左上點在整張圖中的坐標,其中sigmoid函數的作用是將原先輸出的預測框的中心坐標進行一個非線性歸一化變換,將中心坐標偏移壓縮到[0,1]之間,可以確保將要檢查的物體中心處于執行預測的網絡單元格中間,防止出現物體中心偏移出要檢測的網絡單元格。其中的bx,by,bw,bh為最終預測的框中心坐標和寬高。而置信度c則是當前輸出的預測框中有物體的概率pr(object)和該預測框框跟真實框的交并比(IOU)的乘積。其具體公式如下:

(1)

其中cij表示的時第i個網格的第j個預測框的置信度,置信度是用來在訓練過程中挑選出我們需要訓練的最優box。最后將圖片中某一物體的所有預測框進行NMS[10](非極大值抑制),就是獲取屬于某一類別的所有預測框的概率p,然后獲取其中概率最大的框,計算剩下的框跟概率最大的框的IOU,然后將IOU大與我們設定的閾值的框給刪掉,在剩下的框中重復進行上面的操作,最后就可以得到一個最符合當前目標的預測框。

1.2 DarkNet-53

YOLOv3中間的特征提取網絡為5組重復使用的殘差卷積單元,每個卷積單元里面為一個1×1和3×3的卷積層,每個卷積后面都會跟一個BN層和一個LeakyReLU層,其中1×1的卷積層通過固定輸出的通道數可以降低參數的數量,3×3的卷積核可以滿足卷積單元的輸出跟輸入維度一致,通過交替使用這樣的殘差卷積單元可以在保證有效提取特征的前提下減少訓練的參數,達到減少訓練時間和計算量的目的。在交替使用殘差卷積單元的時候就是采用ResNet[11]思想,采用跳層的方法,將殘差卷積單元的輸入層跟輸出層進行相加,這樣一來就可以解決網絡層度太深導致的梯度爆炸跟梯度消失問題。其中DarkNet-53的網絡結構圖如圖3所示。

圖3 DarkNet-53網絡結構

2 改進型YOLOv3介紹

2.1 加入高斯模型

傳統的YOLOv3中每個預測框都會輸出三類參數,分別為目標的坐標信息、目標是否存在的置信度和目標屬于某個特定類別的置信度。其中坐標信息tx,ty,tw,th代表預測框的坐標值,就是用預測出的框的位置來逼近真實框,其中目標是否存在跟目標是否屬于某個類別都是用概率來表示的,概率值跟1的逼近程度代表著YOLOv3進行預測的可靠性大小,越靠近1,代表我們的預測值越可靠。但是我們輸出的坐標值就是單純的數字信息,并不是概率值,不能預測當前框的可靠性,受到高斯函數的鐘形啟發,本文用高斯模型對輸出的坐標信息進行建模。其中高斯模型為:

(2)

其中μ代表著函數分布的均值,σ2代表著方差,函數在μ處取得最高值,但是當μ相同的時候σ2越大,均值處的取值就會越低。將這個思想融入到預測框的坐標中去,將輸出的預測框的坐標數字代表高斯模型中的均值,將坐標的方差值來估計坐標信息的可靠性,這樣一來可以在確定定位精度的前提下通過降低方差值來提升預測坐標值的可靠性,隨之而來的就是由傳統的YOLOv3的坐標輸出值將會由4個變為8個,其具體代表式如下:

(3)

圖4 融合高斯模型參數示意圖

在對輸出框的坐標值進行修改之后,本文也需要對原先的坐標損失函數進行修改,在預測框的坐標都滿足均值為μ方差為σ2的高斯分布之后,本文摒棄了傳統的均方誤差[12]的(MSE)作為坐標定位損失函數,而是使用了負對數似然損失(Negative Log Likelihood Loss)[13]作為重建的定位損失函數。其具體定義如下:

(4)

(5)

(6)

2.2 D-IOU邊界回歸損失函數

目標檢測中最后輸出的是一個帶有邊框的物體檢測圖形,而物體邊框的形成是需要在訓練中不斷的對邊框損失函數進行一個收斂,這個過程也就是邊框回歸過程。YOLOv3中是采用預測框跟真實框的交并比IOU(Intersection Over Union)作為邊框定位損失函數,其中IOU定義如下:

(7)

Dis(box,centroid)=1-IOU(box,centroid)

(8)

其中boxpred是目標的預測框,boxtruth是目標的真實框,IOU是真實框跟預測框面積之間的交并比。但是當采用IOU作為度量和損失的定義會存在一些問題,例如當預測框跟真實框的IOU為0的時候,這個時候定位損失函數就不會進行收斂,無法對預測框的偏移進行優化。針對于兩框不相交的情況,本文將預測框跟真實框之間的中心距離也添加到進去,采用了一種新的定位損失函數D-IOU,如公式(10):

(9)

其中c為同時覆蓋預測框和目標框的最小矩形的對象線距離,d=ρ2(b,bgt)代表了預測框跟真實框的中心的歐氏距離。如圖5所示。

圖5 DIOU示意圖

采用D-IOU[14]可以有效解決當預測跟真實框不相交時出現的損失函數不能收斂的情況,并且在一開始收斂的時候直接將預測框跟真實框之間的中心距離考慮進去,從而可以更快更有效更穩定地收斂。

3 實驗結果與分析

3.1 數據集介紹

在BDD100K數據集中,包含10萬張道路目標邊界框圖片(訓練集7萬、測試集2萬、驗證集1萬),大小為1280×720 ,數據庫涵蓋了不同的天氣條件,包括晴天、陰天和雨天,以及白天和晚上的不同時段,圖片的注釋信息中包含了:類別標簽、大小(起始坐標、結束坐標、寬度和高度)、遮擋和交通燈等信息。數據集中的真實目標框共有10個類別,總共約有184萬個定位框。分別為:Bus、Light、Sign、Person、Bike、Truck、Motor、Car、Train、Rider。

3.2 實驗環境及參數介紹

表1 實驗環境配置表

在進行實驗的時候,本文batch設置為64,subdivision為32,decay為權重衰減正則項,為了防止在訓練過程中出現過擬合,故在每次訓練完之后將學習到的參數進行0.5的比例降低。learning_rate為學習率,代表著權重的更新速度,在進行梯度下降的過程中,該值就決定著梯度下降的步伐,如果設置太大了,就有可能會直接越過最優解,如果設置太小了,就會導致下降的速度很慢,也就是我們收斂的時間會很長。本文中實驗設置總共跑10000個epoch,剛開始訓練的時候我們的學習率可以設置大一些為0.001,等實驗進行到8000和9000個epoch的時候學習率設置為以前的1/10。

其中本文實驗的評價指標為AP和mAP,在計算AP的時候需要先計算精準率P和召回率R,其中他們的定義如下:

(10)

(11)

Tp為真正例,即預測為正樣本實際為正樣本。Fp為假正例,預測為負實際為正。FN為假負例,預測為負實際為正。則P為預測為正實際為正占預測為正的比例,可以視作是模型找出來的數據正確的能力。R是預測為正實際為正占總體樣本的比例,可以視作是模型在數據集中檢測出目標類型數據的能力,通常情況下用P-R曲線來顯示目標網絡在精準率和召回率之間的平衡,對于數據集中的每一個物體類別的平均準確率AP就是該類別的P-R曲線下方的面積,而mAP就是指所有類的平均準確率的均值。其中AP和mAP的計算公式如下所示:

(12)

(13)

3.3 實驗結果對比分析

由于不同的數據集里面物體的分布跟形狀不一樣,本文使用了K-means算法重新計算錨點框的尺寸,合適的瞄點框的大小可以有效地加快邊框的回歸,更新的預定義錨點框的值分別如表2所示。

表2 錨點框分配表

共9個預測錨點框,因為有三個不同尺寸的特征圖,所以每個中心點可預測三個不同尺度的預測框。對比于YOLOv3原始設計的先驗錨框尺寸與本文通過K-means得到的尺寸進行比較如下圖所示:

圖6 新舊錨點框尺寸比較

將YOLOv3、Gaussian-YOLOv3、DIOU-YOLOv3、Gaussian-DIOU-YOLOv3算法分別應用新的錨點框之后在BDD100k數據集上進行訓練跟測試,其中最后的實驗結果如表3。

表3 實驗結果對比表

可以看出在融合了D-IOU和高斯模型之后,GD-YOLOv3相對與原始的YOLOv3,mAP提升了4.42%,雖然FPS由69降低為63,但是還是能夠滿足實時檢測的需求。

由圖7的(a)、(b)對比可以看出,引入D-IOU后目標圖片中檢測到的物體相對與原始的YOLOv3變多了,但是存在一些錯誤的物體識別,例如將交通燈識別為交通標識。對比(a)、(c)可以看出,加入預測框的不確定性之后,就能夠正確地檢測到交通燈了,但是卻漏檢了一些物體,最后從(d)可以發現融合了高斯模型跟D-IOU之后,模型能夠有效地檢測出小的交通燈,并且可以檢測出一些原本檢測不出來的車跟行人。從表4可以看出,改進后的算法模型相對與原始的模型,FP值有很大幅度的降低,這表明模型誤檢的概率在降低,并且TP的提升證明模型可以對更多的正樣本進行檢測。

圖7 實驗結果對比圖

表4 模型數值評價表

4 結語

本文在針對復雜路況情況下傳統的YOLOv3算法檢測交通物體預測框定位的精度不足問題,提出了一種改進型YOLOv3模型,首先通過K-means算法計算出適應于BDD100k的先驗錨框,接著在YOLOv3的預測層加入對預測框的不確定性回歸并且重新改進了新的損失函數,然后將改進后的算法添加新的錨點框進行訓練,實驗結果表明引入預測框的不確定性回歸后,訓練出來的模型可以有效降低對物體的定位誤差,新定位損失函數引入預測框跟真實框之間的中心距離,在加快預測框跟真實框之間的收斂的同時也解決了當二者交并比為0情況下不收斂的問題。經過對比可以發現改進后的算法可以檢測出原始算法檢測不到的物體,并且框的定位更加的準確,適合復雜場景下的自然交通路況檢測。

由于本文的改進方法都是針對于預測框的定位精度提升,而沒有對交通物體類別檢測精度的改進。后續的研究中,本文將從如何提升物體類別的精度出發,從主干網絡入手,在提升網絡的特征提取能力的前提之下減少網絡的參數量,進一步提升模型的檢測能力。

猜你喜歡
類別卷積物體
基于全卷積神經網絡的豬背膘厚快速準確測定
基于FPGA的卷積神經網絡加速優化方法
基于圖像處理與卷積神經網絡的零件識別
一起去圖書館吧
基于深度卷積網絡與空洞卷積融合的人群計數
簡析基于概率預測的網絡數學模型建構
揭開物體沉浮的秘密
為什么同一物體在世界各地重量不一樣?
“力”??家族e點掃描
懸浮的雞蛋
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合