上海鑫北智慧科技有限公司

網址:

基於YOLOV4的日常生活可回收垃圾檢測

1。 背景介紹

近年來,隨著我國現代化程序不斷加快,汽車的保有量急劇增加,這同時也導致了交通事故的頻發。為保障生命財產安全,各大汽車廠商愈加關注汽車的主被動安全以及輔助駕駛或自動駕駛技術。自動駕駛技術是應用於車載AI中控系統的核心技術,是實現“智慧汽車”、“智慧交通”和“智慧城市”的關鍵,隨著自動駕駛技術的日益成熟和傳統汽車行業的越發飽和,基於人工智慧的自動駕駛汽車將是顛覆傳統汽車市場且具有深遠意義的產品。環境感知模組是自動駕駛系統的重要組成之一,而目標檢測和跟蹤又是環境感知模組的基礎,設計出效能優良的目標檢測和跟蹤模型是自動駕駛領域內的研究重點與難點之一。傳統的基於人工特徵的目標檢測演算法其泛化能力與魯棒性較差,因此,本文利用深度學習技術,以道路交通場景中的行駛車輛為研究物件,對目標檢測演算法進行了研究。主要是基於YOLOV5模型,對行人與車輛進行檢測與識別。

2. 目標識別演算法

目標識別演算法是指從場景中標記出需要識別的目標並確定它們的位置和類別的一類演算法,主要包括識別和分類兩個過程。 經研究,現有的目標識別演算法主要分為兩大類:一類是 R-CNN、Fast-RCNN 等典型兩階段識別演算法。該類演算法在基於特徵提取的基礎上,先由獨立的網路分支生成大量的候選區,再對其進行分類與迴歸。另一類是 SSD、YOLO 等典型一階段識別演算法。該類演算法在生成候選區的同時進行分類和迴歸。 兩階段識別演算法的優勢主要體現在可擴充套件性和高準確性方面,而一階段識別演算法的識別速度更快、更加適用於需要實時檢測的目標識別問題。

3. YOLOV1-V4系列

YOLO 系列網路從提出到現在,已經更新到了第四個版本,檢測精度不斷提高,但是採用直接回歸始終是其中心思想,下面從 YOLO 的幾個版本來介紹。

3。1 YOLOv1

傳統 CNN 都需要透過生成預選框、分類兩個步驟,這種思想帶來了檢測速度的下降,而 YOLO 創新性的提出了採用迴歸的方式直接獲得位置資訊與分類資訊,未使用預選框生成環節,極大降低了計算量,從而提升了網路的訓練與檢測速度。

與其他卷積神經網路檢測演算法一致,YOLO 系列也是採用多層卷積(卷積操作加池化操作)來提取特徵,然後經過全連線層輸出特徵圖。具體實現步驟如下:

1、將輸入圖片統一縮放到 448×448×3。

2、輸入圖片經過卷積層輸出 7×7×1024 的特徵圖。

3、將上一層輸出的特徵圖經過兩層全連線輸出 7×7×30 的特徵圖。

以輸入圖片維度資訊為例,448×448×3 代表輸入圖片資料應該有 3 個通道,每個通道的尺寸是448×448,同理在步驟(3)中,該步驟輸出的特徵圖的維度資訊為7×7×30,因此,本步驟輸出的特徵圖尺寸是 7×7,每個單元有 30 個通道的資料,在對這個特徵圖資料的理解上,與前面幾個。7×7 的通道尺寸反應到原圖中,就是將原圖按照 7×7 的網格進行了區域劃分,如下圖 所示。

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

30 個通道的資料對應每個包含了每個類別的機率、邊框置信度、邊框位置,具體構成如下圖所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

類別的機率:YOLOv1 使用了 PASCAL VOC 資料集進行訓練,該資料集有20 個類別,這 20 通道的資料為對應每一個類別的機率資訊。

邊框置信度:表示該區域包含物體的機率。

YOLOv1 設定了兩個預測框,因此有兩個數值。

邊框位置:對兩個邊框預測的座標。

YOLOv1 透過直接回歸的方式,使用輕量化的一階網路進行目標定位和分類,獲得了前所未有的速度提升,可達到 45FPS,但是 YOLOv1 的不足之處在於:它也有兩個預測框,導致在檢測小物體或者是形狀不常規的物體時,該網路的檢測效果不理想。

3。2 YOLOv2

YOLOv2 針對 YOLOv1 存在的一些問題做了改進,預測更準、速度更快、類別更多。YOLOv2 相較於 YOLOv1 版本,改善了網路結構,提出了一種全新的網路結構,同時增加了預選框的設定。

YOLOv2 提出的全新的網路結構稱之為 DarkNet-19。DarkNet 包括 19 個卷積操作以及 5 個池化操作。YOLOv2 在 DarkNet-19 基礎上又增加了一個PassThough 操作,PassThough 包含 3 個卷積層,因此 YOLOv2 的 DarkNet-19 網路包含 22 的卷積操作。同時,YOLOv2 參考了 Fast-RCNN 這類“兩步驟”網路含有預選框的特點,設定了一定數量預選框,網路只要計算目標位置偏移即可,降低了位置預測的計算量。YOLOv2 的網路結構如下圖所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

在上圖中,Con_size 代表卷積核的尺寸,s 代表卷積操作的步長,o_c 代表輸出的通道數。相較與 YOLOv1 採用 7×7 的卷積核進行特徵提取,YOLOv2 多使用 3×3 和 1×1 組合的卷積核進行特徵提取,可以在一定程度上提高運算速度,也能增加特徵圖的通道深度。同時,YOLOv2 版本增加了 Passthough 層,將深層特徵與淺層特徵進行融合,有利於對小物體的檢測。YOLOv2 類似 YOLOv1,也將原始影象劃分成了幾個區域,為每個區域增加了 5 個預選框,每個預選框都有獨立的類別預測值,這點與 YOLOv1 不同。

YOLOv2 透過高低維度特徵融合提高了對小物體的檢測能力,同時,採用小尺寸卷積核以及預選框的策略降低了網路的計算量,但是該網路未採用類似殘差網路的結構,多、小目標的檢測能力有待提升。

3。3 YOLOv3

YOLOv3 針對 YOLOv2 的一些問題,比如對小物體檢測容易丟失目標,吸收了一些現今比較好的檢測思想,例如增加了殘差模組,以及深層特徵與淺層特徵的通道拼接,提出了一種新網路結構的 DarkNet,稱之為 DarkNet-53,在保證檢測速度的前提下,進一步提升了檢測精度,尤其是針對小物體。YOLOv3 的網路結構圖如下圖所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

YOLOv3 在低、中、高三個維度上進行特徵融合,然後分別進行卷積與迴歸,最後輸出三個尺度的特徵圖。最後得到的特徵圖尺寸分別為 52×52×75、26×26×75、13×13×75。生成的特徵圖可以對應到原始影象,不同的特徵圖尺寸代表比一樣的劃分方式,尺寸為 52×52 的特徵圖負責檢測小型物體,尺寸為 26×26 的特徵圖負責檢測中型物體,尺寸為 13×13 的特徵圖負責檢測大型物體。劃分方式如下圖 所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

在上圖 中,黃色框是目標真實框,藍色是生成的 3 個預選框尺寸。在訓練之前,需要對預選框尺寸進行設定,每種尺寸的特徵圖最小單元都需要 3 個預選框尺寸,因此 YOLOv3 會產生 9 個預選框。在預測時,網路又會輸出 3 個尺寸的特徵圖,每個特徵圖的最小單元包含 25 長度的資料,包括 20 個類別的機率(以 VOC 資料集為例)、預選框置信度(包含物體的機率)、邊框座標修正量。因此,YOLOv3 輸出的資料長度為 75,可以分解成 3×(20+1+4),具體資料構成如下圖所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

3。4 YOLOv4

YOLO v4 作為 YOLOv3 的升級版本,是由俄羅斯的 Alexey 在 2020 年 4 月提出,核心結構與 YOLOv3 類似,透過新的演算法思想對各個子結構進行了改進,並且融合多種網路設計思路,使 YOLO 系列目標檢測演算法的檢測精度進一步提升。YOLOv4 網路結構圖如下圖 所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

在上圖中,CBM 是 YOLOv4 網路結構的最小元件,由 Conv(卷積層)、

BN(批歸一化)、Mish 啟用函式組成;CBL 由 Conv(卷積層)、BN(批歸一化)、Leaky_relu 啟用函式組成;Res unit 是 YOLOv4 的殘差模組,主要結構與 Resnet網路中的殘差結構類似;CSPX 主要借鑑了 CSPNet 網路結構,由 CBM 和 x 個Res unit 模組 Concate 組成; SPP 模組主要是採用 1×1,5×5,9×9,13×13 四種最大值池化核心的池化操作,並進行多尺度融合。下面對 YOLO v4 的改進處進行詳細說明:

1、CSPDarknet53 將原來網路結構中首個卷積層中的啟用函式由 Relu 改成了 Mish。Mish 啟用函式相對於 Relu 啟用函式更加平滑,全域性沒有一個不可導點,且在正區間與 Relu 函式類似,負區間仍然存在梯度,只有在趨向於−∞的時候存在梯度消失的情況,利於反向求導,得到更好的特徵傳遞能力,從而有了更好的泛化能力,這也為未來啟用函式的設計提供了方向。Mish 啟用函式的表示式如下式。

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

Mish 啟用函式與 Relu 啟用函式的區別在於其導數。Relu 啟用函式求導後如下式所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

Mish 啟用函式的導數表示式如下式所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

從式子中可以看出 Relu 啟用函式在 x=0 處時不可導,且在 x<0 區間上導數始終為 0,這可能會導致卷積神經網路在反向求梯度時梯度消失。Mish 啟用函式在全域性都可導,當 x<0 區間內仍然能求得導數;當 x 趨向於無窮小時,導數趨向於 0。因此,Mish 啟用函式的效能要優於 Relu 啟用函式。

2、借鑑了 CSPnet的網路結構,將卷積層與多個殘差網路進行通道融合,可以看成是一個並聯結構,如下圖所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

輸入首先經過一個 CBM 模組進行初步的特徵提取,然後特徵資料將在特徵層維度上被分為兩個部分,part1 和 part2;然後,part1 經過一個 CBM 模組處理得到處理後的 part1,part2 經過一個 CBM 模組,n 個 Res unit 殘差模組,一個CBM 模組得到處理後的 part2,兩部分資料在特徵層維度上重新進行通道融合獲得最後的特徵資料。相對於以往的殘差網路,這種殘差網路結構大大降低了計算量,同時提升了網路的特徵提取能力。

3、對池化方法的改進。類似於 Resnet 的短接結構,主要借鑑了 SPPNet 網路的結構,具體結構如下圖 所示:

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

特徵資料首先複製成四組,這與 CSPx 結構中發的通道分離操作是有差異的,然後四份資料按照池化核的尺寸分別進行最大值池化,最後,將四組資料在特徵層維度上進行通道拼接。採用 SPP 結構能夠使卷積在一次運算過程中獲得多個維度的特徵資料,顯著提高網路特徵的傳遞能力,減少網路訓練時間,這也是YOLOv4 的作者在論文中所提到的。

YOLOv4 除了在網路結構上進行了最佳化,還在資料增強方面做了最佳化,文中將其稱為 Mosaic 法,將幾張圖片進行不同的排列組合,從而來增加資料集的多樣性以及圖片資料集的聯絡,同時也降低了訓練時 batch-size。還有其他幾種影象增強方式,包括模糊、旋轉、融合、裁剪、鑲嵌等等,都在一定程度上提高了分類的準確性。下面舉例了幾個資料增強方法的效果圖,如下圖 所示:

4. YOLOV5網路模型

YOLOv5 ( You Only Look Once ) 是 由 UltralyticsLLC 公司於 2020 年 5 月份提出,其影象推理速度最快達 0。 007 s,即每秒可處理 140 幀,滿足影片影象實時檢測需求,同時結構更為小巧,YOLOv5s 版本的權重資料檔案為 YOLOv4的 1 /9,大小為 27 MB。

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

Yolov5 按照網路深度大小和特徵圖寬度大小分為 Yolov5s、 Yolov5m、Yolov5l、Yolov5,本文采用了 yolov5s 作為使用模型。Yolov5 的結構分為 input,backbone,Neck, 預測層。

(1)在輸入端使用了 Mosaic 的資料增強方式,隨機呼叫 4 張圖片,隨機大小和分佈,進行堆疊,豐富了資料,增加了很多小目標,提升小物體的識別能力。可以同時計算 4 張圖片,相當於增加了 Mini-batch 大小,減少了GPU 記憶體的消耗。Yolov5 首先也可以透過聚類設定anchor大小,然後還可以在訓練過程中,在每次訓練時,計算不同訓練集中的ahchor值。然後在預測時使用了自適應圖片大小的縮放模式,透過減少黑邊,提高了預測速度。

(2) 在 Backbone 上 的 主 要 是 採 用 了Focus 結構,CSPnet 結構。Focus 結構不存在與 YOLOv3和 v4 版本中,其關鍵步驟為切片操作,如下圖 所示。例如將原始影象 416* 416* 3 接入 Focus 結構中,透過切片操作,變為 208* 208* 12 的特徵圖,接下來進行一次 32 個卷積核操作,變為 208* 208* 32 的特徵圖。

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

YOLOv4 目前只在主幹網路中採用了 CSP 結構,v5 版中設計 了 2 種 CSP 結 構,CSP1 _ X 和 CSP2 _ X。其中,CSP1 _X 結構主要應用於 Backbone 網路中,CSP2_X 結構主要應用於 Neck 結構中。

(3)在 Neck 上採用了 FPN 結構和 PAN結構。

FPN 是自上而下的,利用上取樣的方式對資訊進行傳遞融合,獲得預測的特徵圖。PAN 採用自底向上的特徵金字塔。

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

(4)在損失函式則使用了 GIOU_Loss。

Prediction 包括 Bounding box 損失函式和非極大值抑制( NMS) 。YOLOv5 中使用 GIOU_Loss 作為損失函式,有效解決了邊界框不重合時問題。在目標檢測預測結果處理階段,針對出現的眾多目標框的篩選,採用加權 NMS 操作,獲得最優目標框。

5. YOLOV5網路模型對車輛行人檢測結果

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測

面向自動駕駛場景基於YOLOV5演算法的車輛與行人目標檢測