本發(fā)明總體涉及文本提取,且更具體地涉及用于從成像文件提取文本的方法和設(shè)備。
背景技術(shù):
存在許多不同的環(huán)境和理由,針對(duì)這些環(huán)境和理由,個(gè)人、商家和/或其它實(shí)體可能期望將文件(或其它項(xiàng)目)中的文本的圖像轉(zhuǎn)換為機(jī)器編碼的文本。例如,成像文本到機(jī)器編碼的文本的轉(zhuǎn)換能夠使該文本被電子編輯、被搜索、被組織和/或被存儲(chǔ)在數(shù)據(jù)庫(kù)中等。成像文本的識(shí)別和編碼在本文中被稱為文本提取。
附圖說(shuō)明
圖1為根據(jù)本發(fā)明的教導(dǎo)所實(shí)現(xiàn)的包括示例性數(shù)據(jù)處理設(shè)施的示例性環(huán)境的示意圖。
圖2為圖1的示例性數(shù)據(jù)處理設(shè)施的示例性實(shí)現(xiàn)的框圖。
圖3至圖5示出根據(jù)本文中所公開(kāi)的教導(dǎo)的字符的兩個(gè)示例性子圖像的比較。
圖6示出與實(shí)際接收物分離的字符的示例性子圖像。
圖7示出數(shù)字“4”被誤識(shí)別為數(shù)字“1”的示例性子圖像。
圖8至圖13為表示可被執(zhí)行以實(shí)現(xiàn)圖1和/或圖2的示例性數(shù)據(jù)處理設(shè)施的示例性機(jī)器可讀指令的流程圖。
圖14為構(gòu)造成執(zhí)行圖8至圖13的示例性機(jī)器可讀指令以實(shí)現(xiàn)圖1和/或圖2的示例性數(shù)據(jù)處理設(shè)施的示例性處理器平臺(tái)的框圖。
具體實(shí)施方式
手動(dòng)文本提取包含人檢查文件(或該文件的紙印本)的圖像以及手動(dòng)地鍵入文本。手動(dòng)提取具有高的準(zhǔn)確度但可以為成本昂貴的且費(fèi)時(shí)的。光學(xué)字符識(shí)別(ocr)為使用計(jì)算機(jī)自動(dòng)地檢測(cè)、識(shí)別和編碼基于圖像的文本文件的技術(shù)。盡管使用ocr提取文本通常比手動(dòng)提取更快速且更便宜,但是ocr不太準(zhǔn)確且更容易出錯(cuò)。此外,當(dāng)待提取的原始文本被不良打印或原始文本的圖像的質(zhì)量很低時(shí),ocr技術(shù)的準(zhǔn)確度變小。例如,盡管ocr引擎可以能夠識(shí)別使用具有相對(duì)較高準(zhǔn)確度級(jí)別的臺(tái)式掃描器成像的雜志文章的清晰打印的文本,但是同一ocr引擎可能在識(shí)別在使用低質(zhì)量的銷售點(diǎn)打印機(jī)打印的且使用手持式照相機(jī)在照明不足情況下成像的接收物上的文本時(shí)是非常不準(zhǔn)確的,尤其是如果該接收物已被弄皺且未放平。
因此,在期望相對(duì)較高準(zhǔn)確度級(jí)別的一些示例中,ocr本身是不足的??梢栽趫?zhí)行ocr之后執(zhí)行手動(dòng)檢查以校正錯(cuò)誤。然而,在許多這類實(shí)例中,手動(dòng)檢查可能恰恰和直接的手動(dòng)提取一樣高成本和/或耗時(shí),和/或益處可能是微小的。此外,盡管基于計(jì)算機(jī)的文本提取(例如使用ocr)將很大可能隨著技術(shù)進(jìn)步、隨時(shí)間推移而改善,但是將仍有很大可能存在至少一些錯(cuò)誤,這些錯(cuò)誤可能需要手動(dòng)檢查。因此,需要在文本提取期間減少手動(dòng)檢查的量,不管ocr的準(zhǔn)確度如何。
本文中所公開(kāi)的示例通過(guò)利用待識(shí)別的成像文本內(nèi)的常規(guī)個(gè)體字符(例如字母、數(shù)字或符號(hào))之間的視覺(jué)類似度來(lái)提高文本提取的準(zhǔn)確度和/或效率。例如,在文本收集中的小寫字母“h”在視覺(jué)上比例如該文本中的大寫字母“t”(或任何其它字符)更類似于該小寫字母“h”在該文本中的其它實(shí)例。基于這個(gè)事實(shí),文本中的字符可以被分組為視覺(jué)類似字符的群集。更特別地,在一些示例中,將成像文本分段為文本的個(gè)體字符所對(duì)應(yīng)的較小局部子圖像,然后將子圖像相比較且相應(yīng)地分組為群集。例如,視覺(jué)上與字母“h”相關(guān)的一組字符的子圖像將在一個(gè)群集中,而視覺(jué)上與字母“t”相關(guān)的另一組字符的子圖像將在另一個(gè)群集中,等等。盡管一些不同的字符可能潛在地因?yàn)橥庥^的類似(例如,大寫字母“i”、小寫字母“l(fā)”、和數(shù)字“1”)而被分組在一起,但是大多數(shù)群集將包括基本上僅一個(gè)特定字符所對(duì)應(yīng)的子圖像,這是因?yàn)槊總€(gè)字符在外觀上的差別足以區(qū)分于其它字符。
在一些實(shí)例中,在同一字符所對(duì)應(yīng)的任何兩個(gè)子圖像之間可存在細(xì)微差別,這是因?yàn)槔缥谋居∷r(shí)的不完美、文本成像時(shí)的不完美和/或子圖像形成時(shí)的不完美。因此,在一些示例中,基于具有高于特定閾值的視覺(jué)相關(guān)性將子圖像分組在多個(gè)群集中,以允許同一字符所對(duì)應(yīng)的任何兩個(gè)子圖像之間的微小變化。然而,在一些示例中,文本打印或成像時(shí)的不完美可導(dǎo)致同一字符所對(duì)應(yīng)的兩個(gè)子圖像在外觀上的差別足以將其分組為不同的群集。例如,在一個(gè)特定字母“h”中的詞干或升部的上半部分可被不良打印(例如褪色的、不完整的、或完全缺失),另一個(gè)字母“h”可在其彎曲部分或肩部上被不良打印,而第三個(gè)字母“h”可具有貫穿其中的條紋或線(由打印機(jī)的打印頭上的殘留油墨創(chuàng)建)。盡管這些字母中的每一者均對(duì)應(yīng)于同一字符(小寫字母“h”),但是因?yàn)槠浯蛴r(shí)的不完美,所以這些字符中的任何兩者的子圖像之間的視覺(jué)相關(guān)性可以不超過(guò)指定閾值,使得每個(gè)子圖像位于其自身的群集中。因此,在一些示例中,可以具有對(duì)應(yīng)于同一字符的多個(gè)群集。即,盡管每個(gè)群集包含基本上僅針對(duì)于單個(gè)特定字符的子圖像,但是根據(jù)本發(fā)明的教導(dǎo),子圖像的群集的總數(shù)量可以超過(guò)正被分析的成像文件中實(shí)際上不同的字符的總數(shù)量。
根據(jù)文本中所公開(kāi)的教導(dǎo),上文描述的將子圖像分組為群集基于對(duì)子圖像的基于圖像的視覺(jué)比較。因此,盡管群集對(duì)應(yīng)于特定字符,但是針對(duì)該群集的特定字符的識(shí)別可以未被指定(例如還未被機(jī)器編碼)。然而,因?yàn)樽訄D像的每個(gè)群集對(duì)應(yīng)于特定字符,所以識(shí)別表示群集的單個(gè)子圖像中的字符可以用于識(shí)別該群集中的子圖像中的每一者所對(duì)應(yīng)的字符。識(shí)別成對(duì)應(yīng)于特定群集中的子圖像的字符在本文中被稱為用于該群集的指定字符。例如,假設(shè)每個(gè)詞平均有5個(gè)字母,則1000詞的文件將包含約5000個(gè)字符(不包括標(biāo)點(diǎn)符號(hào))。在這類示例中,在5000個(gè)字符之中,可具有小寫字母“h”的數(shù)十個(gè)(如果沒(méi)有數(shù)百個(gè)的話)實(shí)例。如果字母“h”的所有實(shí)例被分組為單個(gè)群集,則從單個(gè)典型的子圖像將字母“h”識(shí)別為用于該群集的指定字符可以被應(yīng)用于該群集中的所有子圖像。當(dāng)然,如上所述,可能的是,字母“h”的一些實(shí)例將在外觀上是充分不同的,使得對(duì)應(yīng)的子圖像將被分組為單獨(dú)的群集。然而,字母“h”所對(duì)應(yīng)的群集的數(shù)量仍很可能遠(yuǎn)小于成像文件中的字母“h”的實(shí)例的總數(shù)量。通過(guò)比較,完全手動(dòng)的文本提取(不使用ocr引擎)將需要人類檢測(cè)者來(lái)識(shí)別字母“h”(以及5000個(gè)字符中的其它每一者加上任何標(biāo)點(diǎn))的所有實(shí)例并測(cè)定其類型。
更通常地,被識(shí)別以編碼成像文件的子圖像的群集的總數(shù)量對(duì)應(yīng)于用在文件中的唯一字符的總數(shù)量以及可基于特定字符的不同實(shí)例的外觀的變化(例如基于所使用的不同字體、字符中的一些字符的打印錯(cuò)誤、和/或由待分析的文件或文本的圖像捕獲引起的錯(cuò)誤)劃分每個(gè)唯一字符而成的不同群集的數(shù)量。例如,采用英語(yǔ)的大多數(shù)文本最多包括94個(gè)唯一字符(在標(biāo)準(zhǔn)鍵盤上可獲得的),其對(duì)應(yīng)于26個(gè)大寫字母、26個(gè)小寫字母、10個(gè)數(shù)字、和32個(gè)符號(hào)。如果每個(gè)字符可以在外觀上不同以引起最多有n種不同方式將其分為不同群集,則來(lái)自任一特定成像文本的潛在不同群集的最大數(shù)量將為n×94。假設(shè)n(特定字符可分成的不同群集的最大數(shù)量)等于10,則用于任一成像文本的群集的總數(shù)量將不超過(guò)940個(gè)群集(10×94)。因此,利用本文中公開(kāi)的群集,上文提及的全部5000個(gè)字符的文件可以被人類檢查者(不使用ocr引擎)編碼,其中該檢查者最多進(jìn)行940次字符識(shí)別,然后貫穿整個(gè)文本傳播這些字符識(shí)別,而非使用傳統(tǒng)的手動(dòng)文本提取方法單獨(dú)地識(shí)別全部5000個(gè)字符以及相關(guān)聯(lián)的標(biāo)點(diǎn)。在一些實(shí)例中,字符識(shí)別的總數(shù)量可以明顯更少,這是因?yàn)樵撐谋静豢赡馨ㄈ康?4個(gè)潛在字符,以及一些字符(例如句號(hào)或逗號(hào))很可能具有其可出現(xiàn)的相對(duì)較少的方式(遠(yuǎn)少于n),從而形成較少的群集。
當(dāng)成像文本包含甚至更多的字符時(shí),在識(shí)別對(duì)應(yīng)字符之前基于類似外觀將子圖像分組為群集的優(yōu)勢(shì)進(jìn)一步變得明顯。例如,如果文件為上文示例中的10倍長(zhǎng)(包括近50000個(gè)字符),則將仍僅存在940個(gè)用于識(shí)別對(duì)應(yīng)群集的子圖像的群集(例如假設(shè)用于任何給定字符的群集的最大數(shù)量為n=10,如上文示例中)。與5000個(gè)字符的文本相關(guān)聯(lián)的群集對(duì)比與50000個(gè)字符的文本相關(guān)聯(lián)的群集之間的差別在于,50000個(gè)字符的文本中的群集將平均包含更多子圖像。從人類檢查者的視點(diǎn)看,沒(méi)有增加提取(編碼)用于較長(zhǎng)文本的字符的時(shí)間或成本,這是因?yàn)楸硎救杭膯蝹€(gè)子圖像的識(shí)別可以被應(yīng)用于該群集中的每個(gè)子圖像,不管群集的大小如何。因此,無(wú)論是需要識(shí)別5000個(gè)字符還是50000個(gè)字符,仍僅存在最多940(假設(shè)n=10)個(gè)待進(jìn)行的字符指定。
本文中公開(kāi)的教導(dǎo)可以被擴(kuò)展到多批文件的文本提取。即,盡管成像文本可對(duì)應(yīng)于單個(gè)獨(dú)立的文件,但是當(dāng)成像文本對(duì)應(yīng)于多個(gè)單獨(dú)的和/或多樣化的文件時(shí),相同的原理適用。例如,假設(shè)100個(gè)文件(每個(gè)均包含50000個(gè)字符)一起被成像且分析。在這類示例中,盡管總共具有5000000個(gè)待編碼的字符,但是將仍僅存在與待識(shí)別以編碼全部的100個(gè)文件的特定字符相關(guān)聯(lián)的約n×94個(gè)不同群集。盡管存在參與分析100個(gè)成像文件以合適地將5000000個(gè)子圖像(對(duì)應(yīng)于5000000個(gè)字符中的每一者)分組為對(duì)應(yīng)群集的一些時(shí)間和/或成本,但是該成本是可忽略不計(jì)的,這是因?yàn)檫@類分析是自動(dòng)的,如本文中所公開(kāi)。
盡管在上文示例中顯著降低了手動(dòng)文本提取的成本,但是當(dāng)實(shí)施ocr技術(shù)來(lái)識(shí)別針對(duì)每個(gè)群集指定的合適字符時(shí),可以進(jìn)一步顯著降低人類檢查者的參與度。顯然,如果ocr方法是完全準(zhǔn)確的,則手動(dòng)檢查將不再是必需的。然而,ocr技術(shù)包括一定的誤差容限。盡管可以使用ocr來(lái)準(zhǔn)確地識(shí)別許多字符,但是通常將存在至少一些無(wú)法被識(shí)別的或以相對(duì)較低置信度識(shí)別的字符。因此,在本文中公開(kāi)的一些示例中,使用ocr引擎對(duì)用于群集的指定字符的識(shí)別的可靠性被分析。在一些這類示例中,如果指定字符的識(shí)別的可靠性相對(duì)較高(例如高于閾值),則自動(dòng)地將指定字符分配給群集中的每個(gè)子圖像而無(wú)手動(dòng)檢查。在另一方面,如果指定字符的識(shí)別的可靠性相對(duì)較低(例如低于閾值),則由ocr引擎識(shí)別的指定字符可以被標(biāo)記以備手動(dòng)檢查和/或確認(rèn)。
除了上文提到的針對(duì)群集的純手動(dòng)檢查的時(shí)間節(jié)省外,如上所述的使用ocr技術(shù)結(jié)合子圖像的聚集可以大幅降低人類檢查者的參與度。例如,假設(shè)ocr引擎80%的時(shí)間可以以足夠的可靠性(例如高于閾值)識(shí)別指定字符。在這類場(chǎng)景中,在940個(gè)潛在群集(將識(shí)別用于這些群集的指定字符)的上文示例中,僅188個(gè)(20%)群集需要被手動(dòng)檢查。相比于完全手動(dòng)文本提取中的5000000次字符識(shí)別,這是實(shí)質(zhì)性改善。盡管可使用傳統(tǒng)的ocr方法來(lái)分析5000000個(gè)字符以減少全手動(dòng)檢查,但是因?yàn)樵诒臼纠?,ocr的準(zhǔn)確率僅為80%,所以仍留下識(shí)別不足夠可靠的1000000(5000000的20%)個(gè)字符,因此需要手動(dòng)檢查。因此,如本文中所公開(kāi),將字符的子圖像分組為具有類似外觀的圖像的群集具有顯著降低手動(dòng)文本提取的成本同時(shí)不管是否使用ocr技術(shù)仍達(dá)到令人滿意的準(zhǔn)確度級(jí)別的潛能。當(dāng)然,ocr的使用協(xié)助進(jìn)一步降低成本和/或人類檢查者的需求。換言之,盡管本文中公開(kāi)的教導(dǎo)不取決于ocr技術(shù)的準(zhǔn)確度或甚至使用來(lái)降低人類檢查者在文本提取期間的參與度,但是任一準(zhǔn)確度的ocr技術(shù)可以用于進(jìn)一步降低人類檢查者的參與度。因此,當(dāng)ocr技術(shù)隨著時(shí)間推移而發(fā)展和改進(jìn)時(shí),可以根據(jù)本文中公開(kāi)的教導(dǎo)立即實(shí)現(xiàn)ocr技術(shù)以進(jìn)一步減少人類檢查者的參與量。
此外,在一些示例中,用于子圖像的群集的指定字符(對(duì)應(yīng)于無(wú)法使用ocr可靠識(shí)別的字符)的手動(dòng)識(shí)別被保存在數(shù)據(jù)庫(kù)中,用于后續(xù)在分析附加文件時(shí)作為參考。即,除了將本文中公開(kāi)的教導(dǎo)應(yīng)用于處于一個(gè)特定時(shí)間的一個(gè)或多個(gè)成像文件(例如單批)之外,還可以使用群集中的指定字符的手動(dòng)識(shí)別來(lái)自動(dòng)地識(shí)別針對(duì)在后續(xù)分析的對(duì)應(yīng)群集中的子圖像指定的字符。換言之,針對(duì)特定子圖像指定的字符的手動(dòng)識(shí)別可以被應(yīng)用于在如將被分析(不論是同時(shí)(例如在單批中)還是在一段時(shí)間內(nèi)(例如多個(gè)連續(xù)批次)被分析)的一樣多的不同文件中的類似子圖像(例如在閾值內(nèi)具有相同外觀)的一樣多的實(shí)例。
本文中公開(kāi)的示例性方法包括利用處理器將文件的圖像分段為對(duì)應(yīng)于該文件中的個(gè)體字符的局部子圖像。該示例性方法還包括利用處理器基于各自的子圖像與基準(zhǔn)子圖像的視覺(jué)相關(guān)性將各自的子圖像分組為群集。基準(zhǔn)子圖像與被分組為群集的各自的子圖像之間的視覺(jué)相關(guān)性超出相關(guān)性閾值。該示例性方法還包括利用處理器基于被分組為群集的子圖像識(shí)別用于該群集的指定字符。該示例性方法還包括利用處理器將指定字符與文件的圖像中與被分組為群集的各自的子圖像相關(guān)聯(lián)的位置相關(guān)聯(lián)。
示例性設(shè)備包括借助處理器實(shí)現(xiàn)的圖像分析器,該圖像分析器用于將文件的圖像分段為對(duì)應(yīng)于該文件中的個(gè)體字符的局部子圖像,以及基于各自的子圖像與基準(zhǔn)子圖像的視覺(jué)相關(guān)性將各自的子圖像分組為群集?;鶞?zhǔn)子圖像與被分組為群集的各自的子圖像之間的視覺(jué)相關(guān)性超出相關(guān)性閾值。該示例性設(shè)備還包括借助處理器實(shí)現(xiàn)的字符識(shí)別器,該字符識(shí)別器用于基于被分組為群集的子圖像識(shí)別用于該群集的指定字符。該示例性設(shè)備還包括借助處理器實(shí)現(xiàn)的編碼文本生成器,該編碼文本生成器用于將指定字符與文件的圖像中與被分組為群集的各自的子圖像相關(guān)聯(lián)的位置相關(guān)聯(lián)。
示例性指令在被執(zhí)行時(shí)引起機(jī)器至少將文件的圖像分段為對(duì)應(yīng)于該文件中的個(gè)體字符的局部子圖像。該示例性指令還引起機(jī)器基于各自的子圖像與基準(zhǔn)子圖像的視覺(jué)相關(guān)性將各自的子圖像分組為群集?;鶞?zhǔn)子圖像與被分組為群集的各自的子圖像之間的視覺(jué)相關(guān)性超出相關(guān)性閾值。該示例性指令還引起機(jī)器基于被分組為群集的子圖像識(shí)別用于該群集的指定字符。該示例性指令還引起機(jī)器將指定字符與文件的圖像中與被分組為群集的各自的子圖像相關(guān)聯(lián)的位置相關(guān)聯(lián)。
圖1示出了可實(shí)現(xiàn)本文中公開(kāi)的教導(dǎo)的示例性場(chǎng)景。在圖示示例中,零售店102向顧客104出售商品或服務(wù)。作為購(gòu)買的一部分,零售店102可以向顧客104提供收據(jù)106。在一些示例中,顧客104為市場(chǎng)調(diào)查小組的顧客小組成員。顧客小組成員為在由市場(chǎng)調(diào)查實(shí)體108維持的小組中注冊(cè)的顧客104,該市場(chǎng)調(diào)查實(shí)體108從小組成員收集可束縛于小組成員的人口統(tǒng)計(jì)特征的市場(chǎng)數(shù)據(jù)(例如關(guān)于購(gòu)買的產(chǎn)品、購(gòu)買的量、價(jià)格、購(gòu)買的位置等)。即,市場(chǎng)調(diào)查實(shí)體108登記同意被監(jiān)控和/或以其它方式向市場(chǎng)調(diào)查實(shí)體108提供反饋的人員(例如顧客小組成員104)。在登記期間,市場(chǎng)調(diào)查實(shí)體108從登記的人員(例如顧客小組成員104)接收人口統(tǒng)計(jì)信息,從而可以制定與那些小組成員相關(guān)聯(lián)的市場(chǎng)數(shù)據(jù)和不同的人口統(tǒng)計(jì)市場(chǎng)之間的后續(xù)相關(guān)性。人員可以以任何合適的方式變?yōu)樾〗M成員,諸如例如借助電話面試、通過(guò)完成在線調(diào)查等。附加地或可替選地,可以使用任何期望的方法(例如隨機(jī)選擇、統(tǒng)計(jì)選擇、電話征集、因特網(wǎng)廣告、調(diào)查、購(gòu)物中心中的廣告、產(chǎn)品包裝等)聯(lián)系和/或征募人員。
在一些示例中,一旦人員登記作為顧客小組成員,則市場(chǎng)調(diào)查實(shí)體108通過(guò)在數(shù)據(jù)處理設(shè)施110處收集收據(jù)(例如收據(jù)106)的副本來(lái)跟蹤和/或監(jiān)控顧客小組成員的購(gòu)買行為,在該數(shù)據(jù)處理設(shè)施110處處理并分析這些收據(jù)。在一些示例中,請(qǐng)求小組成員104捕獲收據(jù)106的圖像112并將該圖像轉(zhuǎn)發(fā)到市場(chǎng)調(diào)查實(shí)體108的數(shù)據(jù)處理設(shè)施110??梢允褂萌魏魏线m手段捕獲圖像112并將其轉(zhuǎn)發(fā)到數(shù)據(jù)處理設(shè)施110。例如,小組成員104可以使用手持式設(shè)備(例如平板電腦、智能手機(jī)等)為收據(jù)106拍照,然后將產(chǎn)生的圖像112發(fā)送到數(shù)據(jù)處理設(shè)施110(例如通過(guò)無(wú)線蜂窩網(wǎng)絡(luò))。盡管為收據(jù)拍照對(duì)于顧客小組成員104來(lái)說(shuō)可以是方便的,但是它造成了對(duì)于后續(xù)文本提取的潛在挑戰(zhàn),如由顧客小組成員104捕獲的圖像112可能質(zhì)量很差,這是因?yàn)槔鐩](méi)有合適地相對(duì)于照相機(jī)的視野來(lái)定向收據(jù)(例如,如圖示示例中所示,圖像112中的收據(jù)106相對(duì)于圖像112定位不當(dāng))、可能存在照明不足、照相機(jī)可能焦點(diǎn)沒(méi)對(duì)準(zhǔn)等。在這類情況下,ocr技術(shù)可具有準(zhǔn)確率使得使用人類檢查者來(lái)達(dá)到可接受的準(zhǔn)確度級(jí)別的需求可增長(zhǎng)。在其它示例中,小組成員104可以使用掃描器掃描收據(jù)106,然后將產(chǎn)生的圖像112發(fā)送到數(shù)據(jù)處理設(shè)施110(例如通過(guò)因特網(wǎng))。在其它示例中,可以在線進(jìn)行購(gòu)買,從而電子地生成收據(jù)106(例如借助電子郵件被發(fā)送到小組成員104)。在這類示例中,可以將收據(jù)的電子副本轉(zhuǎn)發(fā)到數(shù)據(jù)處理設(shè)施110。
盡管在圖示示例中僅示出了單個(gè)收據(jù)106,但是小組成員104可以圖像式捕獲任何數(shù)量的收據(jù)并將其轉(zhuǎn)發(fā)到數(shù)據(jù)處理設(shè)施110。在一些示例中,可以具有來(lái)自同一零售店102的多個(gè)收據(jù)。在其它示例中,小組成員104可以已經(jīng)從多個(gè)不同的零售店進(jìn)行購(gòu)買,因此可以向數(shù)據(jù)處理設(shè)施110提供來(lái)自這些零售店的收據(jù)的副本。此外,盡管在圖1中示出僅一個(gè)小組成員104,但是在一些示例中,多個(gè)顧客可以登記作為小組成員并提供從各自的零售店(這些小組成員在此處進(jìn)行購(gòu)買)接收的收據(jù)。因此,在一些示例中,數(shù)據(jù)處理設(shè)施110可以接收從一個(gè)或多個(gè)顧客小組成員提供的源自一個(gè)或多個(gè)零售店的收據(jù)的多個(gè)圖像。
附加地或可替選地,如在圖示示例中所示,零售店102可以直接將顧客收據(jù)的副本或圖像114提供給數(shù)據(jù)處理設(shè)施110,而不管顧客是否為小組成員。即,收據(jù)圖像114可以對(duì)應(yīng)于由小組成員104(和/或其它小組成員)訂立的交易以及由其它非小組成員的顧客訂立的交易。因此,在一些示例中,數(shù)據(jù)處理設(shè)施110可以從特定零售店102接收收據(jù)的大批圖像以備分析和處理。當(dāng)然,在一些實(shí)例中,零售店102可以有權(quán)訪問(wèn)電子形式的收據(jù)信息,從而文本提取變?yōu)榉潜匦璧摹?/p>
在一些示例中,無(wú)論從小組成員(例如收據(jù)圖像112)、從零售店102(例如收據(jù)圖像114)、或從二者接收收據(jù)圖像,數(shù)據(jù)處理設(shè)施110都以相同的方式分析收據(jù),該方式基于:將對(duì)應(yīng)于收據(jù)圖像112、114中的個(gè)體字符的子圖像分組為群集,識(shí)別用于每個(gè)群集的指定字符,以及將該指定字符應(yīng)用于對(duì)應(yīng)群集中的所有子圖像。盡管數(shù)據(jù)處理設(shè)施110可以一次處理單個(gè)收據(jù)圖像,但是在一些示例中,在多于一個(gè)收據(jù)的批次中分析多個(gè)收據(jù)圖像以利用規(guī)模效益。例如,盡管一批中的較大數(shù)量的收據(jù)導(dǎo)致任何給定群集中的較大數(shù)量的子圖像,但是由整個(gè)批次產(chǎn)生的群集的總數(shù)量很大可能保持基本相同,而不管該批次中的數(shù)據(jù)的數(shù)量如何。因此,對(duì)于該批次待識(shí)別的指定字符的總數(shù)量可以保持基本一致,而不管該批次的規(guī)模如何。
由于更多收據(jù)被包括在特定批次中用于分析,因此很有可能的是,這些收據(jù)中的個(gè)體收據(jù)將具有來(lái)自有規(guī)律打印的文本的獨(dú)特印刷錯(cuò)誤和/或其它像差(例如隨機(jī)的墨水斑點(diǎn)),這將生成在視覺(jué)上區(qū)別于該批次中的所有其它字符的字符。因此,在一些示例中,群集的總數(shù)量在較大批次中可以略高于在較小批次中。然而,相比于通過(guò)與其它收據(jù)同時(shí)識(shí)別附加收據(jù)(包括在較大批次中)中的所有字符而獲得的效率,源自這些像差的附加群集是相對(duì)次要的。
更重要地,如果從不同類型的打印機(jī)(使用不同字體)打印一批內(nèi)的多個(gè)收據(jù),則相對(duì)較高的可能性是,一種收據(jù)(例如來(lái)自具有第一字體的第一種打印機(jī))中的許多字符將在視覺(jué)上不同于另一種收據(jù)(例如來(lái)自具有第二字體的第二種打印機(jī))的字符。在這類場(chǎng)景中,每種收據(jù)可以生成其自身的一組群集,其不對(duì)應(yīng)于另一種收據(jù)的字符,從而將收據(jù)組合為單個(gè)批次在單獨(dú)分析每種收據(jù)的批次方面不提供任何顯著效益。因此,在一些示例中,基于打印機(jī)和/或在收據(jù)中使用的字體的類型,將不同收據(jù)組織為不同批次。在一些示例中,假設(shè)特定商家很可能在生成其所有的顧客收據(jù)時(shí)使用相同類型的銷售點(diǎn)打印機(jī),則基于產(chǎn)生收據(jù)的商家(例如發(fā)行收據(jù)106的零售店102)分析多批收據(jù)。然而,在其它示例中,數(shù)據(jù)處理設(shè)施110可以分析單批中來(lái)自不同源的各種各樣的收據(jù),而不區(qū)分來(lái)源(例如,當(dāng)小組成員104提供來(lái)自被該小組成員104訪問(wèn)的所有零售店的多個(gè)收據(jù)時(shí))。下文結(jié)合圖2進(jìn)一步詳細(xì)公開(kāi)實(shí)現(xiàn)數(shù)據(jù)處理設(shè)施的示例性方式。盡管在圖1中示出了收據(jù)圖像112、114的文本提取,但是本文中公開(kāi)的教導(dǎo)可以適合地適用于針對(duì)任一種類的數(shù)字成像文本提取(例如編碼)文本。
圖2為圖1的示例性數(shù)據(jù)處理設(shè)施110的示例性實(shí)現(xiàn)的框圖。示例性數(shù)據(jù)處理設(shè)施110包括示例性通信接口202、示例性批次指定器204、示例性圖像分析器206、示例性字符識(shí)別器208、示例性用戶界面210、示例性編碼文本生成器212、和示例性字符識(shí)別數(shù)據(jù)庫(kù)214。
盡管本文中公開(kāi)的教導(dǎo)可以被實(shí)現(xiàn)以提取任一種類的成像文本,但是出于闡述目的,在如上文結(jié)合圖1描述的對(duì)從顧客小組成員和/或零售店接收的收據(jù)執(zhí)行文本提取的背景下描述圖2。因此,在圖2的圖示示例中,數(shù)據(jù)處理設(shè)施110設(shè)置有示例性通信接口202,該示例性通信接口202用于與顧客小組成員104和/或零售店102進(jìn)行通信。在一些示例中,通信接口202從顧客小組成員104和/或零售店102接收收據(jù)的圖像(例如圖像112、114)。另外,在一些示例中,通信接口202可以向小組成員和/或零售店發(fā)送反饋和/或指令,該反饋和/或指令關(guān)于先前收集的收據(jù)(例如給零售店的關(guān)于從提交的收據(jù)圖像114處理的營(yíng)銷數(shù)據(jù)的報(bào)告)和/或待收集的未來(lái)收據(jù)(例如用于捕獲和/或轉(zhuǎn)發(fā)收據(jù)圖像的指令)。
在圖2的圖示示例中,數(shù)據(jù)處理設(shè)施110設(shè)置有示例性批次指定器204,該示例性批次指定器204用于指定其中可放有由通信接口202接收的收據(jù)的合適批次以備批次分析。在一些示例中,來(lái)自零售店102和/或小組成員104的收據(jù)圖像112、114的每次傳輸被指定為個(gè)體批次。在其它示例中,在一段時(shí)間內(nèi)接收的收據(jù)在被分析之前被收集到單一批次中。在其它示例中,批次指定器204識(shí)別收據(jù)圖像112、114所對(duì)應(yīng)的原始來(lái)源(例如發(fā)行每個(gè)收據(jù)的零售店)并將來(lái)自不同來(lái)源的收據(jù)放在不同批次中。在一些示例中,批次指定器204基于來(lái)自提供收據(jù)圖像112、114的零售店102和/或小組成員104的輸入識(shí)別原始來(lái)源。在其它示例中,批次指定器204基于收據(jù)圖像的分析(例如通過(guò)檢測(cè)收據(jù)上的標(biāo)志和/或商標(biāo))識(shí)別原始來(lái)源。
在圖2的圖示示例中,數(shù)據(jù)處理設(shè)施110設(shè)置有示例性圖像分析器206,該示例性圖像分析器206用于識(shí)別或分離待分析的收據(jù)圖像112、114中的每個(gè)字符所對(duì)應(yīng)的局部子圖像。分離成像文件(諸如收據(jù)圖像112、114)內(nèi)的個(gè)體字符的過(guò)程在本文中被稱為分段。存在大量已知的分段技術(shù)。作為一個(gè)示例,圖像分析器206可以分析收據(jù)圖像內(nèi)的每個(gè)像素以確定最受歡迎的灰度級(jí)(假設(shè)該圖像處于灰度模式),這對(duì)應(yīng)于文本的背景。在一些這類示例中,圖像分析器206然后將具有在最受歡迎的灰度級(jí)的指定范圍內(nèi)的值的所有像素設(shè)定為0值(對(duì)應(yīng)于白色),以及將所有其它像素設(shè)定為1值(對(duì)應(yīng)于黑色),因此將圖像變?yōu)槎暮诎讏D像,其中黑像素對(duì)應(yīng)于字符。在一些這類示例中,圖像分析器206使用注入填充算法找出黑白圖像內(nèi)的每個(gè)連接分量。在一些示例中,假設(shè)通過(guò)白像素將個(gè)體字符與相鄰字符分離,則每個(gè)連接分量被視為單獨(dú)字符。圖像分析器206可以計(jì)算用于每個(gè)這類分量的邊界以確定用于由識(shí)別的分量表示的字符的邊界。在分量邊界小于相鄰分量的邊界和/或與相鄰分量的邊界不重合的一些示例中,較小的界定區(qū)域可以被識(shí)別成對(duì)應(yīng)于單個(gè)字符的不同部分(例如小寫字母“i”上的點(diǎn)和條或者由不良打印部分分離的字符的兩個(gè)部分)并將這些不同部分一起分組以形成用于完整字符的邊界。在一些示例中,計(jì)算用于分量(對(duì)應(yīng)于特定字符)的邊界包括確定該分量的尺寸以及該分量在黑白圖像內(nèi)的位置。采用該方式,每個(gè)字符的位置被指定,使得一旦識(shí)別該字符,則可以將指定字符應(yīng)用于收據(jù)圖像內(nèi)的合適位置。然后將針對(duì)每個(gè)分量所計(jì)算的邊界應(yīng)用于原始收據(jù)圖像112、114(相同尺寸和在相同位置)以分離每個(gè)收據(jù)圖像內(nèi)的每個(gè)字符的子圖像。當(dāng)然,除了上文描述的示例外或代替上文描述的示例,圖像分析器206可以使用任何其它合適的分段技術(shù)來(lái)分離收據(jù)圖像112、114中的每個(gè)字符所對(duì)應(yīng)的子圖像。
除了將收據(jù)圖像112、114分段為分離的子圖像外,在一些示例中,圖像分析器206基于子圖像的視覺(jué)比較的分析將子圖像分組為群集。在一些示例中,當(dāng)兩個(gè)子圖像之間的視覺(jué)相關(guān)性超出閾值時(shí),圖像分析器206將兩個(gè)不同的子圖像分組為公共群集。在一些示例中,圖像分析器206通過(guò)將多個(gè)子圖像中的第一子圖像視為基準(zhǔn)子圖像以及將第二子圖像與第一子圖像相比較來(lái)計(jì)算兩個(gè)子圖像之間的視覺(jué)相關(guān)性。結(jié)合圖3至圖5描述計(jì)算兩個(gè)子圖像之間的視覺(jué)相關(guān)性的示例性過(guò)程。
在圖3的圖示示例中,第一子圖像302(對(duì)應(yīng)于數(shù)字“4”)為基準(zhǔn)子圖像,并將其與第二子圖像304(也對(duì)應(yīng)于數(shù)字4)相比較。出于闡述目的,僅用輪廓表示子圖像302、子圖像304中的字符。然而,大多數(shù)字符在打印時(shí)通常被填滿。在圖6中示出了來(lái)自實(shí)際收據(jù)的實(shí)際字符的示例性子圖像。在圖3的圖示示例中,基準(zhǔn)子圖像302中的數(shù)字“4”被直立定向,如由矩形邊界306所指示,但底部拐角308缺失。在一些示例中,缺失的拐角308可能是由于數(shù)字“4”的該部分的不良打印而造成的。相比之下,第二圖像304中的數(shù)字“4”被全部打印但在外觀上是傾斜的,如由邊界310的非矩形形狀所指示。在一些示例中,第二子圖像304中的數(shù)字“4”的不規(guī)則形狀可能是由于收據(jù)的圖像捕獲過(guò)程(從該過(guò)程拍攝第二子圖像304)而造成的。例如,可能已經(jīng)相對(duì)于捕獲收據(jù)的圖像的照相機(jī)的視野成一定角度來(lái)定位該收據(jù),和/或當(dāng)拍攝圖像時(shí),收據(jù)可能已經(jīng)被折疊、被弄皺和/或被起皺,導(dǎo)致某些字符的失真。
在一些示例中,為了比較圖3中示出的兩個(gè)子圖像,圖像分析器206首先將第二子圖像304變形或變換為如圖4所示的變換的子圖像402。在一些示例中,變換的子圖像402具有通常對(duì)應(yīng)于第一子圖像302(即,將與第二子圖像相比較的基準(zhǔn)子圖像)的形狀或空間取向。由于子圖像中的字符(數(shù)字“4”)還未被識(shí)別,因此在一些示例中,變換基于子圖像302的邊界306、子圖像304的邊界310的分析,而非每個(gè)子圖像內(nèi)的任何具體內(nèi)容。
一旦已經(jīng)將第二子圖像302變換為變換的子圖像402,則示例性圖像分析器206在變換的子圖像402周圍添加指定數(shù)量的像素的邊界404。邊界404提供一些內(nèi)邊距或余地以促進(jìn)變換的子圖像402與基準(zhǔn)圖像302的比較,這是由于每個(gè)子圖像302、402中的字符可能處于相對(duì)于其各自邊界306、310略微不同的位置。在一些示例中,圖像分析器206計(jì)算表示基準(zhǔn)子圖像302和變換圖像402之間在基準(zhǔn)子圖像302相對(duì)于由邊界404限定的區(qū)域內(nèi)的變換的子圖像402的多個(gè)位置中的每個(gè)位置處的類似度的相關(guān)值。例如,如圖4所示,在第一比較408中,基準(zhǔn)子圖像302(用虛線表示)置于邊界404的左上角中,而在第二比較410中,基準(zhǔn)子圖像302置于邊界404的右下角中。
在一些示例中,圖像分析器206基于圖像的逐像素比較計(jì)算用于子圖像302、子圖像402的每個(gè)相對(duì)位置的相關(guān)值。在一些示例中,相關(guān)值在0和1之間,其中1指示子圖像完全相關(guān)(即,子圖像是相同的且恰好對(duì)齊)。在圖示示例中,在由邊界404限定的界線內(nèi)的每個(gè)相對(duì)位置處(例如每次使圖像相對(duì)于彼此偏移一個(gè)或多個(gè)像素),比較子圖像302、子圖像402。在一些示例中,比較在每個(gè)相對(duì)位置處計(jì)算的相關(guān)值以及選擇最高相關(guān)值作為表示第一子圖像302(即基準(zhǔn)子圖像)和第二子圖像304(從其生成變換的子圖像402)之間的視覺(jué)相關(guān)性的值。從圖示示例可知,在第一比較408中,基準(zhǔn)子圖像302中的數(shù)字“4”高于變換的子圖像402中的數(shù)字“4”、或在變換的子圖像402中的數(shù)字“4”左邊,而在第二比較410中,基準(zhǔn)子圖像302中的數(shù)字“4”低于變換的子圖像402中的數(shù)字“4”、或在變換的子圖像402中的數(shù)字“4”右邊。因此,用于第一比較408、第二比較410中的每一者的相關(guān)值將小于在基準(zhǔn)子圖像302中的數(shù)字“4”與變換的子圖像402中的數(shù)字“4”更對(duì)齊時(shí)(例如兩個(gè)圖示極端之間的某處)所對(duì)應(yīng)的相關(guān)值。
邊界404設(shè)置在變換的子圖像402周圍以確?;鶞?zhǔn)子圖像302和變換的子圖像402的不同相對(duì)位置圍繞兩個(gè)圖像之間的最高可能相關(guān)值所對(duì)應(yīng)的最大對(duì)齊的位置。例如,如圖5所示,在不具有邊界404的情況下,盡管基準(zhǔn)子圖像302位于變換的子圖像402的左上角,但是基準(zhǔn)子圖像302中的數(shù)字“4”可以從不位于如變換的子圖像402中的數(shù)字“4”那樣高或那樣遠(yuǎn)離左邊。因此,在不具有邊界404的情況下,兩個(gè)子圖像302、402之間的最大對(duì)齊的位置不會(huì)被比較,以及比在每個(gè)圖像中的數(shù)字“4”被基本對(duì)齊時(shí)更低的相關(guān)值會(huì)被分配為用于第一子圖像302和第二子圖像304之間的視覺(jué)相關(guān)性的值。
如上所述。在一些示例中,圖像分析器206基于兩個(gè)子圖像之間的視覺(jué)相關(guān)性(基于如上所述計(jì)算的最大相關(guān)值所確定)確定兩個(gè)子圖像是否足夠相關(guān)而屬于同一群集。例如,當(dāng)兩個(gè)子圖像之間的視覺(jué)相關(guān)性超出相關(guān)性閾值時(shí),將兩個(gè)子圖像分組為同一群集。相關(guān)性閾值的值可以為任何合適的值(例如0.8、0.85、0.9等)。在圖3至圖5中示出的圖示示例中,第一子圖像302和第二子圖像304之間的視覺(jué)相關(guān)性將小于1,這是因?yàn)樽訄D像之間存在略微差別。然而,可存在被分組在同一群集中的外觀的足夠類似性(例如視覺(jué)相關(guān)性超出相關(guān)性閾值)。通過(guò)比較,如果第二子圖像304對(duì)應(yīng)于數(shù)字“3”,則高度不可能的是兩個(gè)子圖像會(huì)被分組為同一群集,這是因?yàn)樽畲笥?jì)算的相關(guān)值不可能超出相關(guān)性閾值。為了進(jìn)一步說(shuō)明這點(diǎn),在圖6中示出了實(shí)際子圖像601、602、603、604、605、606、607?;陂撝?.85,前五個(gè)子圖像601-605(所有均對(duì)應(yīng)于數(shù)字8)在外觀上足夠類似而被分組為公共群集608。通過(guò)比較,從群集608中排除第六子圖像606(對(duì)應(yīng)于數(shù)字3)和第七子圖像607(對(duì)應(yīng)于字母b),這是因?yàn)榈诹訄D像606和第七子圖像607不與群集608的子圖像601-605足夠相關(guān)。
在一些示例中,為了識(shí)別不同群集,圖像分析器206比較在被分析的成像文件(例如圖1的收據(jù)圖像112、114)內(nèi)分離的每個(gè)子圖像。在一些示例中,為了避免冗余,將每個(gè)附加子圖像與用于每個(gè)群集的已被識(shí)別的僅單個(gè)基準(zhǔn)子圖像相比較。在一些示例中,用于群集的基準(zhǔn)子圖像為針對(duì)群集識(shí)別的第一子圖像。例如,如果以從左到右的次序分析圖6的子圖像601-607。第一子圖像601會(huì)自動(dòng)地被指定為用于第一群集(例如群集608)的基準(zhǔn)子圖像。在一些這類示例中,圖像分析器206然后將第二子圖像602與第一子圖像601相比較以確定第二子圖像屬于與第一子圖像601相同的群集608。在一些示例中,可以將第三子圖像603與第一子圖像601、第二子圖像602二者相比較。然而,在一些示例中,可以將第三子圖像與第一子圖像601(其為用于群集608的指定基準(zhǔn)子圖像)相比較,但不與群集中包括的其它子圖像(諸如第二子圖像602)相比較。同樣的方法可適用于第四子圖像604和第五子圖像605。在圖像分析器206將第六子圖像606與第一子圖像601相比較且確定第六子圖像606不屬于第一群集608之后,圖像分析器206可以創(chuàng)建新群集,其中第六子圖像606作為對(duì)應(yīng)的基準(zhǔn)子圖像。在這類示例中,將第七子圖像607與第一子圖像601(作為用于第一群集608的基準(zhǔn)子圖像)以及第六子圖像606(作為用于第二群集的基準(zhǔn)子圖像)相比較,然后因?yàn)槠渑c前兩個(gè)群集的視覺(jué)差別而被指定為用于新群集的基準(zhǔn)子圖像。
在一些示例中,用于群集的基準(zhǔn)子圖像對(duì)應(yīng)于如已被分組為群集的子圖像的滑動(dòng)平均生成的子圖像的合成物。在這類示例中,在將圖6的前兩個(gè)子圖像601、602分組為第一群集之后,對(duì)這兩個(gè)子圖像601、602進(jìn)行平均以生成與第三子圖像603相比較的合成子圖像。此后,基于第三子圖像603的像素值更新合成子圖像,然后將該合成子圖像與第四子圖像604相比較,以此類推。
除了將收據(jù)圖像112、114分段為分離的子圖像且將子圖像分組為各自群集以外,在一些示例中,在字符已被識(shí)別且被指定用于群集之后,圖像分析器206分析該群集內(nèi)的子圖像。如下文更全面描述的,在一些示例中,在將子圖像分組為群集之后,由子圖像表示的字符被識(shí)別且被指定用于該群集中的所有子圖像。該群集廣泛指定基于被分組在群集中的每個(gè)子圖像對(duì)應(yīng)于同一字符的假設(shè)。然而,存在字符的某些集合,其被視為具有可引起被分組在同一群集中的不同字符的相對(duì)較小的視覺(jué)差別。例如,大寫字母“p”和大寫字母“r”在外觀上類似,除了字母的右下部分,在此“r”包括一條腿而“p”不包括。因此,在一些這類示例,如果用于群集的指定字符被識(shí)別成對(duì)應(yīng)于大寫字母“p”或大寫字母“r”,則圖像分析器206可以分析群集內(nèi)的每個(gè)子圖像,其中特別聚焦于右下部分以確定是否存在一條腿(對(duì)應(yīng)于“r”),從而確認(rèn)指定字符對(duì)于特定子圖像是正確的或者針對(duì)該特定子圖像適當(dāng)?shù)匦U撟址付ā?/p>
在一些實(shí)例中,較小的視覺(jué)差別源自字符本身的性質(zhì)。例如,具有相對(duì)較小視覺(jué)差別的字符的集合包括字母“r”和“p”;數(shù)字“6”和字母“g”;數(shù)字“0”和字母“o”;數(shù)字“1”和字母“l(fā)”等。在其它場(chǎng)景中,較小的視覺(jué)差別可以源自部分打印的字符。例如,當(dāng)部分打印字符之一時(shí)具有相對(duì)較小視覺(jué)差別的字符的集合包括數(shù)字“8”和“3”;字母“f”和“e”;字母“e”和“l(fā)”;數(shù)字“7”和斜杠(/)符號(hào)。另外在一些示例中,一些字符的集合具有由字符之一被損壞而引起的相對(duì)較小視覺(jué)差別。例如,損壞的斜杠(/)符號(hào)可能看上去像字母“x”??蓾撛诘乇环纸M為單個(gè)群集的其它字符集合可以被適當(dāng)?shù)刈R(shí)別和分析以降低用于任何特定子圖像的未校正的字符指定的可能性。在一些示例中,如在上文的“r/p”示例中所描述的,通過(guò)聚焦于子圖像的特定區(qū)域來(lái)分析這類字符所對(duì)應(yīng)的群集。附加地或可替選地,在一些示例中,圖像分析器206可以再次將群集的個(gè)體子圖像相比較以確定各個(gè)子圖像之間的視覺(jué)相關(guān)性,但應(yīng)用比在初始將子圖像分組為群集時(shí)更高的相關(guān)性閾值。
在圖2的圖示示例中,數(shù)據(jù)處理設(shè)施110設(shè)置有示例性字符識(shí)別器208,該示例性字符識(shí)別器208用于識(shí)別用于由圖像分析器206生成的子圖像的每個(gè)群集的指定字符。在一些示例中,針對(duì)整個(gè)群集識(shí)別單個(gè)指定字符,不管該群集中的子圖像的數(shù)量為多少。采用該方式,單個(gè)字符識(shí)別可以被傳播和/或應(yīng)用到許多不同子圖像所對(duì)應(yīng)的字符的許多實(shí)例,從而顯著提高可機(jī)器編碼的成像文件(例如收據(jù)圖像112、114)的效率。
在一些示例中,字符識(shí)別器208基于用于群集的單個(gè)代表性子圖像識(shí)別用于該群集的指定字符。在一些示例中,代表性子圖像對(duì)應(yīng)于基準(zhǔn)子圖像,當(dāng)確定子圖像屬于同一群集時(shí)通過(guò)圖像分析器206將該基準(zhǔn)子圖像與其它子圖像相比較。當(dāng)然,由于群集內(nèi)的所有子圖像在視覺(jué)上類似,因此群集內(nèi)的任何子圖像均可以用作代表性子圖像。在一些示例中,代表性子圖像對(duì)應(yīng)于群集內(nèi)的一些或全部子圖像的合成物。即,在一些示例中,在識(shí)別指定字符之前,字符識(shí)別器208通過(guò)對(duì)包括在合成物中的各個(gè)子圖像內(nèi)的各個(gè)對(duì)應(yīng)像素位置處的像素值求平均來(lái)生成子圖像的合成物。在一些示例中,對(duì)應(yīng)像素位置基于識(shí)別最大相關(guān)值的子圖像的相對(duì)位置所對(duì)應(yīng)的子圖像的對(duì)齊。在一些情況下,采用該方式生成的合成子圖像降低了可出現(xiàn)在群集的任何特定子圖像內(nèi)的噪聲和/或模糊強(qiáng)度,從而合成子圖像更清晰且因此更易于分析和/或識(shí)別在子圖像中表示的字符。在一些示例中,圖像分析器206可以生成合成子圖像,同時(shí)如上所述將子圖像分組為群集。例如,當(dāng)識(shí)別用于群集的每個(gè)附加子圖像時(shí),基于新識(shí)別的子圖像更新合成子圖像。在一些這類示例中,更新的合成子圖像被用作基準(zhǔn)子圖像,用于與被分析用于分組為群集的后續(xù)子圖像相比較。
在一些示例中,字符識(shí)別器208通過(guò)提示人類檢查者借助用戶界面210(例如與任一種類的計(jì)算機(jī)終端216通信)的反饋來(lái)識(shí)別用于群集的指定字符。即,在一些示例中,字符識(shí)別器208在終端216處向人類檢查者顯示用于群集的代表性子圖像,以及提示人類檢查者或確認(rèn)識(shí)別在子圖像中表示的字符。因此,在一些示例中,字符識(shí)別器208識(shí)別指定字符而不使用光學(xué)字符識(shí)別(ocr)引擎。在一些這類示例中,可以基于提供給人類檢查者(作為裁員)多于一個(gè)代表性子圖像來(lái)識(shí)別用于群集的指定字符,以驗(yàn)證該識(shí)別是準(zhǔn)確的和/或該群集受限于單個(gè)字符。即,在一些示例中,除了代表性子圖像外,還可以將群集內(nèi)的多個(gè)子圖像顯示給檢查者。附加地或可替選地,在一些示例中,在例如顯示與子圖像分離的收據(jù)圖像112、114(或其部分)的背景下,可以將群集內(nèi)的子圖像中的一者或多者顯示給檢查者。在一些這類示例中,可以識(shí)別或標(biāo)定(例如突出、用邊界識(shí)別等)子圖像以輔助檢查者識(shí)別這些子圖像在圖像內(nèi)的位置。在一些示例中,終端216可以與數(shù)據(jù)處理設(shè)施110共同定位。在其它示例中,終端216可以遠(yuǎn)離數(shù)據(jù)處理設(shè)施110定位。
盡管字符識(shí)別器208可以識(shí)別指定字符而不使用ocr(例如純粹基于來(lái)自人類檢查器的反饋),但是在一些示例中,字符識(shí)別器208基于代表性子圖像的ocr分析來(lái)識(shí)別指定字符。因此,在一些示例中,字符識(shí)別器208包括和/或?qū)嵤﹐cr引擎。在一些這類示例中,示例性字符識(shí)別器208確定如由ocr引擎確定的指定字符的可靠性。即,字符識(shí)別器208確定由ocr引擎提供的字符指定是否為可靠的。在一些示例中,如果指定字符為可靠的,則自動(dòng)地將指定字符分配給群集中的每個(gè)子圖像而無(wú)需進(jìn)一步分析。然而,在指定字符不可靠(例如指定為可疑的)的一些示例中,字符識(shí)別器208可以尋找來(lái)自人類檢查者的指定確認(rèn)。例如,字符識(shí)別器208可以在終端216處借助用戶界面210將由ocr引擎分析的代表性子圖像連同由ocr引擎識(shí)別的指定字符提供給人類檢查者,以及請(qǐng)求檢查者確認(rèn)指定(例如通過(guò)按下鍵盤上的回車鍵或空格鍵)或校正指定(例如通過(guò)按下代表性子圖像所對(duì)應(yīng)的合適鍵)。在一些示例中,不是尋找確認(rèn),字符識(shí)別器208可以提供代表性子圖像并請(qǐng)求人類檢查者識(shí)別字符(例如通過(guò)按下合適鍵)而不提供如由ocr引擎確定的指定字符。在一些示例中,可以尋找對(duì)于相對(duì)可靠的指定字符(但不足以自動(dòng)被接受)的確認(rèn),同時(shí)可以尋找來(lái)自檢查者的對(duì)于相對(duì)不可靠的字符指定的直接識(shí)別。在一些示例中,可以使用ocr針對(duì)冗余分析用于特定群集的多于一個(gè)代表性子圖像,以驗(yàn)證指定字符的識(shí)別是準(zhǔn)確的以及提高指定字符的可靠性和/或驗(yàn)證該群集受限于單個(gè)字符。
在一些示例中,字符識(shí)別器208基于ocr引擎的一個(gè)或多個(gè)輸出是否超出對(duì)應(yīng)閾值來(lái)確定指定字符是否可靠。例如,ocr引擎可以提供用于識(shí)別的每個(gè)字符的兩個(gè)輸出:(1)字符的指定和(2)針對(duì)該指定的置信度值。在一些示例中,置信度值為0和1之間的值,其中1表示置信度度100%。在一些示例中,當(dāng)置信度值高于置信度閾值時(shí),字符指定是可靠的。置信度閾值可以為任何合適值(例如0.8、0.85、0.9等)。
在一些示例中,可以請(qǐng)求ocr引擎輸出用于識(shí)別的每個(gè)字符的位置信息。在一些示例中,位置信息表示從其識(shí)別字符的圖像內(nèi)的指定字符的邊界的位置。即,由ocr引擎輸出的位置信息可相比于在分段期間確定的子圖像的邊界的位置,除了相對(duì)于指定字符限定邊界。如果指定字符對(duì)應(yīng)于在被分析的子圖像中表示的實(shí)際字符,則由ocr引擎輸出的位置信息應(yīng)當(dāng)接近子圖像的邊界。然而,如果ocr引擎已經(jīng)指定錯(cuò)誤字符,則在由ocr引擎輸出的位置信息和子圖像的邊界之間可以存在一些差別。因此,在一些示例中,字符識(shí)別器208計(jì)算位置誤差值,該位置誤差值表示由ocr引擎輸出的位置信息和子圖像的邊界之間的差別量。
例如,圖7示出了對(duì)應(yīng)于數(shù)字“4”的示例性子圖像702,其具有不良打印的部分704(在圖示示例中被輕微遮蔽)。通過(guò)拐角706、拐角708、拐角710、拐角712(具有對(duì)應(yīng)的位置標(biāo)簽(0,0)、(m,0)、(0,n)和(m,n))識(shí)別子圖像702的邊界。在圖示示例中,ocr引擎錯(cuò)誤地將用于子圖像702的指定字符識(shí)別為數(shù)字1。指定字符具有通過(guò)拐角716、拐角718、拐角720、拐角722(具有對(duì)應(yīng)的位置標(biāo)簽(x0,y0)、(x1,y1)、(x2,y2)和(x3,y3))識(shí)別的指定字符邊界714。在一些示例中,字符識(shí)別器208基于指定字符所對(duì)應(yīng)的子圖像內(nèi)的區(qū)域(例如由指定字符邊界714限定的區(qū)域)的位置與子圖像的邊界(例如子圖像702的邊界)之間的總差別來(lái)計(jì)算位置誤差值。更具體地,在一些示例中,字符識(shí)別器208基于子圖像702的拐角706、拐角708、拐角710、拐角712中的每一者與指定字符邊界714的對(duì)應(yīng)的拐角716、拐角718、拐角720、拐角722之間在豎直方向和水平方向上的位置總差別來(lái)計(jì)算位置誤差值。參照?qǐng)D7在數(shù)學(xué)上的表達(dá),位置誤差值可以被計(jì)算為|0–x0|+|0–y0|+|m–x1|+|0–y1|+|m–x2|+|n–y2|+|0–x3|+|n–y3|。最大位置誤差等于子圖像702的寬度(m)和高度(n)之和的二倍。因此,在一些示例中,通過(guò)將上文計(jì)算中的拐角的位置差除以最大位置誤差,來(lái)將位置誤差值歸一化到0和1之間。在一些示例中,當(dāng)位置誤差值低于位置誤差閾值時(shí),字符指定被視為可靠的。位置誤差閾值可以為任何合適值(例如,當(dāng)將位置誤差值歸一化到0和1之間時(shí)的0.1、0.15、0.2等)。在一些示例中,用固定寬度(m)和固定高度(y)限定用于每個(gè)子圖像的邊界,從而可以將位置誤差閾值限定在低于寬度和高度之和二倍的某值,而無(wú)需將該計(jì)算歸一化在0和1之間。
附加地或可替選地,字符識(shí)別器208基于在指定字符邊界714外但在子圖像702內(nèi)的前景像素的存在來(lái)確定指定字符的可靠性。在一些示例中,前景像素被識(shí)別為具有滿足閾值的像素值的像素,該閾值對(duì)應(yīng)于與子圖像內(nèi)的字符的打印部分而非背景相關(guān)聯(lián)的像素。例如,如果打印文本在淺色(例如白色)的背景上為深色(例如黑色),則前景像素對(duì)應(yīng)于具有滿足表示深色像素的閾值的像素值的像素。相反,如果打印文本在深色(例如黑色)的背景上為淺色(例如白色),則前景像素對(duì)應(yīng)于具有滿足表示淺色像素的閾值的像素值的像素。作為具體示例,圖7示出了用于打印文本的深色(例如黑色)以及淺色背景(例如白色)。假設(shè)圖7的子圖像702中的數(shù)字4的不良打印部分704至少被局部打印,則不良打印部分704的區(qū)域724將包括在指定字符邊界714外部的前景像素(例如深色像素)。對(duì)應(yīng)于指定字符的區(qū)域(即由指定字符邊界714限定的區(qū)域)外部的前景像素指示,該區(qū)域可以不包括子圖像中表示的整個(gè)字符。因此,在這類場(chǎng)景中,字符識(shí)別器208可以確定指定字符是不可靠的。當(dāng)然,在一些示例中,在指定字符邊界714外部可具有實(shí)際上不對(duì)應(yīng)于實(shí)際字符的離群像素。在一些這類示例中,當(dāng)指定字符邊界714外部的前景像素的數(shù)量(例如按絕對(duì)數(shù)量和/或作為與指定字符邊界714外部的整個(gè)區(qū)域的比率)超出閾值時(shí),字符識(shí)別器208可以確定指定字符是不可靠的。
在一些示例中,當(dāng)(1)置信度值超出置信度閾值、(2)位置誤差值小于位置誤差閾值、和/或(3)指定字符所對(duì)應(yīng)的區(qū)域外部的前景像素的數(shù)量小于像素閾值中的一種或多種情況出現(xiàn)時(shí),字符識(shí)別器208可以確定指定字符是可靠的。在一些示例中,在字符識(shí)別器208確定指定字符是可靠的之前,必須滿足以上情況中的多于一種的情況。在一些示例中,對(duì)于可靠的指定字符,必須滿足以上所有情況。
在一些示例中,某些字符(諸如標(biāo)點(diǎn)符號(hào)(例如逗號(hào)、句號(hào)、破折號(hào)等))不填充與子圖像的邊界相關(guān)聯(lián)的整個(gè)空間(可以基于被分析的特定字體將該空間歸一化到固定高度和/或?qū)挾?。在這類示例中,甚至當(dāng)識(shí)別正確字符時(shí),表示的字符所對(duì)應(yīng)的區(qū)域(例如在圖7中示出的指定字符邊界714)可以遠(yuǎn)小于導(dǎo)致相對(duì)較高的位置誤差值的子圖像的邊界。因此,在一些示例中,當(dāng)置信度值高于合適閾值時(shí),將該位置誤差值與針對(duì)指定字符期望的位置誤差值相比較。當(dāng)然,如果置信度值很低,則可以將指定字符視為不可靠的,不管位置誤差值如何。
在圖2的圖示示例中,數(shù)據(jù)處理設(shè)施110設(shè)置有示例性編碼文本生成器212,該示例性編碼文本生成器212用于生成正被分析的成像文本(例如圖1的收據(jù)圖像112、114)所對(duì)應(yīng)的機(jī)器編碼文本。在一些示例中,編碼文本生成器212將用于特定群集的指定字符(如由字符識(shí)別器208確定的)與成像文本中的對(duì)應(yīng)于包括在群集中的各自子圖像的位置(如由圖像分析器206確定的)相關(guān)聯(lián)。采用該方式,單個(gè)指定字符的識(shí)別(例如基于由人類檢查的和/或由ocr引擎分析的代表性子圖像)可以應(yīng)用于該字符在成像文件內(nèi)的多個(gè)實(shí)例,只要該字符的每個(gè)實(shí)例在外觀上足夠類似而被分組為公共群集即可。在群集很大的情況下(這可能發(fā)生在分析多個(gè)收據(jù)時(shí)),為人類檢查者節(jié)省時(shí)間可以是重要的。此外,在指定字符的ocr識(shí)別可靠的情況下,可以完全不需要人類檢查者。
在一些示例中,編碼文本生成器212將基于上下文的校正應(yīng)用于提取的文本。即,在一些示例中,一旦用于每個(gè)群集的所有指定字符已經(jīng)與成像文件(例如收據(jù)圖像112、114)的對(duì)應(yīng)子圖像相關(guān)聯(lián)使得已經(jīng)編碼全部文本,則示例性編碼文本生成器212按語(yǔ)境分析文本以識(shí)別任何錯(cuò)誤。例如,如果特定一串字母不形成可識(shí)別的詞(例如基于詞典查找),則編碼文本生成器212可以分析每個(gè)個(gè)體字母以確定該字母是否已被正確識(shí)別以及可以被改變以形成可識(shí)別的詞。類似地,如果一串字符包括全部字母和一個(gè)非字母(例如符號(hào)的數(shù)字),則編碼文本生成器212可以分析非字母符號(hào)以確定其是否應(yīng)當(dāng)為字母以形成可識(shí)別的詞。作為另一示例。字符串“10x14/2015”實(shí)質(zhì)上具有日期格式,除了字母“x”取代了第一個(gè)斜線符號(hào)(/)。在一些這類示例中,編碼文本生成器212可以識(shí)別該字符串的格式并修正未正確識(shí)別的字母“x”。采用該方式結(jié)合上下文分析成像文件使得能夠在編碼文本生成器212生成收據(jù)圖像112、114所對(duì)應(yīng)的完整的機(jī)器編碼文本文件之前檢測(cè)和修正任何最終錯(cuò)誤。
在圖2的圖示示例中,數(shù)據(jù)處理設(shè)施110設(shè)置有示例性字符識(shí)別數(shù)據(jù)庫(kù)214,該示例性字符識(shí)別數(shù)據(jù)庫(kù)214用于存儲(chǔ)各自群集的指定字符和/或代表性子圖像以備后續(xù)參考。當(dāng)用于群集的指定字符初始被識(shí)別為不可靠使得人類檢查者必須確認(rèn)和/或指定正確字符時(shí),這是特別有利的。在檢查者驗(yàn)證指定字符之后,可以將驗(yàn)證的指定字符和相關(guān)聯(lián)的代表性子圖像存儲(chǔ)在字符識(shí)別數(shù)據(jù)庫(kù)214中。因此,如果以后出現(xiàn)對(duì)應(yīng)于與指定字符相關(guān)聯(lián)的群集的另一子圖像,則可以直接將新的子圖像與該指定字符相關(guān)聯(lián)而不必再次尋找來(lái)自檢查者的關(guān)于該特定子圖像的驗(yàn)證。因此,子圖像的ocr分析的準(zhǔn)確度可以隨時(shí)間推移而改進(jìn),從而進(jìn)一步降低對(duì)成像文件的手動(dòng)檢查的需求。
盡管在圖2中示出了實(shí)現(xiàn)圖1的數(shù)據(jù)處理設(shè)施110的示例性方式,但是圖2中所示的元件、過(guò)程和/或設(shè)備中的一者或多者可以被組合、劃分、重排、省略、消除和/或以任何其它方式來(lái)實(shí)現(xiàn)。另外,示例性通信接口202、示例性批次指定器204、示例性圖像分析器206、示例性字符識(shí)別器208、示例性用戶界面210、示例性編碼文本生成器212、示例性字符識(shí)別數(shù)據(jù)庫(kù)214、和/或更一般地,圖1的示例性數(shù)據(jù)處理設(shè)施110可以通過(guò)硬件、軟件、固件和/或硬件、軟件和/或固件的任何組合來(lái)實(shí)現(xiàn)。因此,例如,示例性通信接口202、示例性批次指定器204、示例性圖像分析器206、示例性字符識(shí)別器208、示例性用戶界面210、示例性編碼文本生成器212、示例性字符識(shí)別數(shù)據(jù)庫(kù)214、和/或更一般地,圖1的示例性數(shù)據(jù)處理設(shè)施110中的任一者可以通過(guò)一個(gè)或多個(gè)模擬或數(shù)字電路、邏輯電路、可編程處理器、專用集成電路(asic)、可編程邏輯設(shè)備(pld)和/或現(xiàn)場(chǎng)可編程邏輯設(shè)備(fpld)來(lái)實(shí)現(xiàn)。當(dāng)閱讀覆蓋純軟件和/或固件實(shí)現(xiàn)的本專利的設(shè)備或系統(tǒng)權(quán)利要求中的任一者時(shí),示例性通信接口202、示例性批次指定器204、示例性圖像分析器206、示例性字符識(shí)別器208、示例性用戶界面210、示例性編碼文本生成器212和/或示例性字符識(shí)別數(shù)據(jù)庫(kù)214中的至少一者由此明確地被限定成包括有形的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備或存儲(chǔ)盤,諸如存儲(chǔ)軟件和/或固件的內(nèi)存、數(shù)字通用光盤(dvd)、光盤(cd)、藍(lán)光碟等。另外,圖1的示例性數(shù)據(jù)處理設(shè)施110可以包括除了圖2中所示那些以外或代替圖2中所示那些的一個(gè)或多個(gè)元件、過(guò)程和/或設(shè)備,和/或可以包括圖示元件、過(guò)程和設(shè)備中的任何或全部中的多于一者。
在圖8至圖13中示出了表示用于實(shí)現(xiàn)圖1和/或圖2的示例性數(shù)據(jù)處理設(shè)施110的示例性機(jī)器可讀指令的流程圖。在本示例中,機(jī)器可讀指令包括由處理器執(zhí)行的程序,該處理器諸如在下文結(jié)合圖14所討論的示例性處理器平臺(tái)1400中示出的處理器1412。該程序可以被嵌入在軟件中,該軟件存儲(chǔ)在有形的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上,該存儲(chǔ)介質(zhì)諸如cd-rom、軟盤、硬驅(qū)動(dòng)、數(shù)字通用光盤(dvd)、藍(lán)光碟或與處理器1412相關(guān)聯(lián)的存儲(chǔ)器,但是整個(gè)程序和/或其部分可以替選地由處理器1412以外的設(shè)備來(lái)執(zhí)行和/或被嵌入在固件或?qū)S糜布小A硗?,盡管參照在圖8至圖13中所示的流程圖來(lái)描述示例性程序,但是可以替選地使用許多其它實(shí)現(xiàn)示例性數(shù)據(jù)處理設(shè)施110的方法。例如,框的執(zhí)行次序可以被改變,和/或描述的一些框可以被改變、消除、或組合。
如上所述,圖8至圖13的示例性過(guò)程可以使用編碼指令(例如計(jì)算機(jī)和/或機(jī)器可讀指令)來(lái)實(shí)現(xiàn),該編碼指令存儲(chǔ)在有形的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上,該存儲(chǔ)介質(zhì)諸如硬盤驅(qū)動(dòng)、閃存、只讀存儲(chǔ)器(rom)、光盤(cd)、數(shù)字通用光盤(dvd)、緩存、隨機(jī)存取存儲(chǔ)器(ram)和/或任何其它存儲(chǔ)設(shè)備或存儲(chǔ)盤,其中存儲(chǔ)信息達(dá)任何時(shí)長(zhǎng)(例如延長(zhǎng)的時(shí)段、永久地、短時(shí)地、暫時(shí)緩存、和/或信息的高速緩存)。如在本文中使用的,術(shù)語(yǔ)“有形的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”明確地被限定成包括任何類型的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備和/或存儲(chǔ)盤以及排除傳播信號(hào)且排除傳輸媒體。如在本文中使用的,可交換地使用“有形的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”和“有形的機(jī)器可讀存儲(chǔ)介質(zhì)”。附加地或可替選地,圖8至圖13的示例性過(guò)程可以使用編碼指令(例如計(jì)算機(jī)和/或機(jī)器可讀指令)來(lái)實(shí)現(xiàn),該編碼指令存儲(chǔ)在非易失性計(jì)算機(jī)和/或機(jī)器可讀介質(zhì)上,該可讀介質(zhì)諸如硬盤驅(qū)動(dòng)、閃存、只讀存儲(chǔ)器、光盤、數(shù)字通用光盤、高速緩存、隨機(jī)存取存儲(chǔ)器和/或任何其它存儲(chǔ)設(shè)備或存儲(chǔ)盤,其中存儲(chǔ)信息達(dá)任何時(shí)長(zhǎng)(例如延長(zhǎng)的時(shí)段、永久地、短時(shí)地、暫時(shí)緩存、和/或信息的高速緩存)。如在本文中使用的,術(shù)語(yǔ)“非易失性計(jì)算機(jī)可讀介質(zhì)”明確地被限定成包括任何類型的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備和/或存儲(chǔ)盤以及排除傳播信號(hào)且排除傳輸媒體。如在本文中使用的,當(dāng)短語(yǔ)“至少”用作權(quán)利要求的前序中的過(guò)渡術(shù)語(yǔ)時(shí),它是開(kāi)放式的,同樣術(shù)語(yǔ)“包括”也是開(kāi)放式的。
詳細(xì)轉(zhuǎn)到流程圖,圖8的示例性程序開(kāi)始于框802,在框802,示例性通信接口202接收一個(gè)或多個(gè)基于文本的文件的圖像(例如圖1的收據(jù)圖像112、114)。在框804,示例性批次指定器204識(shí)別包括在批次中的圖像以備分析。在一些示例中,所有接收的圖像被包括在單個(gè)批次中。在其它示例中,可以基于例如不同發(fā)起源(例如發(fā)起基于文本的文件的不同零售店)將圖像分離為單獨(dú)批次。在框806,示例性圖像分析器206將圖像分段為對(duì)應(yīng)于個(gè)體字符的子圖像。在框808,示例性圖像分析器206將視覺(jué)上類似的子圖像分組為群集。下文結(jié)合圖9提供關(guān)于框808的實(shí)現(xiàn)的附加細(xì)節(jié)。
在框810,示例性字符識(shí)別器208選擇用于群集的代表性子圖像。在一些示例中,代表性子圖像對(duì)應(yīng)于群集中的子圖像之一。在一些示例中,代表性子圖像對(duì)應(yīng)于群集內(nèi)的多個(gè)子圖像的合成子圖像。在框812,示例性字符識(shí)別器208基于用于群集的代表性子圖像識(shí)別用于群集的指定字符。下文結(jié)合圖11提供關(guān)于框812的實(shí)現(xiàn)的附加細(xì)節(jié)。在框814,示例性編碼文本生成器212將指定字符關(guān)聯(lián)到該字符在一個(gè)或多個(gè)基于文本的文件的圖像中的每個(gè)對(duì)應(yīng)位置。在一些示例中,指定字符關(guān)聯(lián)到的對(duì)應(yīng)位置對(duì)應(yīng)于分組在群集中的每個(gè)子圖像在一個(gè)或多個(gè)文件內(nèi)的位置。
在框816,示例性編碼文本生成器212確定指定字符是否對(duì)應(yīng)于一組具有最小視覺(jué)差的字符,因此為具有相對(duì)高的可能被誤認(rèn)為不同字符的字符。如果示例性編碼文本生成器212確定指定字符對(duì)應(yīng)于一組具有最小視覺(jué)差的字符,則控制前進(jìn)到框818,在框818,示例性編碼文本生成器212分析群集內(nèi)的每個(gè)子圖像以確認(rèn)或校正每個(gè)子圖像所分配到的群集??刂迫缓笄斑M(jìn)到框820。如果示例性編碼文本生成器212確定指定字符不對(duì)應(yīng)于一組具有最小視覺(jué)差的字符(框816),則控制直接前進(jìn)到框820。
在框820,示例性編碼文本生成器212確定是否存在要識(shí)別的附加字符。如果是,則控制返回到框808。否則,控制前進(jìn)到框822,在框822,示例性編碼文本生成器212將基于上下文的校正應(yīng)用于提取的文本。在框824,示例性編碼文本生成器212生成一個(gè)或多個(gè)基于文本的文件的圖像所對(duì)應(yīng)的完整的機(jī)器編碼文本文件,于是圖8的示例性程序結(jié)束。
如上所述,圖9示出了實(shí)現(xiàn)圖8的將視覺(jué)上類似的子圖像分組為群集的框808的示例性程序。該示例性程序開(kāi)始于框902,在框902,示例性圖像分析器206檢索分配給第一群集的作為基準(zhǔn)圖像的第一子圖像。在框904,示例性圖像分析器206識(shí)別先前未分配給群集的另一子圖像。在框906,示例性圖像分析器206計(jì)算識(shí)別的子圖像和用于群集的基準(zhǔn)子圖像之間的視覺(jué)相關(guān)性。下文結(jié)合圖10提供關(guān)于框906的實(shí)現(xiàn)的附加細(xì)節(jié)。
在框908,示例性圖像分析器206確定視覺(jué)相關(guān)性是否滿足(例如大于或等于)相關(guān)性閾值。如果不滿足,則控制前進(jìn)到框910,在框910,示例性圖像分析器206確定是否具有待檢查的另一現(xiàn)存群集。如果具有另一現(xiàn)存群集,則控制返回到框906以計(jì)算識(shí)別的子圖像與用于另一現(xiàn)存群集的基準(zhǔn)子圖像之間的視覺(jué)相關(guān)性。如果示例性圖像分析器206確定不具有其他現(xiàn)存群集(框910),則控制前進(jìn)到框912,在框912,示例性圖像分析器206將識(shí)別的子圖像分配給新群集,于是控制前進(jìn)到下文討論的框916。然后控制前進(jìn)到框916,在框916,示例性圖像分析器206確定是否具有先前還未被分配給群集的另一子圖像。如果是,控制返回到框904以重復(fù)用于另一識(shí)別的子圖像的過(guò)程。否則,圖9的示例性程序結(jié)束且返回以完成圖8的示例性程序。
返回到框908,如果示例性圖像分析器206確定視覺(jué)相關(guān)性不滿足相關(guān)性閾值,則控制前進(jìn)到框914,在框914,示例性圖像分析器206將識(shí)別的子圖像分配給現(xiàn)存群集。此后,控制前進(jìn)到框916以重復(fù)用于另一子圖像的過(guò)程或結(jié)束并返回以完成圖8的示例性程序。
如上所述,圖10示出了實(shí)現(xiàn)圖9的計(jì)算識(shí)別的子圖像和用于現(xiàn)存群集的基準(zhǔn)子圖像之間的視覺(jué)相關(guān)值的框906的示例性程序。該示例性程序開(kāi)始于框1002,在框1002,示例性圖像分析器206變換識(shí)別的子圖像以在空間上對(duì)應(yīng)于基準(zhǔn)子圖像。在框1004,示例性圖像分析器206將邊界添加到變換的子圖像。在框1006,示例性圖像分析器206計(jì)算第一相關(guān)值,該第一相關(guān)值表示子圖像之間在第一相對(duì)位置處的類似度。在框1008,示例性圖像分析器206將子圖像之間的視覺(jué)相關(guān)性設(shè)置為第一相關(guān)值。
在框1010,示例性圖像分析器206計(jì)算用于子圖像的另一相對(duì)位置的另一相關(guān)值。在框1012,示例性圖像分析器206確定最新計(jì)算的相關(guān)值是否大于視覺(jué)相關(guān)性。如果是,則控制前進(jìn)到框1014,在框1014,示例性圖像分析器206將子圖像之間的視覺(jué)相關(guān)性設(shè)置為最新的相關(guān)值。然后控制前進(jìn)到框1016,在框1016,示例性圖像分析器206確定是否存在子圖像的另一相對(duì)位置。如果是,則控制返回到框1010以重復(fù)用于另一相對(duì)位置的過(guò)程。否則,該示例性過(guò)程結(jié)束并返回以完成圖9的示例性程序。返回到框1012,如果示例性圖像分析器206確定最新計(jì)算的相關(guān)值不大于視覺(jué)相關(guān)性,則控制直接前進(jìn)到框1016。
如上所述,圖11示出了實(shí)現(xiàn)圖8的基于用于群集的代表性子圖像識(shí)別用于群集的指定字符的框812的示例性程序。該示例性程序開(kāi)始于框1102,在框1102,示例性字符識(shí)別器208確定是否使用光學(xué)字符識(shí)別(ocr)引擎。如果是,則控制前進(jìn)到框1104,在框1104,示例性字符識(shí)別器208基于用于群集的代表性子圖像的ocr分析識(shí)別用于群集的指定字符。在框1106,示例性字符識(shí)別器208分析ocr輸出以確定指定字符的可靠性。下文結(jié)合圖12提供關(guān)于框1106的實(shí)現(xiàn)的附加細(xì)節(jié)。
在框1108,示例性字符識(shí)別器208確定指定字符是否為可靠的。如果是,則圖11的示例性程序結(jié)束并返回以完成圖8的示例性程序,這是因?yàn)獒槍?duì)該群集自動(dòng)接受該指定字符。然而,如果示例性字符識(shí)別器208確定指定字符為不可靠的(框1108),則控制前進(jìn)到框1110。在框1110,示例性字符識(shí)別器208確定代表性子圖像是否對(duì)應(yīng)于存檔集群(例如存儲(chǔ)在字符識(shí)別數(shù)據(jù)庫(kù)214中)。如果是,則控制前進(jìn)到框1112,在框1112,示例性字符識(shí)別器208將指定字符識(shí)別成對(duì)應(yīng)于用于該存檔集群的指定字符,于是圖11的示例性程序結(jié)束并返回以完成圖8的示例性程序。
返回到框1102,如果示例性字符識(shí)別器208確定不使用ocr引擎,則控制前進(jìn)到框1114,在框1114,示例性字符識(shí)別器208檢索用戶輸入以識(shí)別用于群集的指定字符。下文結(jié)合圖13提供關(guān)于框1114的實(shí)現(xiàn)的附加細(xì)節(jié)。在框1116,示例性字符識(shí)別數(shù)據(jù)庫(kù)214存儲(chǔ)用于群集的指定字符的用戶輸入識(shí)別,于是圖11的示例性程序結(jié)束并返回以完成圖8的示例性程序。返回到框1110,如果示例性字符識(shí)別器208確定代表性子圖像不對(duì)應(yīng)于存檔集群,則控制前進(jìn)到框1114以如上所述繼續(xù)進(jìn)行。
如上所述,圖12示出了實(shí)現(xiàn)圖11的分析ocr輸出以確定指定字符的可靠性的框1106的示例性程序。該示例性程序開(kāi)始于框1202,在框1202,示例性字符識(shí)別器208檢索用于指定字符的識(shí)別的置信度值。在框1204,示例性字符識(shí)別器208確定置信度值是否滿足(例如大于或等于)置信度閾值。如果不滿足,則控制前進(jìn)到框1218,在框1218,示例性字符識(shí)別器208將指定字符識(shí)別為不可靠的,之后返回以完成圖11的示例性程序。如果示例性字符識(shí)別器208確定置信度值不滿足置信度閾值,則控制前進(jìn)到框1206。
在框1206,示例性字符識(shí)別器208檢索表示指定字符的邊界位于代表性子圖像內(nèi)的位置信息。在框1208,示例性字符識(shí)別器208基于位置信息計(jì)算位置誤差值。在框1210,示例性字符識(shí)別器208確定位置誤差值是否滿足(例如小于)位置誤差閾值。如果不滿足,則控制前進(jìn)到框1218,在框1218,示例性字符識(shí)別器208將指定字符識(shí)別為不可靠的,之后返回以完成圖11的示例性程序。如果示例性字符識(shí)別器208確定位置誤差值滿足位置誤差閾值,則控制前進(jìn)到框1212。
在框1212,示例性字符識(shí)別器208確定在代表性子圖像內(nèi)但在指定字符的邊界外的前景像素的數(shù)量。在框1214,示例性字符識(shí)別器208確定前景像素的數(shù)量是否滿足(例如小于)像素閾值。如果不滿足,則控制前進(jìn)到框1218,在框1218,示例性字符識(shí)別器208將指定字符識(shí)別為不可靠的,之后返回以完成圖11的示例性程序。如果示例性字符識(shí)別器208確定前景像素的數(shù)量滿足像素閾值(框1214),則控制前進(jìn)到框1216,在框1216,示例性字符識(shí)別器208將指定字符識(shí)別為可靠的,之后返回以完成圖11的示例性程序。
如上所述,圖13示出實(shí)現(xiàn)圖11的檢索用戶輸入以識(shí)別用于群集的指定字符的框1114的示例性程序。該示例性程序開(kāi)始于框1302,在框1302,示例性用戶界面210顯示用于群集的代表性子圖像。在框1304,示例性字符識(shí)別器208確定用于群集的指定字符的識(shí)別的置信度值(例如由ocr引擎輸出)是否滿足(例如大于或等于)確認(rèn)閾值。在一些示例中,確認(rèn)閾值低于置信度閾值(高于該置信度閾值時(shí),指定字符被識(shí)別為可靠的)但足夠高,使得仍存在指定字符為正確的合理可能性。在一些這類示例,假設(shè)指定字符為準(zhǔn)確的但是依賴人類檢查者確認(rèn)該指定。例如,可以將置信度閾值設(shè)定為0.85,而將確認(rèn)閾值設(shè)定為0.7。在一些示例中,低于確認(rèn)閾值的置信度值不足夠可靠,從而依賴人類檢查者識(shí)別正確的指定字符而不呈現(xiàn)有由ocr引擎識(shí)別的不可靠的指定字符。
因此,如果示例性字符識(shí)別器208確定用于群集的指定字符的識(shí)別的置信度值滿足確認(rèn)閾值(框1304),則控制前進(jìn)到框1308。在框1308,用戶界面210顯示代表性子圖像旁邊的指定字符。在框1310,示例性字符識(shí)別器208提示人類檢查者確認(rèn)指定字符對(duì)應(yīng)于代表性子圖像。在一些示例中,人類檢查者可以通過(guò)采取特定動(dòng)作(例如在鍵盤上的回車鍵或空格鍵)確認(rèn)指定字符。通過(guò)檢查者采取特定動(dòng)作,當(dāng)采用該方式確認(rèn)指定字符時(shí)可以提高檢查者的效率。例如,將由人類檢查者確認(rèn)的大多數(shù)指定字符很可能是正確的,這是因?yàn)檫@些指定字符的置信度值相對(duì)較高(高于確認(rèn)閾值)。因此,人類檢查者需要僅執(zhí)行該確認(rèn)動(dòng)作(例如敲擊空格鍵)而無(wú)需其它嘗試。雖然指定字符不正確的可能性不大,但是檢查者可能必須采取附加步驟(例如指定正確字符),但這將因?yàn)橄鄬?duì)高的置信度值(高于確認(rèn)閾值)而在少數(shù)時(shí)間發(fā)生。
在框1312,示例性字符識(shí)別器208確定人類檢查者是否確認(rèn)指定字符對(duì)應(yīng)于代表性子圖像。如果是,則控制前進(jìn)到框1314,在框1314,示例性字符識(shí)別器208基于由ocr引擎識(shí)別的指定字符來(lái)識(shí)別用于群集的指定字符,于是控制返回以完成圖11的示例性程序。如果示例性字符識(shí)別器208確定人類檢查者未確認(rèn)指定字符對(duì)應(yīng)于代表性子圖像(框1312),則控制前進(jìn)到框1316,在框1316,示例性字符識(shí)別器208基于由人類檢查者輸入的指定來(lái)識(shí)別用于群集的指定字符。即,如果如由ocr引擎確定的指定字符是不正確的使得人類檢查者將不如此確認(rèn),則人類檢查者可以鍵入代表性子圖像所對(duì)應(yīng)的正確字符,該正確字符然后被用作用于群集的指定字符。此后,圖13的示例性程序結(jié)束并返回以完成圖11的示例性程序。
返回到框1304,如果示例性字符識(shí)別器208確定用于群集的指定字符的識(shí)別的置信度值不高于確認(rèn)閾值,則控制前進(jìn)到框1306。在框1306,示例性字符識(shí)別器208提示人類檢查者識(shí)別代表性子圖像所對(duì)應(yīng)的指定字符。然后控制前進(jìn)到框1316,在框1316,示例性字符識(shí)別器208基于由人類檢查者輸入的指定來(lái)識(shí)別用于群集的指定字符,之后圖13的示例性程序結(jié)束并返回以完成圖11的示例性程序。
圖14為能夠執(zhí)行圖8至圖13的指令以實(shí)現(xiàn)圖1和/或圖2的示例性數(shù)據(jù)處理設(shè)施110的示例性處理器平臺(tái)1400的框圖。處理器平臺(tái)1400例如可以為服務(wù)器、個(gè)人計(jì)算機(jī)、移動(dòng)設(shè)備(例如移動(dòng)手機(jī)、智能手機(jī)、平板電腦,諸如ipadtm)、個(gè)人數(shù)字助理(pda)、因特網(wǎng)器件、和/或任何其它類型的計(jì)算設(shè)備。
圖示示例的處理器平臺(tái)1400包括處理器1412。圖示示例的處理器1412為硬件。例如,處理器1412可以通過(guò)來(lái)自任何期望家庭或制造商的一個(gè)或多個(gè)集成電路、邏輯電路、微處理器或控制器來(lái)實(shí)現(xiàn)。
圖示示例的處理器1412可以包括本地存儲(chǔ)器1413(例如高速緩存)。在圖示示例中,處理器1412實(shí)現(xiàn)圖2的示例性通信接口202、示例性批次指定器204、示例性圖像分析器206、示例性字符識(shí)別器208、示例性用戶界面210、和/或示例性編碼文本生成器212。圖示示例的處理器1412借助總線1418與主存儲(chǔ)器通信,該主存儲(chǔ)器包括易失性存儲(chǔ)器1414和非易失性存儲(chǔ)器1416。易失性存儲(chǔ)器1414可以通過(guò)同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(sdram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、rambus動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(rdram)、和/或任何其它類型的隨機(jī)存取存儲(chǔ)設(shè)備來(lái)實(shí)現(xiàn)。非易失性存儲(chǔ)器1416可以通過(guò)閃存和/或任何其它期望類型的存儲(chǔ)設(shè)備來(lái)實(shí)現(xiàn)。對(duì)主存儲(chǔ)器1414、1416的訪問(wèn)受存儲(chǔ)器控制器控制。
圖示示例的處理器平臺(tái)1400還包括接口電路1420。接口電路1420可以通過(guò)任何類型的接口標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn),諸如以太網(wǎng)接口、通用串行總線(usb)、和/或pciexpress接口。
在圖示示例中,一個(gè)或多個(gè)輸入設(shè)備1422連接到接口電路1420。一個(gè)或多個(gè)輸入設(shè)備1422允許用戶將數(shù)據(jù)和命令輸入到處理器1412中。該一個(gè)或多個(gè)輸入設(shè)備可以通過(guò)例如音頻傳感器、麥克風(fēng)、照相機(jī)(靜止或視頻)、鍵盤、按鈕、鼠標(biāo)、觸摸屏、軌跡板、軌跡球、等點(diǎn)和/或聲音識(shí)別系統(tǒng)來(lái)實(shí)現(xiàn)。
一個(gè)或多個(gè)輸出設(shè)備1424也連接到圖示示例的接口電路1420。輸出設(shè)備1424可以通過(guò)例如顯示設(shè)備(例如發(fā)光二極管(led)、有機(jī)發(fā)光二極管(oled)、液晶顯示器、陰極射線管顯示器(crt)、觸摸屏、觸摸式輸出設(shè)備、發(fā)光二極管(led)、打印機(jī)和/或揚(yáng)聲器)來(lái)實(shí)現(xiàn)。圖示示例的接口電路1420因此通常包括圖形驅(qū)動(dòng)卡、圖形驅(qū)動(dòng)芯片或圖形驅(qū)動(dòng)處理器。
圖示示例的接口電路1420還包括通信設(shè)備,諸如發(fā)送器、接收器、收發(fā)器、調(diào)制解調(diào)器和/或網(wǎng)絡(luò)接口卡以促進(jìn)借助網(wǎng)絡(luò)1426(例如以太網(wǎng)連接、數(shù)字用戶線路(dsl)、電話線、同軸電纜、移動(dòng)電話系統(tǒng)等)與外部機(jī)器(例如任何類型的計(jì)算設(shè)備)的數(shù)據(jù)交換。
圖示示例的處理器平臺(tái)1400還包括用于存儲(chǔ)軟件和/或數(shù)據(jù)的一個(gè)或多個(gè)大容量存儲(chǔ)設(shè)備1428。例如,大容量存儲(chǔ)設(shè)備1428可包括示例性字符識(shí)別數(shù)據(jù)庫(kù)214。這類大容量存儲(chǔ)設(shè)備1428的示例包括軟盤驅(qū)動(dòng)、硬驅(qū)動(dòng)盤、光盤驅(qū)動(dòng)、藍(lán)光碟驅(qū)動(dòng)、raid系統(tǒng)、和數(shù)字通用光盤(dvd)驅(qū)動(dòng)。
圖8至圖13的編碼指令1432可以被存儲(chǔ)在大容量存儲(chǔ)設(shè)備1428、易失性存儲(chǔ)器1414、非易失性存儲(chǔ)器1416、和/或可移除的有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(諸如cd或dvd)中。
從前文可知,將理解的是,當(dāng)利用人類檢查者嚴(yán)格完成時(shí)以及當(dāng)使用ocr技術(shù)執(zhí)行時(shí),上文公開(kāi)的示例性方法和設(shè)備大幅提高了文本提取的效率。更具體地,本文中公開(kāi)的示例使得文本提取通過(guò)針對(duì)類似字符的整個(gè)群集使用字符的單一指定而利用規(guī)模效益。此外,單次識(shí)別的字符的群集(通過(guò)人類檢查者或ocr引擎)可以從單個(gè)文件中的字符或從一批多個(gè)文件生成。另外,一旦人類檢查者已經(jīng)識(shí)別無(wú)法可靠地由ocr引擎識(shí)別的特定字符,則字符指定可以被存儲(chǔ),用于每當(dāng)分析類似出現(xiàn)的字符時(shí)作為參考,從而可以完成該字符的自動(dòng)指定而無(wú)需人類檢查者第二次識(shí)別該字符。
盡管本文中公開(kāi)了某些示例性方法、設(shè)備和制品,但是本專利的覆蓋范圍不限于此。相反,本專利覆蓋公正地落在本專利的權(quán)利要求的范圍內(nèi)的所有方法、設(shè)備和制品。