





摘要:針對傳統路端車輛目標檢測算法參數多、檢測速度較慢等問題,提出了基于YOLOv5 的車輛目標檢測算法輕量化改進。首先,選用輕量化EfficientnetV2 卷積神經網絡對原骨干網絡進行重構,同時在網絡中引入GAM 注意力機制;其次,為平衡CIoU 損失和IoU 損失在損失函數中的權重,引入α-CIoU 損失代替原有的CIoU 損失;最后,使用soft-NMS 算法替換原有的NMS 非極大值抑制算法。結果表明:相比原算法,改進后算法的精度提升了2.51%,檢測速度提升了8.6%,模型大小降低了31.7%;改進后的模型在提升檢測速度的同時,還提高了路端車輛目標的檢測性能。
關鍵詞:車輛目標檢測;深度學習;YOLOv5 算法;網絡輕量化
0 前言
隨著車路協同技術的發展,智能駕駛成為交通行業研究的熱點之一,其中目標檢測是確保智能駕駛安全的必要關鍵技術。智能駕駛要求車載計算機能夠精確、迅速地檢測出道路上的所有目標,因此高效的目標檢測算法在智能駕駛領域具有舉足輕重的作用。
目標檢測的目的是在圖像或視頻中準確地定位目標并識別出目標的類別。目前,基于機器視覺的目標檢測算法主要通過深度學習來實現,通過卷積神經網絡提取目標的特征,再通過分類回歸層完成目標的分類和定位工作。目標檢測算法可劃分為2 類[1]:一類是以區域卷積神經網絡R-CNN 為代表的雙階段算法,先生成候選框,然后對候選框進行分類和定位,該方法精度較高,但速度較慢;另一類是以YOLO 算法為代表的單階段算法,該算法是直接在圖像上完成目標的檢測和定位,其優點是速度快。YOLO 算法通過單次前向傳播來預測目標的位置和類別,能夠有效地利用多尺度特征信息進行目標檢測,在較高精度下準確地定位車輛位置,適用于車輛目標的檢測任務。
為滿足對車輛目標檢測的實時性要求,有研究人員在網絡輕量化和檢測算法方面進行了大量研究。ZHANG 等[2]為移動設備提出了ShuffleNet 算法,該算法采用點群卷積和Shuffle 通道2 種新的運算方法,降低了計算成本。MA 等[3]進一步提出了ShuffleNetV2 算法,該算法采用逐點組合的結構,重排通道,可減少參數量。HOWARD 等[4-5]使用深度可分離卷積替代標準卷積,提出MobileNet 模型,將卷積分解為深度卷積、逐點卷積,并進一步采用該方法優化MobileNetV3 算法,通過自動搜索的方法找到性能更好的算法結構。在檢測算法方面,余穎舜等[6]提出一種將元學習Reptile 與知識蒸餾相結合的方法來提升YOLO 算法的檢測速度。
在網絡結構輕量化方面,以上提出的目標檢測算法均進行了優化,但主干特征提取網絡中參數較多和計算量較大仍是限制自動駕駛技術發展的原因之一。本文基于真實場景下的車輛數據,對傳統的YOLOv5 算法進行改進,將原主干特征提取網絡更換為輕量化的網絡結構,并加入注意力機制模塊,更換了原網絡中的損失函數和非極大值抑制(NMS)算法,以期在一定程度上改善目標被遮的問題。
1 YOLOv5 目標檢測算法
1. 1 YOLOv5 目標檢測原理
YOLOv5 是一種單階段端到端的目標檢測算法,該算法首先通過特征提取網絡提取輸入特征,得到特定大小的特征圖輸出,將圖像劃分為若干個S×S 的網格,每個網格負責對落入其中的目標進行檢測;當目標位于網格中某個點時,對應的網格開始對目標進行檢測;最后,通過NMS 處理,輸出最終的檢測結果。
1. 2 YOLOv5 網絡結構
YOLOv5 的網絡結構為全卷積網絡,可通過堆疊卷積層來實現目標的檢測任務。該網絡架構主要包括輸入端、骨干網絡、頭部網絡3 個部分,檢測時直接輸入圖片或視頻,利用人工標注的標簽對網格進行訓練,通過卷積神經網絡提取圖像中的特征信息,生成預測框和置信度,設置損失函數,進一步獲得目標的檢測邊框和分類。YOLOv5 的網絡結構如圖1 所示。
輸入端負責輸入圖像并進行數據增強,即在數據集中隨機選取4 張原始圖像及其標注框,通過移動、縮放、裁剪等操作將其拼接到1 張圖上,作為訓練樣本。
骨干網絡主要用于圖像的特征提取和歸一化操作。其中,CBS 模塊由1 個卷積層Conv、1 個BatchNorm2d 模塊、1 個激活函數SiLU 組成,用于提取特征;C3 模塊由3 個卷積層Conv 和1 個瓶頸層Bottleneck 組成;CSP 由CBL 模塊、Resunint 模塊以及卷積層組成,可以促進特征傳播,緩解梯度消失程度和減少參數量。快速空間金字塔池化(SPPF)層由3 個串行的池化層組成,對輸入的特征圖進行不同尺度的池化操作,并進行特征融合。
骨干網絡首先通過卷積塊對輸入圖像進行采樣,以減小特征圖的空間維度和增加網絡對物體的感受野,從而更好地捕捉物體的全局特征和上下文信息;C3 層用于特征的提取,其將輸入特征分成2 部分,一部分作為主路徑,前向傳播,另一部分作為支路,2 部分輸入特征分別進行卷積,然后將其合并,形成輸出;SPPF 層用于特征的融合。
頭部網絡包括Neck 和 Detect 2 個部分。Neck是將底層的粗糙特征轉化為更加高級和語義豐富的特征,主要使用1 個路徑聚合網絡PANet,其結構有5 個核心模塊,如圖2 所示:① FPN 特征金字塔網絡結構;② 自底向上路徑增強;③ 預測框分支;④ 自適應特征池化;⑤ 全連接融合。
PANet 在FPN 的基礎上引入了1 個自底向上的路徑,用低層特征融合高層特征,以增強高層特征的定位信息,經過自頂向下的特征融合后,再進行自底向上的特征融合,則底層的位置信息能夠傳遞到頂層,增強了多個尺度上的定位能力。
在檢測階段,將之前提取到的多尺度特征輸入到特征網絡中,通過卷積和池化操作,得到目標的位置信息和類別信息,再經過NMS 處理得到最終的檢測結果。
2 改進的YOLOv5 算法
在車路協同環境下,為了提高車輛目標檢測的準確性和檢測速度,并提高網絡的收斂性能,本文在原有YOLOv5 模型上引入輕量化的網絡結構EfficientNetV2,用于替換原有的主干網絡,通過減少計算量和參數量來提升檢測速度;同時,在設計損失函數時引入α 參數,來平衡調整CIoU 損失和IoU損失在損失函數中的權重;針對檢測部分,引入軟化非極大值抑制(soft-NMS)[7]算法,用于提高目標分類精度。
2. 1 輕量化EfficientNetV2 網絡
在骨干網絡部分,采用輕量化的EfficientNetV2架構[8]替換原有的網絡。表1 為EfficientnetV2 模型架構,其中MBConv 為移動翻轉殘差瓶頸卷積,Fused-MBConv 為融合移動翻轉殘差瓶頸卷積,均是輕量級網絡的重要組成部分。
改進后的模型可分為3 個部分:第1 部分為3×3的卷積,用于擴充通道數。第2 部分是采用Fused-MBConv 層和MBConv 層來代替原有的C3 層,如圖3 所示,MBConv 層是先采用1×1 的卷積來升維,再用一般的卷積特征進行提取,并添加一個SE 注意力機制,對輸入特征矩陣的每一個通道做一個全局平均池化操作,再采用1×1 的卷積進行降維,將不同通道的信息進行綜合,以減少參數量;Fused-MBConv 層則是將深度可分離卷積替換成1 個普通的卷積,以提升訓練速度。第3 部分是采用1×1 卷積、池化和全連接,從而能夠處理不同大小的圖像。