專利名稱:m-數(shù)組解碼和糾錯的增強方法
技術領域:
本發(fā)明涉及使用數(shù)碼筆與媒質(zhì)交互,尤其涉及在與一個或多個表面交互期間確定數(shù)碼筆的位置。
背景技術:
計算機用戶習慣于使用鼠標和鍵盤作為與個人計算機交互的方法。雖然個人計算機提供了優(yōu)于書面文檔的多種優(yōu)點,但多數(shù)用戶仍舊使用印刷紙來完成某些功能。這些功能中的一些包括閱讀和注釋書面文檔。在注釋的情況下,由于用戶置于印刷文檔上的注釋,印刷文檔表現(xiàn)出更大的重要性。然而,擁有具有注釋的印刷文檔的困難之一是以后需要將這些注釋重新輸入回文檔的電子形式。這需要原用戶或另一個用戶辛苦地讀完注釋,并將它們輸入到個人計算機中。在一些情況下,用戶將掃描輸入這些注釋和原文本,由此建立新的文件。這些多個步驟使得印刷文檔和電子版本的文檔之間的交互難以用重復的方式來處理。此外,掃描輸入的圖像經(jīng)常是不可修改的。沒有將注釋同原文本分開的方法。這使得使用注釋變得困難。因此,需要一種處理注釋的改進的方法。
捕捉手寫信息的一種技術是使用筆,其位置會在書寫期間被確定。提供這種性能的一種筆是Anoto公司的Anoto筆。該筆通過使用照相機捕捉用預定義圖案編碼的紙張的圖像來起作用。該圖像圖案的例子在圖11中示出。Anoto筆(Anoto公司)使用這種模式來確定一頁紙張上該筆的位置。然而,不清楚Anoto筆所使用的系統(tǒng)對確定位置有多高的效率。為了提供對所捕捉圖像位置的有效確定,需要一種提供所捕捉圖像的有效解碼的系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明的各個方面提供了上述問題的至少其中之一的解決方案,由此使得可以在具有預定義圖案的所察看的文檔上定位所捕捉圖像的一個或多個位置。所察看的文檔可以在具有預定義圖案的紙張、LCD屏幕或其它任何的媒質(zhì)上。本發(fā)明的各方面包括準許對所捕捉的圖像進行有效解碼的解碼過程,為圖像位置的有效確定作準備。
依照本發(fā)明的一個方面,解碼過程巧妙地從所捕捉圖像提取的比特中選擇比特子集。依照本發(fā)明的另一個方面,一種過程調(diào)節(jié)該解碼過程重復執(zhí)行的次數(shù)。依照本發(fā)明的另一個方面,一種過程確定所提取比特位置的X、Y坐標,由此使得X、Y坐標符合諸如目的區(qū)域等局部約束。通過以下附圖和所關聯(lián)的描述,本發(fā)明的這些和其它方面將變得顯而易見。
結(jié)合附圖閱讀上述本發(fā)明的發(fā)明內(nèi)容和以下詳細描述的優(yōu)選實施例,可以更好地理解它們,這些優(yōu)選實施例對于本發(fā)明而言是作為示例而非局限包括于此。
圖1示出了可以結(jié)合本發(fā)明的實施例使用的計算機的總體描述。
圖2A和2B示出了依照本發(fā)明的實施例的圖像捕捉系統(tǒng)和相應的所捕捉圖像。
圖3A到3F示出了依照本發(fā)明的實施例的各個序列和折疊技術。
圖4A到4E示出了依照本發(fā)明的實施例的各個編碼系統(tǒng)。
圖5A到5D示出了與依照圖4A和4B的解碼系統(tǒng)相關聯(lián)的四種可能的結(jié)果拐角。
圖6示出了依照本發(fā)明的實施例的所捕捉圖像部分的旋轉(zhuǎn)。
圖7示出了結(jié)合圖4A到4E的編碼系統(tǒng)使用的旋轉(zhuǎn)的各個角度。
圖8示出了依照本發(fā)明的實施例用于確定所捕捉數(shù)組位置的過程。
圖9示出了依照本發(fā)明的實施例用于確定所捕捉圖像位置的方法。
圖10示出了依照本發(fā)明的實施例用于確定所捕捉圖像位置的另一個方法。
圖11示出了依照現(xiàn)有技術在文檔中編碼空格的表示。
圖12示出了依照本發(fā)明的實施例用于解碼從所捕捉的圖像中提取的比特的流程圖。
圖13示出了依照本發(fā)明的實施例對從所捕捉的圖像中提取的比特進行比特選擇。
圖14示出了依照本發(fā)明的實施例用于解碼從所捕捉的圖像中提取的比特的一種裝置。
具體實施例方式
本發(fā)明的各方面涉及確定所捕捉圖像相對于較大圖像的位置。此處所描述的位置確定方法和系統(tǒng)可與多功能筆結(jié)合使用。
為了方便讀者,用小標題將下列描述分開。所述小標題包括術語、通用計算機、圖像捕捉筆、數(shù)組編碼、解碼、糾錯和位置確定。
術語筆—一種書寫工具,可具有或不具有存儲墨水的能力。在某些例子中,不具有墨水存儲能力的觸針可被用作依照本發(fā)明實施例的筆。
照相機—一種圖像捕捉系統(tǒng),可從紙張或其它媒質(zhì)捕捉圖像。
通用計算機圖1是可用于實現(xiàn)本發(fā)明各個方面的常規(guī)通用數(shù)字計算環(huán)境的例子的功能性框圖。在圖1中,計算機100包括處理單元110、系統(tǒng)存儲器120以及把包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元110的系統(tǒng)總線130。系統(tǒng)總線130可能是若干總線結(jié)構(gòu)類型中的任一種,包括存儲器總線或存儲器控制器、外圍總線、以及使用多種總線體系結(jié)構(gòu)的局部總線的任一種。系統(tǒng)存儲器120包括只讀存儲器(ROM)140和隨機存取存儲器(RAM)150。
基本輸入/輸出系統(tǒng)160(BIOS)存儲在ROM 140內(nèi),它包括如啟動時幫助在計算機100內(nèi)的元件間傳輸信息的基本例程。計算機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ū)動器及其相關的計算機可讀媒質(zhì)為個人計算機100提供了對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲。本領域的技術人員可以理解,用于存儲計算機可訪問數(shù)據(jù)的其它類型的計算機可讀媒質(zhì)也可在示例性操作環(huán)境中使用,這些其它計算機可讀媒質(zhì)諸如磁帶盒、閃存卡、數(shù)字視頻盤、Bernoulli盒式磁帶、隨機存取存儲器(RAM)、只讀存儲器(ROM)等等。
許多程序模塊可以存儲在硬盤驅(qū)動器170、磁盤190、光盤192、ROM 140或RAM 150上,包括操作系統(tǒng)195、一個或多個應用程序196、其它程序模塊197和程序數(shù)據(jù)198。用戶可以通過輸入設備輸入命令和信息到計算機100中,輸入設備諸如鍵盤101和定位設備102。其它輸入設備(未示出)可以包括麥克風、操縱桿、游戲墊、圓盤式衛(wèi)星天線、掃描儀等等。這些和其它輸入設備一般通過耦合到系統(tǒng)總線的串行端口接口106連接到處理單元110,但也可由其它接口連接,諸如并行端口、游戲端口或通用串行總線(USB)。此外,這些設備可以通過適當?shù)慕涌?未示出)直接耦合到系統(tǒng)總線130。監(jiān)視器107或其它類型的顯示設備也可以通過諸如視頻適配器108這樣的接口連接到系統(tǒng)總線130。除監(jiān)視器外,個人計算機一般包括諸如揚聲器和打印機等其它外圍輸出設備(未示出)。在優(yōu)選實施例中,為了數(shù)字地捕捉手畫線輸入,提供了筆數(shù)字化儀165和伴隨的筆或觸針166。雖然示出了筆數(shù)字化儀165和串行端口間的直接連接,然而實際上,筆數(shù)字化儀165可通過并行端口或本領域已知的其它接口和系統(tǒng)總線130而直接耦合到處理單元110。而且,雖然所示的數(shù)字化儀165離監(jiān)視器107較遠,但數(shù)字化儀165的可用輸入?yún)^(qū)最好與監(jiān)視器107的顯示區(qū)域有共同的范圍。此外,數(shù)字化儀165可被集成到監(jiān)視器107內(nèi),或可作為疊加或附著于監(jiān)視器107上的獨立設備而存在。
計算機100可工作在使用到一個或多個諸如遠程計算機109這樣的遠程計算機的邏輯連接的網(wǎng)絡化環(huán)境內(nèi)。遠程計算機109可以是服務器、路由器、網(wǎng)絡PC、對等設備或其它公共網(wǎng)絡節(jié)點,并且一般包括與計算機100相關的許多或所有上述元件,然而圖1中僅示出了存儲器存儲設備111。圖1所述的邏輯連接包括局域網(wǎng)(LAN)112以及廣域網(wǎng)(WAN)113。這種網(wǎng)絡環(huán)境常見于辦公室、企業(yè)范圍的計算機網(wǎng)絡、內(nèi)聯(lián)網(wǎng)以及因特網(wǎng)。
當用于LAN網(wǎng)絡環(huán)境時,計算機100通過網(wǎng)絡接口或適配器114連接到局域網(wǎng)112。當用于WAN網(wǎng)絡環(huán)境時,個人計算機100一般包括調(diào)制解調(diào)器115或其它裝置,用于在諸如因特網(wǎng)等廣域網(wǎng)113上建立通信。調(diào)制解調(diào)器115可以是內(nèi)置或外置的,它通過串行口接口106連接到系統(tǒng)總線130。在網(wǎng)絡化環(huán)境中,所述與個人計算機100相關的程序模塊或其中的一部分可存儲在遠程存儲設備內(nèi)。
可以理解,所示網(wǎng)絡連接是說明性的,并且可以使用其它用于在計算機間建立通信鏈路的技術。假設存在諸如TCP/IP、以太網(wǎng)、FTP、HTTP、藍牙、IEEE 802.11X等各種已知協(xié)議,系統(tǒng)可以工作在客戶機—服務器配置中,以允許用戶從基于web的服務器中檢索網(wǎng)頁??梢杂酶鞣N常規(guī)網(wǎng)頁瀏覽器的任一種來顯示和操縱網(wǎng)頁上的數(shù)據(jù)。
圖像捕捉筆本發(fā)明的各方面包括將經(jīng)編碼的數(shù)據(jù)流置于表現(xiàn)該經(jīng)編碼的數(shù)據(jù)流的顯示形式中。(例如,如將與圖4B一起論述的,該經(jīng)編碼的數(shù)據(jù)流被用于創(chuàng)建圖形圖案。)所述顯示形式可以是印刷紙張(或其它物理媒質(zhì)),或可以是結(jié)合另一圖像或另一組圖像投影該經(jīng)編碼的數(shù)據(jù)流的顯示器。例如,該經(jīng)編碼的數(shù)據(jù)流可以被表現(xiàn)為紙張上的物理圖形圖像或疊加在顯示圖像上的圖形圖像(例如,表示文件的文本),或可以是顯示屏上的物理(不可修改)圖形圖像(這樣,任何由筆捕捉的圖像部分在顯示屏上是可定位的)。
對所捕捉圖像位置的確定可以被用于確定用戶與紙張、媒質(zhì)或顯示屏交互的位置。在本發(fā)明的某些方面中,筆可以是在紙上書寫的墨水筆。在其它的方面,筆可以是用戶在計算機顯示器表面書寫的觸針。在知道文檔上經(jīng)編碼的圖像或支持在計算機屏幕上顯示的文檔的情況下,任何交互可被提供回系統(tǒng)中。當筆或觸針在文檔上來回移動時,系統(tǒng)可以通過用筆或觸針中的照相機反復地捕捉圖像來跟蹤由用戶控制的觸針的移動。該顯示或印刷圖像可以是與空白或內(nèi)容豐富的紙張相關聯(lián)的水印,或可以是與疊加在屏幕上或內(nèi)建到屏幕中的顯示圖像或固定編碼相關聯(lián)的水印。
圖2A和2B示出了具有照相機203的筆201的說明性例子。筆201包括可包括或不包括墨水貯液器的筆尖202。照相機203從表面207捕捉圖像204。筆201還可包括如顯示在虛線框206中的附加傳感器和/或處理器。這些傳感器和/或處理器206也可包含將信息發(fā)送到另一支筆201和/或個人計算機的能力(例如,通過藍牙或其它無線協(xié)議)。
圖2B示出了由照相機203所觀看到的圖像。在一個說明性例子中,照相機203的視圖區(qū)(即,照相機圖像傳感器的分辨率)是32×32像素(其中N=32)。在該實施例中,所捕捉的圖像(32像素×32像素)對應于由照相機203捕捉的表面平面圖的大約5mm×5mm的區(qū)域。因此,圖2B示出了32像素長×32像素寬的視圖區(qū)。N的大小是可調(diào)整的,使得較大的N對應于較高的圖像分辨率。同樣地,雖然照相機203的視圖區(qū)在這里為了說明性的目的而被顯示為正方形,然而視圖區(qū)可以包括其它本領域公知的形狀。
由照相機203捕捉的圖像可以被定義為圖像幀序列{Ii},其中,Ii是由筆201在采樣時間ti捕捉的。根據(jù)系統(tǒng)配置和性能要求,采樣率可大可小。根據(jù)系統(tǒng)配置和性能要求,所捕捉圖像幀的尺寸可大可小。
由照相機203捕捉的圖像可以直接由處理系統(tǒng)使用,或可經(jīng)過預過濾。所述預過濾可以發(fā)生在筆201內(nèi)部,或發(fā)生在筆201外部(例如,在個人計算機中)。
圖2B的圖像尺寸是32×32像素。如果每個編碼單元尺寸是3×3像素,那么所捕捉的經(jīng)編碼單元的數(shù)目將大約為100單元。如果編碼單元尺寸是5×5像素,那么所捕捉的經(jīng)編碼單元的數(shù)目大約為36。
圖2A也示出了圖像平面209,來自位置204的圖案的圖像210在其上形成。接收自對象平面207上的圖案的光由透鏡208聚焦。透鏡208可以是單透鏡或由多部分組成的透鏡系統(tǒng),但為了簡化起見在這里被顯示為單透鏡。圖像捕捉傳感器211捕捉圖像210。
圖像傳感器211可以大到足以捕捉圖像210?;蛘?,圖像傳感器211可以大到足以捕捉筆尖202在位置212處的圖像。作為參考,在位置212處的圖像被稱為可視筆尖。需要注意,由于筆尖、透鏡208和圖像傳感器211的固定關系,對于圖像傳感器211的虛擬筆尖位置是固定的。
以下的轉(zhuǎn)換FS→P將由照相機捕捉的圖像的位置坐標轉(zhuǎn)換為在紙上的實際圖像中的位置坐標Lpaper=FS→P(LSensor)在書寫過程中,筆尖和紙在同一平面上。因此,從虛擬筆尖到實際筆尖的轉(zhuǎn)換也是FS→PLpentip=FS→P(Lvirtual-pentip)轉(zhuǎn)換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)和比例。此外,我們可以通過將所捕捉的圖像與紙上相應的真實圖像進行匹配來精確化F′S→P?!熬_化”意指通過一種被稱為遞歸法的最優(yōu)化算法,取得對轉(zhuǎn)換F′S→P更為精確的估算。遞歸法將矩陣F′S-P作為初始值來處理。精確化的估算可以更精確地描述S和P之間的轉(zhuǎn)換。
接著,我們可以通過校準來確定虛擬筆尖的位置。
我們將筆尖202放在紙上固定位置Lpentip。接著,我們傾斜該筆,使照相機203可以就不同的筆的姿勢來捕捉一系列圖像。對于每個捕捉的圖像,我們可以獲取轉(zhuǎn)換FS→P。我們可以從這種轉(zhuǎn)換獲取虛擬筆尖Lvirtual-pentip的位置
Lvirtual-pentip=FP→S(Lpentip)其中,Lpentip被初始化為(0,0),并且FP→S=(FS→P)-1通過對從每個圖像獲取的Lvirtual-pentip求平均值,可以確定虛擬筆尖Lvirtual-pentip的位置。有了Lvirtual-pentip,我們可以取得對Lpentip更為準確的估算。在幾次反復之后,可以確定虛擬筆尖Lvirtual-pentip的準確位置。
現(xiàn)在知道了虛擬筆尖Lvirtual-pentip的位置。我們也可以從所捕捉的圖像中獲取轉(zhuǎn)換FS→P。最后,我們可以使用該信息來確定實際筆尖Lpentip的位置Lpentip=FS→P(Lvirtual-pentip)數(shù)組編碼二維的數(shù)組可以通過折疊一維序列來構(gòu)造。包含足夠大量的比特的二維數(shù)組的任一部分可用于確定它在完整的二維數(shù)組中的位置。然而,會需要從一個捕捉的圖像或一些捕捉的圖像中確定位置。為了使所捕捉的圖像與該二維數(shù)組中兩個或多個位置相關聯(lián)的可能性最小,可使用無重復序列來創(chuàng)建數(shù)組。所創(chuàng)建序列的一個特性是該序列不在長度(或窗口)n上重復。以下描述創(chuàng)建一維序列,接著將該序列折疊成數(shù)組。
序列的構(gòu)造一數(shù)字序列可被用作編碼系統(tǒng)的開始點。例如,一序列(也被稱為m-序列)可被表示為在Fq域中的q-元素集。這里,q=pn,其中n≥1且p是質(zhì)數(shù)。該序列或m-序列可以由多種不同的技術生成,這些技術包含但不限于多項式除法。使用多項式除法,序列可以被定義如下Rl(x)Pn(x)]]>其中Pn(x)是域Fq[x]中次數(shù)為n的本原多項式(具有qn個元素)。Rl(x)是域Fq[x]中次數(shù)為1的非零多項式(其中l(wèi)<n)。該序列可以使用反復的過程用兩步創(chuàng)建第一,將這兩個多項式相除(得出域Fq里的一元素),第二,將余數(shù)乘以x。當輸出開始重復時,計算停止。該過程可以使用線性反饋移位寄存器來實現(xiàn),如關于計算機的IEEE學報43.5(IEEE Transactions on Computers 43.5)(1994年5月,第560-568頁)中Douglas W.Clark和Lih-Jyh Weng的論文“Maximal andNear-Maximal Shift Register SequencesEfficient Event Counters and Easy DiscreteLogarithms”所提出的。在這個環(huán)境中,在序列的循環(huán)移位和多項式Rl(x)之間建立起一種關系改變Rl(x)只循環(huán)地移位該序列且每個循環(huán)移位對應于一多項式Rl(x)。所得序列的特性之一是,該序列具有qn-1的周期,且在一個周期內(nèi),寬度(或長度)n上,任一部分在序列中出現(xiàn)一次且只有一次。這被稱作為“窗特性”。周期qn-1也被稱為序列的長度,且n被稱為序列的次數(shù)。
上述的過程只是可用于建立具有窗特性的序列的多種過程之一。
數(shù)組的構(gòu)建可用于創(chuàng)建圖像(其一部分可用照相機捕捉)的數(shù)組(或m-數(shù)組)是一維序列或m-序列的擴展。設A為周期(m1,m2)的一數(shù)組,即A(k+m1,l)=A(k,l+m2)=A(k,l)。當n1×n2窗口通過A的周期位移時,F(xiàn)q上的所有非零n1×n2矩陣都出現(xiàn)一次且只有一次。該特性也被稱為“窗特性”,因為每個窗口是唯一的。接著,窗口可被表示成周期為(m1,m2)數(shù)組(m1和m2為出現(xiàn)在數(shù)組中比特的水平和垂直數(shù)目)、階數(shù)為(n1,n2)的數(shù)組。
可以通過折疊序列來構(gòu)建二元數(shù)組(或m-數(shù)組)。一種方法是獲取一序列,接著將它折疊成m1×m2的尺寸,其中數(shù)組的長度是L=m1×m2=2n-1?;蛘撸覀兛梢詮奈覀兿M采w的預定尺寸的空間開始(例如,一頁紙,30頁紙或計算機監(jiān)視器的尺寸),確定區(qū)域(m1×m2),接著使用該尺寸使得L≥m1×m2,其中L=2n-1。
可使用多種不同的折疊技術。例如圖3A到3C示出了三種不同的序列。這些序列的每一種可被折疊成圖3D所示的數(shù)組。這三種不同的折疊方法被顯示為圖3D中的重疊,以及圖3E和3F中的光柵路徑。我們在此采用圖3D中所示的折疊方法。
為了創(chuàng)建如圖3D所示的折疊方法,我們創(chuàng)建一長度為L,階數(shù)為n的序列{ai}。接著,通過使該數(shù)組的每個比特如方程1所示地計算,從序列{ai}創(chuàng)建尺寸為m1×m2的數(shù)組{bkl},其中,gcd(m1,m2)=1,且L=m1×m2bkl=ai,其中,k=i mod(m1),l=i mod(m2),i=0,…,L-1(1)這種折疊方法或者可表示為將序列置于數(shù)組的對角線上,接著當達到邊緣時,從對側(cè)的邊緣繼續(xù)。
圖4A示出了可被用于編碼圖3D的數(shù)組的示例編碼技術。應該理解,可以使用其它的編碼技術。例如,圖11示出了一種可供選擇的編碼技術。
參見圖4A,第一個比特401(例如,“1”)可由一列黑墨水表示。第二個比特402(例如,“0”)可由一行黑墨水表示。應該理解,任何顏色的墨水可被用于表示各種比特。對墨水顏色唯一的要求是它要提供與媒質(zhì)背景的顯著對比,使得圖像捕捉系統(tǒng)可以辨認。圖4A的比特可用單元的3×3矩陣表示。基于圖像捕捉系統(tǒng)的尺寸和分辨率,矩陣的尺寸可以被更改為任何尺寸。圖4C-4E中示出了比特0和1的交替表示。應該理解,圖4A-4E的示例編碼對1和0的表示可以不受影響地交換。圖4C示出了以隔行排列的占據(jù)2行或列的比特表示。圖4D示出了在行和列中以虛線的形式對像素的可選排列。最后,圖4E示出了在行和列中以不規(guī)則間隔格式的像素表示(例如,兩個黑點后接著一個白點)。
再參見圖4A,如果一個比特由3×3的矩陣表示,且成像系統(tǒng)在3×3的區(qū)域中檢測到一個黑的行和兩個白的行,那么就檢測到一個0(或是1)。如果檢測到圖像具有一個黑的列和兩個白的列,那么就檢測到一個1(或是0)。
這里使用一個以上像素或點來表示一個比特。使用單個的像素(或比特)來表示一個比特是易受到破壞的?;覊m、紙上的折痕、不平的表面等等造成了讀出數(shù)據(jù)單元的單個比特表示的困難。但是,應該理解,可以使用不同的方法來圖形地表示平面上的數(shù)組。圖4C到4E中示出了一些方法。應該理解,也可以使用其它的方法。在圖11中提出了一種方法僅使用空間—位移(space-shifted)的點。
比特流被用于創(chuàng)建圖4B的圖形圖案403。圖形圖案403包括12行和18列。該行和列由被使用比特表示401和402轉(zhuǎn)換為圖形表示的比特流形成。圖4B可被看作具有以下比特表示010101110110110010001010011101101100]]>解碼當人們使用圖2A的筆書寫或?qū)⒐P移動到接近已編碼圖案之處,照相機就捕捉圖像。例如,當筆201壓住紙張并且筆201在紙張上的文檔上來回移動時,筆201會利用壓力傳感器。接著,處理圖像以確定所捕捉圖像對于經(jīng)編碼圖像的完整表示的方向,并提取組成所捕捉圖像的比特。
為了確定所捕捉圖像對于整個編碼區(qū)域的方向,我們會注意到并非圖5A-5D顯示的所有四個能想象得到的拐角會出現(xiàn)在圖形圖案403中。實際上,就正確的定位,圖5A所示的拐角類型不會存在于圖形圖案403中。因此,缺少圖5A所示的拐角類型的方向是正確的方向。
繼續(xù)到圖6,可分析由照相機601所捕捉的圖像,并確定其方向,以使其可按照由圖像601實際表示的位置來解釋。首先,考察圖像601以確定旋轉(zhuǎn)圖像所需要的角度θ,使得像素是水平和垂直對齊的。應該注意,可選的柵格對齊是可能的,包括將底層的柵格到非水平和垂直排列的旋轉(zhuǎn)(例如,45度)。使用非水平和垂直對齊會提供從用戶消除視覺上分心的可能的好處,因為用戶往往在注意到其它圖案之前注意到水平和垂直圖案。為了簡化起見,柵格的方向(水平的和垂直的,和對底層柵格的任何其它的旋轉(zhuǎn))被總稱為預定義的柵格方向。
接著,分析圖601,以確定缺少了哪個拐角。將圖像601旋轉(zhuǎn)至為解碼做好準備的圖像603所需的旋轉(zhuǎn)量o被顯示為o=(θ加旋轉(zhuǎn)量{由缺少的拐角定義})。該旋轉(zhuǎn)量由圖7中的方程示出。再參見圖6,角度θ最初由使像素達到像素的水平或垂直(或其它預定義的柵格方向)排列的布局來確定,且圖像如602中所示的那樣旋轉(zhuǎn)。接著,執(zhí)行分析以確定缺少的拐角,并將圖像602旋轉(zhuǎn)至圖像603,以建立用于解碼的圖像。這里,圖像被逆時針旋轉(zhuǎn)了90度,使得圖像603就具有了正確的方向并且可被用于解碼。
應該理解,旋轉(zhuǎn)角度θ可以在旋轉(zhuǎn)圖像601之前或之后應用,來解決缺少的拐角。也應該理解,考慮到所捕捉圖像中的噪聲,可能會存在所有的四個拐角。我們可以計算每種類型的拐角的數(shù)目,并選擇數(shù)目最少的那種類型作為缺少的拐角類型。
最后,圖像603中的代碼被讀出并與用于創(chuàng)建圖像403的原始比特流進行相關。這種相關可以用多種方法實現(xiàn)。例如,可以使用遞歸法來執(zhí)行,其中,恢復的比特流與原始比特流中的所有其它比特流片斷作比較。第二,可在恢復的比特流和原始比特流之間執(zhí)行統(tǒng)計分析,例如,通過使用兩種比特流之間的漢明距離。應該理解,可以使用多種方法來確定原始比特流中恢復的比特流的位置。
一旦我們得到了恢復的比特,我們需要在原始數(shù)組中定位所捕捉的圖像(例如,圖4B中所顯示的那個)。由于許多項目使得在整個數(shù)組中確定比特片段位置的過程復雜化。第一,實際要捕捉的比特可能是模糊的(例如,照相機可能捕捉手寫的圖像,這使得原始代碼變得模糊)。第二,灰塵、折痕、反射等等也會在所捕捉的圖像中引起誤差。這些誤差使得定位程序更加困難。在這點上,圖像捕捉系統(tǒng)會需要用從圖像中提取的非連續(xù)比特來運作。以下顯示了用來自圖像的非連續(xù)比特來運作的方法。
設序列(或m-序列)I對應于冪級數(shù)I(x)=1/Pn(x),其中n是m-序列的階數(shù),且所捕捉的圖像包含K比特的Ib=(b0b1b2…bK-1)t,其中K≥n,且上標t表示矩陣或向量的轉(zhuǎn)置。K比特的位置s正好是I的循環(huán)位移的次數(shù),使得b0被位移至序列的開始處。那么該位移序列R對應于冪級數(shù)變量xs/Pn(x),或R=Ts(I),其中T是循環(huán)位移算子。我們間接地得出該s。多項式模數(shù)Pn(x)形成一個域。確保xs≡r0+r1x+…rn-1xn-1mod(Pn(x))。因此,我們可得出(r0,r1,…,rn-1),接著求出s。
關系xs≡r0+r1x+…rn-1xn-1mod(Pn(x))意味著R=r0+r1T(I)+…+rn-1Tn-1(I)。寫成二元線性方程,就成為R=rtA(2)其中r=(r0r1r2…rn-1)t,且A=(I T(I)…Tn-1(I))t,它由I從0-位移到(n-1)-位移的循環(huán)位移組成?,F(xiàn)在,在R中只有稀疏的K比特可用來解出r。設R中bi和b0之間的下標差為ki,i=1,2,…,k-1,那么R的第一和第(ki+1)個元素(i=1,2,…,k-1)正好是b0,b1,…,bk-1。通過選擇A的第一和第(ki+1)列(i=1,2,…,k-1),形成了以下的二元線性方程bt=rtM (3)其中,M是A的n×K子矩陣。
如果b是無誤差的,則r的解可被表示為rt=b~tM~-1---(4)]]>其中 是M的非退化n×n子矩陣,且 是b的相應的子向量。
已知r的情況下,我們可使用Pohlig-Hellman-Silver算法,如關于計算機的IEEE學報43.5(IEEE Transactions on Computers 43.5)(1994年5月,第560-568頁)中Douglas W.Clark和Lih-Jyh Weng的論文“Maximal and Near-Maximal ShiftRegister SequencesEfficient Event Counters and Easy Discrete Logarithms”所提及的,來解出s,使得xs≡r0+r1x+…rn-1xn-1mod(Pn(x))。
因為矩陣A(其尺寸為n×L,其中L=2n-1)可能會非常大,我們應避免存儲整個矩陣A。實際上,如我們在上述過程中所見的,給定下標差為ki的提取的比特,只有A的第一和第(ki+1)列是和計算相關的。給定所捕捉圖像的尺寸,對ki的這種選擇是相當有限的。因此,只需要保存那些在計算中涉及的列。這種列的總數(shù)遠小于L(其中L=2n-1是m-序列的長度)。
糾錯如果在b中存在誤差,那么r的解法變得更為復雜。因為與所捕捉的比特相關聯(lián)的矩陣M會在各個捕捉的圖像之間變化,因此不能輕易地應用傳統(tǒng)的帶有糾錯的解碼方法。
我們采用一種隨機的方法。假設b中誤差比特的數(shù)目ne與K相比是相對小的,那么從b的K比特中選擇出正確的n比特,且M的相應子矩陣 為非退化的可能性是高的。
當所選擇的這n比特都正確時,bt和rtM之間的漢明距離,或與r相關聯(lián)的誤差比特的數(shù)目,應該是最小的,其中r通過方程(4)來計算。重復幾次該過程,可能可以標識出可推出最小誤差比特的正確的r。
如果只有一個r與最小誤差比特數(shù)相關聯(lián),那么就將它作為正確的解。否則,如果有一個以上r與最小誤差比特數(shù)相關聯(lián),則ne超過由M生成的代碼的糾錯能力的可能性是高的,且解碼過程失敗。接著,系統(tǒng)會移到下一個捕捉的圖像。在另一個實現(xiàn)中,會考慮關于該筆的前一位置的信息。即,對于每個所捕捉的圖像,可標識下一次會期望該筆的目的區(qū)域。例如,如果用戶在照相機的兩次圖像捕捉之間沒有提起筆,那么由第二圖像捕捉確定的筆的位置不應該離第一位置太遠。接著可以檢查與最小誤差比特數(shù)目相關聯(lián)的每一r,來看由r計算所得的位置s是否滿足局部約束,即,該位置是否在規(guī)定的目的區(qū)域之內(nèi)。
如果位置s滿足局部約束,就返回數(shù)組中所提取比特的X、Y位置。如果不滿足,解碼過程就失敗。
圖8描述了可被用于確定所捕捉的圖像在序列(或m-序列)中的位置的過程。第一,在步驟801中,接收到涉及所捕捉圖像的數(shù)據(jù)流。在步驟802中,從A提取相應的列,并構(gòu)建矩陣M。
在步驟803中,隨機地從矩陣M中選擇n個獨立列向量,并且通過解方程(4)來確定向量r。在步驟804中執(zhí)行該過程Q次(例如,100次)。對循環(huán)次數(shù)的確定在循環(huán)次數(shù)計算一節(jié)中討論。
在步驟805中,r根據(jù)其相關聯(lián)的誤差比特數(shù)目來排序??梢允褂帽绢I域公知的多種排序算法來完成這個排序。例如,可使用一選擇排序算法。當數(shù)目Q不大時,選擇排序算法是有利的。然而,如果Q變大,可使用可更有效地處理較大項目數(shù)目的其它排序算法(例如,合并分類)。
接著,系統(tǒng)在步驟806中通過檢查是否有多個r與最小誤差比特數(shù)相關聯(lián),來確定是否成功地執(zhí)行了糾錯。如果是,在步驟809中返回誤差,指示該解碼過程失敗。如果不是,在步驟807中計算序列(或m-序列)中被提取的比特的位置s,例如,通過使用Pohig-Hellman-Silver算法。
接著,計算數(shù)組中(X,Y)位置x=s mod m1且y=s mod m2,并在步驟808中返回結(jié)果。
位置確定圖9示出了用于確定筆尖位置的過程。輸入是由照相機捕捉的圖像,且輸出可以是筆尖的位置坐標。同樣地,輸出可以包括(或不包括)其它信息,諸如所捕捉圖像的旋轉(zhuǎn)角度。
在步驟901中,從照相機接收到圖像。接著,可在步驟902中可任選地預處理接收到的圖像(如步驟902的虛線框中所示),以調(diào)整淺色和深色像素之間的對比度等等。
接著,在步驟903中,分析該圖像以確定其中的比特流。
接著,在步驟904中,多次從所述比特流中隨機地選擇n比特,并且確定接收到的比特流在原始序列(或m-序列)中的位置。
最后,一旦在步驟904中確定了所捕捉圖像的位置,可在步驟905中確定筆尖的位置。
圖10給出了關于步驟903和904更多的細節(jié),并且示出了在捕捉的圖像中提取比特流的方法。第一,在步驟1001中從照相機接收到圖像。接著,該圖像在步驟1002中可任選地經(jīng)歷圖像預處理(如步驟1002的虛線框所示)。在步驟1003中提取該圖案。這里,可提取不同行上的像素以找出該圖案的方向和角度θ。
接著,在步驟1004中分析接收到的圖像,以確定底層的網(wǎng)格線。如果在步驟1005中找到了網(wǎng)格線,那么就在步驟1006中從該圖案中提取代碼。接著在步驟1007中解碼該代碼,并且在步驟1008中確定筆尖的位置。如果在步驟1005中未找到網(wǎng)格線,那么在步驟1009中返回出錯。
增強的解碼和糾錯算法概述采用如圖12所示的本發(fā)明的實施例,給定從所捕捉的圖像中提取的比特1201(對應于所捕捉的數(shù)組)和目的區(qū)域,m-數(shù)組解碼和糾錯過程的變體解碼X、Y位置。圖12示出了該增強方法的過程1200的流程圖。過程1200包括兩個組成部分1251和1253。
·解碼一次。組成部分1251包括三部分。
隨機比特選擇隨機地選擇被提取比特1201的子集(步驟1203) 解碼該子集(步驟1205) 使用局部約束確定X、Y位置(步驟1209)·使用智能比特選擇來解碼。組成部分1253包括四部分。
智能比特選擇選擇被提取比特的另一個子集(步驟1217) 解碼該子集(步驟1219) 調(diào)整步驟1217和步驟1219反復的次數(shù)(循環(huán)次數(shù))(步驟1221) 使用局部約束確定X、Y位置(步驟1225)本發(fā)明的實施例利用了一種謹慎策略,依照局部約束來選擇比特、調(diào)整循環(huán)次數(shù)和確定X、Y位置(位置坐標),所述局部約束被提供給過程1200。在組成部分1251和1253中,步驟1205和1219(“解碼一次”)都使用方程(4)來計算r。
設為被解碼的比特,即t=rtM (5)b和之間的差別是與r相關聯(lián)的誤差比特。
圖12示出了依照本發(fā)明的實施例,用于解碼從所捕捉的圖像中提取的比特1201的過程1200的流程圖。程序1200包含組成部分1251和1253。組成部分1251取得與所捕捉的圖像(對應于所捕捉的數(shù)組)相關聯(lián)的提取比特1201(包含K比特)。在步驟1203中,從提取比特1201中隨機地選擇n比特(其中n是m-數(shù)組的階數(shù))。在步驟1205中,過程1200解碼一次并計算r。在步驟1207中,過程1200確定對b是否檢測到誤差比特。如果步驟1207確定沒有誤差比特,則在步驟1209中確定所捕捉數(shù)組位置的X、Y坐標。對于步驟1211,如果X、Y坐標滿足局部約束,即,坐標在目的區(qū)域內(nèi),則過程1200在步驟1213中提供X、Y位置(諸如給另一個過程或用戶接口)。否則,步驟1215提供失敗指示。
如果步驟1207檢測到b中的誤差比特,為了在誤差比特存在的情況下解碼,就執(zhí)行組成部分1253。步驟1217從所提取的比特1201中選擇另一組n比特(它與步驟1203中選擇的n比特至少相差一個比特)。步驟1221和1223確定為了解碼所提取的比特所需要反復的次數(shù)(循環(huán)次數(shù))。步驟1225通過測試在步驟1219中獲取的哪些候選者滿足局部約束來確定所捕捉數(shù)組的位置。將更詳細地討論步驟1217-1225。
智能比特選擇步驟1203從所提取比特1201(具有K個比特)中隨機地選擇n比特,并求出r1??墒褂梅匠?5)來計算被解碼的比特。設I1={k∈{1,2,…,K}|bk=k},I1={k∈{1,2,…,K}|bk≠k},其中k是的第k個比特,B1={bk|k∈I1}且B1={bk|k∈I1},即,B1是解碼結(jié)果與原始比特相同的比特,且B1是解碼結(jié)果與原始比特不同的比特,I1和I1是這些比特相應的下標。應該理解,當從B1中選擇任意n比特時,將獲得相同的r1。因此,如果不仔細選擇下n個比特,所選擇的比特可能是B1的子集,這會導致獲得相同的r1。
為了防止這樣的情況,步驟1217依照以下的過程選擇下n個比特1.從B11303中選擇至少一個比特,其余的比特隨機地從B11301和B11303中選出,如對應于比特排列1351的圖13所示。接著過程1200通過計算b^2t=r2tM2]]>得出r2,并找出B21305、1309和B21307、1311。
2.重復步驟1。當對每個Bi(i=1,2,3…,x-1,其中x是當前循環(huán)數(shù)目),選擇下n個比特時,至少有一個比特是從Bi中選出的。當沒有這樣的比特子集可被選擇或達到循環(huán)次數(shù)時,該反復終止。
循環(huán)次數(shù)計算使用糾錯組成部分1253,在每次循環(huán)后調(diào)整所需反復次數(shù)(循環(huán)次數(shù))。由期望的誤差率來確定循環(huán)次數(shù)。其中并非所有被選擇的n比特都是正確的期望誤差率pe是pe=(1-CK-nenCKn)lt≈-e-lt(K-nK)ne---(6)]]>其中l(wèi)t表示循環(huán)次數(shù),它由一個常數(shù)初始化,K是從所捕捉數(shù)組中提取的比特的數(shù)目,ne表示在過程1200的反復期間出現(xiàn)的最小數(shù)目的誤差比特,n是m-數(shù)組的階數(shù),且CKn是組合的數(shù)目,其中n比特是從K比特中選取的。
在該實施例中,我們希望pe小于e-5=0.0067。與(6)結(jié)合,我們得到lti=min(lti-1,5(K-nK)ne+1)---(7)]]>調(diào)整循環(huán)次數(shù)會顯著地減少糾錯所需的過程1253反復的次數(shù)。
使用局部約束來確定X、Y位置在步驟1209和1225中,被解碼的位置應該在目的區(qū)域內(nèi)。所述目的區(qū)域是算法的輸入,且根據(jù)不同的應用,它可以是各種尺寸和位置,或簡單地是整個m-數(shù)組。一般地,它可以由應用預知。例如,如果已確定先前的位置,考慮到書寫速度,當前筆尖的目的區(qū)域應該接近先前的位置。然而,如果筆被提起,那么它的下一個位置可以是任何地方。因此,在這種情況下,目的區(qū)域應該是整個m-數(shù)組。由以下步驟確定正確的X、Y位置。
在步驟1224中,過程1200選擇ri,其相應的誤差比特的數(shù)目少于Ne=log10(3lt)log10(K-nK)×log10(10lr)---(8)]]>其中l(wèi)t是實際的循環(huán)次數(shù),且lr表示局部約束率,由以下計算 其中L是m-數(shù)組的長度。
步驟1224以誤差比特數(shù)目升序來對ri排序。接著,步驟1225、1211和1212找出第一ri,在該ri中相應的X、Y位置在目的區(qū)域內(nèi)。最后,步驟1225、1211和1212返回X、Y位置作為結(jié)果(經(jīng)由步驟1213),或返回解碼程序失敗的指示(經(jīng)由步驟1215)。
增強的解碼和糾錯程序的說明性例子一說明性例子說明了如由組成部分1251和1253所執(zhí)行的過程1200。假設n=3,K=5,I=(I0I1…I6)t是階數(shù)n=3的m-序列。那么A=I0I1I2I3I4I5I6I6I0I1I2I3I4I5I5I6I0I1I2I3I4---(10)]]>同樣假設所提取比特b=(b0b1b2b3b4)t,其中K=5,實際上是m-序列的第s、(s+1)、(s+3)、(s+4)和(s+6)比特(這些數(shù)目實際上是m-數(shù)組長度L=2n-1=23-1=7的模數(shù))。因此M=I0I1I3I4I6I6I0I2I3I5I5I6I1I2I4---(11)]]>它是由A的第0、1、3、4和6列組成。唯一地確定m-數(shù)組中b0的X、Y位置的數(shù)字s可在解出r=(r0r1r2)t后計算出,所述r=(r0r1r2)t被期望實現(xiàn)bt=rtM。由于b中可能的誤差比特,可能不能完全地實現(xiàn)bt=rtM。
過程1200利用以下的程序。從b中隨機地選擇n=3比特,為b~1t=b0b1b2.]]>求出r1b~1t=r1tM~1---(12)]]>其中 由M的第0、1和2列組成。(注意, 是n×n矩陣,且r1t是1×n向量,這樣 是所選比特的1×n向量。)接著,計算被解碼的比特1t=r1tM (13)其中M是n×K矩陣,且r1t是1×n向量,使得1t是1×K向量。如果1等于b,即,沒有檢測到誤差,那么步驟1209確定X、Y位置,且步驟1211確定解碼的位置是否在目的區(qū)域內(nèi)。如果是,解碼是成功的,就執(zhí)行步驟1213。否則,如圖1215所示,解碼失敗。如果1不同于b,那么在b中檢測到誤差比特,就執(zhí)行組成部分1253。步驟1217確定集合B1,為{b0b1b2b3},其中解碼的比特與原始比特相同。因此,B1={b4}(對應于圖13中的比特排列1351)。循環(huán)次數(shù)(lt)被初始化為一常量,例如,100,根據(jù)應用,它是可變化的。注意,對應于r1的誤差比特數(shù)等于1。接著,步驟1221根據(jù)方程(7)來更新循環(huán)次數(shù)(lt),lt1=min(lt,13)=13。
步驟1217接著從b選擇另外的n=3比特。如果這些比特都屬于B1,即{b0b2b3},那么步驟1219將再次確定r1。為了防止這樣的重復,步驟1217會從B1選擇(舉例而言)一個比特{b4},并保留來自B1的兩個比特{b0b1}。
所選擇的三個比特形成了b~2t=b0b1b4.]]>步驟1219求出r2b~2t=r2tM~2---(14)]]>其中 由M的第0、1和4列組成。
步驟1219計算b~2t=r2tM.]]>找出這樣的B2,例如{b0b1b4},使得2和b是相同的。那么B2={b2b3}(對應于圖13中的比特排列1353)。步驟1221根據(jù)方程(7)更新循環(huán)次數(shù)(lt)。注意與r2相關聯(lián)的誤差比特的數(shù)目等于2。代入(7),lt2=min(lt1,32)=13。
因為需要執(zhí)行另一反復,步驟1217從b中選擇另外的n=3比特。所選擇的比特應該不都屬于B1或B2。因此,步驟1217,舉例而言,可從B1選擇一個比特{b4},從B2選擇一個比特{b2}并保留一個比特{b0}。
繼續(xù)所述的對r求解、比特選擇和循環(huán)次數(shù)調(diào)整,直至我們不能選出任何新的n=3比特,它們不完全屬于任何先前的Bi,或達到了最高循環(huán)次數(shù)lt。
假設過程1200計算5個ri(i=1,2,3,4,5),其誤差比特的數(shù)目分別對應于1、2、4、3、2。(實際上,對于這個例子,誤差比特數(shù)目不能超過2,但說明性例子示出了更大數(shù)目的誤差比特以說明該算法)。舉例而言,步驟1224選擇ri的例如r1,r2,r4,r5,其對應的誤差比特數(shù)低于(8)中所示的Ne。
步驟1224以所選擇向量r1,r2,r4,r5誤差比特數(shù)的升序來對它們排序r1,r2,r5,r4。步驟1225、1211和1212從已排序的候選列表中找出第一向量r,例如r5,其對應的位置在目的區(qū)域以內(nèi)。接著,步驟1213輸出對應的位置。如果沒有一個位置是在目的區(qū)域以內(nèi)的,解碼程序失敗,如步驟1215所示的。
裝置圖14示出了依照本發(fā)明的實施例對從所捕捉的數(shù)組提取的比特1201進行解碼的裝置1400。裝置1400包含比特選擇模塊1401、解碼模塊1403、位置確定模塊1405、輸入接口1407和輸出接口1409。在這個實施例中,接口1407會從不同的來源接收提取的比特1201,所述的來源包括支持照相機203的模塊(如圖2A中所示)。比特選擇模塊1401依照步驟1203和1217從提取的比特中選擇n比特。解碼模塊1403依照步驟1204和1219解碼所選擇的比特(如由比特選擇模塊1401選擇的,從K個提取比特中選取的n比特),以確定檢測到的比特誤差和相應的向量ri。解碼模塊1403將確定的向量ri提交給位置確定模塊1405。位置確定模塊1405依照步驟1209和1225確定所捕捉數(shù)組的X、Y坐標。位置確定模塊1405將結(jié)果提交給輸出接口1409,如果成功,所述的結(jié)果包括X、Y坐標,如果不成功,所述的結(jié)果為一失敗指示。輸出接口1409會將結(jié)果提交給另一模塊,所述另一模塊可執(zhí)行進一步的處理或可顯示該結(jié)果。
裝置1400可以設想不同形式的實現(xiàn),包括利用計算機可讀媒質(zhì)的模塊和利用諸如專用集成電路(ASIC)等專門硬件的模塊。
本領域的技術人員會理解,可以利用帶有包含用于控制計算機系統(tǒng)的指令的相關聯(lián)的計算機可讀媒質(zhì)的計算機系統(tǒng)來實現(xiàn)這里所揭示的示例性實施例。所述計算機系統(tǒng)會包括至少一臺計算機,諸如微處理器、數(shù)字信號處理器和相關聯(lián)的外圍電子線路。
雖然使用所附的權利要求來定義本發(fā)明,但這些權利要求是說明性的,本發(fā)明意在包含這里所描述的元素和步驟的任何組合或子組合。因此,有許多可替換組合可用于定義本發(fā)明,它們包含來自本說明書的一個或多個元素的各種組合和子組合,包括描述、權利要求和附圖。按照本發(fā)明,本發(fā)明各方面的可替換組合,無論是單獨或與這里所定義的一個或多個元素或步驟相組合,可被用作本發(fā)明的修改和替換,或作為本發(fā)明的一部分,這對于相關領域的技術人員是顯而易見的。這里所包含的對本發(fā)明的書面描述意在包括所有這樣的修改和替換。
權利要求
1.一種用于確定所捕捉數(shù)組位置的方法,其特征在于,所述的方法包括(A)獲取與所捕捉數(shù)組相關聯(lián)的所提取的比特;(B)如果不存在誤差比特,則確定位置坐標;以及(C)如果存在誤差比特,則通過非重復比特選擇,從所提取的比特的一部分確定所述位置坐標,其中,所述的位置坐標符合一局部約束。
2.如權利要求1所述的方法,其特征在于,所述(B)包含(i)從所提取的比特中選擇第一子集;(ii)解碼所述第一子集;以及(iii)響應于(ii),如果沒有檢測到誤差比特,確定所捕捉數(shù)組的位置坐標。
3.如權利要求2所述的方法,其特征在于,所述(ii)利用第一矩陣方程b~t=rtM~,]]>其中 是M的子矩陣,來確定向量r。
4.如權利要求3所述的方法,其特征在于,所述(ii)還利用第二矩陣方程t=rtM來確定經(jīng)解碼的比特。
5.如權利要求2所述的方法,其特征在于,所述(iii)包含(1)將經(jīng)解碼的比特與所提取的比特作比較。
6.如權利要求1所述的方法,其特征在于,所述(C)包含(i)如果檢測到誤差比特,則從所提取的比特中選一擇不同的子集,其中,所述不同子集中至少一個比特是來自先前的誤差比特集;(ii)解碼所述不同子集的相應比特;(iii)響應于(ii),確定是否應執(zhí)行另一解碼反復;(iv)如果應執(zhí)行另一解碼反復,則從所提取的比特中選擇另一子集并重復(ii);以及(v)如果不應執(zhí)行另一解碼反復,則確定所捕捉數(shù)組的位置坐標。
7.如權利要求6所述的方法,其特征在于,由t=rtM計算所得的比特和所提取的比特是不同的。
8.如權利要求2所述的方法,其特征在于,所述(B)還包含(iv)驗證所述位置坐標在一目的區(qū)域內(nèi)。9.如權利要求6所述的方法,其特征在于,所述(C)還包含(vi)驗證所述位置坐標在一目的區(qū)域內(nèi)。
10.如權利要求2所述的方法,其特征在于,所述(i)包含(1)隨機地從所提取的比特中選擇所述第一子集的組成比特。
11.如權利要求6所述的方法,其特征在于,所述(i)包含(1)以根據(jù)經(jīng)解碼的比特是否在所述方法的前一次反復中滿足矩陣方程bt=rtM的方式,從所提取的比特中選擇所述不同子集的相應比特;以及(2)計算從t=rtM計算出的比特和所提取的比特之間有多少不同比特。
12.如權利要求6所述的方法,其特征在于,所述(v)包含(1)如果確定的向量對應于低于一閥值的誤差比特數(shù),則選擇所確定的向量ri;以及(2)響應于(1),根據(jù)相應的誤差比特數(shù)的升序?qū)Χ鄠€所確定的向量排序。
13.如權利要求12所述的方法,其特征在于,所述(v)還包含(3)響應于(2),找出對應于一目的區(qū)域內(nèi)所述位置坐標的第一解。
14.如權利要求13所述的方法,其特征在于,所述(v)還包含(4)如果沒有位于所述目的區(qū)域內(nèi)的解,則指示解碼失敗。
15.如權利要求6所述的方法,其特征在于,所述(iii)包含(1)根據(jù)誤差比特的期望誤差率,調(diào)整所述方法所需的反復次數(shù)。
16.如權利要求6所述的方法,其特征在于,所述(ii)包含(1)通過利用第一矩陣方程b~t=rtM~,]]>確定向量r;(2)通過利用第二矩陣方程t=rtM,計算經(jīng)編碼的比特,其中,所述向量由(1)確定;以及(3)將經(jīng)解碼的比特和所提取的比特作比較,以找出若干誤差比特。
17.一種具有用于執(zhí)行權利要求1所述的方法的計算機可執(zhí)行指令的計算機可讀媒質(zhì)。
18.一種具有用于執(zhí)行權利要求2所述的方法的計算機可執(zhí)行指令的計算機可讀媒質(zhì)。
19.一種具有用于執(zhí)行權利要求6所述的方法的計算機可執(zhí)行指令的計算機可讀媒質(zhì)。
20.一種確定所捕捉數(shù)組的位置坐標的裝置,其特征在于,它包含(a)一比特選擇模塊,它應用一智能策略來選擇比特的子集,所述比特子集含有來自先前誤差比特集的至少一個比特,所述子集從對應于所捕捉數(shù)組的所提取比特中選擇;(b)一解碼模塊,它處理所述比特的子集,以確定關于所提取比特的誤差信息,并且從所述誤差信息確定是否需要另一解碼的反復;以及(c)一位置確定模塊,它處理所述誤差信息,以確定所捕捉數(shù)組的位置坐標,其中,所述位置坐標在一目的區(qū)域內(nèi)。
21.如權利要求20所述的裝置,其特征在于,它還包含一輸入接口,它接收所提取的比特,并將所提取的比特提交給所述比特選擇模塊用于處理。
22.如權利要求20所述的裝置,其特征在于,所述的解碼模塊為第i次反復計算位置矩陣ri,并通過將根據(jù)t=rtM所確定的經(jīng)解碼比特與所提取比特作比較來確定誤差比特。
23.如權利要求20所述的裝置,其特征在于,它還包含一輸出接口,它提供所捕捉數(shù)組的位置坐標,其中,所述位置坐標由所述位置確定模塊確定。
24.一種用于確定所捕捉數(shù)組的位置坐標的方法,其特征在于,所述方法包含(A)接收與所捕捉數(shù)組相關聯(lián)的所提取的比特;(B)從所提取的比特中選擇第一比特子集;(C)解碼所述第一比特子集;(D)如果沒有檢測到誤差比特,確定所捕捉數(shù)組的位置坐標,所述位置坐標在一目的區(qū)域內(nèi);(E)從所提取的比特中選擇一不同的子集,其中,所述不同子集的至少一個比特不滿足矩陣方程t=rtM;(F)解碼所述不同子集的所選擇的比特;(G)調(diào)整執(zhí)行(F)的反復次數(shù),所述次數(shù)按照(F)的結(jié)果來調(diào)整;(H)如果應當執(zhí)行另一解碼反復,重復(E)-(G);以及(I)如果不應執(zhí)行另一解碼反復,確定所捕捉數(shù)組的位置坐標,其中,所述位置坐標在所述目的區(qū)域內(nèi)。
全文摘要
描述了一種用于從較大的圖像中確定所捕捉數(shù)組位置的過程和裝置。一非重復序列可以被折疊成一非重復數(shù)組,其中,所述數(shù)組對于給定尺寸的每個鄰近窗口都是唯一的。會捕捉到鄰近窗口數(shù)組的一部分,并解碼對應于所捕捉數(shù)組的所提取比特的子集來標識誤差比特。通過進一步處理所述經(jīng)解碼的比特,以在非重復數(shù)組中確定所捕捉數(shù)組的位置。
文檔編號G06T7/40GK1744104SQ200510004179
公開日2006年3月8日 申請日期2005年1月6日 優(yōu)先權日2004年1月6日
發(fā)明者王堅, 王強, 馬曉旭, 李越, 林宙辰 申請人:微軟公司