崔港濤,馬社祥
(天津理工大學(xué) 電氣電子工程學(xué)院,天津 300382)
交通標(biāo)志檢測和識別(TSD&R)是必不可少的交通標(biāo)志檢測或現(xiàn)代自動車輛駕駛技術(shù)。作為車輛行駛的指引標(biāo)志,交通標(biāo)志被設(shè)計成不同的形狀、顏色和獨特的象形圖,方便辨認和最大化。盡管這樣設(shè)計,但是提出算法檢測時用到的交通標(biāo)志形狀信息很少。近些年,由于深度學(xué)習(xí)檢測速度快的同時能夠保證精度,大量的算法出現(xiàn)并用在交通檢測系統(tǒng)中[1]。
早期基于深度學(xué)習(xí)的目標(biāo)檢測器是兩階段的,建議框生成后回歸框分類的方法如Faster-RCNN[2],在第一階段,生成一組感興趣區(qū)域,并在第二階段由卷積神經(jīng)網(wǎng)絡(luò)對它們進行回歸分類。后來,單階段的端到端檢測算法得到了越來越多的關(guān)注[3,4],其中建議框被預(yù)定義的anchor所取代,結(jié)構(gòu)更簡單速度更快,但是anchor必須密集地覆蓋圖像,其位置和尺度都需要手動調(diào)整,以最大化召回率;單階段算法在訓(xùn)練中還存在產(chǎn)生的正負樣本不平衡性問題。針對anchor的缺點,已經(jīng)提出了幾種方法來改變anchor的分配和提高其質(zhì)量[5,6],以避免一些極端的前景背景不平衡。近些年也提出了一階段anchor-free方法,來避免anchor設(shè)置復(fù)雜的問題,有兩組突出方法,第一組是基于關(guān)鍵點的自下而上的方法,在CornerNet[7]的開創(chuàng)性工作之后得到推廣,這組算法通過檢測目標(biāo)的關(guān)鍵點(如角點、中心點和極值點),然后對它們進行回歸預(yù)測從而達到目標(biāo)的檢測;第二組anchor-free物體檢測器遵循自上而下的方法[8],直接對提取后的特征圖中每個位置進行類和邊界框坐標(biāo)的預(yù)測。
FCOS算法作為一種自上而下的anchor-free物體檢測器,在輸入圖像通過特征提取網(wǎng)絡(luò)提取特征和FPN[9]特征融合之后,在其檢測圖像上落在真值框內(nèi)的特征被標(biāo)記為正,其它特征被標(biāo)記為負,但在這些正面標(biāo)記的特征中并不是每一個都有助于損失函數(shù)進行計算訓(xùn)練。因為這些正標(biāo)簽中的一些可能是完全錯誤的或者質(zhì)量很差,由于交通標(biāo)志目標(biāo)小形狀類似并且只有標(biāo)志的中心位置具有分辨信息,所以這個問題在交通標(biāo)志的檢測中被放大[10],這會在訓(xùn)練過程中注入了大量的標(biāo)簽噪聲,影響最后模型的檢測精度值。FCOS算法中的回歸位置的選取方法使得正樣本標(biāo)簽的質(zhì)量差,導(dǎo)致檢測器性能不高,本文基于FCOS算法設(shè)計一種融合交通標(biāo)志形狀特點的正樣本標(biāo)簽選擇策略,去除大量的正樣本標(biāo)簽噪聲,最終的在TT100K(tsinghua-tencent 100K)數(shù)據(jù)集的檢測效果比改進前FCOS算法效果好。
FCOS算法是anchor-free的單階段目標(biāo)檢測算法,是在基于anchor的目標(biāo)檢測方法上分析提出的。此前提出的基于anchor的檢測器,取得了不錯效果,但是注意到基于anchor的檢測器存在一些不足,檢測性能對anchor的大小、縱橫比和數(shù)量很敏感。例如,在RetiaNet[11]中,改變上述的超參數(shù)在coco數(shù)據(jù)集中的map降低4%[11],鑒于此,F(xiàn)COS算法去除anchor的設(shè)置,去除了大量不確定的超參數(shù),因此比一些基于anchor的檢測器檢測效果要好,圖1是FCOS算法整體結(jié)構(gòu)。
圖1 FCOS整體結(jié)構(gòu)
FCOS算法通過特征提取網(wǎng)絡(luò)進行特征提取,對相對原圖縮放尺寸為1/8、1/16和1/32特征圖進行類似FPN自下往上的特征融合,融合后分成5部分,縮放尺寸分別為1/8、1/16、1/32、1/64和1/128。對預(yù)測這5個不同級特征圖上的位置特征進行目標(biāo)類別和目標(biāo)框的預(yù)測,每級縮放尺度不同,預(yù)測不同大小的目標(biāo),通過這樣多級預(yù)測來提高召回率和解決由重疊包圍盒引起的歧義。與基于anchor的檢測器不同,基于anchor的檢測器將輸入圖像上的位置視為多個anchor框的中心,并以這些anchor框進行回歸目標(biāo)邊界框,F(xiàn)COS算法直接在該位置進行正負樣本選擇訓(xùn)練回歸目標(biāo)邊界框。預(yù)測模塊對目標(biāo)的分類預(yù)測時,預(yù)測數(shù)目大小為H×W×C,H和W分別為特征圖的長和寬,C為預(yù)測的種類。對目標(biāo)回歸部分預(yù)測數(shù)目大小為H×W×4, 每個回歸位置點的4個值l*,t*,r*,b*分別表示目標(biāo)框內(nèi)回歸位置點離框的左邊、上邊、右邊、下邊的距離。設(shè)位置坐標(biāo)為 (x,y), 則該位置訓(xùn)練的回歸目標(biāo)可以表示為
(1)
除了對分類和目標(biāo)框預(yù)測,對特征圖上每個位置預(yù)測Center-ness值,這個簡單的方法能夠用來抑制低質(zhì)量的檢測到的邊界框,并且不用引入其它超參數(shù),公式為
(2)
式中:centerness*的范圍是0~1,通過將預(yù)測的centerness*值乘以相應(yīng)的分類分數(shù)來計算最終分數(shù)。
訓(xùn)練損失函數(shù)為
(3)
類別損失是對每個類別作二分類,用focal loss[12]方法計算
(4)
式中:γ因子使得減少易分類樣本的損失,使得模型更關(guān)注于困難的、錯分的樣本,因子?用來平衡正負樣本本身的數(shù)量比例不均。
回歸損失用GIoU計算[13]。公式為
(5)
式中:D和F分別為兩個預(yù)測對象框,V為包住它們的最小方框。V(D∪F) 的面積為V的面積減去D∪F的面積。
數(shù)據(jù)集真實框中目標(biāo)特征分布在框中的位置是隨機的,F(xiàn)COS中直接將其真實框的中心作為目標(biāo)特征的中心,這樣顯然會影響檢測效果,目前還沒有很好的方法確定目標(biāo)的中心特征點。但是由于交通標(biāo)志形狀特點是固定的,在算法中,可以結(jié)合其特點設(shè)計新的正樣本選擇方法,更加合理設(shè)置目標(biāo)中心點,同時提出與交通標(biāo)志類別形狀相對應(yīng)的收縮方法進行交通標(biāo)志正樣本選擇。
交通標(biāo)志種類多,每類交通標(biāo)志有固定的形狀信息。按照交通標(biāo)志的功能,我國把交通標(biāo)志分為三大類:警告、禁止和指示。
警告標(biāo)志:具備對駕駛員的警告作用,標(biāo)志顏色是以黃色為背景,外框被黑色包圍,內(nèi)部標(biāo)志內(nèi)容也是黑色。在形狀特點上,將其設(shè)計成正三角形,如圖2(c)部分。禁令標(biāo)志:具備禁止作用,用于規(guī)范駕駛員的交通行為。標(biāo)志顏色是以白色為背景,外框被紅色包圍,內(nèi)部所標(biāo)識的內(nèi)容由黑色和紅色線條組成,標(biāo)志形狀特征主要有圓形,如圖2(a)部分;指示標(biāo)志:具備指示行駛?cè)藛T行進作用,用于改善交通情況。標(biāo)志顏色是以藍色為背景,內(nèi)部標(biāo)志內(nèi)容是白色。在形狀特點上,主要將其設(shè)計成圓形、矩形,如圖2(b)部分。
圖2 交通標(biāo)志示例
上述對我國交通標(biāo)志的形狀信息分析,可以得到不同的交通標(biāo)志有不同的形狀。目標(biāo)檢測網(wǎng)絡(luò)訓(xùn)練時這些信息是已知的,依據(jù)真實框目標(biāo)的類別可以判斷出其形狀是三角形、圓形和矩形等的哪一種,利用獲得的這些形狀的特點信息,可以對目標(biāo)的特征中心點重新設(shè)置,并且數(shù)據(jù)集信息的不同,正樣本設(shè)置時的尺度放縮也不是矩形的時候最好,在交通標(biāo)志數(shù)據(jù)集中,根據(jù)不同類別的形狀特點進行放縮更加合理。
上節(jié)中分析了交通標(biāo)志形狀特點,根據(jù)交通標(biāo)志的類別能夠判斷出對應(yīng)交通標(biāo)志的形狀。在原算法中,對于圖3中的真實目標(biāo),無論是三角、矩形和圓形都按照矩形處理。本節(jié)設(shè)計將正樣本標(biāo)簽選擇與交通標(biāo)志的形狀特點相結(jié)合的更合理正樣本標(biāo)簽選擇策略。由于交通標(biāo)志圓形和三角形居多,下面對這兩類交通標(biāo)志正樣本選擇策略設(shè)計說明。
圖3 圓形交通標(biāo)志真實框
圓形特點的交通標(biāo)志,在原算法中,直接按照矩形框進行處理,但是為了獲得更高質(zhì)量的特征點,需要取目標(biāo)特征中心點附近的位置點為正樣本標(biāo)簽?;趫A形交通標(biāo)志的目標(biāo)特征中心點與真實框中心點正好吻合,中心位置選擇不用進行處理,但是原算法樣本選擇時對應(yīng)的是矩形收縮,根據(jù)圓形交通標(biāo)志的結(jié)構(gòu)特點,將矩形放縮變成圓形放縮更加合理。首先設(shè)置一個縮放因子[14],但是放縮后不是直接按照放縮后的矩形區(qū)域作為正樣本區(qū)域,而是根據(jù)圓形的交通標(biāo)志的形狀特點做一個內(nèi)切圓,其內(nèi)區(qū)域代替原來的矩形框區(qū)域為正樣本選擇區(qū)域,如圖4所示。
圖4 結(jié)合圓形交通標(biāo)志正樣本選擇
圖4中前后真實框和圓形交通標(biāo)志的中心點吻合,但是由于圓形交通標(biāo)志的特征信息是包含在圓內(nèi)的,所以將矩形正樣本區(qū)域更換成圓形區(qū)域更加合理。本文設(shè)計對應(yīng)正樣本選擇策略,當(dāng)真實目標(biāo)框不收縮時,將內(nèi)切圓作為正樣本區(qū)域能夠去除對應(yīng)的噪聲信息,對應(yīng)圖中的實線內(nèi)切圓。此時的目標(biāo)特征中心點是圓心即圖中的實心黑點,當(dāng)以其為中心按照圓形收縮時,對應(yīng)右圖的虛線圓,以獲得更高質(zhì)量的正樣本。
三角形特點的交通標(biāo)志如圖5所示,原算法中也直接按照矩形框進行處理,但是三角形交通標(biāo)志面積只占真實目標(biāo)矩形框的1/3左右,設(shè)置矩形框作為正樣本區(qū)域會引入大量的噪聲信息,而且從圖6中可以觀察到,相比圓形交通標(biāo)志,接近矩形框的中心位置存在更多噪聲信息。除此之外,在圖中實心圓點為真實目標(biāo)矩形框中心點,空心圓點為三角形交通標(biāo)志特征中心點,兩點不是同一個點,而算法中將矩形目標(biāo)真實框中心作為正樣本區(qū)域中心點顯然不合理。當(dāng)真實目標(biāo)框不收縮時,將內(nèi)接三角形作為正樣本區(qū)域能夠去除對應(yīng)的噪聲信息,對應(yīng)圖中的黑色三角形。此時的目標(biāo)特征中心點是三角形中心點,對應(yīng)右圖中的空心圓點,當(dāng)以其為中心按照三角形收縮時,對應(yīng)右圖的虛線三角形,以獲得更高質(zhì)量的正樣本。下面對三角形特征中心點進行計算。
圖5 三角形交通標(biāo)志真實框
設(shè)目標(biāo)真實框的按順時針順序4個頂點坐標(biāo)分別為 (m1,n1),(m2,n2),(m3,n3),(m4,n4), 則3個頂點坐標(biāo)分別為:((m1+n2)/2,(m1+n2)/2)),(m3,n3),(m4,n4)。 對應(yīng)的中心點坐標(biāo) (m,n) 為
(6)
位置點是否在圓和矩形框中很好判斷,現(xiàn)在具體討論判斷一個點是否在三角形正樣本區(qū)域內(nèi)中。設(shè)點M在三角形ABC內(nèi),可以利用點M與點C在邊AB同側(cè)、點M與點B在邊AC同側(cè)和點M與點A在邊BC同側(cè)這個條件確定。當(dāng)符合這個條件時,則判斷點M在三角形ABC內(nèi)。因為叉乘可以判斷一個點在直線的那一側(cè),本文通過叉乘計算對3個條件進行判斷。對應(yīng)叉乘公式為
(7)
從圖7仿真結(jié)果可以看到通過叉乘能夠準(zhǔn)確判斷出位置點是否在三角形正樣本區(qū)域內(nèi),此方法能夠作為三角形交通標(biāo)志正樣本區(qū)域內(nèi)位置點的選取方法。
圖7 仿真結(jié)果
改進后的FCOS算法正標(biāo)簽選擇策略是將提出的真實框收縮正樣本選擇策略與原算法中Center-ness策略相結(jié)合,共同提取高質(zhì)量正樣本標(biāo)簽。其中三角形形狀特點的交通標(biāo)志目標(biāo)特征點不是原來的真實框中心點,所有Center-ness需要重新計算。計算方法與原算法保持一致,只是改變了特征中心點位置,三角形交通標(biāo)志計算Center-ness公式為
(8)
式中:4個值l*,r*,t*,b*, 分別表示目標(biāo)框內(nèi)回歸位置點離矩形框左邊、右邊、上邊、下邊的距離。Δα表示三角形交通標(biāo)志目標(biāo)特征中心點到真實框中心點的距離。
圓形交通標(biāo)志和三角形交通標(biāo)志在改進算法后的Center-ness值仿真結(jié)果圖如圖8所示,從圖中得Center-ness的大小與檢測目標(biāo)特征中心值相關(guān),當(dāng)位置點與特征點重合時最大,然后隨位置點到特征中心點的位置距離線性減小。
圖8 圓形和三角形交通標(biāo)志Centerness值仿真對比
本文算法使用小目標(biāo)占多數(shù)的TT100K交通標(biāo)志數(shù)據(jù)集進行訓(xùn)練預(yù)測。該數(shù)據(jù)集是由騰訊公司發(fā)布,平均尺寸為2048×2048,該數(shù)據(jù)集統(tǒng)計得到大多數(shù)目標(biāo)尺寸都是在16-60像數(shù)點之內(nèi),對目標(biāo)的檢測模型要求很高。該數(shù)據(jù)集的訓(xùn)練集的圖片有6105張,測試集圖片有3071張。按照上文提到的交通標(biāo)志的分類規(guī)則,將該數(shù)據(jù)集目標(biāo)為3類:Prohibitory、Mandatory和Danger進行標(biāo)注。對應(yīng)的目標(biāo)數(shù)量分布圖為圖9。
圖9 數(shù)據(jù)集目標(biāo)分布
實驗平臺硬件配備了兩個TITANXp GPU(顯存大小20 GB),Intel(R)Core(TM)i7-7800X CPU,32 GB RAM;軟件搭建Ubuntu16.04 操作系統(tǒng),Python3.6,以下實驗訓(xùn)練測試全部是在該平臺上完成。實驗訓(xùn)練過程中,使用PyTorch框架對不同算法網(wǎng)絡(luò)模型進行搭建,特征提取網(wǎng)絡(luò)ResNet50[15]初始權(quán)重在ImageNet上預(yù)訓(xùn)練得到。訓(xùn)練超參數(shù)設(shè)置,見表1。
本文使用目標(biāo)檢測常見的精度評價指標(biāo)mAP(mean average precision)對實驗結(jié)構(gòu)進行分析。由于mAP是數(shù)據(jù)集中所有類別AP值求平均,所以要計算mAP,首先得知道某一類別的AP值怎么求。不同數(shù)據(jù)集的某類別的AP計算方法大同小異,主要分為3種,本文將VOC2010及以后的方法作為評價標(biāo)準(zhǔn),根據(jù)每一個不同的Recall值選擇Precision值,然后根據(jù)PR曲線計算AP值。數(shù)據(jù)集中每張圖片中這一類別的Precision和Recall由下列公式計算
(9)
式中:TP表示準(zhǔn)確檢測出的正樣本,F(xiàn)P表示檢測失敗的正樣本,F(xiàn)N表示檢測錯誤的負樣本。
平均精度AP近似等于精確率和召回率曲線下面積,計算公式為
(10)
式中:p(k) 對應(yīng)召回率在k點對應(yīng)的精確率,指任何召回率在大于k點時的最大準(zhǔn)確率。 Δr(k) 表示k點變化時對應(yīng)召回率的變化量。N表示檢索出的目標(biāo)集數(shù)目。不同類別的AP分開計算,i表示不同類別的索引值。
實驗首先為確定改進算法選擇正標(biāo)簽的最佳的收縮因子,將原正樣本收縮算法與新設(shè)計的結(jié)合交通標(biāo)志形狀特點的正樣本策略分別進行消融實驗,確定最佳收縮因子后,然后與原算法進行實驗對比,最后對預(yù)測結(jié)果進行非極大值抑制(NMS)[17]分析,驗證新的正樣本選擇策略的有效性。
為確定改進后正標(biāo)簽策略的最佳正標(biāo)簽的收縮因子,首先做消融實驗,將結(jié)果最好的正標(biāo)簽的收縮因子確定為最佳收縮因子。實驗中,通過將真實框?qū)挾群透叨瘸艘砸粋€收縮因子來調(diào)整正樣本區(qū)域的大小。在相同的實驗環(huán)境下,分別對收縮因子1.0、0.8、0.6和0.4做實驗,其它參數(shù)保持一致。性能結(jié)果見表2。
表2 不同收縮因子消融實驗
從表2不同收縮因子對比實驗結(jié)果得到,收縮因子減少到0.8,檢測精度提高,驗證了一些遠離目標(biāo)中心的正標(biāo)簽的消除對算法的訓(xùn)練有好處,即遠離目標(biāo)中心的正標(biāo)簽訓(xùn)練時會引入噪聲,影響檢驗精度。將新的融合交通標(biāo)志形狀的正標(biāo)簽選擇策略與原收縮策略檢測對比,得到融合交通標(biāo)志正標(biāo)簽選擇策略性能更好,當(dāng)收縮因子為0.8時,mAP最高達到83.2%,驗證了融合交通標(biāo)志正標(biāo)簽選擇策略的合理性。由上述實驗確定了最佳收縮因子為0.8,下面的對比實驗中將收縮因子設(shè)置為0.8。
確定收縮因子為0.8后,從損失函數(shù)值的變化進一步分析使用交通標(biāo)志形狀特點的正樣本標(biāo)簽選擇對改進算法的性能提升的原因。從圖10的損失函數(shù)圖看出,使用改進后融合交通標(biāo)志形狀特點的正樣本選擇策略去除大量噪聲正樣本標(biāo)簽,損失曲線收斂更快,擬合效果更好。
圖10 損失曲線對比
與原算法進行對比實驗,對比結(jié)果表3中得到對算法應(yīng)用改進后的正樣本標(biāo)簽策略后檢測精度得到提升,由于Danger類中交通標(biāo)志三角形形狀居多,訓(xùn)練時改變了目標(biāo)特征中心點位置,相比其它類檢測精度提升最大,進而分析得到并不是每一個樣本都有助于損失函數(shù)進行計算訓(xùn)練,因為正標(biāo)簽中的一些樣本可能是完全錯誤的或者質(zhì)量很差,造成訓(xùn)練干擾。由于交通標(biāo)志目標(biāo)小形狀類似并且只有標(biāo)志的中心位置附近具有分辨信息,在訓(xùn)練過程中注入了大量的標(biāo)簽噪聲,影響最后的檢測精度。實驗驗證了新的正樣本選擇策略能有效去除噪聲標(biāo)簽,有助于交通標(biāo)志的檢測識別,提高檢測器性能。與其它算法實驗結(jié)果對比見表4。
表3 實驗結(jié)果對比
表4 與其它算法實驗結(jié)果對比
由上表實驗結(jié)果可以看出,在數(shù)據(jù)集的3種類別Prohibitory、Mandatory和Danger上與其它檢測算法對比,改進后的算法精度上優(yōu)勢明顯。最后對上面實驗結(jié)果綜合分析得到,本文對FCOS算法正標(biāo)簽選擇策略進行改進,改進后的正標(biāo)簽的選擇策略對原算法的檢測精度提高明顯,與其它算法相比,在交通標(biāo)志數(shù)據(jù)集TT100K中,該算法對交通標(biāo)志檢測效果性能上有很大提高,由表5檢測速度結(jié)果對比得出改進后與其它算法檢測速度相差不大,分析改進后算法如圖11實驗效果圖得到改進后算法可以較好檢測出交通標(biāo)志目標(biāo)。
為獲得更高質(zhì)量的正樣本標(biāo)簽對交通標(biāo)志進行檢測識別,分析得到基于anchor-free正樣本位置點的選取并不是根據(jù)目標(biāo)特征中心點,而是直接將真實框的中心點作為特征中心點。基于交通標(biāo)志獨特的形狀特點,圓形、三角形和正方形等,設(shè)計新的正樣本選擇策略,更好去除噪聲標(biāo)簽、低質(zhì)量標(biāo)簽并且選擇更加合理的特征中心,實驗驗證其有效性。提出的基于交通標(biāo)志形狀特點的正樣本標(biāo)簽選擇,雖然能夠進一步提高正樣本標(biāo)簽的質(zhì)量,但是基于交通標(biāo)志獨特的特點來確定檢測目標(biāo)的特征中心點,遇到特征中心點沒有規(guī)律的檢測圖像,如何設(shè)計算法準(zhǔn)確預(yù)測目標(biāo)特征中心點,選擇高質(zhì)量正樣本標(biāo)簽是下一步研究的關(guān)鍵。