識別在文檔中使用的語言并且基于識別的語言執(zhí)行ocr識別的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般涉及確定文檔中使用的是什么語言,并且更具體地涉及一種用于識別在文檔中使用的語言,并執(zhí)行基于識別的語言執(zhí)行字符識別的方法和裝置。
【背景技術(shù)】
[0002]在大多數(shù)字符識別應(yīng)用中,對每一個(gè)書寫字符進(jìn)行分析,并試圖識別該字符。如已經(jīng)使用字符識別的人所知,這個(gè)過程可能需要一定時(shí)間。例如,在常用的字符識別軟件中,對一個(gè)15頁的文檔執(zhí)行字符識別可能花費(fèi)一分鐘。如果可以減少這個(gè)時(shí)間段,將是有益的。因此,需要有一種比現(xiàn)有技術(shù)更快的執(zhí)行字符識別的方法和裝置。
【附圖說明】
[0003]在附圖的各個(gè)獨(dú)立示圖中,相同的附圖標(biāo)記是指相同或功能相似的要素,附圖與在下面的具體實(shí)施例一起,被并入本說明書并且形成本說明書的一部分,以及用來進(jìn)一步說明各種實(shí)施例,并且解釋根據(jù)本發(fā)明的各種原理和優(yōu)勢。
[0004]圖1示出字符中的每個(gè)筆畫被分離的字符。
[0005]圖2示出具有彼此交叉的筆畫的字符。
[0006]圖3示出特定字符的筆畫的確定。
[0007]圖4是示出光學(xué)字符識別(OCR)設(shè)備的框圖。
[0008]圖5是示出圖4的OCR設(shè)備的操作的流程圖。
[0009]圖6示出薄線以幫助識別字符。
[0010]本領(lǐng)域技術(shù)人員將理解的是,附圖中的要素為了簡明和清晰起見而被圖示,并且不一定按比例繪制。例如,附圖中的部分要素的尺寸可以相對于其它要素被夸大,以幫助提高對本發(fā)明的實(shí)施例的理解。而且,為了促進(jìn)對于本發(fā)明的這些各種實(shí)施例的不太混亂的查看,通常不描繪在商業(yè)上可行的實(shí)施例中實(shí)用或必要的常見而公知的要素。應(yīng)當(dāng)進(jìn)一步認(rèn)識到,可以以特定的發(fā)生順序來描述或描繪特定的動(dòng)作和/或步驟,而本領(lǐng)域中的技術(shù)人員將理解,實(shí)際上不需要這樣的關(guān)于順序的指定。
【具體實(shí)施方式】
[0011]為了緩解上述需要,在本文中提供一種用于識別在文檔中使用的語言的方法和裝置。一旦識別,可用基于識別的語言進(jìn)行字符識別。在一個(gè)實(shí)施例中,字符識別引擎被用于字符識別,其中,字符識別引擎是為識別的語言特制的。
[0012]更具體地,當(dāng)以多種語言中的一種撰寫文檔時(shí),可以識別打印的文檔(或字符)的主要語言,并且在字符識別中使用相應(yīng)的識別引擎。如所討論的,字符識別引擎是為識別的語言特制的。在此方法中,根據(jù)識別的語言,分別使用不同的識別引擎。為了識別字符或文檔中使用的語言,確定在書寫字符時(shí)使用的筆畫數(shù)。然后,筆畫數(shù)確定當(dāng)執(zhí)行字符識別時(shí)使用何種識別引擎。
[0013]在不同的語言之間,每個(gè)字符的平均筆畫數(shù)差異非常大。作為示例,對于漢語,每個(gè)字符的平均筆畫數(shù)約為15。對于英語,每個(gè)字符的平均筆畫數(shù)約為2。在本發(fā)明的一個(gè)實(shí)施例中,確定字符中使用的筆畫數(shù),并且該信息用于確定在文檔中使用的主要語言。一旦語言已經(jīng)被識別,可以使用特制的識別引擎來識別文檔中的字符。
[0014]上述用于識別語言和執(zhí)行字符識別的技術(shù)可以大大減少字符識別所需的時(shí)間量。更具體地,因?yàn)樽址械墓P畫數(shù)可以被快速識別,所以文檔中使用的語言可以被快速識別。這允許在識別特定字符時(shí)使用特定識別引擎(針對所識別的語言)。例如,第一識別引擎可能僅能夠識別來自第一語言(例如,英語)的字符,而第二識別引擎可能僅能夠識別來自第二語言(例如,漢語)的字符。由于對于一小組字符只利用單個(gè)識別引擎,因此可以顯著加快字符識別處理。換句話說,因?yàn)椴皇褂猛瑫r(shí)包含英語和漢語字符的較大識別引擎,可以加快字符識別處理。
_5] 估計(jì)字符中的筆畫數(shù):
[0016]筆畫被定義為從筆按壓(端點(diǎn))開始且在筆抬起(也是端點(diǎn))結(jié)束的曲線/直線。一個(gè)字符包括幾個(gè)筆畫。筆畫可以與其它筆畫交叉。所有字符可被分為兩大類:
[0017]A.字符的各筆畫被分離的字符(圖1)。在這種情況下,很容易獲得字符的筆畫數(shù)。具體而言,可以容易地計(jì)算一個(gè)字符的端點(diǎn)數(shù)。在圖1中,端點(diǎn)數(shù)是筆畫數(shù)的2倍。因此,如果我們知道端點(diǎn)數(shù),就可以得到一個(gè)字符的筆畫數(shù)。
[0018]B.具有相互交叉筆畫的字符。大多數(shù)漢語字符包括彼此相交的筆畫(圖2)。當(dāng)這種情況時(shí),更難得到一個(gè)字符中的端點(diǎn)數(shù)。我們觀察到,交叉的筆畫總是具有交叉點(diǎn),位于一個(gè)筆畫的中心或者的端部。我們可以將交叉點(diǎn)分成3種情況。對于每一種情況,我們給出規(guī)則以得到有效的端點(diǎn)數(shù):
[0019]對于201所描繪的情況,在交叉點(diǎn)周圍有四個(gè)分支。在交叉點(diǎn)處,假定沒有端點(diǎn)。
[0020]對203中所描繪的情況,在交叉點(diǎn)處有三個(gè)分支。在交叉點(diǎn)處,假定存在一個(gè)端點(diǎn)。
[0021]對205中所描繪的情況,其中兩條線相交,如果前一像素與后一像素之間的角度大于閾值(例如,60度),則它被定義為交叉點(diǎn)。在交叉點(diǎn)處,假定存在兩個(gè)端點(diǎn)。
[0022]為了估計(jì)字符中的總筆畫數(shù),我們檢查字符的所有端點(diǎn)和交叉點(diǎn)。端點(diǎn)是僅具有一個(gè)鄰居的像素,并且交叉點(diǎn)是上述三種情況。每個(gè)實(shí)際端點(diǎn)為總端點(diǎn)數(shù)貢獻(xiàn)一個(gè),而對于交叉點(diǎn),我們可以基于圖2所示的上述三種情況積累數(shù)量。例如,在圖3,總端點(diǎn)數(shù)是10(以計(jì)算的筆畫數(shù)加圈和編號),所以筆畫數(shù)量是5。(請注意,我們計(jì)算的端點(diǎn)數(shù)是實(shí)際筆畫數(shù)的2倍)。
[0023]在獲得字符的筆畫數(shù)后,此值可用于確定該字符的語言。例如,如果筆畫數(shù)高于第一閾值,則語言可以被識別為第一語言(例如,漢語、日語、韓語、…等)。然而,如果筆畫數(shù)低于第一閾值,則語言可以被識別為第二語言(例如,英語、西班牙語、...等)。例如,該閾值可以是4。因此,如果在英語和漢語之間確定(在大多數(shù)情況下,不存在筆畫數(shù)大于4的英語字符),則若筆畫數(shù)大于4,我們假設(shè)以漢語撰寫該字符(和在某些情況下,整個(gè)文檔),否則該字符是英語。
[0024]上述技術(shù)可用于基于任意數(shù)量的樣本字符中每個(gè)字符的平均筆畫數(shù)確定文檔是以漢語撰寫還是以英語撰寫。例如,可以采樣15個(gè)字符,并且獲得每個(gè)字符的平均筆畫數(shù)。這可用于確定文檔是以第一語言撰寫或以第二語言撰寫。一旦語言被識別,可以進(jìn)行字符識別。更具體地,使用字符識別引擎進(jìn)行字符識別,其中,字符識別引擎是為識別的語言特制的。為特定語言特制字符引擎提供了具有僅包括來自特定語言字符的字符集的字符引擎。因此,第一字符識別引擎可以用于第一識別語言,而第二字符識別引擎可以用于識別第二語言。第一字符識別引擎將不能夠從第二語言識別字符,而第二字符識別引擎將不能夠從第一語言識別字符。
[0025]圖4是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例的光學(xué)字符識別(OCR)設(shè)備400的框圖。通常,如在此使用,OCR設(shè)備400被“配置”或“適用于”是指使用一個(gè)或多個(gè)組件(例如存儲(chǔ)器元件、網(wǎng)絡(luò)接口和中央處理單元)實(shí)現(xiàn)裝置400,其中,可操作地耦接所述一個(gè)或多個(gè)組件,并且當(dāng)對所述一個(gè)或多個(gè)組件進(jìn)行編程時(shí),對這些系統(tǒng)元件形成實(shí)現(xiàn)它們期望的功能,例如,如通過參照圖5所示的方法示出的裝置。OCR裝置400包括處理器401,其與各種系統(tǒng)組件可通信地耦接,包括存儲(chǔ)字符識別引擎407的存儲(chǔ)器,存儲(chǔ)字符識別程序403的存儲(chǔ)部件,存儲(chǔ)操作系統(tǒng)405的存儲(chǔ)部件,存儲(chǔ)語言識別程序411的存儲(chǔ)部件,存儲(chǔ)文檔409的存儲(chǔ)部件和圖形用戶界面(GUI)413。應(yīng)當(dāng)注意,盡管在圖4中所有存儲(chǔ)部件分別示出,但是本領(lǐng)域的普通技術(shù)人員將認(rèn)識到,可以組合任意數(shù)量的存儲(chǔ)部件403-413。另外,為了便于說明,在圖4中僅示出有限數(shù)量的系統(tǒng)元件,但是OCR裝置400中可以包括附加的此類元件。
[0026]在本發(fā)明的一個(gè)實(shí)施例中,所有存儲(chǔ)部件包括標(biāo)準(zhǔn)的隨機(jī)存取存儲(chǔ)器,而處理器401包括數(shù)字信號處理器(DSP)、通用微處理器,可編程邏輯設(shè)備或者專用集成電路(ASIC),且用于使用語言識別程序411來確定任何存儲(chǔ)文件409所使用的語言或輸入到GUI413時(shí)所使用的語言。一旦處理器401已經(jīng)確定語言,處理器401利用字符識別程序403和適當(dāng)?shù)淖址R別引擎407來執(zhí)行OCR。應(yīng)當(dāng)注意,盡管字符識別程序403、語言識別程序411和引擎407作為單獨(dú)的實(shí)體示出,但是本領(lǐng)域的普通技術(shù)人員將認(rèn)識到,任何數(shù)量的這些元件可以被存儲(chǔ)在單個(gè)存儲(chǔ)部件內(nèi)。
[0027]處理裝置401可以部分以硬件實(shí)現(xiàn),從而可以使用用于執(zhí)行在圖4和圖5描述的功能的軟件或固件邏輯或代碼(例如,字符識別程序403)進(jìn)行編程;和/或處理裝置401可以完全以硬件實(shí)現(xiàn),例如,實(shí)現(xiàn)為狀態(tài)機(jī)或ASIC(專用集成電路)。
[0028]程序403和411與引擎407 —起在操作系統(tǒng)405 (例如:Windows7或Linux)頂部運(yùn)行。當(dāng)操作系統(tǒng)405請求任何程序或引擎啟動(dòng)時(shí),它是由處理器401執(zhí)行。處理裝置401使用語言識別程序411分析文檔或⑶I輸入,并基于筆畫數(shù)確定使用的語言。然后,處理