廣東南方職業(yè)學院 李美玲
深圳大學信息工程學院 張俊陽
基于計算機視覺的身份證號碼識別算法
廣東南方職業(yè)學院 李美玲
深圳大學信息工程學院 張俊陽
針對圖像采集過程中閃光燈開啟造成的高亮區(qū)域,本文先通過自適應閾值分割算法去除身份證圖像背景區(qū)域,并使用形態(tài)學操作提取并篩選輪廓的方法定位身份證號碼區(qū)域,使用深度學習神經(jīng)網(wǎng)絡對切分得的字符進行識別。算法識別準確率高,文中使用了OpenCV庫及caffe開源深度學習框架驗證算法。
身份證號碼定位;caffe;OpenCV;身份證號碼識別
圖像是智能機器獲取信息的重要來源之一,隨著計算機視覺技術的發(fā)展,計算機視覺技術已經(jīng)在工業(yè)上獲得許多成功應用,例如零件缺陷檢測、汽車自動輔助駕駛等領域。OCR字符識別技術也取得了重大的進展。身份證識別技術為OCR識別技術之一,目前身份證識別主要有基于匹配分類和基于機器學習的方法[1]。而隨著深度學習的發(fā)展,深度學習正在顛覆傳統(tǒng)領域,使用深度學習識別字符圖像具有快速、準確率高等優(yōu)勢。
本文主要針對的是拍攝設備近距離采集的身份證圖像,要求身份證圖像上號碼信息較為清晰,人眼基本可辨別,且圖像上身份證區(qū)域占據(jù)主要部分,無復雜背景干擾,當前圖像采集器材分辨率、微距拍攝等功能已能滿足要求,故在實際應用中是可行的。
圖1 基于計算機視覺的身份證識別算法框圖
圖1為基于計算機視覺的身份證識別算法框圖,文中首先提取原始圖像的R分量作為分析對象,針對拍攝亮度不足時,補光燈造成的圖像亮度不均或存在高光等問題,采用自適應閾值圖像分割算法去除身份證非字符區(qū)域,然后使用形態(tài)學操作使字符粘連的方法提取字符輪廓,根據(jù)輪廓面積及長寬比例提取身份證號碼區(qū)域,最后切分身份證字符并使用已訓練的lenet-5深度學習網(wǎng)絡模型進行識別。
2.1.1 圖像灰度化
身份證樣張上字體為黑色,背景則為純顏色,為使字體與背景具有更大的區(qū)分度,取身份證圖的R通道作為圖像的灰度化處理,為便于后期定位身份證號碼區(qū)域時字符之間相互粘合,結(jié)合身份證圖片長寬比例,依次在3種分辨率下嘗試定位身份證號碼區(qū)域,這3種縮放分辨率分別為:
2.1.2 圖像二值化
本文針對的是近距離拍攝的身份證圖像,身份證整體輪廓占主要部分,由于身份證樣張上字符顏色與背景顏色通常存在明顯的差別,當采集的身份證圖像光照均勻時,采用Otsu全局閾值二值化圖像,二值化效果好;但由于光線不足,拍攝設備開啟補光燈等原因造成高光區(qū)域時,Otsu全局閾值二值化效果不佳,這是由于Otsu算法沒有考慮局部灰度信息的干擾[2]。
對Otsu二值化方法作出改進。
將圖像切分為N×N塊,對每一分塊使用Otsu二值化算法計算得閾值,對其進行排序,排序后的閾值記為,對其中的中位數(shù)做均值濾波,使用濾波后的中位值作為圖像二值化的全局閾值。經(jīng)過實驗將N設為5,濾波器核大小設為9。
圖2 身份證圖像二值化
圖2為身份證圖像二值化處理的效果圖,可看出對于光照均勻或存在高光的圖像,算法都能得到清晰的二值化號碼。
2.1.3 形態(tài)學操作
對二值化圖像作反色操作,并使用核大小為[15,3]的矩形結(jié)構(gòu)元素對其做形態(tài)學閉運算,使號碼字符發(fā)生粘連為一塊區(qū)域,然后使用Opencv庫自帶輪廓檢測方法檢測各區(qū)域輪廓,并依據(jù)身份證號碼輪廓面積及長寬比例篩選各區(qū)域,將篩選剩余的區(qū)域中最長的區(qū)域作為身份證號碼區(qū)域,文中將長寬比例為 r =15,比例篩選范圍設定為面積篩選范圍設定為。
圖3 形態(tài)學閉操作及號碼定位
圖3為形態(tài)學操作及號碼區(qū)域定位的效果圖,由于形態(tài)學的粘連效果受到結(jié)構(gòu)元素大小的影響,故本文固定閉運算結(jié)構(gòu)元素大小,并嘗試在三種分辨率下提取身份證號碼區(qū)域,以正確切分號碼的位數(shù)作為是否定位成功的標志。
先從R分量上依據(jù)定位得的身份證號碼區(qū)域?qū)⑵浞指畛?,對分割得的圖像作如下操作:
(1)使用Otsu二值化算法分割圖像并進行反色,即字體為白色,背景為黑色。
(2)先使用水平投影法確定字符的高度,由于少部分字符之間可能存在粘連,故對垂直投影法做出改進,記身份證號碼區(qū)域圖像的寬度為W,為通過垂直投影法[3]確定的切割位置(包含起始點),若存在 k <18,則存在字符粘連。由于每個字符寬度為,假設粘連在一塊的字符總數(shù)記為c,則使用下式判斷粘連位置及粘連數(shù)。
當滿足公式(1)時,對[hi, hi+1]進行C均等分,可將粘連的字符分開。圖4為正確切分的號碼字符。
圖4 字符切分結(jié)果
lenet-5是Yann LeCun教授針對手寫數(shù)字圖像所開發(fā)的卷積神經(jīng)網(wǎng)絡模型[4],其已經(jīng)成功應用于商業(yè),識別率可達99%以上,由于身份證號碼的字符圖像與手寫圖像具有一定的相似性,且字體結(jié)構(gòu)較為固定,沒有手寫體隨意,故本文采用lenet-5模型對身份證號碼圖像作訓練及分類。圖5為lenet-5的網(wǎng)絡模型。
圖5 lenet-5深度學習網(wǎng)絡
其中,卷積層C1、C3所用卷積核大小均為5×5大小,采樣層S2、C3通常為均值采樣,感受域大小為2×2,其余則為全連接結(jié)構(gòu)。
本文實驗配置為Ubuntu14.04,GTX750Ti的機器,從網(wǎng)上及實際拍攝獲得身份證圖像共576張,分為兩部分,其中的300張用于訓練,276張用于測試。使用本文算法對訓練樣本做字符分割,可正確切分字符的樣本為287,定位及切分準確率為95.66;
本文使用開源的caffe版本lenet-5進行實驗。由于從訓練樣本獲得的字符僅為4895張0~9二值圖像,故通過添加噪聲、小角度傾斜、不同閾值二值化等方法將字符集擴充為8W,通過10W次迭代,訓練準確率為96%左右,在字符識別時,容易錯分的是字符“3”和“8”、“0”和“9”。276張用于測試的圖像可識別得251張,整體識別率為91%左右,具有較高的應用價值。
本文提出了一種基于計算機視覺技術的身份證識別算法,算法對光照均勻圖像和存在高光的圖像均能有效地定位身份證號碼,對垂直投影法作出改進以更適合分割粘連的字符,最后對于除校驗位外的字符圖像,使用lenet-5深度學習模型進行訓練及分類,校驗位可由前17位數(shù)字計算得到。
[1]李開,陳禮安,曹計昌.基于灰度多值化的身份證號碼識別[J].計算機工程與應用,2015(13):191-196.
[2]許向陽,宋恩民,金良海.Otsu準則的閾值性質(zhì)分析[J].電子學報,2009(12):2716-2719.
[3楊曉娟,宋凱.基于投影法的文檔圖像分割算法[J].成都大學學報(自然科學版),2009(02):139-141.
[4]高燦.一種基于CNN手寫字符識別的改進方法[J].黑龍江科技信息,2017(03):164.
李美玲(1988—),女,廣東廉江人,大學本科,主要從事通信工程設計與管理和樓宇智能化工程技術的教學工作。
張俊陽(1991—),男,廣東揭陽人,碩士研究生,主要研究領域:模式識別。