手書き図形認識システム、手書き図形認識方法及びプログラム
【課題】手書きにより図形を描画する際に生じる描画の不正確さを許容する図形認識技術を提供する。
【解決手段】(1) 入力物体を用いた操作入力面に対する操作入力を座標点列として検出する手段と、(2) ダウン操作の検出からアップ操作の検出までの間に検出される座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて格納する記憶領域と、(3) 記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する手段とを有する手書き図形認識装置を提案する。
【解決手段】(1) 入力物体を用いた操作入力面に対する操作入力を座標点列として検出する手段と、(2) ダウン操作の検出からアップ操作の検出までの間に検出される座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて格納する記憶領域と、(3) 記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する手段とを有する手書き図形認識装置を提案する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タブレット型入力装置、電子黒板システムその他の手書き入力認識システムに実装又は連携動作して好適な手書き図形認識システム、方法及び同システムの機能を実現するプログラムに関する。
【背景技術】
【0002】
近年、電子ペンや指その他の入力物体を用いた手書き入力認識システムが普及している。この種の手書き入力認識システムには、タブレット型の入力装置や電子黒板システム(Interactive White Board:IWB)が知られている。
【0003】
電子黒板システムには、様々なタイプの装置が実用化されている。例えば表示装置として、プラズマディスプレイパネル(PDP)、液晶ディスプレイディスプレイ(LCD)、プロジェクター等を用いるものがある。また、操作入力検出方式として、赤外線方式、タッチパネル方式、電磁誘導方式等を用いるものがある。また、入力に用いる物体(以下「入力物体」という。)には、操作入力検出方式に応じて、人体(手や指)、スタイラスペン、電子ペン等が用いられる。
【0004】
電子黒板システムを用いると、黒板にチョークで描画するのと同様の動作により、表示画面上に文字や図形を描くことができる。具体的には、操作入力面上における入力物体の位置を位置検出装置が検出し、当該検出情報を演算装置が処理し、処理結果を表示装置の表示画面に反映する。このように、基本的には、入力物体の筆跡そのままが表示画面に表示される。
【0005】
ところで、電子黒板システムには、入力時の筆跡等を自動認識し、整形して表示画面上に表示できる機能がある。例えば文字入力であれば、入力された文字を自動的に認識し、認識された文字列を文字フォントを用いて表示し、図形入力であれば、入力された図形を自動的に認識し、認識された図形を整形して表示できる機能がある。
【0006】
手書き図形の認識に関する従来技術には、以下のようなものがある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特公平7−107708号公報
【特許文献2】特許第3046472号公報
【特許文献3】特公平6−064612号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
手書き図形を認識する方法には、パターン認識による方法(特許文献1)、角度ヒストグラムの分布を計算する方法(特許文献2)などがある。
【0009】
特許文献1に記載の方法は、あいまいさを伴う手書き図形の認識装置に好適な方法である。この方法では、ストローク(筆跡)形状にあいまいさがあっても登録図形との正しいマッチングを可能にするため、まず最初に、入力ストロークの形状を、(1)明確に円弧である部分と、(2) 明確に直線である部分と、(3) 円弧か直線かあいまいな部分とに分離する。次に、この方法は、あいまいな部分が円弧か直線かの解釈を変えて、入力ストロークの円弧又は直線の線分要素による構造パターンを複数個作り、該構造パターンと各辞書図形の構造パターンとの構造の比較、線分要素の円弧らしさ又は直線らしさのチェックにより相違度を求め、該相違度の小さいものを選択する。
【0010】
ただし、特許文献1に記載の方法が効果を発揮するには、描画する時点でストロークを綺麗に書くことを意識する必要があり、直線であるべき部分は直線らしく描画する必要がある。
【0011】
特許文献2に記載の方法は、人間が手書きで描画する場合におけるペンの揺らぎに着目するものである。具体的には、揺らぎが原因で認識率が低下しないよう、角度ヒストグラムの分布により辺の数を推定するものである。しかしこの方式においても5角形と6角形を認識するためには辺の数が5又は6として認識されるように、辺の角度に変化がつくように意識して描画する必要がある。
【0012】
特許文献3に記載の方法は、ストロークを結合することで図形を認識する技術に関するものであり、図形の認識率を向上させるという点では本発明の目的と同じであるが、本発明とは別のアプローチによるものである。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明者は、ストローク描画中の筆跡速度の変化に着目する手法を発明した。すなわち、本発明者は、頂点部分では描画スピードが低下することに着目し、当該部分を頂点として検出する手法を発明した。
【0014】
そこで、本発明者は、手書き図形認識システムとして、(1) 入力物体を用いた操作入力面に対する操作入力を座標点列として検出する手段と、(2) ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて格納する記憶領域と、(3) 前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する手段とを有するものを提案する。
【0015】
なお、入力物体の座標点を検出する手段は、一定周期毎に入力物体の軌跡をサンプリングするものとする。このため、1ストローク中(ダウン操作からアップ操作まで)で描画スピードが低下した部分が座標点の高密度部分となる。
【発明の効果】
【0016】
手書きで図形を描画する場合、きれいに描画することは意外に難しく、五角形と六角形と円を誰が見ても間違えないように書き分けることは至難の業である。五角形の一部が崩れて四角形に似た形状になってしまったり、五角形や六角形の角を丸く描画してしまうことで円との区別がつきにくくなってしまうことがある。
【0017】
しかし、描画結果の形状は区別の難しいものであったとしても、どのような図形を描画しようとしていたかは、描画スピードの変化に現れる。例えば角を丸く描画してしまったとしても、角を描画しなければならないという意識が働いている。従って、角の部分とそれ以外の部分では検出された座標点の描画スピードに差異が生じる。角の部分を描画する際は、角以外の部分を描画する場合と比較して慎重になり、ゆっくり入力物体(例えばペンや指)を動かすことになる。
【0018】
本発明は、このような人間の描画時の習性を用いて認識を行おうとするものであり、手書きにより描画された図形の形状を参照せず、書き方を参照して認識を行う。このため、手書きによるペンのぶれにとどまらず、描画された形状が不正確な場合でも、どのように描画しようとしたのかという描画者の意図を頂点位置の認識に正確に反映させることができる。結果的に、手書きの不正確さに対する許容量を大きくすることができる。
【図面の簡単な説明】
【0019】
【図1】本発明に係る図形認識システムの一実施の形態を示すシステム構成図。
【図2】手書きで図形を描画した際の構成点の分布を説明する図。
【図3】手書きで描画された六角形を従来方式により認識した結果を示す図。
【図4】手書きで六角形を描画した際の構成点の分布を説明する図。
【図5】構成点と通し番号の関係を説明する図。
【図6】構成点テーブルの構造例を示す図。
【図7】頂点テーブルの構造例を示す図。
【図8】手書き図形認識プログラムの処理内容を説明する図(その1)。
【図9】手書き図形認識プログラムの処理内容を説明する図(その2)。
【図10】角の開始点と終了点の設定例を説明する図。
【図11】ストロークの書き始めがゆっくりの場合の構成点の分布を説明する図。
【図12】ストロークの書き終わりがゆっくりの場合の構成点の分布を説明する図。
【図13】手書きで六角形を描画する場合の整形処理の概要を説明する図。
【図14】手書きで開図形を描画する場合の整形処理の概要を説明する図。
【発明を実施するための形態】
【0020】
以下、図面に基づいて、本発明を電子黒板システムに適用する場合の形態例を説明する。なお、後述する形態例はいずれも一例であり、本発明には、本明細書に記載する任意の機能を組み合わせることで実現されるシステム、本明細書に記載する一部の構成や機能を周知の技術で置換したシステムも含まれる。また、後述する形態例で実行される機能は、計算機(コンピュータ)上で実行されるプログラムとして実現されるものとして説明する。もっとも、プログラムの一部又は全部は、ハードウェアを通じて実現されても良い。
【0021】
(電子黒板システムの全体構成)
図1に、発明に係る手書き図形認識システムを含む電子黒板システムの構成例を示す。図1に示す電子黒板システムは、投影面101、位置検出装置102、表示画面投影装置104、制御用コンピュータ105、制御用コンピュータ105に付属するキーボード106及び表示装置107、再帰性反射材108で構成されている。この実施例の場合、入力物体として、指103を使用する。
【0022】
ここで、位置検出装置102は、赤外線を投影面101に沿って放射状に照射できる光源と、再帰性反射材108で反射された赤外光像を撮像するイメージセンサで構成される。再帰性反射材108は、基本的に入射光をその入射方向に反射できる特殊な微小構造が多数配列されたテープ状の部材であり、本形態例の場合、投影面101に向かって下辺、左辺、右辺の3辺の枠体に取り付けられている。
【0023】
なお、枠体は投影面101と一体構成でも、独立部材でも良い。なお、微小構造が配列される面(テープ面)は、投影面101に対して垂直である。図1の電子黒板システムでは、三角測量の原理を用いて入力物体の座標点を検出するため、2つの位置検出装置102を使用する。この形態例の場合、2つの位置検出装置102は、投影面101の上辺の左右両端位置で枠体に取り付けている。もっとも、三角測量が可能な位置関係であれば取り付け位置は任意である。
【0024】
投影面101の左上端に位置する位置検出装置102の光源には、投影面101に向かって下辺及び右辺の2辺を照射範囲とするものを使用する。なお、光源から射出された赤外光は、再帰性反射材108で反射された後、入射経路の近傍を反対方向に進み、最終的には同じ装置内に配置されているイメージセンサによって撮像される。投影面の左上端に位置するイメージセンサの撮像範囲の両端位置は、投影面101の下辺左端と右辺上端に設定される。
【0025】
一方、投影面101の右上端に位置する位置検出装置102の光源には、投影面101に向かって下辺及び左辺の2辺を照射範囲とするものを使用する。やはり、光源から射出された赤外光は、再帰性反射材108で反射された後、入射経路の近傍を反対方向に進み、最終的には同じ装置内に配置されているイメージセンサによって撮像される。投影面の右上端に位置するイメージセンサの撮像範囲の両端位置は、投影面101の下辺右端と左辺上端に設定される。
【0026】
この位置検出方式の場合、指103が赤外光の光路上に配置されることで、イメージセンサに戻ってくる赤外光が遮断され、撮像面上に影を形成する。投影面101の上辺の左右両端に配置された2つの位置検出装置102は、撮像画像からこの影の位置を検出する。検出された影の位置情報は、制御用コンピュータ105に出力される。
【0027】
制御用コンピュータ105は、汎用のパーソナルコンピュータと同等の機能を有している。具体的には、制御用コンピュータ105は、演算装置と、内部メモリと、ハードディスクその他の外部記憶装置で構成される。制御用コンピュータ105は、所定のオペレーションシステム上で実行されるアプリケーションプログラムに基づいて各種の機能を提供する。本形態例の場合、アプリケーションプログラムの一つとして、指103の投影面101上の座標点を三角測量の原理で算出する座標算出プログラム1051と、当該座標点に基づいて手書き図形を認識するプログラム(手書き図形認識プログラム)1052が格納される。
【0028】
座標算出プログラム1051は、2つのイメージセンサから入力される影の位置情報を基に、三角測量の原理で座標点を算出する。なお、以下の説明では、1つのストローク(投影面101に対する指103のダウン操作の検出からアップ操作の検出までの間)として認識された座標点列を構成する個々の座標点をストロークの構成点と呼ぶことにする。手書き図形認識プログラム1052の詳細については後述する。なお、手書き図形認識プログラム1052には、手書き図形の頂点位置を認識する機能と、認識した頂点位置を用いて図形を描画する機能が含まれる。
【0029】
表示画面投影装置104には表示装置107に表示されている画面と同じものが投影面101に対して表示される。
【0030】
(ストローク構成点)
図2に、手書きで図形を描画する際における1ストロークの構成点の例を示す。図では、構成点を丸印で示している。図中(A)は、円を反時計回りに描画した場合の構成点の軌跡を表している。円の軌跡21を構成する構成点の間隔はほぼ一定の間隔となっている。これは円には角がないため、一定の速度で描画を完遂させることができるためである。また、位置検出装置102による座標情報の取り込みが一定間隔で実行されるためでもある。
【0031】
図中(B)は、四角形を半時計周りに描画した場合の構成点の軌跡を表している。四角形の軌跡22における構成点の出現間隔は、描画の始点と終点に対応する角を除き、角の描画部分で狭くなることが分かる。すなわち、角の部分に、構成点の高密度部分221が出現していることが分かる。これは、角の部分は、ゆっくり書かれたことを表している。角の部分は直線部分と比較して複雑な形状であるため、手書きにより複雑な形状を表現するために描画速度がゆっくりになることは自明の理である。
【0032】
なお、前述したように、描画の始点と終点に対応する角の部分には、構成点の高密度部分221が存在しない。このため、単純な構成点の検出によると、頂点は3つとなる。ただし、始点と終点の距離が閾値以内の距離である場合のように、閉図形としてみなせる場合には、始点と終点の部分にも高密度部分221が存在するものとして扱うことは、ソフトウェア的に可能である。閉図形とみなせる場合、ソフトウェア的には、構成点の高密度部分221は四個存在することになる。ここで、構成点の高密度部分221は頂点であるとみなすことにより、四角形の軌跡22には四個の頂点が存在することになる。
【0033】
図中(C)は、五角形を反時計回りに描画した場合の構成点の軌跡を表している。四角形の場合と同様に、五角形の軌跡23のそれぞれの角には、構成点の高密度部分231が出現する。また、終点付近にも構成点の高密度部分231が存在するが、これは始点と終点を近づけるために意識的に描画がゆっくりになったものと推測できる。このように始点と終点の距離が閾値以内の距離であり、閉図形としてみなせる場合であっても、始点又は終点付近に構成点の高密度部分231が存在する場合があるため、頂点の数を重複カウントしないようにソフトウェアの判定処理を構成することが必要である。図中(C)の場合、構成点の高密度部分231は五個存在している。従って、構成点の高密度部分231は頂点であるとみなすことにより、五角形の軌跡23には頂点が五個存在することになる。
【0034】
(図形認識にパターンマッチングを用いる場合の誤判定の例)
図3は、手書きで六角形を描画した際の軌跡31と、パターンマッチングにより図形認識を行った場合の認識結果候補を示した図である。
【0035】
手書きで描画した六角形の軌跡31は、上辺だけが2辺と判定され、底辺に存在する角が入力のぶれと判定される可能性がある。この場合、軌跡31の図形は、五角形33と認識される可能性がある。これに対し、上辺、底辺ともに2辺で構成されているとみなされた場合には、軌跡31の図形は、六角形34と認識される可能性がある。
【0036】
(軌跡と構成点列の関係)
図4に、手書きで時計回りに六角形を描画した際の軌跡41とストロークの構成点42との関係を示す。本図でも、構成点42は丸印で表している。この構成点42の座標点は、座標算出プログラム1051により算出される。座標算出プログラム1051は、座標点の検出順に図5に示すように通し番号を付し、内部メモリに確保した入力オブジェクト別の構成点テーブルに格納する。図6に、構成点テーブル601の例を示す。1、2、3、…Nが構成点に付される通し番号である。各構成点には、X座標とY座標が格納される。
【0037】
手書き図形認識プログラム1052は、構成点テーブルから順番に読み出される構成点の座標データより構成点42の高密度部分421を検出し、当該高密度部分421を頂点として認識する。手書き図形認識プログラム1052は、頂点の検出順に通し番号を付し、内部メモリに確保した入力オブジェクト別の頂点テーブルに格納する。図7に、頂点テーブル701の例を示す。1、2、3、…M(<N)が構成点に付される通し番号である。ここで、Mは、頂点座標の保存用に予め設定された最大値である。従って、ストローク中の頂点の数がM個より少ない場合には、頂点テーブル701の一部の領域だけが座標データの格納に使用される。各頂点には、X座標とY座標が格納される。なお、頂点位置の確定方法については後述する。
【0038】
(手書き図形認識プログラムの処理内容1)
図8及び図9に、手書き図形認識プログラム1052で実行される処理内容のうち頂点位置の設定に関する処理の概要を示す。なお、各ステップの実行主体は、手書き図形認識プログラム1052又は制御用コンピュータ105である。前述したように、本形態例の場合には、位置検出装置102によるペンや指のサンプリング周期は一定である。サンプリング周期が一定であれば、構成点間の移動距離が大きい部分は素早く描画したことになり、逆に構成点間の移動距離が小さければゆっくり描画したことになる。
【0039】
(ステップ801)
まず最初に、制御用コンピュータ105の内部メモリ上に確保された各構成点間の累積距離がゼロに初期化される。この形態例の場合、累積距離とは、ストロークの先頭(始点)位置からの軌跡に沿って計測される長さを与える変数である。
【0040】
(ステップ802)
ストロークの先頭から順番に、構成点の検出順に構成点間の距離が算出される。例えば図5の場合、構成点1と構成点2の間の距離、構成点2と構成点3の間の距離が、1ステップに付き1個ずつ算出される。2点間の距離の算出には、図6の構成点テーブル601から読み出されるX座標とY座標を用い、三平方の定理に基づいて導き出される2点間の距離を求める公式により算出される。
【0041】
(ステップ803)
累計距離を代入する変数の現在値に対し、ステップ802で求めた構成点間の距離を加算する。
【0042】
(ステップ804)
続いて、さらに次の構成点があるかどうかが判定される。すなわち、1ストロークの終点に当たる構成点を処理したか否かが判定される。次の構成点が存在する場合、処理動作はステップ802に戻る。この判定で否定結果が得られるまでの間、次の構成点間の距離の算出と、その加算による累積距離の更新処理が繰り返し実行される。
【0043】
(ステップ805)
ステップ804で否定結果が得られた場合(次の構成点が存在しない場合)、処理動作はステップ805に進む。ステップ805では、構成点間当たりの平均移動距離が算出される。ここで、平均移動距離は、累計距離を構成点数から1を差し引いた値で除算することにより求められる。
【0044】
(ステップ806)
ここでは、頂点判定用の距離(判定距離)が算出される。すなわち、ペンや指の移動がゆっくりになっている部分かどうかを判定するための判定基準を与える判定距離が算出される。この形態例の場合、ステップ805で算出された構成点間当たりの平均移動距離に距離判定閾値を乗算することにより算出する。
【0045】
平均移動距離を使用するのは、描画者の違いやストローク毎の描画スピードの違いにかかわらず、ストロークの平均描画速度に対して相対的に速度の低下した区間又は出現間隔が短い区間を確実に検出するためである。距離判定閾値には、0より大きく1以下の値を使用する。距離判定閾値は、頂点の判定に適した値に設定される。
【0046】
距離判定閾値は固定値でも良いが、描画者の書き方に現われる特性に応じて変更できるようにしても良い。具体的には、過去の複数回のストロークの平均移動距離をメモリ領域や外部記憶装置から読み出し、当該値毎に予め用意されている閾値テーブルの値を読み出しても良い。また、ストロークに対してユーザ情報が付与されている場合には、現在のユーザに関して登録されている閾値をメモリ領域や外部記憶領域から読み出して適用しても良い。
【0047】
(ステップ807)
このステップでは、頂点位置のバッファを初期化する。具体的には、描画対象とするオブジェクトについて確保された頂点テーブル701(図7)の座標データ部分を初期化する。この形態例の場合、頂点として格納可能な構成点の最大個数Mは予め規定されている。
【0048】
(ステップ808)
このステップでは、頂点の位置を算出するために角の開始番号を記憶する変数を初期化する。すなわち、開始番号をゼロに設定する。
【0049】
(ステップ809)
ここでは、ストロークの開始点から順番に、ステップ802で算出された構成点間の距離が1つだけメモリ領域から読み出される。なお、構成点間の距離がメモリ領域に格納されていない場合には、改めて、構成点テーブル601から構成点間の距離が開始点から順番に算出される。次に、読み出された構成点間の距離とステップ806で求めた判定距離とを比較し、ゆっくり描画された部分かどうかを判定する。処理対象とする区間の距離が判定距離より小さいとき、ゆっくり描画された部分であると判定される。すなわち、高密度部分であると判定される。この場合、ステップ810の処理に進む。一方、処理対象の距離が判定距離以上のとき、直線部分であると判定される。この場合は、ステップ814に進む。
【0050】
(ステップ810)
このステップでは、角の開始番号がゼロ(初期値)か否かを判定する。
【0051】
(ステップ811)
ステップ810で角の開始番号がゼロ(初期値)であると判定された場合、現在参照している構成点の番号を角の開始番号として記憶する。例えば図10に示す構成点列が検出された場合にあって、構成点2と構成点3の間の距離が判定距離より小さい場合、1つ目の頂点に対応する角の開始番号に「3」が格納される。
【0052】
ただし、このステップ811には例外処理を設けることが好ましい。例えば図11に示すように、ストロークの開始点直後からゆっくり描画される場合に対処するためである。図11は、構成点1と構成点2の間の距離が判定距離より小さい場合の例である。この場合も、ステップ811の処理が実行される。この場合、例外規定が無いと、ストロークの開始点1が角の開始点として格納されることになる。この形態例では、角である保証のないストロークの開始点については頂点でないものとして扱う。このため、開始点と構成点間の距離又は累積距離を順番に参照し、判定距離以上移動している構成点が見つかっていない場合に限り、角の開始番号に現在の構成点の番号を格納することとする。従って、図10の例は、開始点(構成点1)から構成点2までの距離又は累積距離が判定距離以上離れている場合の例である。
【0053】
(ステップ812)
このステップは、ステップ810で肯定結果が得られた場合又はステップ811が実行された後に実行される。このステップでは、角の終了番号に現在の構成点の番号を格納する。図10の例であれば、まず最初に、終了番号として「3」が設定される。
【0054】
(ステップ813)
このステップでは、次の構成点があるかどうかが判定される。すなわち、1ストロークの終点に当たる構成点を処理したか否かが判定される。次の構成点が存在する場合、処理動作はステップ809に戻る。この判定で否定結果が得られるまでの間、次の構成点間の距離の算出と、その加算による累積距離の更新処理が繰り返し実行される。なお、図10において、構成点3と構成点4の間の距離及び構成点4と構成点5の間の距離は判定距離より小さいのに対し、構成点5及び構成点6の間の距離は判定距離以上であるものとすると、角の終了番号は、ステップ809→ステップ810→ステップ812→813を繰り返す間に、「3」→「4」→「5」へと更新される。
【0055】
(ステップ814)
このステップは、ステップ809で否定結果が得られた場合、すなわち構成点間の距離が判定距離以上であった場合に実行される。例えば図10の構成点5と構成点6の間の距離が処理対象となった場合に実行される。図10に示すように、描画速度がゆっくりとは判定できない部分について実行される。
【0056】
ここでは、角の開始番号がゼロ(初期値)でないか否かが判定される。初期値ではないと判定された場合はステップ815に進み、初期値のままであると判定された場合はステップ817に進む。
【0057】
(ステップ815)
このステップは、新しく検出された角について頂点位置を確定する処理を実行する。この形態例の場合、角の開始番号から角の終了番号までの間の中間(半分)付近に位置する構成点を頂点位置として記憶する。例えば図10の例であれば、構成点4を頂点位置として登録する。なお、角の開始番号から角の終了番号までの間に偶数個の構成点が存在する場合には、例えば開始番号と終了番号を加算した値を2分の1した値の前後に隣接する構成点のうちいずれか1つを選択する。
【0058】
(ステップ816)
このステップでは、ステップ815で求まった頂点位置をバッファに記憶する。具体的には、頂点テーブル701(図7)の先頭から順番に頂点に対応する構成点のX座標とY座標を登録する。
【0059】
(ステップ817)
このステップでは、さらに次の構成点があるかどうかが判定される。すなわち、1ストロークの終点に当たる構成点を処理したか否かが判定される。次の構成点が存在する場合、処理動作はステップ808に戻る。なお、ステップ808では、新たな角の検出に備えて角の開始番号がリセットされる。もっとも、ステップ808では、終了番号も同時にリセットしても良い。
【0060】
(ステップ818)
このステップは、ステップ813で否定結果が得られた場合やステップ817で否定結果が得られた場合に実行される。ステップ813で否定結果が得られる場合とは、図12に示すように、ストロークの終点付近で描画速度が遅くなったまま描画が終了したような場合である。このステップでは、処理対象とするストロークで描画されたオブジェクトが閉図形か開図形かを判定する。この形態例の場合、ストロークの開始点を与える構成点1の座標値(X1,Y1)とストロークの終了点を与える構成点Nの座標値(XN,YN)の距離を算出し、当該距離が判定閾値より大きいか否かで判定する。判定閾値より距離が大きい場合は開図形と判定し、判定閾値より距離が小さい場合は閉図形と判定する。判定閾値は固定値でも良いし、オブジェクトのサイズ等をパラーメタに用いて算出しても良い。なお、開図形と判定された場合には、手書き図形認識プログラム1052の処理を終了する。一方、閉図形と判定された場合には、ステップ819に進む。
【0061】
(ステップ819)
このステップでは、ストロークの終了点に対応する構成点Nの位置を頂点位置に設定する。
【0062】
(ステップ820)
このステップでは、終了点に対応する構成点Nの位置をバッファに記録する。具体的には、頂点テーブル701(図7)の先頭からn(≦N)番目の頂点に対応する記憶領域にX座標とY座標を登録する。この後、当該ストロークに対する手書き図形認識プログラム1052の処理を終了する。
【0063】
(手書き図形認識プログラムの処理内容2)
ここでは、手書き図形認識プログラム1052で実行される処理内容のうち図形の描画に関する処理の概要を説明する。
【0064】
図13に、ステップ818の判定結果が閉図形の場合であった場合の処理の概要を示す。図13は手書きで六角形が描かれた後、対応するコンピュータ処理図形が表示画面上に描画されるまでに実行される処理内容の概要が示されている。途中までは、前述した頂点位置の設定に関する処理のイメージである。
【0065】
ユーザが指やペンを用いて投影面101(操作入力面)に六角形を描画すると、その軌跡が描画スピードに応じた構成点1301の列として検出される。この構成点の検出は、位置検出装置102にて実現される。次に、ストロークを構成する構成点1301のうちの高密度部分1302が抽出される。そして、高密度部分1302毎に頂点位置が特定される(1303)。ここまでが、図8及び図9で説明した内容に対応する。
【0066】
次に、手書き図形認識プログラム1052は、頂点テーブル701に格納されたm個(最大M個)の頂点を直線で結んだ整形多角形を形成する(1304)。この段階の整形多角形を、表示画面投影装置104を通じて投影面101に表示させることもできる。この整形多角形は、手書き図形を清書した図形に当たる。なお、ユーザの希望により、この整形多角形の外接矩形内にある頂点の数が同じ正多角形を描画することもできる(1305)。すなわち、手書きによる図形の描画でも、より美しく整形された正多角形を投影面101に表示させることができる。
【0067】
図14に、ステップ818の判定結果が開図形の場合であった場合の処理の概要を示す。図14は、ほぼ六角形に近い開図形が手書きで描かれた後、対応するコンピュータ処理図形が表示画面上に描画されるまでに実行される処理内容の概要が示されている。途中までは、前述した頂点位置の設定に関する処理のイメージである。
【0068】
この場合も、ユーザが指やペンを用いて投影面101(操作入力面)に六角形を描画すると、その軌跡が描画スピードに応じた構成点1401の列として検出される。この構成点の検出は、位置検出装置102にて実現される。次に、ストロークを構成する構成点1401のうちの高密度部分1402が抽出される。そして、高密度部分1402毎に頂点位置が特定される(1403)。
【0069】
次に、手書き図形認識プログラム1052は、頂点テーブル701に格納されたm個(最大M個)の頂点を直線で結んだ整形多角形を形成する(1404)。この段階の整形多角形を、表示画面投影装置104を通じて投影面101に表示される。この整形多角形は、手書き図形を清書した図形に当たる。
【0070】
(まとめ)
以上説明したように、本形態例に係る電子黒板システムを用いれば、パターンマッチング法では認識精度が低下するような手書き図形の場合でも、ユーザの意図した図形に自動的に整形して画面上に表示することが可能になる。
【0071】
(その他の形態例)
前述の形態例の場合には、整形多角形の外接矩形内にある頂点の数に基づいて正多角形を表示しているが、ステップ820が終了した時点において頂点テーブル701に座標データが記憶されている頂点の数nを読み出し、当該数nに対応する正多角形を表示面に直接描画させる処理を行っても良い。
【0072】
図1のシステム例の場合には、座標算出プログラム1051を制御用コンピュータ105に搭載しているが、当該プログラムは位置検出装置102内のコンピュータ又は当該位置検出装置102が取り付けられる枠体側のコンピュータに実行させても良い。また、座標算出プログラム1051だけでなく手書き図形認識プログラム1052も、位置検出装置102内のコンピュータ又は当該位置検出装置102が取り付けられる枠体側のコンピュータに実行させても良い。
【0073】
図1のシステム例の場合には、投影面101上に画面が投影される例を説明した。しかし、表示形態はこれに限らず、プラズマディスプレイパネル(PDP)や液晶ディスプレイディスプレイ(LCD)でも構わない。
【0074】
また、図1の場合には、電子黒板システムについて説明したが、タブレット型の入力装置についても本発明に係る手書き図形認識プログラムを適用することができる。
【0075】
前述した手書き図形認識プログラムは、位置検出にタッチパネルや電磁誘導方式を用いるシステムにも適用することができる。
【符号の説明】
【0076】
101 投影面
102 位置検出装置
103 人間の指
104 表示画面投影装置
105 制御用コンピュータ
1051 座標算出プログラム
1052 手書き図形認識プログラム
106 キーボード
107 表示装置
108 再帰性反射材
【技術分野】
【0001】
本発明は、タブレット型入力装置、電子黒板システムその他の手書き入力認識システムに実装又は連携動作して好適な手書き図形認識システム、方法及び同システムの機能を実現するプログラムに関する。
【背景技術】
【0002】
近年、電子ペンや指その他の入力物体を用いた手書き入力認識システムが普及している。この種の手書き入力認識システムには、タブレット型の入力装置や電子黒板システム(Interactive White Board:IWB)が知られている。
【0003】
電子黒板システムには、様々なタイプの装置が実用化されている。例えば表示装置として、プラズマディスプレイパネル(PDP)、液晶ディスプレイディスプレイ(LCD)、プロジェクター等を用いるものがある。また、操作入力検出方式として、赤外線方式、タッチパネル方式、電磁誘導方式等を用いるものがある。また、入力に用いる物体(以下「入力物体」という。)には、操作入力検出方式に応じて、人体(手や指)、スタイラスペン、電子ペン等が用いられる。
【0004】
電子黒板システムを用いると、黒板にチョークで描画するのと同様の動作により、表示画面上に文字や図形を描くことができる。具体的には、操作入力面上における入力物体の位置を位置検出装置が検出し、当該検出情報を演算装置が処理し、処理結果を表示装置の表示画面に反映する。このように、基本的には、入力物体の筆跡そのままが表示画面に表示される。
【0005】
ところで、電子黒板システムには、入力時の筆跡等を自動認識し、整形して表示画面上に表示できる機能がある。例えば文字入力であれば、入力された文字を自動的に認識し、認識された文字列を文字フォントを用いて表示し、図形入力であれば、入力された図形を自動的に認識し、認識された図形を整形して表示できる機能がある。
【0006】
手書き図形の認識に関する従来技術には、以下のようなものがある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特公平7−107708号公報
【特許文献2】特許第3046472号公報
【特許文献3】特公平6−064612号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
手書き図形を認識する方法には、パターン認識による方法(特許文献1)、角度ヒストグラムの分布を計算する方法(特許文献2)などがある。
【0009】
特許文献1に記載の方法は、あいまいさを伴う手書き図形の認識装置に好適な方法である。この方法では、ストローク(筆跡)形状にあいまいさがあっても登録図形との正しいマッチングを可能にするため、まず最初に、入力ストロークの形状を、(1)明確に円弧である部分と、(2) 明確に直線である部分と、(3) 円弧か直線かあいまいな部分とに分離する。次に、この方法は、あいまいな部分が円弧か直線かの解釈を変えて、入力ストロークの円弧又は直線の線分要素による構造パターンを複数個作り、該構造パターンと各辞書図形の構造パターンとの構造の比較、線分要素の円弧らしさ又は直線らしさのチェックにより相違度を求め、該相違度の小さいものを選択する。
【0010】
ただし、特許文献1に記載の方法が効果を発揮するには、描画する時点でストロークを綺麗に書くことを意識する必要があり、直線であるべき部分は直線らしく描画する必要がある。
【0011】
特許文献2に記載の方法は、人間が手書きで描画する場合におけるペンの揺らぎに着目するものである。具体的には、揺らぎが原因で認識率が低下しないよう、角度ヒストグラムの分布により辺の数を推定するものである。しかしこの方式においても5角形と6角形を認識するためには辺の数が5又は6として認識されるように、辺の角度に変化がつくように意識して描画する必要がある。
【0012】
特許文献3に記載の方法は、ストロークを結合することで図形を認識する技術に関するものであり、図形の認識率を向上させるという点では本発明の目的と同じであるが、本発明とは別のアプローチによるものである。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明者は、ストローク描画中の筆跡速度の変化に着目する手法を発明した。すなわち、本発明者は、頂点部分では描画スピードが低下することに着目し、当該部分を頂点として検出する手法を発明した。
【0014】
そこで、本発明者は、手書き図形認識システムとして、(1) 入力物体を用いた操作入力面に対する操作入力を座標点列として検出する手段と、(2) ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて格納する記憶領域と、(3) 前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する手段とを有するものを提案する。
【0015】
なお、入力物体の座標点を検出する手段は、一定周期毎に入力物体の軌跡をサンプリングするものとする。このため、1ストローク中(ダウン操作からアップ操作まで)で描画スピードが低下した部分が座標点の高密度部分となる。
【発明の効果】
【0016】
手書きで図形を描画する場合、きれいに描画することは意外に難しく、五角形と六角形と円を誰が見ても間違えないように書き分けることは至難の業である。五角形の一部が崩れて四角形に似た形状になってしまったり、五角形や六角形の角を丸く描画してしまうことで円との区別がつきにくくなってしまうことがある。
【0017】
しかし、描画結果の形状は区別の難しいものであったとしても、どのような図形を描画しようとしていたかは、描画スピードの変化に現れる。例えば角を丸く描画してしまったとしても、角を描画しなければならないという意識が働いている。従って、角の部分とそれ以外の部分では検出された座標点の描画スピードに差異が生じる。角の部分を描画する際は、角以外の部分を描画する場合と比較して慎重になり、ゆっくり入力物体(例えばペンや指)を動かすことになる。
【0018】
本発明は、このような人間の描画時の習性を用いて認識を行おうとするものであり、手書きにより描画された図形の形状を参照せず、書き方を参照して認識を行う。このため、手書きによるペンのぶれにとどまらず、描画された形状が不正確な場合でも、どのように描画しようとしたのかという描画者の意図を頂点位置の認識に正確に反映させることができる。結果的に、手書きの不正確さに対する許容量を大きくすることができる。
【図面の簡単な説明】
【0019】
【図1】本発明に係る図形認識システムの一実施の形態を示すシステム構成図。
【図2】手書きで図形を描画した際の構成点の分布を説明する図。
【図3】手書きで描画された六角形を従来方式により認識した結果を示す図。
【図4】手書きで六角形を描画した際の構成点の分布を説明する図。
【図5】構成点と通し番号の関係を説明する図。
【図6】構成点テーブルの構造例を示す図。
【図7】頂点テーブルの構造例を示す図。
【図8】手書き図形認識プログラムの処理内容を説明する図(その1)。
【図9】手書き図形認識プログラムの処理内容を説明する図(その2)。
【図10】角の開始点と終了点の設定例を説明する図。
【図11】ストロークの書き始めがゆっくりの場合の構成点の分布を説明する図。
【図12】ストロークの書き終わりがゆっくりの場合の構成点の分布を説明する図。
【図13】手書きで六角形を描画する場合の整形処理の概要を説明する図。
【図14】手書きで開図形を描画する場合の整形処理の概要を説明する図。
【発明を実施するための形態】
【0020】
以下、図面に基づいて、本発明を電子黒板システムに適用する場合の形態例を説明する。なお、後述する形態例はいずれも一例であり、本発明には、本明細書に記載する任意の機能を組み合わせることで実現されるシステム、本明細書に記載する一部の構成や機能を周知の技術で置換したシステムも含まれる。また、後述する形態例で実行される機能は、計算機(コンピュータ)上で実行されるプログラムとして実現されるものとして説明する。もっとも、プログラムの一部又は全部は、ハードウェアを通じて実現されても良い。
【0021】
(電子黒板システムの全体構成)
図1に、発明に係る手書き図形認識システムを含む電子黒板システムの構成例を示す。図1に示す電子黒板システムは、投影面101、位置検出装置102、表示画面投影装置104、制御用コンピュータ105、制御用コンピュータ105に付属するキーボード106及び表示装置107、再帰性反射材108で構成されている。この実施例の場合、入力物体として、指103を使用する。
【0022】
ここで、位置検出装置102は、赤外線を投影面101に沿って放射状に照射できる光源と、再帰性反射材108で反射された赤外光像を撮像するイメージセンサで構成される。再帰性反射材108は、基本的に入射光をその入射方向に反射できる特殊な微小構造が多数配列されたテープ状の部材であり、本形態例の場合、投影面101に向かって下辺、左辺、右辺の3辺の枠体に取り付けられている。
【0023】
なお、枠体は投影面101と一体構成でも、独立部材でも良い。なお、微小構造が配列される面(テープ面)は、投影面101に対して垂直である。図1の電子黒板システムでは、三角測量の原理を用いて入力物体の座標点を検出するため、2つの位置検出装置102を使用する。この形態例の場合、2つの位置検出装置102は、投影面101の上辺の左右両端位置で枠体に取り付けている。もっとも、三角測量が可能な位置関係であれば取り付け位置は任意である。
【0024】
投影面101の左上端に位置する位置検出装置102の光源には、投影面101に向かって下辺及び右辺の2辺を照射範囲とするものを使用する。なお、光源から射出された赤外光は、再帰性反射材108で反射された後、入射経路の近傍を反対方向に進み、最終的には同じ装置内に配置されているイメージセンサによって撮像される。投影面の左上端に位置するイメージセンサの撮像範囲の両端位置は、投影面101の下辺左端と右辺上端に設定される。
【0025】
一方、投影面101の右上端に位置する位置検出装置102の光源には、投影面101に向かって下辺及び左辺の2辺を照射範囲とするものを使用する。やはり、光源から射出された赤外光は、再帰性反射材108で反射された後、入射経路の近傍を反対方向に進み、最終的には同じ装置内に配置されているイメージセンサによって撮像される。投影面の右上端に位置するイメージセンサの撮像範囲の両端位置は、投影面101の下辺右端と左辺上端に設定される。
【0026】
この位置検出方式の場合、指103が赤外光の光路上に配置されることで、イメージセンサに戻ってくる赤外光が遮断され、撮像面上に影を形成する。投影面101の上辺の左右両端に配置された2つの位置検出装置102は、撮像画像からこの影の位置を検出する。検出された影の位置情報は、制御用コンピュータ105に出力される。
【0027】
制御用コンピュータ105は、汎用のパーソナルコンピュータと同等の機能を有している。具体的には、制御用コンピュータ105は、演算装置と、内部メモリと、ハードディスクその他の外部記憶装置で構成される。制御用コンピュータ105は、所定のオペレーションシステム上で実行されるアプリケーションプログラムに基づいて各種の機能を提供する。本形態例の場合、アプリケーションプログラムの一つとして、指103の投影面101上の座標点を三角測量の原理で算出する座標算出プログラム1051と、当該座標点に基づいて手書き図形を認識するプログラム(手書き図形認識プログラム)1052が格納される。
【0028】
座標算出プログラム1051は、2つのイメージセンサから入力される影の位置情報を基に、三角測量の原理で座標点を算出する。なお、以下の説明では、1つのストローク(投影面101に対する指103のダウン操作の検出からアップ操作の検出までの間)として認識された座標点列を構成する個々の座標点をストロークの構成点と呼ぶことにする。手書き図形認識プログラム1052の詳細については後述する。なお、手書き図形認識プログラム1052には、手書き図形の頂点位置を認識する機能と、認識した頂点位置を用いて図形を描画する機能が含まれる。
【0029】
表示画面投影装置104には表示装置107に表示されている画面と同じものが投影面101に対して表示される。
【0030】
(ストローク構成点)
図2に、手書きで図形を描画する際における1ストロークの構成点の例を示す。図では、構成点を丸印で示している。図中(A)は、円を反時計回りに描画した場合の構成点の軌跡を表している。円の軌跡21を構成する構成点の間隔はほぼ一定の間隔となっている。これは円には角がないため、一定の速度で描画を完遂させることができるためである。また、位置検出装置102による座標情報の取り込みが一定間隔で実行されるためでもある。
【0031】
図中(B)は、四角形を半時計周りに描画した場合の構成点の軌跡を表している。四角形の軌跡22における構成点の出現間隔は、描画の始点と終点に対応する角を除き、角の描画部分で狭くなることが分かる。すなわち、角の部分に、構成点の高密度部分221が出現していることが分かる。これは、角の部分は、ゆっくり書かれたことを表している。角の部分は直線部分と比較して複雑な形状であるため、手書きにより複雑な形状を表現するために描画速度がゆっくりになることは自明の理である。
【0032】
なお、前述したように、描画の始点と終点に対応する角の部分には、構成点の高密度部分221が存在しない。このため、単純な構成点の検出によると、頂点は3つとなる。ただし、始点と終点の距離が閾値以内の距離である場合のように、閉図形としてみなせる場合には、始点と終点の部分にも高密度部分221が存在するものとして扱うことは、ソフトウェア的に可能である。閉図形とみなせる場合、ソフトウェア的には、構成点の高密度部分221は四個存在することになる。ここで、構成点の高密度部分221は頂点であるとみなすことにより、四角形の軌跡22には四個の頂点が存在することになる。
【0033】
図中(C)は、五角形を反時計回りに描画した場合の構成点の軌跡を表している。四角形の場合と同様に、五角形の軌跡23のそれぞれの角には、構成点の高密度部分231が出現する。また、終点付近にも構成点の高密度部分231が存在するが、これは始点と終点を近づけるために意識的に描画がゆっくりになったものと推測できる。このように始点と終点の距離が閾値以内の距離であり、閉図形としてみなせる場合であっても、始点又は終点付近に構成点の高密度部分231が存在する場合があるため、頂点の数を重複カウントしないようにソフトウェアの判定処理を構成することが必要である。図中(C)の場合、構成点の高密度部分231は五個存在している。従って、構成点の高密度部分231は頂点であるとみなすことにより、五角形の軌跡23には頂点が五個存在することになる。
【0034】
(図形認識にパターンマッチングを用いる場合の誤判定の例)
図3は、手書きで六角形を描画した際の軌跡31と、パターンマッチングにより図形認識を行った場合の認識結果候補を示した図である。
【0035】
手書きで描画した六角形の軌跡31は、上辺だけが2辺と判定され、底辺に存在する角が入力のぶれと判定される可能性がある。この場合、軌跡31の図形は、五角形33と認識される可能性がある。これに対し、上辺、底辺ともに2辺で構成されているとみなされた場合には、軌跡31の図形は、六角形34と認識される可能性がある。
【0036】
(軌跡と構成点列の関係)
図4に、手書きで時計回りに六角形を描画した際の軌跡41とストロークの構成点42との関係を示す。本図でも、構成点42は丸印で表している。この構成点42の座標点は、座標算出プログラム1051により算出される。座標算出プログラム1051は、座標点の検出順に図5に示すように通し番号を付し、内部メモリに確保した入力オブジェクト別の構成点テーブルに格納する。図6に、構成点テーブル601の例を示す。1、2、3、…Nが構成点に付される通し番号である。各構成点には、X座標とY座標が格納される。
【0037】
手書き図形認識プログラム1052は、構成点テーブルから順番に読み出される構成点の座標データより構成点42の高密度部分421を検出し、当該高密度部分421を頂点として認識する。手書き図形認識プログラム1052は、頂点の検出順に通し番号を付し、内部メモリに確保した入力オブジェクト別の頂点テーブルに格納する。図7に、頂点テーブル701の例を示す。1、2、3、…M(<N)が構成点に付される通し番号である。ここで、Mは、頂点座標の保存用に予め設定された最大値である。従って、ストローク中の頂点の数がM個より少ない場合には、頂点テーブル701の一部の領域だけが座標データの格納に使用される。各頂点には、X座標とY座標が格納される。なお、頂点位置の確定方法については後述する。
【0038】
(手書き図形認識プログラムの処理内容1)
図8及び図9に、手書き図形認識プログラム1052で実行される処理内容のうち頂点位置の設定に関する処理の概要を示す。なお、各ステップの実行主体は、手書き図形認識プログラム1052又は制御用コンピュータ105である。前述したように、本形態例の場合には、位置検出装置102によるペンや指のサンプリング周期は一定である。サンプリング周期が一定であれば、構成点間の移動距離が大きい部分は素早く描画したことになり、逆に構成点間の移動距離が小さければゆっくり描画したことになる。
【0039】
(ステップ801)
まず最初に、制御用コンピュータ105の内部メモリ上に確保された各構成点間の累積距離がゼロに初期化される。この形態例の場合、累積距離とは、ストロークの先頭(始点)位置からの軌跡に沿って計測される長さを与える変数である。
【0040】
(ステップ802)
ストロークの先頭から順番に、構成点の検出順に構成点間の距離が算出される。例えば図5の場合、構成点1と構成点2の間の距離、構成点2と構成点3の間の距離が、1ステップに付き1個ずつ算出される。2点間の距離の算出には、図6の構成点テーブル601から読み出されるX座標とY座標を用い、三平方の定理に基づいて導き出される2点間の距離を求める公式により算出される。
【0041】
(ステップ803)
累計距離を代入する変数の現在値に対し、ステップ802で求めた構成点間の距離を加算する。
【0042】
(ステップ804)
続いて、さらに次の構成点があるかどうかが判定される。すなわち、1ストロークの終点に当たる構成点を処理したか否かが判定される。次の構成点が存在する場合、処理動作はステップ802に戻る。この判定で否定結果が得られるまでの間、次の構成点間の距離の算出と、その加算による累積距離の更新処理が繰り返し実行される。
【0043】
(ステップ805)
ステップ804で否定結果が得られた場合(次の構成点が存在しない場合)、処理動作はステップ805に進む。ステップ805では、構成点間当たりの平均移動距離が算出される。ここで、平均移動距離は、累計距離を構成点数から1を差し引いた値で除算することにより求められる。
【0044】
(ステップ806)
ここでは、頂点判定用の距離(判定距離)が算出される。すなわち、ペンや指の移動がゆっくりになっている部分かどうかを判定するための判定基準を与える判定距離が算出される。この形態例の場合、ステップ805で算出された構成点間当たりの平均移動距離に距離判定閾値を乗算することにより算出する。
【0045】
平均移動距離を使用するのは、描画者の違いやストローク毎の描画スピードの違いにかかわらず、ストロークの平均描画速度に対して相対的に速度の低下した区間又は出現間隔が短い区間を確実に検出するためである。距離判定閾値には、0より大きく1以下の値を使用する。距離判定閾値は、頂点の判定に適した値に設定される。
【0046】
距離判定閾値は固定値でも良いが、描画者の書き方に現われる特性に応じて変更できるようにしても良い。具体的には、過去の複数回のストロークの平均移動距離をメモリ領域や外部記憶装置から読み出し、当該値毎に予め用意されている閾値テーブルの値を読み出しても良い。また、ストロークに対してユーザ情報が付与されている場合には、現在のユーザに関して登録されている閾値をメモリ領域や外部記憶領域から読み出して適用しても良い。
【0047】
(ステップ807)
このステップでは、頂点位置のバッファを初期化する。具体的には、描画対象とするオブジェクトについて確保された頂点テーブル701(図7)の座標データ部分を初期化する。この形態例の場合、頂点として格納可能な構成点の最大個数Mは予め規定されている。
【0048】
(ステップ808)
このステップでは、頂点の位置を算出するために角の開始番号を記憶する変数を初期化する。すなわち、開始番号をゼロに設定する。
【0049】
(ステップ809)
ここでは、ストロークの開始点から順番に、ステップ802で算出された構成点間の距離が1つだけメモリ領域から読み出される。なお、構成点間の距離がメモリ領域に格納されていない場合には、改めて、構成点テーブル601から構成点間の距離が開始点から順番に算出される。次に、読み出された構成点間の距離とステップ806で求めた判定距離とを比較し、ゆっくり描画された部分かどうかを判定する。処理対象とする区間の距離が判定距離より小さいとき、ゆっくり描画された部分であると判定される。すなわち、高密度部分であると判定される。この場合、ステップ810の処理に進む。一方、処理対象の距離が判定距離以上のとき、直線部分であると判定される。この場合は、ステップ814に進む。
【0050】
(ステップ810)
このステップでは、角の開始番号がゼロ(初期値)か否かを判定する。
【0051】
(ステップ811)
ステップ810で角の開始番号がゼロ(初期値)であると判定された場合、現在参照している構成点の番号を角の開始番号として記憶する。例えば図10に示す構成点列が検出された場合にあって、構成点2と構成点3の間の距離が判定距離より小さい場合、1つ目の頂点に対応する角の開始番号に「3」が格納される。
【0052】
ただし、このステップ811には例外処理を設けることが好ましい。例えば図11に示すように、ストロークの開始点直後からゆっくり描画される場合に対処するためである。図11は、構成点1と構成点2の間の距離が判定距離より小さい場合の例である。この場合も、ステップ811の処理が実行される。この場合、例外規定が無いと、ストロークの開始点1が角の開始点として格納されることになる。この形態例では、角である保証のないストロークの開始点については頂点でないものとして扱う。このため、開始点と構成点間の距離又は累積距離を順番に参照し、判定距離以上移動している構成点が見つかっていない場合に限り、角の開始番号に現在の構成点の番号を格納することとする。従って、図10の例は、開始点(構成点1)から構成点2までの距離又は累積距離が判定距離以上離れている場合の例である。
【0053】
(ステップ812)
このステップは、ステップ810で肯定結果が得られた場合又はステップ811が実行された後に実行される。このステップでは、角の終了番号に現在の構成点の番号を格納する。図10の例であれば、まず最初に、終了番号として「3」が設定される。
【0054】
(ステップ813)
このステップでは、次の構成点があるかどうかが判定される。すなわち、1ストロークの終点に当たる構成点を処理したか否かが判定される。次の構成点が存在する場合、処理動作はステップ809に戻る。この判定で否定結果が得られるまでの間、次の構成点間の距離の算出と、その加算による累積距離の更新処理が繰り返し実行される。なお、図10において、構成点3と構成点4の間の距離及び構成点4と構成点5の間の距離は判定距離より小さいのに対し、構成点5及び構成点6の間の距離は判定距離以上であるものとすると、角の終了番号は、ステップ809→ステップ810→ステップ812→813を繰り返す間に、「3」→「4」→「5」へと更新される。
【0055】
(ステップ814)
このステップは、ステップ809で否定結果が得られた場合、すなわち構成点間の距離が判定距離以上であった場合に実行される。例えば図10の構成点5と構成点6の間の距離が処理対象となった場合に実行される。図10に示すように、描画速度がゆっくりとは判定できない部分について実行される。
【0056】
ここでは、角の開始番号がゼロ(初期値)でないか否かが判定される。初期値ではないと判定された場合はステップ815に進み、初期値のままであると判定された場合はステップ817に進む。
【0057】
(ステップ815)
このステップは、新しく検出された角について頂点位置を確定する処理を実行する。この形態例の場合、角の開始番号から角の終了番号までの間の中間(半分)付近に位置する構成点を頂点位置として記憶する。例えば図10の例であれば、構成点4を頂点位置として登録する。なお、角の開始番号から角の終了番号までの間に偶数個の構成点が存在する場合には、例えば開始番号と終了番号を加算した値を2分の1した値の前後に隣接する構成点のうちいずれか1つを選択する。
【0058】
(ステップ816)
このステップでは、ステップ815で求まった頂点位置をバッファに記憶する。具体的には、頂点テーブル701(図7)の先頭から順番に頂点に対応する構成点のX座標とY座標を登録する。
【0059】
(ステップ817)
このステップでは、さらに次の構成点があるかどうかが判定される。すなわち、1ストロークの終点に当たる構成点を処理したか否かが判定される。次の構成点が存在する場合、処理動作はステップ808に戻る。なお、ステップ808では、新たな角の検出に備えて角の開始番号がリセットされる。もっとも、ステップ808では、終了番号も同時にリセットしても良い。
【0060】
(ステップ818)
このステップは、ステップ813で否定結果が得られた場合やステップ817で否定結果が得られた場合に実行される。ステップ813で否定結果が得られる場合とは、図12に示すように、ストロークの終点付近で描画速度が遅くなったまま描画が終了したような場合である。このステップでは、処理対象とするストロークで描画されたオブジェクトが閉図形か開図形かを判定する。この形態例の場合、ストロークの開始点を与える構成点1の座標値(X1,Y1)とストロークの終了点を与える構成点Nの座標値(XN,YN)の距離を算出し、当該距離が判定閾値より大きいか否かで判定する。判定閾値より距離が大きい場合は開図形と判定し、判定閾値より距離が小さい場合は閉図形と判定する。判定閾値は固定値でも良いし、オブジェクトのサイズ等をパラーメタに用いて算出しても良い。なお、開図形と判定された場合には、手書き図形認識プログラム1052の処理を終了する。一方、閉図形と判定された場合には、ステップ819に進む。
【0061】
(ステップ819)
このステップでは、ストロークの終了点に対応する構成点Nの位置を頂点位置に設定する。
【0062】
(ステップ820)
このステップでは、終了点に対応する構成点Nの位置をバッファに記録する。具体的には、頂点テーブル701(図7)の先頭からn(≦N)番目の頂点に対応する記憶領域にX座標とY座標を登録する。この後、当該ストロークに対する手書き図形認識プログラム1052の処理を終了する。
【0063】
(手書き図形認識プログラムの処理内容2)
ここでは、手書き図形認識プログラム1052で実行される処理内容のうち図形の描画に関する処理の概要を説明する。
【0064】
図13に、ステップ818の判定結果が閉図形の場合であった場合の処理の概要を示す。図13は手書きで六角形が描かれた後、対応するコンピュータ処理図形が表示画面上に描画されるまでに実行される処理内容の概要が示されている。途中までは、前述した頂点位置の設定に関する処理のイメージである。
【0065】
ユーザが指やペンを用いて投影面101(操作入力面)に六角形を描画すると、その軌跡が描画スピードに応じた構成点1301の列として検出される。この構成点の検出は、位置検出装置102にて実現される。次に、ストロークを構成する構成点1301のうちの高密度部分1302が抽出される。そして、高密度部分1302毎に頂点位置が特定される(1303)。ここまでが、図8及び図9で説明した内容に対応する。
【0066】
次に、手書き図形認識プログラム1052は、頂点テーブル701に格納されたm個(最大M個)の頂点を直線で結んだ整形多角形を形成する(1304)。この段階の整形多角形を、表示画面投影装置104を通じて投影面101に表示させることもできる。この整形多角形は、手書き図形を清書した図形に当たる。なお、ユーザの希望により、この整形多角形の外接矩形内にある頂点の数が同じ正多角形を描画することもできる(1305)。すなわち、手書きによる図形の描画でも、より美しく整形された正多角形を投影面101に表示させることができる。
【0067】
図14に、ステップ818の判定結果が開図形の場合であった場合の処理の概要を示す。図14は、ほぼ六角形に近い開図形が手書きで描かれた後、対応するコンピュータ処理図形が表示画面上に描画されるまでに実行される処理内容の概要が示されている。途中までは、前述した頂点位置の設定に関する処理のイメージである。
【0068】
この場合も、ユーザが指やペンを用いて投影面101(操作入力面)に六角形を描画すると、その軌跡が描画スピードに応じた構成点1401の列として検出される。この構成点の検出は、位置検出装置102にて実現される。次に、ストロークを構成する構成点1401のうちの高密度部分1402が抽出される。そして、高密度部分1402毎に頂点位置が特定される(1403)。
【0069】
次に、手書き図形認識プログラム1052は、頂点テーブル701に格納されたm個(最大M個)の頂点を直線で結んだ整形多角形を形成する(1404)。この段階の整形多角形を、表示画面投影装置104を通じて投影面101に表示される。この整形多角形は、手書き図形を清書した図形に当たる。
【0070】
(まとめ)
以上説明したように、本形態例に係る電子黒板システムを用いれば、パターンマッチング法では認識精度が低下するような手書き図形の場合でも、ユーザの意図した図形に自動的に整形して画面上に表示することが可能になる。
【0071】
(その他の形態例)
前述の形態例の場合には、整形多角形の外接矩形内にある頂点の数に基づいて正多角形を表示しているが、ステップ820が終了した時点において頂点テーブル701に座標データが記憶されている頂点の数nを読み出し、当該数nに対応する正多角形を表示面に直接描画させる処理を行っても良い。
【0072】
図1のシステム例の場合には、座標算出プログラム1051を制御用コンピュータ105に搭載しているが、当該プログラムは位置検出装置102内のコンピュータ又は当該位置検出装置102が取り付けられる枠体側のコンピュータに実行させても良い。また、座標算出プログラム1051だけでなく手書き図形認識プログラム1052も、位置検出装置102内のコンピュータ又は当該位置検出装置102が取り付けられる枠体側のコンピュータに実行させても良い。
【0073】
図1のシステム例の場合には、投影面101上に画面が投影される例を説明した。しかし、表示形態はこれに限らず、プラズマディスプレイパネル(PDP)や液晶ディスプレイディスプレイ(LCD)でも構わない。
【0074】
また、図1の場合には、電子黒板システムについて説明したが、タブレット型の入力装置についても本発明に係る手書き図形認識プログラムを適用することができる。
【0075】
前述した手書き図形認識プログラムは、位置検出にタッチパネルや電磁誘導方式を用いるシステムにも適用することができる。
【符号の説明】
【0076】
101 投影面
102 位置検出装置
103 人間の指
104 表示画面投影装置
105 制御用コンピュータ
1051 座標算出プログラム
1052 手書き図形認識プログラム
106 キーボード
107 表示装置
108 再帰性反射材
【特許請求の範囲】
【請求項1】
入力物体を用いた操作入力面に対する操作入力を座標点列として検出する手段と、
ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて格納する記憶領域と、
前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する手段と
を有することを特徴とする手書き図形認識システム。
【請求項2】
請求項1に記載の手書き図形認識システムにおいて、
前記認識する手段は、前記座標点列のうち座標点の出現間隔が判定閾値より小さい高密度部分を前記入力オブジェクトの頂点位置として抽出する
ことを特徴とする手書き図形認識システム。
【請求項3】
請求項2に記載の手書き図形認識システムにおいて、
前記判定閾値は、前記座標点列の平均移動距離に基づいて設定される
ことを特徴とする手書き図形認識システム。
【請求項4】
請求項1又は2に記載の手書き図形認識システムにおいて、
前記認識する手段は、前記高密度部分の開始点を与える座標点と前記高密度部分の終了点を与える座標点との中間付近に出現する座標点を前記頂点位置として認識する
ことを特徴とする手書き図形認識システム。
【請求項5】
請求項1〜4のいずれか1項に記載の手書き図形認識システムにおいて、
認識された頂点位置同士を直線で結び図形を表示面に表示させる
ことを特徴とする手書き図形認識システム。
【請求項6】
請求項1〜4のいずれか1項に記載の手書き図形認識システムにおいて、
認識された頂点位置の数を検出し、当該数に対応する正多角形図形を表示面に表示させる
ことを特徴とする手書き図形認識システム。
【請求項7】
入力物体を用いた操作入力面に対する操作入力を座標点列として検出する工程と、
ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて記憶領域に格納する工程と、
前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する処理と
を有することを特徴とする手書き図形認識方法。
【請求項8】
請求項7に記載の手書き図形認識方法において、
前記認識する工程では、前記座標点列のうち座標点の出現間隔が判定閾値より小さい高密度部分を前記入力オブジェクトの頂点位置として抽出する
ことを特徴とする手書き図形認識方法。
【請求項9】
請求項7又は8に記載の手書き図形認識方法において、
前記認識する方法は、前記高密度部分の開始点を与える座標点と前記高密度部分の終了点を与える座標点との中間付近に出現する座標点を前記頂点位置として認識する
ことを特徴とする手書き図形認識方法。
【請求項10】
手書き図形認識システムを構成するコンピュータに、
入力物体を用いた操作入力面に対する操作入力を座標点列として検出する工程と、
ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて記憶領域に格納する工程と、
前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する処理と
を実行させることを特徴とする手書き図形認識プログラム。
【請求項11】
請求項10に記載の手書き図形認識プログラムにおいて、
前記認識する工程では、前記座標点列のうち座標点の出現間隔が判定閾値より小さい高密度部分を前記入力オブジェクトの頂点位置として抽出する
ことを特徴とする手書き図形認識プログラム。
【請求項12】
請求項10又は11に記載の手書き図形認識プログラムにおいて、
前記認識する方法は、前記高密度部分の開始点を与える座標点と前記高密度部分の終了点を与える座標点との中間付近に出現する座標点を前記頂点位置として認識する
ことを特徴とする手書き図形認識プログラム。
【請求項1】
入力物体を用いた操作入力面に対する操作入力を座標点列として検出する手段と、
ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて格納する記憶領域と、
前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する手段と
を有することを特徴とする手書き図形認識システム。
【請求項2】
請求項1に記載の手書き図形認識システムにおいて、
前記認識する手段は、前記座標点列のうち座標点の出現間隔が判定閾値より小さい高密度部分を前記入力オブジェクトの頂点位置として抽出する
ことを特徴とする手書き図形認識システム。
【請求項3】
請求項2に記載の手書き図形認識システムにおいて、
前記判定閾値は、前記座標点列の平均移動距離に基づいて設定される
ことを特徴とする手書き図形認識システム。
【請求項4】
請求項1又は2に記載の手書き図形認識システムにおいて、
前記認識する手段は、前記高密度部分の開始点を与える座標点と前記高密度部分の終了点を与える座標点との中間付近に出現する座標点を前記頂点位置として認識する
ことを特徴とする手書き図形認識システム。
【請求項5】
請求項1〜4のいずれか1項に記載の手書き図形認識システムにおいて、
認識された頂点位置同士を直線で結び図形を表示面に表示させる
ことを特徴とする手書き図形認識システム。
【請求項6】
請求項1〜4のいずれか1項に記載の手書き図形認識システムにおいて、
認識された頂点位置の数を検出し、当該数に対応する正多角形図形を表示面に表示させる
ことを特徴とする手書き図形認識システム。
【請求項7】
入力物体を用いた操作入力面に対する操作入力を座標点列として検出する工程と、
ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて記憶領域に格納する工程と、
前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する処理と
を有することを特徴とする手書き図形認識方法。
【請求項8】
請求項7に記載の手書き図形認識方法において、
前記認識する工程では、前記座標点列のうち座標点の出現間隔が判定閾値より小さい高密度部分を前記入力オブジェクトの頂点位置として抽出する
ことを特徴とする手書き図形認識方法。
【請求項9】
請求項7又は8に記載の手書き図形認識方法において、
前記認識する方法は、前記高密度部分の開始点を与える座標点と前記高密度部分の終了点を与える座標点との中間付近に出現する座標点を前記頂点位置として認識する
ことを特徴とする手書き図形認識方法。
【請求項10】
手書き図形認識システムを構成するコンピュータに、
入力物体を用いた操作入力面に対する操作入力を座標点列として検出する工程と、
ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを1つのオブジェクトに対応付けて記憶領域に格納する工程と、
前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する処理と
を実行させることを特徴とする手書き図形認識プログラム。
【請求項11】
請求項10に記載の手書き図形認識プログラムにおいて、
前記認識する工程では、前記座標点列のうち座標点の出現間隔が判定閾値より小さい高密度部分を前記入力オブジェクトの頂点位置として抽出する
ことを特徴とする手書き図形認識プログラム。
【請求項12】
請求項10又は11に記載の手書き図形認識プログラムにおいて、
前記認識する方法は、前記高密度部分の開始点を与える座標点と前記高密度部分の終了点を与える座標点との中間付近に出現する座標点を前記頂点位置として認識する
ことを特徴とする手書き図形認識プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−63938(P2012−63938A)
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願番号】特願2010−207114(P2010−207114)
【出願日】平成22年9月15日(2010.9.15)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願日】平成22年9月15日(2010.9.15)
【出願人】(000233055)株式会社日立ソリューションズ (1,610)
【Fターム(参考)】
[ Back to top ]