車牌識(shí)別
概述
基于深度學(xué)習(xí)的車牌識(shí)別,其中,車輛檢測(cè)網(wǎng)絡(luò)直接使用YOLO偵測(cè),。而后,,才是使用網(wǎng)絡(luò)偵測(cè)車牌與識(shí)別車牌號(hào)。
車牌的偵測(cè)網(wǎng)絡(luò),,采用的是resnet18,網(wǎng)絡(luò)輸出檢測(cè)邊框的仿射變換矩陣,可檢測(cè)任意形狀的四邊形,。
車牌號(hào)序列模型,采用Resnet18+transformer模型,,直接輸出車牌號(hào)序列,。
數(shù)據(jù)集上,車牌檢測(cè)使用CCPD 2019數(shù)據(jù)集,,在訓(xùn)練檢測(cè)模型的時(shí)候,,會(huì)使用程序生成虛假的車牌,覆蓋于數(shù)據(jù)集圖片上,,來加強(qiáng)檢測(cè)的能力,。
車牌號(hào)的序列識(shí)別,直接使用程序生成的車牌圖片訓(xùn)練,,并佐以適當(dāng)?shù)?a class="innerlink" href="http://forexkbc.com/tags/圖像增強(qiáng)" target="_blank">圖像增強(qiáng)手段,。模型的訓(xùn)練直接采用端到端的訓(xùn)練方式,輸入圖片,,直接輸出車牌號(hào)序列,,損失采用CTCLoss。
一,、網(wǎng)絡(luò)模型
1,、車牌的偵測(cè)網(wǎng)絡(luò)模型:
網(wǎng)絡(luò)代碼定義如下:
該網(wǎng)絡(luò),相當(dāng)于直接對(duì)圖片劃分cell,,即在16X16的格子中,,偵測(cè)車牌,輸出的為該車牌邊框的反射變換矩陣,。
2,、車牌號(hào)的序列識(shí)別網(wǎng)絡(luò):
車牌號(hào)序列識(shí)別的主干網(wǎng)絡(luò):采用的是ResNet18+transformer,,其中有ResNet18完成對(duì)圖片的編碼工作,再由transformer解碼為對(duì)應(yīng)的字符,。
網(wǎng)絡(luò)代碼定義如下:
其中的Block類的代碼如下:
位置編碼的代碼如下:
Block類使用的自注意力代碼如下:
二,、數(shù)據(jù)加載
1、車牌號(hào)的數(shù)據(jù)加載
同過程序生成一組車牌號(hào):
再通過數(shù)據(jù)增強(qiáng),,
主要包括:
三,、訓(xùn)練
分別訓(xùn)練即可
其中,偵測(cè)網(wǎng)絡(luò)的損失計(jì)算,,如下:
偵測(cè)網(wǎng)絡(luò)輸出的反射變換矩陣,,但對(duì)車牌位置的標(biāo)簽給的是四個(gè)角點(diǎn)的位置,所以需要響應(yīng)轉(zhuǎn)換后,,做損失,。其中,該cell是否有目標(biāo),,使用CrossEntropyLoss,,而對(duì)車牌位置損失,采用的則是L1Loss,。
四,、推理
1、偵測(cè)網(wǎng)絡(luò)的推理
按照一般偵測(cè)網(wǎng)絡(luò),,推理即可,。只是,,多了一步將反射變換矩陣轉(zhuǎn)換為邊框位置的計(jì)算,。
另外,在YOLO偵測(cè)到得測(cè)量圖片傳入該級(jí)進(jìn)行車牌檢測(cè)的時(shí)候,,會(huì)做一步操作,。代碼見下,將車輛檢測(cè)框的圖片扣出,,然后resize到長(zhǎng)寬均為16的整數(shù)倍,。
2、序列檢測(cè)網(wǎng)絡(luò)的推理
對(duì)網(wǎng)絡(luò)輸出的序列,,進(jìn)行去重操作即可,,如間隔標(biāo)識(shí)符為“*”時(shí):
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<