(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための最良の形態】
【0018】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という意味を有する記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
【0019】
本実施の形態である情報処理装置100は、手書き文字のストロークを対象として、文字の削除が行われた場合に、削除対象であるストロークを抽出するものであって、
図1の例に示すように、ストローク受付モジュール110、削除ストローク検出モジュール120、外接矩形算出(A)モジュール130、外接矩形算出(B)モジュール140、重複検出モジュール150、被削除ストローク検出モジュール160、削除範囲拡張モジュール170を有している。
【0020】
ストローク受付モジュール110は、削除ストローク検出モジュール120と接続されており、ストローク群105を受け付ける。ストローク受付モジュール110が受け付けるストロークは、複数のストローク(以下、ストローク群ともいう)であってもよい。ペン又は指の動きを検知するタッチパネル、実際の紙にペンで書かれた筆跡を時系列情報として取り込むデバイス(例えば、特開2007−286698号公報等に開示されている技術)等がある。ここで、ストロークとは、筆記を電子化した筆記情報であり、筆記における時系列の筆点座標列によって構成されている。この他に、筆記における始点の座標、終点の座標、方向、時刻情報等によって構成されていてもよい。主に、オンライン手書き文字認識技術に用いられるものである。例えば、
図3に示すストロークは、数字「3」の手書き文字によるストロークの例である。削除ストローは、予め定められており、例えば、
図4(a1)に示すようにスクラッチされたストローク、
図4(b1)に示すように「×」印のストローク、
図4(c1)に示すように二本線によるストローク等がある。なお、
図3の例に示した「3」のストロークに対して、
図4(a1)に示す削除ストロークが書き込まれた例は、
図4(a2)のようになる。同様に、
図3の例に示した「3」のストロークに対して、
図4(b1)に示す削除ストロークが書き込まれた例は、
図4(b2)のようになる。
図3の例に示した「3」のストロークに対して、
図4(c1)に示す削除ストロークが書き込まれた例は、
図4(c2)のようになる。
なお、削除ストロークによって削除されるストロークを被削除ストロークという。前述の例では、
図3の例に示した「3」が該当する。なお、被削除ストロークは、主に文字(記号等を含む)を構成するストロークであるが、文字の筆記途中で削除ストロークを書き込んだ場合のように、完成された文字である必要はなく、また、間違った文字であってもよいし、複数文字を構成するストロークであってもよい。
【0021】
削除ストローク検出モジュール120は、ストローク受付モジュール110、外接矩形算出(A)モジュール130、外接矩形算出(B)モジュール140と接続されている。削除ストローク検出モジュール120は、ストローク受付モジュール110によって受け付けられたストローク群105から文字を削除することを示す削除ストロークを検出する。削除ストロークの検出は、既存の技術を用いればよい。例えば、パターンマッチング、又は特徴抽出して、その特徴の比較等によって、削除ストロークであるか否かを判断すればよい。例えば、
図4(a1)の削除ストロークの場合、予め定められた回数以上の折り返しのあるストロークを検出すればよいし、
図4(b1)の削除ストロークの場合、中央付近に交点のある2本のストロークを検出すればよいし、
図4(c1)の削除ストロークの場合、横に平行な2本のストロークを検出すればよい。
【0022】
外接矩形算出(A)モジュール130は、削除ストローク検出モジュール120、重複検出モジュール150と接続されている。外接矩形算出(A)モジュール130は、削除ストローク検出モジュール120によって検出された削除ストロークを囲む第1の外接矩形を算出する。原点を左上座標として、右方向にX軸、下方向にY軸とした座標系を設定した場合、外接矩形は、ストロークを囲むので、そのストロークの最小X座標、最小Y座標を外接矩形の左上角の座標、最大X座標、最大Y座標を外接矩形の右下角の座標とすればよい。
外接矩形算出(B)モジュール140は、削除ストローク検出モジュール120、重複検出モジュール150と接続されている。外接矩形算出(B)モジュール140は、削除ストローク以外のストロークを囲む第2の外接矩形を算出する。ここで、第2の外接矩形によって囲まれるストロークは、削除ストローク以外のストロークであればよく、被削除ストローク、一般的なストローク(削除対象ではないストローク)もあり得る。
【0023】
重複検出モジュール150は、外接矩形算出(A)モジュール130、外接矩形算出(B)モジュール140、被削除ストローク検出モジュール160、削除範囲拡張モジュール170と接続されている。重複検出モジュール150は、外接矩形算出(A)モジュール130によって算出された第1の外接矩形と外接矩形算出(B)モジュール140によって算出された第2の外接矩形との重なり度合いを検出する。ここで、外接矩形が重なっているとは、一方の外接矩形の一部又は全部が他方の外接矩形に含まれている場合をいう。そして、重なり度合いとして、例えば、2つの外接矩形の重なっている部分の幅、高さ、面積、若しくはそれらの割合、又はこれらの組み合わせであってもよい。なお、幅の割合とは、第1の外接矩形又は第2の外接矩形の幅に対する、重なっている部分の幅の割合をいう。高さの割合とは、第1の外接矩形又は第2の外接矩形の高さに対する、重なっている部分の高さの割合をいう。面積の割合とは、第1の外接矩形又は第2の外接矩形の面積に対する、重なっている部分の面積の割合をいう。
【0024】
被削除ストローク検出モジュール160は、重複検出モジュール150、削除範囲拡張モジュール170と接続されており、ストローク判別結果データ195を出力する。被削除ストローク検出モジュール160は、重複検出モジュール150によって検出された第1の外接矩形と第2の外接矩形との重なり度合いに基づいて、第1の被削除ストロークを抽出する。そして、削除範囲拡張モジュール170に対して、第1の外接矩形を拡張させるように指示する。なお、削除ストローク以外のストロークが全て被削除ストロークとなった場合は、削除範囲拡張モジュール170による処理を行わせずに、削除ストローク検出モジュール120によって検出されたストロークを削除ストロークとし、第1の被削除ストロークをその削除ストロークによって削除される被削除ストロークとしたストローク判別結果データ195を出力する。なお、第1の被削除ストロークは複数であってもよい。
【0025】
削除範囲拡張モジュール170は、重複検出モジュール150、被削除ストローク検出モジュール160と接続されている。削除範囲拡張モジュール170は、第1の外接矩形を第1の被削除ストロークを含むように拡張する。つまり、削除ストロークとその削除ストロークによって削除される被削除ストロークとを含む外接矩形を第1の外接矩形とする。このように拡張した第1の外接矩形を重複検出モジュール150に渡す。ここでの「第1の被削除ストロークを含むように拡張」として、第1の被削除ストロークの一部又は全てを含むようにしてもよい。例えば、第1の被削除ストロークを囲む外接矩形の縦を含むように、第1の外接矩形の縦方向だけを拡張するようにしてもよいし、第1の被削除ストロークを囲む外接矩形の横を含むように、第1の外接矩形の横方向だけを拡張するようにしてもよいし、第1の被削除ストロークを囲む外接矩形の全体を含むように、第1の外接矩形を拡張するようにしてもよい。
また、削除範囲拡張モジュール170は、行高さより高い又は以上の高さとならないように、第1の外接矩形を拡張するようにしてもよい。この場合、拡張された第1の外接矩形の高さは、最大行高さとなる。第1の外接矩形を拡張したために、隣接する他の行にある文字のストロークを被削除ストロークとしないようにするためである。ここで、行高さは予め定められた値であってもよいし、ストローク受付モジュール110が受け付けたストローク群105から行高さを算出し、その算出した行高さを用いるようにしてもよい。例えば、同一行内の複数文字の外接矩形の高さのうち最大のものを行高さとして算出してもよい。
【0026】
そして、重複検出モジュール150は、削除範囲拡張モジュール170によって拡張された第1の外接矩形を外接矩形算出(A)モジュール130から渡された第1の外接矩形として扱って、前述と同様の処理を行う。つまり、削除範囲拡張モジュール170から渡された第1の外接矩形と外接矩形算出(B)モジュール140によって算出された第2の外接矩形との重なり度合いを検出する。なお、重複検出モジュール150は、外接矩形算出(B)モジュール140によって算出された第2の外接矩形のうち、被削除ストローク検出モジュール160によって被削除ストロークとして検出されたストロークの外接矩形は、対象としないようにしてもよい。つまり、この時点で、削除ストロークでなく、被削除ストロークでもないストロークを対象とすればよい。
その後、被削除ストローク検出モジュール160は、重複検出モジュール150によって検出された、拡張された第1の外接矩形と第2の外接矩形との重なり度合いに基づいて、第2の被削除ストロークを抽出する。そして、削除ストローク検出モジュール120によって検出されたストロークを削除ストロークとし、第1の被削除ストロークと第2の被削除ストロークをその削除ストロークによって削除される被削除ストロークとしたストローク判別結果データ195を出力する。
【0027】
また、情報処理装置100は、削除ストローク検出モジュール120、被削除ストローク検出モジュール160を具備するモジュール構成としてもよい。
削除ストローク検出モジュール120は、前述したように、ストローク群から文字を削除することを示す削除ストロークを検出する。
被削除ストローク検出モジュール160は、削除ストローク検出モジュール120によって検出された削除ストロークと重なる第1の被削除ストロークを抽出する。そして、第1の被削除ストロークと重なる第2の被削除ストロークを抽出する。ストロークの重なりの検出は、例えば、前述のように、ストロークの外接矩形を用いるようにしてもよいし、又はストローク同士の重なりによって発生する交点の数が予め定められた数(1以上の整数)以上であること等によって判断してもよい。
そして、被削除ストローク検出モジュール160は、第1の被削除ストロークと第2の被削除ストロークを、削除ストローク検出モジュール120によって検出された削除ストロークによって削除するストロークとして検出する。
【0028】
図2は、本実施の形態を実現するシステム構成例を示す説明図である。
ストローク検出装置210は、情報処理装置100と接続されている。ストローク検出装置210は、情報処理装置100のストローク受付モジュール110が受け付けるストローク群105を出力する装置である。例えば、前述したように、ペン又は指の動きを検知するタッチパネル、実際の紙にペンで書かれた筆跡を時系列情報として取り込むデバイス等である。
情報処理装置100は、ストローク検出装置210、出力装置230と接続されている。
出力装置230は、情報処理装置100と接続されている。出力装置230は、情報処理装置100の被削除ストローク検出モジュール160が出力したストローク判別結果データ195を受け取って、例えば、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置へ渡すこと等を行う。他の情報処理装置が行う処理としては、例えば、ストローク群105から、削除ストローク、被削除ストロークを削除したストローク群を生成するようにしてもよい。つまり、清書されたストローク群を生成する。そして、その生成されたストローク群による文字等を液晶ディスプレイ等の表示装置に表示すること、又はオンライン文字認識処理等を行うようにしてもよい。
なお、情報処理装置100が、ストローク検出装置210又は出力装置230に組み込まれていてもよいし、ストローク検出装置210、情報処理装置100、出力装置230が一体として構成されていてもよい。
【0029】
図5は、本実施の形態による処理例(外接矩形を用いた処理例)を示すフローチャートである。
ステップS502では、ストローク受付モジュール110が、ストローク群105を受け付ける。ストローク群105として、
図6に示す例のようなストローク群を示して説明する。なお、これは、ひらがな「お」を
図4(a1)の例に示したスクラッチによって削除したものである。なお、これは4つのストロークから構成されている(「お」の3画、削除ストロークの1画)。そして、「お」の右上の点は、削除ストロークと重なっていない。
ステップS504では、削除ストローク検出モジュール120が、削除ストロークを検出する。
図7の例に示すように、薄く示したストロークを削除ストロークとして検出する。
ステップS506では、外接矩形算出(A)モジュール130が、削除ストロークの外接矩形(=削除範囲)を算出する。
図8の例に示すように、削除ストロークを囲む外接矩形810を算出する。
【0030】
ステップS508では、外接矩形算出(B)モジュール140が、削除ストローク以外のストロークの外接矩形をストローク単位に算出する。
図9の例に示すように、削除ストローク以外の3つのストロークの外接矩形、つまり
図9(a)の外接矩形920、
図9(b)の外接矩形930、
図9(a)の外接矩形940を算出する。
ステップS510では、重複検出モジュール150が、ストローク毎にその外接矩形と削除範囲との重なりを検出する。削除ストローク以外のストロークの外接矩形と削除範囲(削除ストロークの外接矩形)との重なり度合いを検出する。重なり度合いとして面積の比率をもって示せば、
図9(a)の例では外接矩形920の面積に対して、外接矩形810と外接矩形920とが重なっている領域の面積の比率は100%であり、
図9(b)の例では外接矩形930の面積に対して、外接矩形810と外接矩形930とが重なっている領域の面積の比率は90%であり、
図9(c)の例では外接矩形940の面積に対して、外接矩形810と外接矩形940とが重なっている領域の面積の比率は0%である。
【0031】
ステップS512では、被削除ストローク検出モジュール160が、「重なり≧閾値」であるか否かを判断し、「重なり≧閾値」である場合はステップS514へ進み、それ以外の場合はステップS516へ進む。前述の例で閾値80%とすると、
図9(a)の例に示す外接矩形920、
図9(b)の例に示す外接矩形930が、ステップS514へ進み、
図9(c)の例に示す外接矩形940がステップS516へ進むこととなる。
ステップS514では、削除範囲拡張モジュール170が、ステップS512の条件を満たしているストロークを被削除ストロークとする。前述の例で
図9(a)の例に示す外接矩形920、
図9(b)の例に示す外接矩形930によって囲まれているストロークは被削除ストロークとなる。この時点では、
図9(c)の例に示す外接矩形940によって囲まれているストロークは一般的なストロークである。
【0032】
ステップS516では、被削除ストロークの外接矩形と削除範囲の包含関係を検出する。ここでの包含関係とは、被削除ストロークの外接矩形が削除ストロークの外接矩形(削除範囲)をはみ出している部分があるか否かを判定できるものであればよい。前述の例では、外接矩形810と外接矩形920、外接矩形930との包含関係を検出する。外接矩形920の全体は外接矩形810に含まれており(外接矩形920のはみ出している部分はない)、外接矩形930の一部は外接矩形810からはみ出していることが検出される。
ステップS518では、被削除ストロークは、削除範囲に包含されないか否かを判断し、包含されない場合はステップS520へ進み、それ以外の場合はステップS522へ進む。前述の例では、外接矩形930の場合がステップS520へ進み、外接矩形920の場合はステップS522へ進む。なお、ステップS516、S518の処理を行わずに、全ての被削除ストロークについてステップS520の処理を行うようにしてもよい。
【0033】
ステップS520では、削除範囲を被削除ストロークが含まれるように拡張する。前述の例では、
図10に示すように、
図10(b1)の例に示す外接矩形810から外接矩形930を含むように、
図10(b2)の例に示す拡張削除範囲1010へと拡張している。また、ここでの拡張処理として、行高さを限度として、削除範囲を拡張するようにしてもよい。なお、
図10(a1)の例では、外接矩形920の全体が外接矩形810に含まれているため、拡張しない。また、この時点では外接矩形940は被削除ストロークではないので、拡張の対象ではない。しかし、前述したように、
図10(b1)の例に示す外接矩形810は
図10(b2)の例のように拡張削除範囲1010に拡張する。
ステップS522では、重複検出モジュール150が、ストローク毎にその外接矩形と削除範囲との重なりを検出する。ステップS510と同様の処理を行う。ただし、ここでの削除範囲とは、ステップS520で拡張が行われた場合は、拡張後の削除範囲である。
【0034】
ステップS524では、被削除ストローク検出モジュール160が、「重なり≧閾値」であるか否かを判断し、「重なり≧閾値」である場合はステップS526へ進み、それ以外の場合は処理を終了する(ステップS599)。ステップS512と同様の処理を行う。
図11(c)の例では拡張削除範囲1010の面積に対して、拡張削除範囲1010と外接矩形940とが重なっている領域の面積の比率は100%である。なお、もちろんのことながら、
図11(a)の例では外接矩形920の面積に対して、拡張削除範囲1010と外接矩形920とが重なっている領域の面積の比率は100%であり、
図9(b)の例では外接矩形930の面積に対して、拡張削除範囲1010と外接矩形930とが重なっている領域の面積の比率は100%である。なお、既に被削除ストロークと判断されたストロークについては判断対象としないようにしてもよい。
ステップS526では、削除範囲拡張モジュール170が、ステップS524の条件を満たしているストロークを被削除ストロークとする。ステップS514と同様の処理を行う。
図11(c)の例に示すように、外接矩形940によって囲まれているストロークは被削除ストロークとなる。
なお、ステップS506とステップS508は、いずれを先に行ってもよいし、並列的に処理を行ってもよい。ステップS520の処理が行われなかった場合は、ステップS522からステップS526までの処理を行わなくてもよい。
【0035】
本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、
図12に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバとなり得るコンピュータ等である。つまり、具体例として、処理部(演算部)としてCPU1201を用い、記憶装置としてRAM1202、ROM1203、HD1204を用いている。HD1204として、例えばハードディスク、フラッシュメモリ等を用いてもよい。ストローク受付モジュール110、削除ストローク検出モジュール120、外接矩形算出(A)モジュール130、外接矩形算出(B)モジュール140、重複検出モジュール150、被削除ストローク検出モジュール160等のプログラムを実行するCPU1201と、そのプログラムやデータ(ストローク群105、ストローク判別結果データ195等)を記憶するRAM1202と、本コンピュータを起動するためのプログラム等が格納されているROM1203と、補助記憶装置であるHD1204と、キーボード、マウス、表示装置を兼ねるタッチパネル等に対する利用者の操作に基づいてデータを受け付ける受付装置1206と、CRT、液晶ディスプレイ等の出力装置1205と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース1207、そして、それらをつないでデータのやりとりをするためのバス1208により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【0036】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、
図12に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、
図12に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えばASIC等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに
図12に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、前述のペン、情報家電、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
【0037】
なお、前述の実施の形態の説明において、予め定められた値との比較において、「以上」、「以下」、「より大きい」、「より小さい(未満)」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい(未満)」、「以上」、「以下」としてもよい。
【0038】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。