專利名稱:通過快速圖像匹配的全局定位的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及確定文檔的哪個部分對應(yīng)于該部分的捕捉圖像。本發(fā)明的各方面尤其適用于通過捕捉該文檔的圖像標(biāo)識文檔上記號的位置。
背景技術(shù):
盡管存儲在計算機(jī)上的電子文檔比書寫的文檔提供許多優(yōu)點,但許多用戶繼續(xù)用電子文檔的打印版本來執(zhí)行某些任務(wù)。這些任務(wù)包括,例如,閱讀和批注文檔。有了批注,文檔的紙質(zhì)版本呈現(xiàn)特殊的意義,因為批注一般由用戶直接寫在打印文檔上。然而,問題之一是,具有直接批注的文檔的打印版本以后難以將批注轉(zhuǎn)換成電子格式。理論上,以電子方式存儲的批注應(yīng)當(dāng)以書寫批注與文檔的紙質(zhì)版本相一致的相同方式,與文檔的電子版本相一致。
這種一致通常要求原始或另一用戶費力地讀完這些批注并親自將它們輸入到計算機(jī)中。在某些情況下,用戶可用電子方式掃描書寫在紙質(zhì)文檔上的批注,從而建立新的電子文檔。這些多重步驟使得難以在重復(fù)的基礎(chǔ)上處理的文檔打印版本與文檔電子版本之間一致性。而且,掃描得到的圖像常常不能被編輯。因而,可能沒有將批注與文檔的原始文本分開的方法。這使得難以使用批注。
為解決這個問題,已經(jīng)開發(fā)了筆以捕捉用筆書寫在打印文檔上的批注。這種類型的筆包括攝像機(jī),它在用戶書寫批注時捕捉打印文檔的圖像。然而,用這種類型的筆的某些例子,筆可使用對于攝像機(jī)不可見的墨水。例如,該筆可使用無炭墨水和紅外照明用于攝像機(jī),這防止攝像機(jī)“看見”用這種墨水書寫的批注。用這種類型的筆,筆將根據(jù)由筆在批注的書寫過程中捕捉的圖像,來推斷在文檔上形成的批注的筆尖運動。然而,為了將圖像與原始的電子文檔相關(guān)聯(lián),必須確定這些圖像相對于文檔的位置。因此,常與包括一種圖案的紙一起使用這種類型的筆,該圖案唯一地標(biāo)識紙上的不同位置。通過分析這種圖案,接收圖像的計算機(jī)可以確定在該圖像中所捕捉的是紙的什么部分(即打印文檔的什么部分)。
盡管這樣的加有圖案的紙或其它媒質(zhì)的使用允許將在紙質(zhì)文檔上書寫的批注轉(zhuǎn)換成電子格式并且正確地與文檔的電子版本相關(guān)聯(lián),但該技術(shù)并不總是可靠的。例如,在紙上包含文本的文檔可遮掩圖案區(qū)域。如果筆捕捉這些區(qū)域之一的圖像,則計算機(jī)不能使用該圖案來準(zhǔn)確地確定由該圖像捕捉的文檔部分的位置。相反,計算機(jī)必須使用替換的技術(shù)來標(biāo)識在該圖像中捕捉的文檔部分的位置。例如,計算機(jī)可執(zhí)行所捕捉圖像與電子文檔的逐像素比較。
逐像素比較通常將標(biāo)識在捕捉的圖像中文檔的部分,但該技術(shù)具有高處理開銷。為執(zhí)行該技術(shù),例如,必須首先估算所捕捉圖像與文檔圖像之間的變換,例如旋轉(zhuǎn)和比例(scale),從而可以將所捕捉圖像扭曲(warp)并將它與文檔圖像逐像素地匹配。如果變換是未知的,則必須考慮所有可能的旋轉(zhuǎn)和比例。此外,在圖像中選擇一參考像素。隨后將扭曲的圖像中的每一像素與電子文檔中的相應(yīng)像素比較,使得將圖像參考像素與電子文檔的第一位置比較。隨后必須重復(fù)該比較,使得最終將參考像素與電子文檔中的每一位置比較。在圖像像素與電子文檔之間具有最高一致性的比較,標(biāo)識參考像素相對于電子文檔的位置,并由此標(biāo)識圖像中所捕捉文檔的部分。因此,所希望的是提供一種技術(shù),使計算機(jī)能夠確定在捕捉的圖像中文檔的部分的位置,而不必執(zhí)行圖像與整個文檔的逐像素比較。
發(fā)明內(nèi)容
有利的是,本發(fā)明的各種實施例提供一種有效的技術(shù),用于確定相應(yīng)于捕捉圖像的文檔部分。按照本發(fā)明的各種實施例,標(biāo)識其中圖案至少被部分地遮掩的文檔區(qū)域。在圖像中選擇一參考像素、估算所捕捉圖像的旋轉(zhuǎn)和比例、并確定像素與圖案之間的偏移。隨后將扭曲的圖像與文檔進(jìn)行逐像素比較,使得僅將參考像素與文檔中這樣的位置比較,這些位置既在所標(biāo)識的區(qū)域內(nèi),又與圖案有確定的偏移。圖像像素與電子文檔之間最高相關(guān)性的比較則標(biāo)識參考像素相對于電子文檔的位置。使用該技術(shù),可以避免參考像素與文檔的其它位置的比較,從而減少確定圖像中所捕捉文檔的部分的位置所需要的處理開銷。
圖1示出可結(jié)合本發(fā)明的實施例使用的計算機(jī)的一般描述。
圖2A例示按照本發(fā)明的各種實施例的筆的一個例子,而圖2B例示可由本發(fā)明的各種實施例獲得的圖像的分辨率。
圖3A至3I示出按照本發(fā)明的實施例的編碼系統(tǒng)的各種例子。
圖4以圖形例示可以如何使用一種編碼的圖案來確定從文檔部分捕捉的圖像的旋轉(zhuǎn)。
圖5例示一個公式,可用于確定從文檔部分捕捉的圖像的旋轉(zhuǎn)。
圖6例示一種按照本發(fā)明的各種實施例的工具,可用于將捕捉圖像與文檔部分進(jìn)行匹配。
圖7A-7C例示一流程圖,描述一種按照本發(fā)明的各種實施例將捕捉圖像與文檔部分進(jìn)行匹配的方法。
圖8例示如何將捕捉圖像扭曲并隨后以多個90°旋轉(zhuǎn)它的例子。
具體實施例方式
圖1示出常規(guī)通用數(shù)字計算環(huán)境的一個例子的功能框圖,該環(huán)境可以用于實現(xiàn)本發(fā)明的各種方面。在圖1中,計算機(jī)100包括處理單元110,系統(tǒng)存儲器120和系統(tǒng)總線130,它將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合到處理單元110。系統(tǒng)總線130可以是若干總線結(jié)構(gòu)中的任何一種,包括存儲器總線或存儲器控制器,外圍總線和使用任何各種總線結(jié)構(gòu)的局部總線。系統(tǒng)存儲器120包括只讀存儲器(ROM)140和隨機(jī)存取存儲器(RAM)150。
基本輸入/輸出系統(tǒng)160(BIOS),包含幫助諸如在啟動期間在計算機(jī)100內(nèi)的元件之間傳送信息的例程,存儲在ROM 140中。計算機(jī)100還包括用于從硬盤(未示出)讀寫的硬盤驅(qū)動器170,用于從可移動磁盤190讀寫的磁盤驅(qū)動器180,和用于從諸如CD ROM或其它光媒質(zhì)等可移動光盤192讀寫的光盤驅(qū)動器191。硬盤驅(qū)動器170、磁盤驅(qū)動器180和光盤驅(qū)動器191分別通過硬盤驅(qū)動器接口192、磁盤驅(qū)動器193和光盤驅(qū)動器194連接到系統(tǒng)總線130。這些驅(qū)動器及其相關(guān)聯(lián)的計算機(jī)可讀媒質(zhì)為計算機(jī)100提供計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲。本領(lǐng)域的熟練技術(shù)人員將意識到,可以存儲可由計算機(jī)訪問的數(shù)據(jù)的其它類型的計算機(jī)可讀媒質(zhì),諸如磁盒、閃存卡、數(shù)字視頻盤、伯努利盒(Bernoullicartridge)、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)等,也可在示例的操作環(huán)境中使用。
可以在硬盤驅(qū)動器170、磁盤190、光盤192、ROM 140或RAM 150中存儲多個程序模塊,包括操作系統(tǒng)195、一個或多個應(yīng)用程序196、其它程序模塊197和程序數(shù)據(jù)198。通過輸入設(shè)備,諸如鍵盤101和定位設(shè)備102,用戶可以將命令和信息輸入到計算機(jī)100。其它輸入設(shè)備(未示出)可包括麥克風(fēng)、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備常常通過耦合到系統(tǒng)總線的串行端口接口106連接到處理單元110,但可通過其它接口連接,諸如并行端口、游戲端口或通用串行總線(USB)。而且,這些設(shè)備可直接通過適合的接口(未示出)耦合到系統(tǒng)總線130。監(jiān)示器107或其它類型的顯示設(shè)備也通過諸如視頻適配器108的接口連接到系統(tǒng)總線130。除監(jiān)示器之外,個人計算機(jī)一般包括其它外圍輸出設(shè)備(未示出),諸如揚聲器和打印機(jī)。在一個較佳的實施例中,配備筆數(shù)字化儀165和隨附的筆或觸針165以便以數(shù)字方式捕捉手寫輸入。盡管示出筆數(shù)字化儀165和串行端口之間的直接連接,但實際上,筆數(shù)字化儀165可直接耦合到處理單元110,通過并行端口或者其它接口和系統(tǒng)總線130,如本領(lǐng)域已知的。而且,盡管所示的數(shù)字化儀165與監(jiān)示器107是分開的,但最好數(shù)字化儀165的可用輸入?yún)^(qū)域可與監(jiān)示器107的顯示區(qū)域共用同一空間。而且,數(shù)字化儀165可集成在監(jiān)示器107中,或者可作為覆蓋或者附加于監(jiān)示器107的獨立設(shè)備存在。
計算機(jī)100可以在網(wǎng)絡(luò)化環(huán)境中運行,該環(huán)境使用與一個或多個遠(yuǎn)程計算機(jī)如遠(yuǎn)程計算機(jī)109的邏輯連接。遠(yuǎn)程計算機(jī)109可以是服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其它通用網(wǎng)絡(luò)節(jié)點,并且一般包括上述相對于計算機(jī)100的許多或所有元件,盡管在圖1中僅例示了存儲器存儲設(shè)備111。圖1中所示的邏輯連接包括局域網(wǎng)(LAN)112和廣域網(wǎng)(WAN)113。這樣的網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)級計算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中很常見。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,計算機(jī)100通過網(wǎng)絡(luò)接口或適配器114連接到局域網(wǎng)112。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時,個人計算機(jī)100一般包括調(diào)制解調(diào)器115或者其它用于通過廣域網(wǎng)113如因特網(wǎng)建立通信的裝置。調(diào)制解調(diào)器115可以是內(nèi)置或外置的,通過串行端口接口106連接到系統(tǒng)總線130。在網(wǎng)絡(luò)化環(huán)境中,相對于個人計算機(jī)100所述的程序模塊或者其部分,可存儲在遠(yuǎn)程存儲器存儲設(shè)備中。
將意識到,所示的網(wǎng)絡(luò)連接是例示性的,并且可以使用在計算機(jī)之間建立通信鏈路的其它技術(shù)。假定各種知名協(xié)議,諸如TCP/IP,以太網(wǎng),F(xiàn)TP,HTTP,藍(lán)牙,IEEE 802.11x等中任意一個存在,并且系統(tǒng)可以在客戶機(jī)-服務(wù)器配置中操作,以允許用戶從基于web的服務(wù)器檢索網(wǎng)頁??梢允褂萌魏胃鞣N常規(guī)的web瀏覽器,以顯示和操縱網(wǎng)頁上的數(shù)據(jù)。
圖像捕捉設(shè)備可以使用本發(fā)明的各種實施例來確定由一系列圖像捕捉的文檔部分的位置。如上所述,在圖像中所捕捉的文檔部分位置的確定可以用于查明用戶與紙、顯示屏或其它顯示文檔的媒質(zhì)交互的位置。按照本發(fā)明的某些實施例,可由用于將墨水書寫在紙上的墨水筆來獲得圖像。在本發(fā)明的其它實施例中,筆可以是觸針,用于在顯示文檔的數(shù)字化儀的表面上“書寫”電子墨水。
圖2A和2B示出筆201的例示性例子,它可按照本發(fā)明的各種實施例來使用。筆201包括尖端202和攝像機(jī)203。尖端202可以包括墨水容器,也可以不包括。攝像機(jī)203從表面207捕捉圖像204。筆201還可包括附加的傳感器和/或處理器,如在虛線框206中表示的。這些傳感器和/或處理器206也可包括將信息發(fā)送到另一筆201和/或個人計算機(jī)的能力(例如,通過藍(lán)牙或者其它無線協(xié)議)。
圖2B表示由攝像機(jī)203觀察到的圖像。在一個說明性例子中,由攝像機(jī)203捕捉的圖像的分辨率是N×N像素(其中N=32)。因此,圖2B示出32像素長×32像素寬的示例圖像。N的大小是可調(diào)整的,其中N的值越高,則提供越高的圖像分辨率。而且,盡管由攝像機(jī)203捕捉的圖像在此為了例示的目的而示為正方形,但攝像機(jī)的視野可包括其它形狀,如本領(lǐng)域所已知的。
由攝像機(jī)203捕捉的圖像可被定義為圖像幀序列{Ii},其中Ii是由筆201在采樣時刻ti捕捉的。采樣率可大可小,取決于系統(tǒng)配置和性能要求。所捕捉圖像幀的大小可大可小,取決于系統(tǒng)配置和性能要求。而且,應(yīng)該意識到,由攝像機(jī)203捕捉的圖像可由處理系統(tǒng)直接使用,或者可經(jīng)受預(yù)濾波。該預(yù)濾波可在筆201中發(fā)生,或者可在筆201之外(例如,在個人計算機(jī)中)發(fā)生。
圖2A還示出圖像平面209,在其上形成來自位置204的圖案的圖像210。在目標(biāo)平面207上從圖案接收的光由透鏡208聚焦。按照本發(fā)明的各種實施例,透鏡208可以是單透鏡或由多部分組成的透鏡系統(tǒng),但這里為簡單而表示為單透鏡。圖像捕捉傳感器211捕捉圖像210。
圖像傳感器211可大到足以捕捉圖像210??商鎿Q地,圖像傳感器211可大到足以捕捉在位置212處筆尖202的圖像。作為參考,在位置212處的圖像將稱為虛擬筆尖。應(yīng)當(dāng)注意,虛擬筆尖位置相對于圖像傳感器211是固定的,這是由于在筆尖、透鏡208和圖像傳感器211之間的不變關(guān)系。
如前面提到的,筆201一般用于諸如打印在紙上的文檔之類的媒質(zhì),它顯示一種圖案,用于標(biāo)識位置在媒質(zhì)上的位置。有利的是,這種圖案可用于將攝像機(jī)203捕捉的圖像210變換成相應(yīng)于媒質(zhì)外觀的形式。例如,下面的變換FS→P將由攝像機(jī)203捕捉的圖像210變換成在一張紙上的真實圖像
Lpaper=Fs→p(LSensor)在書寫期間,筆尖和紙在同一平面上。因此,從虛擬筆尖到真實筆尖的變換也是FS→PLpentip=Fs→p(Lvirtual-pentip)變換FS→P可估算為仿射變換。這簡化為FS→P′=sxsinθycosθxsinθy-cosθysinθx,sxcosθycosθxsinθy-cosθysinθx,0sysinθxcosθxsinθy-cosθysinθx,sycosθxcosθxsinθy-cosθysinθx,00,0,1]]>作為FS→P的估算,其中θx,θy,sx和sy是在位置204處捕捉的圖案的兩個方向的旋轉(zhuǎn)和比例。而且,通過將所捕捉圖像與紙上相應(yīng)的真實圖像進(jìn)行匹配,可以改進(jìn)F’S→P?!案倪M(jìn)(refine)”指通過一種稱為遞歸法的優(yōu)化算法,獲得變換FS→P的更精確的估算。遞歸法將矩陣F’S→P視為初值。改進(jìn)的估算更精確地描述S與P之間的變換。
虛擬筆尖的位置可以通過校準(zhǔn)更精確地來確定。為了校準(zhǔn)虛擬筆尖的位置,用戶將筆尖202放在紙上固定位置Lpentip處。接著,用戶傾斜筆,讓攝像機(jī)203捕捉一系列具有不同筆姿態(tài)的圖像。對于每個捕捉的圖像,獲得變換FS→P。由這個變換,可以獲得虛擬筆尖的位置Lvirtual-pentipLvirtual-pentip=Fp→s(Lpentip)其中Lpentip初始化為(0,0)以及Fp→s=(Fs→p)-1通過對從每一圖像獲得的Lvirtual-pentip求平均值,可確定虛擬筆尖的位置Lvirtual-pentip。有了Lvirtual-pentip,可以得到Lpentip的更準(zhǔn)確的估算。在重復(fù)幾次之后,可確定虛擬筆尖的準(zhǔn)確位置Lvirtual-pentip。
用于標(biāo)識媒質(zhì)上位置的圖案如前面所提到的,使用本發(fā)明的各種實施例,以確定相應(yīng)于捕捉圖像的文檔部分,其中顯示文檔的媒質(zhì)還包括一種圖案,用于標(biāo)識在媒質(zhì)上的不同位置。因而,可將圖案視為在一種顯示格式的編碼的數(shù)據(jù)流。顯示圖案的媒質(zhì)可以是打印的紙(或者其它物理媒質(zhì)),或者可替換地,可以是投影結(jié)合另外的圖像或圖像組的編碼的數(shù)據(jù)流的顯示器。例如,可以將編碼的數(shù)據(jù)流表示為紙上的物理圖像或者疊加在被顯示圖像上的圖像,或者可以是物理編碼的圖案(即不可更改的圖案),它與顯示屏幕相結(jié)合,或者疊加在顯示屏幕上(因此,由筆捕捉的任何圖像部分可在顯示屏幕上確定其位置)。
圖3A示出編碼技術(shù)的一個例子,用于將第一比特和第二比特編碼到圖案中,以標(biāo)識媒質(zhì)上的位置。第一比特301(例如,具有值“1”)由黑墨水列表示。第二比特302(例如,具有值“0”)由黑墨水行表示。然而,應(yīng)當(dāng)意識到,可使用任何彩色墨水表示各種比特。在選擇墨水的色彩時,唯一的要求是提供與媒質(zhì)背景的明顯反差,以讓圖像捕捉系統(tǒng)能夠區(qū)分。在本例中,圖3A中的比特由3×3點矩陣表示。根據(jù)捕捉媒質(zhì)圖像所使用的圖像捕捉系統(tǒng)的大小和分辨率,可將矩陣的大小修改成任何所希望的大小。
在圖3C-3E中示出具有0和1值的比特的可替換的表示。應(yīng)當(dāng)意識到,可交換用于圖3A-3E的樣本編碼的1或0的表示而沒有影響。圖3C示出以交叉排列占據(jù)兩行或列的比特表示。圖3D以虛線格式示出在行和列中像素的可替換的排列。最后圖3E以不規(guī)則間隔格式示出在列或行中的像素表示(例如,兩個黑點之后跟著一個白點)。
應(yīng)當(dāng)注意,可替換的網(wǎng)格對齊是可能的,包括將底層網(wǎng)格旋轉(zhuǎn)到非水平和非垂直的排列(例如,其中圖案的正確方向是45度)。使用非水平和垂直的方案可提供很有可能的好處,即消除用戶的視覺上的分心,因為用戶往往會最先注意到水平和垂直圖案。然而,為了簡明性目的,網(wǎng)格的方向(底層網(wǎng)格的水平、垂直和任何其它所希望的方向)總稱為預(yù)定義的網(wǎng)格方向。
回來參考圖3A,如果一個比特由3×3的元素矩陣表示,并且成像系統(tǒng)在3×3區(qū)域中檢測到一個黑行和兩個白行,則該區(qū)域被檢測為值0(或者可替換地為值1)。如果3×3區(qū)域檢測到具有一個黑列和兩白列,則該區(qū)域檢測為值1(或者可替換地,為值0)。因此,如果圖2B中的圖像210的大小是32×32像素,并且每個編碼單元的大小為3×3像素,則所捕捉的編碼單元的數(shù)量大約為100個單元。如果編碼單元的大小為5×5,則所捕捉的編碼單元的數(shù)量應(yīng)當(dāng)大約為36。
如在圖3A中所示,可使用一個以上像素或點來表示一個比特。使用單一像素(或點)來表示一個比特是脆弱的?;覊m、紙中的折痕、不平坦的表面等在閱讀數(shù)據(jù)單元的單元素表示時產(chǎn)生困難。然而,即使在使用多個元素表示比特的情況下,在具有圖案的媒質(zhì)上顯示其它文本,諸如在文檔中的打字文本,仍可遮掩圖案中的一個或多個比特。
使用比特流創(chuàng)建圖3B的圖形圖案303。圖形圖案303包括12行18列。更具體地說,由使用比特表示301和302被轉(zhuǎn)換成圖形圖案303的比特流形成這些行和列。因而,圖3B的圖案303可視為具有下面的比特表示010101110110110010001010011101101100]]>可使用各種比特流來創(chuàng)建圖3B中所示的圖像303。例如,可使用1或0的隨機(jī)或偽隨機(jī)序列??梢杂眯?、用列、用對角線或者按照任何其它公式的順序來排列比特序列。例如,如果從左至右再向下,則可由下面的比特流來形成上面的矩陣0100 0111 0110 0100 1000 1110 0111 0100 1100.
如果從上到下然后向右,則可由下面的比特流來形成上面的矩陣0101 1100 0011 0010 0110 1001 1001 1110 0010.
如果沿對角線隨后環(huán)繞,則可由下面的比特流表示上面的矩陣0110 0000 0101 0101 1000 0011 1111 1010 1010.
圖3B還包括來自圖像303的像素塊的放大。放大304-311示出5×5的像素塊。像素塊304示出在白行之間的黑行。像素塊305示出在白列之間的黑列。像素塊306示出一個左下角。像素塊307示出右上角。像素塊308示出一個黑列,在左邊帶有半個黑行。像素塊309示出一個黑行,在其上方帶有半個黑列。像素塊310示出半個黑行。像素塊311示出半個黑列。分析這些像素塊的組合,應(yīng)當(dāng)意識到,像素的所有組合可由在像素塊304-311中存在的圖像段形成。在圖3B中所示的圖案類型可稱為“迷宮”圖案,因為這些線段好象形成一個迷宮,沒有在所有四個邊上被迷宮完全包圍的區(qū)域。
不必說,可以預(yù)期,可在圖303所示的迷宮圖案中找到在圖3F-3I中所示的像素的四個“角”組合的每一個。然而,如在圖3B中所看到的,在八個像素塊304-311中只有三種類型的角實際存在。在本例中,沒有如圖3F中所示的像素的角組合。通過選擇圖像段301和302以此方式消除一種類型的角,可以基于缺少的角類型來確定所捕捉圖像的方向。
例如,如在圖4中所示,可分析由攝像機(jī)203捕捉的圖像401并確定其方向,使得它能解釋為由圖401所實際表示的位置。首先,回顧圖像401以確定圖像401的哪些像素形成迷宮圖案,并且確定旋轉(zhuǎn)圖像所需的角度θ,使得水平和垂直地對齊圖案的像素。應(yīng)當(dāng)注意,如上所述,在本發(fā)明的不同實施例中,可替換的網(wǎng)格對齊是可能的,包括將底層網(wǎng)格旋轉(zhuǎn)成非水平和非垂直的排列(例如,其中圖案的正確方向是45度)。
接著,分析圖像401以確定缺少哪一種角。將圖像401旋轉(zhuǎn)到準(zhǔn)備用于解碼的圖像403所需的旋轉(zhuǎn)量o示為o=(θ加旋轉(zhuǎn)量(由缺少的角定義的))。旋轉(zhuǎn)量由圖5中的方程示出?;貋韰⒖紙D4,首先通過像素的布局來確定角度θ,以達(dá)到像素的水平和垂直(其它預(yù)定義的網(wǎng)格方向)排列,并如圖402中所示旋轉(zhuǎn)該圖像。然后進(jìn)行一種分析以確定缺少的角并且將圖像402旋轉(zhuǎn)到圖像403以設(shè)置圖像用于解碼。這里,逆時針旋轉(zhuǎn)圖像90度,因此圖像403具有正確的方向并且可以用于解碼。
應(yīng)當(dāng)意識到,旋轉(zhuǎn)角度θ可在圖像401的旋轉(zhuǎn)之前或之后應(yīng)用,以說明缺少的角。也應(yīng)當(dāng)意識到,考慮到捕捉圖像中的噪聲,所有四種類型的角都可能存在。因此,在本發(fā)明的各種實施例中,可計數(shù)每種類型的角的數(shù)量,并且可將具有最少數(shù)量的角確定為缺少的角類型。
最后,閱讀圖像403中的代碼并且將它與用于創(chuàng)建圖像303的原始比特流相關(guān)。相關(guān)可用許多方法來完成。例如,可由遞歸法來完成,其中將恢復(fù)的比特流與原始比特流內(nèi)的所有其它比特流片段比較。其次,可在恢復(fù)的比特流與原始比特流之間進(jìn)行統(tǒng)計分析,例如,通過使用兩個比特流之間的漢明距離(hamming distance)??梢庾R到,可使用各種方法來確定恢復(fù)的比特流在原始比特流內(nèi)的位置。
從前述內(nèi)容,將意識到,上述迷宮圖案可用于將信息編碼到媒質(zhì)的表面上,諸如一張紙或數(shù)字化儀的顯示器。然后可以由筆201的攝像機(jī)203將該信息捕捉到一個或多個圖像中。可被編碼到媒質(zhì)表面上的一種特別有用的信息類型是位置信息。如果比特流的部分在媒質(zhì)上不重復(fù),則計算機(jī)101可以確定包含特定比特流的文檔部分。
如果在圖像中捕捉到圖案的完整部分,則計算機(jī)101將能夠確定在該圖像中的文檔部分,如上所述。然而,在某些情況下,圖案的一部分可被遮掩。例如,如果媒質(zhì)是一個包含例如打字文本的文檔,則文本可部分地遮掩圖案中一個或多個比特。在上面的例子(其中每個比特由3×3的像素矩陣構(gòu)成,并且攝像機(jī)203的分辨率為32×32像素)中,如果可以從圖像中標(biāo)識60或更多的比特,計算機(jī)101將非常有可能能夠確定在圖像中捕捉的文檔部分的位置。然而,如果在圖像中只能標(biāo)識36至60比特,則計算機(jī)101可能仍能夠確定在圖像中捕捉的文檔部分的位置。而且,如果只能從圖像中標(biāo)識35或更少的比特,則計算機(jī)101將不能夠確定在圖像中捕捉的文檔部分。
通過快速圖像匹配的定位如上面所提到的,如果從圖像中標(biāo)識了不足數(shù)量的比特,則計算機(jī)101不能確定在圖像中所捕捉的是文檔的哪個部分。相反,計算機(jī)101必須使用另外的技術(shù)以確定在圖像中所捕捉的是文檔的哪個部分。首先應(yīng)當(dāng)估算捕捉圖像與文檔圖像之間的變換(例如,旋轉(zhuǎn),比例等),使得可以將捕捉圖像扭曲,以具有與電子文檔圖像一樣的旋轉(zhuǎn)和比例。如果變換是未知的,則應(yīng)當(dāng)考慮所有可能的旋轉(zhuǎn)和比例。因此,如果以電子格式存儲文檔,則計算機(jī)101可以執(zhí)行在扭曲的圖像中的每一像素與電子文檔的每一位置的逐像素比較。然而,該技術(shù)需要大量的比較過程。例如,電子文檔的一頁可包含1410×2019個像素,因此需要2,889,090(1410×2019)次比較。另外,每個比較過程比較大量像素。例如,一個捕捉圖像可包含1024(32×32)個像素。因而該技術(shù)需要大量的處理器開銷且是耗時的。
相反,按照本發(fā)明的各種實施例,計算機(jī)101可通過執(zhí)行快速圖像匹配來定位圖像。如將在下面詳細(xì)討論的,在捕捉圖像中選擇一個參考像素。電子文檔中不能對應(yīng)于參考像素的那些位置(例如像素)被排除。計算機(jī)101然后可以執(zhí)行圖像與文檔的逐像素比較,使得僅將參考像素與文檔中未被排除的那些位置比較。如此,可以標(biāo)識由圖像捕捉的文檔中的位置。
圖6例示一種按照本發(fā)明的各種實施例的工具601,可用于執(zhí)行快速圖像匹配。工具601包括圖像接收模塊603、迷宮圖案分析模塊605、文檔圖像分析模塊607、像素偏移確定模塊609和圖像比較模塊611。如在下面將更詳細(xì)地討論的,圖像接收模塊603接收在物理媒質(zhì)上顯示的文檔部分的圖像,該媒質(zhì)包括一種圖案,諸如在上面詳細(xì)描述的迷宮圖案。迷宮圖案分析模塊605隨后分析圖像以獲得圖像中的圖案的旋轉(zhuǎn)和比例,諸如上面詳細(xì)描述的迷宮圖案。文檔圖像分析模塊607隨后分析文檔的電子版本,以確定在哪里圖案被例如文檔中的文本或圖畫部分地遮掩。更具體地說,在本發(fā)明例示的實施例中,文檔圖像分析模塊607分析文檔的電子版本,以確定其中圖案被遮掩得太多而不能提供可靠的位置信息的區(qū)域。
像素偏移確定模塊609隨后確定捕捉圖像中參考像素與捕捉圖像中圖案之間的偏移,而圖像比較模塊611將扭曲的圖像(通過從迷宮圖案分析模塊605獲得的旋轉(zhuǎn)和比例而扭曲的)與文檔的電子版本比較。更具體地說,基于在所標(biāo)識的被遮掩區(qū)域中且具有確定的偏移的文檔位置,圖像比較模塊611進(jìn)行扭曲的圖像與文檔的電子版本的逐像素比較。在例示的實施例中,一個或多個模塊603-611可由在計算機(jī),如計算機(jī)101上執(zhí)行的指令來實現(xiàn)。然而,在本發(fā)明的另一個實施例中,可使用硬件組件實現(xiàn)一個或多個模塊603-611。
圖7A-7C例示一種可按照本發(fā)明的各種例子利用例如諸如工具601等工具來使用的快速圖像匹配的方法。在步驟701中,圖像接收模塊603接收在物理媒質(zhì)上顯示的文檔部分的圖像。媒質(zhì)可以是,例如,一張紙、可以同時顯示文檔和從筆201接收輸入的數(shù)字化顯示器、或者任何其它類型的物理媒質(zhì)。在例示的實施例中,所接收的圖像是未定位的圖像,并且不能使用其它技術(shù)來與文檔的特定部分相關(guān)聯(lián)。
接著,在步驟703中,為圖像選擇一個參考像素。在本發(fā)明的各種實施例中,參考像素可以是圖像中的中心像素。如可從下面的描述清楚的,使用中心像素作為參考像素可使某些與處理相關(guān)聯(lián)的計算更易于確定。然而,在本發(fā)明的其它實施例中,參考像素可以是任何所希望的像素。例如,參考像素可替換地可以是圖像中最左上的像素、圖像中最左下的像素、圖像中最右上的像素、或者圖像中最右下的像素。
接著,文檔圖像分析模塊607分析文檔的電子版本,以確定文檔中圖案被部分遮掩的區(qū)域(為了方便在下文中稱為“被遮掩區(qū)域”)。按照本發(fā)明的各種實施例,文檔圖像分析模塊607明確地標(biāo)識文檔中按一閾值來遮掩圖案的被遮掩區(qū)域。更具體地說,文檔圖像分析模塊607標(biāo)識在文檔中那些區(qū)域,其中圖案被遮掩到這樣程度,使得計算機(jī)101不能確定在那些區(qū)域中的位置信息。
如在上面詳細(xì)地說明的,本發(fā)明的各種實施例使用一種圖案,其中圖案中的每個比特由3×3的像素的矩陣構(gòu)成。而且,在本發(fā)明的某些實施例中,用于捕捉加圖案的文檔的部分的圖像的攝像機(jī)203的分辨率可以是32×32像素。在這種方案中,如果可以從圖像中標(biāo)識60或更多的像素,分析圖像的計算機(jī)101將能夠確定圖像中捕捉的文檔部分的位置。然而,如果只能在圖像中標(biāo)識59或更少的比特,則計算機(jī)101可能不能夠確定在圖像中捕捉的文檔部分的位置。因此,如果文檔部分的圖像不能用這種方案來標(biāo)識,則圖像必須是文檔中32×32的像素區(qū)域,其中除59或更少的圖案比特之外都被遮掩。通過標(biāo)識文檔中具有59或更少不被遮掩的比特的那些32×32像素區(qū)域,文檔圖像分析模塊607可以排除文檔中其它區(qū)域(即,其中顯示了60或更多的比特的區(qū)域)作為圖像源。
應(yīng)當(dāng)注意到,文檔圖像分析模塊607將相對于在步驟703中選擇的參考像素來標(biāo)識文檔的被遮掩區(qū)域。例如,如果選擇中心像素作為參考像素,則被遮掩區(qū)域?qū)⒂蛇@樣的像素構(gòu)成其中周圍的32×32像素數(shù)組具有59或更少的未被遮掩的比特。同樣,如果參考像素是圖像中最右上的像素,則被遮掩區(qū)域?qū)⒂蛇@樣的文檔像素構(gòu)成其中在文檔像素的下面和左邊的32×32像素數(shù)組具有59或更少的未被遮掩的比特。另一方面,如果參考像素是圖像中右下像素,則被遮掩區(qū)域?qū)⒂蛇@樣的文檔像素構(gòu)成在上面和右邊的32×32像素數(shù)組具有59或更少的未被遮掩的比特。
在步驟706中,迷宮圖案分析模塊605確定所接收圖像相對于文檔的旋轉(zhuǎn)和比例,并且像素偏移確定模塊609確定參考像素與圖案的偏移。在步驟707中,使用旋轉(zhuǎn)和比例信息將所接收的圖像扭曲。例如,如上面詳細(xì)說明的,用戶可同時使包含攝像機(jī)203的筆201改變角度并旋轉(zhuǎn)它,使得得到的圖像相對實際的文檔不規(guī)則地成形。因此,捕捉圖像的每一像素的正確位置必須被轉(zhuǎn)換成坐標(biāo)值,用于描述文檔中各個位置。例如,如果圖像具有32×32個像素,則扭曲過程將按照文檔坐標(biāo)系統(tǒng)計算所有1024個像素的相對位置坐標(biāo)。因而扭曲操作是仿射變換,并且使用變換矩陣來執(zhí)行。這將包括圖像的旋轉(zhuǎn)和比例的變化。
通過根據(jù)圖像的迷宮圖案分析確定的比例和旋轉(zhuǎn)而將圖像扭曲,如上面詳細(xì)描述的。如前面提到的,圖案是由互相垂直并且相距規(guī)則距離的線構(gòu)成的。因此,通過標(biāo)識圖像中的圖案,迷宮圖案分析模塊605可以確定圖像圖案與文檔圖案之間沿x和y維的角差。迷宮圖案分析模塊605也可以確定圖像圖案之間的間距與文檔圖案的間距之間的差。基于這些差,迷宮圖案分析模塊605可以確定變換以將圖像扭曲,使得圖像對應(yīng)于文檔的坐標(biāo)系統(tǒng)。
如前面也提到的,圖案的不同特征,諸如角形狀的類型,可以用于標(biāo)識圖像相對于文檔的絕對角方向。如果這些不同特征的存在(或不存在)在圖像中被遮掩,則迷宮圖案分析模塊605可能不能夠確定圖像相對于文檔的絕對角方向。在這種情況下,像素偏移確定模塊611將以90°間隔重復(fù)扭曲過程四次,以保證標(biāo)識具有到文檔坐標(biāo)的最佳方向的扭曲。例如,在圖8中示出的初始圖像801。該圖還示出圖像的第一次扭曲803而沒有附加旋轉(zhuǎn)(即以0°的扭曲旋轉(zhuǎn)),并且示出圖像的第二次扭曲805具有90°的附加旋轉(zhuǎn)(即以90°的扭曲旋轉(zhuǎn))。圖8還示出圖像的第三次扭曲807具有180°的附加旋轉(zhuǎn)(即以180°的扭曲旋轉(zhuǎn)),并且示出圖像的第四次扭曲具有270°的附加旋轉(zhuǎn)(即以270°的扭曲旋轉(zhuǎn))。
接著,像素偏移確定模塊609確定從參考像素到圖案的最近單元的距離。而且,在x和y兩個方向上計算這個距離(如果使用笛卡爾坐標(biāo)系統(tǒng)標(biāo)識文檔中的位置,如在例示的例子中)。如果在原始圖像中迷宮圖案的偏移被定義為(dx,dy),且扭曲矩陣是M,則在扭曲的圖像中參考像素與圖案的偏移(稱為(dx1,dy1))可以按下面計算(dx1,dy1)T=M(dx,dy)T其中T是矩陣上的“轉(zhuǎn)置”運算符。
一旦確定相對于文檔電子版本的坐標(biāo)系統(tǒng)的偏移,在步驟709中,像素偏移確定模塊609就檢查文檔中的每個位置,以確定該位置是否共享與參考像素相同的偏移。更具體地說,檢查在先前標(biāo)識的文檔的被遮掩區(qū)域中每個位置(x,y),以查看該位置是否共享與參考像素相同的偏移。如果在被遮掩區(qū)域中的一個位置到最近的圖案單元的偏移(在x和y兩個方向上)與參考像素按一閾值,諸如0.7像素的偏移相匹配,則將該位置視為圖像中參考像素的一個可能的匹配。因而,文檔位置x,y將被視為對圖像中參考像素的一個可能的匹配,如果CellDistance(x+dx1,h)<0.7;并且CellDistance(y+dy1,h)<0.7其中h是迷宮圖案單元的大小,CellDistance(單元距離)定義為 其中mod(a,b)指a mod b。
應(yīng)當(dāng)注意,選擇閾值0.7以考慮在將圖像扭曲時出現(xiàn)的可能的光柵誤差和其它計算誤差??商鎿Q地可按所希望地使用其它閾值。為了方便,在文檔中具有足以與參考像素的偏移匹配的偏移的位置將稱為“匹配位置”。
在步驟711中,圖像比較模塊611基于匹配位置(即在被遮掩區(qū)域中匹配圖像的參考像素的偏移的位置)將圖像與文檔比較。更具體地說,將扭曲的圖像與文檔的不同部分比較,使得將在扭曲的圖像中的參考像素與文檔中每個匹配位置比較(并且僅與文檔中的匹配位置比較)。如前面所提到的,為圖像的每個扭曲旋轉(zhuǎn)重復(fù)這個比較過程。在扭曲的圖像與文檔部分之間的比較可以,例如,確定文檔部分的灰度值與扭曲的圖像的灰度值之間的相關(guān)性。當(dāng)然,可使用任何適合將扭曲的圖像與文檔部分比較的技術(shù)。
如果扭曲的圖像與文檔部分的比較滿足一個或多個所希望的閾值要求,則圖像比較模塊611將確定捕捉圖像是文檔部分的圖像。例如,如上面提到的,扭曲的圖像與文檔部分的每次比較產(chǎn)生一個相關(guān)性結(jié)果。在本發(fā)明的各種實施例中,圖像比較模塊611將標(biāo)識產(chǎn)生例如0.5(50%)或更佳的相關(guān)性的那些比較。圖像比較模塊611隨后將標(biāo)識具有最高相關(guān)性的第一比較和具有第二最高相關(guān)性的第二比較。如果第一比較的相關(guān)值比第二比較的相關(guān)值高0.1(即高10%),則圖像比較模塊611將在步驟717中確定在第一比較中使用的圖像部分是在圖像中捕捉的文檔部分。
如果沒有一個比較相關(guān)值滿足閾值(例如0.5),則圖像將不匹配文檔的一個特定部分。同樣,如果沒有一個比較相關(guān)值比其它比較相關(guān)值高,則圖像將不與文檔的特定部分相匹配。如果圖像不能匹配特定的文檔部分,則在步驟719中由圖像接收模塊603接收另一個未定位的圖像并且重復(fù)上述技術(shù)。
結(jié)論盡管已經(jīng)參考特定的例子,包括實現(xiàn)本發(fā)明的當(dāng)前的較佳方式描述了本發(fā)明,但本領(lǐng)域中的熟練技術(shù)人員將意識到,有上述系統(tǒng)和技術(shù)的眾多的變體和改變落在所附的權(quán)利要求書中所述的本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1.一種確定對應(yīng)于捕捉圖像的文檔部分的方法,其特征在于,所述方法包括獲得文檔部分的捕捉圖像,所述文檔具有一種圖案,它唯一地標(biāo)識所述文檔中的不同位置;確定所述文檔的被遮掩區(qū)域,其中所述圖案至少被部分地遮掩;在所述捕捉圖像中指定一參考像素;標(biāo)識在所述文檔的被遮掩區(qū)域中可能與所述參考像素對應(yīng)的位置;將所述捕捉圖像與所述文檔的不同部分比較,使得所述參考像素與一個或多個所述標(biāo)識位置比較;以及基于所述比較,確定所述文檔中一與所述參考像素對應(yīng)的標(biāo)識位置。
2.如權(quán)利要求1所述的方法,其特征在于,標(biāo)識所述文檔的被遮掩區(qū)域中與所述參考像素對應(yīng)的位置包括確定所述參考像素與所述捕捉圖像中所述圖案的表示之間的一偏移距離;以及標(biāo)識所述文檔的被遮掩區(qū)域中從所述圖案偏移了所述偏移距離的位置。
3.如權(quán)利要求1所述的方法,其特征在于,它還包括將所述捕捉圖像扭曲,使得所述捕捉圖像的比例和旋轉(zhuǎn)與所述文檔的比例和旋轉(zhuǎn)相匹配。
4.如權(quán)利要求3所述的方法,其特征在于,它還包括將所述捕捉圖像扭曲,以及以多個90°旋轉(zhuǎn)所扭曲的捕捉圖像。
5.如權(quán)利要求4所述的方法,其特征在于,將所述捕捉圖像與所述文檔的不同部分比較包括,將每個被旋轉(zhuǎn)的扭曲的捕捉圖像與所述文檔的不同部分比較。
6.如權(quán)利要求1所述的方法,其特征在于,所述文檔是電子文檔。
7.如權(quán)利要求1所述的方法,其特征在于,確定所述文檔中與所述參考像素對應(yīng)的標(biāo)識位置包括確定所述圖像與所述文檔部分的每一比較的一相關(guān)值。
8.如權(quán)利要求7所述的方法,其特征在于,確定所述文檔中與所述參考像素對應(yīng)的標(biāo)識位置還包括,標(biāo)識具有0.5或更大的相關(guān)值的比較值。
9.如權(quán)利要求8所述的方法,其特征在于,確定所述文檔中與所述參考像素對應(yīng)的標(biāo)識位置還包括標(biāo)識一最高比較相關(guān)值,它比所有其它比較相關(guān)值高出一閾值量;以及確定所述參考像素對應(yīng)于具有所述最高比較相關(guān)值的比較中使用的文檔位置。
10.如權(quán)利要求9所述的方法,其特征在于,所述閾值量是0.1。
全文摘要
提供一種有效技術(shù),用于確定對應(yīng)于捕捉圖像的文檔部分。標(biāo)識其中圖案至少被部分遮掩的文檔區(qū)域。在圖像中選擇一個參考像素,并確定像素與圖案之間的偏移。隨后將圖像與文檔進(jìn)行逐像素比較,使得僅將參考像素與文檔中這樣的位置比較,這些位置既在所標(biāo)識的區(qū)域內(nèi),又與圖案有確定的偏移。具有圖像像素與電子文檔之間最高一致性的比較則標(biāo)識參考像素相對于電子文檔的位置。
文檔編號G06F3/033GK1648933SQ20051000405
公開日2005年8月3日 申請日期2005年1月7日 優(yōu)先權(quán)日2004年1月7日
發(fā)明者王堅, 陳黎勇, 王強(qiáng), 馬曉旭, 黨映農(nóng) 申請人:微軟公司