田智慧 孫鹽鹽 魏海濤
1(鄭州大學地球科學與技術學院 河南 鄭州 450052)2(鄭州大學信息工程學院 河南 鄭州 450001)
交通標志是道路行車的重要駕駛規(guī)則,快速并準確地檢測與識別出交通標志并把有效的信息傳遞給智能車控制系統(tǒng),對提高車輛的行駛安全,保障道路順暢起到了至關重要的作用和意義[1-2]。然而在自然場景中,由于交通標志圖像目標較小、背景復雜等原因,使交通標志檢測面臨著一定的困難。
目前,交通標志的檢測算法主要分為傳統(tǒng)的圖像處理算法和基于神經網絡的檢測算法。傳統(tǒng)算法主要通過標志顏色和形狀信息進行檢測。其中,基于顏色的檢測主要包括RGB空間和HSV空間下的交通標志檢測,通過分割特定的顏色創(chuàng)建顯著性映射,可快速高效地對候選區(qū)域進行檢測,但極易受到光照影響,無法滿足惡劣天氣條件下的檢測需求[3]。而基于形狀的檢測利用交通標志在形狀上的特殊性對其邊緣進行檢測,但當交通標志發(fā)生運動模糊或遮擋等情況時,將造成算法精度下降。傳統(tǒng)的算法泛化能力較弱,處理大量數(shù)據(jù)能力較差,無法滿足復雜的交通場景需求。近年來,隨著深度學習技術的出現(xiàn),目標檢測算法的性能不斷提升,在計算機視覺領域得到廣泛應用[4]。
基于深度學習的目標檢測算法有兩類,一類是two-stage算法,模型分為兩個階段,首先產生候選區(qū)域[5],再進行分類與定位,典型算法有R-CNN[6]、SPP-NET[7]、Fast R-CNN[8]、Faster R-CNN[9]、R-FCN[10]、Mask-RCNN[11]等;另一類是one-stage算法,模型采用回歸的思想,不需要候選框階段,網絡直接輸出類別概率和位置信息,以YOLO[12]和SSD[13]算法為代表,其算法實時性比基于區(qū)域候選框的算法好,檢測精確度也有所提高。
在上述幾種算法中,SSD的檢測性能相對較好,它不僅結合了YOLO的回歸思想,同時具有anchor機制,提高了模型檢測準確度和實時性,但是,SSD對小目標的檢測效果較差。針對SSD網絡對交通標志小目標檢測效果不佳的問題,本文在原來模型的基礎上進行算法的改進,相比于原SSD模型在檢測精度上得到明顯提升,主要工作有以下幾個方面:
(1) 增加不同尺度的特征圖輸出,原有的模型中只有Conv4_3低層卷積特征圖針對小目標檢測,本文在原網絡的基礎上增加了Conv3_3低層卷積層用于小目標檢測,以此來實現(xiàn)檢測信息的多元化。
(2) 設計了對特征提取更精細的網絡,采用多層特征融合的方法,將Conv4_3與Conv5_3、FC6進行融合,使網絡特征圖更具多樣性,提高檢測精度。
(3) 通過k-means聚類算法對圖像中目標大小進行分析,重新調整原有特征框大小比例,提高卷積網絡對目標特征的學習能力。
SSD算法是一種單次多框實時檢測的深度神經網絡模型,其實現(xiàn)了端到端的目標檢測,并引入anchor的設計理念。經典的SSD模型主要包括兩部分,一部分是用于初步提取特征的基礎網絡,采用VGG16作為基礎網絡模型,將FC6和FC7分別轉換為卷積層Conv6和Conv7,移除了FC8,并將Conv4層作為檢測的第一個特征圖;另一部分是末端添加的多個級聯(lián)卷積層Conv8_2、Conv9_2、Conv10_2、Conv11_2,提取不同尺度特征圖。接著,將多個尺度的特征圖同時用于預測模型,通過anchor機制生成一組不同寬高比的默認框,再對目標對象的位置偏移量和類別置信度進行回歸預測。采用非極大值抑制算法得出最終的檢測結果,實現(xiàn)多尺度特征檢測。SSD算法利用回歸的思想極大地減少了神經網絡的計算量,在一定程度上提高了算法在多尺度目標上的檢測性能和速度,但是SSD在具有低級語義信息的淺層特征圖上進行小目標檢測,使得其在小目標上的檢測性能較差。網絡模型結構如圖1所示。
圖1 SSD網絡結構
SSD在不損失精度的前提下提高了實時檢測速度,但對于小尺寸的目標識別效果不佳。主要原因是SSD模型對小目標的特征提取只使用了Conv4_3的低層特征圖,感受野相對較小,表征能力不足,在訓練階段,特征學習經過低層到高層池化操作,會產生特征消失現(xiàn)象,導致真實目標與先驗框難以匹配,不能滿足對小目標檢測精度的要求。
本文在原模型特征層的基礎上加入Conv3_3低層特征圖,其分辨率相對于Conv4_3較大,包含的細節(jié)信息更為豐富,使小目標特征得到充分提取。Conv3_3特征層分辨率為128×128,為保證模型檢測實時性,使用3×3的卷積核對其進行卷積操作,同時加入步長為2、池化空間為2×2的最大池化層,經過池化后的特征圖寬高各減一半。卷積層的計算公式為:
(1)
f(x)=max(0,x)
(2)
SSD模型提供了兩種尺寸的網絡輸入,分別是300×300和512×512。若選取300×300的圖像輸入網絡,在數(shù)據(jù)預處理階段進行圖片壓縮時,交通標志易丟失信息,所以使用512×512尺寸圖像作為網絡的輸入。SSD512模型進行分類和回歸的特征層是Conv4_3、FC7、Conv8_2、Conv9_2、Convl0_2、Conv11_2、Convl2_2,其對應的分辨率分別為64×64、32×32、16×16、8×8、4×4、2×2、1×1。由于改進后的模型加入了Conv3_3,且去掉了最后一層卷積層Convl2_2,所以新模型對應的分辨率為128×128、64×64、32×32、16×16、8×8、4×4、2×2。
由圖1可以看出,SSD網絡只是從不同層抽取不同scale的feature直接做預測,雖然不會增加計算量,但是各個scale之間沒有聯(lián)系。本文加入Conv3_3低層特征圖同時,通過引入上下文信息的方式,將多層特征進行融合來提高對小目標的檢測。為避免高層背景噪聲的影響,只進行低層特征間的融合。SSD模型中Conv5_3、FC6卷積層并沒有作為特征圖進行輸出預測,但它們具有不同的感受野,包含的語義信息也不同。故將Conv4_3、Conv5_3、FC6三層相鄰的低層特征圖進行融合,充分利用特征層的上下文信息。
為了更好地進行融合操作,先將特征圖調整為同一大小。如圖2所示,在Conv5_3、FC6特征圖之后分別跟一個1×1降卷積層,通過上采樣得到與Conv4_ 3尺寸相同的特征圖,并使用3×3大小的卷積核來提取特征。在將它們沿通道軸進行融合前,進行不同尺度的批量歸一化,然后采用Concat方式融合,再用1×1×256的卷積層來增強融合特征的分辨率,最后經過ReLU激活函數(shù),生成特征融合模塊,其維度為512。融合模塊具有豐富的語義信息,進行歸一化后直接和其他特征圖一樣對目標物進行輸出預測。
圖2 改進后網絡結構
經過改進后的SSD網絡,共有7個特征圖。在神經網絡中,圖像在經過每一層會產生不同尺寸的特征圖。對于不同的特征圖,默認框需要設置不同尺度和不同長寬比例,其計算公式如式(3)所示。本文將smin設置為0.2,smax設置為0.8,避免網絡訓練階段較小的默認框不能與標簽匹配問題。網絡中7個特征圖的默認框尺度系數(shù)分別為0.04、0.08、0.15、0.35、0.55、0.75、0.95。除了尺寸系數(shù),默認框的大小還與寬高比有關,實際尺寸的計算公式如式(4)所示。
(3)
式中:m=7,代表7個特征圖;sk為默認框大小相對于輸入圖像的尺寸比例;smin與smax分別為默認框尺寸占據(jù)原圖尺寸的最小比例值及最大比例值。
(4)
本文使用k-means聚類算法對數(shù)據(jù)集中各個交通標志對應的真實位置框的高寬比例進行了分析,獲得自己樣本默認框的尺寸,實驗通過設置多組不同的聚類個數(shù)提升聚類的準確度,最終得出聚類結果為[9.319 229 93 15.613 718 53],并把結果可視化,如圖3和圖4所示。其中:x軸代表框的寬度;y軸代表框的高度,那么每條線的斜率就是默認框的高寬比。虛線是SSD模型中默認框設置的五種高寬比例,分別是3、2、1、1/2、1/3。網格中實心小圓點為樣本聚類的結果,每條線上不同符號代表不同特征層上對應的默認框,模型對應的w-h分布圖如圖3所示。
圖3 w-h(0~300)分布圖
圖4 w-h(0~60)分布圖
為了更直觀地看出聚類效果,圖4截取了尺度為0~60的w-h分布圖。可以看出,目標物默認框高寬比聚類后主要分布在比例為5/3之處(即實線上),雖然接近SSD原始默認框設置的高寬比值2(實線左上方),但是經過聚類算法分析后的數(shù)值更加精確,對于目標物的特征學習更加有針對性。由于本文添加了第三層低層特征圖,所以,在原有模型默認框的基礎上對Conv3_3、Conv4_3上的高寬比參數(shù)進行更改,模型默認框參數(shù)如表1所示。
表1 本文改進后的模型默認框高寬比參數(shù)
本文使用多任務聯(lián)合損失函數(shù),用于對目標分類和邊框回歸兩個任務進行聯(lián)合訓練,提高網絡訓練速度和訓練結果的穩(wěn)定性。該損失函數(shù)如式(5)所示。
(5)
式中:N是匹配的候選框數(shù)目;α是權重系數(shù),可設置為1;第1項Lconf(x,c)是分類損失,通常采用Softmax函數(shù);第2項代表回歸損失,通常采用smooth L1函數(shù)。Lconf(x,c)可表示為:
(6)
式中:Pos指預測結果與標簽符合的數(shù)量(即交通標志正類別量);Neg指預測結果與標簽不一致的數(shù)量(即交通標志負類別量)。
(7)
(8)
(9)
式中:c為置信度;k為關于類別k是否匹配,值為0或1;l為預測框;g為真實框。
實驗軟硬件環(huán)境:Linux操作系統(tǒng),Nvidia Tesla P100顯卡,32核心,192 GB內存。實驗框架為TensorFlow深度學習開源框架。
(1) GTSDB數(shù)據(jù)集。實驗數(shù)據(jù)集主要來源是GTSDB[14]。該數(shù)據(jù)集從歐洲各種交通場景中收集包含43小類共900幅真實車輛駕駛環(huán)境下的高清交通標志場景圖像,其中訓練樣本包含846個目標物,測試樣本包含360個目標物。這些樣本中包含一些低分辨率、模糊不清、受到遮擋等不利條件的圖像,每幅圖像的像素值是1 360×800,每幅圖像包含0~6個目標物,而且目標物大小在16×16到128×128范圍內,所有圖像的格式都是ppm格式。本文主要針對禁止、危險和強制這三類重要的交通標志,進行檢測識別。
(2) CCTSDB數(shù)據(jù)集。CCTSDB[15]來自中國湖南長沙實驗室,根據(jù)中國交通標志數(shù)據(jù)集(CTSD)進行擴充。目前標注的數(shù)據(jù)包括三類圖像,分別是指示、禁止、警告。數(shù)據(jù)集圖像共有15 734幅,本次實驗按照2∶1劃分訓練集和測試集。
采用ImageNet數(shù)據(jù)集作為預訓練階段的數(shù)據(jù),預訓練模型可以明顯減少訓練時間。微調階段是采用德國交通標志數(shù)據(jù)庫中的訓練集相關數(shù)據(jù)進行訓練。模型訓練階段參數(shù)設置:學習率為0.01,迭代次數(shù)為20 000,動量因子為0.9,批次為32。
本文使用的評價標準是檢測平均精度均值(mean Average Precision, mAP)和速度。對于本文實驗交通標志檢測來說,首先要把檢測的三大類別的AP (Average Precision)值分別計算出來,然后取三個類別的AP的平均值,最終得mAP。其計算公式如式(10)所示。
(10)
式中:QR指實驗中所有類別交通標志全部預測出來正確的類別數(shù)量。
另外一個重要性能指標:速度。模型的檢測速度直接決定能否對交通標志實現(xiàn)實時檢測,這對交通標志的應用場景極其重要。本文評估速度用的指標是處理每幅圖片所消耗的時間,以秒為單位計數(shù)。每幅圖片用時越小,速度越快。
為了驗證算法在融合特征圖后對提高交通標志檢測率的有效性,對檢測框與交通標志真實框設置了不同的IOU閾值,分別為0.5、0.6、0.7 ,通過改變交通標志的置信度閾值,獲得多組Precision和Recall,實現(xiàn)交通標志檢測效果的評估。從實驗對比結果可以得出,本文方法隨著置信度增大,召回率降低。當IOU=0.6時,實驗效果最佳。實驗結果如表2所示。
表2 不同閾值實驗結果對照表
在相同置信度閾值(IOU=0.6)的條件下,通過mAP和檢測速度來對模型進行評估。將改進后的模型與原SSD模型進行對比實驗,實驗結果如表3所示。
表3 改進后的算法與原算法實驗結果對照表
原SSD512與原SSD300相比,模型的平均精度有所上升,但隨著模型輸入圖像尺寸的變大,在保留更多低層信息的同時增加了參數(shù)運算,精度得到提升,速度卻下降了。本文算法是基于SSD521的,為了提高檢測速度,去除了最后一層卷積層,減少網絡的計算量。
由表3可知,改進后的模型在GTSDB測試數(shù)據(jù)集上的表現(xiàn)均比原模型SSD300和SSD512有明顯的提升,比SSD300的mAP提升了7.65百分點,比SSD512的mAP提升了5.84百分點。算法時間成本在GTSDB數(shù)據(jù)集上是0.048 s,輸出幀率為21.74,與未改進的SSD相比僅差0.003 s,主要原因在于特征層融合在充分利用上下文語義信息的同時,增加了模型的復雜度,相比于原SSD模型多出一個運算,在一定程度上影響了模型速度,但是相比于模型在精確度上的提升,犧牲的速度是在可接受范圍內的。
同樣,在CCTSDB測試集上進行了模型測試,實驗結果mAP為92.47,相比于未改進的SSD原始模型也有明顯的提高,模型表現(xiàn)出了一定的穩(wěn)定性。
此外,通過對SSD網絡的改進,本文模型在GTSDB數(shù)據(jù)集的平均精度比文獻[16]、文獻[17]所提出的模型分別提高0.015 3、0.008 7。
為了更有效地評估模型性能,在現(xiàn)實場景中隨機選取三幅交通場景圖像進行測試,檢測效果如圖5所示,可以看出,改進后的模型在背景復雜、交通標志較小的情況下也能準確檢測并分類。
圖5 檢測效果
針對SSD算法應用在交通標志檢數(shù)據(jù)集上檢測精度不佳的問題,本文提出一種基于SSD模型改進的卷積網絡算法。通過增加低層特征圖,豐富小尺寸目標的語義信息,并將Conv4_3、Conv5_3和FC6進行特征融合,增強上下文信息,使其特征圖更具多樣性,提高交通標志檢測算法的精度。同時,利用k-means聚類算法對SSD默認框大小的選取進行分析,根據(jù)交通標志的自身特點,重新調整原有特征框大小比例,加快模型收斂。實驗結果表明,本文算法提高了交通標志的檢測精度,與目前的算法相比檢測效果也有明顯的提升。在未來的研究中,還需進一步提高檢測速率,解決本文方法的擴展問題,并且將該算法運用到現(xiàn)實。