專利名稱:檢測墨水輸入中的手繪對象的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及計算機(jī)系統(tǒng),特別是涉及改進(jìn)過的檢測墨水輸入中的手繪對象的系統(tǒng)和方法。
(2)背景技術(shù)檢測和識別手繪對象對用戶能用墨水輸入或墨水注解直接繪制在他們的計算機(jī)上很重要。當(dāng)前的硬件和軟件也許能相當(dāng)好地捕獲代表手寫的墨跡,但現(xiàn)在還不能同樣地識別和表示手繪對象的含義。因此,用戶改為使用基于菜單的應(yīng)用程序來制作對象的繪圖??捎蛇@些應(yīng)用程序呈現(xiàn)各種形狀供用戶選擇和復(fù)制到繪圖網(wǎng)格上。隨后可將復(fù)制的形狀的大小調(diào)整到理想的比例,并且直至繪圖結(jié)束,用戶都可將附加的形狀放置到繪圖網(wǎng)格上并調(diào)整其大小。
至今,致力于手繪對象的形狀識別的研究產(chǎn)生了邊際結(jié)果。例如已使用了可從按特定次序做的特定數(shù)量的筆劃中識別圓圈或方框之類的簡單幾何形狀的增量識別算法。然而,為了識別特定的手繪形狀,這種增量算法依賴于筆劃次序和/或假定一特定數(shù)量的筆劃。這種方法由于幾種原因不是很穩(wěn)健。首先,所有的增量算法都不解決確定哪組筆劃是一起屬于(因?yàn)槟切┕P劃代表一個特定的形狀)哪個集合的分組問題。沒有能力將屬于一個形狀的筆劃組合在一起,增量算法也許不能容納箭頭之類的多筆劃。另外,因?yàn)樵隽克惴ㄒ蕾囉谝粋€形狀的筆劃次序和/或?yàn)槠浼俣ㄒ惶囟〝?shù)量的筆劃,增量算法無法解決過度描繪的問題(在繪制一個形狀時,可能會過度描繪一個筆劃)。
所需要的是一種對筆劃輸入次序和/或形成任何給定形狀所需的筆劃數(shù)量不敏感的用于檢測和識別手繪對象的形狀的方法。任何這種系統(tǒng)和方法都應(yīng)能檢測多筆劃手繪形狀并能確定哪組筆劃合在一起代表不同的形狀。
(3)發(fā)明內(nèi)容簡要地說,本發(fā)明提供檢測以墨水輸入的手繪對象的系統(tǒng)和方法。為此目的,提供了一個可檢測到諸如以墨水輸入的圖表之類的圖的檢測器。該檢測器可包括用于找到屬于一個容器的筆劃的容器檢測器,及用于找到屬于一個連接器的筆劃的連接器檢測器。可以通過執(zhí)行空間搜索和識別各個容器的筆劃的時間順序搜索來檢測到手繪的形狀。
一個實(shí)施例可使墨水筆劃適合合適尺寸的圖象網(wǎng)格并標(biāo)記與繪圖筆劃相交的網(wǎng)格。從圖象網(wǎng)格的外部邊緣開始,直到與繪圖筆劃相交的標(biāo)記網(wǎng)格,可將最外面的空白網(wǎng)格漫水填充。然后,可將網(wǎng)格內(nèi)出現(xiàn)的空白網(wǎng)格的任何島嶼漫水填充直到島嶼的邊界的標(biāo)記。然后就可以從圍繞被漫水填充的島嶼的邊界中識別出候選容器的繪圖筆劃。可核查任何候選容器來確定它們是有效容器。
在一個實(shí)施例中,也可在處理繪圖筆劃重疊的空間搜索之后,執(zhí)行時間次序搜索。一般來說,采用時間次序搜索通過確定輸入筆劃序列形成容器的似然性可以找到連續(xù)筆劃序列形成的容器。通過執(zhí)行時間次序搜索找到的任何附加的容器可標(biāo)記在用于空間搜索的圖象網(wǎng)格中,這樣在內(nèi)容檢測和連接器檢測期間,就可將任何找到的容器包括在圖象網(wǎng)格中備用。
一旦在圖象網(wǎng)格中檢測到任何容器及與它們相關(guān)聯(lián)的內(nèi)容,可執(zhí)行連接器檢測。一般來說,在可以在用容器標(biāo)記的圖象網(wǎng)格中執(zhí)行搜索,以檢測任何在未經(jīng)訪問(unvisited)的繪圖筆劃的網(wǎng)格中的連接器??梢杂脟@容器邊界的經(jīng)標(biāo)記的網(wǎng)格膨脹與未經(jīng)訪問的繪圖筆劃不相鄰的任何容器,以使連接器與相應(yīng)的容器相鄰。然后,可將未經(jīng)訪問的繪圖筆劃的網(wǎng)格漫水填充,而那些到達(dá)兩個或兩個以上容器的漫水填充的網(wǎng)格(包括經(jīng)膨脹的容器)可識別候選連接器的相應(yīng)繪圖筆劃。可核查任何候選連接器來確定它們是有效連接器。
有利的是系統(tǒng)和方法對筆劃輸入次序和形成手繪形狀的筆劃數(shù)量不敏感。另外,可將該系統(tǒng)和方法用于檢測繪圖中任何閉合容器的和未閉合的連接器。一旦檢測到,則可以識別出形狀的類型、位置、方向和大小。
從以下結(jié)合附圖的詳細(xì)描述中,其它優(yōu)點(diǎn)將變得很明顯。
(4)
圖1為通常表示可合并本發(fā)明的計算機(jī)系統(tǒng)的方框圖;圖2為一般表示根據(jù)發(fā)明的一個方面的用于以墨水輸入的手繪對象的檢測和手繪對象的形狀識別的系統(tǒng)部件的示例結(jié)構(gòu)的方框圖;圖3為一般表示根據(jù)發(fā)明的一個方面的為檢測以墨水輸入的手繪對象和識別手繪對象的形狀所采取的步驟的流程圖;圖4為一般表示根據(jù)發(fā)明的一個方面的用在執(zhí)行以墨水輸入的手寫對象的檢測和手繪對象的形狀識別之間的結(jié)構(gòu)關(guān)系的示例圖;圖5A-5C為一般表示根據(jù)發(fā)明的一個方面的支持手繪對象的檢測和識別的墨水輸入中的容器類型的示例圖;圖6A-6D為一般表示根據(jù)發(fā)明的一個方面的支持手繪對象的檢測和識別的墨水輸入中的連接器的類型的示例圖;圖7為一般表示根據(jù)發(fā)明的一個方面為檢測墨水輸入中的容器和連接器而采取的步驟的一個實(shí)施例的流程圖;圖8為一般表示根據(jù)發(fā)明的一個方面為檢測的墨水輸入中的容器而采取的步驟的一個實(shí)施例的流程圖;圖9為一般表示根據(jù)發(fā)明的一個方面為執(zhí)行空間搜索以檢測容器而采取的步驟的一個實(shí)施例的流程圖;圖10A-10C為一般表示根據(jù)發(fā)明的一個方面在空間搜索的各個步驟期間圖象網(wǎng)格中的容器的描繪的示例圖;圖11A-11C為一般表示根據(jù)發(fā)明的一個方面在空間搜索期間用于圖象網(wǎng)格中確認(rèn)的候選容器的描繪的示例圖;圖12為一般表示根據(jù)發(fā)明的一個方面的候選容器的有效區(qū)域的描繪的示例圖;圖13為一般表示根據(jù)發(fā)明的一個方面的候選容器的筆劃數(shù)的分組的描繪的示例圖;圖14為一般表示根據(jù)發(fā)明的一個方面為執(zhí)行時間次序搜索而采取的步驟的一個實(shí)施例的流程圖;圖15為一般表示根據(jù)發(fā)明的一個方面為執(zhí)行容器的內(nèi)容檢測而采取的步驟的一個實(shí)施例的流程圖;圖16為一般表示根據(jù)發(fā)明的一個方面的容器內(nèi)容的檢測的示例圖;圖17為一般表示根據(jù)發(fā)明的一個方面為檢測墨水輸入中的連接器而采取的步驟的一個實(shí)施例的流程圖;圖18A-18B為一般表示根據(jù)發(fā)明的一個方面的檢測墨水輸入中的連接器的描繪的示例圖;圖19A-19B為一般表示根據(jù)發(fā)明的一個方面的檢測墨水輸入中的候選連接器的描繪的示例圖;圖20A-20C為一般表示根據(jù)發(fā)明的一個方面的有效和無效候選連接器的描繪的示例圖;圖21為一般表示根據(jù)發(fā)明的一個方面在執(zhí)行繪圖對象的檢測之后墨水輸入中的手寫對象的結(jié)構(gòu)關(guān)系的示例圖;(5)具體實(shí)施方式
圖1示出可實(shí)施本發(fā)明的合適的計算系統(tǒng)環(huán)境100的例子。計算系統(tǒng)環(huán)境100只是合適的計算環(huán)境的一個例子,并不旨在限定本發(fā)明的使用范圍和功能。不應(yīng)將計算環(huán)境100解釋成依賴于或需要示例操作環(huán)境100中所示的任何一個部件或其組合。
本發(fā)明可用許多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置操作。熟知的可適合與本發(fā)明一起使用的計算系統(tǒng)、環(huán)境、和/或配置包括,但不限于個人電腦、服務(wù)器計算機(jī)、手提或膝上設(shè)備、圖形輸入板設(shè)備、無頭服務(wù)器、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程的消費(fèi)電子產(chǎn)品、網(wǎng)絡(luò)PC機(jī)、微型計算機(jī)、大型計算機(jī)、包括任何以上系統(tǒng)或設(shè)備的分布式計算機(jī)環(huán)境等等。
本發(fā)明可以在計算機(jī)可執(zhí)行指令的一般上下文中描述,例如由計算機(jī)執(zhí)行的程序模塊。一般來說,程序模塊包括執(zhí)行特定任務(wù)或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類型的例行程序、程序、對象、部件、數(shù)據(jù)結(jié)構(gòu)等等。本發(fā)明也可應(yīng)用于分布式計算環(huán)境中,在該環(huán)境中任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行的。在分布式計算環(huán)境中,可將程序模塊定位于包含存儲器設(shè)備的本地和/或遠(yuǎn)程計算機(jī)存儲器媒體中。
參見圖1,用于實(shí)施本發(fā)明的示例系統(tǒng)包括以計算機(jī)110形式的通用計算裝置。計算機(jī)110的部件可包括,但不限于處理單元120、系統(tǒng)存儲器130、和連接各種系統(tǒng)部件(包括將系統(tǒng)存儲器連接至處理單元120)的系統(tǒng)總線121。系統(tǒng)總線121可以是幾種總線結(jié)構(gòu)(包括存儲器總線或存儲器控制器、外圍總線、和使用各種總線結(jié)構(gòu)中任一種的本地總線)中的任一種。作為示例而非限定,這種結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、微通道結(jié)構(gòu)(MCA)總線、擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)本地總線、和外部設(shè)備互連(PCT)總線(也稱為夾層總線)。
計算機(jī)110通常包括各種計算機(jī)可讀媒體。計算機(jī)可讀媒體可以是可由計算機(jī)110訪問的任何可用媒體,并包括以任何方法或技術(shù)實(shí)施的用于存儲信息的易失性和非易失性媒體,及可移動/不可移動媒體,作為示例而非限定,計算機(jī)可讀媒體可包括計算機(jī)存儲媒體和通信媒體。計算機(jī)存儲媒體包括以任何用于存儲信息的方法或技術(shù)(例如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù))實(shí)施的易失性和非易失性、可移動和不可移動媒體。計算機(jī)存儲器媒體包括,但不限于RAM、ROM、EEPROM、閃存或其它存儲技術(shù)、CD-ROM、數(shù)字通用光盤(DVD)或其它光盤存儲器、磁帶盒、磁帶、磁盤存儲器或其它磁存儲裝置、或任何可用于存儲可由計算機(jī)110訪問的想要的信息的其它媒體。通信媒體通常體現(xiàn)計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或以已調(diào)制的數(shù)據(jù)信號(例如載波或其它傳輸機(jī)制)形式的其它數(shù)據(jù)并包括任何信息傳輸媒體?!耙颜{(diào)制的數(shù)據(jù)信號”一詞指一個信號一個或多個屬性被設(shè)定,或以編碼信號中的信息的方式被改變。作為示例而非限定,通信媒體包括有線網(wǎng)絡(luò)或直接連線連接之類的有線媒體,以及諸如聲、RF、紅外線的無線媒體及其它無線媒體。任何上述媒體的組合也應(yīng)包括在計算機(jī)可讀媒體的范圍內(nèi)。
系統(tǒng)存儲器130包括以諸如只讀存儲器(ROM)131和隨機(jī)存儲器(RAM)132之類的易失性和/或非易失性存儲器形式的計算機(jī)存儲媒體。包括幫助在計算機(jī)110的元件之間傳輸信息(例如在啟動期間)的基本例行程序的基本輸入/輸出系統(tǒng)133(BIOS)通常被存儲在ROM131中。RAM132通常包括可由處理單元120立即訪問和/或當(dāng)前由處理單元120操作的數(shù)據(jù)和/或程序模塊。作為示例而非限定,圖1示出操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計算機(jī)110也可包括其它可移動/不可移動、易失性和非易失性計算機(jī)存儲媒體。僅作為示例,圖1示出硬盤驅(qū)動器141(它從不可移動媒體、非易失性磁媒體讀取或?qū)懭氩豢梢苿用襟w、非易失性磁媒體)、磁盤驅(qū)動器151(它從可移動、非易失性磁盤152讀取或?qū)懭肟梢苿印⒎且资源疟P152)、及光盤驅(qū)動器155(它從諸如CD ROM或其它光媒體之類的可移動、非易失性光盤156讀取或?qū)懭胫T如CD ROM或其它光媒體之類的可移動、非易失性光盤156)。其它可用于示例操作環(huán)境中的可移動/不可移動、易失性和非易失性計算機(jī)存儲媒體包括,但不限于盒式磁帶、閃存卡、數(shù)字通用光盤、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。通常通過諸如接口140之類的不可移動存儲器接口將硬盤驅(qū)動器141連接到系統(tǒng)總線121,并通過諸如接口150之類的不可移動存儲器接口將磁盤驅(qū)動器151和光盤驅(qū)動器155。
上述和圖1中示出的驅(qū)動器及與它們相關(guān)聯(lián)的計算機(jī)存儲媒體為計算機(jī)110提供計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)。在圖1中,例如硬盤驅(qū)動器141被示為存儲操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146及程序數(shù)據(jù)147。注意這些部件既可以與操作系統(tǒng)134、應(yīng)用程序135、其它程序模塊136及程序數(shù)據(jù)137相同,也可以與之不同。這里給予存儲操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊146及程序數(shù)據(jù)147不同的編號是為了至少表示了它們是不同的副本。用戶可通過諸如圖形輸入板、或電子數(shù)字化轉(zhuǎn)換器164、麥克風(fēng)163、鍵盤162和指點(diǎn)裝置161(通常稱為鼠標(biāo)、跟蹤球或觸摸輸入板)之類的輸入裝置將命令和信息輸入到計算機(jī)110。圖1中未示出的其它輸入裝置可包括操縱桿、游戲板、圓盤式衛(wèi)星電視天線、掃描儀或包括了包含生物測定傳感器、環(huán)境傳感器、位置傳感器或其它類型的傳感器的裝置的其它裝置。這些和其它輸入裝置通常由耦合至系統(tǒng)總線的用戶輸入接口160連接到處理單元120,但也可由諸如并行端口、游戲端口或通用串行總線(USB)之類的其它接口和總線結(jié)構(gòu)連接。監(jiān)視器191或其它類型的顯示裝置也通過諸如視頻接口190之類的接口連接到系統(tǒng)總線121。也可將監(jiān)視器191與觸摸輸入板等一體化。注意可以將監(jiān)視器和/或觸摸輸入板物理連接至合并了計算裝置110的機(jī)架(例如在一圖形輸入板型的個人電腦中)。另外,諸如計算裝置110之類的計算機(jī)也可包括其它外圍輸出設(shè)備,如揚(yáng)聲器195和打印機(jī)196,它們可以通過輸出外圍接口194等連接。
本發(fā)明中的計算機(jī)110可以使用到一個或多個如遠(yuǎn)程計算機(jī)180那樣的遠(yuǎn)程計算機(jī)邏輯連接,在聯(lián)網(wǎng)的環(huán)境中操作。該遠(yuǎn)程計算機(jī)180可以是個人電腦、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等裝置或其它公共網(wǎng)絡(luò)節(jié)點(diǎn)并通常包括上述與計算機(jī)110相關(guān)的全部或許多元件,盡管圖1僅示出了存儲裝置181。圖1示出的邏輯連接包括局域網(wǎng)(LAN)171和廣域網(wǎng)(WAN)173,但也可包括其它網(wǎng)絡(luò)。這種連網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部互聯(lián)網(wǎng)和因特網(wǎng)中是很常見的。
當(dāng)用于LAN的網(wǎng)絡(luò)環(huán)境中時,計算機(jī)110通過網(wǎng)絡(luò)接口和適配器170連接到LAN171。當(dāng)用于WAN的網(wǎng)絡(luò)環(huán)境中時,計算機(jī)110通常包括調(diào)制解調(diào)器172和用于在WAN173(例如因特網(wǎng))上建立通信的其它裝置。該調(diào)制解調(diào)器172(可以是內(nèi)置的或外接的)可以通過用戶輸入接口160或其它合適的機(jī)構(gòu)連接到系統(tǒng)總線121。在聯(lián)網(wǎng)的環(huán)境中,相對所述的與計算機(jī)110畫出的程序模塊或其一部分可以存儲在遠(yuǎn)程存儲裝置中。作為示例而非限定,圖1示出在存儲器裝置181上的遠(yuǎn)程應(yīng)用程序185。我們將會理解所示的網(wǎng)絡(luò)連接是示例性的,還可以用其它在計算機(jī)之間建立通信鏈路的方法。
檢測手繪對象本發(fā)明通常針對用于檢測諸如墨水輸入中的圖表之類的圖的系統(tǒng)和方法。如這里使用的那樣,手繪對象指任何手寫的非字符的形狀或繪圖。用戶可不受手繪輸入的限制自由地畫圖和畫流程圖。一個形狀可以有許多筆劃,且輸入筆劃的次序可以是任意的,使得系統(tǒng)和方法可將任何墨水作為輸入接受。正如這里所用的,墨水一般意謂手寫的一筆或多筆筆劃。另外,筆劃可以是過度繪制或重疊的。在這兩種情況下,該系統(tǒng)和方法都可自動地檢測到正確的形狀。
具體來說,該系統(tǒng)和方法可以檢測容器的手繪形狀以及容器之間所畫的連接器以用于形狀識別。如這里使用的那樣,容器指任何閉合的繪圖對象。如這里使用的那樣,連接器指任何連接容器的繪圖對象。如將會理解的那樣,這里所述的各種方框圖,流程圖和情況只是示例,本發(fā)明還會應(yīng)用于許多其它的情況。
回到圖2,它示出了一般表示手繪對象的檢測和形狀識別的系統(tǒng)部件的示例結(jié)構(gòu)的方框圖。那些本領(lǐng)域的技術(shù)人員會理解可以將在圖中所示的方框中實(shí)施的功能作為分開的部件實(shí)施,或可以在一個單個的部件中實(shí)施幾個或所有方框的功能。例如可以將圖表檢測器204的功能包括在形狀識別器206中?;蚩蓪⑷萜鳈z測器212的功能作為一個分開的部件實(shí)施。
墨水解析器202可接受任何墨水,包括具有繪圖對象的墨水。墨水解析器202可包括一可操作地耦合的圖表檢測器204和可操作地耦合的形狀識別器206。一般來說,圖表檢測器204和形狀識別器206可以是諸如核心部件、應(yīng)用程序、鏈接程序庫、對象等等之類任何類型的可執(zhí)行軟件代碼。圖表檢測器204可包括可操作地耦合的容器檢測器212和可操作地耦合的連接器檢測器214,而形狀識別器206可包括可操作地耦合的容器識別器208和可操作地耦合的連接器識別器210。容器識別器208可包括任何數(shù)量的可操作地耦合的分類器,例如橢圓/圓分類器216、多邊形分類器218、三角形分類器220、四邊形分類器222等等。連接器識別器210可包括任何數(shù)量的可操作地耦合的識別器,例如基干識別器224、箭頭識別器226等等。這些部件中的每一個都可以是諸如核心部件、應(yīng)用程序、鏈接程序庫、對象等等之類任何類型的可執(zhí)行軟件代碼或其它類型的可執(zhí)行軟件代碼。
圖3示出一般表示為手繪對象的檢測和形狀識別所采取的步驟的流程圖。在步驟302中,包括具有繪圖對象的墨水在內(nèi)的任何墨水都可被解析。例如在一個實(shí)施例中,一頁墨水可作為輸入接受并被解析。在此實(shí)施例中,例如墨水解析器可能不具有在該頁面上的墨水的先驗(yàn)知識。因此,可以執(zhí)行諸如詞分組、寫/繪圖分類和繪圖分組之類的基礎(chǔ)算法。為了執(zhí)行詞分組,可將筆劃分組到詞、線和塊的層次級別中。這樣,詞分組過程可包括筆劃的特征提取,以捕獲距離、幾何相異點(diǎn)和線性及其它筆劃特征。詞分組過程還可包括根據(jù)暫時信息將筆劃分組的動態(tài)編程。詞分組過程還可包括根據(jù)空間信息聚類以分組筆劃。在組中識別的詞、線和塊不必與現(xiàn)實(shí)的語義詞、線和塊相對應(yīng)。實(shí)際上,這些組可包括手繪對象的筆劃。
為了執(zhí)行寫/繪圖分類,可識別各種特征來區(qū)別寫和畫。例如可將諸如曲率、密度和其它手寫模塊特征之類的單字特征用于區(qū)分寫和畫。在一個實(shí)施例中,可將諸如臨時和空間語境特征之類的語境特征用于區(qū)分寫和畫。可將各特征映射至模糊函數(shù),并根據(jù)模糊函數(shù)的組合確定寫和畫之間的分類。
在執(zhí)行詞分組和寫/繪圖分類之后,可通過執(zhí)行繪圖分組來很好地組織繪圖筆劃??筛鶕?jù)它們之間的空間關(guān)系將繪圖筆劃分組成單個的對象來執(zhí)行繪圖分組??蓪⒁挥行У幕诰W(wǎng)格的方法用于使墨水筆劃適合于具有合適尺寸的圖象網(wǎng)格??蓸?biāo)志圖象網(wǎng)格來找到連接的部件。每個連接的部件可對應(yīng)于一繪圖對象??蓪l(fā)式規(guī)則用于調(diào)節(jié)繪圖對象。
在步驟304中,可通過找到屬于一個繪圖對象的所有筆劃來執(zhí)行圖表檢測,以對繪圖筆劃進(jìn)行分組。這樣用戶就能不受輸入限制自由地繪制圖表和流程圖了。例如一個形狀可具有許多筆劃而輸入次序可以是任意的。另外,筆劃可以是過度繪制或重疊的。在其中任何一種情況下,該系統(tǒng)都可自動地檢測到正確的形狀。在一個實(shí)施例中,可將超圖用于表示圖表和流程圖,這樣就可以完全地表示容器和連接器之間的關(guān)系了。因此,在此實(shí)施例中可以支持可與兩個以上容器相連的連接器。
在一個實(shí)施例中,容器檢測器212可以找到屬于一個容器的所有筆劃,而連接器檢測器214可以找到屬于一個連接器的所有筆劃。這樣,就可以按時間次序執(zhí)行最佳搜索以檢測任何容器。也可以執(zhí)行有效的搜索來檢測容器和連接器。最后,可以為每個檢測到的容器執(zhí)行內(nèi)容檢測。
在步驟306中,可以執(zhí)行形狀識別來識別容器和連接器。在為每個容器和每個連接器將所有的筆劃分組之后,形狀識別引擎206(在一個實(shí)施例中)可用于識別在諸如圖表之類的圖中的閉合的容器和未閉合的連接器。識別出之后,可提供該形狀的類型、位置、方向和大小。有利的是筆劃輸入的次序和筆劃的數(shù)量不影響識別。當(dāng)執(zhí)行形狀識別來識別閉合的容器和未閉合的連接器時,可在步驟308生成圖。
圖4示出一般表示用于執(zhí)行手繪對象的檢測和形狀識別的墨水輸入中的手寫對象的結(jié)構(gòu)關(guān)系的示例圖。根402可代表墨水輸入,例如一頁可包括一個或多個諸如繪圖對象404和406之類的繪圖對象的墨水輸入。繪圖對象404可具有相關(guān)聯(lián)的內(nèi)容,例如在結(jié)構(gòu)上可由段落408表示的文本,段落408由具有由筆劃414形成的詞412的行410組成??赏ㄟ^在墨水輸入中對手繪對象進(jìn)行檢測和形狀識別來檢測和識別繪圖對象404和406。
手繪對象可以是諸如圖或表之類的圖,通常包括容器和連接器。圖5A-5C提供通常示出墨水輸入中支持手繪對象的檢測和形狀識別的容器類型的示例圖??蓹z測和識別的支持容器可以是可形成閉合區(qū)域的任何類型的容器。這些容器的例子是圖5A中的容器502、圖5B中的容器504和圖5C中的容器506。諸如文本之類的內(nèi)容可包含在容器的閉合區(qū)域內(nèi)。圖6A-6D提供一般示出的墨水輸入中支持手繪對象的檢測和形狀識別的連接器類型的示例圖。可檢測和識別的支持連接器可以是與兩個或兩個以上容器相連的任何類型的連接器。這一連接器可以不包括箭頭,例如圖6A中的連接器606,包括一個箭頭,例如圖6B中的連接器612,包括兩個箭頭,圖6C中的連接器618,包括三個箭頭,例如圖6D中的連接器626。一個連接器可括同與之相連的容器一樣多的箭頭。
圖7示出一般表示為檢測具有容器和連接器的圖表而采取的步驟的一個實(shí)施例的流程圖;可以在步驟702為繪圖對象中的每個容器進(jìn)行容器檢測。然后在步驟704為繪圖對象中的每個連接器進(jìn)行連接器檢測。一般來說,可把繪圖對象中的容器看作具有在它們之間形成橋的連接器的二維平面中的島嶼。在一個實(shí)施例中,可以將繪圖對象的筆劃定位于圖象網(wǎng)格上,并將漫水填充算法用于檢測容器和連接器。
圖8示出一般表示為檢測墨水輸入中的容器而采取的步驟的一個實(shí)施例的流程圖。在步驟802中,可執(zhí)行空間搜索來檢測容器。有利的是空間搜索可以處理筆劃的任意輸入和筆劃的過度繪制。因?yàn)闀r間次序搜索更適合于處理筆劃的重疊,也可以在步驟804中進(jìn)行時間次序搜索來檢測用重疊的連續(xù)筆劃繪制的容器。可以在用于空間搜索的網(wǎng)格中標(biāo)記用時間次序搜索找到的附加容器,這樣就可以將找到的所有容器包括在圖象網(wǎng)格中以備以后內(nèi)容檢測和連接器檢測時用。在步驟806中,可以為任何容器進(jìn)行內(nèi)容檢測。在此步驟中,可以通過計算其邊界框與每個容器的交叉區(qū)域來確定諸如識別的詞之類的任何內(nèi)容是否可以屬于一個容器。
圖9示出一般表示為執(zhí)行空間搜索以檢測容器而采取的步驟的一個實(shí)施例的流程圖。在步驟902中,可生成一個圖象網(wǎng)格,且可將繪圖對象的筆劃定位在生成的網(wǎng)格上。在一個實(shí)施例中,可以將網(wǎng)格尺寸設(shè)定在合適的值以減少容器筆劃之間的間隙,但仍會在容器的內(nèi)部留下一個空的區(qū)域。為了選擇合適的值,可以通過核查檢測數(shù)據(jù)憑經(jīng)驗(yàn)確定網(wǎng)格的大小以確??梢詸z測到盡可能多的容器。由于這一確定,可以將網(wǎng)格尺寸設(shè)置在2.5mm。在步驟904中可以標(biāo)記與繪圖筆劃的交叉的網(wǎng)格。為了核查哪些網(wǎng)格與繪圖筆劃交叉,可以根據(jù)統(tǒng)一的步長對繪圖筆劃重新采樣,并可核查重新采樣的點(diǎn)在圖象網(wǎng)格中的位置。如圖10A所示,與容器1004、連接器1006和容器1008的繪圖筆劃交叉的網(wǎng)格標(biāo)記在圖象網(wǎng)格1002中。容器1004和1008變成圖象網(wǎng)格1002中的8相鄰連接區(qū)域。
從圖象網(wǎng)格的外緣開始直到與圖象筆劃交叉的標(biāo)記網(wǎng)格,在步驟906中可漫水填充最外面的空的網(wǎng)格。如圖10B所示,容器1004和1008可作為空白網(wǎng)格的島嶼出現(xiàn)在圖象網(wǎng)格1002中。在步驟908中,可漫水填充空白網(wǎng)格的島嶼。對每個島嶼,可將一內(nèi)部空白網(wǎng)格選擇成開始網(wǎng)格,從該網(wǎng)格直到與一些筆劃相交的網(wǎng)格形成的邊界,所有相鄰的空白網(wǎng)格都可被漫水填充。當(dāng)?shù)竭_(dá)島嶼的邊界時,記錄形成候選容器的筆劃。例如圖10C示出容器1004和1008的漫水填充的島嶼。漫水填充的島嶼周圍的邊界與這些候選容器的繪圖筆劃相交。
漫水填充空白網(wǎng)格的島嶼的步驟可導(dǎo)致將可能無效的容器識別成候選容器。因此,可在步驟910中核查候選容器以確定它們是有效的容器。各候選容器的繪圖筆劃可以具有在漫水填充的島嶼的邊界網(wǎng)格外部的筆劃。例如圖11A示出具有候選容器1108的圖象網(wǎng)格1102,候選容器1108具有在邊界網(wǎng)格1106外部圍繞漫水填充的島嶼1110的筆劃1104和1112。對于所有與候選容器的一個筆劃相交的網(wǎng)格,可以將與漫水填充的島嶼網(wǎng)格相鄰的網(wǎng)格定義成有效的,而將其它定義為無效的。如果無效網(wǎng)格對有效網(wǎng)格的比率比經(jīng)驗(yàn)值大,例如0.2,則可將相應(yīng)的筆劃定義成無效的。這些無效的筆劃可以被去除。例如圖11A中的筆劃1104和1112為無效筆劃。在去除所有無效筆劃后,如果它仍舊閉合(即,形成一個閉合的區(qū)域)的話候選容器有效。可以采用與用于圖9中的容器檢測相同的步驟來確定容器是否仍舊閉合。即,候選容器的空白網(wǎng)格的島嶼可以是漫水填充的,且如果可以到達(dá)島嶼外部的一些空白網(wǎng)格,則可以確定候選容器不再閉合。
一個有效閉合的容器可包括諸如外部繪圖筆劃之類的其它筆劃,或可與另一候選容器共享繪圖筆劃。在有效容器包括內(nèi)部繪圖筆劃的情況中,在一個實(shí)施例中可將內(nèi)部繪圖筆劃作為圖11B所示的容器的內(nèi)容對待。圖象網(wǎng)格1114中的容器1116包括可作為容器1116的內(nèi)容對待的內(nèi)部繪圖筆劃1118。在一個候選容器與另一候選容器共享繪圖筆劃的情況下,可以在一個實(shí)施例中將共享的筆劃分開并確定屬于候選容器中的一個。例如圖11C示出圖象網(wǎng)格1120中的候選容器1122和1124,其中部分有效邊界被各候選容器共享。有兩個繪圖筆劃與邊界的共享部分的網(wǎng)格相交。對邊界共享部分中的每個筆劃,都重新采樣繪圖筆劃的點(diǎn)并計算到每個候選容器的中心的平均距離。繪圖筆劃被指派為屬于與一個候選容器的中心具有最短平均距離的候選容器。如果由于丟失繪圖筆劃另一候選容器不再閉合,它可能變成一個無效的候選容器。然而,如圖11C所示,可以將與候選容器1122和1124的有效邊界的共享部分相交的兩個繪圖筆劃分別指派成屬于距離其中心的平均距離最近的候選容器。兩個候選容器都可以保持閉合并仍舊有效,因?yàn)樗鼈兠總€都被分配了兩個繪圖筆劃中的一個。
在一個實(shí)施例中,還可以在空間搜索之后進(jìn)行時間次序搜索,因?yàn)闀r間次序搜索可能更適合于處理筆劃的重疊。一般來說,可以通過確定輸入筆劃序列形成容器的似然性采用時間次序搜索找到從連續(xù)的筆劃序列形成的容器。在此實(shí)施例中,p(i,j)可以表示從i至j的輸入筆劃序列(i,j)可能是容器的似然性。可以將p(i,j)定義成 其中Vb為有效邊界比;Va為有效面積比;s(i,j)為筆劃數(shù);w1、w2、w3為重量;VB和VA分別為Vb和Va的閾值。可以將一有效的邊界比定義成Vb=有效邊界長度/總邊界長度??梢詫⒑蜻x容器的無效區(qū)域面積定義成與一些不屬于候選容器的內(nèi)部繪圖筆劃相交的區(qū)域,并將有效區(qū)域面積定義成在候選容器減去任何無效區(qū)域面積中的面積。有效面積比可以定義成Va=有效區(qū)域面積/總面積。圖12示出包括與內(nèi)部繪圖筆劃1206相交的無效區(qū)域面積的候選容器1202的有效區(qū)域面積104的示例圖。本領(lǐng)域的技術(shù)人員會理解可以采用圖象網(wǎng)格用在與如圖9所述的空間搜索期間用于識別候選容器的邊界相同的過程確定有效邊界長度、總邊界長度、有效區(qū)域面積和總面積的特征??蓪⒔?jīng)驗(yàn)值用于VB和VA,例如0.15和0.25,并將經(jīng)驗(yàn)值0.4、0.4、和0.2用于權(quán)重w1、w2、w3??梢詫⒐P劃數(shù)s(i,j)定義成s(i,j)=j(luò)-i+1。如圖13所示,可將筆劃數(shù)的特征用來防止靠近容器的任何小筆劃的誤分組??梢詾閲@區(qū)域1308確定用于形成容器1302的筆劃數(shù),并使該筆劃數(shù)與在區(qū)域1306中發(fā)現(xiàn)的形成容器1302和部分連接器1304的筆劃數(shù)相區(qū)別。
圖14示出一般表示為執(zhí)行時間次序搜索而采取的步驟的一個實(shí)施例的流程圖。在步驟1402中,可以確定一個有效邊界比Vb。在步驟1404中,可以確定一個有效面積比Va。在步驟1406中,可以確定筆劃數(shù)s(i,j)。在步驟1408中,可以從輸入筆劃次序確定容器。在一個實(shí)施例中,可以通過求解p(m,n)在輸入筆劃序列(m,n)中找到容器。對于將輸入筆劃序列(m,n)分割成k個子序列,i1,i2,...ik,p(m,n)可定義成P(m,n)=max(p(m,i1)+p(i1+1,i2)+...+P(ik+1,n))可以通過計算p(m,n)將輸入筆劃分組成正確的容器。在一個實(shí)施例中,可將動態(tài)編程用于計算p(m,n),其中可將p(m,n)表達(dá)成定義如下的遞歸過程 可以在用于空間搜索的圖象網(wǎng)格中標(biāo)志任何通過執(zhí)行時間次序搜索找到的附加容器,這樣就可將找到的所有容器包括在圖象網(wǎng)格中以備以后在內(nèi)容檢測和連接器檢測期間使用。
在執(zhí)行空間搜索和時間次序搜索以檢測容器之后,可以在圖象網(wǎng)格中對任何可能屬于容器的內(nèi)容(例如一個經(jīng)識別的詞)進(jìn)行內(nèi)容檢測。例如可以通過計算其邊界框和容器的邊界網(wǎng)格的交叉區(qū)域,核查寫的詞是否屬于一個容器。圖15表示一般表示為執(zhí)行容器的內(nèi)容檢測而采取的步驟的一個實(shí)施例的流程圖。在步驟1502中,可以為在圖象網(wǎng)格中識別的任何文本確定最小的邊界矩形和其面積。在步驟1504中,可以確定最小的邊界矩形與各容器的交叉面積。在步驟1506中,可以計算交叉面積和最小的邊界矩形的面積比。在步驟1508中,可將具有最大交叉比的容器選擇成內(nèi)容所在的容器。例如圖16示出在圖象網(wǎng)格1602中圍繞詞“hello”的邊界矩形1606??梢源_定詞“hello”屬于容器1604,因?yàn)榕c容器1604的交叉比大于與容器1608的交叉比。在一個實(shí)施例中,可能還要求交叉比大于經(jīng)驗(yàn)閾值(例如0.55)。
一旦在圖象網(wǎng)格中檢測到任何容器及與它們相關(guān)聯(lián)的內(nèi)容,就可進(jìn)行連接器檢測。圖17呈現(xiàn)一般表示為檢測墨水輸入中的連接器而采取的步驟的一個實(shí)施例的流程圖。一般來說,可以在用容器標(biāo)記的圖象網(wǎng)格中進(jìn)行搜索,以檢測在包括所有非容器筆劃的未訪問過的繪圖筆劃的網(wǎng)格中的連接器。因?yàn)橐恍┯脩艨赡軆A向于畫遠(yuǎn)離容器的小的連接器,可以膨脹那些容器使連接器與相應(yīng)的容器相鄰。圖18A示出與連接器1806相交的未經(jīng)訪問的網(wǎng)格和容器1804、1808標(biāo)記邊界之間的網(wǎng)格被漫水填充的圖象網(wǎng)格1802。在步驟1702中,可以用圍繞容器的邊界的標(biāo)記的網(wǎng)格膨脹與未經(jīng)訪問的繪圖筆劃不相鄰的孤立的容器來檢測這一連接器。在未經(jīng)訪問的網(wǎng)格或另一容器到達(dá)時可停止膨脹過程。這樣,連接器就可以如圖18B所示地與相應(yīng)地膨脹的容器相鄰了。圖18B的圖象網(wǎng)格1810中所示的容器具有它們用標(biāo)記網(wǎng)格圍繞的邊界,以建立填滿的容器1812和1816。這樣與連接器1814未經(jīng)訪問的繪圖筆劃相交的網(wǎng)格就可與經(jīng)膨脹的容器的網(wǎng)格相鄰了。
在圖17的步驟1704中,可以漫水填充未經(jīng)訪問的網(wǎng)格??梢詫⒁粋€未經(jīng)訪問的網(wǎng)格選擇為開始網(wǎng)格,可以將從該網(wǎng)格開始的所有與未經(jīng)訪問的網(wǎng)格相鄰的網(wǎng)格漫水填充。如果那些漫水填充的網(wǎng)格到達(dá)兩個或兩個以上容器(包括被膨脹的容器),則將相應(yīng)的繪圖筆劃記錄為一候選連接器。如在圖19A的圖象網(wǎng)格1902中所示的,在膨脹的容器1904和1908之間漫水填充的網(wǎng)格形成一候選連接器1906。在一個實(shí)施例中,圖象網(wǎng)格中容器的邊界可能已經(jīng)與形成連接器的未經(jīng)訪問的繪圖筆劃相鄰。在這種情況下,可以不先膨脹容器而將未經(jīng)訪問的網(wǎng)格漫水填充。圖19B示出圖象網(wǎng)格1910中的這種情況,其中漫水填充的網(wǎng)格可以不膨脹而在容器1912和1916之間形成一個候選連接器1914。
將未經(jīng)訪問的繪圖筆劃漫水填充的步驟可導(dǎo)致將可能無效的連接器識別成候選連接器。因此,在步驟1706可以核查候選連接器以確認(rèn)它們是有效的連接器。如果候選連接器具有不與容器相連的繪圖筆劃,則候選連接器有可能是無效的。在一個實(shí)施例中,為了檢測到可能有不與容器相連的候選連接器的繪圖筆劃,可以將一個滑動窗沿候選連接器移動以證明繪圖筆劃與滑動窗的邊界的交點(diǎn)數(shù)不超過候選連接器可連接的相鄰容器的數(shù)量。可以將滑動窗的大小設(shè)置成經(jīng)驗(yàn)尺寸以避免與局部變差的虛假交叉。在一個實(shí)施例中,窗的半徑可以是4mm。假設(shè),例如候選連接器連接N個容器(N>=2)而M為候選連接器的繪圖筆劃與滑動窗的邊界的交點(diǎn)數(shù),如果在滑動窗沿候選連接器移動時,在某一點(diǎn)M>N,可以認(rèn)為候選連接器是無效的。例如圖20A示出沿與三個容器(容器2002、容器2006和容器2008)相連的候選連接器2010移動的滑動窗2004的三個位置。在每個所示的位置上,交點(diǎn)數(shù)都比候選連接器可連接的容器數(shù)少。因?yàn)榻稽c(diǎn)數(shù)不超過連接的容器數(shù),該候選連接器是無效的。另一方面,圖20B示出無效候選連接器2020的檢測,其中在滑動窗2014的邊界中的交點(diǎn)數(shù)大于連接的容器2012、2016和2018的數(shù)量。如果它包括不與容器相連的繪圖筆劃,候選連接器也可以是無效的。例如圖20C示出在滑動窗2024中不與任何容器2022、2026和2028相連的候選連接器2030的筆劃。因此,候選連接器2030是無效連接器。
一旦檢測到容器和連接器,就會理解手寫對象的結(jié)構(gòu)關(guān)系。圖21為一般表示在執(zhí)行繪圖對象的檢測之后墨水輸入中的手寫對象的結(jié)構(gòu)關(guān)系的示例圖。根2002可表示墨水輸入,例如一頁可包括一個或多個諸如繪圖對象2106之類的繪圖對象的墨水輸入??赏ㄟ^在墨水輸入中對手繪對象進(jìn)行檢測和形狀識別來檢測和識別諸如圖表2104之類的繪圖對象。圖表2104可以由通過連接器連接的容器2108和2110形成。容器2108可包括相關(guān)聯(lián)的內(nèi)容,例如結(jié)構(gòu)上可由具有用筆劃形成的詞2118的行2116組成的段落2114表示的文本。
在用所述系統(tǒng)和方法檢測到所有容器和連接器后,可以完全識別和生成在墨水輸入中的手繪對象。通過使用本發(fā)明,用戶可不受手繪輸入限制而自由地繪制圖表和流程圖。一個形狀可以有許多筆劃,且輸入筆劃的次序可以是任意的,使得系統(tǒng)和方法可將任何墨水作為輸入接受。另外,筆劃可以是過度繪制或重疊的。在這兩種情況下,該系統(tǒng)和方法都可自動地檢測到正確的形狀。
如從以上的詳細(xì)說明中看出的,本發(fā)明提供用于檢測手繪對象的系統(tǒng)和方法。有利的是,該系統(tǒng)和方法對可形成手繪形狀的筆劃輸入次序和筆劃數(shù)不敏感。另外,提供的系統(tǒng)和方法是靈活而且可擴(kuò)展的。如現(xiàn)在理解的,可將本發(fā)明用于檢測包括圖表的圖中的任何閉合的容器和未閉合的連接器。一旦檢測到,就可以識別形狀的類型、位置、方向和大小。因此本系統(tǒng)和方法提供了當(dāng)代計算中所需的重要優(yōu)點(diǎn)和益處。
雖然本發(fā)明容許各種修改和選擇性結(jié)構(gòu),在附圖中示出和詳細(xì)描述了本發(fā)明的某些實(shí)施例。然而,應(yīng)理解并不想將本發(fā)明限定于所揭示的特定形式,相反,是想揭示所有落在本發(fā)明的精神和范圍之內(nèi)的修改及選擇性結(jié)構(gòu)。
權(quán)利要求
1.一種用于檢測手繪形狀的計算機(jī)系統(tǒng),其特征在于,包括用于接收墨水輸入的圖表檢測器;可操作地與圖表檢測器耦合的用于檢測墨水輸入中閉合容器的容器檢測器;和可操作地與圖表檢測器耦合的用于檢測墨水輸入中的連接器的連接器檢測器。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括可操作地與圖表檢測器相連用于將墨水輸入發(fā)送至圖表檢測器的墨水解析器。
3.如權(quán)利要求2所述的系統(tǒng),其特征在于,還包括可操作地與墨水解析器耦合用于識別手繪形狀的形狀識別器。
4.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述形狀識別器包括一個可操作地與形狀識別器耦合的容器識別器。
5.如權(quán)利要求3所述的系統(tǒng),其特征在于,所述形狀識別器包括一個可操作地與形狀識別器耦合的連接器識別器。
6.一種包括權(quán)利要求1的系統(tǒng)的具有計算機(jī)可執(zhí)行部件的計算機(jī)可讀媒體。
7.一種用于檢測手繪形狀的方法,其特征在于,包括接收墨水輸入;為在墨水輸入中的每個容器進(jìn)行容器檢測;和為在墨水輸入中的每個連接器進(jìn)行連接器檢測。
8.如權(quán)利要求7所述的方法,其特征在于,還包括解析墨水輸入以區(qū)分墨水輸入中的寫和畫。
9.如權(quán)利要求7所述的方法,其特征在于,還包括進(jìn)行圖表檢測,以識別墨水輸入中的圖表的筆劃。
10.如權(quán)利要求7所述的方法,其特征在于,還包括進(jìn)行形狀識別,以識別在墨水輸入中檢測到的各容器和連接器的形狀。
11.如權(quán)利要求10所述的方法,其特征在于,還包括生成具有在墨水輸入中識別的各容器和連接器的繪圖。
12.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行容器檢測包括進(jìn)行空間搜索以檢測容器。
13.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行容器檢測包括生成圖象網(wǎng)格并將來自墨水輸入的筆劃定位在生成的圖象網(wǎng)格上。
14.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行容器檢測包括標(biāo)記與定位在圖象網(wǎng)格上的墨水輸入的筆劃相交的圖象網(wǎng)格的網(wǎng)格。
15.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行容器檢測包括將直到與定位在圖象網(wǎng)格上的墨水輸入的筆劃相交的標(biāo)記網(wǎng)格的圖象網(wǎng)格的最外面的空白網(wǎng)格漫水填充。
16.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行容器檢測包括將直到與定位在圖象網(wǎng)格上的墨水輸入的筆劃相交的標(biāo)記網(wǎng)格的圖象網(wǎng)格的空白網(wǎng)格的島嶼漫水填充。
17.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行容器檢測包括核查候選容器為有效容器。
18.如權(quán)利要求17所述的方法,其特征在于,所述核查候選容器為有效容器包括核查所有與定位在圖象網(wǎng)格上的候選容器的筆劃相交的邊界網(wǎng)格與漫水填充的島嶼網(wǎng)格相鄰。
19.如權(quán)利要求17所述的方法,其特征在于,所述核查候選容器為有效容器包括去除不與圖象網(wǎng)格中的邊界網(wǎng)格相交的任何定位在圖象網(wǎng)格上的候選容器的筆劃。
20.如權(quán)利要求17所述的方法,其特征在于,所述核查候選容器為有效容器包括確定該候選容器是閉合的容器。
21.如權(quán)利要求17所述的方法,其特征在于,所述核查候選容器為有效容器包括將候選容器之間所有共享的繪圖筆劃分開。
22.如權(quán)利要求21所述的方法,其特征在于,所述將所有共享的繪圖筆劃分開包括計算繪圖筆劃的各點(diǎn)到各個共享繪圖筆劃的候選容器的中心的平均距離,并將繪圖筆劃分配成屬于繪圖筆劃的點(diǎn)距離其中心的平均距離最近的候選容器。
23.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行容器檢測包括進(jìn)行時間次序搜索以檢測容器。
24.如權(quán)利要求23所述的方法,其特征在于,所述進(jìn)行時間次序搜索包括計算定義成有效邊界長度除以總邊界長度的有效邊界比,其中邊界包括與定位在圖象網(wǎng)格上的墨水輸入的筆劃相交的標(biāo)記網(wǎng)格。
25.如權(quán)利要求23所述的方法,其特征在于,所述進(jìn)行時間次序搜索包括計算定義成有效區(qū)域面積除以總面積的有效面積比,其中區(qū)域面積包括與定位在圖象網(wǎng)格上的墨水輸入的筆劃相交的標(biāo)識網(wǎng)格的邊界內(nèi)的面積。
26.如權(quán)利要求23所述的方法,其特征在于,所述進(jìn)行時間次序搜索包括通過計算輸入筆劃序列形成容器的似然性從墨水輸入的筆劃確定容器。
27.如權(quán)利要求26所述的方法,其特征在于,所述計算輸入筆劃序列形成容器的似然性包括使用動態(tài)編程來將輸入筆劃分組成片段,其中每個片段形成一個容器。
28.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行容器檢測包括進(jìn)行內(nèi)容檢測以檢測出任何屬于一個容器的內(nèi)容。
29.如權(quán)利要求28所述的方法,其特征在于,所述進(jìn)行內(nèi)容檢測包括確定圍繞內(nèi)容的最小邊界矩形并計算其面積。
30.如權(quán)利要求28所述的方法,其特征在于,所述進(jìn)行內(nèi)容檢測包括計算所述最小邊界矩形與各相交的容器的相交面積比,并選擇與各相交的容器具有最小邊界矩形的最大相交面積比的容器。
31.如權(quán)利要求7所述的方法,其特征在于,所述對墨水輸入中的每個連接器進(jìn)行連接器檢測包括將邊界不相鄰與定位于網(wǎng)格上的墨水輸入中的未訪問筆劃相交的網(wǎng)格的容器進(jìn)行膨脹。
32.如權(quán)利要求31所述的方法,其特征在于,所述容器填滿包括標(biāo)記圍繞容器邊界的網(wǎng)格直到達(dá)到與未經(jīng)訪問的筆劃相交的網(wǎng)格。
33.如權(quán)利要求31所述的方法,其特征在于,所述容器填滿包括標(biāo)記圍繞容器的邊界的網(wǎng)格直到達(dá)到另一容器的邊界網(wǎng)格。
34.如權(quán)利要求7所述的方法,其特征在于,所述為墨水輸入中的每個連接器進(jìn)行連接器檢測包括將與定位于網(wǎng)格上的墨水輸入中的未經(jīng)訪問筆劃相交的網(wǎng)格漫水填充。
35.如權(quán)利要求7所述的方法,其特征在于,所述進(jìn)行連接器檢測包括核查候選連接器是有效連接器。
36.如權(quán)利要求35所述的方法,其特征在于,所述核查連接器是有效的連接器包括證明候選連接器的筆劃與一個容器相連。
37.如權(quán)利要求35所述的方法,其特征在于,所述核查候選連接器是有效連接器包括證明候選連接器的筆劃的交點(diǎn)數(shù)不超過候選連接器可連接的相鄰容器數(shù)。
38.如權(quán)利要求37所述的方法,其特征在于,所述證明候選連接器的筆劃的交點(diǎn)數(shù)不超過候選連接器可連接的相鄰容器數(shù)包括使用可沿候選連接器移動的滑動窗。
39.一種具有用于執(zhí)行權(quán)利要求7的方法的計算機(jī)可執(zhí)行指令的計算機(jī)可讀媒體。
40.一種用于檢測手繪形狀的計算機(jī)系統(tǒng),其特征在于,包括用于接收墨水輸入的裝置;用于檢測在墨水輸入中的閉合容器的裝置;和用于檢測在墨水輸入中的連接器的裝置。
全文摘要
本發(fā)明提供一種用于在墨水輸入中檢測手繪對象的系統(tǒng)和方法。檢測器可通過檢測該繪圖中閉合的容器和/或未閉合的連接器來從墨水輸入中檢測到諸如圖或表之類的繪圖。一種基于網(wǎng)格的有效方法可用于使墨水筆劃適合于具有合適尺寸的圖象網(wǎng)格。漫水填充算法可用于檢測容器和連接器。還可以在空間搜索后進(jìn)行時間次序搜索以處理繪圖筆劃的重疊。最后,可對每個檢測到的容器進(jìn)行內(nèi)容檢測。一旦在圖象網(wǎng)格中檢測到任何容器及與它們相關(guān)聯(lián)的內(nèi)容,就可進(jìn)行內(nèi)容檢測。通過使用本發(fā)明,用戶可不受手繪輸入限制而自由地繪制圖和流程圖。
文檔編號G06T11/80GK1619576SQ20041008265
公開日2005年5月25日 申請日期2004年9月24日 優(yōu)先權(quán)日2003年9月24日
發(fā)明者李彥濤, 王堅 申請人:微軟公司