概述
基于深度學習的車牌識別,其中,車輛檢測網(wǎng)絡直接使用YOLO偵測。而后,才是使用網(wǎng)絡偵測車牌與識別車牌號。
車牌的偵測網(wǎng)絡,采用的是resnet18,網(wǎng)絡輸出檢測邊框的仿射變換矩陣,可檢測任意形狀的四邊形。
車牌號序列模型,采用Resnet18+transformer模型,直接輸出車牌號序列。
數(shù)據(jù)集上,車牌檢測使用CCPD 2019數(shù)據(jù)集,在訓練檢測模型的時候,會使用程序生成虛假的車牌,覆蓋于數(shù)據(jù)集圖片上,來加強檢測的能力。
車牌號的序列識別,直接使用程序生成的車牌圖片訓練,并佐以適當?shù)膱D像增強手段。模型的訓練直接采用端到端的訓練方式,輸入圖片,直接輸出車牌號序列,損失采用CTCLoss。
一、網(wǎng)絡模型
1、車牌的偵測網(wǎng)絡模型:
網(wǎng)絡代碼定義如下:

該網(wǎng)絡,相當于直接對圖片劃分cell,即在16X16的格子中,偵測車牌,輸出的為該車牌邊框的反射變換矩陣。
2、車牌號的序列識別網(wǎng)絡:
車牌號序列識別的主干網(wǎng)絡:采用的是ResNet18+transformer,其中有ResNet18完成對圖片的編碼工作,再由transformer解碼為對應的字符。
網(wǎng)絡代碼定義如下:


其中的Block類的代碼如下:


位置編碼的代碼如下:

Block類使用的自注意力代碼如下:



二、數(shù)據(jù)加載
1、車牌號的數(shù)據(jù)加載
同過程序生成一組車牌號:

再通過數(shù)據(jù)增強,
主要包括:



三、訓練
分別訓練即可
其中,偵測網(wǎng)絡的損失計算,如下:


偵測網(wǎng)絡輸出的反射變換矩陣,但對車牌位置的標簽給的是四個角點的位置,所以需要響應轉(zhuǎn)換后,做損失。其中,該cell是否有目標,使用CrossEntropyLoss,而對車牌位置損失,采用的則是L1Loss。
四、推理
1、偵測網(wǎng)絡的推理
按照一般偵測網(wǎng)絡,推理即可。只是,多了一步將反射變換矩陣轉(zhuǎn)換為邊框位置的計算。
另外,在YOLO偵測到得測量圖片傳入該級進行車牌檢測的時候,會做一步操作。代碼見下,將車輛檢測框的圖片扣出,然后resize到長寬均為16的整數(shù)倍。

2、序列檢測網(wǎng)絡的推理
對網(wǎng)絡輸出的序列,進行去重操作即可,如間隔標識符為“*”時:

完整代碼
https://github.com/HibikiJie/LicensePlate
審核編輯:陳陳
-
檢測系統(tǒng)
+關注
關注
3文章
998瀏覽量
45470 -
檢測識別
+關注
關注
0文章
9瀏覽量
7363 -
深度學習
+關注
關注
73文章
5598瀏覽量
124396
原文標題:基于深度學習的車牌檢測識別(Pytorch)(ResNet +Transformer)
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
【TL6748 DSP申請】車牌檢測系統(tǒng)
【超值干貨】 揭秘車牌識別算法
Nanopi深度學習之路(1)深度學習框架分析
【HarmonyOS HiSpark AI Camera】基于深度學習的目標檢測系統(tǒng)設計
射頻系統(tǒng)的深度學習【回映分享】
基于深度學習和3D圖像處理的精密加工件外觀缺陷檢測系統(tǒng)
什么是深度學習?使用FPGA進行深度學習的好處?
【KV260視覺入門套件試用體驗】六、VITis AI車牌檢測&車牌識別
如何使用深度學習進行視頻行人目標檢測
分享一個不錯的基于深度學習的車牌檢測系統(tǒng)設計
評論