本發(fā)明涉及圖像自動識別領(lǐng)域,尤其涉及一種對各種憑證進行光學字符識別后對憑證的內(nèi)容進行識別的方法以及實現(xiàn)這種方法的裝置。
背景技術(shù):
人們在日常的消費過程中,往往產(chǎn)生大量的憑證,如乘坐飛機,將會有登機牌或者航程單,乘坐火車或汽車會有火車票或者汽車票,到餐館吃飯可以獲得餐飲發(fā)票等,這些憑證都是財務報銷的依據(jù),因此,如人們在差旅過程中產(chǎn)生這些憑證,在差旅結(jié)束后需要將這些憑證交給財務部門,由財務部門核實并且予以報銷。
由于憑證種類眾多,且每一張憑證均包含大量的數(shù)據(jù),以火車票為例,憑證上包括乘車日期、乘客姓名、車次號、乘車日期與時間、座號、乘客身份證號碼、金額等,報銷時往往需要將這些信息錄入到報銷系統(tǒng)中。如果人工地將這些信息錄入系統(tǒng),工作量將非常巨大。此外,在人數(shù)眾多的企業(yè),差旅報銷的憑證數(shù)量巨大,如每一張憑證均人工錄入,將嚴重影響財務部門的工作量。
為此,人們開發(fā)出基于光學字符識別(OCR,optical character recognition)的憑證圖像識別系統(tǒng),即通過光學字符識別技術(shù)將憑證上的字符識別出來,將識別出來的字符自動填寫到報銷系統(tǒng)相應的欄目上,從而避免人工輸入憑證信息。使用這種系統(tǒng)時,需要通過拍攝裝置將憑證拍照,然后使用報銷系統(tǒng)對拍攝的憑證圖像進行光學字符識別,從而獲取相應的信息。
目前普遍的基于光學字符識別的報銷系統(tǒng)都只能識別出憑證上的文字和符號,而不能分析原始憑證的版面結(jié)構(gòu),也不能理解憑證上的內(nèi)容。在對憑證做光學字符識別后,需要設(shè)計模板對憑證進行版面分析,以理解識別出的字符的具體含義。傳統(tǒng)的做法是設(shè)計一個固定模板對憑證信息進行框選,用戶拍攝憑證時將固定目標對準憑證圖像。然而固定模板“套不準”的情況經(jīng)常發(fā)生,不僅影響識別率,也影響了用戶體驗。此外,固定模板僅適用于結(jié)構(gòu)固定、元素位置相對不變的憑證,而實際應用時即使同類憑證的版面結(jié)構(gòu)也并不是一成不變的,如火車票的版面也經(jīng)常發(fā)生變化。正因如此,現(xiàn)有的憑證圖像識別系統(tǒng)無法高效、準確的識別憑證圖像,影響財務報銷的效率。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的是提供一種能夠?qū)Σ煌愋?、不同版面的憑證圖像進行高效識別的憑證圖像識別方法。
本發(fā)明的另一目的是提供一種能夠高效地對識別不同類型憑證的憑證識別裝置。
為了實現(xiàn)上述的主要目的,本發(fā)明提供的憑證識別方法包括讀取憑證圖像,對所讀取的憑證圖像進行光學字符識別;并且,提取憑證圖像的特征信息,根據(jù)特征信息判斷憑證圖像是否與固定結(jié)構(gòu)的模板匹配,如是,則提取憑證圖像中的特征元素的數(shù)據(jù);如判斷憑證圖像不與任一固定結(jié)構(gòu)的模板匹配,則進一步判斷憑證圖像是否為特定分類的憑證,如是,將憑證圖像與該分類的彈性模板匹配,并識別憑證圖像中的特征元素,提取特征元素的數(shù)據(jù);如判斷憑證圖像不是特定分類的憑證,則將憑證圖像的特征信息遍歷所有模板,并查找到最匹配的模板后識別憑證圖像中的特征元素,提取憑證圖像中的特征元素的數(shù)據(jù)。
由上述方案可見,提取憑證圖像的特征信息后,首先判斷圖像憑證是否與固定結(jié)構(gòu)的模板匹配,如匹配則直接按照固定結(jié)構(gòu)的模板提取特征元素的數(shù)據(jù),如果不是與固定結(jié)構(gòu)的模板匹配,則通過分類器判斷憑證是否為特定分類的憑證,并且通過匹配彈性模板的方式識別出各個特征元素,從而獲取各個特征元素的數(shù)據(jù)。
這樣,在識別憑證圖像時,并不會只能對固定結(jié)構(gòu)的模板進行識別,并且一旦判斷不與固定結(jié)構(gòu)的模板匹配時,也不會直接遍歷所有模板,而是識別出憑證的分類后,通過匹配彈性模板的方式查找出憑證的分類,并且根據(jù)彈性模板分析出憑證上各個特征元素,再提取特征元素的數(shù)據(jù),從而避免花費較長時間遍歷所有模板,憑證圖像識別的時間大大縮短。
一個優(yōu)選的方案是,每一彈性模板包括所屬特定分類中至少一個特征元素。由于彈性模板是特定分類的憑證,因此憑證圖像應該包含有所屬分類的憑證的特征元素,因此識別憑證圖像時,分析出憑證圖像中所屬分類的憑證的特征元素,可以提高憑證圖像的識別效率。
進一步的方案是,特征信息至少包括靜態(tài)文本、特殊符號、分隔符、條碼或二維碼、空白區(qū)域中的一個。
由此可見,通過識別憑證圖像中諸如靜態(tài)文本、特殊符號、分隔符、條碼或二維碼、空白區(qū)域的特征來辨別憑證圖像的分類,可以快速確定憑證的類型,從而快速獲取憑證圖像中的特征元素的數(shù)據(jù)。
更進一步的方案是,判斷憑證圖像是否為特定分類的憑證包括:搜索憑證圖像中的靜態(tài)文本后,搜索憑證圖像中的特征元素的字段,并搜索已查找的特征元素的鄰近字段,根據(jù)靜態(tài)文本、特征元素的字段確定憑證圖像的分類。
由此可見,依據(jù)靜態(tài)文本、確定的特征元素字段、鄰近字段的方式確定憑證圖像的分類,一方面可以確保對憑證圖像識別的準確性,另一方面可以提高憑證圖像識別的效率。
更進一步的方案是,搜索特征元素的字段后,對所搜索的特征元素的字段進行假設(shè)可信度校驗。
可見,在搜索特征元素的字段后,使用假設(shè)樹規(guī)則對搜索的特征元素字段進行假設(shè)可信度的校驗,可以大大提高對憑證圖像識別的準確性。
為了實現(xiàn)上述的另一目的,本發(fā)明還提供的憑證識別裝置包括光學字符識別模塊,讀取憑證圖像,對所讀取的憑證圖像進行光學字符識別;還包括固定結(jié)構(gòu)模板判斷模塊,提取憑證圖像的特征信息,根據(jù)特征信息判斷憑證圖像是否與固定結(jié)構(gòu)的模板匹配,如是,則提取憑證圖像中的特征元素的數(shù)據(jù);還包括分類判斷模塊,如判斷憑證圖像不與任一固定結(jié)構(gòu)的模板匹配,則進一步判斷憑證圖像是否為特定分類的憑證,如是,將憑證圖像與該分類的彈性模板匹配,并識別憑證圖像中的特征元素,提取特征元素的數(shù)據(jù);還包括遍歷模塊,如判斷憑證圖像不是特定分類的憑證,則將憑證圖像的特征信息遍歷所有模板,并查找到最匹配的模板后識別憑證圖像中的特征元素,提取憑證圖像中的特征元素的數(shù)據(jù)。
由上述方案可見,憑證識別裝置獲取憑證圖像后,提取憑證圖像的特征信息,并且判斷圖像憑證是否與固定結(jié)構(gòu)的模板匹配,如匹配則按照固定結(jié)構(gòu)的模板來提取特征元素的數(shù)據(jù),如果不是固定結(jié)構(gòu)的模板匹配,則通過分類器判斷憑證圖像是否為特定分類的憑證圖像,并且通過匹配彈性模板的方式識別出憑證圖像中的各個特征元素,從而獲取各個特征元素的數(shù)據(jù)。
這樣,一旦憑證圖像沒有與任一個固定結(jié)構(gòu)的模板匹配時,無需馬上遍歷所有模板,大大節(jié)省憑證圖像的識別時間,提高憑證圖像的識別效率。
附圖說明
圖1是本發(fā)明憑證圖像識別方法實施例的流程圖。
圖2是應用本發(fā)明憑證圖像識別方法實施例識別的一種憑證的圖示。
圖3是應用本發(fā)明憑證圖像識別方法實施例識別的另一種憑證的圖示。
圖4是本發(fā)明憑證圖像識別方法實施例中判斷憑證圖像分類的流程圖。
圖5是本發(fā)明憑證圖像識別裝置實施例的結(jié)構(gòu)框圖。
以下結(jié)合附圖及實施例對本發(fā)明作進一步說明。
具體實施方式
本發(fā)明的憑證圖像識別方法是對拍照、掃描等方式獲得的憑證的圖像進行識別的方法,并且是基于光學字符識別技術(shù)對憑證的圖像進行識別。本發(fā)明的憑證圖像識別裝置是運行在計算機設(shè)備上并且用于實現(xiàn)上述圖像識別方法的裝置。
執(zhí)行憑證圖像的識別,首先獲取憑證圖像,憑證圖像是計算機可讀的電子圖像,如通過拍照方式獲得的圖像或者通過掃描方式獲得的圖像。獲得憑證圖像后,才能對憑證圖像進行識別。對憑證圖像進行識別的過程如圖1所示。
首先,執(zhí)行步驟S1,讀取憑證圖像,并且對憑證圖像進行預處理。讀取憑證圖像可以是將拍照或者掃描獲得的憑證圖像進行讀取,在讀取憑證圖像的電子信息后,對憑證圖像進行預處理,例如,對獲取的數(shù)據(jù)進行解壓縮,并且調(diào)節(jié)憑證圖像的分辨率、亮度、版面大小、像素的灰度等,為光學字符識別做準備。
接著,執(zhí)行步驟S2,對憑證圖像進行光學字符識別,即OCR識別,并且在執(zhí)行光學字符識別后,提取憑證圖像的特征信息,例如獲取憑證圖像中的靜態(tài)文本、特殊符號、分隔符、條碼或二維碼、空白區(qū)域等。由于不同的憑證圖像的特征信息不完全相同,通過這些特征信息可以判斷憑證圖像具體是什么憑證圖像,因此,提取憑證圖像的特征信息是判斷憑證圖像分類的依據(jù)。
然后,執(zhí)行步驟S3,根據(jù)提取出的特征信息,判斷憑證圖像是否與固定結(jié)構(gòu)的模板相匹配。因此,在財務報銷系統(tǒng)內(nèi)首先存儲有多個固定結(jié)構(gòu)的模板,例如,普通的火車票模板、火車票模板、汽車票模板、餐飲發(fā)票模板、住宿發(fā)票模板等,由于每一種固定結(jié)構(gòu)模板的憑證圖像均具有自己特定的特征信息,因此,通過諸如靜態(tài)文本、特殊符號、分隔符、條碼或二維碼、空白區(qū)域等的特征信息可以分辨出憑證圖像是否與某一固定結(jié)構(gòu)的模板匹配。
如判斷憑證圖像與某一固定結(jié)構(gòu)模板匹配,則執(zhí)行步驟S7,識別出憑證圖像中各個特征元素,并且提取憑證圖像中的特征元素。特征元素是憑證圖像中包含的用于財務報銷的信息,例如金額、時間、姓名、開票方名稱等,由于固定結(jié)構(gòu)的模板上,特征元素往往位于固定的位置上,因此,一旦確定憑證圖像與固定結(jié)構(gòu)的模板匹配,則可以根據(jù)固定結(jié)構(gòu)模板上各個特征元素的位置,提取出特征元素的數(shù)據(jù),如憑證上的金額數(shù)據(jù)、時間數(shù)據(jù)等。提取特征元素的數(shù)據(jù)后,可以將特征元素的數(shù)據(jù)自動錄入到財務報銷系統(tǒng)。
如果步驟S3中,判斷憑證圖像沒有與任一固定結(jié)構(gòu)的模板匹配,則執(zhí)行步驟S4,判斷憑證圖像是否為特定分類的憑證圖像,如是特定分類的憑證,則執(zhí)行步驟S6,將憑證圖像與特定分類的彈性模板相匹配。由于同一種類型的憑證,其版面結(jié)構(gòu)也不是一成不變的,如圖2與圖3所示,兩張火車票的版面并非完全相同,如圖2所示的火車票,時間位于車次的上方,而圖3所示的火車票中,時間位于車次的下方。因此,圖2所示的火車票與圖3所示的火車票中,往往至少有一張無法與固定結(jié)構(gòu)的模板相匹配,也就是通過步驟S3無法識別這種火車票。
然而,如果一旦無法識別憑證圖像,即將憑證圖像遍歷所有模板從而確定憑證圖像的分類,將大大增加憑證圖像的識別時間,不利于提高憑證圖像的識別效率。因此,本發(fā)明設(shè)置憑證分類器,通過彈性模板的方式快速確定沒有與固定結(jié)構(gòu)模板匹配的憑證圖像的分類。下面以火車票為例介紹如何通過分類器確定憑證圖像匹配的彈性模板。
例如,火車票的版面上的特征元素包括靜態(tài)文本(Static Text)、座號(Sit Number)、車號(Train Number)、出發(fā)日期(Departure Date)、金額(Currency Group)、乘客姓名(Passenger Name)、身份證號(Passenger ID Number)、起點(Initial Station)和終點(Terminal Station)等,因此,需要搜索定位每個特征元素,搜索規(guī)則包括串匹配、字典、表達式、位置關(guān)系、串長等等。
參見圖4,判斷憑證圖像是否為特定分類的憑證時,首先執(zhí)行步驟S11,識別憑證圖像上的靜態(tài)文本。由于火車票上的靜態(tài)文本是位置和內(nèi)容均固定不變的字符串,因此首先定位其位置,作為下一步搜索的標志位。例如,火車票的靜態(tài)文本為“限乘當日當次車”,在實際匹配時,可以將經(jīng)常識別錯誤的漢字也納入到模式串。設(shè)A為火車票的光學字符識別文本,P為模式串,則P=“限乘當日當次車|艱乘當日當次車|限乘當曰當次車|艱乘當曰當次車”,串的模式匹配算法如下:
1:n=A.length
2:m=P.length
3:for s=0to n–m
4:if Similarity(A[s+1...s+m],P[1...m])≥T
5:return T.Position
其中Similarity(A[s+1...s+m],P[1...m])=A[s+1...s+m]中匹配的字符數(shù)/m,T為閾值。
在識別出靜態(tài)文本后,執(zhí)行步驟S12,根據(jù)表達式規(guī)則搜索出火車票上的特征元素的字段?;疖嚻鄙现T如座號(Sit Number)、車號(Train Number)、出發(fā)日期(Departure Date)、金額(Currency)的內(nèi)容雖不是一成不變的,但有著固定的格式,因此可以為此定義表達式規(guī)則。例如,用[]表示可能的字符集,{}表示長度,"|"表示“或”,"*"表示任意字符,表達式規(guī)則定義如下:
Sit Number.Regular Expression="[0-9]{1-2}([車])(([0-9]{2}([A-Z]|*){1})|[0-9]{3})[號]";
Train Number.Regular Expression="[A-Z]{1}[0-9]{2-4}([次]|*)";
Departure Date.Regular Expression="[2][0][0-9]{2}[年]([0]|[1])[0-9]{1}[月][0-3]{1}[0-9]{1}[日]";
Currency.Expression="[¥][0-9]{1-4}(([.]|*){0-1})[0-9]{1-2}[元]"。
實際應用時,限制太過嚴格的表達式規(guī)則常常失效,例如,“¥”符號識別失敗導致Currency.Expression無法匹配。因此除了表達式規(guī)則之外,還需要根據(jù)元素之間的相對位置關(guān)系,設(shè)置備用規(guī)則,如步驟S13,根據(jù)相對位置規(guī)則搜索鄰近的特征元素字段。
例如,在步驟S12搜索出一部分特征元素后,可以根據(jù)相對位置關(guān)系進一步搜索并且定位諸如乘客姓名(Passenger Name)、身份證號(Passenger ID Number)、起點(Initial Station)和終點(Terminal Station)等特征元素。優(yōu)選的,使用憑證的物理單位(Document Unit,DU)作為單位坐標,并定義1DU為1/300inch。這樣做的好處在于使得位置規(guī)則不依賴于圖像分辨率,即一組規(guī)則可適用于不同分辨率的票據(jù)圖像。以起點、終點為例,對比圖2的火車票以及圖3的火車票可以看出,雖然在圖2所示的火車票中,起點、終點的字段位于出發(fā)日期的下方,而圖3所示的火車票中,起點、終點的字段位于出發(fā)日期的上方,但起點、終點的字段與車號字段的相對位置是固定不變的,均是位于車號兩邊,因此可以以車號字段為參考元素定位起點、終點的字段。
以起點為例,按上式定義起點與車號的相對位置關(guān)系規(guī)則如下:
if not(Railway Ticket.Train Number.Rect.Is Empty)then{
Left Of:Railway Ticket.Train Number,0*DU;
Right Of:Railway Ticket.Train Number.Left,-900*DU;
Below:Railway Ticket.Train Number.Top,-50*DU;
Above:Railway Ticket.Train Number.Bottom,-50*DU;}
在搜索出鄰近特征元素的字段后,還需要對搜索出的特征元素的字段進行校驗,包括對串長置信度的計算,即執(zhí)行步驟S14,即利用相對位置關(guān)系確定了特征元素的搜索區(qū)域后,根據(jù)串長的先驗知識進一步約束特征元素屬性,以評估搜索串的可信度,并作為下一步假設(shè)評價的基礎(chǔ)。由于串長不一定為一個定值,因此可以用模糊區(qū)間計算其置信度。設(shè)串長為L,定義模糊區(qū)間[f1,f2,f3,f4]上L的置信度如下:
由于對于任一特征元素都有可能形成多個可能的假設(shè),因此需要計算假設(shè)的可信度來評價假設(shè)的質(zhì)量。因此,執(zhí)行步驟14后,還需要執(zhí)行步驟S15,計算假設(shè)的可信度。例如,對于串匹配和表達式規(guī)則,可以用匹配的相似度作為可信度;對于位置關(guān)系規(guī)則,可以用串長的置信度作為評價指標。因此,定義假設(shè)的可信度如下:
其中HR為假設(shè)的可信度,A為待匹配的識別文本,P為模式串或表達式,L為串長,RT為規(guī)則類型。
在為每個元素建立了各自的規(guī)則,則需要建立一套固定的順序,將所有特征元素逐一搜索處理,因此,可以根據(jù)規(guī)則的約束關(guān)系將搜索的優(yōu)先級定義為:串匹配>表達式>相對位置關(guān)系。因此,執(zhí)行步驟16,構(gòu)建假設(shè)樹的搜索層級。例如,以靜態(tài)文本為根節(jié)點,依次向下枚舉出所有假設(shè),并用結(jié)點存儲每個假設(shè)的可信度,由此生成一個樹狀結(jié)構(gòu),稱為假設(shè)樹。注意到每一層的最大可信度只是當前最優(yōu)的假設(shè),并不一定代表全局最優(yōu),因此在假設(shè)樹中選取一條從樹根到葉子的最大路徑作為搜索結(jié)果,即
其中HT為假設(shè)樹,HR為假設(shè)的可信度,i為假設(shè)樹層級,n為樹高。
自此,可以判斷憑證圖像是否為特定分類的憑證,并且將憑證圖像與彈性模板相匹配,即執(zhí)行完畢S6。然后,執(zhí)行步驟S7,根據(jù)識別出的特征元素的字段,提取各個特征元素的數(shù)據(jù),并且自動錄入到報銷系統(tǒng)中。
如步驟S4中,無法識別憑證圖像為任一分類的憑證圖像,則執(zhí)行步驟S5,遍歷所有模板,并且查找出與憑證圖像最匹配的一種憑證,然后執(zhí)行步驟S7,在識別特征元素后提取各個特征元素的數(shù)據(jù)。
參見圖5,憑證圖像識別裝置設(shè)有光學字符識別模塊11、固定結(jié)構(gòu)模板判斷模塊12、分類判斷模塊13、遍歷模塊14以及可信度校驗模塊15。光學字符識別模塊11用于對所讀取的憑證圖像進行光學字符識別,識別出憑證圖像的字符。
固定結(jié)構(gòu)模板判斷模塊12在識別出字符后,判斷憑證圖像是否屬于固定結(jié)構(gòu)的模板,如根據(jù)憑證圖像的特征信息,如靜態(tài)文本、特殊符號、分隔符、條碼或二維碼、空白區(qū)域等,辨別出憑證圖像是否與某一固定結(jié)構(gòu)的模板相匹配,如判斷與某一固定結(jié)構(gòu)的模板相匹配,則提取憑證圖像的特征元素的數(shù)據(jù)。
如判斷憑證圖像不與任一固定結(jié)構(gòu)的模板相匹配,則分類判斷模塊13調(diào)用分類器,判斷憑證圖像是否為特定分類的憑證。因此,本發(fā)明的方案是設(shè)計一個分類器,通過分類器對所獲取的憑證圖像進行分類,例如,根據(jù)憑證圖像的特征信息,判斷憑證圖像的分類,并且將憑證圖像匹配至彈性模板,根據(jù)彈性模板識別出各個特征元素的字段,從而提取出特征元素的數(shù)據(jù)。
通過分類判斷模塊13對憑證圖像進行識別時,可以通過可信度校驗模塊15對分類判斷模塊13初步識別出來的圖像進行可信度校驗,包括進行串長的置信度校驗、計算假設(shè)的可信度等,從而提高憑證圖像識別的準確性。
如無法將憑證圖像確定為某一分類的憑證圖像,則遍歷模塊14將憑證圖像遍歷所有模板,查找出與憑證圖像最接近的模板,并且根據(jù)該模板確定各個特征元素的字段的位置,進而提取出各個特征元素的數(shù)據(jù)。
可見,通過本發(fā)明的方案可以快速識別憑證圖像是否與固定結(jié)構(gòu)的模板相匹配,并且在判斷憑證圖像不與固定結(jié)構(gòu)的模板匹配后,并不是直接遍歷所有模板,而是通過分類器判斷憑證圖像是為某一分類的憑證圖像,并且通過彈性模板來查找出各個特征元素的字段,并且提取出特征元素的數(shù)據(jù),從而大大加快了憑證圖像的識別效率。即使用戶沒有將憑證放置正確導致憑證圖像套不準的情況,仍能夠快速識別憑證圖像,提高憑證圖像識別的準確性。
當然,上述的方案只是本發(fā)明優(yōu)選的實施方案,實際應用是還可以有更多的變化,例如,可以根據(jù)不同類型的憑證確定憑證圖像的特征元素,特征元素可以包括入住酒店名稱、就餐餐館的名稱、發(fā)票抬頭等,這些改變都不影響本發(fā)明的實施,也應該包括在本發(fā)明的保護范圍內(nèi)。