(57)【特許請求の範囲】
【請求項１】
入力物体を用いた操作入力面に対する操作入力を座標点列として検出する手段と、
ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを１つのオブジェクトに対応付けて格納する記憶領域と、
前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する手段と
を有し、
前記認識する手段は、前記座標点列のうち座標点の出現間隔が、前記座標点列の平均移動距離に基づいて設定される判定閾値より小さい高密度部分を前記入力オブジェクトの頂点位置として抽出する
ことを特徴とする手書き図形認識システム。
【請求項２】
請求項１に記載の手書き図形認識システムにおいて、
前記認識する手段は、前記高密度部分の開始点を与える座標点と前記高密度部分の終了点を与える座標点との中間付近に出現する座標点を前記頂点位置として認識する
ことを特徴とする手書き図形認識システム。
【請求項３】
請求項１又は２に記載の手書き図形認識システムにおいて、
認識された頂点位置同士を直線で結び図形を表示面に表示させる
ことを特徴とする手書き図形認識システム。
【請求項４】
請求項１又は２に記載の手書き図形認識システムにおいて、
認識された頂点位置の数を検出し、当該数に対応する正多角形図形を表示面に表示させる
ことを特徴とする手書き図形認識システム。
【請求項５】
入力物体を用いた操作入力面に対する操作入力を座標点列として検出する工程と、
ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを１つのオブジェクトに対応付けて記憶領域に格納する工程と、
前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する工程と
を有し、
前記認識する工程は、前記座標点列のうち座標点の出現間隔が、前記座標点列の平均移動距離に基づいて設定される判定閾値より小さい高密度部分を前記入力オブジェクトの頂点位置として抽出する
ことを特徴とする手書き図形認識方法。
【請求項６】
請求項５に記載の手書き図形認識方法において、
前記認識する工程は、前記高密度部分の開始点を与える座標点と前記高密度部分の終了点を与える座標点との中間付近に出現する座標点を前記頂点位置として認識する
ことを特徴とする手書き図形認識方法。
【請求項７】
請求項５又は６に記載の手書き図形認識方法において、
認識された頂点位置同士を直線で結び図形を表示面に表示させる
ことを特徴とする手書き図形認識方法。
【請求項８】
請求項５又は６に記載の手書き図形認識方法において、
認識された頂点位置の数を検出し、当該数に対応する正多角形図形を表示面に表示させる
ことを特徴とする手書き図形認識方法。
【請求項９】
手書き図形認識システムを構成するコンピュータに、
入力物体を用いた操作入力面に対する操作入力を座標点列として検出する工程と、
ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを１つのオブジェクトに対応付けて記憶領域に格納する工程と、
前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する工程と
を実行させ、
前記認識する工程は、前記座標点列のうち座標点の出現間隔が、前記座標点列の平均移動距離に基づいて設定される判定閾値より小さい高密度部分を前記入力オブジェクトの頂点位置として抽出する
ことを特徴とする手書き図形認識プログラム。
【請求項１０】
請求項９に記載の手書き図形認識プログラムにおいて、
前記認識する工程は、前記高密度部分の開始点を与える座標点と前記高密度部分の終了点を与える座標点との中間付近に出現する座標点を前記頂点位置として認識する
ことを特徴とする手書き図形認識プログラム。
【請求項１１】
請求項９又は１０に記載の手書き図形認識プログラムにおいて、
認識された頂点位置同士を直線で結び図形を表示面に表示させる
ことを特徴とする手書き図形認識プログラム。
【請求項１２】
請求項９又は１０に記載の手書き図形認識プログラムにおいて、
認識された頂点位置の数を検出し、当該数に対応する正多角形図形を表示面に表示させる
ことを特徴とする手書き図形認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タブレット型入力装置、電子黒板システムその他の手書き入力認識システムに実装又は連携動作して好適な手書き図形認識システム、方法及び同システムの機能を実現するプログラムに関する。
【背景技術】
【０００２】
近年、電子ペンや指その他の入力物体を用いた手書き入力認識システムが普及している。この種の手書き入力認識システムには、タブレット型の入力装置や電子黒板システム（Interactive White Board：IWB）が知られている。
【０００３】
電子黒板システムには、様々なタイプの装置が実用化されている。例えば表示装置として、プラズマディスプレイパネル（PDP）、液晶ディスプレイディスプレイ（LCD）、プロジェクター等を用いるものがある。また、操作入力検出方式として、赤外線方式、タッチパネル方式、電磁誘導方式等を用いるものがある。また、入力に用いる物体（以下「入力物体」という。）には、操作入力検出方式に応じて、人体（手や指）、スタイラスペン、電子ペン等が用いられる。
【０００４】
電子黒板システムを用いると、黒板にチョークで描画するのと同様の動作により、表示画面上に文字や図形を描くことができる。具体的には、操作入力面上における入力物体の位置を位置検出装置が検出し、当該検出情報を演算装置が処理し、処理結果を表示装置の表示画面に反映する。このように、基本的には、入力物体の筆跡そのままが表示画面に表示される。
【０００５】
ところで、電子黒板システムには、入力時の筆跡等を自動認識し、整形して表示画面上に表示できる機能がある。例えば文字入力であれば、入力された文字を自動的に認識し、認識された文字列を文字フォントを用いて表示し、図形入力であれば、入力された図形を自動的に認識し、認識された図形を整形して表示できる機能がある。
【０００６】
手書き図形の認識に関する従来技術には、以下のようなものがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特公平７−１０７７０８号公報
【特許文献２】特許第３０４６４７２号公報
【特許文献３】特公平６−０６４６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
手書き図形を認識する方法には、パターン認識による方法（特許文献１）、角度ヒストグラムの分布を計算する方法（特許文献２）などがある。
【０００９】
特許文献１に記載の方法は、あいまいさを伴う手書き図形の認識装置に好適な方法である。この方法では、ストローク（筆跡）形状にあいまいさがあっても登録図形との正しいマッチングを可能にするため、まず最初に、入力ストロークの形状を、(1)明確に円弧である部分と、(2) 明確に直線である部分と、(3) 円弧か直線かあいまいな部分とに分離する。次に、この方法は、あいまいな部分が円弧か直線かの解釈を変えて、入力ストロークの円弧又は直線の線分要素による構造パターンを複数個作り、該構造パターンと各辞書図形の構造パターンとの構造の比較、線分要素の円弧らしさ又は直線らしさのチェックにより相違度を求め、該相違度の小さいものを選択する。
【００１０】
ただし、特許文献１に記載の方法が効果を発揮するには、描画する時点でストロークを綺麗に書くことを意識する必要があり、直線であるべき部分は直線らしく描画する必要がある。
【００１１】
特許文献２に記載の方法は、人間が手書きで描画する場合におけるペンの揺らぎに着目するものである。具体的には、揺らぎが原因で認識率が低下しないよう、角度ヒストグラムの分布により辺の数を推定するものである。しかしこの方式においても５角形と６角形を認識するためには辺の数が５又は６として認識されるように、辺の角度に変化がつくように意識して描画する必要がある。
【００１２】
特許文献３に記載の方法は、ストロークを結合することで図形を認識する技術に関するものであり、図形の認識率を向上させるという点では本発明の目的と同じであるが、本発明とは別のアプローチによるものである。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明者は、ストローク描画中の筆跡速度の変化に着目する手法を発明した。すなわち、本発明者は、頂点部分では描画スピードが低下することに着目し、当該部分を頂点として検出する手法を発明した。
【００１４】
そこで、本発明者は、手書き図形認識システムとして、(1) 入力物体を用いた操作入力面に対する操作入力を座標点列として検出する手段と、(2) ダウン操作の検出からアップ操作の検出までの間に検出される前記座標点列を構成する各座標点の座標データを１つのオブジェクトに対応付けて格納する記憶領域と、(3) 前記記憶領域から読み出した前記座標点列が高密度に出現する部分を検出し、当該部分を入力オブジェクトの頂点位置として認識する手段とを有するものを提案する。
【００１５】
なお、入力物体の座標点を検出する手段は、一定周期毎に入力物体の軌跡をサンプリングするものとする。このため、１ストローク中（ダウン操作からアップ操作まで）で描画スピードが低下した部分が座標点の高密度部分となる。
【発明の効果】
【００１６】
手書きで図形を描画する場合、きれいに描画することは意外に難しく、五角形と六角形と円を誰が見ても間違えないように書き分けることは至難の業である。五角形の一部が崩れて四角形に似た形状になってしまったり、五角形や六角形の角を丸く描画してしまうことで円との区別がつきにくくなってしまうことがある。
【００１７】
しかし、描画結果の形状は区別の難しいものであったとしても、どのような図形を描画しようとしていたかは、描画スピードの変化に現れる。例えば角を丸く描画してしまったとしても、角を描画しなければならないという意識が働いている。従って、角の部分とそれ以外の部分では検出された座標点の描画スピードに差異が生じる。角の部分を描画する際は、角以外の部分を描画する場合と比較して慎重になり、ゆっくり入力物体（例えばペンや指）を動かすことになる。
【００１８】
本発明は、このような人間の描画時の習性を用いて認識を行おうとするものであり、手書きにより描画された図形の形状を参照せず、書き方を参照して認識を行う。このため、手書きによるペンのぶれにとどまらず、描画された形状が不正確な場合でも、どのように描画しようとしたのかという描画者の意図を頂点位置の認識に正確に反映させることができる。結果的に、手書きの不正確さに対する許容量を大きくすることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明に係る図形認識システムの一実施の形態を示すシステム構成図。
【図２】手書きで図形を描画した際の構成点の分布を説明する図。
【図３】手書きで描画された六角形を従来方式により認識した結果を示す図。
【図４】手書きで六角形を描画した際の構成点の分布を説明する図。
【図５】構成点と通し番号の関係を説明する図。
【図６】構成点テーブルの構造例を示す図。
【図７】頂点テーブルの構造例を示す図。
【図８】手書き図形認識プログラムの処理内容を説明する図（その１）。
【図９】手書き図形認識プログラムの処理内容を説明する図（その２）。
【図１０】角の開始点と終了点の設定例を説明する図。
【図１１】ストロークの書き始めがゆっくりの場合の構成点の分布を説明する図。
【図１２】ストロークの書き終わりがゆっくりの場合の構成点の分布を説明する図。
【図１３】手書きで六角形を描画する場合の整形処理の概要を説明する図。
【図１４】手書きで開図形を描画する場合の整形処理の概要を説明する図。
【発明を実施するための形態】
【００２０】
以下、図面に基づいて、本発明を電子黒板システムに適用する場合の形態例を説明する。なお、後述する形態例はいずれも一例であり、本発明には、本明細書に記載する任意の機能を組み合わせることで実現されるシステム、本明細書に記載する一部の構成や機能を周知の技術で置換したシステムも含まれる。また、後述する形態例で実行される機能は、計算機（コンピュータ）上で実行されるプログラムとして実現されるものとして説明する。もっとも、プログラムの一部又は全部は、ハードウェアを通じて実現されても良い。
【００２１】
（電子黒板システムの全体構成）
図１に、発明に係る手書き図形認識システムを含む電子黒板システムの構成例を示す。図１に示す電子黒板システムは、投影面１０１、位置検出装置１０２、表示画面投影装置１０４、制御用コンピュータ１０５、制御用コンピュータ１０５に付属するキーボード１０６及び表示装置１０７、再帰性反射材１０８で構成されている。この実施例の場合、入力物体として、指１０３を使用する。
【００２２】
ここで、位置検出装置１０２は、赤外線を投影面１０１に沿って放射状に照射できる光源と、再帰性反射材１０８で反射された赤外光像を撮像するイメージセンサで構成される。再帰性反射材１０８は、基本的に入射光をその入射方向に反射できる特殊な微小構造が多数配列されたテープ状の部材であり、本形態例の場合、投影面１０１に向かって下辺、左辺、右辺の３辺の枠体に取り付けられている。
【００２３】
なお、枠体は投影面１０１と一体構成でも、独立部材でも良い。なお、微小構造が配列される面（テープ面）は、投影面１０１に対して垂直である。図１の電子黒板システムでは、三角測量の原理を用いて入力物体の座標点を検出するため、２つの位置検出装置１０２を使用する。この形態例の場合、２つの位置検出装置１０２は、投影面１０１の上辺の左右両端位置で枠体に取り付けている。もっとも、三角測量が可能な位置関係であれば取り付け位置は任意である。
【００２４】
投影面１０１の左上端に位置する位置検出装置１０２の光源には、投影面１０１に向かって下辺及び右辺の２辺を照射範囲とするものを使用する。なお、光源から射出された赤外光は、再帰性反射材１０８で反射された後、入射経路の近傍を反対方向に進み、最終的には同じ装置内に配置されているイメージセンサによって撮像される。投影面の左上端に位置するイメージセンサの撮像範囲の両端位置は、投影面１０１の下辺左端と右辺上端に設定される。
【００２５】
一方、投影面１０１の右上端に位置する位置検出装置１０２の光源には、投影面１０１に向かって下辺及び左辺の２辺を照射範囲とするものを使用する。やはり、光源から射出された赤外光は、再帰性反射材１０８で反射された後、入射経路の近傍を反対方向に進み、最終的には同じ装置内に配置されているイメージセンサによって撮像される。投影面の右上端に位置するイメージセンサの撮像範囲の両端位置は、投影面１０１の下辺右端と左辺上端に設定される。
【００２６】
この位置検出方式の場合、指１０３が赤外光の光路上に配置されることで、イメージセンサに戻ってくる赤外光が遮断され、撮像面上に影を形成する。投影面１０１の上辺の左右両端に配置された２つの位置検出装置１０２は、撮像画像からこの影の位置を検出する。検出された影の位置情報は、制御用コンピュータ１０５に出力される。
【００２７】
制御用コンピュータ１０５は、汎用のパーソナルコンピュータと同等の機能を有している。具体的には、制御用コンピュータ１０５は、演算装置と、内部メモリと、ハードディスクその他の外部記憶装置で構成される。制御用コンピュータ１０５は、所定のオペレーションシステム上で実行されるアプリケーションプログラムに基づいて各種の機能を提供する。本形態例の場合、アプリケーションプログラムの一つとして、指１０３の投影面１０１上の座標点を三角測量の原理で算出する座標算出プログラム１０５１と、当該座標点に基づいて手書き図形を認識するプログラム（手書き図形認識プログラム）１０５２が格納される。
【００２８】
座標算出プログラム１０５１は、２つのイメージセンサから入力される影の位置情報を基に、三角測量の原理で座標点を算出する。なお、以下の説明では、１つのストローク（投影面１０１に対する指１０３のダウン操作の検出からアップ操作の検出までの間）として認識された座標点列を構成する個々の座標点をストロークの構成点と呼ぶことにする。手書き図形認識プログラム１０５２の詳細については後述する。なお、手書き図形認識プログラム１０５２には、手書き図形の頂点位置を認識する機能と、認識した頂点位置を用いて図形を描画する機能が含まれる。
【００２９】
表示画面投影装置１０４には表示装置１０７に表示されている画面と同じものが投影面１０１に対して表示される。
【００３０】
（ストローク構成点）
図２に、手書きで図形を描画する際における１ストロークの構成点の例を示す。図では、構成点を丸印で示している。図中（Ａ）は、円を反時計回りに描画した場合の構成点の軌跡を表している。円の軌跡２１を構成する構成点の間隔はほぼ一定の間隔となっている。これは円には角がないため、一定の速度で描画を完遂させることができるためである。また、位置検出装置１０２による座標情報の取り込みが一定間隔で実行されるためでもある。
【００３１】
図中（Ｂ）は、四角形を半時計周りに描画した場合の構成点の軌跡を表している。四角形の軌跡２２における構成点の出現間隔は、描画の始点と終点に対応する角を除き、角の描画部分で狭くなることが分かる。すなわち、角の部分に、構成点の高密度部分２２１が出現していることが分かる。これは、角の部分は、ゆっくり書かれたことを表している。角の部分は直線部分と比較して複雑な形状であるため、手書きにより複雑な形状を表現するために描画速度がゆっくりになることは自明の理である。
【００３２】
なお、前述したように、描画の始点と終点に対応する角の部分には、構成点の高密度部分２２１が存在しない。このため、単純な構成点の検出によると、頂点は３つとなる。ただし、始点と終点の距離が閾値以内の距離である場合のように、閉図形としてみなせる場合には、始点と終点の部分にも高密度部分２２１が存在するものとして扱うことは、ソフトウェア的に可能である。閉図形とみなせる場合、ソフトウェア的には、構成点の高密度部分２２１は四個存在することになる。ここで、構成点の高密度部分２２１は頂点であるとみなすことにより、四角形の軌跡２２には四個の頂点が存在することになる。
【００３３】
図中（Ｃ）は、五角形を反時計回りに描画した場合の構成点の軌跡を表している。四角形の場合と同様に、五角形の軌跡２３のそれぞれの角には、構成点の高密度部分２３１が出現する。また、終点付近にも構成点の高密度部分２３１が存在するが、これは始点と終点を近づけるために意識的に描画がゆっくりになったものと推測できる。このように始点と終点の距離が閾値以内の距離であり、閉図形としてみなせる場合であっても、始点又は終点付近に構成点の高密度部分２３１が存在する場合があるため、頂点の数を重複カウントしないようにソフトウェアの判定処理を構成することが必要である。図中（Ｃ）の場合、構成点の高密度部分２３１は五個存在している。従って、構成点の高密度部分２３１は頂点であるとみなすことにより、五角形の軌跡２３には頂点が五個存在することになる。
【００３４】
（図形認識にパターンマッチングを用いる場合の誤判定の例）
図３は、手書きで六角形を描画した際の軌跡３１と、パターンマッチングにより図形認識を行った場合の認識結果候補を示した図である。
【００３５】
手書きで描画した六角形の軌跡３１は、上辺だけが２辺と判定され、底辺に存在する角が入力のぶれと判定される可能性がある。この場合、軌跡３１の図形は、五角形３３と認識される可能性がある。これに対し、上辺、底辺ともに２辺で構成されているとみなされた場合には、軌跡３１の図形は、六角形３４と認識される可能性がある。
【００３６】
（軌跡と構成点列の関係）
図４に、手書きで時計回りに六角形を描画した際の軌跡４１とストロークの構成点４２との関係を示す。本図でも、構成点４２は丸印で表している。この構成点４２の座標点は、座標算出プログラム１０５１により算出される。座標算出プログラム１０５１は、座標点の検出順に図５に示すように通し番号を付し、内部メモリに確保した入力オブジェクト別の構成点テーブルに格納する。図６に、構成点テーブル６０１の例を示す。１、２、３、…Ｎが構成点に付される通し番号である。各構成点には、Ｘ座標とＹ座標が格納される。
【００３７】
手書き図形認識プログラム１０５２は、構成点テーブルから順番に読み出される構成点の座標データより構成点４２の高密度部分４２１を検出し、当該高密度部分４２１を頂点として認識する。手書き図形認識プログラム１０５２は、頂点の検出順に通し番号を付し、内部メモリに確保した入力オブジェクト別の頂点テーブルに格納する。図７に、頂点テーブル７０１の例を示す。１、２、３、…Ｍ（＜Ｎ）が構成点に付される通し番号である。ここで、Ｍは、頂点座標の保存用に予め設定された最大値である。従って、ストローク中の頂点の数がＭ個より少ない場合には、頂点テーブル７０１の一部の領域だけが座標データの格納に使用される。各頂点には、Ｘ座標とＹ座標が格納される。なお、頂点位置の確定方法については後述する。
【００３８】
（手書き図形認識プログラムの処理内容１）
図８及び図９に、手書き図形認識プログラム１０５２で実行される処理内容のうち頂点位置の設定に関する処理の概要を示す。なお、各ステップの実行主体は、手書き図形認識プログラム１０５２又は制御用コンピュータ１０５である。前述したように、本形態例の場合には、位置検出装置１０２によるペンや指のサンプリング周期は一定である。サンプリング周期が一定であれば、構成点間の移動距離が大きい部分は素早く描画したことになり、逆に構成点間の移動距離が小さければゆっくり描画したことになる。
【００３９】
（ステップ８０１）
まず最初に、制御用コンピュータ１０５の内部メモリ上に確保された各構成点間の累積距離がゼロに初期化される。この形態例の場合、累積距離とは、ストロークの先頭（始点）位置からの軌跡に沿って計測される長さを与える変数である。
【００４０】
（ステップ８０２）
ストロークの先頭から順番に、構成点の検出順に構成点間の距離が算出される。例えば図５の場合、構成点１と構成点２の間の距離、構成点２と構成点３の間の距離が、１ステップに付き１個ずつ算出される。２点間の距離の算出には、図６の構成点テーブル６０１から読み出されるＸ座標とＹ座標を用い、三平方の定理に基づいて導き出される２点間の距離を求める公式により算出される。
【００４１】
（ステップ８０３）
累計距離を代入する変数の現在値に対し、ステップ８０２で求めた構成点間の距離を加算する。
【００４２】
（ステップ８０４）
続いて、さらに次の構成点があるかどうかが判定される。すなわち、１ストロークの終点に当たる構成点を処理したか否かが判定される。次の構成点が存在する場合、処理動作はステップ８０２に戻る。この判定で否定結果が得られるまでの間、次の構成点間の距離の算出と、その加算による累積距離の更新処理が繰り返し実行される。
【００４３】
（ステップ８０５）
ステップ８０４で否定結果が得られた場合（次の構成点が存在しない場合）、処理動作はステップ８０５に進む。ステップ８０５では、構成点間当たりの平均移動距離が算出される。ここで、平均移動距離は、累計距離を構成点数から１を差し引いた値で除算することにより求められる。
【００４４】
（ステップ８０６）
ここでは、頂点判定用の距離（判定距離）が算出される。すなわち、ペンや指の移動がゆっくりになっている部分かどうかを判定するための判定基準を与える判定距離が算出される。この形態例の場合、ステップ８０５で算出された構成点間当たりの平均移動距離に距離判定閾値を乗算することにより算出する。
【００４５】
平均移動距離を使用するのは、描画者の違いやストローク毎の描画スピードの違いにかかわらず、ストロークの平均描画速度に対して相対的に速度の低下した区間又は出現間隔が短い区間を確実に検出するためである。距離判定閾値には、０より大きく１以下の値を使用する。距離判定閾値は、頂点の判定に適した値に設定される。
【００４６】
距離判定閾値は固定値でも良いが、描画者の書き方に現われる特性に応じて変更できるようにしても良い。具体的には、過去の複数回のストロークの平均移動距離をメモリ領域や外部記憶装置から読み出し、当該値毎に予め用意されている閾値テーブルの値を読み出しても良い。また、ストロークに対してユーザ情報が付与されている場合には、現在のユーザに関して登録されている閾値をメモリ領域や外部記憶領域から読み出して適用しても良い。
【００４７】
（ステップ８０７）
このステップでは、頂点位置のバッファを初期化する。具体的には、描画対象とするオブジェクトについて確保された頂点テーブル７０１（図７）の座標データ部分を初期化する。この形態例の場合、頂点として格納可能な構成点の最大個数Ｍは予め規定されている。
【００４８】
（ステップ８０８）
このステップでは、頂点の位置を算出するために角の開始番号を記憶する変数を初期化する。すなわち、開始番号をゼロに設定する。
【００４９】
（ステップ８０９）
ここでは、ストロークの開始点から順番に、ステップ８０２で算出された構成点間の距離が１つだけメモリ領域から読み出される。なお、構成点間の距離がメモリ領域に格納されていない場合には、改めて、構成点テーブル６０１から構成点間の距離が開始点から順番に算出される。次に、読み出された構成点間の距離とステップ８０６で求めた判定距離とを比較し、ゆっくり描画された部分かどうかを判定する。処理対象とする区間の距離が判定距離より小さいとき、ゆっくり描画された部分であると判定される。すなわち、高密度部分であると判定される。この場合、ステップ８１０の処理に進む。一方、処理対象の距離が判定距離以上のとき、直線部分であると判定される。この場合は、ステップ８１４に進む。
【００５０】
（ステップ８１０）
このステップでは、角の開始番号がゼロ（初期値）か否かを判定する。
【００５１】
（ステップ８１１）
ステップ８１０で角の開始番号がゼロ（初期値）であると判定された場合、現在参照している構成点の番号を角の開始番号として記憶する。例えば図１０に示す構成点列が検出された場合にあって、構成点２と構成点３の間の距離が判定距離より小さい場合、１つ目の頂点に対応する角の開始番号に「３」が格納される。
【００５２】
ただし、このステップ８１１には例外処理を設けることが好ましい。例えば図１１に示すように、ストロークの開始点直後からゆっくり描画される場合に対処するためである。図１１は、構成点１と構成点２の間の距離が判定距離より小さい場合の例である。この場合も、ステップ８１１の処理が実行される。この場合、例外規定が無いと、ストロークの開始点１が角の開始点として格納されることになる。この形態例では、角である保証のないストロークの開始点については頂点でないものとして扱う。このため、開始点と構成点間の距離又は累積距離を順番に参照し、判定距離以上移動している構成点が見つかっていない場合に限り、角の開始番号に現在の構成点の番号を格納することとする。従って、図１０の例は、開始点（構成点１）から構成点２までの距離又は累積距離が判定距離以上離れている場合の例である。
【００５３】
（ステップ８１２）
このステップは、ステップ８１０で肯定結果が得られた場合又はステップ８１１が実行された後に実行される。このステップでは、角の終了番号に現在の構成点の番号を格納する。図１０の例であれば、まず最初に、終了番号として「３」が設定される。
【００５４】
（ステップ８１３）
このステップでは、次の構成点があるかどうかが判定される。すなわち、１ストロークの終点に当たる構成点を処理したか否かが判定される。次の構成点が存在する場合、処理動作はステップ８０９に戻る。この判定で否定結果が得られるまでの間、次の構成点間の距離の算出と、その加算による累積距離の更新処理が繰り返し実行される。なお、図１０において、構成点３と構成点４の間の距離及び構成点４と構成点５の間の距離は判定距離より小さいのに対し、構成点５及び構成点６の間の距離は判定距離以上であるものとすると、角の終了番号は、ステップ８０９→ステップ８１０→ステップ８１２→８１３を繰り返す間に、「３」→「４」→「５」へと更新される。
【００５５】
（ステップ８１４）
このステップは、ステップ８０９で否定結果が得られた場合、すなわち構成点間の距離が判定距離以上であった場合に実行される。例えば図１０の構成点５と構成点６の間の距離が処理対象となった場合に実行される。図１０に示すように、描画速度がゆっくりとは判定できない部分について実行される。
【００５６】
ここでは、角の開始番号がゼロ（初期値）でないか否かが判定される。初期値ではないと判定された場合はステップ８１５に進み、初期値のままであると判定された場合はステップ８１７に進む。
【００５７】
（ステップ８１５）
このステップは、新しく検出された角について頂点位置を確定する処理を実行する。この形態例の場合、角の開始番号から角の終了番号までの間の中間（半分）付近に位置する構成点を頂点位置として記憶する。例えば図１０の例であれば、構成点４を頂点位置として登録する。なお、角の開始番号から角の終了番号までの間に偶数個の構成点が存在する場合には、例えば開始番号と終了番号を加算した値を２分の１した値の前後に隣接する構成点のうちいずれか１つを選択する。
【００５８】
（ステップ８１６）
このステップでは、ステップ８１５で求まった頂点位置をバッファに記憶する。具体的には、頂点テーブル７０１（図７）の先頭から順番に頂点に対応する構成点のＸ座標とＹ座標を登録する。
【００５９】
（ステップ８１７）
このステップでは、さらに次の構成点があるかどうかが判定される。すなわち、１ストロークの終点に当たる構成点を処理したか否かが判定される。次の構成点が存在する場合、処理動作はステップ８０８に戻る。なお、ステップ８０８では、新たな角の検出に備えて角の開始番号がリセットされる。もっとも、ステップ８０８では、終了番号も同時にリセットしても良い。
【００６０】
（ステップ８１８）
このステップは、ステップ８１３で否定結果が得られた場合やステップ８１７で否定結果が得られた場合に実行される。ステップ８１３で否定結果が得られる場合とは、図１２に示すように、ストロークの終点付近で描画速度が遅くなったまま描画が終了したような場合である。このステップでは、処理対象とするストロークで描画されたオブジェクトが閉図形か開図形かを判定する。この形態例の場合、ストロークの開始点を与える構成点１の座標値（Ｘ１，Ｙ１）とストロークの終了点を与える構成点Ｎの座標値（ＸＮ，ＹＮ）の距離を算出し、当該距離が判定閾値より大きいか否かで判定する。判定閾値より距離が大きい場合は開図形と判定し、判定閾値より距離が小さい場合は閉図形と判定する。判定閾値は固定値でも良いし、オブジェクトのサイズ等をパラーメタに用いて算出しても良い。なお、開図形と判定された場合には、手書き図形認識プログラム１０５２の処理を終了する。一方、閉図形と判定された場合には、ステップ８１９に進む。
【００６１】
（ステップ８１９）
このステップでは、ストロークの終了点に対応する構成点Ｎの位置を頂点位置に設定する。
【００６２】
（ステップ８２０）
このステップでは、終了点に対応する構成点Ｎの位置をバッファに記録する。具体的には、頂点テーブル７０１（図７）の先頭からｎ（≦Ｎ）番目の頂点に対応する記憶領域にＸ座標とＹ座標を登録する。この後、当該ストロークに対する手書き図形認識プログラム１０５２の処理を終了する。
【００６３】
（手書き図形認識プログラムの処理内容２）
ここでは、手書き図形認識プログラム１０５２で実行される処理内容のうち図形の描画に関する処理の概要を説明する。
【００６４】
図１３に、ステップ８１８の判定結果が閉図形の場合であった場合の処理の概要を示す。図１３は手書きで六角形が描かれた後、対応するコンピュータ処理図形が表示画面上に描画されるまでに実行される処理内容の概要が示されている。途中までは、前述した頂点位置の設定に関する処理のイメージである。
【００６５】
ユーザが指やペンを用いて投影面１０１（操作入力面）に六角形を描画すると、その軌跡が描画スピードに応じた構成点１３０１の列として検出される。この構成点の検出は、位置検出装置１０２にて実現される。次に、ストロークを構成する構成点１３０１のうちの高密度部分１３０２が抽出される。そして、高密度部分１３０２毎に頂点位置が特定される（１３０３）。ここまでが、図８及び図９で説明した内容に対応する。
【００６６】
次に、手書き図形認識プログラム１０５２は、頂点テーブル７０１に格納されたｍ個（最大Ｍ個）の頂点を直線で結んだ整形多角形を形成する（１３０４）。この段階の整形多角形を、表示画面投影装置１０４を通じて投影面１０１に表示させることもできる。この整形多角形は、手書き図形を清書した図形に当たる。なお、ユーザの希望により、この整形多角形の外接矩形内にある頂点の数が同じ正多角形を描画することもできる（１３０５）。すなわち、手書きによる図形の描画でも、より美しく整形された正多角形を投影面１０１に表示させることができる。
【００６７】
図１４に、ステップ８１８の判定結果が開図形の場合であった場合の処理の概要を示す。図１４は、ほぼ六角形に近い開図形が手書きで描かれた後、対応するコンピュータ処理図形が表示画面上に描画されるまでに実行される処理内容の概要が示されている。途中までは、前述した頂点位置の設定に関する処理のイメージである。
【００６８】
この場合も、ユーザが指やペンを用いて投影面１０１（操作入力面）に六角形を描画すると、その軌跡が描画スピードに応じた構成点１４０１の列として検出される。この構成点の検出は、位置検出装置１０２にて実現される。次に、ストロークを構成する構成点１４０１のうちの高密度部分１４０２が抽出される。そして、高密度部分１４０２毎に頂点位置が特定される（１４０３）。
【００６９】
次に、手書き図形認識プログラム１０５２は、頂点テーブル７０１に格納されたｍ個（最大Ｍ個）の頂点を直線で結んだ整形多角形を形成する（１４０４）。この段階の整形多角形を、表示画面投影装置１０４を通じて投影面１０１に表示される。この整形多角形は、手書き図形を清書した図形に当たる。
【００７０】
（まとめ）
以上説明したように、本形態例に係る電子黒板システムを用いれば、パターンマッチング法では認識精度が低下するような手書き図形の場合でも、ユーザの意図した図形に自動的に整形して画面上に表示することが可能になる。
【００７１】
（その他の形態例）
前述の形態例の場合には、整形多角形の外接矩形内にある頂点の数に基づいて正多角形を表示しているが、ステップ８２０が終了した時点において頂点テーブル７０１に座標データが記憶されている頂点の数ｎを読み出し、当該数ｎに対応する正多角形を表示面に直接描画させる処理を行っても良い。
【００７２】
図１のシステム例の場合には、座標算出プログラム１０５１を制御用コンピュータ１０５に搭載しているが、当該プログラムは位置検出装置１０２内のコンピュータ又は当該位置検出装置１０２が取り付けられる枠体側のコンピュータに実行させても良い。また、座標算出プログラム１０５１だけでなく手書き図形認識プログラム１０５２も、位置検出装置１０２内のコンピュータ又は当該位置検出装置１０２が取り付けられる枠体側のコンピュータに実行させても良い。
【００７３】
図１のシステム例の場合には、投影面１０１上に画面が投影される例を説明した。しかし、表示形態はこれに限らず、プラズマディスプレイパネル（PDP）や液晶ディスプレイディスプレイ（LCD）でも構わない。
【００７４】
また、図１の場合には、電子黒板システムについて説明したが、タブレット型の入力装置についても本発明に係る手書き図形認識プログラムを適用することができる。
【００７５】
前述した手書き図形認識プログラムは、位置検出にタッチパネルや電磁誘導方式を用いるシステムにも適用することができる。
【符号の説明】
【００７６】
１０１    投影面
１０２    位置検出装置
１０３    人間の指
１０４    表示画面投影装置
１０５    制御用コンピュータ
１０５１  座標算出プログラム
１０５２  手書き図形認識プログラム
１０６    キーボード
１０７    表示装置
１０８    再帰性反射材
【図１】
0005560151.tif 000002
【図２】
0005560151.tif 000003
【図３】
0005560151.tif 000004
【図４】
0005560151.tif 000005
【図５】
0005560151.tif 000006
【図６】
0005560151.tif 000007
【図７】
0005560151.tif 000008
【図８】
0005560151.tif 000009
【図９】
0005560151.tif 000010
【図１０】
0005560151.tif 000011
【図１１】
0005560151.tif 000012
【図１２】
0005560151.tif 000013
【図１３】
0005560151.tif 000014
【図１４】
0005560151.tif 000015