陳鵬程 戚寶仁 孔德宇
(1.蘇州科技大學,江蘇蘇州 215009;2.杭州電子科技大學,浙江杭州 310000)
目標檢測是計算機視覺領(lǐng)域的主要研究方向之一,在機器人、自動駕駛、安防等諸多工業(yè)應用中都逐漸展現(xiàn)出越來越大的影響力,吸引了大量的學者的研究關(guān)注[1]。
近幾年,卷積網(wǎng)絡的強大特征提取能力得到廣泛認可,且快速應用到了目標檢測算法研究中。目前,卷積神經(jīng)網(wǎng)絡模型在目標檢測中的應用主要包含兩個方向:一是“兩階段”算法,這類算法將整個目標檢測任務分為計算候選區(qū)域位置信息和卷積網(wǎng)絡目標識別兩個階段,即先檢測后識別,這類算法的典型代表有R-C N N 系列算法[2]、SPP-NET算法[3];另一類是“一階段”算法,這類算法在一趟完整過程中同時完成對目標物體的檢測和識別任務,具有識別速度快的優(yōu)點,目前廣泛應用的YOLO系列算法[4]就屬于“一階段”算法。
YOLO系列算法憑借著更強的泛化能力,得到了比RCNN系列算法更多的關(guān)注[5]。文獻[6]將卡爾曼濾波算法引入YOLOv3算法中提出一種增強Tiny YOLOv3算法,并將該算法應用到車輛檢測中,能夠很好的解決小目標車輛漏檢為。文獻[7]將YOLOv3算法應用到我國水域監(jiān)測區(qū)域的船舶檢測識別應用中,并通過大量實踐證明,YOLOv3算法相比傳統(tǒng)深度學習算法具有更好的準確性和實時性。文獻[8]使用針對遙感影像中的飛機目標進行識別檢測,并結(jié)合實際應用特點對YOLOv3算法進行優(yōu)化,取得了較高的準確率。上述的多個應用中,在對候選區(qū)域進行篩選時,仍采用NMS或soft-NMS算法,這類方法在候選區(qū)域數(shù)量多時容易發(fā)生漏檢或?qū)ν荒繕宋矬w重復檢測造成錯誤分類的問題。針對這一問題,本文在soft-NMS算法基礎(chǔ)上進行優(yōu)化,并將優(yōu)化后算法應用到Y(jié)OLOv3算法中進行目標檢測,實驗證明本文對算法的優(yōu)化對檢測準確率有一定提升。
YOLOv3是YOLO系列算法的第三個迭代更新版本,也是YO LO 系列算法的最經(jīng)典代表。YO LO v3 采用了基于殘差網(wǎng)絡的DarkNet-53網(wǎng)絡作為特征提取主干網(wǎng)絡。輸入一張圖像后,模型將對圖像resize到416×416尺寸,經(jīng)過DarkNet-53網(wǎng)絡時,將參數(shù)三種尺寸的特征圖:52×52、26×26、13×13,小尺寸特征圖將以2倍上采樣與上層特征圖堆疊,將這三種尺寸的特征圖進行分類網(wǎng)絡中完成分類任務。YOLOv3主干網(wǎng)絡如圖1所示。
3種尺寸的特征圖相當于再圖像上進行了3種不同尺寸的網(wǎng)格劃分,模型最終的輸出結(jié)果也對應于每一個劃分網(wǎng)格,且每個網(wǎng)格都將有3 個候選區(qū)域,每個候選區(qū)域都有一個分支,所以一張原始圖像經(jīng)過Yolov3網(wǎng)絡后將產(chǎn)生的候選區(qū)域數(shù)量為:3×13×13+3×26×26+3×52×5 2=1 0 6 4 7。這些候選區(qū)域中大多數(shù)都將被過濾,在YOLOv3算法中,引入了非極大值抑制法來對候選區(qū)域進行篩選,保留與圖像中真實情況更加符合的候選區(qū)域。
非極大值抑制算法(non-maximum suppression,NMS)[9]是目標檢測類任務中常用的候選區(qū)域確定方法,其基本原理是在當前局部領(lǐng)域內(nèi)搜索分值最高候選區(qū)域,并計算其與其他候選區(qū)域的重疊度(通常用 IoU 衡量),當 IoU高于某個閾值時進行抑制,達到確定最優(yōu)候選區(qū)域的目的,非極大值抑制算法數(shù)學表達如下:

圖1 YOLOv3 算法主干網(wǎng)絡Fig.1 Backbone network of yolov3 algorithm

式中, scoref是候選區(qū)域的比較計算后的分值, s corei是候選區(qū)域初始分值, M 是分值最高的候選區(qū)域,ib 是當前候選區(qū)域, IoU ( M , bi)是 M 與 bi之間的交并比, Nt是人為設定的閾值。
通過非極大值抑制算法,與圖像中實際目標物體位置、大小更加吻合的候選區(qū)域?qū)⒈槐A粝聛怼H欢?在實際目標檢測任務中,圖像內(nèi)的多個目標物體間可能存在較大面積的重合,在處理這種情況的候選區(qū)域時,多個目標物體的候選區(qū)域?qū)驗?IoU 值過高而被抑制,從而導致部分目標物體漏檢的問題。針對這一問題,有學者基于N M S 算法結(jié)合一種“權(quán)值懲罰”策略提出s o f t-NMS算法[10]:

經(jīng)證實,soft-NMS算法較好地解決了NMS算法在多目標檢測中的漏檢問題,但依然存在一些不足,在實踐應用中發(fā)現(xiàn),soft-NMS算法將會導致重復檢測、目標錯分等問題發(fā)生的概率上升。
針對這一問題,本文提出I-NMS算法。
I-NMS算法在soft-NMS算法基礎(chǔ)上添加一個閾值Ni,且有 Nt<Ni。若候選區(qū)域 bi與分值最高候選區(qū)域 M的交并比 IoU ( M , bi )則直接進行抑制;若 Ni≤IoU ( M , bi )≤ Nt,給候選區(qū)域 bi一個與 IoU ( M , bi)懲罰比的權(quán)值作為懲罰因子與原始分值相結(jié)合;若 IoU ( M , bi)< Ni,則證明 bi與 M 重疊區(qū)域足夠小,無需進行抑制,保留原始分值:

本文提出的I-NMS算法綜合了NMS算法和soft-NMS算法的優(yōu)點,創(chuàng)新地添加一個閾值,這種雙閾值的方式使得 IoU ( M , bi)小于 Ni的候選區(qū)域內(nèi)目標物體漏檢和誤檢的概率降低。
本文實驗在CentOS 7.6,Inter(R) Core(TM) i7-6500U CPU,32GB內(nèi)存,GeForce GTX 1080顯卡,NVIDIA-SMI 418.43版本驅(qū)動環(huán)境計算機中進行,使用Python進行模型開發(fā)。
為驗證本文提出的I - N M S 算法是否有助于提升YOLOv3算法性能,分別使用傳統(tǒng)NMS算法、soft-NMS算法和I-N MS算法進行候選區(qū)域過濾的YOLOv3算法進行建波,并在 PASCAL VOC2007 數(shù)據(jù)集進行驗證。在驗證前,通過多次實驗測試表明,I-N MS 算法在 Nt=0.36,Ni=0.95時,算法平均準確率最高,故在后續(xù)對比實驗中,均使用這對閾值作為I-N M S 算法最終閾值進行對比驗證。如圖2所示分別是使用NMS算法、soft-NMS算法以及本文的I-N MS算法進行候選區(qū)域過濾時的YOLO v3算法目標檢測時的輸出效果圖。
進一步地,為更好衡量本文對算法的改進能在改善重復檢測上的性能優(yōu)化程度,使用重復檢測率以及多次檢測時的目標錯分率作為衡量指標[11],計算公式如下:

式中, Ttotal表示目標物體被重復檢測次數(shù),2T 、3T 被重復檢測2 次或3 次的次數(shù), Terror表示目標物體被重復檢測且分類錯誤的次數(shù), Rdup為重復檢測率, Rerror為目標物體重復檢測時的錯分率, Ntotal為圖片總數(shù)。各算法在V O C 2007數(shù)據(jù)集上各運行五次,取五次記錄數(shù)據(jù)平均值新對比,如表1所示。
從表1運行結(jié)果對比中可知,本文提出的I-NMS運用于YOLOv3模型后,相比于使用NMS算法、soft-NMS算法的YOLOv3模型,具有更低的重復檢測次數(shù)和錯分次數(shù),且重復檢測率、錯分率在三個模型中最低,表明本文提出的I-N MS算法確實能在一定程度上解決YOLO v3模型在多目標檢測任務中的重復檢測問題。

圖2 YOLOv3 算法輸出效果圖Fig.2 The output effect of yolov3 algorithm

表1 重復檢測率、錯分率對比Tab.1 Comparison of repeated detection rate and misclassification rate
針對YOLOv3目標檢測模型中通常使用的非極大值抑制算法容易在多目標檢測任務中的重復檢測問題,本文在前人研究的so ft-N MS 算法基礎(chǔ)上進行優(yōu)化,提出INMS算法。通過對比實驗表明,應用本文提出的I-NMS算法的YOLO v3模型擁有更低的重復檢測率。