趙 偉,胡文藝,羅荔豪,黃 元
(成都理工大學計算機與網絡安全學院,四川成都 610000)
汽車行業(yè)的飛速發(fā)展使得節(jié)假日的車流量成為一個居高不下的高峰,與此同時各種大小不一的停車場車牌識別依舊采用以往的傳統(tǒng)識別算法,傳統(tǒng)識別算法不僅存在識別準確率低、設備要求高、訓練模型耗時長等問題,而且需要人工提取特征和編碼處理,這既降低了識別的效率,還加大了識別工作的復雜度,因此其識別速度慢和準確率低是導致停車場前有大量車輛擁堵的主要根源。該文構建了一個兼具輕量化和準確率的深度學習網絡,目的是對車牌達到高準確性和實時性的識別,利用公開攝像機在日常生活中當?shù)赝\噲雠臄z實際車牌照片,基于YOLOv4 算法,改進其特征提取網絡主干,縮小了模型的大小,進一步減少參數(shù)量,從而訓練得到模型,并對車牌進行識別,同時進行合理的優(yōu)化調參,盡可能提高識別準確率和速度,提高模型的魯棒性以及泛化能力。
YOLO 是一種目標檢測技術,將目標檢測視為一個回歸問題來求解。基于一個單獨的端到端網絡,端到端網絡統(tǒng)一了處理訓練過程的分類過程,全部交給網絡來處理[1]。傳統(tǒng)方法處理圖像時,首先需要人工的設計特點,提取圖像特征點,將提取的特征作為模型輸入到送入分類器[2]。使用深度學習手段之后,將特征提取交給卷積神經網絡來完成從原始圖像的輸入到物體位置和類別的輸出。從網絡設計上看,YOLO 與RCNN、Fast RCNN 及Faster RCNN 的區(qū)別主要在于YOLO 訓練和檢測均是在一個單獨網絡中進行,而RCNN、Fast RCNN 采用分離的模塊求取候選框,訓練過程也是分成多個模塊進行的[3]。
YOLOv1 利用預設好的多個網格單元進行分類和回歸;YOLOv2 在前者基礎上引入了批量歸一化和維度聚類方法,使其速度和精度得到了一定的提升;YOLOv3 算法替換了YOLOv2 的主干網絡,并增加了網絡的層數(shù),使其每秒傳輸幀數(shù)減少一半的同時平均精度均值提升了3.1%[4];YOLOv4 在YOLOv3 的基礎上,改進了網絡結構,主干部分采用了CSPDarknet53,并采用了mish 激活函數(shù)、Mosaic 數(shù)據(jù)擴充等tricks 來進一步提高模型準確率,還加入了SPP 模塊以及PANet,預測部分大體與YOLOv3 一致[5]。
YOLOv4 的算法結構圖如圖1 所示。
圖1 YOLOv4網絡結構圖
CSPDarkNet 利用CSP 連接并以DarkNet-53 作為提取特征骨干的網絡主干[6]。與基于ResNet 的設計相比,CSPDarkNet53 模型具有更高的目標檢測精度,并且可使用mish 激活函數(shù)提高CSPDarkNet53 的分類精度。除此之外,采用CSPDarkNet 結構還可以降低參數(shù)的數(shù)量,從而減少計算量[7]。CSPDarkNet 結構圖如圖2 所示。
圖2 CSPDarkNet結構圖
mish 激活函數(shù)在負值時,允許較小的負梯度流入而并非完全截斷,有效避免了梯度飽和的問題[8],同時mish 函數(shù)保證了每一點的平滑,使得梯度下降效果比ReLU 函數(shù)更佳[9]。mish 激活函數(shù)與其他激活函數(shù)的對比如圖3 所示。
圖3 mish與常用激活函數(shù)對比
YOLOv4 的SPP 空間金字塔池化采用5×5、9×9和13×13 三種最大池化方式,進行多尺度的特征融合[10],可有效增加主干特征的接收范圍。
MobileNet 模型是針對嵌入式設備提出的一種輕量級的深層神經網絡,其使用的核心思想是深度可分離卷積,它將一個標準的卷積拆分成深度卷積和逐點卷積兩個結構,從而產生新的特征,達到減少網絡參數(shù),降低模型大小的目的[13]。深度卷積完成后的特征圖數(shù)量與輸入層的通道數(shù)相同而無法擴展,并且在每個通道獨立進行卷積運算,因此沒有有效利用不同通道在相同空間位置上的特征信息,但逐點卷積可將這些特征圖進行組合[14]。深度可分離卷積和普通卷積的對比如圖4 所示。
圖4 普通卷積和深度可分離卷積
MobileNet 的網絡主干結構如圖5 所示。
圖5 MobileNet網絡結構
假設標準卷積的輸入和輸出分別為PF×PF×M的特征圖和PF×PF×N的特征圖,卷積核大小為K×K[15],則輸出特征圖的計算公式為:
MobileNet 通過深度可分離卷積進行計算量優(yōu)化,將標準卷積轉化為深度卷積和逐點卷積,每層后面都會接BN 層和ReLU 激活函數(shù)。深度可分離卷積的每個輸入維度對應一個卷積核[16],對于相同的輸入,深度卷積的輸出特征圖計算公式為:
MobileNetV1 中為了使結構更小且計算量更小,引入了寬度因子和分辨率因子兩個參數(shù),寬度因子是在每層稀疏網絡,為每層通道乘以一定的比例,從而減少各層的通道數(shù)。分辨率因子是將每層特征圖的大小乘以一定的比例[17]。兩個參數(shù)互相作用可以平衡速度和精度,并通過減少參數(shù)量來降低計算量。一個標準卷積G的參數(shù)量為P=M×N×K×K,深度可分離卷積G'的參數(shù)量為P'=K×K×M+1×1×M×N,其中K×K表示卷積核的尺寸大小,M、N分別表示輸入和輸出的通道數(shù)[18],則二者參數(shù)的比值為:
通過式(3)可進行估算,如果卷積核尺寸選為3×3,則計算量降低為原來的1/9~1/8[19]。
該實驗用MobileNetV1 網絡結構替換YOLOv4中的特征提取主干網絡CSPDarkNet,改進后的網絡結構如圖6 所示。
圖6 MobileNet_YOLOv4結構圖
利用MobileNet 系列主干結構得到的一個有效特征層代替原YOLOv4 中的特征層后,測試查看網絡結構參數(shù)量與原YOLOv4 算法進行比較,如表1所示。
表1 修改主干網絡后的參數(shù)量
為了進一步減少模型參數(shù),使得整個模型輕量化,該實驗在原有YOLOv4 的SPP 模塊和PANet 模塊中將普通卷積更換為深度可分離卷積,使得參數(shù)進一步減少[20],表2 是替換PANet 模塊中卷積塊之后的模型參數(shù)量以及各種模型的大小。
表2 修改后的參數(shù)量及模型大小
該文基于小樣本數(shù)據(jù)下的目標識別,因此比較基于YOLOv4 算法與大幅減少參數(shù)后的Mobile NetV1-YOLOv4 算法的識別準確率和速度,由于參數(shù)量的減少不僅可以有效降低模型運算量和模型大小,訓練速度也得到提高。
實驗采用Labelimg 工具對圖片進行標注預處理,將所要檢測的車牌中出現(xiàn)的漢字、字母和數(shù)字分為35 個類,其中每個類為車牌相對應的數(shù)字或字母。由于樣本數(shù)據(jù)存在不平衡現(xiàn)象,因此盡可能將數(shù)量多的樣本放入訓練集中,該實驗共選取了2 000 張圖片作為訓練數(shù)據(jù),同時模型按9∶1 的比例進行訓練和測試。為防止出現(xiàn)小樣本在訓練時可能出現(xiàn)的過擬合現(xiàn)象,該實驗在訓練階段加入了神經網絡訓練的Early Stopping 技巧,深度神經網絡希望通過加深網絡層次減少優(yōu)化的參數(shù),同時可以得到更好的優(yōu)化結果,早停法的使用可以通過在模型訓練整個過程中截取保存結果最優(yōu)的參數(shù)模型,來防止訓練過擬合。使得訓練所用的時間大大減少,同時也得到了較高的準確率。實驗設置初始圖像輸入尺寸為416×416×3,學習率為0.000 1,打開YOLOv4 中的Mosaic 數(shù)據(jù)增強,關閉標簽平滑以及應用余弦退火,以更新學習率的大小。
實驗主要應用Precision、Recall、AP、mAP、F1 和FPS 來進行評估。設置閾值為0.5,即IoU >0.5 時,認為是有效檢測,有效檢測框的數(shù)量記為TP,否則為無效檢測,無效檢測框或者對于同一個真實框的多次重復檢測框數(shù)量記為FP,F(xiàn)N 為以為檢測到錯誤數(shù)據(jù)的真實數(shù)據(jù)的數(shù)量[21],則:
通常以Precision 和Recall 兩個指標來衡量模型的好壞,以F1 來組合這兩個量,其也是Precision 和Recall 兩個指標的調和平均值,它們三個的值均越大越好[22]。FPS 用來評估目標檢測的速度,即每秒內可以處理的圖片數(shù)量。AP 針對的是單一類別的準確率,mAP 是將所有的類別的AP 進行求平均[23],即:
實驗數(shù)據(jù)集包含了本地車牌,但不限于白天。實物檢測結果圖如圖7 所示。
圖7 實物檢測結果圖
各個模型mAP 如表3 所示。
表3 各個模型mAP
而MobileNetV1-YOLOv4 每秒處理圖片的數(shù)量為34 張。
在35 個類中隨機抽取5 個類,對比兩個模型下的Precision、Recall 和F1 如表4-5 所示。
表4 YOLOv4下五個類的指標
表5 MobileNetV1-YOLOv4下5個類的指標
在每個類的檢測結果中,閾值設置為0.5 的情況下,L 的檢測率和準確率較低。這是因為在所有數(shù)據(jù)中,車牌中的L 出現(xiàn)次數(shù)不到10 次,導致L 的AP、F1 等均較低,因此若有推廣使用的需要,建議將每個類放入足夠多的樣本數(shù)據(jù),以便進行學習和檢測。
實驗中計算機配置16 GB 內存、RTX2060 顯卡,并且使用cuda10.1 進行學習加速,以YOLOv4 網絡為基礎,替換特征提取部分為MobileNetV1,并加入預測模型,經過實驗及評價指標進行對比,結果表明,MobileNetV1_YOLOv4 模型識別效果更佳,模型縮小為49 MB,mAP 為98.08%、每秒處理圖片的數(shù)量為34 張。