車牌識別是基於圖像分割和圖像識別理論,對含有車輛號牌的圖像進行分析處理,從而確定牌照在圖像中的位置,並進一步提取和識別出文本字符。
一個典型的車牌識別處理過程包括:圖像采集、圖像預處理、車牌定位、字符分割、字符識別及結果輸出等處理過程。各個處理過程相輔相成,每個處理過程均須保證其高效和較高的抗干擾能力,只有這樣才能保證識別功能達到滿意的功能品質。
車牌識別系統的實現方式主要分兩種,一種為靜態圖像識別,另一種為動態視頻流識別。靜態圖像識別受限於圖像質量、車牌污損度、車牌傾斜度等因素。動態視頻流識別則需要更快的識別速度,受限於處理器的性能指標,特別是在移動終端實現車牌實時識別需要更多性能優化。
雖然車牌識別包含6大處理過程,但核心算法主要位於車牌定位、字符分割及字符識別這三個模塊中。
車牌定位
車牌定位的主要工作是從靜態圖片或視頻幀中找到車牌位置,並把車牌從圖像中單獨分離出來以供后續處理模塊處理。車牌定位是影響系統性能的重要因素之一。目前車牌定位的方法很多,但總的來說可以分為兩大類:
一、基於圖形圖像學的定位方法。
主要有(1)基於顏色的定位方法,如彩色邊緣算法、顏色距離和相似度算法等;(2)基於紋理的定位方法,如小波紋理、水平梯度差分紋理等;(3)基於邊緣檢測的定位方法;(4)基於數學形態的定位方法。
基於圖形圖像學的定位方法,容易受到外界干擾信息的干擾而造成定位失敗。如基於顏色分析的定位方法中,如果車牌背景顏色與車牌顏色相近,則很難從背景中提取車牌;在基於邊緣檢測的方法中,車牌邊緣的污損也很容易造成定位失敗。外界干擾信息的干擾也會欺騙定位算法,使得定位算法生成過多的非車牌候選區域,增大了系統負荷。
二、基於機器學習的定位方法。
基於機器學習的方法有基於特征工程的定位方法和基於神經網絡的定位方法等。例如我們可以通過opencv提供的基於haar特征的級聯分類器,訓練一個車牌定位系統。但該方法訓練十分費時,分類定位的效率也較低。因此當前在目標定位方面,基於神經網絡的方法是主流方法。在基於神經網絡的定位方法中,主要采用卷積神經網絡學習目標特征。由於卷積神經網絡具有平移不變性,在學習過程中可以輔以候選區域,並對候選區域進行分類。正確分類的候選區域即為目標定位的位置。此類方法有較多實現模型,如RCNN、fast erRCNN、SSD等。
字符分割
字符分割的任務是把多列或多行字符圖像中的每個字符從整個圖像中切割出來成為單個字符圖像。傳統字符分割算法可以歸納為以下兩類類:直接分割法、基於圖像形態學的分割法。直接分割法簡單,基於一些先驗知識,如車牌字符分布情況等,同時輔助一些基本投影算法實現分割;基於形態學的分割方法使用邊緣檢測、膨脹腐蝕等處理來確定字符圖像位置。傳統的字符分割算法同樣對外界干擾敏感,如車牌傾斜度、字符污損粘連等。車牌字符的正確分割對字符的識別是很關鍵的,在分割正確的情況下,才能保證識別的准確率。而隨着神經網絡理論的不斷發展,端到端的圖片分類識別技術也有很大突破,因此很多OCR軟件逐步擺脫傳統字符分割處理,由識別網絡對多字符進行直接識別。
字符識別
字符識別是將包含一個或多個字符的圖片中提取字符編碼的過程。字符識別的典型方法即基於機器學習的圖片分類方法。在圖片分類方法中,一幅圖片只能輸出一個分類,也就是說一幅圖片中只能包含一個字符圖像。這就要求字符分割有很高的准確率。另一種識別方法即端到端的基於循環神經網絡的字符識別方法。該方法將整個車牌圖片輸入網絡,神經網絡將直接輸出所有字符。端到端的方法直接去除了字符分割過程,免去了字符分割錯誤帶來的穩定性損失,但端到端方法同樣對其他干擾如車牌傾斜度比較敏感。
以上我們簡要討論了車牌識別系統三大核心模塊的一些技術要點,后續我們將對一些主流技術做一個詳細討論。