李頎, 葉小敏, 馮文斌
(陜西科技大學 電子信息與人工智能學院, 陜西 西安 710021)
車輛檢測是先進駕駛員輔助系統和自動駕駛汽車的關鍵技術。但是在霧天條件下,視覺圖像嚴重受到影響,圖像模糊泛白,缺乏細節信息,車輛信息顯著度嚴重下降,直接導致了交通車輛檢測質量的下降[1]。因此,在霧天進行車輛檢測受到眾多的學者和科研人員的關注。He等人提出暗原色先驗去霧理論[2]。Gao等人提出采用暗通道與亮通道結合解決暗通道去霧導致圖像發暗的問題,該方法雖然解決了區域失真的問題,但是處理后的圖像依然存在較多霧氣,對于霧天情況下的車輛識別依然比較困難[3]。毫米波雷達采用回波反射原理,不受天氣的干擾,在霧天依然能夠準確檢測到目標信息。因此,融合毫米波雷達和視覺結果也可以提高檢測的準確率。Kim等提出了一種基于目標運動狀態及形狀特征的車輛識別方法,通過毫米波雷達和攝像頭分別采集目標的運動狀態和形狀特征,從而識別前向車輛,并應用于自動緊急制動系統[4]。豐田汽車公司的Shigeki提出了一種基于單應變換的毫米波雷達和相機聯合校準方法,并使用占用網格方法對目標進行聚類[5]。徐磊等將毫米波雷達的檢測結果轉換為相應的感興趣區域,并使用可變形部件模型對感興趣區域內的目標進行分類,檢測速度達到29 FPS[6]。雖然融合毫米波雷達與機器視覺的車輛檢測已經取得了一定的進步,但是融合算法依舊存在以下幾點問題:(1)融合算法沒有考慮霧天下視覺檢測受限的問題;(2)融合算法沒有處理毫米波雷達采集數據中的干擾信息以及毫米波雷達采集的信息與視覺信息相互補充的問題;(3)沒有考慮融合算法的實時性問題。因此,在霧天條件下的車輛檢測和識別算法仍有待研究。
針對上述問題,本文首先對視覺圖像進行去霧;然后采用知識蒸餾改進YOLO算法進行視覺檢測,提高視覺檢測速度;最后采用基于潛在目標距離匹配算法對視覺檢測結果和毫米波雷達檢測結果進行決策級融合,去除毫米波雷達的干擾信息,同時對視覺檢測和毫米波雷達檢測的缺失信息進行互相補足,提高大霧天氣下車輛檢測的準確性。
在公路上,由于地理特征和小氣候環境的影響,霧天非常常見。在霧天環境中,大氣光被空氣中的水蒸汽和顆粒物散射,導致攝像機采集的圖像對比度降低,缺乏圖像細節。因此本文采用去霧算法對原始圖像進行處理。目前現有的去霧算法主要分為傳統圖像去霧算法和深度學習去霧算法。傳統圖像去霧算法又分為非物理模型算法和物理模型算法。非物理模型算法通過對圖像增強對比度來達到去霧的目的。物理模型算法是以大氣散射模型為研究基礎,通過各種先驗信息求解無霧圖像[7]。深度學習的去霧算法采用端到端的方式進行去霧,其中神經網絡學習原始圖像數據與所需樣本參數之間的直接映射關系,根據映射關系實現有霧到無霧的轉換[8]。本文選擇以上3種類型的典型代表:自適應直方圖均衡化、暗通道去霧算法以及DehazeNet算法進行對比,性能對比結果如表1所示,針對道路上有霧圖像的處理結果如圖1所示。

圖1 去霧效果對比圖Fig.1 Comparison of defogging effects

表1 去霧算法性能對比Tab.1 Performance comparison of defogging algorithms
由表1和圖1可知,自適應直方圖均衡化處理后的圖像對比度較高,但在增加去霧對比度的同時也放大了噪聲,導致圖像色彩與原圖像出現偏差,細節信息丟失。而暗通道去霧和Dehaze-Net算法去霧效果更好,更能還原圖像真實色彩,但是DehazeNet由于其網絡結構復雜,實時性較差,單張圖像的處理速度為7 s,而本文研究對象為行駛的車輛,對實時性要求較高,所以本文選擇暗通道去霧算法對原始有霧圖像進行去霧。
在圖像中,有霧存在的大氣散射模型如公式(1)所示:
其中:I(x)為原始圖像,J(x)為原始圖像的無霧狀態,t(x)是大氣光的透射率,A是大氣光值。根據大氣光值和透射率可以求得無霧圖像,如公式(2)所示。
算法流程圖如圖2所示。

圖2 暗通道先驗去霧算法流程圖Fig.2 Flowchart of dark channel prior defogging algorithm
首先,輸入原始有霧圖像(圖3(a)),獲取有霧圖像的暗通道圖,采用局部最小值濾波得到大氣光和大氣光的透射率。然后,對粗估的透射率采用導向濾波進一步細化。最后,根據原始圖像、大氣光值以及透射率實現圖像去霧,圖3(b)為去霧后圖像。可以看出,暗通道去霧算法有效去除了部分霧氣的干擾,有助于提高目標識別的準確性。

圖3 去霧前后結果對比圖Fig.3 Comparison of results before and after defogging
本文研究對象為公路上的車輛,車輛行駛速度較快,尤其是在高速公路上,車輛行駛速度更快,因此對于車輛檢測的實時性要求就比較高。在自動駕駛場景中,要求車輛檢測的時間在15~20 ms之間,同時如果檢測算法網絡復雜、計算量大也不利于在車上的嵌入式設備上進行部署,因此本文選擇YOLOv5算法進行車輛目標的檢測。YOLOv5有5個版本,即YOLOv5x、YOLOv5l、YOLOv5m、YOLOv5s和YOLOv5n。各版本的性能見表2。本文綜合考慮計算資源、模型參數、檢測準確率、部署能力和算法實用性,選擇YOLOv5s作為基礎算法,并對其進行了提高檢測速度和模型壓縮的改進。

表2 COCO數據集上5個版本的YOLOv5的綜合性能Tab.2 Comprehensive performance of five versions of YOLOv5 on the COCO dataset
YOLOv5s作為一種神經網絡算法,其由輸入層、輸出層和隱藏層組成。輸入層通常表示要處理的信號,輸出層表示希望網絡產生的預期結果。數據處理主要由位于輸入層和輸出層之間的隱藏層執行。每個連續的隱藏層都使用其上游層的輸出作為輸入,對其進行處理,然后將結果傳遞給下游層[9]。YOLOv5s的算法思想為:檢測的圖像通過輸入層(Input)進行預處理,并在主干網絡進行特征提取。主干網絡獲得不同大小的特征圖,然后通過特征融合網絡(Neck)融合這些特征,最終生成3個特征圖(在YOLOv5中,尺寸表示為80×80、40×40和20×20)。檢測圖片中的小、中、大3個特征圖被送到預測頭(Head)之后,使用預設的先驗錨對特征圖中的每個像素執行置信度計算和邊界框回歸,獲得包括對象類、類置信度、框坐標、寬度和高度信息的多維陣列(BBoxes)。通過設置相應的閾值以過濾陣列中的無用信息,并執行非最大抑制(NMS)過程,輸出最終檢測信息[10-11]。
由于本文選擇的YOLOv5s模型的目標檢測時單張圖片耗費平均時間為0.17 s,考慮最終還需要對視覺檢測結果和毫米波雷達檢測結果進行融合,因此視覺檢測的實時性仍需要提高。本文提出基于知識蒸餾改進YOLOv5s算法以提高YOLOv5s檢測的實時性。知識蒸餾利用傳遞學習來補充小模型中缺失的特定參數,以盡可能實現大模型的識別準確率。本文中大模型是教師網絡,即原始的YOLOv5s車輛檢測模型;小模型是學生網絡,即改進后的車輛檢測模型[12]。由于原始車輛檢測模型中的車輛特征提取網絡通道數比較大,網絡結構復雜,因此本文將知識蒸餾引入特征提取網絡中,在目標定位和分類階段計算車輛特征提取的蒸餾損失,對損失進行反向傳播訓練學生網絡。本文知識蒸餾的過程如圖4所示。

圖4 蒸餾過程圖Fig.4 Distillation process diagram
在知識蒸餾過程中,根據教師網絡輸出的車輛目標預測結果與學生網絡輸出的車輛目標預測結果得到軟損失函數,通過對損失函數的反向傳播訓練使學生網絡不斷向教師網絡靠近。但由于教師網絡的結果并非全部正確,為了保證學生網絡車輛預測結果的準確性,引入硬損失函數,即通過真實車輛標簽與學生網絡的車輛預測結果得到硬損失函數,通過α、β系數對軟硬損失函數進行校正,得到最終的總損失函數。
測量學生和教師模型的相似性可以用公式(3)表示。?R是一個可以測量相似性的函數,用softmax明確表示。在計算軟損失時,當softmax輸出的概率分布的熵值相對較小時,負標簽的值非常接近0,對損失函數的貢獻非常小,導致學生模型在蒸餾過程中對負標簽的關注度降低,因此引入溫度系數T解決這一問題,如式(4)所示:
其中:I為softmax的logits輸入;T越高,教師模型輸出車輛類別值概率分布越平坦,學生模型學到的知識越豐富。
總損失Ltotal如公式(5)表示:
其中:α和β為平衡系數,Lsoft為軟損失,也就是蒸餾損失,Lhard為硬損失,也就是學生損失。通過迭代訓練使軟損失與硬損失的綜合訓練損失所占的比重逐漸趨近1∶0。
Lhard公式如公式(6)所示:
Lsoft公式如式(7)所示:
在Lhard中是第i類學生模型在T=1時的softmax輸出值;cj是i類的基本真值,正標簽取1,負標簽取0。在Lsoft中,N是標簽的數量,本文中標簽主要為車輛,包含卡車、汽車、公交車等是第i類教師模型在系數T處的softmax輸出值是第i類學生模型在系數T處的softmax輸出值。
改進后的YOLOv5s算法檢測結果如圖5所示。為了避免對有霧圖像檢測導致模型準確率和召回率下降,使得檢測準確率與COCO數據集統計的準確率偏差較大,以及霧氣濃度不同導致檢測結果存在偏差等問題,采用無霧數據集對改進后的YOLOv5s進行測試,統計改進前后模型檢測的準確率、召回率、預測時間和模型參數大小,檢測結果見表3。由表3可知,改進后的YOLOv5s的召回率與準確率基本保持與改進前一致,但模型大小縮減為原來的72%,檢測速度提高了35%。

圖5 改進前后YOLOv5s檢測結果對比Fig.5 Comparison of YOLOv5s detection results before and after improvement

表3 檢測結果對比Tab.3 Comparison of test results
雖然去霧后視覺檢測準確率有所提升,但是對于濃霧以及較遠處的車輛信息依然顯著度不高,檢測準確率難以大幅度提升且魯棒性不高,而毫米波雷達是依靠微波反射對目標進行檢測,所以其不受光線的干擾,霧天也不會對毫米波雷達產生影響。同時毫米波雷達還兼具微波制導與光波制導的特點,除了可以獲取目標的距離信息,還可以獲取目標的速度和加速度信息。因此,輔助駕駛和自動駕駛常用其來進行感知和目標檢測。但是在實際檢測過程中,由于受到金屬等障礙物的回波干擾以及毫米波雷達自身存在的不穩定因素,檢測結果中會出現干擾目標和無效目標。本文采用毫米波雷達和視覺檢測融合的方法實現對霧天車輛的檢測,以提高檢測的準確率。
為了濾除毫米波雷達檢測的無效目標和干擾目標,本文首先對毫米波雷達數據進行篩選,保留行車道內的車輛目標。對于靜止目標,考慮到車輛檢測后續決策和規劃中只有相鄰車道內的靜止目標需要檢測,非相鄰車道靜止目標不會對本車造成影響,因此本文只檢測相鄰車道內的全部目標和車道內非相鄰車道的非靜止目標,根據相對位移和相對速度去除無效目標,如式(8)、(9)所示:
式中:X0表示橫向相對距離,v表示相對速度。根據我國道路技術規范和國家標準GB/T 33577要求,雙向8車道是30 m,單車道為3.75 m,所以選定行車道的距離為28 m,相鄰車道的橫向相對距離為4.25 m。滿足上述條件的為需要去除的行車道以外的所有目標以及相鄰車道以外的靜止目標。
本文采用坐標系轉換來實現毫米波雷達和視覺的空間融合。圖6所示的藍色坐標系是攝像機坐標系,其坐標原點位于車輛前擋風玻璃處,坐標平面與車輛坐標平面平行;紅色坐標系為毫米波雷達坐標系,坐標原點位于車輛前保險杠中心,坐標平面平行于車輛坐標平面。

圖6 毫米波雷達和視覺傳感器坐標系Fig.6 mm-wave radar and vision sensor coordinate system
毫米波雷達坐標[XWYWZW]到圖像坐標[uv]的轉換過程可以根據公式(10)進行。其轉換過程為:毫米波雷達坐標系轉為世界坐標系,世界坐標系轉為相機坐標系,相機坐標系轉為圖像坐標系,最終完成毫米波雷達坐標到圖像坐標的轉換過程。
式中:dx、dy為每個單位像素對應物理坐標系下的大小;f為相機焦距;R為旋轉矩陣;T為平移向量;Zc為毫米波雷達目標點在相機坐標系中的Z軸坐標。
為了實現時間融合,毫米波雷達和攝像機的數據采集必須及時同步。毫米波雷達和相機采樣不均勻,幀速率分別約為10 FPS和30 FPS。本文以低頻毫米波雷達的測量時間作為參考,使高頻相機的數據向后兼容,實現毫米波雷達和相機之間的時間配準。
毫米波雷達和相機收集的目標數據完成時空對齊后,毫米波雷達數據在空間上轉換為圖像坐標系,以形成圖像上感興趣的毫米波雷達目標,但這不能識別目標是否為同一車輛目標。為了實現毫米波雷達檢測結果和視覺檢測結果的互相補充和糾正,本文對毫米波雷達檢測目標和視覺檢測目標進行匹配。通常,多傳感器數據匹配算法主要是感興趣區域匹配和距離排序匹配方法[13-14]。由于區域匹配方法算法復雜性高,檢測算法在實際應用中耗時較長,不利于實時檢測。使用歐氏距離排序后,匹配算法的實現相對簡單,速度較快。但由于該歐式距離匹配僅計算兩點之間的空間絕對距離,沒有考慮各種特征之間的聯系,并且本文中的匹配點來自兩個不同的傳感器,歐氏距離匹配方法獲得匹配結果并不理想,誤差較大,因此本文提出了一種改進的歐式距離匹配算法,該方法結合歐式距離匹配與目標類型信息決定兩個傳感器測量的目標數據是否針對同一運動目標。歐式距離的計算公式如式(11)所示。
本文根據毫米波雷達檢測目標的橫截面反射強度粗略估計目標類別。毫米波雷達檢測到的目標橫截面與目標類型的對應關系見表4。

表4 目標橫截面與目標類型的對應關系Tab.4 Correspondence between target cross-sections and target types m2
本文定義了兩個傳感器檢測到的目標的位置-類型相關矩陣,用{D}m×n表示,其中Dij是該矩陣中的一個元素,表示第i個攝像機目標和第j毫米波雷達探測目標。公式如式(12)所示:
其中:dCi表示相機中第i個目標的距離測量值,dRi表示毫米波雷達中第j個目標的距離測量值,m表示距離的偏差影響因素,目標類型相關的矩陣可以用ClassT表示。ClassCi和ClassRj分別表示攝像機視頻中檢測到的第i個目標類型和毫米波雷達中檢測出的第j個目標類型,兩者之間目標類型偏差的影響因素為f。
假設在任何給定時刻,攝像機檢測到視頻數據中有m個機動目標,毫米波雷達檢測到n個目標。由于每個傳感器本身的檢測性能存在一定差異,因此兩個傳感器檢測到的目標數量m和n并不完全相等。假設匹配的偏差閾值為Dth,根據方程(11)計算攝像機視頻中檢測到的第i個目標與毫米波雷達檢測到的第一個目標匹配的偏差為{D}m×n。找到滿足條件Dij<Dth的數據目標對,然后確定數據目標對中偏差最小的數據目標。如果在攝像機采集的視頻中檢測到的第i個目標與毫米波雷達檢測到的目標數據中的第j個目標的相似性最大,則確定該數據對可以表示兩個傳感器檢測到目標的同一對象。
最后本文利用加權信息融合算法對匹配后的結果進行最終決策。在大霧天氣下,毫米波雷達可以檢測到更多的有效目標,而視覺在正常天氣下的干擾信息更少。根據這兩種傳感器在霧天的識別能力和信息可靠性,本文設定在霧天下攝像機視覺識別權重為α,毫米波雷達識別權重為β,根據不同的天氣情況設置不同的權重值,信息融合后目標屬于每一類別的概率Prob表示為式(13):
其中:Ec為視覺檢測的置信度,Rc為毫米波雷達檢測的目標存在的可能性,α+β=1。根據不同的天氣情況設置不同的權重值,當出現概率超過50%時,則認為該目標存在。目標的最終類別i_max為maxProb。
本文采集實車測試結果,視覺傳感器型號為CMOS攝像頭,采集分辨率為1 920×1 080,采集頻率為30幀/s。毫米波雷達選擇德國大陸ARS404雷達。ARS404是77 GHz的雷達傳感器,能夠同時檢測相對速度為-400~200 km/h的多個靜止和移動目標,可檢測多達250個原始點,有效探測距離為0~170 m。霧天主要分為薄霧、大霧、濃霧和強濃霧,其中水平能見度距離在1~10 km的稱為薄霧,水平能見度距離在200~500 m的稱為大霧,水平能見度距離在50~200 m的稱為濃霧,水平能見度不足50 m的霧稱為強濃霧。本文采集薄霧、大霧和濃霧3種天氣情況下的視覺數據和毫米波雷達數據進行研究,用來驗證本文提出的目標檢測效果的準確性。
本文的去霧視覺檢測實驗所用硬件為單個具有64 GB內存的NVIDIA GeForce RTX 2080Ti GPU,操作系統為Ubuntu18.04。由于霧天場景較少,因此本文實際采集數據為1 500張,通過對晴朗天氣進行加霧獲得2 500張數據,以及從網上尋找大霧天氣下的數據集1 500張,通過對原始數據進行增強,最終數據為10 000張,其中訓練數據集為7 000張,測試數據集為3 000張。本文實驗中采取的目標檢測的評價標準有準確率以及召回率。圖7所示為去霧前后視覺檢測結果的對比圖。由圖中紅色標記可知,(ⅰ)組去霧后檢測到了更多小目標,(ⅱ)組去霧后避免了錯誤識別的問題,(ⅲ)組去霧后檢測到了更多的車輛目標,因此去霧后的圖像可以獲得更多的細節信息,更能凸顯目標,識別到更多的小目標,同時還避免了一些誤檢和漏檢問題。

圖7 去霧前后的檢測結果對比圖Fig.7 Comparison of detection results before and after defogging
經過在數據集上測試,對比去霧前后目標檢測的結果如表5所示。根據表5可知,去霧后在薄霧場景下的準確率提高了6%,召回率提高了10%;在大霧場景下,準確率提高了13%,召回率提高了6%;在濃霧場景下準確率提高了5%,召回率提高了3%。在霧比較薄的情況下,去霧后使用視覺檢測可以有效提高檢測效率;但是在濃霧場景下,即使去霧,目標檢測準確率依然很低。

表5 去霧前后的目標檢測結果Tab.5 Object detection results before and after defogging
毫米波雷達和視覺融合檢測結果的測試采用實際采集的天氣不同場景下的數據以及nuScenes數據集進行測試,包含薄霧、大霧、濃霧等。針對不同的天氣設置不同的融合權重值。由表5可知,視覺檢測在薄霧天氣下,經過去霧后,圖像中的霧氣殘留較少,對目標識別的影響較小,其檢測準確率較高為91.01%;而在大霧和濃霧天氣下,雖然經過去霧,但是圖像中仍殘留較多霧氣,其檢測準確率為82.45%和67.89%。毫米波雷達由于其自身的不穩定因素,其檢測準確率要低于薄霧下的視覺檢測,約為83%,但是由于其不受天氣影響,所以在薄霧、大霧和濃霧的天氣下,其準確率相差不大。經過測試,本文設置在薄霧下攝像機識別權重α為0.7,毫米波雷達β為0.3,如圖8(ⅰ)、圖9(ⅰ)組所示;大霧下攝像機識別權重α為0.5,毫米波雷達β為0.5,如圖8(ⅱ)、圖9(ⅱ)組所示;濃霧下攝像機識別權重α為0.4,毫米波雷達β為0.6,如圖8(ⅲ)、圖9(ⅲ)組所示。實際采集數據檢測如圖8所示,nuScenes數據集檢測結果如圖9所示。

圖8 實際采集數據融合檢測結果Fig.8 Results of fusion detection of actual collected data

圖9 nuScenes數據集融合檢測結果Fig.9 Detection results of nuScenes dataset fusion
其中紅色二維框為毫米波和視覺檢測結果匹配成功后得到的目標二維框,綠色二維框為毫米波雷達檢測的目標二維框,綠色的點為毫米波雷達檢測的目標點。算法檢測結果見表6、表7。由表6可知,隨著霧氣指數的升高,圖像去霧后的視覺檢測準確率仍呈非常明顯的下降,而毫米波和視覺融合的檢測結果無論是在薄霧、大霧還是濃霧的情況下都有穩定較好的檢測率,同時也降低了毫米波雷達自身不穩定引起的漏檢、誤檢問題。相對于單一傳感器,本文提出方法的準確率更高。由表7可知,本方法在nuScenes數據集下,薄霧天氣下準確率可達92.01%,召回率達90.37%,在濃霧和大霧天氣下的準確率也高于84%,召回率高于86%,可以實現在霧天下的車輛檢測。

表6 目標檢測結果統計Tab.6 Statistics of target detection results

表7 nuScenes數據集的測試結果Tab.7 Test results of nuScenes dataset
為了解決霧天車輛檢測比較困難的問題,本文提出融合毫米波雷達和機器視覺方法檢測車輛目標。首先通過去霧算法去除霧氣對視覺圖像的干擾;然后使用知識蒸餾算法改進YOLOv5s,提高目標檢測的實時性;最后使用改進的歐式距離匹配算法匹配毫米波雷達檢測結果與視覺的檢測結果。實驗結果表明,該方法有效融合了毫米波雷達的檢測結果以及視覺的檢測結果,有效提高了有霧天氣下車輛的檢測準確率,避免了單一傳感器帶來的誤檢和漏檢問題,同時在實時性上滿足自動駕駛場景要求,避免了多傳感器融合導致的實時性不夠的問題。