[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5869179B2 - 電子機器および手書き文書処理方法 - Google Patents

電子機器および手書き文書処理方法 Download PDF

Info

Publication number
JP5869179B2
JP5869179B2 JP2015506402A JP2015506402A JP5869179B2 JP 5869179 B2 JP5869179 B2 JP 5869179B2 JP 2015506402 A JP2015506402 A JP 2015506402A JP 2015506402 A JP2015506402 A JP 2015506402A JP 5869179 B2 JP5869179 B2 JP 5869179B2
Authority
JP
Japan
Prior art keywords
stroke
handwritten
file
stroke data
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015506402A
Other languages
English (en)
Other versions
JPWO2014147719A1 (ja
Inventor
康公 大河原
康公 大河原
小川 岳弘
岳弘 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of JP5869179B2 publication Critical patent/JP5869179B2/ja
Publication of JPWO2014147719A1 publication Critical patent/JPWO2014147719A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification
    • G06V30/387Matching; Classification using human interaction, e.g. selection of the best displayed recognition candidate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明の実施形態は、手書き文書を処理する技術に関する。
近年、タブレット、PDA、スマートフォンといった種々の電子機器が開発されている。この種の電子機器の多くは、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを備えている。
ユーザは、タッチスクリーンディスプレイ上に表示されるメニューまたはオブジェクトを指などでタッチすることにより、これらメニューまたはオブジェクトに関連づけられた機能の実行を電子機器に指示することができる。
しかし、タッチスクリーンディスプレイを備える既存の電子機器の多くは、画像、音楽、他の各種メディアデータに対する操作性を追求したコンシューマ向け製品であり、会議、商談、商品開発などのビジネスシーンにおける利用については必ずしも適していない場合がある。このため、ビジネスシーンにおいては、いまなお、紙の手帳が広く利用されている。
最近では、手書き文書を認識することによって得られるテキストを使用して手書き文書を検索するための技術も開発されている。
特開2001−155115号公報
しかし、従来では、手書き文書の作成中又は編集中にこの手書き文書を検索するための情報を生成する技術については考慮されていないのが現状である。
本発明の一形態の目的は、手書き文書を効率よく処理することができる電子機器および手書き文書処理方法を提供することである。
実施形態によれば、電子機器は、ディスプレイと、手書きによって入力される手書き文書を作成する処理手段とを具備する。前記処理手段は、前記手書き文書にさらに手書きされた第1ストロークに対応する第1ストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存し、前記第1ストロークの入力に応じて、前記第1ストロークデータに基づいて前記第1ストロークの軌跡を前記ディスプレイ上に描画し、前記第1ストロークデータに対応する第1文字コードを取得し、前記第1文字コードを前記第1のファイルとは異なる第2のファイルに保存する。前記第2のファイルへの前記第1文字コードの保存中に、さらに新たな第2ストロークが手書きされた場合、前記第2ストロークに対応する第2ストロークデータの前記第1ファイルへの保存と、前記第2ストロークデータに基づく前記第2ストロークの軌跡の前記ディスプレイ上への描画は、前記第1ストロークデータに対応する前記第1文字コードの前記第2のファイルへの保存の終了を待つこと無く実行される。
図1は、実施形態に係る電子機器の外観を示す斜視図である。 図2は、同実施形態の電子機器と外部装置との連携動作を示す図である。 図3は、同実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図である。 図4は、同実施形態の電子機器によって記憶媒体に保存される、図3の手書き文書に対応する手書き文書情報の概要を説明するための図である。 図5は、同実施形態の電子機器のシステム構成を示すブロック図である。 図6は、同実施形態の電子機器によって表示されるデスクトップ/ドロア画面を示す図である。 図7は、同実施形態の電子機器によって表示されるデスクトップ画面を示す図である。 図8は、同実施形態の電子機器によって表示されるノートビュー画面を示す図である。 図9は、同実施形態の電子機器によって表示される検索キー入力ダイアログを示す図である。 図10は、同実施形態の電子機器によって実行される手書きノートアプリケーションプログラムの機能構成を示すブロック図である。 図11は、同実施形態の電子機器によって管理される手書き文書のデータ構造を示す図である。 図12は、同実施形態の電子機器によって管理される特徴量情報を示す図である。 図13は、同実施形態の電子機器によって管理される文字列情報を示す図である。 図14は、同実施形態の電子機器によって実行される筆跡検索の概要を説明するための図である。 図15は、同実施形態の電子機器によって実行される、ストロークデータ、特徴量情報、および文字列情報を保存する処理の手順を示すフローチャートである。 図16は、同実施形態の電子機器によって実行される検索処理の手順を示すフローチャートである。
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この電子機器がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書き入力操作によって手書きされるストローク(手書きストロークの軌跡)がリアルタイムに描画され、これによって手書きにより入力された複数のストロークが画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1つのストロークに相当する。手書きされた文字および文字以外の手書きされたオブジェクト(手書きされた図形、手書きされた表、など)に対応する多数のストロークの集合が手書き文書を構成する。
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係を示す時系列情報(手書き文書情報)として記憶媒体に保存される。この手書き文書情報の例は図4を参照して後述するが、この手書き文書情報は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この手書き文書情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の複数の点それぞれに対応する複数の座標データ(時系列座標)を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の手書き文書情報を読み出し、この手書き文書情報によって示される複数のストロークの軌跡を画面上に描画することができる。手書き文書情報によって示される複数のストロークも、手書きによって入力される複数のストロークである。
さらに、タブレットコンピュータ10は編集機能を有している。この編集機能は、「消しゴム」ツール、範囲選択ツール、および他の各種ツール等を用いたユーザによる編集操作に応じて、範囲選択ツールによって選択される表示中の手書き文書内の任意の部分(手書き文字、手書きマーク、手書き図形、手書き表、等)を削除または移動することができる。またさらに、範囲選択ツールによって選択される手書き文書内の任意の部分を、手書き文書を検索するための検索キーとして指定することもできる。
本実施形態では、手書き文書は、1つまたは複数のページとして管理されうる。この場合、手書き文書情報を1つの画面に収まる面積単位で区切ることによって、1つの画面に収まる手書き文書情報のまとまりを1つのページとして記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは1つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。1つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
図2は、タブレットコンピュータ10と外部装置との連携動作の例を示している。タブレットコンピュータ10は、パーソナルコンピュータ1やクラウドと連携することができる。すなわち、タブレットコンピュータ10は、無線LANなどの無線通信デバイスを備えており、パーソナルコンピュータ1との無線通信を実行することができる。さらに、タブレットコンピュータ10は、インターネット上のサーバ2との通信を実行することもできる。サーバ2はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
パーソナルコンピュータ1はハードディスクドライブ(HDD)のようなストレージデバイスを備えている。タブレットコンピュータ10は、手書き文書情報をネットワーク越しにパーソナルコンピュータ1に送信して、パーソナルコンピュータ1のHDDに記録することができる(アップロード)。タブレットコンピュータ10とパーソナルコンピュータ1との間のセキュアな通信を確保するために、通信開始時には、パーソナルコンピュータ1がタブレットコンピュータ10を認証するようにしてもよい。この場合、タブレットコンピュータ10の画面上にユーザに対してIDまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ10のIDなどを自動的にタブレットコンピュータ10からパーソナルコンピュータ1に送信してもよい。
これにより、タブレットコンピュータ10内のストレージの容量が少ない場合でも、タブレットコンピュータ10が多数の手書き文書情報あるいは大容量の手書き文書情報を扱うことが可能となる。
さらに、タブレットコンピュータ10は、パーソナルコンピュータ1のHDDに記録されている任意の1以上の手書き文書情報を読み出し(ダウンロード)、その読み出した手書き文書情報によって示されるストロークをタブレットコンピュータ10のディスプレイ17の画面に表示することができる。この場合、複数の手書き文書情報それぞれのページを縮小することによって得られるサムネイルの一覧をディスプレイ17の画面上に表示してもよいし、これらサムネイルから選ばれた1ページをディスプレイ17の画面上に通常サイズで表示してもよい。
さらに、タブレットコンピュータ10が通信する先はパーソナルコンピュータ1ではなく、上述したように、ストレージサービスなどを提供するクラウド上のサーバ2であってよい。タブレットコンピュータ10は、手書き文書情報をネットワーク越しにサーバ2に送信して、サーバ2のストレージデバイス2Aに記録することができる(アップロード)。さらに、タブレットコンピュータ10は、サーバ2のストレージデバイス2Aに記録されている任意の手書き文書情報を読み出して(ダウンロード)、その手書き文書情報によって示されるストロークそれぞれの軌跡をタブレットコンピュータ10のディスプレイ17の画面に表示することができる。
このように、本実施形態では、手書き文書情報が保存される記憶媒体は、タブレットコンピュータ10内のストレージデバイス、パーソナルコンピュータ1内のストレージデバイス、サーバ2のストレージデバイスのいずれであってもよい。
次に、図3および図4を参照して、ユーザによって手書きされたストローク(文字、図形、表など)と手書き文書情報との関係について説明する。図3は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる手書き文書(手書き文字列)の例を示している。
手書き文書では、一旦手書きによって入力される文字や図形などの上に、さらに別の文字や図形などが手書きによって入力されるというケースが多い。図3においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きによって入力され、この後に、手書きの矢印が、手書き文字「A」のすぐ近くに手書きによって入力された場合が想定されている。
手書き文字「A」は、ペン100などを使用して手書きされる2つのストローク(「∧」形状の軌跡、「−」形状の軌跡)によって、つまり2つの軌跡によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「−」形状のペン100の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標SD21、SD21、…SD2nが得られる。
手書き文字「B」は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」は、ペン100などを使用して手書きされた手書きされた1つのストローク、つまり1つの軌跡によって表現される。手書きの「矢印」は、ペン100などを使用して手書きされた手書きされた2つのストローク、つまり2つの軌跡によって表現される。
図4は、図3の手書き文書に対応する手書き文書情報200を示している。手書き文書情報200は、複数のストロークデータSD1、SD2、…、SD7を含む。手書き文書情報200内においては、これらストロークデータSD1、SD2、…、SD7は、これらストロークが手書きされた順に時系列に並べられている。
手書き文書情報200において、先頭の2つのストロークデータSD1、SD2は、手書き文字「A」の2つのストロークをそれぞれ示している。3番目と4番目のストロークデータSD3、SD4は、手書き文字「B」を構成する2つのストロークをそれぞれ示している。5番目のストロークデータSD5は、手書き文字「C」を構成する1つのストロークを示している。6番目と7番目のストロークデータSD6、SD7は、手書き「矢印」を構成する2つのストロークをそれぞれ示している。
各ストロークデータは、一つのストロークに対応する座標データ系列(時系列座標)、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「A」に関しては、ストロークデータSD1は、手書き文字「A」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)、つまりn個の座標データSD11、SD12、…SD1nを含む。ストロークデータSD2は、手書き文字「A」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりn個の座標データSD21、SD22、…SD2nを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
各座標データは、対応する軌跡内のある1点に対応するX座標およびY座標を示す。例えば、座標データSD11は、「∧」形状のストロークの始点のX座標(X11)およびY座標(Y11)を示す。SD1nは、「∧」形状のストロークの終点のX座標(X1n)およびY座標(Y1n)を示す。
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報(時間情報)Tを含んでいてもよい。手書きされた時点は、絶対時間(例えば、年月日時分秒)またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間(例えば、年月日時分秒)をタイムスタンプ情報(時間情報)Tとして付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報(時間情報)Tとして付加してもよい。ある座標データに対応する相対時間(時間情報)は、ストロークが書き始められた時間とこの座標データに対応する点が手書きされた時間との間の時間間隔に相当する。
このように、各ストロークデータにタイムスタンプ情報Tが追加された手書き文書情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
図4で説明したような構造を有する手書き文書情報200は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この手書き文書情報200を使用することにより、図3に示すようにたとえ手書き「矢印」の先端部が手書き文字「A」上に重ねてまたは手書き文字「A」に近接して書かれたとしても、手書き文字「A」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。
さらに、本実施形態では、上述したように、手書き文書情報は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合として記憶されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の手書き文書情報200の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
図5は、タブレットコンピュータ10のシステム構成を示す図である。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ104、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
CPU101は、タブレットコンピュータ10内の各種モジュールの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)201、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム202が含まれている。この手書きノートアプリケーションプログラム202は、上述の手書き文書情報を作成および表示する機能、手書き文書情報を編集する機能、所望の手書き部分を含む手書き文書情報や、ある手書き文書情報内の所望の手書き部分を検索するための手書き文書検索機能を有している。手書き文書検索機能は、筆跡検索およびテキスト検索(文字列検索)の双方を実行することができる。筆跡検索は、検索キーである手書きストローク群の筆跡特徴量と類似する筆跡特徴量を有するストロークデータ群を検索するための検索方式である。テキスト検索(文字列検索)は、検索キーであるテキスト(文字コード)に対応する手書き文字(ストロークデータ群)を検索するための検索方式である。
手書き文書検索機能は、さらに、手書き文書情報を検索するためのインデックス情報を生成する機能を有している。本実施形態では、特徴量情報と文字列情報とがインデックス情報として生成される。特徴量情報は、各手書き文書情報の各ストロークデータの筆跡特徴量を含み、上述の筆跡検索方式で手書き文書を検索するためのインデックス情報として使用される。文字列情報は、各手書き文書情報内の各手書き文字に対応する文字コードを含み、上述のテキスト検索方式で手書き文書を検索するためのインデックス情報として使用される。
また、CPU101は、BIOS−ROM105に格納された基本入出力システム(BIOS)も実行する。BIOSは、ハードウェア制御のためのプログラムである。
システムコントローラ102は、CPU101のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ102は、PCI EXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ104との通信を実行する機能も有している。
グラフィクスコントローラ104は、本タブレットコンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ104によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて画面イメージを表示する。このLCD17A上にはタッチパネル17Bおよびデジタイザ17Cが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うための静電容量式のセンサである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル17Bによって検出される。デジタイザ17CはLCD17Aの画面上で入力を行うための電磁誘導式のセンサである。ペン100が接触される画面上の接触位置および接触位置の動き等はデジタイザ17Cによって検出される。
無線通信デバイス107は、無線LANまたは3G移動通信などの無線通信を実行するように構成されたデバイスである。EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オンまたは電源オフする機能を有している。
次に、手書きノートアプリケーションプログラム202によってユーザに提示される幾つかの代表的な画面の例を説明する。
図6は、手書きノートアプリケーションプログラム202によって表示されるデスクトップ/ドロア画面を示す。デスクトップ/ドロア画面は複数の手書き文書情報を扱うための基本画面である。以下では、手書き文書情報を手書きノートと称する。
デスクトップ/ドロア画面は、デスクトップ画面領域70とドロア画面領域71とを含む。デスクトップ画面領域70は作業中の複数の手書きノートに対応する複数のノートアイコン801〜805を表示するテンポラリ領域である。ノートアイコン801〜805の各々は、対応する手書きノート内のあるページのサムネイルを表示する。デスクトップ画面領域70は、さらに、ペンアイコン771、カレンダーアイコン772、スクラップノートアイコン773、タグアイコン774を表示する。
ペンアイコン771は、表示画面をデスクトップ/ドロア画面から図8で後述するノートビュー画面に切り替えるためのグラフィカルユーザインタフェース(GUI)である。カレンダーアイコン772は現在の日付を示すアイコンである。このカレンダーアイコン772は、表示画面をデスクトップ/ドロア画面から現在の日付に関連付けられたタイムラインノート画面に切り替えるためのGUIである。スクラップノートアイコン773は、スクラップデータを作成または閲覧するためのGUIである。作成されたスクラップデータはストラップブックに登録される。スクラップノートアイコン773は、スクラップブックに登録されている各スクラップデータのサムネイルを表示する。タグアイコン774は、任意の手書きノート内の任意のページに付箋紙(タグ)を貼り付けるためのGUIである。
ドロア画面領域71は、作成済みの全ての手書きノートを格納するためのストレージ領域を閲覧するための表示領域である。ドロア画面領域71は、全ての手書きノート内の幾つかの手書きノートに対応するノートアイコン80A,80B,80Cを表示する。ノートアイコン80A,80B,80Cの各々は、対応する手書きノート内のあるページのサムネイルを表示する。手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるドロア画面領域71上のジェスチャ(例えばスワイプジェスチャ等)を検出することができる。このジェスチャ(例えばスワイプジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、ドロア画面領域71上の画面イメージを左方向または右方向にスクロールする。これにより、ドロア画面領域71に任意の手書きノートそれぞれに対応するノートアイコンを表示することができる。
さらに、手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるドロア画面領域71のノートアイコン上のジェスチャ(例えばタップジェスチャ等)を検出することができる。ドロア画面領域71上のあるノートアイコン上のジェスチャ(例えばタップジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、このノートアイコンをデスクトップ画面領域70の中央部に移動する。そして、手書きノートアプリケーションプログラム202は、このノートアイコンに対応する手書きノートを選択し、そして、デスクトップ/ドロア画面の代わりに、図7に示すデスクトップ画面を表示する。図7のデスクトップ画面は、選択された手書きノート内の任意のページを閲覧可能な画面である。
さらに、手書きノートアプリケーションプログラム202は外部オブジェクトを使用してユーザによって行われるデスクトップ画面領域70上のジェスチャ(例えばタップジェスチャ等)も検出することができる。デスクトップ画面領域70の中央部に位置するノートアイコン上のジェスチャ(例えばタップジェスチャ等)の検出に応答して、手書きノートアプリケーションプログラム202は、中央部に位置するノートアイコンに対応する手書きノートを選択し、そして、デスクトップ/ドロア画面の代わりに、図7に示すデスクトップ画面を表示する。
図7は上述のデスクトップ画面を示す。
このデスクトップ画面は選択された手書きノート内の任意のページを閲覧可能な画面である。ここでは、ノートアイコン801に対応する手書きノートが選択された場合を想定する。この場合、手書きノートアプリケーションプログラム202は、この手書きノートに含まれる複数のページ901,902,903,904,905を、これらページ901,902,903,904,905それぞれの少なくとも一部分が視認可能で且つこれらページ901,902,903,904,905が重なった形態で表示する。
デスクトップ画面は、さらに、上述のペンアイコン771、カレンダーアイコン772、スクラップノートアイコン773、タグアイコン774を表示する。
手書きノートアプリケーションプログラム202はユーザによって行われるデスクトップ画面上の様々なジェスチャを検出することができる。例えば、あるジェスチャの検出に応答して、手書きノートアプリケーションプログラム202は、一番上に表示されるべきページを任意のページに変更する(ページ送り、ページ戻し)。また、一番上のページ上で行われるあるジェスチャ(例えばタップジェスチャ)の検出に応答して、またはペンアイコン771上で行われるあるジェスチャ(例えばタップジェスチャ)の検出に応答して、手書きノートアプリケーションプログラム202は、一番上のページを選択し、そしてデスクトップ画面の代わりに、図8に示すノートビュー画面を表示する。
図8のノートビュー画面は、ページ(手書きページ)の新規作成、および既存のページの閲覧および編集が可能な画面である。図7のデスクトップ画面上のページ901が選択された場合には、図8に示すように、ノートビュー画面は、このページ901の内容を表示する。
ノートビュー画面は、さらに、黒ペンボタン501、赤ペンボタン502、マーカーボタン503、選択ボタン504、および消しゴムボタン505を表示する。
例えば、黒ペンボタン501がユーザによるタップジェスチャによって選択された状態で、ペン100を用いた手書き入力操作がノートビュー画面上で行われると、手書きノートアプリケーションプログラム202は、ペン100の動きに合わせて黒色のストローク(軌跡)をノートビュー画面上に表示する。
図9は、検索キー入力ダイアログの例を示す。例えば、デスクトップ画面上の空き領域上で行われるタップジェスチャの検出に応答して、手書きノートアプリケーションプログラム202は、検索キー入力領域511、筆跡検索ボタン512A、テキスト検索ボタン512B、および検索実行ボタン512を含む検索キー入力ダイアログをデスクトップ画面上に表示する。筆跡検索ボタン512Aは上述の筆跡検索方式を選択するためのボタンである。テキスト検索ボタン512Bは上述のテキスト検索方式を選択するためのボタンである。検索ボタン512Cは、検索処理の実行を要求するためのボタンである。
筆跡検索方式が選択された場合においては、検索キー入力領域511は、検索キーとすべき文字列、図形、表などを手書きするための入力領域として使用することができる。ユーザは、手書き文字列に限らず、手書き図形、手書き表などを検索キー入力領域511に手書きすることができる。図9においては、検索キー入力領域511に手書き文字列「Determine」が検索キーとして入力された場合が例示されている。検索キー入力領域511に手書き文字列「Determine」が検索キーとして入力された状態で検索ボタン512Cがユーザによって選択されると、手書き文字列「Determine」の筆跡特徴と類似する筆跡特徴を有するストロークデータ群を含む手書き文書を検索するための筆跡検索が実行される。
テキスト検索方式が選択された場合においては、例えばソフトウェアキーボードが画面上に表示される。ユーザは、ソフトウェアキーボードを操作することによって任意のテキスト(文字列)を検索キーとして検索キー入力領域511に入力することができる。検索キー入力領域511にテキストが検索キーとして入力された状態で検索ボタン512Cがユーザによって選択されると、このテキストに対応するストロークデータ群を含む手書き文書を検索するためのテキスト検索が実行される。
次に、図10を参照して、手書きノートアプリケーションプログラム202の機能構成について説明する。
手書きノートアプリケーションプログラム202は、手書き文書情報を扱うことが可能なWYSIWYGアプリケーションであり、主制御部300、描画モジュール311、筆跡管理モジュール312、筆跡検索モジュール313A、文字認識モジュール313B、及び文字検索モジュール313C等を備える。主制御部300は、描画モジュール311、筆跡管理モジュール312、筆跡検索モジュール313A、及び文字認識モジュール313B、文字検索モジュール313C等と共同して、手書き文書(手書きページ)の作成、表示、編集、検索等を行う。
本実施形態では、手書き文書情報(複数のストロークデータ)と筆跡特徴量情報/文字列情報とは互いに異なるファイルを用いて管理される。手書き文書情報については、マークアップ言語に対応するファイル形式を使用して管理される。マークアップ言語に対応するファイル形式としては、例えば、xml(Extensible Markup Language)ファイルを使用し得る。この場合、手書き文書情報内の複数のストロークデータは、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイル(xmlファイル)に保存される。例えば1つのxmlファイルで1つの手書きページ(手書きページデータ)を管理しても良い。この場合、手書きページの数に対応する数のxmlファイルが作成される。
一方、手書きページデータに対応する筆跡特徴量情報/文字列情報は、この手書きページデータの複数のストロークデータを保存するxmlファイルとは別の第2のファイル、例えば、データベースファイルに保存される。この場合、筆跡特徴量情報/文字列情報は、ある1以上のストロークデータに対応する筆跡特徴量/文字コードがこの1以上のストロークデータに対応する識別情報に関連づけられた状態で(例えばテーブル形式)データベースファイルのような第2のファイルに保存される。
もし手書きページデータ(ストロークデータ)とこの手書きページデータに対応する筆跡特徴量情報/文字列情報とを同一のデータベースを使用して管理すると、データベース内の筆跡特徴量情報/文字列情報の保存/更新処理が実行されている間は、ストロークデータの保存/更新や、ストロークデータの描画処理を行うことができなくなる場合がある。なぜなら、通常、データベースにおいては、2つの異なるリード処理を同時に行うことは可能であるが、2つの異なるライト処理を同時に行うことはできず、データの整合性を保証するためにこれらライト処理間の排他制御を行うことが要求されるからである。手書きページデータ(ストロークデータ)および筆跡特徴量情報/文字列情報がそれぞれ異なるテーブルで管理されていたとしても、これらテーブルが同じデータベースファイル内のテーブル群である限り、同様の排他制御が必要となる。
手書きされたストロークの描画自体は、このストロークに対応するストロークデータをデータベースに保存する前に実行してもよい。しかし、もしこのストロークデータがデータベースに保存される前に電子機器が予期せぬエラーによって電源断されると、ストロークが描画されてユーザに提示されたにもかかわらず、このストロークに対応するストロークデータが消失してしまうことになる。したがって、データベース内の筆跡特徴量情報/文字列情報の更新処理が実行されている間は、実際には、上述したように、ストロークデータの保存/更新のみならず、描画処理の実行も停止することが必要となる。
手書きページの作成中はこの手書きページに対応する筆跡特徴量情報/文字列情報の生成処理を実行しないようにしてもよい。しかし、このようにすると、作成中の手書きページに対応する筆跡特徴量情報/文字列情報が存在しなくなり、作成中の手書きページに対する検索が全く実行できなくなるという自体が生じる可能性がある。
本実施形態では、手書きページデータ(ストロークデータ)はxmlファイルに保存され、この手書きページデータに対応する筆跡特徴量情報/文字列情報は別のファイル(データベースファイル)に保存される。したがって、たとえある手書きページデータに対応する筆跡特徴量情報/文字列情報をデータベースファイルに保存する処理の実行中であっても、この筆跡特徴量情報/文字列情報の保存の終了を待つことなく、この手書きページデータに新たなストロークデータを保存(追加)する処理、およびこの新たなストロークデータに対応するストロークを描画する処理を即座に行うことができる。換言すれば、手書きページデータの作成または編集操作が行われている間に、この手書きページデータに対応する筆跡特徴量情報/文字列情報を生成および保存する処理をほぼリアルタイムに行うことが可能となる。例えば、新たなストロークが手書きされると、このストロークの軌跡が描画されると共に、このストロークに対応するストロークデータがxmlファイルに即座に保存される。そして、このストロークデータはxmlファイルから読み出され、このストロークデータに対応する筆跡特徴量情報/文字列情報が生成される。生成された筆跡特徴量情報/文字列情報はデータベースファイルのような別のファイルに保存される。
本実施形態では、上述のように、手書きページデータは複数のストロークデータの集合から構成されており、また各ストロークデータは複数の座標データから構成されている。また、手書きページデータは、ストロークが手書きされた時間に関する時間情報やストロークの筆圧情報を含む場合もある。xmlファイルは複数の要素間の関係を、階層化された文書構造によって管理することができる。したがって、xmlファイルは各々が複数の座標データを含む複数のストロークデータの管理に有用である。また、xmlファイルはテキストベースのデータであるので、データベースファイルに比べ、柔軟な仕様変更が可能である。よって、xmlファイルを使用することにより、ストロークデータに関する属性の追加または座標データに関する属性の追加等にも柔軟に対応することができる。
以下、手書きノートアプリケーションプログラム202内の各部の機能を説明する。
主制御部300は、タッチスクリーンディスプレイ17(例えばデジタイザ17C)からペン100の動きの軌跡に対応する座標列を受信する。主制御部300は、例えば、1ストローク単位で、このストロークの軌跡上の複数の点に対応する複数の座標データ(複数のポイントデータ)を筆跡管理モジュール312に送信する。筆跡管理モジュール312は、ある手書きページに手書きされる複数のストロークに対応する複数のストロークデータをxmlファイルに保存するストローク処理部として機能する。より詳しくは、筆跡管理モジュール312は、主制御部311から受信される複数の座標データ(複数のポイントデータ)をxmlファイルに保存する。そして、筆跡管理モジュール312は、これら複数の座標データ(複数のポイントデータ)をxmlファイルから読み出し、読み出した複数の座標データ(複数のポイントデータ)を描画モジュール311に送信する。なお、筆跡管理モジュール312は、主制御部311から受信される複数の座標データ(複数のポイントデータ)をすぐにxmlファイルに保存することができるので、最初に、主制御部300から受信される複数の座標データを描画モジュール311に送信し、次いで、これら複数の座標データをxmlファイルに保存してもよい。さらに、筆跡管理モジュール312は、任意のxmlファイルから手書きページ(ストロークデータ群)を読み出し、各ストロークデータの複数の座標データを描画モジュール311に送信することもできる。
描画モジュール311は、手書きされる複数のストロークに対応する複数の軌跡を画面上に描画するように構成されている。この描画モジュール311は、筆跡管理モジュール312から複数の座標データを受信し、これら座標データに基づいて、ストロークに対応する軌跡を描画する。この場合、描画モジュール311自体がストロークに対応する軌跡を画面上に描画(表示)してもよいし、主制御部300が、描画モジュール311から描画結果(軌跡)を受信し、この描画結果(軌跡)に基づいてストロークに対応する軌跡を画面上に表示してもよい。
筆跡検索モジュール313A、および文字認識モジュール313Bは、主制御部300と共同して、作成又は編集中の手書きページに対応する上述の筆跡特徴量情報/文字列情報をこの手書きページを検索するためのインデックス情報として生成する生成部として機能する。より詳しくは、筆跡検索モジュール313Aは、作成又は編集中の手書きページに対応するxmlファイル内の複数のストロークデータから、これら複数のストロークデータに対応する複数の筆跡特徴量を、これら複数のストロークデータを筆跡検索方式で検索するためのインデックス情報(筆跡特徴量情報)として生成する。そして、筆跡検索モジュール313Aは、生成した複数の筆跡特徴量を上述の複数のストロークデータの識別情報と関連づけて特徴量データベース412Aに保存する。
筆跡検索モジュール313Aによるストロークデータの処理、つまり筆跡特徴量情報を生成する処理は、未処理のストロークデータ、つまり筆跡特徴量が生成されていないストロークデータに対して実行される。すなわち、筆跡検索モジュール313Aは、作成又は編集中の手書きページに対応するxmlファイルから未処理の各ストロークデータを取得する。そして、筆跡検索モジュール313Aは、未処理の各ストロークデータを処理することによって、この未処理の各ストロークデータの筆跡特徴量を計算する。ストロークデータの筆跡特徴量としては、ストロークデータ(ストローク)の特徴を表現可能な任意の情報を使用し得る。例えば、ストロークの筆跡特徴量として、このストロークの形状、筆画方向、傾斜、等を表す特徴量データを使用し得る。
特徴量データベース412Aは筆跡特徴量情報を保存するためのデータベースファイルである。特徴量データベース412A内のテーブルにおいては、多数のストロークデータの識別情報(ストロークID)とこれら多数のストロークデータに対応する多数の筆跡特徴量とが格納される。さらに、特徴量データベース412A内のテーブルにおいては、各ストロークデータの筆跡特徴量はこのストロークデータの識別情報(ストロークID)に関連付けられるだけでなく、このストロークデータが含まれている手書きページの識別情報(ページID)にも関連付けられていてもよい。
文字認識モジュール313Bは、主制御部300と共同して、作成又は編集中の手書きページに対応するxmlファイル内の複数のストロークデータから、これら複数のストロークデータに対応する複数の文字コードを、これら複数のストロークデータをテキスト検索方式で検索するためのインデックス情報(文字列情報)として生成する。そして、文字認識モジュール313Bは、生成した複数の文字コードを上述の複数のストロークデータの識別情報と関連づけて文字検索データベース412Bに保存する。2以上のストロークデータによって一つの文字が構成されている場合には、この文字に対応する文字コードはこれら2以上のストロークデータに関連づけられた状態で文字検索データベース412Bに保存される。
文字認識モジュール313Bによるストロークデータの処理(文字認識処理)、つまり文字コードを生成する処理は、未処理のストロークデータ、つまり文字コードが生成されていないストロークデータに対して実行される。すなわち、文字認識モジュール313Bは、作成又は編集中の手書きページに対応するxmlファイルから未処理の各ストロークデータを取得する。そして、文字認識モジュール313Bは、未処理の各ストロークデータを文字認識することによって、この未処理の各ストロークデータの文字コードを生成する。
文字検索データベース412Bは文字列情報を保存するためのデータベースファイルである。文字検索データベース412B内のテーブルにおいては、多数のストロークデータの識別情報(ストロークID)とこれら多数のストロークデータに対応する多数の文字コードとが格納される。さらに、文字検索データベース412B内のテーブルにおいては、各ストロークデータの文字コードはこのストロークデータの識別情報(ストロークID)に関連付けられるだけでなく、このストロークデータが含まれている手書きページの識別情報(ページID)にも関連付けられていてもよい。
この文字検索データベース412Bのデータベースファイルは、特徴量データベース412Aと異なるデータベースファイルであってもよい。これにより、筆跡特徴量情報を保存する処理と同時に文字列情報を保存する処理を実行することができる。
筆跡検索モジュール313Aは、筆跡特徴量情報を生成する生成部として機能するだけでなく、上述の筆跡検索を実行するための検索部としても機能する。すなわち、筆跡検索モジュール313Aは、検索キーであるストロークデータの筆跡特徴量と特徴量データベース412A内の筆跡特徴量情報とを使用して、検索キーであるストロークデータに対応するストロークデータを検索する。
筆跡検索が実行される場合においては、筆跡検索モジュール313Aは、主制御部300から検索キーである1以上のストロークに対応するストロークデータを受信する。そして、筆跡検索モジュール313Aは、特徴量データベース412A内の筆跡特徴量情報と検索キーであるストロークデータの筆跡特徴量(クエリー特徴量)とを使用して、上述の検索キーに対応するストロークデータ(手書き部分)を検索する。
より詳しくは、筆跡検索モジュール313Aは、特徴量データベース412A内の筆跡特徴量情報から、クエリー特徴量と類似する筆跡特徴量を見つけ出し、この筆跡特徴量に対応するストロークIDおよびページIDを検索結果として主制御部300に返す。この場合、クエリー特徴量との類似度が基準値以上である特徴量情報が特徴量データベース412Aから取得される。この類似度を算出するための方法としては、DP(Dynamic Programming)マッチングを使用してもよい。
主制御部300は、筆跡検索モジュール313Aから受信される検索結果(ストロークIDおよびページID)に基づいて、上述の検索キーに対応するストロークデータ(手書き部分)を含む1以上の手書きページを表示する。この場合、主制御部300は、これら1以上の手書きページ内の手書き部分(ヒットワード)を強調表示してもよい。
文字検索モジュール313Cは、上述のテキスト検索を実行するための検索部として機能する。すなわち、文字検索モジュール313Cは、検索キーであるテキスト(1以上の文字コード)と文字検索データベース412B内の文字列情報とを使用して、検索キーであるテキスト(1以上の文字コード)に対応するストロークデータ(手書き部分)を検索する。
テキスト検索が実行される場合においては、文字検索モジュール313Cは、主制御部300から検索キーであるテキストに対応する1以上の文字コードを受信する。そして、文字検索モジュール313Cは、文字検索データベース412B内の文字列情報と検索キーである1以上の文字コードとを使用して、上述の検索キーに対応するストロークデータ(手書き部分)を検索する。
より詳しくは、文字検索モジュール313Cは、文字検索データベース412B内の文字列情報から、検索キーである1以上の文字コードと同じ1以上の文字コードを見つけ出し、この1以上の文字コードに対応する1以上のストロークIDおよびページIDを検索結果として主制御部300に返す。
主制御部300は、文字検索モジュール313Cから受信される検索結果(1以上のストロークIDおよびページID)に基づいて、上述の検索キーであるテキスト対応するストロークデータ(手書き部分)を含む1以上の手書きページを表示する。この場合、主制御部300は、これら1以上の手書きページ内の手書き部分(ヒットワード)を強調表示してもよい。
メタデータベース412Cは、複数の手書きページそれぞれに対応する複数のメタデータ、例えば、ページ作成日時、ページ更新日時、ページID(UUID)、ページタイトル、等、を管理するためのデータベースである。
なお、ここでは、筆跡特徴量情報および文字列情報の双方を異なるデータベースファイルに保存する例を説明したが、筆跡特徴量情報または文字列情報の少なくとも一方を、ある一つのデータベースファイルに保存してもよい。
図11は、手書きページ内のストロークデータ群を管理するためのxmlファイルの文書構造を示す。
このxmlファイルのxmlインスタンスは、「root」要素、「page_data」要素、「strokes」要素、「stroke」要素、「points」要素、「point」要素を含む。これら要素によって階層化された文章構造が定義される。「root」要素は、xmlインスタンス内の全ての要素の起点となる要素(ノード)である。「page_data」要素は、「root」要素の子要素である。
この「page_data」要素は、3つの属性、つまり「uuid」属性、「create_time」属性、「update_time」属性を含む。「uuid」属性の属性値“ID1”は、このxmlファイルに含まれる手書きページのページIDを示す。「create_time」属性の属性値“TIME1”は、この手書きページの作成日時に関する時間情報である。このTIME1は、作成日時を示す絶対時間(年月日時分秒)であってもよい。「update_time」属性の属性値“TIME2”は、この手書きページの更新日時に関する時間情報である。TIME2も更新日時を示す絶対時間(年月日時分秒)であってもよい。
さらに、「page_data」要素は、この手書きページの幅を示す「幅」属性、この手書きページの高さを示す「高さ」属性、この手書きページのタイトルを示す「タイトル」属性、等を有していても良い。
「strokes」要素は、「page_data」要素の子要素である。この「strokes」要素は、xmlインスタンス内の複数の「stroke」要素をグループ化するための要素(ノード)として機能する。この「stroks」要素は、少なくとも1つの属性、例えば「stroke_count」属性を含む。この「stroke_count」属性は、このxmlファイルに現在含まれているストロークデータの数(総数)を示す。新たなストロークデータがxmlファイルに保存される度に、「stroke_count」属性の属性値は更新される。図11では、説明の簡単化のために、「stroke_count」属性の属性値は“2”である場合が例示されている。
複数の「stroke」要素は、互いに兄弟関係である要素群である。ある一つの「stroke」要素は、ある一つのストロークデータに対応する。各「stroke」要素は、この「stroke」要素の子要素である「points」要素と共同して、複数の「point」要素をグループ化するための要素(ノード)として機能する。
各「stroke」要素は、少なくとも3つの属性、つまり「stroke_id」属性、「time」属性、「color」属性を含む。「stroke_id」属性は、対応するストロークデータの識別情報(ストロークID)を示す。「time」属性は、対応するストロークデータが手書きされた時間に関する時間情報である。「time」属性は、対応するストロークデータが手書きされた絶対時間(年月日時分秒)であってもよい。「color」属性は、対応するストロークデータに対応する軌跡の色を示す。
さらに、「stroke」要素は、このストロークデータに対応する軌跡の幅(線幅)を示す「幅」属性、このストロークデータに対応する軌跡の線種(例えば、実線、破線、等)を示す「タイプ」属性、等を有していても良い。
「points」要素は、「stroke」要素の子要素である。「points」要素は、この「points」要素の子要素である複数の「point」要素をグループ化するための要素(ノード)として機能する。この「points」要素は、少なくとも1つの属性、例えば「point_count」属性を含む。「point_count」属性は、「points」要素に含まれる「point」要素の総数、つまり座標データの総数を示す。
ある「points」要素によってグループ化された複数の「point」要素は、あるストローク内の複数の座標データに対応する。一つの「point」要素は、一つの座標データに対応する。
ここで、各「point」要素は、例えば、要素内容を含まない空き要素であってもよい。各「point」要素は、例えば、4つの属性、つまり「x」属性、「y」属性、「duration」属性、「pressure」属性を含む。「x」属性は、対応する座標データ(対応する点)のx座標を示す。「y」属性は、対応する座標データ(対応する点)のy座標を示す。「duration」属性は、対応するストロークデータの手書き開始時間から対応する座標データが手書きされるまでの時間間隔に関する時間情報である。「pressure」属性は、対応する座標データ(対応する点)の筆圧を示す。
このように、本実施形態のxmlファイルにおいては、個々の座標データは、タグ付けされた「point」要素として管理される。さらに、同一のストロークに属する複数の座標データに対応する複数の「point」要素は、これら複数の座標データを含むストロークデータのストロークIDを含む「stroke」要素によってグループ化される。
したがって、ストロークデータ群をデータベースのテーブル形式で管理せずとも、所望のストローク内の全ての座標データまたは所望のストローク内の任意の座標データなどをxmlファイルから容易に取得することができる。
さらに、個々の「stroke」要素は時間情報を含むので、個々のストロークが手書きされた時間も容易に認識することができる。
また、xmlファイルはテキストベースのファイルであるので、例えば、各要素に付随する属性の種類等を容易に追加することもできる。また、「stroke」要素内の子要素として登録可能な「point」要素の数も制限されない。
筆跡検索モジュール313Aおよび文字認識モジュール313Bの各々は、複数の「stroke」要素それぞれに対応する複数の「time」属性(時間情報)に基づいて、xmlファイルから未処理のストロークデータ群を容易に取得することができる。すなわち、筆跡検索モジュール313Aおよび文字認識モジュール313Bの各々は、「stroke」要素の「time」属性に基づいて、つまりあるストロークデータが手書きされた時間に関する時間情報に基づいて、このストロークデータが未処理のストロークデータであるか否かを判定する。例えば、前回の筆跡特徴量/文字コード生成処理の時間(xmlファィルから最後にストロークデータを取得した時間)よりも遅い時間情報を有する「stroke」要素(ストロークデータ)は未処理のストロークデータであると判定される。筆跡検索モジュール313Aおよび文字認識モジュール313Bの各々は、筆跡管理モジュール312に対して各ストロークデータの時間情報を要求して、各「stroke」要素の「time」属性を筆跡管理モジュール312から受信しても良い。そして、筆跡検索モジュール313Aおよび文字認識モジュール313Bの各々は、未処理のストロークデータを決定し、決定した未処理のストロークデータを筆跡管理モジュール312に要求しても良い。
図12は、特徴量データベース412Aに格納される筆跡特徴量管理テーブルの構成例を示す。筆跡特徴量管理テーブルは複数のストロークデータに対応する複数のエントリを含む。各エントリは、例えば、ページID、ストロークID、特徴量(筆跡特徴量)を含む。あるストロークデータに対応するエントリにおいて、「ページID」は、そのストロークデータが手書きされた手書きページに付与された識別情報を示す。「ストロークID」は、そのストロークに付与された識別情報を示す。「特徴量」は、そのストロークを解析することによって算出された特徴量(筆跡特徴量)を示す。筆跡特徴量としては、上述したように、各ストロークの形状等を表す特徴量データを使用し得る。
なお、ここでは、ストローク毎に特徴量を管理する場合を例示したが、手書きの図形、手書きの表、手書きの記号といった手書きオブジェクト(手書きブロック)を単位として、その手書きオブジェクトの特徴量を管理しても良い。手書きオブジェクトの特徴量としては、その手書きオブジェクトの形状等の特徴を表現可能な任意の特徴量を使用し得る。さらに、手書きオブジェクトの特徴量は、この手書きオブジェクトを構成する複数のストロークの書かれた順序、等を表す情報を含んでいてもよい。
図13は、文字検索データベース412Bに格納される文字列情報管理テーブルの構成例を示す。文字列情報管理テーブルは複数の文字ブロックに対応する複数のエントリを含む。各エントリは、例えば、「ページID」、「ストロークID範囲」、「文字列」を含む。ある文字ブロックに対応するエントリにおいて、「ページID」は、その文字ブロックが手書きされた手書きページの識別情報を示す。「ストロークID範囲」は、その文字ブロック内のストローク群に付与された識別情報の範囲を示す。「文字列」は、その文字ブロックに対する(文字コード)を示す。ある文字ブロックの文字コードとして、この文字ブロックの複数の文字候補それぞれに対応する複数の文字コードが登録されていてもよい。
図14は、手書き文書検索の概要を示す。ここでは、検索キー入力領域511に手書き文字列「Meeting」に対応する複数のストロークがペン100によって手書きされ、さらにユーザによって筆跡検索が選択された場合を想定する。
筆跡検索モジュール313Aは、主制御部300から検索キーである1以上のストロークに対応するストロークデータを受信する。筆跡検索モジュール313Aは、このストロークデータの筆跡特徴量(クエリー特徴量)を計算する。そして、筆跡検索モジュール313Aは、特徴量ベース412Aを参照して、手書き文字列「Meeting」の筆記特徴と類似する筆跡特徴を有する手書き部分(ストロークデータ)を含む手書きページを検索する。いま、手書きページ611、612、613が、手書き文字列「Meeting」と類似する筆跡特徴を有する手書き部分を含む場合を想定する。この場合、主制御部300は、筆跡検索モジュール313Aから受信される検索結果に基づき、手書きページ611、612、613それぞれのサムネイルを画面上に表示する。さらに、主制御部300は、手書きページ611、612、613内のヒットワード(手書き文字列「Meeting」)を強調表示する。
図15のフローチャートは、手書きページの作成/編集処理中に手書きノートアプリケーションプログラム202によって実行される、ストロークデータ、筆跡特徴量情報および文字列情報の保存処理の手順を示す。
筆跡管理モジュール312は、作成/編集処理対象の手書きページに手書きされる複数のストロークに対応する複数のストロークデータを第1記憶領域に保存する(ステップS11)。この場合、筆跡管理モジュール312は、複数のストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で、記憶媒体上の第1記憶領域内の第1のファイル(xmlファイル)に保存する。
筆跡検索モジュール313Aは、手書きページの作成/編集処理中に、xmlファイルから未処理の複数のストロークデータを取得する。たとえば、ペン100が画面から離れた時に、またはペン100が画面から離れている状態が一定期間継続した時に、筆跡検索モジュール313Aは、未処理のストロークデータの取得を行っても良い。そして、筆跡検索モジュール313Aは、これら取得された複数のストロークデータに対応する複数の筆跡特徴量を、第1記憶領域と異なる第2記憶領域に保存する(ステップS12)。この場合、筆跡検索モジュール313Aは、複数の筆跡特徴量を上述の複数のストロークデータのストロークIDと関連づけて、xmlファイルと異なる第2のファイル(特徴量データベースファイル)に保存する。
文字認識モジュール313Bは、手書きページの作成/編集処理中に、xmlファイルから未処理の複数のストロークデータを取得する。たとえば、ペン100が画面から離れた時に、またはペン100が画面から離れている状態が一定期間継続した時に、文字認識モジュール313Bは、未処理のストロークデータの取得を行っても良い。そして、文字認識モジュール313Bは、これら取得された複数のストロークデータに対応する複数の文字コードを第2記憶領域と異なる第3記憶領域に保存する(ステップS13)。この場合、文字認識モジュール313Bは、複数の文字コードを上述の複数のストロークデータのストロークIDと関連づけて、上述のxmlファイルおよび特徴量データベースファイルとそれぞれ異なる第3のファイル(文字検索データベースファイル)に保存する。
図16のフローチャートは、手書きノートアプリケーションプログラム202によって実行される手書き文書検索処理の手順を示す。
ユーザによって筆跡検索方式が選択されたならば(ステップS21のYES)、主制御部300は、検索キーであるストロークデータを筆跡検索モジュール313Aに送信する。筆跡検索モジュール313Aは、筆跡検索を実行する(ステップS23)。この場合、筆跡検索モジュール313Aは、検索キーであるストロークデータの筆跡特徴量と特徴量データベース412A内の特徴量情報とを使用して、筆跡検索を実行する。そして、筆跡検索モジュール313Aは、検索キーに対応する手書きデータ部分を含む各手書きページ、つまりこの検索キーであるストロークデータと類似する筆跡特徴を有するストロークデータを含む各手書きページを検索する。
ユーザによってテキスト検索方式が選択されたならば(ステップS22のYES)、主制御部300は、検索キーである文字コードを文字検索モジュール313Cに送信する。文字検索モジュール313Cは、テキスト検索(文字列検索)を実行する(ステップS24)。この場合、文字検索モジュール313Cは、検索キーである文字コードと文字検索データベース412Bとを使用して、テキスト検索を実行する。そして、文字検索モジュール313Cは、検索キーに対応する文字コードを含む手書きページを検索する。
以上説明したように、本実施形態においては、手書きされる複数のストロークに対応する複数のストロークデータは、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存される。また未処理の1以上のストロークデータが取得され、この1以上のストロークデータに対応する筆跡特徴量またはこの1以上のストロークデータに対応する文字コードの少なくとも一方が、第1のファイルと異なる第2のファイルに保存される。
したがって、手書きページデータに対応する筆跡特徴量情報/文字列情報を生成して筆跡特徴量情報/文字列情報をデータベースファイルのような第2のファイルに保存する処理の実行中であっても、この手書きページデータに新たなストロークデータを保存(追加)する処理、およびこの新たなストロークデータに対応するストローク(軌跡)を描画する処理を迅速に行うことができる。換言すれば、手書きページデータの作成または編集操作が行われている間に、この手書きページデータに対応する筆跡特徴量情報/文字列情報を生成および保存する処理を行うことが可能となる。
また、複数のストロークデータの保存形式として、マークアップ言語によって記述される階層化された文書構造の形式を使用することにより、各々が複数の座標データを含む複数のストロークデータの管理を容易に行うことができる。
さらに、第2のファイルにおいては、1以上のストロークデータに対応する筆跡特徴量または1以上のストロークデータに対応する文字コードの少なくとも一方が、この1以上のストロークデータに対応する識別情報に関連付けられている。したがって、第2のファイルを使用することにより、検索キーであるストロークの筆跡特徴量に類似する筆跡特徴量を有するストロークデータ、または検索キーである文字コードに対応するストロークデータを効率よく検索することができる。またさらに、第1のファイルの階層化された文書構造は、一つのストロークデータ内に含まれる複数の座標データに対応する複数の第1要素と、この一つのストロークデータの識別情報を含む第2要素であって、複数の第1要素をグループ化する第2要素とを少なくとも含む。したがって、第1のファイルから目的のストロークデータを取得する処理などを効率よく行うことができる。
なお、本実施形態の手書き文書情報(手書きページ)に対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムを通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (10)

  1. ディスプレイと、
    手書きによって入力される手書き文書を作成する処理手段とを具備し、
    前記処理手段は、
    前記手書き文書にさらに手書きされた第1ストロークに対応する第1ストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存し、
    前記第1ストロークの入力に応じて、前記第1ストロークデータに基づいて前記第1ストロークの軌跡を前記ディスプレイ上に描画し、
    前記第1ストロークデータに対応する第1文字コードを取得し、前記第1文字コードを前記第1のファイルとは異なる第2のファイルに保存し、
    前記第2のファイルへの前記第1文字コードの保存中に、さらに新たな第2ストロークが手書きされた場合、前記第2ストロークに対応する第2ストロークデータの前記第1ファイルへの保存と、前記第2ストロークデータに基づく前記第2ストロークの軌跡の前記ディスプレイ上への描画は、前記第1ストロークデータに対応する前記第1文字コードの前記第2のファイルへの保存の終了を待つこと無く実行される、電子機器。
  2. 前記階層化された文書構造は、前記第1のファイル内の前記第1ストロークデータが手書きされた時間に関する時間情報を含み、
    前記処理手段は、前記時間情報に基づいて、前記第1のファイルから前記第1ストロークデータを取得する請求項1記載の電子機器。
  3. 前記第2のファイルにおいては、前記第1文字コードが前記第1ストロークデータに対応する識別情報に関連付けられていて、
    前記第1のファイルの階層化された文書構造は、
    前記第1ストロークデータ内に含まれる複数の座標データに対応する複数の第1要素と、
    前記第1ストロークデータの識別情報を含む第2要素であって、前記複数の第1要素をグループ化する第2要素とを少なくとも含む請求項1記載の電子機器。
  4. 前記第2要素は前記第1ストロークデータが手書きされた時間に関する時間情報を含む請求項3記載の電子機器。
  5. 前記処理手段は、前記第2要素の時間情報に基づいて、前記第1ストロークデータが未処理のストロークデータであるか否かを判定する請求項4記載の電子機器。
  6. 前記処理手段は、検索キーである第の文字コードと前記第2のファイル内の複数の文字コードとを使用して前記第の文字コードに対応するストロークデータを検索するテキスト検索を実行する請求項1記載の電子機器。
  7. 前記処理手段は、前第1文字コードを前記第1ストロークデータに対応する識別情報に関連付けて前記第2のファイルに保存する請求項1記載の電子機器。
  8. 前記処理手段は、前記第1ストロークデータに対応する筆跡特徴量を取得し、前記筆跡特徴量を前記第2のファイルに保存する請求項1記載の電子機器。
  9. 手書きによって入力される手書き文書を作成する手書き文書処理方法であって、
    前記手書き文書にさらに手書きされた第1ストロークに対応する第1ストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存することと、
    前記第1ストロークの入力に応じて、前記第1ストロークデータに基づいて前記第1ストロークの軌跡をディスプレイ上に描画することと、
    前記第1ストロークデータに対応する第1文字コードを取得し、前記第1文字コードを前記第1のファイルとは異なる第2のファイルに保存することとを具備し、
    前記第2のファイルへの前記第1文字コードの保存中に、さらに新たな第2ストロークが手書きされた場合、前記第2ストロークに対応する第2ストロークデータの前記第1ファイルへの保存と、前記第2ストロークデータに基づく前記第2ストロークの軌跡の前記ディスプレイ上への描画は、前記第1ストロークデータに対応する前記第1文字コードの前記第2のファイルへの保存の終了を待つこと無く実行される、手書き文書処理方法。
  10. 手書きによって入力される手書き文書を作成するためのプログラムであって、
    前記手書き文書にさらに手書きされた第1ストロークに対応する第1ストロークデータを、マークアップ言語によって記述される階層化された文書構造の形式で第1のファイルに保存する手順と、
    前記第1ストロークの入力に応じて、前記第1ストロークデータに基づいて前記第1ストロークの軌跡をディスプレイ上に描画する手順と、
    前記第1ストロークデータに対応する第1文字コードを取得し、前記第1文字コードを前記第1のファイルとは異なる第2のファイルに保存する手順とを、コンピュータに実行させ、
    前記第2のファイルへの前記第1文字コードの保存中に、さらに新たな第2ストロークが手書きされた場合、前記第2ストロークに対応する第2ストロークデータの前記第1ファイルへの保存と、前記第2ストロークデータに基づく前記第2ストロークの軌跡の前記ディスプレイ上への描画は、前記第1ストロークデータに対応する前記第1文字コードの前記第2のファイルへの保存の終了を待つこと無く実行される、プログラム。
JP2015506402A 2013-03-18 2013-03-18 電子機器および手書き文書処理方法 Active JP5869179B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/057707 WO2014147719A1 (ja) 2013-03-18 2013-03-18 電子機器および手書き文書処理方法

Publications (2)

Publication Number Publication Date
JP5869179B2 true JP5869179B2 (ja) 2016-02-24
JPWO2014147719A1 JPWO2014147719A1 (ja) 2017-02-16

Family

ID=51579454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015506402A Active JP5869179B2 (ja) 2013-03-18 2013-03-18 電子機器および手書き文書処理方法

Country Status (3)

Country Link
US (1) US20150154443A1 (ja)
JP (1) JP5869179B2 (ja)
WO (1) WO2014147719A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8594740B2 (en) 2008-06-11 2013-11-26 Pantech Co., Ltd. Mobile communication terminal and data input method
JP6125333B2 (ja) * 2013-05-31 2017-05-10 株式会社東芝 検索装置、方法及びプログラム
JP6136967B2 (ja) * 2014-02-06 2017-05-31 ソニー株式会社 情報処理システム、情報処理方法、及びプログラム
DE202015006142U1 (de) * 2014-09-02 2015-12-09 Apple Inc. Elektronische Touch-Kommunikation
JP6147825B2 (ja) * 2015-09-29 2017-06-14 株式会社東芝 電子機器および方法
JP6977408B2 (ja) * 2017-09-05 2021-12-08 株式会社リコー 情報処理システム、端末装置、情報処理方法及び情報処理プログラム
CN114860094B (zh) * 2022-05-23 2024-09-20 Oppo广东移动通信有限公司 数据的保存方法、装置、电子设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877295A (ja) * 1994-09-05 1996-03-22 Hitachi Ltd 手書き情報検索方法及びそれを用いた手書き入力装置
JP2004139281A (ja) * 2002-10-16 2004-05-13 Fujitsu Ltd オンライン手書き情報認識装置及び方法
JP2007317022A (ja) * 2006-05-26 2007-12-06 Canon Inc 手書文字処理装置及び手書文字処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3974359B2 (ja) * 2000-10-31 2007-09-12 株式会社東芝 オンライン文字認識装置及び方法並びにコンピュータ読み取り可能な記憶媒体及びオンライン文字認識プログラム
AUPR824301A0 (en) * 2001-10-15 2001-11-08 Silverbrook Research Pty. Ltd. Methods and systems (npw001)
US7262785B2 (en) * 2003-08-21 2007-08-28 Microsoft Corporation Ink editing architecture
US9134947B2 (en) * 2009-03-31 2015-09-15 Ricoh Company, Ltd. Annotating digital files of a host computer using a peripheral device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0877295A (ja) * 1994-09-05 1996-03-22 Hitachi Ltd 手書き情報検索方法及びそれを用いた手書き入力装置
JP2004139281A (ja) * 2002-10-16 2004-05-13 Fujitsu Ltd オンライン手書き情報認識装置及び方法
JP2007317022A (ja) * 2006-05-26 2007-12-06 Canon Inc 手書文字処理装置及び手書文字処理方法

Also Published As

Publication number Publication date
US20150154443A1 (en) 2015-06-04
WO2014147719A1 (ja) 2014-09-25
JPWO2014147719A1 (ja) 2017-02-16

Similar Documents

Publication Publication Date Title
JP6109625B2 (ja) 電子機器およびデータ処理方法
JP5349645B1 (ja) 電子機器および手書き文書処理方法
JP5248696B1 (ja) 電子機器、手書き文書作成方法、及び手書き文書作成プログラム
JP5728592B1 (ja) 電子機器および手書き入力方法
JP5813780B2 (ja) 電子機器、方法及びプログラム
JP5869179B2 (ja) 電子機器および手書き文書処理方法
JP5395927B2 (ja) 電子機器および手書き文書検索方法
JP6092418B2 (ja) 電子機器、方法及びプログラム
US20150146986A1 (en) Electronic apparatus, method and storage medium
JP5694234B2 (ja) 電子機器、手書き文書表示方法、及び表示プログラム
JP5925957B2 (ja) 電子機器および手書きデータ処理方法
JP6092462B2 (ja) 電子機器、方法及びプログラム
JP5634617B1 (ja) 電子機器および処理方法
JP2016085512A (ja) 電子機器、方法及びプログラム
US9183276B2 (en) Electronic device and method for searching handwritten document
JP2014203393A (ja) 電子機器、手書き文書処理方法、及び手書き文書処理プログラム
JP6100013B2 (ja) 電子機器および手書き文書処理方法
JP6223687B2 (ja) 電子機器および手書き文書検索方法
JP5330576B1 (ja) 情報処理装置および筆跡検索方法
JP5735126B2 (ja) システムおよび筆跡検索方法
JP6151005B2 (ja) システムおよび情報提供方法並びに電子機器
WO2014181433A1 (ja) 電子機器、手書き文書検索方法およびプログラム
JP6062487B2 (ja) 電子機器、方法及びプログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160106

R151 Written notification of patent or utility model registration

Ref document number: 5869179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313121

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250