劉春平,李帥杰,陳虎
(四川川大智勝軟件有限股份公司,成都610065)
隨著社會經濟和科技的發展,人們融入到各行業全球化的進程中來。出行的安全和便利需要對信息的快速精確把握。人證核驗,是海關、機場、酒店、火車站、汽車站等必須進行的過程。人證核驗,就是要精確核驗持證人與證件信息是否一致。傳統的人證核驗,需要安排專業的核驗員進行挨個核驗,這樣效率很低,不利于大批量的核驗。例如在中國春運期間的火車站檢票,若是傳統的核驗,將浪費很多時間,嚴重影響春運效率。光學字符識別(Optical Character Recognition,OCR)[1]就是利用OCR技術對掃描、拍照后的證件圖像進行分析、識別,以獲得證件上的文本信息的過程[2]。當然,現有的證件識別,要么只能在單一背景下進行,要么只能識別一種證件。復雜背景下多證件快速識別系統的研究與實現,就是要在復雜背景下,實現多種證件信息的快速精準識別后進行核驗。復雜背景不受天氣、燈光、背景狀態限制。多證件包括:火車票、護照、身份證、港澳臺通行證等。系統識別和核驗的內容包括:機讀碼識別、證件信息識別、人臉檢測與識別、二維碼檢測與識別、自動判別證件類型完成信息識別核驗。系統設計采用的整體思路為“提取+識別”[4],根據多種證件的需求,設計完成。
本文的研究意義如下:
(1)復雜背景下,通過對輸入圖片的處理,能夠找出待識別的區域。
(2)通過算法設計,提高識別的速度和效率。
(3)多種證件識別集成到本系統[3],可擴展。
基于算法設計的需要,硬件讀卡器除了攝像頭,還設計了白燈和紅外燈。硬件部分結構簡單,沒有額外傳感器,所有功能基于算法實現。
1.2.1 判斷證件有無
為了在系統運行過程中減少資源浪費,在沒有證件核驗任務時,暫停所有后續任務,需要判斷是否需要核驗即是否有需要核驗的證件放在讀卡器上。對于這個功能需求,系統在不需要核驗證件時,只開啟低功耗的紅外光,肉眼不可見光,用于獲取讀卡器窗口照片,判斷有無證件放在讀卡器上。
算法描述:
(1)系統啟動后,首先保證讀卡器上沒有證件,期間開啟攝像頭和紅外光,獲取初始化圖片存入image_0。
(2)獲取圖片image_1,開始判斷是否有證件。首先對image_1與image_0作直方圖的相似度判斷,設定閾值A,若相似度大于A,則判斷為有證件,若相似度小于A,則判斷為無證件。
(3)閾值A用來排除由于環境光和讀卡器位置的移動對直方圖的相似度的影響。
(4)若判斷為有證件,系統進入核驗狀態,若無證件,轉到第二步。
1.2.2 判斷證件類型
多證件識別,很重要的一步就是判斷證件類型,然后作相對應的處理,識別與核驗。
(1)判斷有無機讀碼,若有機讀碼,判斷機讀碼的行數。
(2)若兩行判定為護照,若一行,判定為往來港澳臺通行證。
(3)若無機讀碼,找到二維碼,有二維碼判定為火車票,沒有二維碼判定為港澳臺居民往來大陸通行證。
如表1。

表1
1.2.3 預處理算法
在復雜背景下,輸入圖片的預處理很重要,決定了OCR的效果。對此,做了很多圖像處理的研究和設計。
(1)為了找到證件的位置,更好地將圖輸入圖片的文字區域、人臉、二維碼區域等分離出來,系統做了第一次預處理,如下列出預處理的算法。
①通道分離:降低信息量,便于加快識別速率。
②濾波:過濾掉輸入圖片的噪聲。
③二值化:由于彩色圖像所含信息量過于巨大,在對圖像中印刷體字符進行識別處理前,需要對圖像進行二值化處理,使圖像只包含黑色的前景信息和白色的背景信息,提升識別處理的效率和精確度。
本系統的算法流程圖如圖1。OCR多證件讀取基本算法解讀:
(1)利用紅外攝像頭獲取讀卡器窗口照片,判斷有無證件放到讀卡器上,若有證件轉到(2),若無轉到(11)。
(2)送入預處理程序,灰度化,形態學變化[6],找到機讀碼輪廓。
(3)將證件位置擺正,如果有機讀碼位置,裁剪機讀碼位置轉到(4),若無轉到(8)。
(4)送入機讀碼識別函數,得到機讀碼識別結果。
(5)關閉紅外開啟白燈,第二次獲取讀卡器窗口圖片,然后利用第二步的參數對圖像進行擺正。
(6)人臉檢測,獲取人臉。
(7)將機讀碼和人臉信息填入對應結構體。
(8)若無機讀碼,關閉紅外,開啟白燈,對圖片進行
④邊緣檢測:找到證件的邊緣,便于切割。
⑤輪廓提取:準確切割證件。
⑥坐標檢測:找到證件的坐標,作為切割標準。
(2)識別區域預處理,第二次預處理。
①光照補償:提高前景和背景的像素差值,便于前后景的分離。
②Sobel算子:求x方向梯度,找到文本的有效區域。
③二值化:前后景分離。
④膨脹和腐蝕:提高分離效果。
⑤灰度化:減少彩色信息的復雜和干擾。
⑥形態學變換:對于證件的位置和變形引起的變形進行矯正。
⑦圖像校正:便于定位識別。
⑧調整亮度和對比度:便于識別,降低誤識率。
1.2.4 識別核驗
調用Google的開源Tesseract OCR接口識別證件信息。經過識別后根據識別結果進行調整,例如在一般在識別的前兩位是字母,如果識別為數字,則判斷為識別失敗,核驗失敗后重新獲取輸入信息[5]。
1.2.5 誤檢異常處理
誤檢發生時,對目標區域調整亮度和對比度再次檢測,檢測三次,若失敗,放棄檢測,重新獲取輸入圖片獲取目標新的目標圖片。處理,得到二維碼。
(9)將二維碼裁剪,送入解析程序獲得解析結果。
(10)循環(2)。
(11)循環(1)。

圖1 復雜背景下多證件快速識別系統流程
往來港澳臺通行證:
往來港澳臺通行證獲取的原始圖片如圖2。

圖2 往來港澳臺通行證獲取的原始圖片
往來港澳臺通行證識別結果如圖3所示。

圖3 往來港澳臺通行證獲取的原始圖片
護照:
護照處理的原始圖片如圖4。

圖4 護照原始圖片
護照的識別結果如圖5。

圖5 護照識別結果圖
火車票:
火車票獲取的原始圖如圖6。

圖6 火車票的原始圖片
火車票的識別結果如圖7。

圖7 火車票的識別結果圖
港澳臺居民往來大陸通行證:
港澳臺居民往來大陸通行證的原始圖片如圖8。
本系統實現了復雜背景下多證件快速識別,利用圖形圖像和OCR技術,在簡單的硬件條件下實現復雜系統的實現。可以識別4種常用證件,集成了多種證件識別的算法,應用廣泛,效果突出。可應用于海關、機場、車站等多種場合,魯棒性強,性能很好,還具備很好的擴展性。當然,系統還是有一些不足,需要后續工作的優化調試。

圖8 港澳居民來往大陸內地通行證
港澳居民來往大陸內地通行證識別結果如圖9。

圖9 港澳居民來往大陸內地通行證識別結果圖