專利名稱:檢測以墨水輸入的手繪對象的系統(tǒng)和方法
技術領域:
本發(fā)明通常涉及計算機系統(tǒng),特別是涉及改進過的用于識別手繪對象的系統(tǒng)和方法。
(2)背景技術識別手繪對象對用戶能用墨水輸入或墨水注解直接繪制在他們的計算機上很重要。當前的硬件和軟件也許能相當好地捕獲代表手寫的墨跡,但現(xiàn)在還不能類似地識別和表示手繪對象的含義。因此,用戶改為使用基于菜單的應用程序來制作對象的繪圖??捎蛇@些應用程序呈現(xiàn)各種形狀供用戶選擇和復制到繪圖網格上。隨后可將復制的形狀的大小調整到理想的比例,并且直至繪圖結束,用戶都可將附加的形狀放置到繪圖網格上并調整其大小。
至今,致力于手繪對象的形狀識別的研究產生了邊際結果。例如已使用了可從按特定次序做的特定數量的筆劃中識別圓圈或方框之類的簡單幾何形狀的增量識別算法。然而,為了識別特定的手繪形狀,這種增量算法依賴于筆劃次序和/或假定一特定數量的筆劃。這種方法由于幾種原因不是很穩(wěn)健。首先,所有的增量算法都不解決確定哪組筆劃是一起屬于(因為那些筆劃代表一個特定的形狀)哪個集合的分組問題。沒有能力將屬于一個形狀的筆劃組合在一起,增量算法也許不能容納箭頭之類的多筆劃。另外,因為增量算法依賴于一個形狀的筆劃次序和/或為其假定一特定數量的筆劃,增量算法無法解決過度描繪的問題(在繪制一個形狀時,可能會過度描繪一個筆劃)。
所需要的是一種對筆劃輸入次序和/或形成任何給定形狀所需的筆劃數量不敏感的用于識別手繪對象的形狀的方法。任何這種系統(tǒng)和方法都應識別多筆劃手繪形狀并能確定哪組筆劃合在一起代表不同的形狀。
(3)發(fā)明內容簡要地說,本發(fā)明提供檢測以墨水輸入的手繪對象的系統(tǒng)和方法。為此目的,提供了一個可識別諸如以墨水輸入的圖示或圖表之類的繪圖的形狀識別器。該形狀識別器可包括用于在繪圖中識別閉合的容器的容器識別器和識別未閉合的連接器的連接器識別器。容器識別器可包括任何數量的形狀分類器,包括橢圓形/圓形分類器、多邊形識別器、三角形識別器、四邊形分類器等等。連接器識別器可包括基干識別器、箭頭識別器和和各種其它的識別器以識別繪圖中容器之間的連接器的類型。
本發(fā)明可通過首先對每個容器進行容器識別以識別閉合的形狀(包括圓形、三角形、四邊形、五邊形、六邊形等等)來識別手繪形狀,從而識別手繪形狀。一個實施例可運用決策樹,它可將用于識別三角形之類的形狀的總的統(tǒng)計特征與識別的形狀的特定類型的基于規(guī)則的說明(例如將等腰三角形與等邊三角形或直角三角形區(qū)別開來)相結合。在此實施例中,總的統(tǒng)計特征對諸如筆劃的過度繪制及重疊之類的局部變異是穩(wěn)健的,并且基于規(guī)則的說明可以提供更詳細有關形狀(包括幾種諸如梯形、平行四邊形、菱形、矩形和正方形之類的多邊形)的信息。
然后可以對每個連接器進行連接器識別以識別包括基干、箭頭等等在內的未閉合的連接器的形狀。在一個實施例中,可將折線用于模擬基干。在此實施例中,本發(fā)明可處理基干的連續(xù)筆劃、基干的重疊筆劃和基干的過度繪制筆劃。在識別出連接器的基干后,可以識別位于基干一端或兩端的箭頭。
有利的是系統(tǒng)和方法對筆劃輸入次序和形成手繪形狀的筆劃數量不敏感。另外,可將該系統(tǒng)和方法用于識別繪圖中任何閉合容器的和未閉合的連接器。一旦識別,就可以提供形狀的類型、位置、方向和大小。
從以下結合附圖的詳細描述中,其它優(yōu)點將變得很明顯。
(4)
圖1為一般地表示可合并本發(fā)明的計算機系統(tǒng)的方框圖;圖2為一般地表示根據發(fā)明的一個方面的用于識別手繪對象的形狀的系統(tǒng)部件的示例結構的方框圖;圖3為一般地表示根據發(fā)明的一個方面為識別手繪對象的形狀所采取的步驟的流程圖;圖4為一般地表示根據發(fā)明的一個方面為識別容器和連接器的形狀所采取的步驟的流程圖;圖5為一般地表示根據發(fā)明的一個方面的用于進行形狀識別的決策樹,它能將特定形狀的總的統(tǒng)計特征與基于規(guī)則的說明相結合;
圖6為一般地表示根據發(fā)明的一個方面為識別閉合容器的形狀所采取的步驟的流程圖;圖7為一般地表示根據發(fā)明的一個方面為執(zhí)行圓度測試所采取的步驟的流程圖;圖8為一般地表示根據發(fā)明的一個方面由分類器采取的用來區(qū)分閉合容器的形狀是圓還是橢圓的步驟的流程圖;圖9為一般地表示根據發(fā)明的一個方面由分類器采取的用來區(qū)分閉合容器的形狀是何種多邊形的步驟的流程圖;圖10為一般地表示根據發(fā)明的一個方面在圍繞該形狀的凸包中具有最大內接多邊形的形狀的筆劃的示例圖;圖11為一般地表示根據發(fā)明的一個方面的形狀的筆劃與圍繞該形狀的凸包中最大的內接多邊形之間的最大距離的示例圖;圖12為一般地表示根據發(fā)明的一個方面從手繪形狀中識別出的多邊形的邊的精細的示例圖;圖13為一般地表示根據發(fā)明的一個方面為識別連接器的形狀而采取的步驟的流程圖;圖14為一般地表示根據發(fā)明的一個方面的兩個容器之間的連接器的示例圖;圖15為一般地表示根據發(fā)明的一個方面合并基干筆劃或筆劃件的示例圖。
(5)具體實施方式
圖1示出可實施本發(fā)明的合適的計算系統(tǒng)環(huán)境100的例子。計算系統(tǒng)環(huán)境100只是合適的計算環(huán)境的一個例子,并不旨在限定本發(fā)明的使用范圍和功能。不應將計算環(huán)境100解釋成依賴于或需要示例操作環(huán)境100中所示的任何一個部件或其組合。
本發(fā)明可用許多其它通用或專用計算系統(tǒng)環(huán)境或配置操作。熟知的可適合與本發(fā)明一起使用的計算系統(tǒng)、環(huán)境、和/或配置包括,但不限于個人電腦、服務器計算機、手提或膝上設備、圖形輸入板設備、無頭服務器、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程的消費電子產品、網絡PC機、微型計算機、大型計算機、包括任何以上系統(tǒng)或設備的分布式計算機環(huán)境等等。
本發(fā)明可以在計算機可執(zhí)行指令的總的上下文中描述,例如由計算機執(zhí)行的程序模塊。一般來說,程序模塊包括執(zhí)行特定任務或實施特定抽象數據類型的例行程序、程序、對象、部件、數據結構等等。本發(fā)明也可應用于分布式計算環(huán)境中,在該環(huán)境中任務是由通過通信網絡鏈接的遠程處理設備執(zhí)行的。在分布式計算環(huán)境中,可將程序模塊定位于包含存儲器設備的本地和/或遠程計算機存儲器媒體中。
參見圖1,用于實施本發(fā)明的示例系統(tǒng)包括以計算機110形式的通用計算裝置。計算機110的部件可包括,但不限于處理單元120、系統(tǒng)存儲器130、和連接各種系統(tǒng)部件(包括將系統(tǒng)存儲器連接至處理單元120)的系統(tǒng)總線121。系統(tǒng)總線121可以是幾種總線結構(包括存儲器總線或存儲器控制器、外圍總線、和使用各種總線結構中任一種的本地總線)中的任一種。作為示例而非限定,這種結構包括工業(yè)標準結構(ISA)總線、微通道結構(MCA)總線、擴展工業(yè)標準結構(EISA)總線、視頻電子標準協(xié)會(VESA)本地總線、和外部設備互連(PCT)總線(也稱為夾層總線)。
計算機110通常包括各種計算機可讀媒體。計算機可讀媒體可以是可由計算機110訪問的任何可用媒體,并包括以任何方法或技術實施的用于存儲信息的易失性和非易失性媒體,及可移動/不可移動媒體,作為示例而非限定,計算機可讀媒體可包括計算機存儲媒體和通信媒體。計算機存儲媒體包括以任何用于存儲信息的方法或技術(例如計算機可讀指令、數據結構、程序模塊或其它數據)實施的易失性和非易失性、可移動和不可移動媒體。計算機存儲器媒體包括,但不限于RAM、ROM、EEPROM、閃存或其它存儲技術、CD-ROM、數字通用光盤(DVD)或其它光盤存儲器、磁帶盒、磁帶、磁盤存儲器或其它磁存儲裝置、或任何可用于存儲可由計算機110訪問的想要的信息的其它媒體。通信媒體通常體現(xiàn)計算機可讀指令、數據結構、程序模塊或以已調制的數據信號(例如載波或其它傳輸機制)形式的其它數據并包括任何信息傳輸媒體?!耙颜{制的數據信號”一詞指一個信號一個或多個屬性被設定,或以編碼信號中的信息的方式被改變。作為示例而非限定,通信媒體包括有線網絡或直接連線連接之類的有線媒體,以及諸如聲、RF、紅外線的無線媒體及其它無線媒體。任何上述媒體的組合也應包括在計算機可讀媒體的范圍內。
系統(tǒng)存儲器130包括以諸如只讀存儲器(ROM)131和隨機存儲器(RAM)132之類的易失性和/或非易失性存儲器形式的計算機存儲媒體。包括幫助在計算機110的元件之間傳輸信息(例如在啟動期間)的基本例行程序的基本輸入/輸出系統(tǒng)133(BIOS)通常被存儲在ROM131中。RAM132通常包括可由處理單元120立即訪問和/或當前由處理單元120操作的數據和/或程序模塊。作為示例而非限定,圖1示出操作系統(tǒng)134、應用程序135、其它程序模塊136和程序數據137。
計算機110也可包括其它可移動/不可移動、易失性和非易失性計算機存儲媒體。僅作為示例,圖1示出硬盤驅動器141(它從不可移動媒體、非易失性磁媒體讀取或寫入不可移動媒體、非易失性磁媒體)、磁盤驅動器151(它從可移動、非易失性磁盤152讀取或寫入可移動、非易失性磁盤152)、及光盤驅動器155(它從諸如CD ROM或其它光媒體之類的可移動、非易失性光盤156讀取或寫入諸如CD ROM或其它光媒體之類的可移動、非易失性光盤156)。其它可用于示例操作環(huán)境中的可移動/不可移動、易失性和非易失性計算機存儲媒體包括,但不限于盒式磁帶、閃存卡、數字通用光盤、數字視頻帶、固態(tài)RAM、固態(tài)ROM等等。通常通過諸如接口140之類的不可移動存儲器接口將硬盤驅動器141連接到系統(tǒng)總線121,并通過諸如接口150之類的不可移動存儲器接口將磁盤驅動器151和光盤驅動器155。
上述和圖1中示出的驅動器及與它們相關聯(lián)的計算機存儲媒體為計算機110提供計算機可讀指令、數據結構、程序模塊和其它數據。在圖1中,例如硬盤驅動器141被示為存儲操作系統(tǒng)144、應用程序145、其它程序模塊146及程序數據147。注意這些部件既可以與操作系統(tǒng)134、應用程序135、其它程序模塊136及程序數據137相同,也可以與之不同。這里給予存儲操作系統(tǒng)144、應用程序145、其它程序模塊146及程序數據147不同的編號是為了至少表示了它們是不同的副本。用戶可通過諸如圖形輸入板、或電子數字轉換器164、麥克風163、鍵盤162和指點裝置161(通常稱為鼠標、跟蹤球或觸摸輸入板)之類的輸入裝置將命令和信息輸入到計算機110。圖1中未示出的其它輸入裝置可包括操縱桿、游戲板、圓盤式衛(wèi)星電視天線、掃描儀或包括了包含生物測定傳感器、環(huán)境傳感器、位置傳感器或其它類型的傳感器的裝置的其它裝置。這些和其它輸入裝置通常由耦合至系統(tǒng)總線的用戶輸入接口160連接到處理單元120,但也可由諸如并行端口、游戲端口或通用串行總線(USB)之類的其它接口和總線結構連接。監(jiān)視器191或其它類型的顯示裝置也通過諸如視頻接口190之類的接口連接到系統(tǒng)總線121。也可將監(jiān)視器191與觸摸輸入板等一體化。注意可以將監(jiān)視器和/或觸摸輸入板物理連接至合并了計算裝置110的機架(例如在一圖形輸入板型的個人電腦中)。另外,諸如計算裝置110之類的計算機也可包括其它外圍輸出設備,如揚聲器195和打印機196,它們可以通過輸出外圍接口194等連接。
本發(fā)明中的計算機110可以使用到一個或多個如遠程計算機180那樣的遠程計算機邏輯連接,在聯(lián)網的環(huán)境中操作。該遠程計算機180可以是個人電腦、服務器、路由器、網絡PC、對等裝置或其它公共網絡節(jié)點并通常包括上述與計算機110相關的全部或許多元件,盡管圖1僅示出了存儲裝置181。圖1示出的邏輯連接包括局域網(LAN)171和廣域網(WAN)173,但也可包括其它網絡。這種連網環(huán)境在辦公室、企業(yè)范圍計算機網絡、企業(yè)內部互聯(lián)網和因特網中是很常見的。當用于LAN的網絡環(huán)境中時,計算機110通過網絡接口和適配器170連接到LAN171。當用于WAN的網絡環(huán)境中時,計算機110通常包括調制解調器172和用于在WAN173(例如因特網)上建立通信的其它裝置。該調制解調器172(可以是內置的或外接的)可以通過用戶輸入接口160或其它合適的機構連接到系統(tǒng)總線121。在聯(lián)網的環(huán)境中,相對所述的與計算機110畫出的程序模塊或其一部分可以存儲在遠程存儲裝置中。作為示例而非限定,圖1示出在存儲器裝置181上的遠程應用程序185。我們將會理解所示的網絡連接是示例性的,還可以用其它在計算機之間建立通信鏈路的方法。
手繪對象的形狀識別本發(fā)明通常針對用于提供手繪對象的形狀識別的系統(tǒng)和方法。如這里使用的那樣,手繪對象指任何手寫的非字符的形狀或繪圖。用戶可不受手繪輸入的限制自由地畫圖和畫流程圖。一個形狀可以有許多筆劃,且輸入筆劃的次序可以是任意的,使得系統(tǒng)和方法可將任何墨水作為輸入接受。另外,筆劃可以是過度繪制或重疊的。在這兩種情況下,該系統(tǒng)和方法都可自動地檢測到正確的形狀。
具體來說,該系統(tǒng)和方法可以識別容器和在容器之間繪制的連接器的手繪形狀。如這里使用的那樣,容器指任何閉合的繪圖對象。如這里使用的那樣,連接器指任何連接容器的繪圖對象。如將會理解的那樣,這里所述的各種方框圖,流程圖和情況只是示例,本發(fā)明還會應用于許多其它的情況。
回到圖2,它示出了一般地表示手繪對象的形狀識別的系統(tǒng)部件的示例結構的方框圖。那些本領域的技術人員會理解可以將在圖中所示的方框中實施的功能作為分開的部件實施,或可以在一個單個的部件中實施幾個或所有方框的功能。例如可以將圖表檢測器204的功能包括在形狀識別器206中。或可將容器識別器208的功能作為一個分開的部件實施。
墨水解析器202可接受任何墨水,包括具有繪圖對象的墨水。墨水解析器202可包括一可操作地耦合的圖表檢測器204和可操作地耦合的形狀識別器206。一般來說,圖表檢測器204和形狀識別器206可以是諸如核心部件、應用程序、鏈接程序庫、對象等等之類任何類型的可執(zhí)行軟件代碼。圖表檢測器204可包括可操作地耦合的容器檢測器212和可操作地耦合的連接器檢測器214,而形狀識別器206可包括可操作地耦合的容器識別器208和可操作地耦合的連接器識別器210。容器識別器208可包括任何數量的可操作地耦合的分類器,例如橢圓/圓分類器216、多邊形分類器218、三角形分類器220、四邊形分類器222等等。連接器識別器210可包括任何數量的可操作地耦合的識別器,例如基干識別器224、箭頭識別器226等等。這些部件中的每一個都可以是諸如核心部件、應用程序、鏈接程序庫、對象等等之類任何類型的可執(zhí)行軟件代碼或其它類型的可執(zhí)行軟件代碼。
圖3示出一般地表示為手繪對象的形狀識別所采取的步驟的流程圖。在步驟302中,包括具有繪圖對象的墨水在內的任何墨水都可被解析。例如在一個實施例中,一頁墨水可作為輸入接受并被解析。在此實施例中,例如墨水解析器可能不具有在該頁面上的墨水的先驗知識。因此,可以執(zhí)行諸如詞分組、寫/繪圖分類和繪圖分組之類的基礎算法。為了執(zhí)行詞分組,可將筆劃分組到詞、線和塊的層次級別中。這樣,詞分組過程可包括筆劃的特征提取,以捕獲距離、幾何相異點和線性及其它筆劃特征。詞分組過程還可包括根據暫時信息將筆劃分組的動態(tài)編程。詞分組過程還可包括根據空間信息收集分組筆劃。在組中識別的詞、線和塊不必與現(xiàn)實的語義詞、線和塊相對應。實際上,這些組可包括手繪對象的筆劃。
為了執(zhí)行寫/繪圖分類,可識別各種特征來區(qū)別寫和畫。例如可將諸如曲率、密度和其它手寫模塊特征之類的單字特征用于區(qū)分寫和畫圖。在一個實施例中,可將諸如臨時和空間語境特征之類的語境特征用于區(qū)分寫和畫圖??蓪⒏魈卣饔成渲聊:瘮?,并根據模糊函數的組合確定寫和畫之間的分類。
在執(zhí)行詞分組和寫/繪圖分類之后,可通過執(zhí)行繪圖分組來很好地組織繪圖筆劃。可根據它們之間的空間關系將繪圖筆劃分組成單個的對象來執(zhí)行繪圖分組??蓪⒁挥行У幕诰W格的方法用于使墨水筆劃適合于具有合適尺寸的圖象網格??蓸酥緢D象網格來找到連接的部件。每個連接的部件可對應于一繪圖對象。可將啟發(fā)式規(guī)則用于調節(jié)繪圖對象。
在步驟304中,可通過找到屬于一個繪圖對象的所有筆劃來執(zhí)行圖表檢測,以對繪圖筆劃進行分組。這樣用戶就能不受輸入限制自由地繪制圖表和流程圖了。例如一個形狀可具有許多筆劃而輸入次序可以是任意的。另外,筆劃可以是過度繪制或重疊的。在其中任何一種情況下,該系統(tǒng)都可自動地檢測到正確的形狀。在一個實施例中,可將超圖用于表示圖表和流程圖,這樣就可以完全地表示容器和連接器之間的關系了。因此,在此實施例中可以支持可與兩個以上容器相連的連接器。
在一個實施例中,容器檢測器212可以找到屬于一個容器的所有筆劃,而連接器檢測器214可以找到屬于一個連接器的所有筆劃。這樣,就可以按時間次序執(zhí)行最佳搜索以檢測任何容器。也可以執(zhí)行有效的搜索來檢測容器和連接器。最后,可以為每個檢測到的容器執(zhí)行內容檢測。
在步驟306中,可以執(zhí)行形狀識別來識別容器和連接器。在為每個容器和每個連接器將所有的筆劃分組之后,形狀識別引擎206(在一個實施例中)可用于識別在諸如圖表之類的圖中的閉合的容器和未閉合的連接器。識別出之后,可提供該形狀的類型、位置、方向和大小。有利的是筆劃輸入的次序和筆劃的數量不影響識別。當執(zhí)行形狀識別來識別閉合的容器和未閉合的連接器時,可在步驟308生成圖。
圖4為一般地表示根據發(fā)明的一個方面為進行如步驟306所指的容器和連接器的形狀識別所采取的步驟的流程圖。可以在步驟402對每個容器進行容器識別以識別包括圓形、三角形、四邊形、五邊形、六邊形等等閉合形狀。另外,可以識別形狀的特定類型,例如區(qū)分圓和橢圓,或將等腰三角形與等邊三角形或直角三角形區(qū)別開來。象另一個例子,可以識別四邊形的幾種類型,包括梯形、平行四邊形、菱形、矩形和正方形。
在一個實施例中,例如容器識別器208可運用決策樹,該樹可以將特定形狀的總的統(tǒng)計特征和基于規(guī)則的說明結合起來。在此實施例中,總的統(tǒng)計特征對諸如筆劃的重疊繪制之類的局部變異是穩(wěn)健的,并且基于規(guī)則的說明可以提供更詳細有關形狀的信息。例如對一等腰三角形的基于規(guī)則的說明可包括具有兩個相等長度的邊的三角形的說明。
在步驟404中,可以對每個連接器進行連接器識別,以識別包括基干、箭頭等在內的閉合連接器的形狀。在一個實施例中,折線可用于逼近一基干。在該實施例中,例如連接器識別器210可處理基干的連續(xù)筆劃、基干的重疊筆劃和基干的過度繪制筆劃。在識別出連接器的基干后,可以識別位于基干一端或兩端的箭頭。連接器識別器210可調用基干識別器224和/或箭頭識別器226,用于分別識別連接器的基干和箭頭。
圖5為一般地表示根據發(fā)明的一個方面的用于進行形狀識別的決策樹,它能將特定形狀的總的統(tǒng)計特征與基于規(guī)則的說明相結合??梢詫儆谝粋€容器的分成一組的筆劃502輸入到圓度測試504以確定筆劃的形狀有多象一個圓或橢圓。然后圓度測試504就可確定是否使用橢圓/圓分類器506或多邊形分類器508來識別筆劃502的形狀。橢圓/圓分類器506可確定筆劃的形狀是橢圓510或是圓512。多邊形分類器508可確定筆劃的形狀是五邊形518或是六邊形520,或是否采用三角形分類器514或多邊形分類器516來識別筆劃502的形狀。三角形分類器514可以確定筆劃的形狀是否為三角形,并且還可以用基于規(guī)則的說明來為區(qū)別該三角形是等腰三角形522、等邊三角形524或是直角三角形526提供更詳細的信息。同樣地,四邊形分類器可以確定筆劃的形狀是否為四邊形,并且還可以用基于規(guī)則的說明來為區(qū)別該多邊形是正方形528、矩形530、菱形532、梯形534、或平行四邊形536提供更詳細的信息。
圖6為一般地表示為識別閉合容器的形狀所采取的步驟的流程圖。在步驟602中,可以進行以測試該形狀有多象一個圓或橢圓。如果在步驟604中,圓度測試的結果示出該形狀可能是圓或橢圓,則在步驟606執(zhí)行用于識別圓或橢圓的過程。如果示出該形狀不可能是圓或橢圓,則在步驟608執(zhí)行用于識別多邊形的過程。步驟608中的用于識別多邊形的過程可以示出該多邊形可能是三角形或四邊形。如果在步驟610中用于識別多邊形的過程的結果示出該多邊形可能是三角形,則可以在步驟612中執(zhí)行三角形的特定類型或子分類的識別過程。例如三角形的特定類型可以是等腰三角形522、等邊三角形524或是直角三角形526。然而,如果在步驟614中用于識別多邊形的過程的結果示出該多邊形可能是四邊形,則可以在步驟616中執(zhí)行四邊形的特定類型或子分類的識別過程。例如四邊形的特定類型可以是正方形528、矩形530、菱形532、梯形534、或平行四邊形536。否則在步驟608中的用于識別多邊形的過程示出該多邊形可能是五邊形518或六邊形520。如果在步驟618中用于識別多邊形的過程的結果示出該多邊形可能是五邊形,則可以在步驟620中執(zhí)行五邊形的識別過程。如果在步驟622中用于識別多邊形的過程的結果示出該多邊形可能是六邊形,則可以在步驟624中執(zhí)行六邊形的識別過程。
圖7為一般地表示為在步驟602中執(zhí)行圓度測試所采取的步驟的流程圖。可分配一個閾值來比較圓度測試的結果,以區(qū)分閉合容器的形狀是圓/橢圓或是多邊形。在一個實施例中,諸如薄度比Pch2/Ach(其中,Pch和Ach分別代表形狀的凸包周長和面積)之類的特征用于測試圓度。在計算形狀的薄度比之前,可以依比例決定形狀筆劃,使最小邊界矩形成為一正方形。因為圓可具有最小薄度比4*π,圓和橢圓都可具有最小薄度比4*π,其中π(pi)被定義成圓的周長與其直徑的比。在步驟702中,可以確定筆劃的最小邊界矩形,然后在步驟704中依比例決定形狀筆劃,使最小邊界矩形成為一正方形。接著可以在步驟706中用格雷厄姆算法(可以在1998年由劍橋大學出版社出版的Joseph O’Rourke寫的C中的計算幾何學(第二版)中找到)計算形狀的筆劃的凸包。然后可以在步驟708中計算薄度比Pch2/Ach??梢栽诓襟E710中將薄度比Pch2/Ach與閾值相比較。在一個實施例中,可以分配閾值4*π*1.05。如果在步驟712中薄度比Pch2/Ach小于等于閾值4*π*1.05,則該形狀可能是圓或橢圓,且在步驟714可將一分類器用于進一步區(qū)分該閉合容器是圓還是橢圓。如果在步驟712中薄度比大于閾值4*π*1.05,則該形狀有可能是多邊形,且在步驟716中可將多邊形分類器用于進一步區(qū)分該閉合容器可能是哪種類型的多邊形。本領域的技術人員能理解可以將其它閾值和其它特征用于測試圓度。
圖8為一般地表示根據所步驟714所示由分類器采取的用來區(qū)分閉合容器的形狀是圓還是橢圓的步驟的流程圖。一般來說,可以將諸如最小邊界矩形的寬高比之類的特征用于一個實施例,以區(qū)分圓和橢圓。在步驟802中,可以確定該形狀的最小邊界矩形的寬高比,然后可以在步驟804中根據給定的閾值確定該形狀是圓806或是橢圓808。在一個實施例中,如果寬高比接近1,例如在0.83和1.20的范圍內,可以將該形狀分類成圓形;否則分類成橢圓。本領域的技術人員能理解可以將其它閾值和其它特征用于區(qū)分圓和橢圓。
圖9為一般地表示由分類器采取的用來區(qū)分閉合容器的形狀是何種多邊形的步驟的流程圖。可以對每個想要的n邊形的類型進行多邊形形狀測試以確定該多邊形的形狀。在一個實施例中,可以對三角形、四邊形、五邊形和六邊形進行多邊形測試。為了區(qū)分n邊形是哪種形狀對每個想要的n邊形的類型進行多邊形測試的結果進行比較,可以為多邊形測試分配一個或多個閾值。在一個實施例中,可以將諸如面積比An/Ach(An表示在凸包內的最大內接n邊形的面積,而Ach表示筆劃的一個凸包的面積)之類的特征用于確定多邊形的形狀。在此實施例中,可以用格雷厄姆算法(可以在1998年由劍橋大學出版社出版的Joseph O’Rourke寫的C中的計算幾何學(第二版),ISBN0-521-64976-5中找到)計算形狀的筆劃的凸包,并在步驟902中計算筆劃的凸包面積。然后可以在步驟904中為每個想要的n邊形類型計算最大內接n邊形及其面積An。最大內接n邊形可以用由Boyce提出的算法(可以在1985年的Finding Extremal Polygons,SIAM Journal onComputing,14(1)134-147中找到,作者J.E.Boyce和D.P.Dobkin)來計算。例如可以計算最大內接三角形、四邊形、五邊形和六邊形及它們各自的面積A3、A4、A5和A6。在步驟906中,可以對每個想要的n邊形類型計算面積比An/Ach。在步驟908中可以將每個想要的n邊形類型的面積比An/Ach與相應的閾值比較。最后在步驟910中可以將面積比An/Ach大于其相應閾值的具有最少邊數的n邊形選擇成表示閉合容器形狀的多邊形類型。在一個實施例中,對A3、A4、A5和A6的閾值可以分別為0.73、0.84、0.93和0.94。圖10示出在圍繞形狀1002的凸包中具有最大內接四邊形1004的形狀1002的筆劃的例子。在此例中,在和諸如五邊形或六邊形之類的其它n邊形的面積比相比時,內接四邊形和凸包的面積比可以比相應的閾值大,并且具有最少的邊數。因此,將該形狀分類成四邊形。
因為將凸包用于計算面積比,在一個實施例中,可以對凹容器進行測試以避免虛假的分類。可以通過核查筆劃中的點與識別的形狀的邊之間的最大距離來測試該凹容器。例如圖11示出手繪形狀1002的筆劃的點與識別的形狀的邊之間的最大距離1102和最大內接四邊形1004。如果最大距離1102比經驗閾值大,則不得分類成四邊形。
因為已經計算了最大面積內接三角形或四邊形,我們能在一個實施例中在進行形狀識別時根據特定類型形狀的基于規(guī)則的說明確定子分類。例如如果三角形的兩個邊的長度幾乎相等,則可以進一步將其分類為等腰三角形;如果三角形的所有三個邊都幾乎相等,則可以進一步將其分類為等邊三角形;如果兩邊的平方和近似等于第三邊的平方,則可以進一步將其分類為直角三角形。
類似地,對于四邊形,如果所有四個邊的長度都幾乎相等,并且每對鄰邊幾乎正交,則可以進一步將該形狀分類為正方形。如果所有四個邊的長度不都幾乎相等,并且每對鄰邊幾乎正交,則可以進一步將該形狀分類為長方形。如果每對對邊幾乎平行,且任何兩個鄰邊都不幾乎相等,則可以進一步將該形狀分類為平行四邊形。如果只有一對對邊幾乎平行,且任何兩個鄰邊都不幾乎正交,則可以進一步將該形狀分類為梯形。
在將多邊形的形狀分類之后,為了更好地表示,可以在步驟912中將多邊形的邊提純。具體來說,可以計算輸入筆劃的每個點到識別的形狀的邊之間的距離以確定輸入筆劃的每個點屬于識別的多邊形的哪條邊。然后,可以根據輸入筆劃的相應點的穩(wěn)健回歸結果重新計算識別的多邊形的每個邊的位置和方向。作為精細化,如圖12所示,精細化后的形狀1206可以更好地表示從手繪形狀1202的筆劃識別出的形狀1204的邊。
圖13為一般地表示為識別連接器的形狀而采取的步驟的流程圖。如圖14所示,用于識別連接器的形狀的輸入可包括筆劃及與已由圖表檢測器識別的容器的交點。這里所定義的交點指連接器的筆劃與容器距離最近的點。例如如圖14所示,在連接器1406兩端的交點1404處,都可將交點連接到容器1402和1412中的一個。一般來說,每個連接器可包括交點或箭頭與另一交點或箭頭之間的一條直線或曲線(這里定義為基干1408),并且每個連接器可包括在基干的任一端或兩端處的箭頭1410。
在繪制連接器時,一些用戶可能會用重疊的筆劃來回運動繪制連接器的基干。另一些用戶可能會同樣地來回運動繪制連接器的箭頭。還有一些用戶可能會一筆繪出連接器的基干和箭頭。因為用戶可能會一筆繪出連接器的基干和箭頭,可以解析筆劃的不同部分并分開識別。因此,在圖13的步驟1302中,可以在高曲率的點(這里定義為頂角)拆分筆劃。通過將一個筆劃解析成一條折線,該筆劃的每個非結尾點可以形成兩條線段的交點。在一個實施例中,可以計算筆劃的每個非結尾點處兩條線段之間的角度,并且可以在相應的角度小于諸如80度之類的閾值的點處斷開筆劃。為了避免在局部波動處將筆劃斷成過多無意義的片段,可以首先通過應用Sklansky的折線近似法(可以在1980年Sklansky J.和GonzalezV.寫的Fast Polygonal Approximation of Digitized Curves,PatternRecognition的卷12,第327-331頁中找到)使筆劃平滑,以簡化和平滑筆劃。
在步驟1304中,可以將筆劃或筆劃片段分類成基干筆劃或箭頭筆劃,以便分開識別連接器的基干筆劃和連接器的箭頭筆劃。
如果一個筆劃或筆劃片段的尺寸小于經驗閾值并且其到交點的距離很小,可以其認作箭頭筆劃。在一個實施例中,這一經驗閾值可以是12.8毫米,而到交點的距離可以是小于8.5毫米。任何不認作為箭頭筆劃的筆劃都可分類成基干筆劃。為了避免將短箭頭的所有筆劃錯誤地分類成箭頭筆劃,可以將距離連接器的凸包最近的筆劃或筆劃片段識別成基干筆劃或筆劃片段。
在步驟1306中,可以合并基干筆劃或筆劃片段??梢栽谝粋€筆劃或片段與另一個筆劃或片段分開時,一個筆劃或片段與另一個筆劃或片段重疊時,或在一個筆劃或片段重迭描繪另一個筆劃或片段時合并基干筆劃或片段。這些一般的情況在圖15中示出。對其中每種情況,都可以通過制作可包含分開的筆劃或筆劃的片段的兩端,或可包含在合并時可形成重疊連續(xù)1504的重疊筆劃或筆劃的片段的重疊區(qū)域,或可包含可在合并時形成過度繪制連續(xù)1506的過度繪制的筆劃或片段的過度繪制區(qū)域的四邊形來定義可合并區(qū)域1508。為了合并基干筆劃或筆劃片段,可以為每對筆劃或筆劃片段定義一個連接分。在一個實施例中,對過度繪制和重疊連續(xù)的情況,可以將該連接分定義成S=w11dm+w2lml]]>和對連續(xù)的情況定義成S=w11dm,]]>其中l(wèi)為兩個筆劃或筆劃片段的總長度,w1、w2為重量,而dm、lm分別為定義的可合并區(qū)域的寬度和長度。一般來說,此連接分在兩個筆劃或筆劃片段靠近時較大,而在筆劃或筆劃片段遠離時較小。對所有基干筆劃或基干筆劃的片段,都可以通過合并具有最高連接分的兩個基干筆劃或筆劃片段直至不再有可合并的筆劃對來進行遞歸合并過程。
在步驟1308中,可以將每個合并的筆劃或筆劃片段標準化以減少局部波動。在一個實施例中,可以用Sklansky的折線近似法(可以在1980年Sklansky J.和Gonzalez V.寫的Fast Polygonal Approximation of Digitized Curves,PatternRecognition的卷12,第327-331頁中找到)使每個合并的基干筆劃或筆劃片段標準化。當最后一個合并的基干筆劃被標準化后,就可完全生成連接器的最終基干。
在步驟1310中,可以識別箭頭筆劃或筆劃的片段。在一個實施例中,可以對箭頭筆劃或筆劃片段的凸包進行測試來看該形狀是否可能是三角形。將諸如面積比An/Ach(An表示在凸包內的最大內接n邊形的面積,而Ach表示筆劃的一個凸包的面積)之類的特征用于確定三角形的形狀。在此實施例中,可以用格雷厄姆算法(可以在1998年由劍橋大學出版社出版的Joseph O’Rourke寫的C中的計算幾何學(第二版),ISBN0-521-64976-5中找到)計算筆劃的凸包,并隨后計算筆劃的凸包面積Ach。最大內接三角形可以用由Boyce提出的算法(可以在1985年的Finding Extremal Polygons,SIAM Journal on Computing,14(1)134-147中找到,作者J.E.Boyce和D.P.Dobkin)來計算,并計算出它的面積An。接著,計算面積比An/Ach并將其與相應的閾值比較,例如在接近1的范圍內以確定箭頭筆劃或筆劃片段的形狀可能是三角形。
在一個實施例中,可以通過核查筆劃中的點與識別的形狀的邊之間的最大距離來測試該凹容器,以避免虛假的分類。然后,為了更好地表示,可以將三角形的邊精細化。首先,可以計算輸入筆劃的每個點到識別的形狀的邊之間的距離以確定輸入筆劃的每個點屬于識別的多邊形的哪條邊。然后,可以根據輸入筆劃的相應點的穩(wěn)健回歸結果重新計算識別的多邊形的每個邊的位置和方向??梢酝ㄟ^將最終的基干與任何識別的箭頭相結合來生成完整的連接器。
在用所述的系統(tǒng)和方法生成所有容器和連接器后,可以完全識別和生成以墨水輸入的手繪對象。通過使用本發(fā)明,用戶能不受手繪輸入限制而自由地繪制圖表和流程圖。一個形狀可以有許多筆劃,且輸入筆劃的次序可以是任意的,使得系統(tǒng)和方法可將任何墨水作為輸入接受。另外,筆劃可以是過度繪制或重疊的。在這兩種情況下,該系統(tǒng)和方法都可自動地檢測到正確的形狀。
從以上的詳細說明中可見,本發(fā)明提供一種用于識別手繪對象的形狀的系統(tǒng)和方法。有利的是系統(tǒng)和方法對筆劃輸入次序和形成手繪形狀的筆劃數量不敏感。另外,本系統(tǒng)和方法提供了靈活性和可擴展性。正如現(xiàn)在理解的,可將該系統(tǒng)和方法用于識別繪圖中任何閉合容器的和未閉合的連接器,包括圖示和圖表。一旦識別,就可以提供形狀的類型、位置、方向和大小。因此該方法和系統(tǒng)提供了當代計算中所需的重要優(yōu)點和益處。
雖然本發(fā)明容許各種修改和備擇性結構,在附圖中示出和詳細描述了本發(fā)明的某些實施例。然而,應理解并不想將本發(fā)明限定于所揭示的特定形式,相反,是想揭示所有落在本發(fā)明的精神和范圍之內的修改及選擇性結構。
權利要求
1.一種用于識別手繪形狀的計算機系統(tǒng),其特征在于,包括用于接收墨水輸入的形狀識別器;可操作地耦合至形狀識別器的,用于識別以墨水輸入的閉合容器的容器識別器;和可操作地耦合至形狀識別器的,用于識別以墨水輸入的連接器的連接器識別器。
2.如權利要求1所述的系統(tǒng),其特征在于,還包括可操作地耦合至形狀識別器的,用于將墨水輸入發(fā)送至形狀識別器的墨水解析器。
3.如權利要求2所述的系統(tǒng),其特征在于,還包括一個可操作地耦合至墨水解析器的用于對繪圖筆劃進行分組的圖表檢測器。
4.如權利要求3所述的系統(tǒng),其特征在于,所述圖表檢測器包括一個可操作地耦合至圖表檢測器的容器檢測器。
5.如權利要求3所述的系統(tǒng),其特征在于,所述圖表檢測器包括一個與可操作地耦合至圖表檢測器的連接器檢測器。
6.如權利要求1所述的系統(tǒng),其特征在于,所述容器識別器包括一個可操作地耦合至容器識別器的橢圓/圓分類器。
7.如權利要求1所述的系統(tǒng),其特征在于,所述容器識別器包括一個可操作地耦合至容器識別器的多邊形分類器。
8.如權利要求1所述的系統(tǒng),其特征在于,所述容器識別器包括一個可操作地耦合至容器識別器的三角形分類器。
9.如權利要求1所述的系統(tǒng),其特征在于,所述容器識別器包括一個可操作地耦合至容器識別器的四邊形分類器。
10.如權利要求1所述的系統(tǒng),其特征在于,所述連接器包括一個可操作地耦合至連接器識別器的基干識別器。
11.如權利要求1所述的系統(tǒng),其特征在于,所述連接器包括一個可操作地耦合至連接器識別器的箭頭識別器。
12.如權利要求1所述的系統(tǒng),其特征在于,所述閉合容器包括一個圓。
13.如權利要求1所述的系統(tǒng),其特征在于,所述閉合容器包括一個橢圓。
14.如權利要求1所述的系統(tǒng),其特征在于,所述閉合容器包括一個三角形。
15.如權利要求1所述的系統(tǒng),其特征在于,所述閉合容器包括一個四邊形。
16.如權利要求1所述的系統(tǒng),其特征在于,所述連接器包括一個箭頭。
17.如權利要求1所述的系統(tǒng),其特征在于,所述連接器包括一條直線。
18.如權利要求1所述的系統(tǒng),其特征在于,所述連接器包括一條曲線。
19.如權利要求1所述的系統(tǒng),其特征在于,所述容器包括文本。
20.一種具有包含權利要求1的系統(tǒng)的計算機可執(zhí)行部件的計算機可讀媒體。
21.一種用于識別手繪形狀的方法,其特征在于,包括接收墨水輸入;對以墨水輸入的每個容器進行容器識別;和對以墨水輸入的每個連接器進行連接器識別。
22.如權利要求21所述的方法,其特征在于,還包括解析墨水輸入以區(qū)分以墨水輸入的寫和畫。
23.如權利要求21所述的方法,其特征在于,還包括進行圖表檢測以識別以墨水輸入的圖的筆劃。
24.如權利要求21所述的方法,其特征在于,還包括用以墨水輸入的各容器和各連接器生成繪圖。
25.如權利要求21所述的方法,其特征在于,所述進行容器識別包括進行圓度測試。
26.如權利要求21所述的方法,其特征在于,所述進行容器識別包括進行橢圓/圓的識別。
27.如權利要求21所述的方法,其特征在于,所述進行容器識別包括進行多邊形識別。
28.如權利要求21所述的方法,其特征在于,所述進行容器識別包括進行三角形識別。
29.如權利要求21所述的方法,其特征在于,所述進行容器識別包括進行四邊形識別。
30.如權利要求21所述的方法,其特征在于,所述進行容器識別包括計算屬于一個容器的筆劃的凸包。
31.如權利要求21所述的方法,其特征在于,所述進行容器識別包括計算薄度比Pch2/Ach,其中,Pch和Ach代表圍繞容器的筆劃的凸包的周長和面積。
32.如權利要求26所述的方法,其特征在于,所述進行橢圓/圓識別包括確定圍繞容器的筆劃的最小邊界矩形。
33.如權利要求32所述的方法,其特征在于,還包括依比例決定筆劃,使最小邊界矩形成為正方形。
34.如權利要求27所述的方法,其特征在于,所述進行多邊形識別包括確定圍繞容器的凸包中的最大內接多邊形。
35.如權利要求27所述的方法,其特征在于,所述進行多邊形識別包括計算面積比An/Ach,其中An表示在圍繞容器的筆劃的凸包內的最大內接n邊形的面積,而Ach表示圍繞容器的筆劃的凸包的面積。
36.如權利要求27所述的方法,其特征在于,所述進行多邊形識別包括選擇具有最少邊數且面積比An/Ach大于閾值的n邊形。
37.如權利要求27所述的方法,其特征在于,所述進行多邊形識別包括精細化識別的多邊形的邊。
38.如權利要求27所述的方法,其特征在于,所述進行連接器識別包括在頂角處將連接器的筆劃分成片段。
39.如權利要求21所述的方法,其特征在于,所述進行連接器識別包括從連接器的箭頭筆劃把連接器的基干筆劃分類。
40.一種具有用于執(zhí)行權利要求21的方法的計算機可執(zhí)行指令的計算機可讀媒體。
全文摘要
本發(fā)明提供一種用于識別手繪對象的形狀的系統(tǒng)和方法。形狀識別器可以通過識別繪圖中閉合的容器和/或未閉合的連接器從以墨水輸入識別諸如的圖或表之類的繪圖。閉合的容器可表示可以被識別的包括圓形、橢圓形、三角形、四邊形五邊形、六邊形等等在內的任何數量的形狀。可以將折線用于近似用于處理基干的連續(xù)筆劃、重疊筆劃和過度繪制筆劃的連接器的基干。通過使用本發(fā)明,用戶可以不受手繪輸入限制而自由地繪制圖和流程圖。
文檔編號G06K9/46GK1607540SQ20041008266
公開日2005年4月20日 申請日期2004年9月24日 優(yōu)先權日2003年9月24日
發(fā)明者李彥濤, 林宙辰, 徐迅, 王堅 申請人:微軟公司