?

結合卷積和自注意力機制的交通標志識別模型

2023-10-29 01:31劉云翔石艷嬌
計算機仿真 2023年9期
關鍵詞:交通標志注意力運算

周 峰,劉云翔,石艷嬌

(上海應用技術大學計算機科學與信息工程學院,上海 201418)

1 引言

隨著人工智能、云計算和交通大數據等先進技術的發展,自動駕駛技術越來越成熟[1]。交通標志識別作為自動駕駛的重要組成部分,在自動駕駛領域安全上發揮巨大作用。交通標志中含有豐富的道路信息和語義信息,所以在車輛行駛的過程中,準確且高效的識別出交通標志,是保障車輛自動駕駛安全性的重要基礎。交通標志通常是根據其形狀和顏色分為不同的類別,例如:紅框三角形危險標志、紅框圓形限速標志和藍色圓形強制性標志等。然而,在實踐過程中,交通標志識別的各種情況是復雜的,比如:光照條件難以控制,不同的季節、天氣下的亮度不同;交通標志常年暴露在室外,部分交通標識褪色不清晰等情況;交通標志也存在著被樹木枝葉遮擋的情況,這些情況使得自動駕駛系統中的交通標志檢測和識別任務變得困難。為了更好的解決自動駕駛的出行安全,提高交通標志識別的準確性和實時檢測的魯棒性對自動駕駛顯得格外重要[2]。

近年來,越來越多的學者開始投身于使用基于深度學習的方法,與傳統的機器學習算法相比,深度學習方法提取的特征更具有語義信息。YOLO[3]算法是一種實時監測器,趙坤等人[4]提出了一種基于YOLOv3的自適應圖像增強方法來解決復雜光照下拍攝的圖像樣本模型的情況,然后改進YOLOv3中的聚類算法和損失函數,使訓練模型更加魯棒。郭繼峰等[5]人將深度可分離卷積應用到YOLOv4模型的上,將特征提取網絡得到的不同層次特征圖輸入雙向特征金字塔網絡結構中進行多尺度特征融合,不僅網絡模型和計算量變小,而且檢測速度與精度有了一定的提升。深度學習方法為交通標志識別提供了更好的工具。相較于傳統基于顏色、形狀的模型分析方法,基于深度學習的方法它通??梢垣@得更好的識別結果,但是大多數應用于交通標志檢測的深度學習方法通常使用的是卷積神經網絡,卷積神經網絡在圖像識別廣泛應用,卷積是一種線性運算,它通過以給定圖像特征為中心的面片X與窗形濾波器W,即WX + B之間的離散卷積運算提取局部圖像特征,因此卷積受限于感受域(窗口濾波器)的大小設定,所以卷積很難獲取長距離的像素關系[6]。同時卷積神經網絡中的卷積函數缺乏旋轉不變性,而且學習參數數量會隨著卷積核的數量和卷積核尺寸大小變大而增大,這樣容易導致模型的參數數量和計算量過大,不能滿足交通標志識別的實時性要求。

針對上述提出的問題,本文設計出一種融合多頭自注意力機制和卷積運算的A-CSP模塊用于改進YOLOV4-tiny交通標志識別算法得到A-YOLO模型。本文提出的A-YOLO模型有以下特點:1)D-CSP模塊將輸入特征圖分為兩個分支,一個分支通過深度可分離卷積生成半冗余特征圖,另一個分支通過普通卷積操作生成必要的特征映射,然后將兩個輸出融合獲得最后的特征圖,D-CSP模塊明顯減少了模型的參數數量。2)不同于VIT[7]模型,本文Attention層不直接將圖片進行分割成固定長度的Tokens,而是使用卷積和展平操作將圖片變為Tokens,卷積操作可以獲得低級特征(物體的邊緣、角等),這樣的輸入促進多頭自注意力機制獲取像素級特征的相關性,有助于Attention層提取細節信息。3)A-YOLO模型前幾層采用D-CSP模塊獲取低層信息,在最后一層采用A-CSP模塊對含有豐富語義的高層進行局部特征和全局特征提取,特征融合不采用逐元素相加,而采用1×1的卷積自適應調整融合特征,增強提取特征圖的語義信息。4)對比于YOLOv4-tiny模型使用兩層不同尺寸特征圖進行預測回歸,A-YOLO模型采用四層不同尺寸特征圖進行交通標志識別,有效減少目標的漏檢和誤檢。

實驗結果表明,融合多頭自注意力機制的跨階段部分網絡A-CSP模塊和D-CSP模塊的A-YOLO的模型大小小于YOLOv4-tiny,并且在交通標志識別的準確率有一定提升。

2 相關工作

2.1 YOLOV4-tiny

Bochkovskiy等人提出了YOLOv4[8]的模型,相比較YOLOv3[9]而言,YOLOv4在輸入端進行了改進,主要包括Mosaic數據增強、SAT自對抗訓練等,在BackBone主干網絡中將各種新方法結合在一起,包括:CSPDarknet53、MISH激活函數和DropBlock正則化方法。YOLOv4-tiny是YOLOv4的輕量級網絡模型,YOLOv4-tiny的模塊如圖1所示。YOLOv4-tiny取消特征金字塔的合并,將PAN結構替換為FPN結構,只選擇兩個縮放的特征層進行分類和回歸。YOLOv4-tiny中,其使用了CSPdarknet53_tiny作為主干特征提取網絡。和CSPdarknet53相比,為了更快速,將激活函數重新修改為LeakyReLU激活函數。YOLOv4-tiny模型參數量小,推理速度比YOLOv4更快,可用于交通標志識別,滿足交通標志識別的實時性。

圖1 YOLOv4-tiny架構

2.2 卷積運算

卷積運算如圖2所示。

圖2 卷積運算示意圖

由圖2可知,卷積運算公式如式(1):

f(x,y)*g(m,n)=∑f(x,y)g(m-x,n-y)

(1)

從式(1)和圖2可以知道,卷積運算實際上只考慮距離點(x,y)相鄰像素的影響,影響大小隨著卷積核尺寸的大小而變化。卷積運算受限于感受域的大小設定,卷積很難獲取長距離的像素關系,但是自注意力機制很好地解決了這個問題。

2.3 深度可分離卷積

深度可分離卷積將一般卷積過程分為了逐深度卷積和逐點卷積,在損失一點精度的情況下,使模型計算量大幅下降,速度更快。深度可分離卷積被應用于兩個著名模型:Xception[11]和MobileNet[12]。

2.4 多頭自注意力機制

本質上,注意力就是從大量信息中過濾出少量重要的信息,并專注于重要信息而忽略大部分無關信息。自注意力機制[13]是注意力機制的一種變體,它以自身作為輸入,減少對外部信息的依賴,更好地捕捉數據或特征的內部相關性[14,15]。近年來,自注意力模型更廣泛地應用于機器翻譯和自然語言處理,這啟發了自注意力機制于圖像識別、圖像合成、視頻預測中的應用。Chen等人[16]提出了自注意力機制在圖像分類的改進,并使用非局部手段的變體在視頻動作識別任務上實現很好的結果。Bello等[17]人沒有單獨使用卷積,而是通過直接串聯將卷積和自注意力機制結合起來,取得了很有希望的改進。這表明組合這兩個操作符對提高性能有很大幫助。

3 A-YOLO模型

A-YOLO模型將融合多頭自注意力機制的A-CSP模塊融入到Darknet53-tiny作為特征提取網絡,使用多頭自注意力模塊允許模型關注全局像素間的相互作用,同時卷積的平移不變性為它對圖像進行局部特征構造提供強大動力,A-CSP模塊將同一尺度的多頭自注意力模塊提取的全局特征和卷積運算提取的局部特征融合在一起,對四個不同尺度特征圖進行目標框的回歸和種類的預測,檢測出不同大小的目標。損失函數采用YOLOV4-tiny的CIOU損失作為邊界框回歸損失,置信度損失和分類損失為交叉熵損失函數。

A-YOLO模型的網絡結構如圖3所示。

圖3 A-YOLO架構圖

3.1 D-CSP模塊

D-CSP跨階段網絡模塊如圖4所示,通過1.3節的分析可知,深度可分離卷積的運算量遠小于普通卷積的運算量,同時受到CSPNet[18]啟發,將深度可分離卷積融入到CSP跨階段網絡結構中,使用深度可分離卷積去計算生成半冗余特征圖來減少運算量。所以正如圖4所示的D-CSP模塊結構圖,第一個分支使用深度卷積操作生成半冗余特征圖,另一個分支只通過一個3×3的普通卷積來生成另一半必要特征映射,然后將兩個輸出通過一個1×1的普通卷積運算交互在一起獲得特征圖。

圖4 D-CSP模塊結構圖

3.2 A-CSP模塊

A-CSP模塊是D-CSP模塊的變體,正如圖5,將D-CSP模塊中的普通卷積運算替換成多頭自注意力機制模塊,就是將深度可分離卷積運算與多頭自注意力機制并聯起來,最后再通過1×1的普通卷積運算將兩個通道的特征融合在一起。其中Attention層的網絡結構如圖6所示,Attention層將分成以下二個部分介紹。

圖5 A-CSP模塊結構圖

圖6 Attention層結構圖

A)圖像數據轉序列化數據:

在自然語言處理中,語言是序列化的,可用相對應得詞向量輸入到多頭自注意力機制模塊中得到結果,但是在圖像識別中得圖像數據是三維的,所以需要將圖像這種三維數據轉化為序列化數據。設圖像大小為(H,W,N),多頭自注意力機制很難高效地提取一些細節信息,所以本文先使用1×1的普通卷積運算和展平操作將圖像轉成矩陣X∈RHW×Nin,為了對圖像原始位置編碼,本文使用線性變化函數y=XAT+b對上述的二維矩陣進行映射操作,同時將映射出來的結果再加上X得到X′,使X′保持原來的序列,公式如下式(2)

LR(X)=X′=X+(XAT+b)

(2)

B)序列化數據編碼

首先對于自注意力模塊來說,底層的輸入為X′,首先使用三個矩陣MQ∈RNin×Nq,MK∈RNin×Nk,MV∈RNin×Nv分別與X′相乘映射得到q,k,v,其中Nq、Nk、Nv代表著查詢、鍵、值的深度,公式如式(3)、(4)、(5)

q=MQX′

(3)

k=MkX′

(4)

v=MVX′

(5)

(6)

多頭自注意力模塊是由h個自注意力模塊組成,對于輸入數據X′進行可學習的線性映射后,接著輸入到各自的自注意力模塊中可得到不同的特征值,然后將所有頭部的輸出進行連接并再次投影,公式如式(7)所示,其中w∈RhNv×Nin為一個可學習的線性轉換。

MHSA(X′)=Concat[b1,b2,b3,…,bh]w

(7)

Attention層受到殘差網絡的啟發,加入殘差網絡結構,直接引入一個短鏈接到多頭自注意力層后線性層的輸出上,使得整個映射變為:O(X)=MHSA(LR(x))+X,引入殘差網絡好處是一方面是殘差網絡使輸入信號可以從任意低層直接傳播到高層。因為含有一個直接的恒等映射,這樣可以解決網絡訓練退化的問題;另一方面是錯誤的信號可以不經過任何中間權重矩陣變換直接傳播到低層,可以緩解梯度彌散問題。

由第1節可知,卷積運算和多頭自注意力機制這兩個計算模塊是相互補充的,即卷積運算提取的局部信息和多頭自注意力機制提取的全局信息可以相互結合,卷積采用了局部處理的歸納偏置,產生有效的局部語義特征。與卷積不同,多頭自注意力機制體現了低歸納偏差,釋放出更多的自注意力空間來自由探索數據集的固有特征,有利于更好的性能和泛化,同時多頭自注意力機制動態的生成各個像素之間不同連接的權重,這樣多頭自注意力機制更容易獲得遠距離的像素的相互依賴關系,所以將這兩個模塊相互結合強化各自的優勢,這樣更有效提取圖像的特征,相應的結合自注意力和卷積操作可以寫成式(8):

A-Conv(X)=Concat[O(X),Conv(X)]

(8)

3.3 Detecion層

A-YOLO模型對不同尺度的特征圖進行自下而上的多尺度特征融合,同時本文為了提升網絡檢測能力降低漏檢率,對四個不同尺度的特征圖進行目標框的回歸與預測。例如圖3所示,輸入圖像的分辨率為640×640,最后在160×160、80×80、40×40、20×20這四個分辨率上不同大小的目標進行檢測。

4 實驗結果與分析

本文實驗環境為Ubuntu 18.04系統,顯卡為兩張TITAN X,顯存共為24GB。

4.1 實驗數據集

本文實驗數據集采用Tsinghua-Tencent 100K Tutorial(TT100K)數據集[19],該數據集是清華大學和騰訊公司合作制作,從 10 萬張騰訊街景全景圖中創建了一個大型交通標志基準,數據集提供了訓練集6107張圖片,驗證集包含3073張圖片,這些圖像涵蓋了照度和天氣條件的巨大變化,同時人工標注的交通標志數據集標有類別標簽、邊界框和像素掩碼。TT100K中圖像的分辨率為2024×2024,為高清攝像頭拍攝真實街景,其基數龐大、語義信息含量豐富,但數據樣本仍存在長短尾效應,出現次數最多的交通標志達 1479 次,最低的僅有 112 次,所以本文對數據集較少的交通標志進行馬賽克數據增強的操作,輸入進模型的數據如下圖7所示,同時本文在本次實驗中訓練的輸入圖像分辨率為1280×1280。

圖7 訓練輸入圖片,batch-size大小為16

在本文算法中,對于檢測框的大小是根據K-means聚類算法計算得出的,對于本文A-YOLO模型來說,檢測框需要12個,通過使用K-means聚類算法計算后,在分辨率為1024×1024的圖像上,本文采用檢測框的大小為[8,9]、[11,12]、[14,15]、[18,19]、[15,28]、[23,24]、[29,30]、[37,38]、[32,55]、[49,48]、[66,63]、[106,99]。

4.2 評估指標

本文采用mAP(mean Average Precision)作為評判標準,mAP即各類別AP的平均值,mAP的精度越高代表算法的識別效果越好。mAP被描述為如下式(9),K表示類別

(9)

其中AP計算方式如下式(10):

(10)

4.3 結果與分析

本文為了驗證A-CSP模塊在特征提取和融合的功能上的效果,本文在ImageNet數據集[23]上做分類實驗,ImageNet是一個標準的大規模數據集,用于跨一系列架構的高分辨率影像。本文從ResNet架構[20-22]開始,因為它應用廣泛,并且能夠在許多計算預算內輕松擴展。本文在ResNet架構的最后1個階段的每個剩余塊中應用A-CSP模塊,將A-CSP模塊融入到Resnet30、Resnet50、Resnet101上,多頭自注意力模塊的頭數量為4。由下表實驗所知,與原Resnet30、Resnet50、Resnet101相比,A-CSP模塊不僅衰減了一定的網絡參數量,而且提升平均分類精度,證明了多頭自注意力機制提取的全局信息有效的補充了卷積運算在局部近鄰的工作,所以卷積運算通過線性計算提取局部信息,多頭自注意力機制對高階上下文關系進行建立長距離像素的相互作用提取全局信息,兩者運算相互融合增強提取特征能力。

表2 A-CSP模塊消融實驗

接著,本文為了驗證D-CSP模塊網絡的表現,將YOLOv4-tiny模型中的CSP模塊替換為D-CSP模塊,按照第一階段2層D-CSP模塊,第二階段4層D-CSP模塊,第三階段6層D-CSP模塊,相比較YOLOv4-tiny的61層,替換后的YOLOv4-tiny模型變成了277層,但是參數僅為4.81M,相比YOLOv4-tiny模型降低了21%,兩者精度很接近,僅差0.6%。在YOLOv4-tiny主干網絡上直接添加A-CSP模塊,即在YOLOv4-tiny模型上直接引入多頭自注意力模塊,參數數量有所增加,平均精度比原來的YOLOv4-tiny提高了1.2%。

最后,為了進一步測試A-YOLO算法的性能,本文在相同參數下進一步將A-YOLO與YOLOv3、,YOLOv3-tiny、YOLOv4-tiny、YOLOv5s等算法分別進行對比,不同算法的性能對比,如表4所示。

從表4可知,A-YOLO的mAP對比于其它輕型網絡如YOLOv3-tiny、YOLOv4-tiny、YOLOv5s檢測的平均精度有一定提升。由表3所知,雖然A-YOLO模型參數量多于YOLOv4-tiny模型,但是本文采用模型量化技術,在不明顯的精度損失情況下,使得A-YOLO模型大小小于YOLOv4-tiny模型的大小,雖然在相同設備上A-YOLO模型的FPS低于YOLOv4-tiny模型,也就是A-YOLO模型每秒處理的速度要低于YOLOv4-tiny模型,A-YOLO模型的推理時間高于YOLOv4-tiny模型,這是由于多頭自注意力機制推理速度慢于卷積運算,但是A-YOLO模型檢測確高于YOLOv4-tiny模型,在一定的檢測效率上進一步保證了自動駕駛的安全。最后對比于最新的YOLOv5s模型,同樣是微模型,將多頭自注意力機制和深度可分離卷積結合在一起的A-YOLO模型檢測交通標志的精度與速度均超過YOLOv5s模型。下圖8為A-YOLO模型在TT100K數據集的識別效果圖,可以看出,不管是遠處的小目標還是近處的大目標,A-YOLO模型都能識別出來。

表3 不同主干網絡在TT100k數據集進行目標檢測

表4 不同算法在TT100K數據集的目標檢測

圖8 識別效果圖

5 結論

本文提出一種結合多頭自注意力機制改進YOLOv4-tiny模型的A-YOLO交通標志識別模型,旨在解決現有路標識別方法中模型參數過大、識別速度慢、識別準確率低等問題。本文設計的A-YOLO模型將多頭自注意力機制與卷積運算結合在一起,卷積的性質使像素無法建立長期關系,而長期關系通常有助于更好的視覺理解,多頭自注意力機制正好彌補這個缺陷。由于整體模型若都使用A-CSP模塊會導致模型參數量過大,所以本文在模型低層使用含有深度可分離卷積的D-CSP模塊以減少特征提取網絡參數大小,最后在四層不同尺度的特征圖上進行檢測回歸,加強對各種尺寸目標檢測。通過實驗結論證明,本文提出的A-YOLO模型大小比傳統的YOLOv4-tiny模型減小了0.9MB,同時mAP提升了2.1個百分比,檢測精度提高到90.7%,在檢測速度方面,略低于YOLOv4-tiny模型。本文使用的多頭自注意力機制模塊是基于像素級操作,導致計算量較大、推理速度較慢,只能運用在模型的最后一個尺度上進行全局語義提取,在減少計算量和加快推理速度的同時將自注意力機制和卷積運算更有效的有機結合,并應用在目標檢測上提升檢測精度仍有待進一步研究。

猜你喜歡
交通標志注意力運算
基于雙向特征融合的交通標志識別
重視運算與推理,解決數列求和題
讓注意力“飛”回來
有趣的運算
“揚眼”APP:讓注意力“變現”
“整式的乘法與因式分解”知識歸納
A Beautiful Way Of Looking At Things
交通標志小課堂
我們歡迎你!
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合