梁正友,耿經(jīng)邦,孫宇
(廣西大學(xué)計算機與電子信息學(xué)院,南寧 530004)
目標(biāo)檢測是當(dāng)前計算機視覺領(lǐng)域一個熱門的研究方向。目標(biāo)檢測的主要任務(wù)是從圖像中找出目標(biāo)物體,并表示出該物體的位置和大小等信息。隨著近年來深度學(xué)習(xí)技術(shù)的迅速發(fā)展,相關(guān)研究人員也開始從傳統(tǒng)的手工特征目標(biāo)檢測算法轉(zhuǎn)向了基于深度學(xué)習(xí)的目標(biāo)檢測算法的研究。深度學(xué)習(xí)算法能夠避免繁瑣的手工特征提取過程,且檢測效果在一定程度上超過了傳統(tǒng)算法。當(dāng)前,基于深度學(xué)習(xí)的目標(biāo)檢測算法主要分成twostage 和one-stage 兩種。two-stage 將目標(biāo)檢測任務(wù)分成兩個階段。第一個階段的目標(biāo)是確定目標(biāo)物體的候選區(qū)域(region proposals),第二個階段對候選區(qū)域進行位置精修和分類。two-stage 的代表算法有RCNN、SPPNet、Fast RCNN、Faster RCNN、RFCN 等。雖然以Faster RCNN 為代表的算法實現(xiàn)了端到端的訓(xùn)練,但是由于網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,很難達到實時性要求。one-stage 則不需要確定目標(biāo)物體的候選區(qū)域,而是直接計算出目標(biāo)物體的類別概率和位置區(qū)域坐標(biāo)。one-stage 的代表算法有YOLO[1]和SSD[2]。YOLO 舍棄了候選區(qū)域的建議,簡化了網(wǎng)絡(luò),提高了檢測速度,但是限制了模型對臨近物體的目標(biāo)預(yù)測能力,定位準確度有所下降。SSD 結(jié)合了Faster RCNN 和YOLO 的優(yōu)點,并借鑒了RPN(region proposal networks)的思路,在保證檢測精度的同時提高了速度。之后,F(xiàn)u 等人[3]提出了模型DSSD,使用殘差神經(jīng)網(wǎng)絡(luò)Residual-101 替換原有的VGG16[4],并引入了反卷積模塊,雖然改進后的模型提高了檢測精度,但速度有所下降。Jeong 等人[5]提出的R-SSD 模型也存在同樣的問題。在上述算法中,SSD 的性能相對較好,結(jié)合了YOLO 回歸思想和anchor 機制,提高了模型的實時性和準確性。
目前很多學(xué)者將基于深度學(xué)習(xí)的目標(biāo)檢測方法應(yīng)用到交通標(biāo)志檢測中。Zuo 等人[6]采用Faster R-CNN 檢測算法對交通標(biāo)志進行目標(biāo)檢測,取得了較好效果,但是目標(biāo)檢測速度方面有一定局限性。Wang 等人[7]使用YOLOv2 網(wǎng)絡(luò)對視頻中物體進行檢測識別。Shan 等人[8]提出了一種改進SSD模型,通過將不同層次的特征信息進行融合,并采用遷移學(xué)習(xí)的方法對模型進行訓(xùn)練,縮短了模型的訓(xùn)練時間,提高了對小目標(biāo)的檢測能力。鮑敬源等人[9]提出了一種Strong Tiny-YOLOv3 目標(biāo)檢測模型,通過引入FireModule 層進行通道變換,加深網(wǎng)絡(luò)模型的同時減小了參數(shù),并在FireModule層之間加入了short-cut增強網(wǎng)絡(luò)的特征提取能力。任坤等人[10]在MobileNet2-SSD 網(wǎng)絡(luò)的基礎(chǔ)上,對多尺度像素特征進行融合,并在檢測層引入了通道注意力機制,在保證算法實時性的同時,提高了目標(biāo)檢測準確率。
上述算法在交通標(biāo)志檢測任務(wù)中取得了一定成果。但是交通標(biāo)志采集的環(huán)境較為復(fù)雜,使得采集到的交通標(biāo)志樣本在圖像中所占的比例差異較大,若算法的候選區(qū)域與目標(biāo)物體的尺寸差異較大,則會影響算法的檢測效果。此外,在采集到的樣本中,部分樣本的交通標(biāo)志在圖像中所占的比例較小,導(dǎo)致了算法較難檢測到圖像中的目標(biāo)物體。
針對上述問題,本文在SSD 模型的基礎(chǔ)上同時引入了FPN(Feature Pyramid Networks)算法[11]和Kmeans 聚類算法[12],提出了基于改進SSD 網(wǎng)絡(luò)的交通標(biāo)志檢測算法。通過在CCTSDB 交通標(biāo)志數(shù)據(jù)集[13]上的實驗結(jié)果表明,本文提出的聚類多特征SSD模型在交通標(biāo)志上有較好的目標(biāo)檢測效果。
SSD[2]是一種單次多框?qū)崟r檢測深度神經(jīng)網(wǎng)絡(luò)模型,具有速度快以及檢測準確率高的優(yōu)勢。SSD 是一種基于回歸的目標(biāo)檢測算法,實現(xiàn)了端到端的目標(biāo)檢測,并引入了anchor理念。
SSD 主要由兩部分構(gòu)成:一部分是用VGG16當(dāng)作基礎(chǔ)網(wǎng)絡(luò)的特征提取網(wǎng)絡(luò)模型,將FC6 和FC7 換為Conv6 和Conv7,去掉FC8;另一部分是末端添加多個級聯(lián)卷積層Conv8_2、Conv9_2、Conv10_2和Conv11_2。SSD網(wǎng)絡(luò)模型如圖1所示。
圖1 SSD網(wǎng)絡(luò)模型
在SSD300[2]算法中,首先將輸入圖片統(tǒng)一處理為38× 38,然后經(jīng)過基礎(chǔ)網(wǎng)絡(luò)VGG16 和后端一組級聯(lián)神經(jīng)網(wǎng)絡(luò)操作處理后,將其中的六層卷積結(jié)果提取出來進行目標(biāo)預(yù)測,這六層分別為Conv4_3層、FC層、Conv8_2、Conv9_2、Conv10_2和Conv11_2。
SSD 算法針對小目標(biāo)檢測精度不高,易出現(xiàn)誤檢漏檢的情況,因此需要對大小不同的特征圖多次預(yù)測。這些大小不同的特征圖相對孤立,經(jīng)過特征提取后的信息無法充分使用。文章借鑒特征金字塔的思想,在SSD 網(wǎng)絡(luò)中引入FPN 算法,將網(wǎng)絡(luò)深層信息逐層反卷積與前一層網(wǎng)絡(luò)進行深度拼接,使模型能夠融合多個卷積層的多尺度信息來增強特征的表達能力,提高算法對小目標(biāo)物體的檢測準確率。
原始SSD采用默認框生成機制進行目標(biāo)檢測,默認框基準大小為sk:
本文將從兩個方面對SSD 模型進行改進。①借鑒特征金字塔思想,引入FPN 算法,將高層語義信息和淺層細節(jié)信息結(jié)合起來,增強特征表達能力。②利用Kmeans聚類算法確定默認框窗口大小,得出較為適合于當(dāng)前數(shù)據(jù)集的的比例值,提高模型的檢測準確率。本文提出的模型聚類多特征SSD 是在原始SSD 的基礎(chǔ)上同時加入特征金字塔FPN算法和Kmeans聚類算法,則將只加入特征金字塔FPN算法的模型稱為多特征SSD。
加入FPN 算法后的多特征SSD 網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。Conv 1×1表示大小為1×1的卷積操作,使得經(jīng)過卷積輸出和反卷積輸出后的特征圖具有數(shù)據(jù)一致性;⊕實現(xiàn)反卷積輸出的特征圖與側(cè)向連接輸出的特征圖對應(yīng)元素的線性疊加;Detections表示預(yù)設(shè)候選框的目標(biāo)個數(shù);NMS 表示非極大抑制。多特征SSD 網(wǎng)絡(luò)由原始SSD 網(wǎng)絡(luò)實現(xiàn)淺層到深層的特征提取,2×up 實現(xiàn)由深層到淺層的反卷積操作,Conv 1×1 和⊕實現(xiàn)特征金字塔的側(cè)向連接。
圖2 多特征SSD網(wǎng)絡(luò)結(jié)構(gòu)
本次實驗的環(huán)境如下:實驗的操作系統(tǒng)環(huán)境為Centos 6.5,利用Keras 2.3.1 完成模型的搭建,編程語言為Python 3.6,模型訓(xùn)練的主要硬件設(shè)備為NVIDIA TESLA T4。
本文實驗使用的數(shù)據(jù)集是CCTSDB,CCTSDB數(shù)據(jù)集共15724 張圖像,其中包含原始圖像和經(jīng)過拉伸、調(diào)整亮度后的圖像。該數(shù)據(jù)集將交通標(biāo)志分為指示(mandatory)、警告(warning)和禁令(prohibitory)三類,共15000 多張圖片,包括不同環(huán)境類型的自然交通場景。
本文實驗選用CCTSDB 交通標(biāo)志數(shù)據(jù)集進行模型訓(xùn)練。在本文實驗,初始學(xué)習(xí)率設(shè)置為0.001,訓(xùn)練總輪數(shù)為20000,批次設(shè)為32,參數(shù)是反復(fù)實驗決定的。
本文利用檢測平均精度均值(mean average precision,mAP)和檢測速度兩項指標(biāo)對算法性能進行評估。mAP 主要用于評價算法的檢測準確率,計算方法為對三大類交通標(biāo)志平均檢測精度(average precision,AP)求取均值。檢測速度主要用于評價算法的實時性能,本文實驗選用的速度評價指標(biāo)是處理每張圖片的消耗時間,以秒為單位,用時越少,速度越快。
在CCTSDB 數(shù)據(jù)集上對改進后的模型聚類多特征SSD 進行訓(xùn)練。表1 展示了在CCTSDB 交通標(biāo)志數(shù)據(jù)集上模型聚類多特征SSD 和其他前沿學(xué)習(xí)方法的性能對比。
表1 CCTSDB數(shù)據(jù)集上與其他前沿方法實驗結(jié)果對比
在表2 的對比方法中,Shan 等人[8]提出的改進SSD、鮑敬源等人[9]提出的Strong Tiny-YOLOv3和任坤等人[10]提出的MobileNet2-SSD 網(wǎng)絡(luò)都是通過對經(jīng)典目標(biāo)檢測網(wǎng)絡(luò)進行改進,在交通標(biāo)志目標(biāo)檢測中取得了一定成果。但是在這些方法在檢測前并沒有找到一個適合相應(yīng)數(shù)據(jù)集的目標(biāo)窗口尺寸,且在面對小目標(biāo)檢測時仍存在一定局限性,因此檢測效果的提升較為有限。而本文通過在原始SSD 網(wǎng)絡(luò)中引入特征金字塔算法,將網(wǎng)絡(luò)深層信息逐層反卷積與前一層網(wǎng)絡(luò)進行深度拼接,使模型能夠融合多個卷積層的多尺度信息來增強特征的表達能力,實現(xiàn)了特征增強,并采用Kmeans聚類算法確定默認窗口大小,得出較為適合于當(dāng)前數(shù)據(jù)集的的比例值,提高模型的檢測準確率。從表中的實驗結(jié)果可以看出,本文提出的聚類多特征SSD 模型在CCTSDB 交通標(biāo)志數(shù)據(jù)集上的mAP達到了93.58%,優(yōu)于前沿的交通標(biāo)志檢測方法。
為了充分證明本文所提模型聚類多特征SSD的有效性,本文對模型聚類多特征SSD 進行了消融實驗,驗證模型加入某一模塊后對整體的影響。本文提出的模型聚類多特征SSD 是在原始SSD 的基礎(chǔ)上同時加入特征金字塔FPN 算法和Kmeans聚類算法,則將只加入特征金字塔FPN 算法的模型稱為多特征SSD。由于在原始SSD 的基礎(chǔ)上加入新的模塊,理論上多特征SSD 和聚類多特征SSD 的模型復(fù)雜度會有所增加,對檢測時間也會有一定影響,所以除了比較檢測精度之外,實驗還需要對檢測時間進行對比。
圖3 展示的是在CCTSDB 交通標(biāo)志數(shù)據(jù)集上原始SSD、多特征SSD 和聚類多特征SSD 的模型損失隨著迭代次數(shù)遞增的效果圖。隨著迭代次數(shù)的遞增,原始SSD、多特征SSD 和聚類多特征SSD 的損失不斷降低,相對而言,聚類多特征SSD 的損失小于原始SSD 和多特征SSD,模型效果更好。
圖3 不同模型損失變化
表2 展示的是在CCTSDB 交通標(biāo)志數(shù)據(jù)集上原始SSD、多特征SSD 和聚類多特征SSD 的實驗結(jié)果比較。實驗結(jié)果表明,多特征SSD 相比原始SSD 的三大類檢測精度以及mAP 均有所提高,多特征SSD 的mAP 達到了89.72%,比原始SSD 高了2.84%。聚類多特征SSD 的mAP 達到了93.58%,比多特征SSD 高了3.86%。聚類多特征SSD 相比原始SSD和多特征SSD的檢測效果更好。
表2 CCTSDB數(shù)據(jù)集上不同模型實驗結(jié)果對比
測試時間上,多特征SSD 與原始SSD 相差了0.021s,可能是由于相比原始SSD 使用了多特征融合,增加了模型復(fù)雜度,在提升mAP 的同時影響了檢測速度。聚類多特征SSD 在多特征SSD 的基礎(chǔ)上采用Kmeans 聚類算法確定默認窗口大小,在保持檢測時間不變的同時,目標(biāo)檢測精度得到明顯提升,充分說明了Kmeans 聚類算法的有效性。
在CCTSDB 交通標(biāo)志數(shù)據(jù)集上的實驗結(jié)果表明,多特征SSD 的性能要優(yōu)于原始SSD,同時加入了特征金字塔和Kmeans聚類算法的模型聚類多特征SSD 相比多特征SSD 和原始SSD 而言性能上要更好。由于聚類多特征SSD 同時加入了FPN 和Kmeans聚類兩個改進方法,且聚類多特征SSD的網(wǎng)絡(luò)性能又最佳,所以在CCTSDB 交通標(biāo)志數(shù)據(jù)集上的對比很好地達到了消融實驗的效果。
為了進一步提高交通標(biāo)志檢測準確率,本文在SSD網(wǎng)絡(luò)基礎(chǔ)上引入了FPN算法和Kmeans聚類算法,以提高網(wǎng)絡(luò)對交通標(biāo)志的目標(biāo)檢測能力。改進后的網(wǎng)絡(luò)模型檢測準確率有了明顯提高。雖然提升了模型的檢測準確率,但是增加了模型復(fù)雜度,實時性方面有一定局限性。因此,如何在保證檢測準確率的前提下,降低模型復(fù)雜度,減小算法所需時間和計算資源,更好地滿足實時性應(yīng)用和需求,將是下一步的研究方向。