以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る情報処理装置の外観を示す斜視図である。この情報処理装置は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型情報処理装置である。この情報処理装置は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、PDA等として実現され得る。以下では、この情報処理装置がタブレットコンピュータ10として実現されている場合を想定する。タブレットコンピュータ10は、タブレットまたはストレートコンピュータとも称される携帯型電子機器であり、図1に示すように、本体11とタッチスクリーンディスプレイ17とを備える。タッチスクリーンディスプレイ17は、本体11の上面に重ね合わせるように取り付けられている。
本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとが組み込まれている。フラットパネルディスプレイは、例えば、液晶表示装置(LCD)であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの2種類のセンサの双方がタッチスクリーンディスプレイ17に組み込まれている場合を想定する。
デジタイザおよびタッチパネルタッチの各々は、フラットパネルディスプレイの画面を覆うように設けられる。このタッチスクリーンディスプレイ17は、指を使用した画面に対するタッチ操作のみならず、ペン100を使用した画面に対するタッチ操作も検出することができる。ペン100は例えば電磁誘導ペンであってもよい。ユーザは、外部オブジェクト(ペン100又は指)を使用してタッチスクリーンディスプレイ17上で手書き操作を行うことができる。手書き操作中においては、画面上の外部オブジェクト(ペン100又は指)の動きの軌跡、つまり手書き操作によって手書きされるストローク(筆跡)がリアルタイムに描画され、これによって各ストローク(筆跡)が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が1ストロークに相当する。タッチスクリーンディスプレイ17に手書きされた手書きオブジェクト、例えば、手書き文字、手書きマーク、手書き図形、等、に対応する多数の筆跡の集合が手書きデータを構成する。
本実施形態では、この手書きデータは、イメージデータではなく、各手書きオブジェクトの筆跡を示す筆跡情報(時系列情報)として記憶媒体に保存される。各手書きオブジェクトの筆跡は、手書きオブジェクトの筆順、手書きオブジェクトの形状等を示す。例えば、手書き文字の筆順は、その手書き文字に含まれる複数のストロークが手書きされた順序を示す。さらに、手書き文字の筆順は、各ストロークの筆画方向、つまり各ストロークが書かれた方向も示す。
すなわち、筆跡情報(時系列情報)は、複数のストロークが手書きされた順を示し、且つ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列(時系列座標)を含む。各ストロークデータは、各ストロークの特徴、例えば、筆画方向、形状、傾斜、等を示す。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
タブレットコンピュータ10は、記憶媒体から既存の任意の時系列情報を読み出し、この時系列情報に対応する手書きデータ、つまりこの時系列情報によって示される複数の筆跡(複数のストローク)それぞれに対応する軌跡を画面上に表示することができる。
本実施形態では、時系列情報(手書きデータ)は、1つまたは複数のページとして管理されうる。この場合、時系列情報(手書きデータ)を1つの画面に収まる面積単位で区切ることによって、1つの画面に収まる時系列情報のまとまりを1つのページ(手書きページ)として記録してもよい。あるいは、ページのサイズを可変できるようにしてもよい。この場合、ページのサイズは1つの画面のサイズよりも大きい面積に広げることができるので、画面のサイズよりも大きな面積の手書き文書を一つのページとして扱うことができる。1つのページ全体をディスプレイに同時に表示できない場合は、そのページを縮小してするようにしてもよいし、縦横スクロールによってページ内の表示対象部分を移動するようにしてもよい。
さらに、タブレットコンピュータ10は、筆跡検索機能を有している。この筆跡検索機能は、入力文字列を示すコード群を検索キーとして入力するのではなく、タッチスクリーンディスプレイ17上に手書き操作によって書かれた第1の手書きオブジェクト(手書き文字、手書きマーク、手書き図形)を示す第1の筆跡そのものを検索キーとして入力し、そして、第1の筆跡を使用して既存の手書きデータを検索する機能である。検索キーとして入力された第1の筆跡との類似度が基準値以上である筆跡を有する第2の手書きオブジェクトが、上述の検索キーに対応する検索結果としてタッチスクリーンディスプレイ17に出力される。
このように、手書きオブジェクトの筆跡そのものを検索キーとして使用することにより、過去に作成した手書き文書群等から所望の手書き文書を容易に検索して再利用することが可能となる。
より詳しくは、筆跡検索では、ある1以上の検索対象の手書きデータから、検索キーとして指定された手書きオブジェクト(手書き文字、手書きマーク、手書き図形)の筆跡との類似度が基準値以上である筆跡を有する手書きオブジェクト(手書き文字、手書きマーク、手書き図形)が見つけ出される。この筆跡検索はオンライン検索であり、上述したように、タブレットコンピュータ10上に手書きされた手書き文字等の筆跡が検索キーとして使用される。
この筆跡検索では、個々の手書きオブジェクトの筆跡の特徴(筆順、形状、傾斜、等)が抽出される。そして、検索キーとして指定された手書きオブジェクトの筆跡の特徴と1以上の検索対象の手書きデータ内の各手書きオブジェクトの筆跡の特徴との間の類似度が求められる。したがって、手書き文字の言語に依存せずに、検索キーとして指定された手書き文字に対応する手書き文字を見つけ出すことができる。さらに、手書きの文字だけでなく、手書きのマーク、手書きの図形等も、見つけ出すことができる。
この筆跡検索の技術は上述したように言語に依存しない。しかし、文字等の書き方は人それぞれ異なるため、他人の筆跡(他人の手書きデータ)を検索する場合には、意図した検索結果が得られないことがある。
また、同じ人物であっても、時間の経過に応じて筆跡が変化する場合もある。さらに、同じ人物がある同じ文字を手書きした場合であっても、丁寧に手書きされた文字の筆跡と急いで手書きされた文字の筆跡は互いに異なる場合がある。したがって、他人の筆跡(他人の手書きデータ)を検索する場合のみならず、自分の手書きデータを検索する場合においても、意図した検索結果が得られないことがある。
そこで、本実施形態の筆跡検索機能には、検索キーとして入力される手書きオブジェクトの筆跡(第1の筆跡)に対応する別の筆跡(第2の筆跡)との類似度が基準値以上である筆跡を有する手書きオブジェクトを、上述の検索キーに対応する検索結果として表示する機能が追加されている。第2の筆跡は、第1の筆跡に応じた筆跡であって、かつ第1の筆跡とは異なる筆跡である。第1の筆跡と第2の筆跡は、同じ人物によって手書きされた同じ文字に対応する異なる筆跡同士であってもよい。また、第1の筆跡と第2の筆跡は、異なる人物によって手書きされた同じ文字に対応する異なる筆跡同士であってもよい。
以下では、他人の手書きデータを検索する場合を主に説明する。他人の手書きデータを検索する場合には、検索キーとして入力される第1の筆跡は、この手書きデータの著者の手書き特徴に適合する第2の筆跡に自動的に変換されうる。
すなわち、検索キーとして入力される手書きオブジェクトの筆跡(第1の筆跡)は、検索対象の手書きデータの著者の手書き特徴に適合する別の筆跡(第2の筆跡)に自動的に変換され、この第2の筆跡が新たな検索キーとして使用されて、上述の検索対象の手書きデータが検索される。換言すれば、検索キーとして使用されるべき筆跡が、第1の筆跡から第2の筆跡が自動的に置き換えられる。
このように、他人の手書きデータを検索する場合には、検索キーとして入力される第1の筆跡がこの手書きデータの著者の手書き特徴に適合する第2の筆跡に自動的に変換される。これにより、他人の手書きデータを検索する場合でも、あたかも自分の書いた手書きデータを検索する場合と同様に、所望の検索結果を得ることができる。 上述の筆跡変換の処理は、タブレットコンピュータ10によって実行してもよいし、タブレットコンピュータ10と連携する別の情報処理装置(例えば、サーバ)によって実行してもよい。
図2は、本実施形態のタブレットコンピュータ10とクラウドコンピューティングとを使用して実現される検索システムを示している。この検索システムは、複数の手書き端末(ここでは、タブレットコンピュータ10A、10B、10C)とサーバ2とを備える。タブレットコンピュータ10AはユーザAによって使用される手書き端末であり、タブレットコンピュータ10BはユーザBによって使用される手書き端末であり、タブレットコンピュータ10CはユーザCによって使用される手書き端末である。
タブレットコンピュータ10A、10B、10Cの各々は本実施形態のタブレットコンピュータ10と同等の機能を有する手書き端末であり、上述の筆跡検索機能を有している。タブレットコンピュータ10A、10B、10Cの各々は、インターネットを介してサーバ2との通信をする能力を有している。
サーバ2は、タブレットコンピュータ10A、10B、10Cそれぞれのユーザの手書きデータを蓄積するストレージ装置を備える。サーバ2は、蓄積された手書きデータに基づき、各ユーザの手書きデータを分析することによって、各ユーザの手書き特徴を示す手書き特徴情報を生成する。各ユーザの手書き特徴情報はサーバ2内で保持される。
タブレットコンピュータ10A、10B、10Cの各々は、そのタブレットコンピュータ上の手書き操作によって作成された手書きデータをインターネットを介してサーバ2に送信することができる(アップロード)。また、タブレットコンピュータ10A、10B、10Cの各々は、任意のユーザの手書きデータをインターネットを介してサーバ2から受信することができる(ダウンロード)。タブレットコンピュータ10A、10B、10Cの各々は、サーバ2から別の端末からアップロードされた手書きデータを受信するときには、当該別の端末のユーザの手書き特徴情報もサーバ2から受信することができる。
いま、タブレットコンピュータ10A上で筆跡検索が行われる場合を想定する。ユーザAの手書き操作によって作成された手書きデータを検索する場合には、ユーザAの手書き操作によって検索キーとして入力される第1の手書きオブジェクトの筆跡(第1の筆跡)が検索キーとしてそのまま使用される。そして、手書きデータから第1の筆跡との類似度が基準値以上である筆跡を有する第2の手書きオブジェクトを見つけ出す筆跡検索処理が実行され、第2の手書きオブジェクトが、上述の検索キーに対応する検索結果としてタッチスクリーンディスプレイ17に出力される。
あるいは、ユーザAの手書き操作によって検索キーとして入力される第1の手書きオブジェクトの筆跡(第1の筆跡)は、第1の筆跡に対応するユーザAの別の筆跡(第2の筆跡)にバックグラウンドで自動的に変換される。そして、手書きデータから第2の筆跡との類似度が基準値以上である筆跡を有する第2の手書きオブジェクトを見つけ出す筆跡検索処理が実行され、第2の手書きオブジェクトが、上述の検索キーに対応する検索結果としてタッチスクリーンディスプレイ17に出力される。これにより、ユーザAが過去に作成した手書きデータの筆跡と同ユーザAの現在の筆跡が異なる場合でも、所望の検索結果を得ることができる。
一方、ユーザBによって作成された手書きデータを検索する場合には、ユーザAの手書き操作によって検索キーとして入力される第1の手書きオブジェクトの筆跡(第1の筆跡)は、ユーザBによって作成された手書きデータの手書き特徴に適合する別の筆跡(第2の筆跡)にバックグラウンドで自動的に変換される。そして、少なくともこの第2の筆跡を検索キーとして使用して、ユーザBによって作成された手書きデータに対する筆跡検索処理が実行される。この場合、この筆跡検索処理では、手書きデータから、第2の筆跡との類似度が基準値以上である筆跡を有する第2の手書きオブジェクトが見つけ出される。そして、第2の手書きオブジェクトが、上述の検索キーに対応する検索結果としてタッチスクリーンディスプレイ17に出力される。これにより、他人の手書きデータを検索する場合でも、所望の検索結果を得ることができる。
タブレットコンピュータ10Aは、サーバ2から受信されるユーザAの手書き特徴情報およびユーザBの手書き特徴情報の少なくとも一方を使用することによって、第1の筆跡を第2の筆跡に変換する変換処理を実行することができる。なお、上述の変換処理と筆跡検索処理の双方は、各端末によって実行してもよいし、サーバ2によって実行してもよい。さらに、上述の変換処理をサーバ2によって実行し、上述の筆跡検索処理を各端末によって実行してもよい。
次に、図3および図4を参照して、ユーザによって手書きされたオブジェクト(文字、マーク、図形、表など)と手書きデータ(時系列情報)との関係について説明する。図3は、ペン100などを使用してタッチスクリーンディスプレイ17上に手書きされる手書き文書(手書き文字列)の例を示している。
図3においては、「ABC」の手書き文字列が「A」、「B」、「C」の順番で手書きされた場合が想定されている。
手書き文字「A」の筆跡は、ペン100などを使用して手書きされる2つのストローク(「∧」形状の軌跡、「−」形状の軌跡)によって、つまり2つの軌跡によって表現される。最初に手書きされる「∧」形状のペン100の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標SD11、SD12、…SD1nが得られる。同様に、次に手書きされる「−」形状のペン100の軌跡も例えば等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標SD21、SD21、…SD2nが得られる。
手書き文字「B」の筆跡は、ペン100などを使用して手書きされた2つのストローク、つまり2つの軌跡によって表現される。手書き文字「C」の筆跡は、ペン100などを使用して手書きされた手書きされた1つのストローク、つまり1つの軌跡によって表現される。
図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つのストロークを示している。
各ストロークデータは、一つのストロークに対応する座標データ系列(時系列座標)、つまり一つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「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が追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
さらに、各座標データには、筆圧を示す情報(Z)を追加してもよい。
図5は、タブレットコンピュータ10のシステム構成を示す図である。
タブレットコンピュータ10は、図5に示されるように、CPU101、システムコントローラ102、主メモリ103、グラフィクスコントローラ105、BIOS−ROM105、不揮発性メモリ106、無線通信デバイス107、エンベデッドコントローラ(EC)108等を備える。
CPU101は、タブレットコンピュータ10内の各種モジュールの動作を制御するプロセッサである。CPU101は、ストレージデバイスである不揮発性メモリ106から主メモリ103にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム(OS)201、および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、デジタルノートブックアプリケーションプログラム202が含まれている。このデジタルノートブックアプリケーションプログラム202は、上述の手書きデータを作成および表示する機能、手書きデータを編集する機能、上述の筆跡検索機能等を有している。
タッチスクリーンディスプレイ17は、「タッチ」、「移動(スライド)」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動(スライド)」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。デジタルノートブックアプリケーションプログラム202は、タッチスクリーンディスプレイ17によって発生される「タッチ」または「移動(スライド)」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動(スライド)」イベントにも、移動先の接触位置の座標が含まれている。したがって、デジタルノートブックアプリケーションプログラム202は、タッチスクリーンディスプレイ17から、接触位置の動きの軌跡に対応する座標列を受信することができる。
ここで、デジタルノートブックアプリケーションプログラム202によって実行される手書きデータ作成処理の概略を説明する。
ユーザがペン100を使用して手書き入力操作を行うと、「タッチ」や「移動」のイベントが発生される。これらイベントに基づいて、デジタルノートブックアプリケーションプログラム202は、ペン100の動きの軌跡を検出する。ペン100の動きの軌跡が検出されたならば、デジタルノートブックアプリケーションプログラム202は、検出されたペン100の動きの軌跡をディスプレイに表示する。さらに、デジタルノートブックアプリケーションプログラム202は、検出されたペン100の動きの軌跡に対応する座標列に基づいて上述の手書きデータ(時系列情報)を生成し、その手書きデータ(時系列情報)を主メモリ103または不揮発性メモリ106に保存する。
また、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移動通信などの無線通信を実行するように構成されたデバイスである。無線通信デバイス107は、上述のサーバ2との通信を実行する。上述したように、上述の変換処理と筆跡検索処理の双方をサーバ2によって実行する場合においては、無線通信デバイス107は、上述の第1の筆跡を検索キーとしてサーバ2に送信し、検索結果をサーバ2から受信する通信デバイスとして機能する。
上述の変換処理と筆跡検索処理の双方をタブレットコンピュータ10によって実行する場合においては、無線通信デバイス107は、タブレットコンピュータ10のユーザ(ユーザA)に対応する第1の手書き特徴情報および検索対象手書きデータの著者(ユーザB)に対応する第2の手書き特徴情報の少なくとも一方をサーバ2から受信する通信デバイスとして機能する。
第1の手書き特徴情報は、ユーザAの筆跡それぞれがどのオブジェクト識別コードに対応するかを示す情報である。第2の手書き特徴情報は、ユーザAの筆跡それぞれがどのオブジェクト識別コードに対応するかを示す情報である。デジタルノートブックアプリケーションプログラム202は、これら第1および第2の手書き特徴情報の少なくとも一方に基づいて、上述の変換処理を実行することができる。さらに、デジタルノートブックアプリケーションプログラム202は、変換処理によって得られる第2の筆跡を使用して上述の筆跡検索処理を実行することができる。
EC108は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。EC108は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ10を電源オンまたは電源オフする機能を有している。
次に、図6を参照して、デジタルノートブックアプリケーションプログラム202およびサーバ2それぞれの機能構成について説明する。
デジタルノートブックアプリケーションプログラム202は、少なくとも、検索キー入力部61、および検索結果表示処理部63を備える。検索キー入力部61は、タッチスクリーンディスプレイ17上に手書き操作によって書かれた手書きオブジェクト(手書き文字、手書きマーク、手書き図形等)を示す第1の筆跡を検索キーとして入力する。検索結果表示処理部63は、デジタルノートブックアプリケーションプログラム202の検索処理部62またはサーバ2によって上述の変換処理および上述の筆跡検索処理を実行することによって得られる検索結果を出力する。具体的には、検索結果表示処理部63は、検索結果をタッチスクリーンディスプレイ17に表示する。
変換処理では、第1の筆跡は、タブレットコンピュータ10のユーザ(例えば、ユーザA)の手書き特徴情報51と、検索対象の手書きデータの著者(例えば、ユーザB)の手書き特徴情報52とに基づいて、第1の筆跡に対応する別の筆跡(第2の筆跡)に、例えば、検索対象手書きデータの著者(例えば、ユーザB)の手書き特徴に適合する第2の筆跡に変換される。
あるいは、第1の筆跡は、検索対象の手書きデータの著者(例えば、ユーザB)の手書き特徴情報52に基づいて、第1の筆跡に対応する別の筆跡(第2の筆跡)に、例えば、検索対象手書きデータの著者(例えば、ユーザB)の手書き特徴に適合する第2の筆跡に変換される。この場合、第1の筆跡を文字認識することによって得られるオブジェクト識別コードを使用して手書き特徴情報52を参照することにより、このオブジェクト識別コードに対応するユーザBの筆跡を手書き特徴情報52から取得することができる。
あるいは、第1の筆跡は、検索対象の手書きデータの著者(例えば、ユーザA)の手書き特徴情報51に基づいて、第1の筆跡に対応する別の筆跡(第2の筆跡)に、例えば、検索対象手書きデータの著者(例えば、ユーザA)の手書き特徴に適合する別の筆跡(第2の筆跡)に変換される。この場合、第1の筆跡に対応するオブジェクト識別コードと同じオブジェクト識別コードに関連づけられた別の筆跡が、手書き特徴情報51から取得される。
筆跡検索処理では、第2の筆跡との類似度が基準値以上である筆跡を有する手書きオブジェクトが検索対象手書きデータから見つけ出される。手書きオブジェクト間の類似度つまり筆跡間の類似度の計算方法としては、様々な方法を使用することができる。例えば各筆跡(各ストローク)の座標列をベクトルとして扱ってもよい。この場合、比較対象のベクトル同士の類似度を計算するために、それら比較対象のベクトル間の内積を比較対象のベクトル間の類似度として算出してもよい。また、手書きオブジェクト間の類似度の計算方法として、DP(Dynamic Programming)マッチングを使用してもよい。
検索結果表示処理部63は、タッチスクリーンディスプレイ17に検索結果画面を表示する。この検索結果画面には、見つけ出された手書きオブジェクトを各々が含む検索対象手書きデータの一覧を表示しても良い。あるいは、各検索対象手書きデータの筆跡群をタッチスクリーンディスプレイ17に表示しておき、見つけ出された手書きオブジェクトに対応する筆跡を強調表示してもよい。
図6では、デジタルノートブックアプリケーションプログラム202が検索処理部62を備える場合が例示されている。この検索処理部62は、筆跡変換部62A、筆跡検索部62Bを備える。
検索処理部62は、サーバ2からタブレットコンピュータ10のユーザ(ユーザA)に対応する手書き特徴情報51を受信する。さらに、筆跡変換部62Aは、サーバ2から、検索対象の手書きデータと、検索対象の手書きデータの著者(例えばユーザB)に対応する手書き特徴情報52とを受信する。なお、筆跡変換部62Aは、手書き特徴情報52が付加された検索対象の手書きデータをサーバ2から受信しても良い。
筆跡変換部62Aは、手書き特徴情報51と手書き特徴情報52とに基づいて、ユーザAの第1の筆跡をユーザBの第2の筆跡に変換する。筆跡検索部62Bは、第2の筆跡を使用して検索対象の手書きデータを検索して、第2の筆跡との類似度が基準値以上の筆跡を有する手書きオブジェクトを検索対象の手書きデータから見つけ出す。なお、筆跡検索部62Bは、第2の筆跡のみならず、第1の筆跡も使用して、上述の筆跡検索処理を実行することもできる。この場合、まず、第1の筆跡との類似度が基準値以上の筆跡を有する手書きオブジェクトを検索対象の手書きデータから見つけ出す第1の筆跡検索処理を実行してもよい。続いて、第2の筆跡との類似度が基準値以上の筆跡を有する手書きオブジェクトを検索対象の手書きデータから見つけ出す第2の筆跡検索処理を実行してもよい。そして、例えば、第1の筆跡検索処理で見つけ出された筆跡と第2の筆跡検索処理で見つけ出された筆跡とをマージすることによって得られる検索結果を、タッチスクリーンディスプレイ17に表示してもよい。
サーバ2は、ユーザA、ユーザB、ユーザCにそれぞれ対応する手書き特徴情報51、52、53を生成するために、分析処理部41を備える。分析処理部41は、サーバ2のストレージ装置に蓄積されたユーザAの手書きデータ群(ページ群)31、ユーザBの手書きデータ群(ページ群)32、ユーザCの手書きデータ群(ページ群)33をそれぞれ分析することによって、各ユーザの手書き特徴を抽出し、これによって上述の手書き特徴情報51、52、53を生成する。
図7は、手書き特徴情報51、52、53の各々の例を示している。ユーザAの手書き特徴情報51は、ユーザAの手書きデータグループを分析することによって得られる。この分析には、文字認識処理、図形認識処理、文脈分析処理等を使用しても良い。手書き特徴情報51は、複数の正規化筆跡(識別コード)それぞれに対応するユーザAの筆跡を示す。識別コードは手書き文字、手書き図形のような手書きオブジェクトを一意に識別するためのオブジェクト識別コードである。オブジェクト識別コードには、例えば、文字コード、またはマークまたは図形を識別するための他のコード等が含まれる。 手書き特徴情報51は、例えば、文字「a」、文字「b」、文字「c」…にそれぞれ対応するオブジェクト識別コードと、これら文字「a」、文字「b」、文字「c」…にそれぞれ対応するユーザAの筆跡とを示すテーブルから構成される。テーブルに格納される各筆跡は、図4で説明した1以上のストロークデータから構成される。例えば、文字「a」に対応するユーザAの筆跡のフィールドにおいては、文字認識処理によって文字「a」として認識されるユーザAの手書き文字の筆跡を示すストロークデータが格納される。なお、同一の識別コードに関連づけられた異なる複数の筆跡が手書き特徴情報51に格納されていてもよい。
手書き特徴情報52は、複数の正規化筆跡(複数のオブジェクト識別コード)それぞれに対応するユーザBの筆跡を示す。手書き特徴情報53は、複数の正規化筆跡(複数のオブジェクト識別コード)それぞれに対応するユーザCの筆跡を示す。なお、手書き特徴情報52、53の各々においても、同一の識別コードに関連づけられた異なる複数の筆跡が格納されていてもよい。
なお、ここではユーザ毎に手書き特徴情報を生成する場合を例示したが、同じユーザによって書かれた手書きデータ群を、例えば手書きデータの作成日に基づいて、作成時期が異なる複数のグループに分け、これらグループ毎に手書き特徴情報を生成してもよい。これにより、あるユーザによって検索キーとして書かれた筆跡をこのユーザの過去の手書き特徴に適合する筆跡に変換し、この変換された筆跡を使用してこのユーザが過去に書いた手書きデータを検索することが可能となる。人の手書き特徴は時の経過につれて変化する場合がある。したがって、このように、あるユーザによって検索キーとして書かれた筆跡をこのユーザの過去の手書き特徴に適合する筆跡に変換することにより、このユーザが過去に作成した手書きデータを検索する場合でも、所望の検索結果を得やすくすることができる。
図8は、タブレットコンピュータ10によって実行される検索処理動作を示している。ここでは、タブレットコンピュータ10のユーザAがユーザBの手書きデータグループを検索する場合を想定する。
ユーザAによって検索キーとして書かれた手書きオブジェクトを示す第1の筆跡は、筆跡変換部62Aに送られる。筆跡変換部62Aは、少なくともユーザBの手書き特徴情報52に基づいて、例えば、ユーザAの手書き特徴情報51とユーザBの手書き特徴情報52とに基づいて、あるいはユーザBの手書き特徴情報52のみに基づいて、第1の筆跡に対応するユーザBの第2の筆跡を得る。例えば、ユーザAによって検索キーとして書かれた手書きオブジェクトの筆跡が文字「a」として認識される筆跡である場合には、ユーザAの手書きオブジェクトの筆跡は、文字「a」として認識されるユーザBの筆跡に置換される。
検索処理部62は、第2の筆跡を使用してユーザBの手書きデータグループを検索する。なお、上述したように、第2の筆跡と第1の筆跡との双方を使用して、ユーザBの手書きデータグループを検索してもよい。
図9は、デジタルノートブックアプリケーションプログラム202およびサーバ2それぞれの機能構成の別の例を示す。
図9においては、サーバ2が検索処理部80を備えている。上述の変換処理及び筆跡検索処理はサーバ2内の検索処理部80によって実行される。
検索処理部80は、受信部80A、変換部80B、筆跡検索部80C、および出力部80Dを備える。受信部80Aは、任意の端末から、例えば、タブレットコンピュータ10のタッチスクリーンディスプレイ17に書かれた第1の筆跡を検索キーとして受信する。変換部80Bは、第1の筆跡を、第1の筆跡に対応する別の第2の筆跡に変換する。この変換処理では、上述したように、タブレットコンピュータ10のユーザAの手書き特徴情報および検索対象の手書きデータの著者の手書き特徴情報の少なくとも一方が参照される。検索対象の手書きデータの著者がユーザAであるならば、ユーザAの手書き特徴情報のみを参照するようにしてもよい。また、検索対象の手書きデータの著者がユーザBであるならば、ユーザAの手書き特徴情報とユーザBの手書き特徴情報の双方を参照してもよいし、ユーザBの手書き特徴情報のみを参照してもよい。
筆跡検索部80Cは、第2の筆跡との類似度が基準値以上の筆跡を検索対象の手書きデータから見つけ出す筆跡検索処理を実行する。出力部80Dは、筆跡検索処理の結果を出力する。例えば、出力部80Dは、筆跡検索処理の結果をタブレットコンピュータ10に送信する。
これまでの説明では、検索キーとして使用される筆跡を検索対象の手書きデータの著者の手書き特徴に適合する筆跡に変換する場合を説明したが、検索対象の手書きデータを、検索者の手書き特徴に適合する手書きデータに変換しても良い。
図10は、タブレットコンピュータ10またはサーバ2によって実行される、手書きデータ変換処理を含む検索処理動作を示している。
ここでは、タブレットコンピュータ10のユーザAがユーザBの手書きデータグループを検索する場合を想定する。
データ変換部81は、デジタルノートブックアプリケーションプログラム202またはサーバ2内に設けられている。データ変換部81は、ユーザBの手書きデータグループ内の各手書きデータ32を、ユーザAの手書き特徴に適合する手書きデータ32Bに変換する。この変換処理では、手書き特徴情報51、52に基づいて、ユーザBの手書きデータに含まれる各手書きオブジェクトの筆跡が、ユーザAの手書き特徴に適合する筆跡に置き換えられる。ユーザBの手書きデータに含まれる、例えば文字「a」に対応するユーザBの筆跡(ストロークデータ)は、文字「a」に対応するユーザAの筆跡(ストロークデータ)に置換される。同様に、ユーザBの手書きデータに含まれる、例えば文字「b」に対応するユーザBの筆跡(ストロークデータ)は、文字「b」に対応するユーザAの筆跡(ストロークデータ)に置換される。
検索処理部80は、ユーザAによって検索キーとして書かれた手書きオブジェクトの第1の筆跡を使用して手書きデータ32Bを検索して、手書きデータ32Bから、第1の筆跡との類似度が基準値以上である筆跡を有する手書きオブジェクトを見つけ出す。検索結果処理部63は、見つけ出された手書きデータ32B内の各手書きオブジェクトの位置に応じて、手書きデータ32内の各手書きオブジェクトを視認可能に表示する。
本実施形態の筆跡検索においては、テキスト検索の場合とは異なり、文字認識を行う必要が無い。したがって、言語に依存しないため、あらゆる言語で手書きされた手書きデータ(手書きページ)を検索対象とすることができる。さらに、図形等を筆跡検索のための検索キーとして使用することもでき、また言語以外の記号、マーク等を筆跡検索のための検索キーとして使用することもできる。
図11は、デジタルノートブックアプリケーションプログラム202によってユーザに提示される筆跡検索画面500の例示である。
筆跡検索画面500は、検索キー入力領域501、検索ボタン501A、クリアボタン501Bを表示する。検索キー入力領域501は、検索対象とすべき手書きオブジェクト(手書き文字列または手書き図形)を書くための入力領域である。検索ボタン501Aは、筆跡検索処理の実行を指示するためのボタンである。クリアボタン501Bは、検索キー入力領域501に手書きされた文字列または図形の削除(クリア)を指示するためのボタンである。
筆跡検索画面500は、さらに、複数の検索対象の手書きデータ群つまり複数の手書きページサムネイル601を表示する。図9の例においては、9個の手書きページそれぞれに対応する9個の手書きページサムネイル601が表示されている。
図12に示されているように、検索キー入力領域501に手書き文字列「TABLET」が入力されている状態で検索ボタン501Aが押下された場合、9個の手書きページの各々から手書き文字列「TABLET」を見つけ出すための筆跡検索処理が開始される。そして、筆跡検索画面500上には、手書き文字列「TABLET」を含む幾つかの手書きページそれぞれに対応する手書きページサムネイルが表示される。図12においては、9個の手書きページの中の5個の手書きページが手書き文字列「TABLET」を含む手書きページとして検索された場合が例示されている。ヒットワード、つまり5個の手書きページサムネイル中の手書き文字列「TABLET」は強調表示される。
検索される5個の手書きページサムネイルの1つがユーザによって選択されたならば、図13に示すように、選択された手書きページサムネイル601Aに対応する手書きページ601Bが通常のサイズで画面上に表示される。手書きページ601Bには、検索ボタン700が表示される。ユーザによって検索ボタン700が押下されたならば、表示画面の内容は、図13の左側に示される検索画面に戻される。
次に、図14のフローチャートを参照して、本実施形態の検索処理の手順について説明する。ここでは、タブレットコンピュータ10のユーザAが手書きデータを検索する場合について説明する。また、上述の変換処理および筆跡検索処理がタブレットコンピュータ10のデジタルノートブックアプリケーションプログラム202によって実行される場合を想定する。
デジタルノートブックアプリケーションプログラム202は、まず、タッチスクリーンディスプレイ17上にユーザAによって書かれた手書きオブジェクトを示す第1の筆跡を検索キーとして入力する処理を実行する(ステップS11)。次いで、デジタルノートブックアプリケーションプログラム202は、第1の筆跡を、この第1の筆跡に対応する別の第2の筆跡に変換する(ステップS12)。ステップS12では、第2の筆跡は、例えば、タブレットコンピュータ10のユーザAに対応する手書き特徴情報51に基づいて、第1の筆跡から定められる。あるいは、第2の筆跡は、検索対象の手書きデータの著者に対応する手書き特徴情報に基づいて、第1の筆跡から定められる。例えば、検索対象の手書きデータの著者がユーザBであるならば、第2の筆跡は、少なくともユーザBの手書き特徴情報に基づいて、第1の筆跡から定められる。
そして、デジタルノートブックアプリケーションプログラム202は、少なくとも第2の筆跡を使用して、検索対象の手書きデータを検索する(ステップS13)。ステップS13では、第2の筆跡と検索対象の手書きデータ内の各手書きオブジェクトとの間の類似度が求められる。この場合、まず、第2の筆跡の特徴が抽出される。さらに、検索対象の手書きデータ内の各手書きオブジェクトの筆跡の特徴が抽出される。そして、第2の筆跡の特徴と検索対象の手書きデータ内の各手書きオブジェクトの筆跡の特徴との間の差分の関数に基づいて、第2の筆跡と検索対象の手書きデータ内の各手書きオブジェクトとの間の類似度が求められる。この類似度に基づき、検索対象の手書きデータから、第2の筆跡との類似度が基準値以上である筆跡を有する第2の手書きオブジェクトが見つけ出される。そして、デジタルノートブックアプリケーションプログラム202は、ステップS13の検索処理(筆跡検索処理)の結果、つまり、第2の手書きオブジェクトを、上述の検索キーに対応する検索結果としてタッチスクリーンディスプレイ17に出力してタッチスクリーンディスプレイ17の画面上に表示する(ステップS14)。
なお、ユーザAによって書かれた手書きオブジェクトが複数の手書き文字を含む場合には、ステップS12では、各手書き文字の筆跡が、検索対象の手書きデータの著者の手書き特徴に適合する筆跡に変換される。そして、変換後の複数の筆跡を用いて、検索対象の手書きデータが検索される。
図15のフローチャートは、図14のステップS12で行われる変換処理(筆跡変換処理)の手順の例示である。ここでは、ユーザAがユーザBの手書きデータを検索する場合を想定する。さらに、特徴情報51および手書き特徴情報52の双方を使用する場合を想定する。
デジタルノートブックアプリケーションプログラム202は、まず、ユーザAに対応する手書き特徴情報51を参照して、第1の筆跡に対応するオブジェクト識別コードを特定する(ステップS21)。次いで、デジタルノートブックアプリケーションプログラム202は、ユーザBに対応する手書き特徴情報52を参照して、特定されたオブジェクト識別コードに関連付けられたユーザBの筆跡を、検索キーとして使用すべき筆跡に決定する(ステップS22)。
次に、図16のフローチャートを参照して、本実施形態の検索処理の手順例について説明する。ここでは、上述の変換処理および筆跡検索処理がタブレットコンピュータ10のデジタルノートブックアプリケーションプログラム202によって実行される場合を想定する。
デジタルノートブックアプリケーションプログラム202は、まず、タッチスクリーンディスプレイ17上にユーザAによって書かれた手書きオブジェクトを示す第1の筆跡を検索キーとして入力する処理を実行する(ステップS31)。次いで、デジタルノートブックアプリケーションプログラム202は、検索対象の手書きデータの著者(作成者)がユーザAであるか否かを判定する(ステップS32)。検索対象の手書きデータの著者(作成者)がユーザAであるならば(ステップS32のYES)、デジタルノートブックアプリケーションプログラム202は、第1の筆跡を使用して検索対象の手書きデータを検索し(ステップS33)、検索結果をタッチスクリーンディスプレイ17上に表示する(ステップS34)。なお、手書き特徴情報51を参照して、第1の筆跡を、この第1の筆跡に対応する別の第2の筆跡に変換し、この第2の筆跡を使用して検索対象の手書きデータを検索してもよい。
一方、検索対象の手書きデータの著者(作成者)がユーザAでないならば(ステップS32のNO)、デジタルノートブックアプリケーションプログラム202は、検索対象の手書きデータの著者(作成者)がユーザBであるか否かを判定する(ステップS35)。検索対象の手書きデータの著者(作成者)がユーザBであるならば(ステップS35のYES)、デジタルノートブックアプリケーションプログラム202は、ユーザAに対応する手書き特徴情報51およびユーザBに対応する手書き特徴情報52の少なくとも一方を使用して、第1の筆跡を、ユーザBの手書き特徴に適合する第2の筆跡に変換する(ステップS36)。そして、デジタルノートブックアプリケーションプログラム202は、少なくとも第2の筆跡を使用して検索対象の手書きデータを検索し(ステップS37)、検索結果をタッチスクリーンディスプレイ17上に表示する(ステップS38)。
検索対象の手書きデータの著者(作成者)がユーザBでないならば(ステップS35のNO)、デジタルノートブックアプリケーションプログラム202は、ステップS39に進む。ステップS39では、デジタルノートブックアプリケーションプログラム202は、ユーザAに対応する手書き特徴情報51と検索対象の手書きデータの著者(例えばユーザC)に対応する手書き特徴情報(例えば手書き特徴情報53)とに基づいて、上述の変換処理を実行する。そして、デジタルノートブックアプリケーションプログラム202は、変換によって得られる第2の筆跡を使用し、検索対象の手書きデータを検索し、検索結果をタッチスクリーンディスプレイ17上に表示する。
以上説明したように、本実施形態においては、タブレットコンピュータ10のタッチスクリーンディスプレイ17上に手書き操作によって書かれた手書きオブジェクトを示す第1の筆跡が検索キーとして入力される。そして、第1の筆跡に応じた筆跡であって、かつ第1の筆跡とは異なる第2の筆跡との類似度が基準値以上である筆跡を有する第2の手書きオブジェクトが、上述の検索キーに対応する検索結果としてタッチスクリーンディスプレイ17に出力される。したがって、ユーザが過去に作成した手書きデータの筆跡と同ユーザの現在の筆跡が異なる場合や、他人の手書きデータを検索する場合において、所望の手書きオブジェクトを容易に見つけ出すことができる。
本実施形態の手書きデータに対する各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをタッチスクリーンディスプレイを備えた通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
実施形態によれば、情報処理装置は、タッチスクリーンディスプレイと、入力手段と、表示処理手段とを具備する。入力手段は、前記タッチスクリーンディスプレイ上に手書き操作によって書かれた第1の手書きオブジェクトに対応する第1の筆跡を検索キーとして入力する。前記表示処理手段は、前記第1の筆跡に応じた筆跡であって、かつ前記第1の筆跡とは異なる第2の筆跡との類似度が基準値以上である筆跡を有する、検索対象の手書きデータ内の第2の手書きオブジェクトを前記検索キーに対応する検索結果として前記タッチスクリーンディスプレイに出力する。前記第2の筆跡は、前記検索対象の手書きデータの著者に対応する手書き特徴情報に基づいて、前記第1の筆跡から定められる。