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