陳鵬程 戚寶仁 孔德宇
(1.蘇州科技大學(xué),江蘇蘇州 215009;2.杭州電子科技大學(xué),浙江杭州 310000)
目標(biāo)檢測是計(jì)算機(jī)視覺領(lǐng)域的主要研究方向之一,在機(jī)器人、自動(dòng)駕駛、安防等諸多工業(yè)應(yīng)用中都逐漸展現(xiàn)出越來越大的影響力,吸引了大量的學(xué)者的研究關(guān)注[1]。
近幾年,卷積網(wǎng)絡(luò)的強(qiáng)大特征提取能力得到廣泛認(rèn)可,且快速應(yīng)用到了目標(biāo)檢測算法研究中。目前,卷積神經(jīng)網(wǎng)絡(luò)模型在目標(biāo)檢測中的應(yīng)用主要包含兩個(gè)方向:一是“兩階段”算法,這類算法將整個(gè)目標(biāo)檢測任務(wù)分為計(jì)算候選區(qū)域位置信息和卷積網(wǎng)絡(luò)目標(biāo)識(shí)別兩個(gè)階段,即先檢測后識(shí)別,這類算法的典型代表有R-C N N 系列算法[2]、SPP-NET算法[3];另一類是“一階段”算法,這類算法在一趟完整過程中同時(shí)完成對(duì)目標(biāo)物體的檢測和識(shí)別任務(wù),具有識(shí)別速度快的優(yōu)點(diǎn),目前廣泛應(yīng)用的YOLO系列算法[4]就屬于“一階段”算法。
YOLO系列算法憑借著更強(qiáng)的泛化能力,得到了比RCNN系列算法更多的關(guān)注[5]。文獻(xiàn)[6]將卡爾曼濾波算法引入YOLOv3算法中提出一種增強(qiáng)Tiny YOLOv3算法,并將該算法應(yīng)用到車輛檢測中,能夠很好的解決小目標(biāo)車輛漏檢為。文獻(xiàn)[7]將YOLOv3算法應(yīng)用到我國水域監(jiān)測區(qū)域的船舶檢測識(shí)別應(yīng)用中,并通過大量實(shí)踐證明,YOLOv3算法相比傳統(tǒng)深度學(xué)習(xí)算法具有更好的準(zhǔn)確性和實(shí)時(shí)性。文獻(xiàn)[8]使用針對(duì)遙感影像中的飛機(jī)目標(biāo)進(jìn)行識(shí)別檢測,并結(jié)合實(shí)際應(yīng)用特點(diǎn)對(duì)YOLOv3算法進(jìn)行優(yōu)化,取得了較高的準(zhǔn)確率。上述的多個(gè)應(yīng)用中,在對(duì)候選區(qū)域進(jìn)行篩選時(shí),仍采用NMS或soft-NMS算法,這類方法在候選區(qū)域數(shù)量多時(shí)容易發(fā)生漏檢或?qū)ν荒繕?biāo)物體重復(fù)檢測造成錯(cuò)誤分類的問題。針對(duì)這一問題,本文在soft-NMS算法基礎(chǔ)上進(jìn)行優(yōu)化,并將優(yōu)化后算法應(yīng)用到Y(jié)OLOv3算法中進(jìn)行目標(biāo)檢測,實(shí)驗(yàn)證明本文對(duì)算法的優(yōu)化對(duì)檢測準(zhǔn)確率有一定提升。
YOLOv3是YOLO系列算法的第三個(gè)迭代更新版本,也是YO LO 系列算法的最經(jīng)典代表。YO LO v3 采用了基于殘差網(wǎng)絡(luò)的DarkNet-53網(wǎng)絡(luò)作為特征提取主干網(wǎng)絡(luò)。輸入一張圖像后,模型將對(duì)圖像resize到416×416尺寸,經(jīng)過DarkNet-53網(wǎng)絡(luò)時(shí),將參數(shù)三種尺寸的特征圖:52×52、26×26、13×13,小尺寸特征圖將以2倍上采樣與上層特征圖堆疊,將這三種尺寸的特征圖進(jìn)行分類網(wǎng)絡(luò)中完成分類任務(wù)。YOLOv3主干網(wǎng)絡(luò)如圖1所示。
3種尺寸的特征圖相當(dāng)于再圖像上進(jìn)行了3種不同尺寸的網(wǎng)格劃分,模型最終的輸出結(jié)果也對(duì)應(yīng)于每一個(gè)劃分網(wǎng)格,且每個(gè)網(wǎng)格都將有3 個(gè)候選區(qū)域,每個(gè)候選區(qū)域都有一個(gè)分支,所以一張?jiān)紙D像經(jīng)過Yolov3網(wǎng)絡(luò)后將產(chǎn)生的候選區(qū)域數(shù)量為:3×13×13+3×26×26+3×52×5 2=1 0 6 4 7。這些候選區(qū)域中大多數(shù)都將被過濾,在YOLOv3算法中,引入了非極大值抑制法來對(duì)候選區(qū)域進(jìn)行篩選,保留與圖像中真實(shí)情況更加符合的候選區(qū)域。
非極大值抑制算法(non-maximum suppression,NMS)[9]是目標(biāo)檢測類任務(wù)中常用的候選區(qū)域確定方法,其基本原理是在當(dāng)前局部領(lǐng)域內(nèi)搜索分值最高候選區(qū)域,并計(jì)算其與其他候選區(qū)域的重疊度(通常用 IoU 衡量),當(dāng) IoU高于某個(gè)閾值時(shí)進(jìn)行抑制,達(dá)到確定最優(yōu)候選區(qū)域的目的,非極大值抑制算法數(shù)學(xué)表達(dá)如下:
圖1 YOLOv3 算法主干網(wǎng)絡(luò)Fig.1 Backbone network of yolov3 algorithm
式中, scoref是候選區(qū)域的比較計(jì)算后的分值, s corei是候選區(qū)域初始分值, M 是分值最高的候選區(qū)域,ib 是當(dāng)前候選區(qū)域, IoU ( M , bi)是 M 與 bi之間的交并比, Nt是人為設(shè)定的閾值。
通過非極大值抑制算法,與圖像中實(shí)際目標(biāo)物體位置、大小更加吻合的候選區(qū)域?qū)⒈槐A粝聛?。然?在實(shí)際目標(biāo)檢測任務(wù)中,圖像內(nèi)的多個(gè)目標(biāo)物體間可能存在較大面積的重合,在處理這種情況的候選區(qū)域時(shí),多個(gè)目標(biāo)物體的候選區(qū)域?qū)?huì)因?yàn)?IoU 值過高而被抑制,從而導(dǎo)致部分目標(biāo)物體漏檢的問題。針對(duì)這一問題,有學(xué)者基于N M S 算法結(jié)合一種“權(quán)值懲罰”策略提出s o f t-NMS算法[10]:
經(jīng)證實(shí),soft-NMS算法較好地解決了NMS算法在多目標(biāo)檢測中的漏檢問題,但依然存在一些不足,在實(shí)踐應(yīng)用中發(fā)現(xiàn),soft-NMS算法將會(huì)導(dǎo)致重復(fù)檢測、目標(biāo)錯(cuò)分等問題發(fā)生的概率上升。
針對(duì)這一問題,本文提出I-NMS算法。
I-NMS算法在soft-NMS算法基礎(chǔ)上添加一個(gè)閾值Ni,且有 Nt<Ni。若候選區(qū)域 bi與分值最高候選區(qū)域 M的交并比 IoU ( M , bi )則直接進(jìn)行抑制;若 Ni≤IoU ( M , bi )≤ Nt,給候選區(qū)域 bi一個(gè)與 IoU ( M , bi)懲罰比的權(quán)值作為懲罰因子與原始分值相結(jié)合;若 IoU ( M , bi)< Ni,則證明 bi與 M 重疊區(qū)域足夠小,無需進(jìn)行抑制,保留原始分值:
本文提出的I-NMS算法綜合了NMS算法和soft-NMS算法的優(yōu)點(diǎn),創(chuàng)新地添加一個(gè)閾值,這種雙閾值的方式使得 IoU ( M , bi)小于 Ni的候選區(qū)域內(nèi)目標(biāo)物體漏檢和誤檢的概率降低。
本文實(shí)驗(yàn)在CentOS 7.6,Inter(R) Core(TM) i7-6500U CPU,32GB內(nèi)存,GeForce GTX 1080顯卡,NVIDIA-SMI 418.43版本驅(qū)動(dòng)環(huán)境計(jì)算機(jī)中進(jìn)行,使用Python進(jìn)行模型開發(fā)。
為驗(yàn)證本文提出的I - N M S 算法是否有助于提升YOLOv3算法性能,分別使用傳統(tǒng)NMS算法、soft-NMS算法和I-N MS算法進(jìn)行候選區(qū)域過濾的YOLOv3算法進(jìn)行建波,并在 PASCAL VOC2007 數(shù)據(jù)集進(jìn)行驗(yàn)證。在驗(yàn)證前,通過多次實(shí)驗(yàn)測試表明,I-N MS 算法在 Nt=0.36,Ni=0.95時(shí),算法平均準(zhǔn)確率最高,故在后續(xù)對(duì)比實(shí)驗(yàn)中,均使用這對(duì)閾值作為I-N M S 算法最終閾值進(jìn)行對(duì)比驗(yàn)證。如圖2所示分別是使用NMS算法、soft-NMS算法以及本文的I-N MS算法進(jìn)行候選區(qū)域過濾時(shí)的YOLO v3算法目標(biāo)檢測時(shí)的輸出效果圖。
進(jìn)一步地,為更好衡量本文對(duì)算法的改進(jìn)能在改善重復(fù)檢測上的性能優(yōu)化程度,使用重復(fù)檢測率以及多次檢測時(shí)的目標(biāo)錯(cuò)分率作為衡量指標(biāo)[11],計(jì)算公式如下:
式中, Ttotal表示目標(biāo)物體被重復(fù)檢測次數(shù),2T 、3T 被重復(fù)檢測2 次或3 次的次數(shù), Terror表示目標(biāo)物體被重復(fù)檢測且分類錯(cuò)誤的次數(shù), Rdup為重復(fù)檢測率, Rerror為目標(biāo)物體重復(fù)檢測時(shí)的錯(cuò)分率, Ntotal為圖片總數(shù)。各算法在V O C 2007數(shù)據(jù)集上各運(yùn)行五次,取五次記錄數(shù)據(jù)平均值新對(duì)比,如表1所示。
從表1運(yùn)行結(jié)果對(duì)比中可知,本文提出的I-NMS運(yùn)用于YOLOv3模型后,相比于使用NMS算法、soft-NMS算法的YOLOv3模型,具有更低的重復(fù)檢測次數(shù)和錯(cuò)分次數(shù),且重復(fù)檢測率、錯(cuò)分率在三個(gè)模型中最低,表明本文提出的I-N MS算法確實(shí)能在一定程度上解決YOLO v3模型在多目標(biāo)檢測任務(wù)中的重復(fù)檢測問題。
圖2 YOLOv3 算法輸出效果圖Fig.2 The output effect of yolov3 algorithm
表1 重復(fù)檢測率、錯(cuò)分率對(duì)比Tab.1 Comparison of repeated detection rate and misclassification rate
針對(duì)YOLOv3目標(biāo)檢測模型中通常使用的非極大值抑制算法容易在多目標(biāo)檢測任務(wù)中的重復(fù)檢測問題,本文在前人研究的so ft-N MS 算法基礎(chǔ)上進(jìn)行優(yōu)化,提出INMS算法。通過對(duì)比實(shí)驗(yàn)表明,應(yīng)用本文提出的I-NMS算法的YOLO v3模型擁有更低的重復(fù)檢測率。