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

?

基于改進YOLOv3的運動目標分類檢測算法研究

2021-02-22 04:00梁秦嘉
關(guān)鍵詞:中心點邊界精度

梁秦嘉,劉 懷,陸 飛

(南京師范大學電氣與自動化工程學院,江蘇 南京 210023)

隨著計算機視覺的發(fā)展,研究人員越來越重視與運動目標檢測相關(guān)的課題研究[1]. 伴隨著城市智能交通的不斷發(fā)展,針對交通視頻中的運動車輛進行檢測已成為當前一個重要的研究課題,該研究可為解決交通擁堵、提取交通違法證據(jù)等各種交通智能控制應用提供有效數(shù)據(jù)支持.

傳統(tǒng)的運動目標檢測算法主要是基于視頻幀的[2],通過幀與幀之間的差異來判斷目標是否運動,常用方法有幀間差分法[3]、背景減除法[4]、光流法[5]等. 此類方法極易受到背景信息的影響,導致檢測精度較低,易造成誤檢和漏檢[6]. 隨著機器學習的不斷發(fā)展,為了能夠更好地完成檢測工作,專業(yè)人員深入分析大圖像的特點,結(jié)合實際需要進行方法多樣化拓展. 目標檢測工作首先需確認檢測區(qū)域,全面分析檢測目標屬性,提取相應的特征,再進行類別劃分[7]. 傳統(tǒng)方法受較多條件限制,尤其在目標特征設置方面,只有按需妥善進行特征設計才能更精準地完成模型的建立. 此外,特征提取的準確與否直接影響目標的準確定位,多數(shù)情況下傳統(tǒng)方法無法提取出目標高層特征,所表達的語義僅僅停留在低層范圍內(nèi).

近年來,隨著圖形處理單元(graphics processing unit,GPU)硬件的快速發(fā)展,深度學習在目標檢測領(lǐng)域取得了顯著的進步[8]. 在特征提取過程中利用手工模式得到的結(jié)果不夠精確,存在很多不足之處,這也是傳統(tǒng)機器學習方法的弊端. 卷積神經(jīng)網(wǎng)絡的應用可彌補這一缺陷,提高研究結(jié)果的準確性. 近來在研究運動目標檢測的過程中,更多專業(yè)人士注意到深度學習的積極影響,并以此為基礎(chǔ)進行了運動目標檢測算法的創(chuàng)新[9],提出了Fast-RCNN、Faster-RCNN等目標檢測算法,通過新的算法所得到的計算結(jié)果精度更高,但仍有不足之處,如實時檢測效率低,這主要是由于這些算法屬于窮舉法的范圍[10]. 基于回歸的檢測算法可直接利用卷積神經(jīng)網(wǎng)絡的全局特征預測目標位置和類別,檢測速度較快,常用的基于回歸的算法有SSD[11]、YOLOv2[12]、YOLOv3[13]等. 相較于SSD,YOLOv3采用特征金字塔(FPN)的思想,在精度上比SSD有了很大提高;同時,YOLOv3采用殘差結(jié)構(gòu),其運算速度超過了SSD. 但由于YOLOv3對視頻進行檢測時會檢測出所有目標,并不適用于目標檢測.

本文提出一種基于改進YOLOv3的交通視頻運動目標檢測算法. 首先,為進一步提高YOLOv3的檢測精度,針對損失函數(shù)進行改進;其次,對非極大值抑制進行優(yōu)化,減少同一目標的目標框重疊;最后,針對運動目標,提出一種基于目標框多中心點位移的檢測算法.

圖1 YOLOv3檢測框與預測框的關(guān)系Fig.1 The relationship between the Yolov3 check box and the prediction box

1 改進的YOLOv3算法

1.1 YOLOv3算法

YOLOv3算法將原始輸入圖像劃分為S×S個網(wǎng)格單元格,如圖1所示. 計算公式為:

(1)

式中,cx和cy表示每個網(wǎng)格的左上角坐標;(bw,bh)為預測的邊界框的寬度和高度;(bx,by)作為一個中心坐標,可表明邊界框的位置.

YOLOv3使用邏輯回歸計算每個先驗框的置信度為:

(2)

(3)

當目標出現(xiàn)時,需預測目標出現(xiàn)的類別,定義為:

(4)

模型預測值并不一定能夠始終保持與真實值保持一致,這種情況可通過損失函數(shù)來進行描述. 損失函數(shù)作為重要參數(shù),會對網(wǎng)絡性能造成影響. YOLOv3算法的設計是圍繞損失函數(shù)展開的,通過預測誤差和邊界框的置信誤差及分類誤差來設計,定義為:

(5)

1.2 基于改進YOLOv3的運動目標檢測算法

1.2.1 優(yōu)化邊界框回歸損失函數(shù)

交并比(intersection over union,IoU)是目標檢測中一個非常重要的參數(shù),是產(chǎn)生的預測框與原標記框的交疊率,即其交集與并集的比值. 現(xiàn)階段IoU的應用范圍越來越廣,但作為目標檢測任務的一種仍存在一些不足:(1)當預測邊界框與目標邊界框不相交,由IoU定義可得,IoU=0,此時IoU不能反映兩個邊界框之間的距離,同時,無法按照需求完成梯度回傳,這是位置誤差和置信度的特點所決定的,從而降低了網(wǎng)絡學習效率;(2)若邊界框的目標值和預測值在距離存在差異的情況下相交面積相同,最終得到的IoU結(jié)果也一致,就無法對兩者重合度進行準確描述,從而影響網(wǎng)絡性能.

為了改善這些不足,Rezatofighi等[14]提出了一種改進的GIoU方法,計算方法為:

(6)

式中,A和B分別表示預測邊界框和目標邊界框,C表示A和B的最小凸集. 相較于IoU,GIoU除了對重疊區(qū)域比較關(guān)注之外,還關(guān)注其他的非重合區(qū)域,能更好地反映兩者的重合度. 當A與B處于不同點時,GIoU的值會隨著其間距的增加而與-1無限接近. 1-GIoU代表損失函數(shù),這也能夠證明A與B之間的重合情況. 此外,還有一種情況會導致GIoU退化為IoU,即B包含A.

針對以上問題,本文對YOLOv3進行改進,采用DIoU作為邊界框回歸損失函數(shù)[15],其原理如圖2所示,其計算過程為:

(7)

(8)

圖2 DIoU原理示意圖Fig.2 The DIoU schematic

相較于目前廣泛應用的IoU和GIoU函數(shù),DIoU更加符合目標框回歸機制,綜合考慮了目標與目標框之間的距離、重疊率及尺度,提高了目標框回歸的穩(wěn)定性,不會像IoU和GIoU一樣出現(xiàn)訓練過程中的發(fā)散等問題,可使檢測精度更高.

1.2.2 非最大值抑制優(yōu)化算法

非最大抑制(NMS)是目標檢測算法中一個必要的后處理步驟. 非最大抑制算法的傳統(tǒng)應用模式中檢測框B是最早被確定的,對于被檢測圖片來說其與對應分數(shù)S都屬于能夠最先確定的值. 將分數(shù)最高的檢測框標記為M,當M被確定時,就會被歸屬于檢測結(jié)果集合D,離開集合B. 這種算法通過強制歸零的方式來處理相鄰檢測框分數(shù)存在嚴重的弊端,若重疊區(qū)域內(nèi)存在真實物體,就會影響檢測結(jié)果.

針對以上問題,本文采用軟化非極大值抑制(Soft-NMS)算法[16],通過設置衰減函數(shù)來解決重疊部分檢測框的問題. 分數(shù)的高低會隨著M和其余檢測框之間重疊面積的大小而發(fā)生變化,重疊越大,分數(shù)越低,若所得檢測分數(shù)影響不大則說明重疊面積很小. Soft-NMS實現(xiàn)便捷,節(jié)省了額外訓練所消耗的時間和經(jīng)濟成本. 其算法流程如下:

Soft-NMS

Input:B={b1,…,bN},S={s1,…,sN}

1.D←{ }

2.whileB≠empty do

3.m←argmaxS

4.M←bm

5.D←D∪M;B←B-M

6. forbiinBdo

7.Si←Si·f(IoU(M,bi))

8. end

9.end

10.returnD,S

其中,B集合是檢測到的所有建議框,S集合是各個建議框得分,函數(shù)f(IoU(M,bi))定義為:

(9)

式中,bi為邊界框的序號;M為最高分;Nt為設定的閾值;σ為超參數(shù).

與NMS算法相比,Soft-NMS算法增加了一個懲罰函數(shù). 若一個預測框和M計算出的IoU超過了一定閾值,預測框不會被刪除,但其分數(shù)會相應減少.

1.2.3 基于中心點位移的運動目標檢測算法

在目標檢測的最后階段,檢測層對所有檢測出的目標框進行非最大值抑制. 通常,在進行非極大值抑制后,多余的目標框?qū)⒈粍h除,剔除靜止的目標,只保留運動的目標,從而實現(xiàn)運動目標檢測. 為了判斷目標是否發(fā)生了移動,需判斷目標框是否發(fā)生了一定程度的位移. 針對檢測過程中視頻中每一幀的相同目標所生成的目標框位置不盡相同,本文提出一種基于目標框均值中心點位移的運動目標檢測算法.

在進行非極大值抑制前,有多個目標框出現(xiàn),這是由算法的特性決定的. 每個目標框的中心點坐標可由式(1)得出. 在得到每個目標框的中心點坐標后,對這些坐標在兩個方向上分別求取加權(quán)平均值,得到新的坐標點(x,y),定義為目標框的均值中心點. 在對視頻進行運動目標檢測時,首先檢測出當前幀的所有目標,并對檢測出的目標求取均值中心點. 之后對視頻下一幀進行目標檢測,同樣求出檢測到目標的均值中心點. 對下一幀目標完成檢測后,將下一幀所檢測到的均值中心點與當前幀同一位置目標進行比較,若中心點坐標在x方向和y方向的位移偏移量超過一定閾值時,則判斷該目標發(fā)生了運動. 由于每個目標在不同幀檢測時得到的目標框位置可能會發(fā)生一定的變化,因此,通過一個中心點無法準確判斷目標的運動情況. 當閾值設置較大時,若目標移動速度較慢,會導致目標被誤認為未運動;當閾值設置較小時,由于每一幀生成目標框位置不固定,靜止目標又可能會被誤認為發(fā)生了運動. 對此,本文提出一種多點位移變化的方法,以準確判斷目標是否發(fā)生了運動.

在檢測到目標之后,將目標的多個檢測框劃分為3×3的網(wǎng)格,對每一個網(wǎng)格分別求取均值中心點. 實驗表明,3×3的網(wǎng)格可準確判斷出運動目標,同時不會增加過多的計算量. 為方便計算偏移量,本文將視頻左上角設為原點建立坐標系,以中心點到原點之間的距離作為衡量指標. 以其中一個3×3網(wǎng)格為例,以視頻圖像的左上角為原點(0,0),在視頻當前幀中求出9個中心點分別為(x1,y1),…,(x9,y9),之后,求出 9個中心點相對于左上角原點之間的距離y1,…,y9,計算公式為:

(10)

其中,n=1,2,…,9. 針對下一幀進行同樣操作,下一幀中此目標的9個中心點分別為(x′1,y′1),…,(x′9,y′9),并計算出9個中心點相對于左上角原點之間的距離l′1,…,l′9. 當9個中心點相對于原點的位移偏移量超過設置的閾值時,則判斷該目標發(fā)生了變化. 判定過程如圖3所示.

(a)、(b)分別為視頻中連續(xù)的兩幀圖3 多中心點位移偏移示意圖Fig.3 Schematic diagram of multi-center point displacement offset

2 實驗結(jié)果及分析

2.1 數(shù)據(jù)集

在網(wǎng)絡改進后,為了能夠?qū)ζ湫阅芎头椒ㄟM行評測,本文以車輛目標為例,采用UA-DETRAC數(shù)據(jù)集在深度學習框架keras下對算法進行訓練. 實驗環(huán)境配置為:CPU為Intel i5-9400,主頻2.90 GHz,16 GB內(nèi)存,GPU為NVIDIA 1070,8 GB顯存,操作系統(tǒng)為Windows 10.

本文對數(shù)據(jù)集進行重新標注訓練,檢測目標包含小型汽車(car)、公共汽車(bus)、大型貨車(truck)3類. 為了提高訓練效果,使用了不同角度旋轉(zhuǎn)圖像和改變圖像的飽和度、曝光和色調(diào)等數(shù)據(jù)增強方法. 在訓練階段,初始學習率為0.001,權(quán)值衰減為0.000 5. 當訓練批次為60 000和70 000時,學習率分別降至0.000 1和0.000 01,使損失函數(shù)進一步收斂.

2.2 評價指標

本文中精度和召回率分別定義為:

(11)

(12)

式中,TP為檢測正確的在運動的小型汽車數(shù)量;FP為將其他類型如卡車、公共汽車、行人及其他靜止目標誤檢為運動的小型汽車的數(shù)量;FN為將小型汽車錯誤識別為其他類型的數(shù)量. 幀率為每秒檢測的幀數(shù).

2.3 結(jié)果分析

利用優(yōu)化后YOLOv3模型對UA-DETRAC數(shù)據(jù)集中的目標進行測試. 在所有目標檢測階段,針對所有車輛目標,采用不同算法進行實驗,測試改進后算法的性能. 測試結(jié)果如表1所示.

表1 不同算法實驗結(jié)果對比Table 1 Comparison of experimental results of different algorithms

從表1可知,YOLOv3模型經(jīng)優(yōu)化后目標精度可達84.75%,召回率為97.23%,各項數(shù)據(jù)均得到明顯提升,檢測速度也顯著提升. Faster-R-CNN無論是加載ResNet101還是VGG16模型,速度都更慢. 只改進損失函數(shù)的YOLOv3-DIoU平均精度為78.27%,只改進非極大值抑制的YOLOv3-Soft-NMS的平均精度為79.52%,相比原YOLOv3算法均提升不大. 改進后的YOLOv3算法檢測一幀圖像的時間為31.35 ms,與同系列其他算法相比無明顯增加,可滿足實際應用時的實時性需求.

為了更加準確地驗證檢測有效性,本文進行了實踐檢驗. 通過大量訓練與檢測的實驗表明,當距離偏移量的閾值設置為7時,檢測效果最好.

圖4 改進YOLOv3算法運動目標檢測效果圖Fig.4 Moving object detection effect diagram of improved YOLOV3 algorithm

在第一個視頻的第163幀,可以看到,本文算法準確檢測到所有的運動目標. 在第二段視頻中,在第78幀,本文檢測到小型汽車與公共汽車共5個運動目標;在第268幀,公共汽車由于到站而停下,因此,本文算法將其排除,僅標注小型汽車一個運動目標. 在第三個視頻中,中央的卡車停在路邊,第166幀,上方與下方的車輛均在等紅燈,只有中央三輛小型汽車運動;在第308幀,上方與下方的車輛開始通行,運動的車輛均正確檢測,而靜止的車輛被排除. 本文算法對視頻的檢測速度平均為20.35 fps/s. 由此可見,本文的算法可以實現(xiàn)對運動目標的檢測.

3 結(jié)論

本文以改進的YOLOv3檢測算法測定運動目標. 首先,為進一步提高YOLOv3的檢測精度,采用基于DIoU優(yōu)化的損失函數(shù)進行計算;其次,對非極大值抑制進行優(yōu)化,減少目標框重疊現(xiàn)象,提高了檢測精度;最后,針對運動目標,提出一種基于目標框中心點位移的檢測算法. 通過在UA-DETRAC數(shù)據(jù)集上與原始YOLOv3進行對比實驗,本文所提出的改進算法不僅使檢測結(jié)果更準確,同時也能夠提高檢測速度,準確率和召回率相比原始YOLOv3分別提高了8.07%和3.87%,對運動目標的檢測速度可達20.35 fps/s,能夠滿足實時檢測的要求.

猜你喜歡
中心點邊界精度
基于不同快速星歷的GAMIT解算精度分析
守住你的邊界
熱連軋機組粗軋機精度控制
突破非織造應用邊界
一種基于標準差的K-medoids聚類算法
Scratch 3.9更新了什么?
意大利邊界穿越之家
如何設置造型中心點?
人蟻邊界防護網(wǎng)
以工匠精神凸顯“中國精度”
泾阳县| 泸溪县| 江油市| 普兰店市| 宾川县| 沿河| 柞水县| 城口县| 广昌县| 瓦房店市| 东辽县| 通辽市| 项城市| 陆川县| 盐池县| 尚义县| 岳西县| 惠水县| 佛教| 贡山| 台中县| 广平县| 岫岩| 梅州市| 隆安县| 汝州市| 洞头县| 阜新| 白水县| 儋州市| 河曲县| 日喀则市| 霞浦县| 平塘县| 仁化县| 黎城县| 新津县| 宜兰县| 巴里| 米易县| 吴忠市|