高哲 董文 趙健 畢也
摘 要:基于HALCON/NET開發(fā)了名片字符識別系統(tǒng),通過實時采集名片圖片后預(yù)處理、透視投影校正、字符識別等步驟,實現(xiàn)了名片上電話號碼的自動輸入,減少人工管理大量名片的工作復(fù)雜度。結(jié)果準確率可達99.99%。
關(guān)鍵詞:HALCON/NET;圖像校正;號碼識別
在商務(wù)活動中,名片作為一個重要的身份信息載體,得到了十分廣泛的使用。但與此同時,大量的名片也給人們帶來管理上的麻煩。本文針對這個情況,基于HALCON/NET開發(fā)設(shè)計了名片電話自動識別軟件,大大提高了名片管理的效率,并且號碼錄入精度顯著優(yōu)于人工輸入。
HALCON是德國MVTec公司開發(fā)的一套完善的機器視覺算法包,擁有便利的機器視覺集成開發(fā)環(huán)境和廣泛的機器視覺算子,應(yīng)用范圍涵蓋醫(yī)學、監(jiān)控、遙感探測,乃至工業(yè)自動化等領(lǐng)域。HALCON支持Windows,Linux和Mac OS等系統(tǒng),其函數(shù)庫可以用C,C++,C#,VB等語言訪問,并且提供了大量的圖像獲取設(shè)備接口,包括USB,GigE,1394等,十分便于開發(fā)設(shè)計人員使用。
1 系統(tǒng)設(shè)計
本系統(tǒng)的硬件主要包含兩大部分:PC機和圖像采集設(shè)備。PC機安裝windows操作系統(tǒng),對采集到的名片圖像進行處理與識別,并自動顯示和保存識別結(jié)果;圖像采集設(shè)備與PC機相連,采集名片的圖像。因為在自然光下采集的名片圖像便比較清晰,識別率可達到令人比較滿意的程度,所以本系統(tǒng)未采用額外的照明光源。
2 圖像采集
HALCON中提供了幾乎包含所有的圖像采集設(shè)備接口,并且提供了圖像采集助手,便于連接采集設(shè)備。打開HALCON 的圖像采集助手,便能夠設(shè)置當前的圖像采集設(shè)備,并且能夠設(shè)置設(shè)備的各項參數(shù).
本系統(tǒng)所采用的相機是映美精的DFK-23G445,像素1280*960,GigE接口,最大幀率為30FPS。通過采集助手設(shè)置好了圖像采集設(shè)備的名稱和曝光白平衡等參數(shù)之后,便能夠?qū)С鯤Develop代碼,通過HDevelop打開和預(yù)覽采集到的圖像了。
3 圖像預(yù)處理
名片經(jīng)過圖像采集設(shè)備采集,存儲到電腦中的是數(shù)字圖像信息。在采集的過程中,名片的光潔度,油墨的深淺,環(huán)境光照的亮度等干擾,都會影響最終的成像質(zhì)量。所以,在進行字符識別之前,需要對這些干擾進行預(yù)處理,目的是突出需要被識別的主要字符,盡量減弱干擾。本系統(tǒng)中,圖像的預(yù)處理環(huán)節(jié)主要包含灰度化、圖像去噪和二值化3部分。
3.1 灰度化
常用的相機采集到的圖像是彩色RGB格式的,在處理之前,可以將其轉(zhuǎn)換為灰度圖像,便于后續(xù)處理的進行。由于人眼對于綠色分量比較敏感,所以常用的灰度化公式如式2.1:
3.2 去噪
圖像在采集過程中,不可避免的會包含一定的噪聲干擾。因為本文中并未采用光源,而是直接使用自然光作為光源,所以相機的噪聲干擾更加明顯。在進行進一步處理之前,圖像去噪是必須的環(huán)節(jié)。
本文所采用的去噪方法是中值濾波法,中值濾波法是一種常見的濾波技術(shù),該方法的思路是把目標點周圍一定大小的區(qū)域內(nèi)的像素點的值進行排序,并且把排序在中位的值作為該點濾波后的值。中值濾波能夠很大程度上去除噪聲的干擾,并且能夠較好的保持圖像的清晰程度。
3.3 二值化
二值化是把灰度圖像轉(zhuǎn)換為二值圖像的過程,目的是把感興趣區(qū)域從整個圖像中分離開來。本文采用大津閾值法進行二值化分割。大津閾值法又叫做最大類間方差法,它是按照圖像的灰度特征將圖像分為前景和背景兩部分,前景與背景之間的方差越大,說明這兩部分的差別越大,那么分錯的概率也就最小[1]。大津閾值法可以這樣描述:假設(shè)圖像I(x,y)中,被閾值T分割后,前景像素所占比例為w0,平均灰度為u0,背景占比為w1,平均灰度為u1,圖像總平均灰度為u,類間方差為g,那么有
在遍歷所有閾值后,得到最大類間方差的閾值T即是所求的閾值。二值化前后的圖像如下圖
3.4 圖像校正
由于拍攝過程中,名片和相機可能不是剛好的垂直方向,而是存在一定的角度,那么拍出的圖像可能就會存在圖2中所顯示的透視失真情況。投影失真的情況下,號碼角度是傾斜的,并且大小不一致,給識別精度帶來了影響,需要進行圖像的校正。
本系統(tǒng)中圖像校正的流程如下:
(1)在二值化圖像中提取符合名片區(qū)域面積特征的區(qū)域作為目標區(qū)域;
(2)對目標區(qū)域提取凸包;
(3)提取凸包后,對凸包的邊緣進行合并,將角度相近并且彼此相連的凸包邊緣合并;
(4)提取合并后的凸包邊緣起點和終點,這些點就是名片的四個角的位置;
(5)根據(jù)四個角點的坐標和根據(jù)已知名片尺寸所給出的目標點坐標,求取透視變換的校正矩陣;
(6)利用校正矩陣對名片區(qū)域進行校正。
在步驟1中,我們選取了面積大于20000的區(qū)域作為待選區(qū)域,排除掉小面積區(qū)域的干擾;在步驟3中,凸包邊緣的合并條件是角度差別小于10°。透視變換校正前后的效果如圖3所示,可以明顯看到,變換前名片上的字符傾斜,并且有嚴重變形;變換后的名片字符處于水平狀態(tài)并且大小一致,便于后續(xù)的字符識別處理。
4 號碼識別
透視變換校正后,名片圖像變?yōu)樗椒胖玫囊粋€規(guī)則的矩形。此時,用鼠標拖拽出一個矩形來圈出所需要識別的目標區(qū)域,之后對圈出的區(qū)域內(nèi)的號碼進行識別。HALCON中包含了基于SVM和MLP的字符識別模塊,并且已經(jīng)訓練好了常見的字符識別神經(jīng)網(wǎng)絡(luò),能夠?qū)ΤR娮煮w的字符進行高精度和快速的識別[2]。
號碼識別的步驟如下:
(1)對目標矩形區(qū)域進行自動閾值二值化處理;
(2)對二值化圖像求聯(lián)通區(qū)域,并選擇符合字符寬度和高度條件的區(qū)域作為待選區(qū)域;
(3)對待選區(qū)域從左到右進行排序;
(4)按照順序?qū)γ總€區(qū)域進行字符識別,若有字符的識別可信度低于我們設(shè)定的閾值,則會進行報警,提示用戶有字符識別效果不理想,可能是圖像采集不夠清晰,需要重新采集。
字符區(qū)域的分割效果如圖4所示,各個區(qū)域分割清晰,無粘連現(xiàn)象。
5 利用HALCON生成C#代碼
C#作為一種面向?qū)ο蟮?、運行于.NET Framwwork之上的高級程序設(shè)計語言,有著“簡單、現(xiàn)代、通用”的優(yōu)點,十分適合開發(fā)基于Windows系統(tǒng)的桌面程序。而HALCON的集成開發(fā)工具HDevelop可以將代碼快速的導(dǎo)出為C#代碼,所以,基于C#和HALCON開發(fā)的圖像處理軟件有著極為快速的開發(fā)速度和極高的穩(wěn)定性。
經(jīng)過測試,本系統(tǒng)的識別準確率可達到99.99%以上,識別速度在20ms以內(nèi),能夠大大減輕大量名片管理的工作量,并且與人工輸入相比,有著更高的準確率。
6 結(jié)束語
本文基于HALCON/NET開發(fā)設(shè)計了名片電話識別系統(tǒng),在經(jīng)過圖像的采集、校正、識別過程后,準確得到電話號碼、傳真、手機號等,與人工操作相比,大大減輕了名片管理的工作量,并且提高了號碼輸入的精度。實際測試表明,該系統(tǒng)穩(wěn)定性強、運行效率高、檢測精度高。
參考文獻
[1]郭平,張樺,武二永.基于形狀上下文的車牌字符識別[J].杭州電子科技大學學報,2012,(2):32-35.
[2]李彥飛.基于圖像處理的字符識別方法研究[J].當代教育實踐與教學研究,2016,(8):10-13.
(作者單位:北方重工集團有限公司)