(1)簡(jiǎn)介
論文下載地址:License Plate Detection and Recognition in Unconstrained Scenarios?[pdf]?
github 的項(xiàng)目地址:alpr-unconstrained
工程主頁:alpr-datasets
視頻效果: Demi Lovato Rock in Riio Lisboa 2018
本文選自ECCV2018的論文《License Plate Detection and Recognition in Unconstrained Scenarios? ( 復(fù)雜| 無約束 場(chǎng)景下的車牌檢測(cè)和識(shí)別)》。該論文不進(jìn)給出了一套完整的車配識(shí)別系統(tǒng)( Automatic License Plate Recognition system,ALPR system)的解決方案,而且提供了在無約束(Unconstrained Scenarios)場(chǎng)景下的識(shí)別算法, 很好的解決了實(shí)際生活中的車牌識(shí)別問題。
(2)motivation:
目前很多ALPR系統(tǒng)對(duì)正面拍攝車牌照片識(shí)別效果良好,但是在多變的角度和場(chǎng)景(光線)下車牌往往是傾斜的,導(dǎo)致識(shí)別的效果并不如意。

基于此,這篇文章提出了一種完整的ALPR系統(tǒng),可以在各種場(chǎng)景下具有良好的表現(xiàn)。在這篇文章的貢獻(xiàn)主要有兩個(gè):
1. 介紹了一種新穎的神經(jīng)網(wǎng)絡(luò),能夠檢測(cè)出不同場(chǎng)景環(huán)境下的車牌;并在OCR之前對(duì)變形的進(jìn)行校正。
2. 利用真實(shí)數(shù)據(jù)合成多樣的車牌,用于訓(xùn)練。手動(dòng)標(biāo)注的樣本了少于200個(gè),并且是從頭開始訓(xùn)練網(wǎng)絡(luò)。
(2)實(shí)現(xiàn)方法
ALPR 的主要任務(wù)是 在圖像中找到并識(shí)別車牌(license plates );通常情況下會(huì)分為4個(gè)子任務(wù)序列:
1. 車輛檢測(cè)(vehicle detection) ;?
?2.? 車牌檢測(cè)(? license plate detection);?
3. 字符分割( character segmentation)
4. 字符識(shí)別( character recognition)
而子任務(wù)3和4可以看做OCR;? 所以一共有3個(gè)子任務(wù):vehicle detection, license plate detection, OCR.? 這篇文章也是按照這三個(gè)子任務(wù)的順序進(jìn)行展開的,如下圖所示。文章中的ALPR系統(tǒng)分為: 基于YOLOv3 的車輛識(shí)別 --> 車牌的檢測(cè)和校正--> 車牌的OCR識(shí)別。

車輛的檢測(cè)
考慮車輛的檢測(cè)的需要使用的較少的時(shí)間,于是借用了YUOLOv3的模型與darknet框架進(jìn)行檢測(cè)的; 使用 YOLOv3的主要原因是: 1 . 檢測(cè)速度很快(大約是70 FPS );? 2. 識(shí)別的準(zhǔn)確率較高,在PASCAL VOC數(shù)據(jù)集中的測(cè)試結(jié)果是76.8% mPA.? 在這篇文章中,將YOLOv3直接拿來使用,同時(shí)忽略了除了cars以外的其他類別;
PS :?
Yolov3 相比于Faster RCNN 確實(shí)很快,但是也有致命的缺陷: 不能識(shí)別出特別小的物體。如果在實(shí)際應(yīng)用中需要在一張很大的圖像上識(shí)別很小的車,建議重新訓(xùn)練
另外,YOLOv3 中具有車牌的物體不僅僅是cars, 還有bus和truck;這兩個(gè)類別在程序中確被忽略的。
原文:

對(duì)于檢測(cè)出的正樣本,將會(huì)被resized 之后,送入車牌檢測(cè)模塊。resize的計(jì)算方式如下:
計(jì)算resize 因子:

通過這種縮放計(jì)算以后,包含有車輛的圖片會(huì)被統(tǒng)一成大小為 288*608大小的圖片;
車牌的檢測(cè)和校正
(不知道校正這個(gè)詞用的對(duì)不對(duì),貼出原文:License Plate Detection and Unwarping )
在車牌的檢測(cè)模塊中,作者提出了一種基于CNN 的物體檢測(cè)網(wǎng)絡(luò):?Warped Planar Object Detection Network,WPOD網(wǎng)絡(luò), 該網(wǎng)絡(luò)是從YOLO\ SSD\ STN中獲得靈感,但是并沒有計(jì)算spatial transformations,我想可能是減少時(shí)間復(fù)雜度。
WOPD的檢測(cè)流程如下:
可以看出來,在檢測(cè)出車牌以后,還會(huì)對(duì)傾斜的車牌進(jìn)行校正;現(xiàn)在需要關(guān)注的部分有兩點(diǎn):
1. WPOD是如何設(shè)計(jì)的?
2. 如何進(jìn)行車牌校正的?

好,回答第一個(gè)問題: WPOD的設(shè)計(jì):
網(wǎng)絡(luò)結(jié)構(gòu)如下,可以看出在最后一層的DETECTION上又兩個(gè)并行的網(wǎng)絡(luò),具體看下圖或論文;
另一個(gè)兩點(diǎn)是loss function的計(jì)算方式有所改變。

整個(gè)WPOD net的訓(xùn)練樣本有196張,可以算得上是小樣本了。這193張圖片中,有105張是從Cas數(shù)據(jù)集中篩選的,有40張來自SSIC數(shù)據(jù)集,52張來自AOLP數(shù)據(jù)集。這些選出的車牌圖片包含了歐洲、美國(guó)、巴西和臺(tái)灣的車牌;

車牌的校正過程,文章沒有提,我想開源代碼里面應(yīng)該會(huì)有的;最近剛看完檢測(cè)部分的代碼

OCR
用于文字的切割和識(shí)別的網(wǎng)絡(luò)是基于YOLO進(jìn)行修改的;這部分值得一提的是樣本生成的方法;
PS:? 這里如果使用CRNN的話,效果可能會(huì)更好;尤其是當(dāng)車牌存在語義關(guān)系的時(shí)候,例如:中文車牌就具有語義關(guān)系,車牌的第一位是漢字,第二位是大寫字母, 后幾位是數(shù)字加字母的情況;

結(jié)果

備注:
loss 的計(jì)算方式和車牌的校正方法, 這兩個(gè)應(yīng)該在在閱讀代碼的時(shí)候找到對(duì)應(yīng)的程序片段;
待理解以后,會(huì)寫出對(duì)loss的理解
敬請(qǐng)期待~
by 2018/11/14