孟度金 唐陽山



關鍵詞:交通標志;目標檢測;聯邦學習;YOLOv5;FATE
中圖分類號:G391.4 文獻標識碼:A
文章編號:1009-3044(2023)21-0010-05
0 引言
發展至今,將交通系統與物聯網、分布式框架以及人工智能等技術相結合以保證人們日常出行的安全和高效。由此生成的智能駕駛正是其中極為重要的一環。智能駕駛依靠的即是對數據的快速處理和高效的運算,但在網絡環境良好且車輛停駛的情況下,也會造成巨大的算力浪費。如何有效地利用起車載設備的計算資源,避免其過多的浪費。同時為用戶提供更多的數據保護,是當前許多汽車廠商需要面對的問題。交通標志是交通領域必不可少的存在。其中主標志和輔助標志更是相輔相成。交通標志的檢測與識別在智能駕駛的過程中承擔著極大的作用[1]。隨著近年來深度學習的興起和發展,交通標志的識別也由傳統的手動設置特征轉向了神經網絡對特征的自動學習。但基于深度學習的交通標志識別大多針對的是常見的主標志中的警告標志、禁令標志和指示標志,而在輔助交通標志的檢測與識別則缺乏關注與應用。并且在不同的地區,其交通標志的種類、數量、類型等各有不同,而常見的交通標志識別只能針對特定的擁有大量數據的交通標志做出識別。與此同時在霧霾等光線受影響的天氣時,大多數模型因缺少訓練數據而魯棒性較差。由此在車載設備進行在線學習且不經過二次數據傳輸的情況下,將車輛本身獲取的數據進行靈活的運用,這對廠商和用戶本身具有重大的意義。
為解決以上問題,本文提出一種基于聯邦學習[2]的交通標志識別網絡。該網絡的主要創新為調整聯邦學習框架部分,在此基礎上創建并改進框架內的模型模塊、訓練模塊,縮短其每輪次的訓練時間,同時減少模型的參數結構并提高其精度,使其整體更加輕量化,增強其整體的泛化性能。
1 相關工作
1.1 交通標志識別
關于交通標志的識別可以大概概括為三類:傳統方法、機器學習、深度學習[3]。在傳統方法中,主要是使用顏色空間、顏色閾值分割、霍爾變換、類特征檢測、模板匹配等方法來直接進行交通標志的識別。算法簡單、魯棒性較強、識別條件明確。不過對應的條件限制性較強,需要手動定義特征,調整參數,并且可能出現目標無法識別的現象。使用機器學習來進行交通標志的識別,大多是在傳統方法的基礎上獲取特定的特征后使用支持向量機、隨機森林、提升樹等算法進行分類。雖然對分類過程有更快的速度,泛化能力也有所提高。但模型在有噪點的情況下進行檢測識別時依然誤檢較多。基于深度學習的模型不需要手動定義特征,減少了不同條件下對模型的限制。其方法模型主要包括R-CNN、Fast R-CNN、Faster RCNN、SSD、YOLO系列等[4-8]。根據其模型的分類和回歸可將其劃分為單階段和雙階段。單階段的YOLO 系列算法其超參數量小于將模型劃分為分類和回歸兩部分的Fast R-CNN、Faster R-CNN等雙階段算法的超參數量。深度學習網絡自動提取特征,針對性訓練精確率高。但隨著網絡層數的增加,參數量較大,需減少冗余的參數。
1.2 聯邦學習
聯邦學習(Federated Learning,FL) 是由谷歌研究院提出基于保護用戶數據的一種人工智能解決方案[9]。聯邦學習在客戶端與服務器相關聯架構中按照其特性可劃分為橫向、縱向以及遷移。支持聯邦學習的框架有多種,本文選用受眾較多的FATE框架[10]作為基礎框架進行搭建。
2020年,由Liu等人[11]提出的聯邦視覺,采用橫向聯邦學習與YOLOv3相結合的策略,在市場上得到了廣泛的應用。用戶使用聯邦視覺圖像注釋工具來標記他們的本地訓練數據集,并進行訓練。本地模型收斂后,用戶則可以通過客戶端模塊以一種安全加密的方式將本地模型參數傳輸到中心服務端。在每一輪學習結束后,會為模型計算一個更新的全局權重,從而達到全局更新。
2021年,學者石佳[12]則針對目標檢測在智能駕駛中的一種應用場景,提出基于聯邦學習的目標檢測算法。其算法模型是將聯邦學習與Faster R-CNN相結合也就是在目標檢測雙階段法的基礎上進行了實現和改進并取得了較高的精確度,提高了平均檢測時間。但由于參數量過大,對算力要求較高,使用輕量型網絡更有助于車載終端的實時檢測。
2022年,學者張斌則提出了基于車輛網中分心駕駛行為識別的聯邦學習方法[13],以MobileNetV2作為分心駕駛行為識別模型,并驗證了將聯邦學習應用于分心駕駛行為識別領域的可行性。
2 算法模型
本文使用FATE聯邦學習框架[14]進行算法的編寫和測試。其FATE的框架主要包括四大部分,分別是云平臺、可視化平臺、流動平臺、服務平臺。在FATE 的調度中主要使用有向無環圖和多方任務調度器進行任務層的調度。在FATE-1.10.0版本中,FATE制定的一個更高級的接口pipeline來生成指定的json文件進行任務調度。FATE的核心是FederatedML,即聯邦和隱私保護機器學習的算法庫。通過該算法庫進行定義數據模塊、訓練模塊、損失模塊、模型模塊等四部分。
2.1 數據模塊
在我國北方大部分地區,尤其是氣溫逐漸降低時,霧霾這種天氣狀況幾乎成為一種常態。霧霾會降低空氣的透明度,使得交通標志在較遠距離難以辨認。此外,霧霾也會使得光線散射,從而影響攝像機對于交通標志的識別精度[15]。這些因素都會使得交通標志識別變得更加困難。主流的解決辦法是通過算法去霧,但是更多的問題是沒有足夠的數據提供給模型進行優化。而大多數學者是通過基于光學模型以圖像中心點向四周發散或直接在圖像的三通道上附加值等方法來模擬霧霾從而獲取數據集。本文的框架模型除去可以在真實世界獲取數據集外,還加入基于深度的霧霾天氣圖像生成算法。并考慮到在實際環境中的應用價值,以及車載設備所能提供的條件要求。深度圖像主要基于圖像自監督深度估計模型[16]通過單目視覺圖像來生成。效果對比圖如圖1 所示。
2.2 訓練模塊
對于訓練模塊,它可以在每輪中選擇n 個客戶端,計算這些客戶端持有的模型損失梯度。并指定每m輪進行模型參數安全聚合來保障梯度數據的安全性。在模型經過聚合后通過服務端來將全局模型下發到各個客戶端。其算法偽代碼如算法1所示。
2.3 模型模塊
該網絡是基于聯邦學習與YOLOv5模型,所以將該模型命名為FL-YOLOv5。YOLO的實現是基于卷積神經網絡的回歸模型。YOLO將輸入圖像劃分成網格區域,然后對其進行預測。在多目標檢測中通過聚類與NMS來調整輸出結果。損失函數是由坐標、置信度和類別等三方面組成。其原始YOLOv5模型包含391層,21 222 087個參數。YOLOv5的主要結構是由CSPDarknet架構和YOLOv3的FPN特征提取器組成。CSPDarknet是一種卷積神經網絡,用于提取特征。而FPN特征提取器則是一種可實現多尺度目標檢測的算法。其模型主干結構如圖2所示。
FL-YOLOv5的模型模塊主要基于YOLOv5模型。
如果想要模型輕量化,必不可免需要縮減其參數量。
由此,使用RepVGG網絡[17]替換YOLOv5骨干網絡結構中的Conv模塊。RepVGG可以解決傳統卷積網絡參數使用不充分、重復計算和計算性能低等問題。可以在極大保留特征的基礎上盡可能縮減計算量。并在其骨干網絡的C3模塊加入CBAM注意力機制[18],提高每個網格通道的權重,使得網絡的特征表示更加有效,提高模型的準確性和魯棒性。本文將該模型命名為FL-YOLOv5-R,其主干網絡結構圖如圖3所示。在模型改進的過程中,將RepVGG模塊與CBAM注意力機制全部替換進YOLOv5,即YOLOv5+RepVGG+CBAM,獲得的模型層數為415層,參數量為5 574 639。雖然層數有所增加,但其參數量相對于YOLOv5縮減了73.7%。
2.4 損失模塊
在目標檢測YOLO系列模型中的損失函數,通常是由回歸損失、分類損失、置信度損失這三部分組成。在本文的YOLOv5模型中,分類損失和置信度損失均是由二進制交叉熵損失函數來構成,默認的回歸損失是LOSSCIOU。
3 實驗與分析
本節首先描述數據集、實驗環境和評價指標,接著以YOLOv5為基準與改進后的YOLOv5模型進行對比。同時對FL-YOLOv5、FL-YOLOv5-R在不同的環境下實施評估,最后依據上述實驗結果進行總結。
3.1 數據集介紹
本文的數據集為TT100K-r主要包含自制的輔助標志數據集以及從開源數據集TT100K中篩取的主標志數據集。TT100K包含的標志牌類別一共有200多種,但其各類別數量分配不均衡,本文選取的訓練數據是各類別實例數大于100的標志,其中警告標志4 種,禁令標志30種,指示標志8種。輔助標志數據集,是由課題組在行車過程中進行街拍自制。由于其輔助交通標志的多樣性,且輔助標志數量較少,自制輔助標志數據集主要劃分為包含文字的輔助標志、包含數字的輔助標志、包含圖像的輔助標志以及混合輔助標志。訓練集的數據總量為7 398張,測試集的數據總量為1 087張,驗證集的數據總量為2 177張。
3.2 實驗環境與指標
相對于車載計算機,其算力相當于普通電腦的硬件水平,能夠在消耗極低的情況下達到較高的運算水平。由于資源限制,本文在進行模型改進時使用的硬件條件為12核vCPU,40G內存,顯卡為RTX 2080Ti。在進行聯邦學習時使用的硬件條件為阿里云計算型c5系列12核vCPU,24GB運行內存。基于上述情況,本文實驗所用到的軟件條件為操作系統CentOS7.9 64 位、聯邦框架FATE-1.10.0、Python3.8.13、Py?Torch1.13.1。評價指標分別選用精確率(Precision) 、召回率(Recall) 、平均精度(mAP) 以及每秒幀數(FPS) 。
3.3 實驗結果分析
1) 模型改進實驗本文的實驗對比對象主要是以YOLOv5基準與YOLOv5+RepVGG+CBAM 進行對比。這里設置批次大小為32,工作線程為12。
CBAM有助于模型更好地捕捉特征和注意到關鍵的空間信息,從而提高了模型的泛化能力。結合RepVGG這種高度可重復使用和可訓練性的結構,使得該組合模型可以更好地適應各種任務和場景。從圖4 中可以輕而易舉地觀察到YOLOv5+RepVGG+CBAM的mAP相比于YOLOv5模型具有更快的提升速度。
同時為對比各個模塊的重要程度,本文進行了消融實驗,結果如表1 所示。在替換其卷積層為RepVGG模塊后,模型在召回率上雖然相比較低,但其FPS值是可以達到四種模型的最高值。如果只在C3 模塊中加入CBAM模塊,雖然mAP值有所提升,但實時性較差。綜合對比,YOLOv5+RepVGG+CBAM具有最高的性價比,mAP值比基準高了約3%。
2) 聯邦學習實驗
FL-YOLOv5 與FL-YOLOv5-R 對比在聯邦學習條件下模型的性能。在進行聯邦學習時,本文設定客戶端代號為9999、9998、9997,服務器端代號為10000,聚合輪次T 為1或5。其客戶端數據為隨機從數據集抽取200至300張圖片數據。由于設備限制,批次大小與工作線程均設置為2。訓練的可視化界面如圖5 所示。
評估結果如圖6所示,T 為1或5時,進行50輪的聯邦訓練后,在mAP這項指標中FL-YOLOv5-R均比FL-YOLOv5高了9%。其精確率和召回率在同等條件下,FL-YOLOv5-R均優于FL-YOLOv5。T 為1時,其FL-YOLOv5平均每1輪模型訓練和聚合的時間之和為135.04分鐘,占用內存為162MB;FL-YOLOv5-R為68.15分鐘,占用內存為43.2MB。
4 結論
在FATE框架上開發的交通標志識別模型具有較高的現實意義。將多個設備或節點上的數據和計算資源共享,不僅避免了計算資源的浪費,而且極大地提高了模型的效率。替換YOLOv5的主干網絡后,其模型大小得到縮減的同時其精確率與訓練速度均有所提升。但在進行實驗的過程中,由于使用的是同一種設備。所以,如何在不同設備上進行訓練和識別以及模型的融合是接下來需要做的重點研究工作。