王旭
(太原師范學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 晉中 030619)
交通標(biāo)志識(shí)別是城市智能交通系統(tǒng)中一個(gè)非常重要的環(huán)節(jié),其中交通標(biāo)志的種類高達(dá)上百種,按語(yǔ)義可以劃分為警告、指示、禁令、和道路標(biāo)志四種。所以,實(shí)現(xiàn)高效率和高精確度的交通標(biāo)志識(shí)別對(duì)無(wú)人駕駛和智能駕駛來(lái)說(shuō)至關(guān)重要。當(dāng)天氣環(huán)境惡劣時(shí),比如雨天,車載攝像頭采集的信息會(huì)因?yàn)橐曈X(jué)效果差而產(chǎn)生很大的噪聲,從而導(dǎo)致識(shí)別明顯精度降低。因此,目前的交通標(biāo)志識(shí)別應(yīng)用研究仍然具有很大的挑戰(zhàn)。
目標(biāo)檢測(cè)問(wèn)題,它主要是解決從圖像中獲取物體類型以及位置關(guān)系,其位置通常要用一個(gè)框來(lái)標(biāo)注出來(lái)。目標(biāo)檢測(cè)有兩種算法:一種是one-stage,它將目標(biāo)檢測(cè)問(wèn)題轉(zhuǎn)換成回歸問(wèn)題,直接通過(guò)主干網(wǎng)絡(luò)給出位置信息和類別信息,網(wǎng)絡(luò)的準(zhǔn)確度低,但是速度快,其代表算法有如YOLO[1]算法系列;另一種是two-stage,主要通過(guò)一個(gè)卷積神經(jīng)網(wǎng)絡(luò)來(lái)完成目標(biāo)檢測(cè)過(guò)程,其主要訓(xùn)練兩個(gè)部分,第一步訓(xùn)練RPN 網(wǎng)絡(luò),第二步訓(xùn)練目標(biāo)區(qū)域檢測(cè)的網(wǎng)絡(luò),網(wǎng)絡(luò)的準(zhǔn)確度高,但是檢測(cè)速度慢,其代表算法有R.Girshick et ald 等人在2014年提出的R-CNN 算法[2]。文獻(xiàn)[3]提出了一種基于YOLOv5 模型的交通標(biāo)志識(shí)別方法,采用融入了遺傳學(xué)習(xí)算法和K-means聚類算法,并且引入了stem 模塊和ShufflenetV2 的基礎(chǔ)單元網(wǎng)絡(luò),在保持精度不降的情況下,提高了識(shí)別速度,但是依然不滿足實(shí)時(shí)性的要求;文獻(xiàn)[4]通過(guò)消減特征金字塔深度、限制最高下采樣倍數(shù),以及引入數(shù)據(jù)增強(qiáng)和全局非極大值抑制來(lái)改進(jìn)YOLOv5網(wǎng)絡(luò),進(jìn)而實(shí)現(xiàn)高效的識(shí)別交通標(biāo)志,但是識(shí)別的種類還是較少。
因此,為了提高雨天天氣下交通標(biāo)志識(shí)別的性能,本文針對(duì)YOLOv5 網(wǎng)絡(luò)進(jìn)行改進(jìn)研究。首先,采用雨天圖像處理技術(shù)將視頻進(jìn)行去雨化處理;其次,在原始YOLOv5 網(wǎng)絡(luò)中增加網(wǎng)絡(luò)深度,控制下采樣倍數(shù),來(lái)提高小目標(biāo)檢測(cè)精度,并且適配殘差網(wǎng)絡(luò)深度,加快模型檢測(cè)速度;最后,通過(guò)實(shí)驗(yàn)和對(duì)比實(shí)驗(yàn)驗(yàn)證模型的性能。
圖像去雨算法一直是計(jì)算機(jī)視覺(jué)的研究重點(diǎn)。去雨算法目前主要分為兩大類,一類是基于視頻的去雨算法,它通過(guò)分析連續(xù)幀之間圖像的差異,根據(jù)時(shí)空關(guān)系對(duì)雨條紋進(jìn)行檢測(cè),從而達(dá)到去雨效果;一類是基于單幅圖像的去雨算法,它包含基于稀疏編碼和字典學(xué)習(xí)的去雨算法和基于深度學(xué)習(xí)的去雨算法兩種?;谙∈杈幋a和字典學(xué)習(xí)的去雨算法在遇到圖像中的雨水和背景非常接近的時(shí)候,就很難去除干凈。所以本文采用的是基于深度學(xué)習(xí)的去雨算法。
在基于深度學(xué)習(xí)的去雨算法研究中,文獻(xiàn)[5]利用注意力機(jī)制可以緩解梯度消失和模型退化的優(yōu)點(diǎn),結(jié)合多尺度通道混洗深度可分離卷積實(shí)現(xiàn)網(wǎng)絡(luò)輕量化設(shè)計(jì),顯著的提高網(wǎng)絡(luò)的運(yùn)行效率;文獻(xiàn)[6]將兩種類型的殘差塊網(wǎng)絡(luò)相結(jié)合,用于提取有雨圖像的深層信息,有效的提升了圖像的清晰度,但是運(yùn)行效率較低。本文考慮交通標(biāo)識(shí)識(shí)別的實(shí)時(shí)性,基于Dongwei[2]提出的多階段解決問(wèn)題的思路,構(gòu)建了簡(jiǎn)單的PRN(Progressive Residual Network)模型,用與對(duì)雨天圖像進(jìn)行深度學(xué)習(xí)和處理。
由于雨天交通圖像的數(shù)據(jù)比較少,本文通過(guò)Photoshop軟件對(duì)圖像進(jìn)行處理,如圖1所示,然后將增強(qiáng)后的圖像輸入到PRN 模型中,得到去雨后的圖像如圖2所示。
圖1 雨天圖像
圖2 去雨圖像
YOLO 算法的全稱為“You Only Look Once”,它是一種將回歸問(wèn)題運(yùn)用到目標(biāo)檢測(cè)上的方法。該方法首先通過(guò)卷積神經(jīng)網(wǎng)絡(luò)(CNN)將圖像劃分為多個(gè)網(wǎng)格,然后對(duì)每一個(gè)網(wǎng)格的可能的種類和邊界進(jìn)行預(yù)測(cè)。此外,YOLO 算法還可以對(duì)網(wǎng)格中是否存在對(duì)象進(jìn)行預(yù)測(cè),并在訓(xùn)練中通過(guò)將邊界框重合而獲取“置信度”小于閾值的邊界框。目前為止,YOLO 算法的改進(jìn)已經(jīng)發(fā)展到第五代,即YOLOv5 算法。
YOLOv5 的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,主要是由三部分組成,分別為Backbone、Neck 和Head。
圖3 YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)圖
Backbone,譯作骨干網(wǎng)絡(luò),它的主要作用是進(jìn)行特征提取。Backbone 包含F(xiàn)ocus、Conv、Bottleneck、C3 以及SPP等多個(gè)模塊,如圖4所示。Focus 模塊的主要作用是進(jìn)行切片操作,類比于臨近下采樣。Focus 對(duì)圖像每隔一個(gè)像素取一個(gè)值,然后就變成四張圖像,然后拼接起來(lái),再進(jìn)行卷積操作,從而得到?jīng)]有信息丟失的下采樣特征圖。Conv 模塊的主要作用是對(duì)輸入圖像進(jìn)行卷積、BN 和激活函數(shù)操作。Bottleneck 模塊的主要作用是先將通道數(shù)減小再擴(kuò)大,然后根據(jù)shortcut 參數(shù)設(shè)置來(lái)判斷是否需要進(jìn)行殘差鏈接,最后用add 進(jìn)行特征融合,使得融合后的特征不變。C3 模塊是對(duì)殘差特征進(jìn)行學(xué)習(xí)的主要模塊,其結(jié)構(gòu)分為兩支,一支使用多個(gè)Bottleneck 堆疊和3 個(gè)標(biāo)準(zhǔn)卷基層;另一支僅經(jīng)過(guò)一個(gè)卷積模塊,最后兩支進(jìn)行concat 操作。SPP 模塊又稱空間金字塔池化,它首先通過(guò)一個(gè)標(biāo)準(zhǔn)卷積模塊將輸入通道減半,其次進(jìn)行三種不同尺寸的最大池化操作,最后將池化結(jié)果和未池化操作的數(shù)據(jù)進(jìn)行concat 拼接合并。
圖4 YOLO5 主要結(jié)構(gòu)圖
Neck 的主要作用是對(duì)圖像特征進(jìn)行混合和組合,生成特征金字塔,其核心結(jié)構(gòu)為FPN(特征金字塔)和PAN(路徑聚合網(wǎng)絡(luò))。FPN 首先需要在卷積神經(jīng)網(wǎng)絡(luò)中提取提取特征圖構(gòu)建特征金字塔,隨后自頂向下利用上采樣操作融合特征金字塔的特征圖。但是FPN 只是自頂向下地將高層的語(yǔ)義信息傳遞回淺層的特征圖,缺少目標(biāo)的位置信息。PAN 是對(duì)FPN 結(jié)構(gòu)的一個(gè)補(bǔ)充,它在FPN 結(jié)構(gòu)的基礎(chǔ)上加入了一個(gè)自底向上的金字塔,而自底向上的結(jié)構(gòu)通過(guò)將淺層豐富的位置信息映射疊加到深層特征來(lái)進(jìn)行特征融合,準(zhǔn)確的保留了空間信息。FPN 與PAN 兩者相互結(jié)合,充分實(shí)現(xiàn)了網(wǎng)絡(luò)上下信息流的融合,提升網(wǎng)絡(luò)的檢測(cè)能力。
Head 的主要作用是對(duì)圖像特征進(jìn)行預(yù)測(cè),應(yīng)用錨定框,生成帶有類概率、對(duì)象得分和邊界框的最終輸出向量。
Backbone 的主要作用是在不同圖像的細(xì)粒度上通過(guò)聚合形成圖像特征。在YOLOv5 網(wǎng)絡(luò)中,由于小目標(biāo)所占像素很少,經(jīng)過(guò)Backbone 多次卷積后,容易導(dǎo)致對(duì)其提取得到的特征不明顯。
針對(duì)這一問(wèn)題,本文提出的YOLOv5 改進(jìn)算法,在初始Backbone 基礎(chǔ)上,為小目標(biāo)檢測(cè)專門增加幾個(gè)特征提取層,旨在繼續(xù)對(duì)特征圖像進(jìn)行上采樣處理,使得特征圖繼續(xù)擴(kuò)大。然后連接Neck 層,以此獲取小目標(biāo)更明顯的特征圖,實(shí)現(xiàn)對(duì)小目標(biāo)檢測(cè)進(jìn)行檢測(cè)的目的。改進(jìn)后的Backbone 如圖5所示。
圖5 改進(jìn)后的Backbone 模塊
交通標(biāo)志識(shí)別任務(wù)主要以小目標(biāo)檢測(cè)為主,YOLOv5算法中的特征金字塔采用PAN 與FPN 相結(jié)合的結(jié)構(gòu)。其中,PAN 自底向上傳達(dá)信息,主要傳遞強(qiáng)定位特征。FPN與PAN 相反,F(xiàn)PN 自頂向下將高層信息通過(guò)上采樣進(jìn)行融合和傳遞,主要傳遞強(qiáng)語(yǔ)義特征。由于其感受野較大,提取的特征比較抽象,導(dǎo)致很容易丟失細(xì)節(jié)信息,所以YOLOv5算法中的特征金字塔容易將小目標(biāo)淹沒(méi),因此并不適合交通標(biāo)志識(shí)別。
由于增加FPN 和PAN 的深度可以增強(qiáng)細(xì)節(jié)信息和定位信息,因此,本文對(duì)YOLOv5 算法中FPN 與PAN 結(jié)構(gòu)進(jìn)行了改進(jìn),增加了4、8、16、32 倍的下采樣和上采樣,改進(jìn)后的FPN 和PAN 結(jié)構(gòu)如圖6所示。
圖6 改進(jìn)后FPN 和PAN 結(jié)構(gòu)
殘差網(wǎng)絡(luò)的主要作用是解決由于網(wǎng)絡(luò)層數(shù)太深所產(chǎn)生的鏈?zhǔn)角髮?dǎo)連乘因子項(xiàng)太多而導(dǎo)致的梯度爆炸和梯度消失問(wèn)題,以及網(wǎng)絡(luò)的退化問(wèn)題。隨著網(wǎng)絡(luò)深度的加深,精度也會(huì)隨之因?yàn)轱柡投鴮?dǎo)致再下降的問(wèn)題。此外,隨著殘差網(wǎng)絡(luò)的深度加深,也會(huì)產(chǎn)生許多額外的計(jì)算開(kāi)銷,從而影響檢測(cè)的速度。Bottleneck 作為殘差網(wǎng)絡(luò)的核心,它的深度適配需要根據(jù)不同的檢測(cè)目標(biāo)做出相應(yīng)的調(diào)整。針對(duì)小目標(biāo)檢測(cè),在實(shí)驗(yàn)過(guò)程中,通過(guò)不斷測(cè)試,分別在改進(jìn)后的Backbone 的第7 層上和改進(jìn)后的Neck 的第21 層適配一個(gè)Bottleneck 就可以獲得一個(gè)非常好的檢測(cè)結(jié)果,并且還可以有效減少計(jì)算開(kāi)銷。
YOLOv5 算法在訓(xùn)練之前需要手動(dòng)給出初始錨框,然后通過(guò)訓(xùn)練基于訓(xùn)練數(shù)據(jù)輸出預(yù)測(cè)框,這意味著初始錨框的選擇對(duì)于網(wǎng)絡(luò)的訓(xùn)練過(guò)程以及訓(xùn)練結(jié)果是一個(gè)非常重要的影響因素。為了能夠更客觀的獲取初始錨框,本文使用了改進(jìn)的K-means++聚類算法,將算法中的歐拉距離評(píng)價(jià)指標(biāo)改成IOU 評(píng)價(jià)指標(biāo)。改進(jìn)后初始錨框?yàn)椋?/p>
- [ 11,12,15,16,20,21 ]# P3/4
- [ 25,26,31,33,38,40 ]# P4/8
- [ 49,50,63,65,93,92 ]# P5/16
- [ 96,68,86,152,180,137]# P6/32
實(shí)驗(yàn)環(huán)境配置如表1所示。
表1 本文實(shí)驗(yàn)環(huán)境配置
本文采用的數(shù)據(jù)集是中國(guó)交通標(biāo)志數(shù)據(jù)集TT100K。TT100K 從中國(guó)5 個(gè)不同城市的10 個(gè)區(qū)域,采用高清攝像頭多角度拍攝獲取,代表性較強(qiáng)。從TT100K 中篩選的45 種交通標(biāo)志如圖7所示。45 種交通標(biāo)志的數(shù)量分布情況如圖8所示。
圖7 交通標(biāo)志
圖8 交通標(biāo)志種類分布
3.3.1 模型精度評(píng)價(jià)指標(biāo)
本文采用的模型精度評(píng)價(jià)指標(biāo)為:F1-score,mAP@0.5和mAP@0.5:0.95。
F1-score 基于精確率(P)和召回率(R)的調(diào)和平均定義。而P 和R 則根據(jù)混淆矩陣中其真實(shí)類別與模型預(yù)測(cè)類別中真正例(true positive),假正例(false positive),真反例(true negative),假反例(false negative)計(jì)算的,其混淆矩陣如表2所示。
表2 混淆矩陣
精確率(P)的定義為所有預(yù)測(cè)值為正例的樣本里,真實(shí)值為正例的樣本所占比例,計(jì)算見(jiàn)式(1):
召回率(R)的定義為所有真實(shí)值為正例的樣本里,預(yù)測(cè)值為正例的樣本所占比例,計(jì)算見(jiàn)式(2):
F1-score 是結(jié)合精確率和召回率,作為一個(gè)綜合的評(píng)價(jià)指標(biāo),它盡可能的考慮精確率(召回率)高的情況下,召回率(精確率)也盡可能的高。計(jì)算見(jiàn)公式(3):
評(píng)價(jià)指標(biāo)AP@0.5 與mAP@0.5:0.95 的計(jì)算都與AP 有關(guān)。AP@0.5 是混淆矩陣IOU 的閾值取0.5 的情況,用于衡量算法在每個(gè)類別上的好壞。計(jì)算見(jiàn)式(4):
式中pi為每一個(gè)類別的概率,n為總類別數(shù)。
mAP@0.5 為所有類別上AP@0.5 值的平均值,mAP@0.5 的值越高代表在高召回率下模型的精確度越高,模型也更好。mAP@0.5 的計(jì)算如式(5)所示:
mAP@0.5:0.95 指IOU 的閾值從0.5 按照0.05 的步長(zhǎng)增長(zhǎng)到0.95 時(shí)所有mAP@0.5 的平均值。mAP@0.5:0.95 的值越大,表示模型的預(yù)測(cè)框和真實(shí)框越逼近,檢測(cè)效果越好。mAP@0.5:0.95 的計(jì)算見(jiàn)式(6):
3.3.2 模型檢測(cè)速度評(píng)價(jià)指標(biāo)
FPS 是指每秒傳輸?shù)膸瑪?shù),每秒幀數(shù)越多,流暢度越高。通常,要想人眼可接受的幀數(shù)是30FPS。計(jì)算見(jiàn)式(7):
3.4.1 YOLOv5 改進(jìn)模型性能實(shí)驗(yàn)
為測(cè)試本文所提出的改進(jìn)后的YOLOv5 模型的性能,本文通過(guò)將YOLOv5s 模型和文獻(xiàn)[4]提出的YOLOv5 改進(jìn)模型與本文所給的YOLOv5 改進(jìn)模型進(jìn)行了對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表3所示。
表3 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果顯示,本文提出的YOLOv5 改進(jìn)模型在整體評(píng)價(jià)指標(biāo)上都有顯著的提升,相比于YOLOv5s 模型,在分類數(shù)將近兩倍的情況下,mAP@0.5:0.95 提升了9.5%,這表明模型的預(yù)測(cè)框和實(shí)際框精度大幅提升;F1-score 提升了8.4%,這表明模型預(yù)測(cè)更多類別的精確度有顯著提升。相比于文獻(xiàn)[7]提出的的YOLOv5 改進(jìn)模型,在比原來(lái)25 個(gè)分類數(shù)又增加15 個(gè)分類數(shù)的情況下,F(xiàn)1-score 和mAP 在也有將近1%的提升,同時(shí)將FPS 提升了40%,意味著該模型能夠更好的滿足實(shí)時(shí)性需求。
3.4.2 雨天環(huán)境下模型性能測(cè)試實(shí)驗(yàn)
為驗(yàn)證雨天環(huán)境下改進(jìn)后YOLOv5 模型的魯棒性,本次實(shí)驗(yàn)首先將一千張交通圖像通過(guò)Photoshop 進(jìn)行雨條紋處理,然后將得到的圖像輸入到改進(jìn)后的PRN 模型中進(jìn)行去雨處理,最后將結(jié)果輸入到改進(jìn)后的YOLOv5 模型中進(jìn)行測(cè)試,實(shí)驗(yàn)結(jié)果如表4所示。
表4 雨天環(huán)境下實(shí)驗(yàn)結(jié)果
由實(shí)驗(yàn)數(shù)據(jù)可知,圖像進(jìn)行雨天條紋增強(qiáng)后,經(jīng)過(guò)本文模型處理識(shí)別后,F(xiàn)1-score 以及mAP 并沒(méi)有明顯的下降,說(shuō)明改進(jìn)后的模型具備在雨天惡劣天氣下提取特征的能力,可以克服雨天雨紋引起的精度下降的問(wèn)題。
去雨算法PRN 模型和改進(jìn)YOLOv5 模型,在一定程度上解決了雨天交通標(biāo)志識(shí)別的精確度低,速度慢的問(wèn)題;首先,增加網(wǎng)絡(luò)深度,解決了小目標(biāo)特征提取的信息丟失問(wèn)題;其次,通過(guò)調(diào)整backbone 中殘差網(wǎng)絡(luò)的深度,減少計(jì)算量,加快模型檢測(cè)速度;最后,限制下采樣倍數(shù),以此來(lái)解決小目標(biāo)難識(shí)別的問(wèn)題;針對(duì)雨天,提出PRN 模型進(jìn)行結(jié)合,在一定程度上解決了雨天雨痕干擾對(duì)圖像的干擾。對(duì)比其他模型,本文模型有著更高的精確度和速度。但是,本文依然存在一些缺陷,雨天圖像處理效果并不好,面對(duì)現(xiàn)實(shí)中的雨痕,PRN 模型并不能很好的處理;對(duì)于實(shí)際交通標(biāo)志中上百種類別,40 種的數(shù)量還是較少,模型可以進(jìn)行進(jìn)一步的擴(kuò)展。在接下來(lái)的實(shí)驗(yàn)中,我們將會(huì)針對(duì)這幾點(diǎn)進(jìn)行改進(jìn)。