(57)【要約】【課題】さまざまな大きさの点や太さの線がシート上に手書きで描かれていても、これら手書きの点と線を高精度に認識できるようにする。【解決手段】点と線の手書きが加えられたシートを読み取って、その画像データから点を認識し、該認識された点以外の画像データから線を認識する。点認識処理では、第一の大きさの点パターンを用いて点を検出し、第一の大きさより小さい第二の大きさの点パターンを用いて点を検出し、これら検出した点から、隣接する二点のうち小さい方の点を削除し、近傍に存在するほぼ同じ大きさの二点を削除し、さらに、第一の大きさより小さい点を削除する。線認識処理では、検出された点を除いた画像データをブロック分割し、ブロックごとに線分を検出し、検出された線分及び先に検出された点を連結する。【選択図】図１
2010099136.tif 000002
【特許請求の範囲】
【請求項１】
シート上に手書きされた点と該点を結ぶ線とを認識する手書き点と線の認識処理方法であって、
点と線の手書きが加えられたシートを読み取り、その画像データを入力する画像入力ステップと、前記入力された画像データから点を認識する点認識ステップと、前記認識された点以外の画像データから線を認識する線認識ステップとを有し、
前記点認識ステップは、
手書きの白抜き部分を黒で塗りつぶす塗りつぶしステップと、
第一の大きさの点パターンを用いて点を検出する第一点検出ステップと、
前記第一の大きさより小さい第二の大きさの点パターンを用いて点を検出する第二点検出ステップと、
を有することを特徴とする手書き点と線の認識処理方法。
【請求項２】
前記点認識ステップは、前記第一および第二点検出ステップで検出された点のうち、隣接あるいは近傍に存在する二点の大きさの比の値が所定の範囲にあるとき、当該二点を線の一部と見做して削除する線上点削除ステップを更に有することを特徴とする請求項１に記載の手書き点と線の認識処理方法。
【請求項３】
前記点認識ステップは、前記第一および第二点検出ステップで検出された点のうち、近傍に存在あるいは隣接する二点の大きさの比の値が所定の値より大きい場合に、小さい方の点を削除する近傍小点削除ステップを更に有することを特徴とする請求項１または２に記載の手書き点と線の認識処理方法。
【請求項４】
前記点認識ステップは、
前記第一および第二点検出ステップで検出された点のうち、近傍に存在あるいは隣接する二点の大きさの比の値が所定の値より大きい場合に、小さい方の点を削除する近傍小点削除ステップと、
前記第一および第二点検出ステップで検出された点のうち、隣接あるいは近傍に存在する二点の大きさの比の値が所定の範囲にあるとき、当該二点を線の一部と見做して削除する線上点削除ステップと、
前記近傍小点削除ステップ及び前記線上点削除ステップで削除されなかった点のうち、前記第一の大きさの点パターン用いて検出された点より小さい大きさを有する点を削除する小点削除ステップと、
を更に有することを特徴とする請求項１に記載の手書き点と線の認識処理方法。
【請求項５】
前記第一および第二点検出ステップは、
点パターンに多角形のテンプレートパターンを用い、該多角形のテンプレートパターンの大きさを初期設定するステップと、
多角形の中に黒画素が一定以上含まれているか判定し、含まれていると、多角形の大きさを拡大し、該拡大した多角形を所定の領域内で移動する処理を、多角形の中に黒画素が一定以上含まれなくなるまで繰り返すステップと、
前記多角形の中に黒画素が一定以上含まれなくなった場合に、その直前の大きさの多角形の位置と大きさを点と決定するステップと、
を有することを特徴とする請求項１乃至４のいずれか１項に記載の手書き点と線の認識処理方法。
【請求項６】
前記線認識ステップは、
検出された手書きの点を除いた画像データを複数ブロックに分割するブロック分割ステップと、
前記分割された各ブロック中の線分を検出する線分検出ステップと、
前記検出された線分及び前記点認識ステップで検出された点を連結する線分連結ステップと、
を有することを特徴とする請求項１乃至５のいずれか１項に記載の手書き点と線の認識処理方法。
【請求項７】
前記ブロック分割ステップは、
ブロックの境界が黒画素か否かを判定する黒画素判定ステップと、
前記黒画素判定ステップにおいて黒画素であると判定された場合に、境界の両側を黒画素、境界を白画素で塗りつぶす黒白黒塗りつぶしステップと、
からなることを特徴とする請求項６に記載の手書き点と線の認識処理方法。
【請求項８】
前記線分検出ステップは、
線分検出の処理対象とするブロックを選択するブロック選択ステップと、
黒画素を探索開始画素と設定するための探索画素設定ステップと、
黒画素の境界を追跡して線分を検出する黒境界探索ステップと、
前記追跡された線分の外接矩形の大きさを算出し、所定の大きさを満たさない線分を削除する線分削除ステップと、
線分内の黒画素の位置と、線分の重心を算出する線分重心取得ステップと、
を有することを特徴する請求項６に記載の手書き点と線の認識処理方法。
【請求項９】
前記線分連結ステップは、
連結すべき二線分間の距離が小さいか否かを判定する線分距離判定ステップと、
前記距離が小さい場合に、両線分間の重心を結ぶ方向と既に連結された複数の線分同士の重心を結ぶ方向の成す角度が小さいか否かを判定する方向性判定ステップと、
前記角度が小さい場合に、両線分間の最小外接矩形を設定する外接矩形設定ステップと、
前記設定した外接矩形の大きさを拡大する外接矩形拡大ステップと、
拡大した外接矩形内に、両線分の黒画素が存在するか否かを判定する黒画素存在判定ステップと、
前記黒画素存在判定ステップにおいて、両線分の黒画素が存在すると判定された場合、両線分を連結する連結ステップと、
を有することを特徴とする請求項６に記載の手書き点と線の認識処理方法。
【請求項１０】
前記画像入力ステップは、色地上に点と線の手書きが加えられたカラーシートを読み取り、そのカラー画像データを入力し、
前記カラー画像データから有彩色を取り除き、二値画像データを得る有彩色除去ステップを更に有し、
前記点認識ステップは、前記有彩色の除去された二値画像データから点を認識し、
前記線認識ステップは、認識された点以外の二値画像データから線を認識する、
ことを特徴とする請求項１乃至９のいずれか１項に記載の手書き点と線の認識処理方法。
【請求項１１】
前記有彩色除去ステップは、
処理対象画素を含む小領域の平均画素値を算出する平均色算出ステップと、
前記平均画素値と第一の閾値（ＴｈＢ）とを比較して全色の画素値が前記閾値より小さい場合に、当該領域をグレー領域と判定するグレー領域判定ステップと、
前記グレー領域判定ステップにおいてグレー領域と判定された処理対象画素の各画素値と第二の閾値（ＴｈＣ）とを比較して全色の画素値が前記第二の閾値より小さい場合に処理対象画素を黒画素と抽出し、そうでない場合には処理対象画素を有彩色として除去する第一黒画素判定ステップと、
前記グレー領域判定ステップにおいてグレー領域ではないと判定された場合に、処理対象画素の画素値を前記平均画素値を用いて補正する画素値補正ステップと、
前記画素値補正ステップにおいて補正された画素値と第三の閾値（ＴｈＤ）とを比較して補正された画素値すべてが前記第三の閾値より小さい場合に処理対象画素を黒画素と抽出し、そうでない場合には処理対象画素を有彩色として除去する第二黒画素判定ステップと、
を有することを特徴とする請求項１０に記載の手書き点と線の認識処理方法。
【請求項１２】
シート上に手書きされた点と該点を結ぶ線とを認識する手書き点と線の認識処理装置であって、
点と線の手書きが加えられたシートを読み取り、その画像データを入力する画像入力手段と、前記入力された画像データから点を認識する点認識手段と、前記認識された点以外の画像データから線を認識する線認識手段とを有し、
前記点認識手段は、
手書きの白抜き部分を黒で塗りつぶす塗りつぶし手段と、
第一の大きさの点パターンを用いて点を検出する第一点検出手段と、
前記第一の大きさより小さい第二の大きさの点パターンを用いて点を検出する第二点検出手段と、
を有することを特徴とする手書き点と線の認識処理装置。
【請求項１３】
前記点認識手段は、前記第一および第二点検出手段で検出された点のうち、隣接あるいは近傍に存在する二点の大きさの比の値が所定の範囲にあるとき、当該二点を線の一部と見做して削除する線上点削除手段を更に有することを特徴とする請求項１２に記載の手書き点と線の認識処理装置。
【請求項１４】
前記点認識手段は、前記第一および第二点検出手段で検出された点のうち、近傍に存在あるいは隣接する二点の大きさの比の値が所定の値より大きい場合に、小さい方の点を削除する近傍小点削除手段を更に有することを特徴とする請求項１２または１３に記載の手書き点と線の認識処理装置。
【請求項１５】
前記点認識手段は、
前記第一および第二点検出手段で検出された点のうち、近傍に存在あるいは隣接する二点の大きさの比の値が所定の値より大きい場合に、小さい方の点を削除する近傍小点削除手段と、
前記第一および第二点検出手段で検出された点のうち、隣接あるいは近傍に存在する二点の大きさの比の値が所定の範囲にあるとき、当該二点を線の一部と見做して削除する線上点削除手段と、
前記近傍小点削除手段及び前記線上点削除手段で削除されなかった点のうち、前記第一の大きさの点パターン用いて検出された点より小さい大きさを有する点を削除する小点削除手段と、
を更に有することを特徴とする請求項１２に記載の手書き点と線の認識処理装置。
【請求項１６】
前記第一および第二点検出手段は、
点パターンに多角形のテンプレートパターンを用い、該多角形のテンプレートパターンの大きさを初期設定する手段と、
多角形の中に黒画素が一定以上含まれているか判定し、含まれていると、多角形の大きさを拡大し、該拡大した多角形を所定の領域内で移動する処理を、多角形の中に黒画素が一定以上含まれなくなるまで繰り返す手段と、
前記多角形の中に黒画素が一定以上含まれなくなった場合に、その直前の大きさの多角形の位置と大きさを点と決定する手段と、
を有することを特徴とする請求項１２乃至１５のいずれか１項に記載の手書き点と線の認識処理装置。
【請求項１７】
前記線認識手段は、
検出された手書きの点を除いた画像データを複数ブロックに分割するブロック分割手段と、
前記分割された各ブロック中の線分を検出する線分検出手段と、
前記検出された線分及び前記点認識手段で検出された点を連結する線分連結手段と、
を有することを特徴とする請求項１２乃至１６のいずれか１項に記載の手書き点と線の認識処理装置。
【請求項１８】
前記ブロック分割手段は、
ブロックの境界が黒画素か否かを判定する黒画素判定手段と、
前記黒画素判定手段において黒画素であると判定された場合に、境界の両側を黒画素、境界を白画素で塗りつぶす黒白黒塗りつぶし手段と、
からなることを特徴とする請求項１７に記載の手書き点と線の認識処理装置。
【請求項１９】
前記線分検出手段は、
線分検出の処理対象とするブロックを選択するブロック選択手段と、
黒画素を探索開始画素と設定するための探索画素設定手段と、
黒画素の境界を追跡して線分を検出する黒境界探索手段と、
前記追跡された線分の外接矩形の大きさを算出し、所定の大きさを満たさない線分を削除する線分削除手段と、
線分内の黒画素の位置と、線分の重心を算出する線分重心取得手段と、
を有することを特徴する請求項１７に記載の手書き点と線の認識処理装置。
【請求項２０】
前記線分連結手段は、
連結すべき二線分間の距離が小さいか否かを判定する線分距離判定手段と、
前記距離が小さい場合に、両線分間の重心を結ぶ方向と既に連結された複数の線分同士の重心を結ぶ方向の成す角度が小さいか否かを判定する方向性判定手段と、
前記角度が小さい場合に、両線分間の最小外接矩形を設定する外接矩形設定手段と、
前記設定した外接矩形の大きさを拡大する外接矩形拡大手段と、
拡大した外接矩形内に、両線分の黒画素が存在するか否かを判定する黒画素存在判定手段と、
前記黒画素存在判定手段において、両線分の黒画素が存在すると判定された場合、両線分を連結する連結手段と、
を有することを特徴とする請求項１７に記載の手書き点と線の認識処理装置。
【請求項２１】
前記画像入力手段は、色地上に点と線の手書きが加えられたカラーミントを読み取り、そのカラー画像データを入力し、
前記カラー画像データから有彩色を取り除き、二値画像データを得る有彩色除去手段を更に有し、
前記点認識手段は、前記有彩色の除去された二値画像データから点を認識し、
前記線認識手段は、認識された点以外の二値画像データから線を認識する、
ことを特徴とする請求項１２乃至２０のいずれか１項に記載の手書き点と線の認識処理装置。
【請求項２２】
前記有彩色除去手段は、
処理対象画素を含む小領域の平均画素値を算出する平均色算出手段と、
前記平均画素値と第一の閾値（ＴｈＢ）とを比較して全色の画素値が前記閾値より小さい場合に，当該領域をグレー領域と判定するグレー領域判定手段と、
前記グレー領域判定手段においてグレー領域と判定された処理対象画素の各画素値と第二の閾値（ＴｈＣ）とを比較して全色の画素値が前記第二の閾値より小さい場合に処理対象画素を黒画素と抽出し，そうでない場合には処理対象画素を有彩色として除去する第一黒画素判定手段と、
前記グレー領域判定手段においてグレー領域ではないと判定された場合に，処理対象画素の画素値を前記平均画素値を用いて補正する画素値補正手段と、
前記画素値補正手段において補正された画素値と第三の閾値（ＴｈＤ）とを比較して補正された画素値すべてが前記第三の閾値より小さい場合に処理対象画素を黒画素と抽出し，そうでない場合には処理対象画素を有彩色として除去する第二黒画素判定手段と、
を有することを特徴とする請求項２１に記載の手書き点と線の認識処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シート上に手書きされた点と線を認識する手書き点と線の認識処理方法及び装置に関する。
【背景技術】
【０００２】
近年、コンピュータ技術やインターネット網の発展に伴い、例えばゴルファーのプレイ情報をデジタル化、グラフィック化して管理し、必要に応じてインターネット網を介してユーザ端末に配信するなどのサービスを行うゴルフプレイ情報処理システムが提案されている。
【０００３】
例えば、特許文献１には、ゴルファーが手書きグラフィックスコアカードを持ってプレイをし、各ホール毎に、該手書きグラフィックスコアカードに打球の軌跡を点と線で記入し、また、ホール打数とパット数等をマーク記入し、このゴルファーが記入した手書きグラフィックスコアカードをスキャナで読み取り、画像処理で手書き部分を抽出し、点と線を認識してゴルファーの打球の軌跡をデジタル化し、また、マーク部分を検出して打数やパット数等をデジタル処理し、ゴルファーに詳細なプレイ情報を提供するシステムが開示されている。
【０００４】
【特許文献１】特開２００８−１０２６２５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
手書きグラフィックスコアカードなど、一般に鉛筆等の筆記具でシート上に点と線を手書きする場合、筆圧の高い人や低い人、鉛筆の芯が細く尖っているもの、逆に削られていなくて太くなっているものなどがあり、シート上に手書きされた線の太さ、点の大きさには非常に大きな個人差がある。従来技術においては、シート上に手書きされたさまざまな大きさの点や太さの線を正確、確実に認識することができない問題があった。
【０００６】
本発明は、シート上に手書きされた点や線に大きな個人差がある場合にも、該手書きされた点や線を正確、確実に認識する高精度の手書き点と線の認識処理方法及び装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の手書き点と線の認識処理装置は、点と線の手書きが加えられたシートを読み取り、その画像データを入力する画像入力手段と、前記入力された画像データから点を認識する点認識手段と、前記認識された点以外の画像データから線を認識する線認識手段とを有する。ここで、点認識手段が、手書きの白抜き部分を黒で塗りつぶす塗りつぶし手段と、第一の大きさの点パターンを用いて点を検出する第一点検出手段と、前記第一の大きさより小さい第二の大きさの点パターンを用いて点を検出する第二点検出手段とを備えることを主要な特徴とする。
【０００８】
点認識手段は、更に、第一および第二点検出手段で検出された点のうち、近傍に存在あるいは隣接する二点の大きさの比の値が所定の値より大きい場合に、小さい方の点を削除する近傍小点削除手段、第一および第二点検出手段で検出された点のうち、隣接あるいは近傍に存在する二点の大きさの比の値が所定の範囲にあるとき、当該二点を線の一部と見做して削除する線上点削除手段、これら近傍小点削除手段及び線上点削除手段で削除されなかった点のうち、第一の大きさの点パターン用いて検出された点より小さい大きさを有する点を削除する小点削除手段などを有する。
【０００９】
第一および第二点検出手段は、点パターンに多角形のテンプレートパターンを用い、該多角形のテンプレートパターンの大きさを初期設定する手段と、多角形の中に黒画素が一定以上含まれているか判定し、含まれていると、多角形の大きさを拡大し、該拡大した多角形を所定の領域内で移動する処理を、多角形の中に黒画素が一定以上含まれなくなるまで繰り返す手段と、多角形の中に黒画素が一定以上含まれなくなった場合に、その直前の大きさの多角形の位置と大きさを点と決定する手段を有する。
【００１０】
線認識手段は、検出された手書きの点を除いた画像データを複数ブロックに分割するブロック分割手段と、前記分割された各ブロック中の線分を検出する線分検出手段と、前記検出された線分及び前記点認識手段で検出された点を連結する線分連結手段を有する。
【００１１】
ブロック分割手段は、ブロックの境界が黒画素か否かを判定する黒画素判定手段と、前記黒画素判定手段において黒画素であると判定された場合に、境界の両側を黒画素、境界を白画素で塗りつぶす黒白黒塗りつぶし手段とからなる。
【００１２】
線分検出手段は、線分検出の処理対象とするブロックを選択するブロック選択手段と、黒画素を探索開始画素と設定するための探索画素設定手段と、黒画素の境界を追跡して線分を検出する黒境界探索手段と、前記追跡された線分の外接矩形の大きさを算出し、所定の大きさを満たさない線分を削除する線分削除手段と、線分内の黒画素の位置と、線分の重心を算出する線分重心取得手段を有する。
【００１３】
線分連結手段は、連結すべき二線分間の距離が小さいか否かを判定する線分距離判定手段と、前記距離が小さい場合に、両線分間の重心を結ぶ方向と既に連結された複数の線分同士の重心を結ぶ方向の成す角度が小さいか否かを判定する方向性判定手段と、前記角度が小さい場合に、両線分間の最小外接矩形を設定する外接矩形設定手段と、前記設定した外接矩形の大きさを拡大する外接矩形拡大手段と、拡大した外接矩形内に、両線分の黒画素が存在するか否かを判定する黒画素存在判定手段と、前記黒画素存在判定手段において、両線分の黒画素が存在すると判定された場合、両線分を連結する連結手段を有する。
【００１４】
画像入力手段は、色地上に点と線の手書きが加えられたカラーシートを読み取り、そのカラー画像データを入力することでもよい。この場合、入力したカラー画像データから有彩色を取り除き、二値画像データを得る有彩色除去手段を備える。点認識手段は、前記有彩色の除去された二値画像データから点を認識し、線認識手段は、認識された点以外の二値画像データから線を認識するようにする。
【００１５】
有彩色除去手段は、処理対象画素を含む小領域の平均画素値を算出する平均色算出手段と、前記平均画素値と第一の閾値（ＴｈＢ）とを比較して全色の画素値が前記閾値より小さい場合に、当該領域をグレー領域と判定するグレー領域判定手段と、前記グレー領域判定手段においてグレー領域と判定された処理対象画素の各画素値と第二の閾値（ＴｈＣ）とを比較して全色の画素値が前記第二の閾値より小さい場合に処理対象画素を黒画素と抽出し、そうでない場合には処理対象画素を有彩色として除去する第一黒画素判定手段と、前記グレー領域判定手段においてグレー領域ではないと判定された場合に、処理対象画素の画素値を前記平均画素値を用いて補正する画素値補正手段と、前記画素値補正手段において補正された画素値と第三の閾値（ＴｈＤ）とを比較して補正された画素値すべてが前記第三の閾値より小さい場合に処理対象画素を黒画素と抽出し、そうでない場合には処理対象画素を有彩色として除去する第二黒画素判定手段を有する。
【００１６】
本発明の手書き点と線の認識処理方法も、基本的に同様の構成であるので、詳細は省略する。
【発明の効果】
【００１７】
本発明によれば、様々な大きさの点や太さの線がシート上に手書きで描かれていても、これら手書きの点と線を高精度に認識することができる。また、点と線を正確に繋ぐことができるので、点の順序を特定することができるようになる。具体的には、後の実施の形態の説明で明らかになる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の一実施の形態を図面を参照しながら詳細に説明する。なお、以下では、特許文献１に示されているような手書きグラフィックスコアカードをスキャナで読み込んで処理し、ゴルファーのプレイ情報をデジタル化、グラフィック化して管理するゴルフプレイ情報処理システムを対象とする。
【００１９】
＜手書きフォーム＞
ここでは、図２８に示すような手書きグラフィックスコアカードを手書きフォームとして用いるとする。図２８において、手書きグラフィックスコアカード１１は、ホールナンバ（例えば、Ｈole１）、距離（例えば、475Ｙ）、パーデータ（例えば、Ｐar５）、ティーグランドからグリーンまでのカラーホールレイアウト、グリーンのカラーレイアウト、ティーグランドからフェアウェイ各地点までの距離データ、フェアウェイ各地点からグリーン上のピン位置までの距離データ、グリーン上の距離データなどが印刷されているとともに、当該カラーゴルフホールレイアウトにおけるティグランドからグリーン上のピンにいたるボールの始点、飛球ライン、着地点、パッティングライン及びスコア記入欄（ホールスコア、パッティング数の記入欄）が設けられ、さらに、ＱＲコードなどの固有の識別コード１２が埋め込まれ、また、四隅には位置検出用のマーカーＡ〜Ｄが設けられている。一般にカラーホールレイアウトは、当該ホールのレイアウトを、ティグランド、フェアウェイ、ラフ、グリーン、バンカー、池、樹木等のエリアや存在物別に何色かの有彩色で色分けして印刷されている。このような手書きグラフィックスコアカード１１が、例えば１８ホール分、冊子上に綴られている。
【００２０】
ゴルファーは、各ホールごとに、手書きグラフィックスコアカード１１に、鉛筆等の筆記具でもって、図２９に示すように、ティグランドからグリーン上のピンにいたる打球の軌跡を点と線で手書きし、また、スコア記入欄における実際のホール打数とパット数を示す数字を手書きで丸印する。図２９は、当該ホール（Ｈole１）でのゴルファーの実際の打数は「５」、パット数は「２」であったことを示している。
【００２１】
＜システム構成＞
ゴルフプレイ情報処理システムでは、図２９のような点と線、丸印の手書きが加えられた手書きグラフィックスコアカード１１を、例えば１８ホール分読み込んで処理し、ゴルファーのプレイ情報をデジタル化、グラフィック化して管理する。本発明は、このようなゴルフプレイ情報処理システムにおいて、手書きグラフィックスコアカード上に手書きされた点や線に大きな個人差がある場合にも、該点や線を正確、確実に認識できるようにするものである。勿論、本発明は、手書きグラフィックスコアカードに限定されるものではなく、一般にシート上に手書きされた点と線の認識に広く利用することができる。
【００２２】
図１に、本発明の手書き点と線認識技術を適用したゴルフプレイ情報処理システムの装置構成例を示す。本ゴルフプレイ情報処理システムは、装置各部の動作を制御する制御部１００、有彩色除去部１１０、ＩＤ検出部１２０、画像補正部１３０、点認識部１４０、線認識部１５０、マーク認識部１６０、認識情報意味付け部１７０などの各処理部、点と線や丸印の手書きが加えられた手書きグラフィックスコアカードを読み取る画像入力装置（スキャナ）１８０、キーボードやマウスなどの操作部１９０、処理途中結果などを記憶する内部記憶装置（ＲＡＭ等）２００、処理結果であるゴルファーのプレイ情報などを記憶する外部記憶装置（ＨＤＤ等）２１０、外部記憶装置２１０に記憶されたゴルフのプレイ情報などを表示する表示装置２２０、同じくプリントアウトする印刷装置２３０、同じくインターネット網を介してユーザ端末に配信するモデム２４０、及び、これら各部を接続するバス（データバス、制御線等）２５０などで構成されている。
【００２３】
図１はコンピュータシステムと基本的に同様であり、制御部１００と各処理部１１０〜１７０の実体はＣＰＵである。ここで、制御部１００と各処理部１１０〜１７０のためのプログラムは、あらかじめ外部記憶装置２１０に保持されており、これを内部記憶装置２００にロードし、ＣＰＵで実行することで、制御部１００及び各処理部１１０〜１７０の機能が実現される。
【００２４】
図１において、外部記憶装置２１０は、ゴルフコースのレイアウトファイルも保持している。レイアウトファイルには、各ホールの領域マップ（ティー、フェアウェイ、ラフ、池、道路、バンカー、グリーン、ＯＢ）などとその縮尺（コースの大きさ）が含まれており、手書きされた点のある領域と、ティーからの距離を算出するために用いられる。図３０はレイアウトファイルの領域マップの一例を示したものである。
【００２５】
＜手書きフォームの処理手順＞
図２に、本ゴルフプレイ情報処理システムにおける手書きフォーム処理の全体的フローチャートを示す。
【００２６】
図２９のような点と線、丸印（チェックマーク）の手書きが加えられた手書きグラフィックスコアカード１１を、画像入力装置１８０を用いて読み取り、例えば、フルカラー２４ビットのカラー画像データを入力する（ステップ１００１）。入力されたカラー画像データは内部記憶装置２００に記憶される。このカラー画像データについて、制御部１００の制御下で、順次、以下の処理を実行する。この時、必要に応じ処理途中結果も内部記憶装置２００に記憶される。
【００２７】
まず、有彩色除去部１１０にて、カラー画像データから有彩色を取り除き、スコアカードに鉛筆等で手書きされた点と線や丸印の筆記情報、識別コード、位置検出用マーカーなどの黒の部分だけを抽出し、これらを黒画素とする二値画像データを生成する（ステップ１００２）。
【００２８】
ＩＤ検出部１２０では、二値画像データから二次元の識別コードをデコードし、管理ＩＤを検出する（ステップ１００３）。具体的には、二値画像データから画像中の白画素で囲まれた黒画素を含む領域を抽出し、この抽出した領域について、二次元コードをデコードすることで、当該フォームの電子データ上における固有の管理ＩＤを検出する。例えば、図２８。図２９のスコアカード１１の場合、識別コード１２をデコードすることで、「００２２９」が検出される。
【００２９】
管理ＩＤを検出した後、画像補正部１３０にて二値画像データの画像補正を行う（ステップ１００４）。画像補正は、画像の向きを正立させる画像正立と、画像のスキュー、位置ずれ、歪みを補正するレイアウト位置補正とからなる。このレイアウト位置補正に位置検出用マーカーが用いられる。
【００３０】
画像補正を行った後、点認識部１４０にて二値画像データから筆記情報中の点の認識を行い（ステップ１００５）、点の認識を行った後で、線認識部１５０にて線の認識を行い、点と線の連結情報を生成する（ステップ１００６）。本発明は、この点認識部１４０と線認識部１５０にかかわる。これについては、後で詳しく説明する。
【００３１】
点及び線の認識を行った後、マーク認識部１６０にて、二値画像データからスコア記入欄に加筆された丸印（チェックマーク）の認識を行う（ステップ１００７）。具体的には、外部記憶装置２１０に保持されているレイアウトファイルからスコア記入欄に対応する領域情報（スコアマーク位置）を取得し、その領域に対応する部分をレイアウト位置補正済みの二値画像データから切り出す。そして、ＯＭＲ処理を行ってマークの有無の認識を行う。
【００３２】
最後に、認識情報意味付け部１７０では、認識した点の位置やマークの位置と、レイアウトファイル内のレイアウト情報により、点が属している位置や領域（フェアウェイ、ラフ、バンカー、グリーン等）、マークが示している数字（ホール打数、パット数）などを得る（ステップ１００８）。
【００３３】
以上の処理を、例えば、１８ホール分の手書きグラフィックスコアカードについて繰り返す。そして、最終的に各ゴルファーのデジタル化、グラフィック化したプレイ情報を生成する。これについては、例えば特許文献１に詳述されているので、ここでは省略する。このゴルファーのプレイ情報は外部記憶装置２１０に記憶され、必要に応じて表示装置２２０に表示されたり、印刷装置２３０でプリントアウトされたり、あるいはモデム２４０を介してユーザ端末に配信されたりする。
以下、処理部１１０〜１６０の処理について詳述する。
【００３４】
＜有彩色除去＞
有彩色除去部１１０は、画像入力装置１８０で読み取られた手書きグラフィックスコアカードのカラーデジタル画像データから、予めスコアカードに印刷されていた有彩色を除去し、スコアカードに加筆された黒の部分（点と線や丸印）や、予めスコアカードに印刷されている黒の部分（識別コード、位置検出用マーカー）だけを抽出し、これらを黒画素とする二値画像データを出力する。
【００３５】
図３は有彩色除去処理の全体フローチャートである。下地の有彩色の上に鉛筆などで筆記した場合、鉛筆のグレーの色に下地の色がかぶるので、単純な閾値判定では精度よくグレーを抽出し、有彩色を除去することかできない。そこで、処理対象画素を中心として小領域（例えば、５×５画素）で全画素の平均値を算出する（ステップ２００１）。そして、この平均値を閾値判定して黒画素抽出を行い、有彩色除去された二値画像データを得る（ステップ２００２）。
【００３６】
図４に有彩色除去の処理詳細フローチャートを示す。カラーデジタル画像データを、例えば、左から右、上から下にスキャンし、各画素を処理対象画素として、未処理画素がなくなるまで、以下の処理を繰り返す（ステップ２１０１）。まず、処理対象画素を中心とした小領域（例えば、５×５画素）について、各色成分（Ｒ，Ｇ，Ｂ）ごとに、当該領域の全画素の平均画素値を算出する（ステップ２１０２）。この平均画素値をＲａ，Ｇａ，Ｂａとする。そして、ＴｈＢを所定の閾値として、Ｒａ＜ＴｈＢかつＧａ＜ＴｈＢかつＢａ＜ＴｈＢ（条件１）を満たすか判定し（ステップ２１０３）、満たす場合、当該領域はグレー領域と判定し、次に、処理対象画素の画素値Ｒ，Ｇ，Ｂが、ＴｈＣを別の所定の閾値として、Ｒ＜ＴｈＣかつＧ＜ＴｈＣかつＢ＜ＴｈＣ（条件２）を満たすか判定し（ステップ２１０４）、満たす場合、処理対象画素を黒画素として抽出する（ステップ２１０５）。また、条件１が満たされない場合、Ｃｏを所定の係数として、Ｒｃ＝Ｒ＋Ｃｏ（２５５−Ｒａ），Ｇｃ＝Ｇ＋Ｃｏ（２５５−Ｇａ），Ｂｃ＝Ｂ＋Ｃｏ（２５５−Ｂａ）を計算し（ステップ２１０６）、次に、ＴｈＤを別の所定の閾値として、Ｒｃ＜ＴｈＤかつＧｃ＜ＴｈＤかつＢｃ＜ＴｈＤ（条件３）を満たすか判定し（ステップ２１０７）、満たす場合、処理対象画素を黒画素として抽出する（ステップ２１０５）。一方、条件２あるいは条件３が満たされない場合には、処理対象画素は有彩色であるとして除去する（ステップ２１０８）。すなわち、処理対象画素を白画素とする。
【００３７】
ここで、条件１が満たされ、条件２も満たされる場合は、濃く描かれた黒である。一方、条件１が満たされ、条件２が満たされない場合は、グレー領域にある色画素とみなされる。また、条件１が満たされず、条件３が満たされた場合は、色地上に描かれた薄い黒とみなされる。条件１も条件３も満たされない場合は、当該領域は色であり、処理対象画素は色画素と判断される。
【００３８】
＜ＩＤ検出＞
ＩＤ検出部１２０は、有彩色除去された二値画像データを入力して、手書きグラフィックスコアカードに印刷されている二次元識別コードのＩＤを検出する。
図５はＩＤ検出処理の全体フローチャートである。二次元識別コードは黒で印刷されているので有彩色除去処理において除去されずに残っている。このため、有彩色除去された二値画像データは、二次元識別コードを含んでいる。まず、二値画像データから二次元識別コードが含まれる領域を抽出する（ステップ３００１）。その後、抽出した全領域に対して二次識別コードの読み取りを行い、正しく読めたものをＩＤとして検出する（ステップ３００２）。
【００３９】
図６に領域抽出処理の詳細フローチャートを示す。領域抽出は、二値画像データ中の白画素で囲まれた黒画素を含む領域を検出することで行う。まず、連結黒画素のラベル付けを行う（ステップ３１０１）。具体的には、例えば、二値画素データを左上の原点から右へ、上から下へと走査する。そして、左上、上、左の画素が白画素であり、現在注目している画素が黒画素である場合に、その黒画素に新たなラベルをつける。それ以外の黒画素の場合は、その左上、上、左のいずれかにある黒画素につけられたラベルを注目している黒画素につける。図７（ａ）は、これを示しており、１，２が黒画素につけられたラベルである。次に、同一のラベルを有する連結黒画素群を囲む外接矩形座標を検出する（ステップ３１０２）。これが、図７（ｂ）である。次に、各外接矩形に重なりや接触がある外接矩形同士を統合し（同一ラベルに統合）、新たな外接矩形座標を求める（ステップ３１０３）。これが、図７（ｃ）である。最後に、二次元識別コードの大きさとしてありえない大きさの外接矩形を排除するため、所定の範囲の大きさの外接矩形を抽出する（ステップ３１０４）。
【００４０】
ＩＤは、抽出された矩形領域全てに対してデコードを行うことで検出する。あらかじめ、２次元識別コードの位置がわかっているならば所定の位置にある矩形領域のみにデコードを行えばよいが、スコアカードのレイアウトによってどこに２次元識別コードが存在するかわからない場合がある。そこで、検出した矩形領域すべてに対してデコードを行い、デコードできたものをＩＤとして検出するようにする。デコードの詳細は、ＱＲコードの場合は自動認識協会発行のＱＲコードの仕様書が参考になる。
【００４１】
＜画像補正＞
画像補正部１３０は、ＩＤ検出後、有彩色除去された二値画像データについて、点や線を抽出し認識するに先立って補正処理を行う。
【００４２】
図８は画像補正処理の全体フローチャートである。まず、有彩色除去された二値画像データの向を正立させる（ステップ４００１）。次に、この画像正立させた二値画像データについてレイアウト位置補正を行う（ステップ４００２）。
【００４３】
図９に画像正立処理の詳細フローチャートを示す。画像正立処理は、間違った向きで読取られた画像を正しい向きに正立させるものである。まず、読取られたカラー画像データに対応する有彩色除去済みの二値画像データについてＯＣＲ処理を行い（ステップ４１０１）、その結果を保存しておく（ステップ４１０２）。次に、該二値画像データを、順次、９０度ずつ回転処理し（ステップ４１０３，４１０４）、同様にＯＣＲ処理を行い（ステップ４１０３）、それらの結果を保存する（ステップ４１０２）。そして、４方向でＯＣＲ処理がなされたならば（ステップ４１０４）、次に、ＯＣＲ処理の結果のひとつの尺度である確信度を用いて二値画像データの正しい方向を判定する（ステップ４１０５）。確信度とは認識した文字等の確からしさであり、この画像方向判定に使用する数値は、各文字等の確信度の平均である。この平均の確信度がもっとも大きい値を持つ方向で画像は正立すると判定し、二値画像データを正立させる。
【００４４】
図１０にレイアウト位置補正処理の詳細フローチャートを示す。レイアウト位置補正処理では、正しいコースレイアウトと重ね合わせができるように、正立させた二値画像データのスキュー、位置ずれ、歪みを補正する。
【００４５】
まず、レイアウトファイルからスコアカード上の４箇所の理想のマーカー位置情報を入力する（ステップ４２０１）。次に、二値画像データから位置検出用マーカーＡ，Ｂ，Ｃ，Ｄを検出する（ステップ４２０２）。図１１にマーカー検出法の一例を示す。Ａのマーカーを例に説明すると、まず、斜め走査により、マーカーの左上の頂点となる黒画素（Ａ０）を探索する。次に、この黒画素の位置から右斜め下４５度の方向で黒画素の終点（Ａ１）を探索する。この連続した黒画素の長さ（１）と理想のマーカーの長さを比較し、ほぼ等しければ、Ａ０とＡ１の中点をＭとする。次に、垂直方向の黒画素の長さ（２）と水平方向の黒画素の長さ（３）を検出する。同様に、理想のマーカーの長さと比較し、それぞれがほぼ等しければＡをマーカーと判定する。マーカーＢ，Ｃ，Ｄについても同様に行って、４箇所のマーカーを検出する。これで、理想マーカーと画像マーカーの位置の対応付けができた。
【００４６】
最後に、二値画像データにアフィン変換を行う（ステップ４２０３）。これを図１２に示す。マーカーＡ，Ｂ，Ｃ，Ｄからなる四角形を三角形ＡＢＣ、三角形ＢＣＤの二つの三角形に分割し、それぞれアフィン変換を施して４箇所のマーカーを基準としたレイアウト位置補正を完了する。
このようにレイアウト位置補正を行えば、二値画像データから点を認識するべき領域や丸印のＯＭＲを行う領域を正確に切り出すことができる。
【００４７】
＜点の認識＞
点認識部１４０は、画像成立及びレイアウト位置補正された二値画像データから点の認識を行う。本発明は、特にこの点認識部１４０と次の線認識部１５０の処理にかかわる。
【００４８】
図１３は本発明にかかる点認識処理の一実施例の全体フローチャートを示す。まず、画像正立及びレイアウト位置補正された二値画像データから加筆領域を抽出する（ステップ５００１）。具体的には、レイアウトファイルから加筆領域を抽出すべき領域を取得し、その領域に対応する部分を画像成立及びレイアウト位置補正済みの二値画像データから切り出す。切り出した二値画像データには、手書きの点とそれらをつなぐ線とが存在する。ここで、手書きの点は、黒く塗りつぶすという動作で筆記されるが、中には黒く塗りつぶされていない部分も存在する。そこで、黒で囲まれている白い部分を塗りつぶす（ステップ５００２）。次に、所定の大きさ以上の第一の点（黒点）の検出を行う（ステップ５００３）。次に、第一の点より小さい点の検出を行う（ステップ５００４）。そして、これら検出された第一の点と第二の点を点候補として、網羅的に近傍小点削除（ステップ５００５）、線上点削除（ステップ５００６）、小点削除（ステップ５００７）を行い、残った点候補を最終的に点と認識する。
【００４９】
以下、第一点検出、近傍小点削除、線上点削除、小点削除の各処理について詳しく説明する。第二点検出の処理は第一点検出の処理と基本的に同じである。
≪第一点検出≫
点の直径は線の太さより大きいことが前提である。ここでは、入力画像の解像度が３００ｄｐｉとして、検出したい点の最小の大きさは、直径１２ドット（１２画素）とする。
【００５０】
第一点検出処理では、所定の大きさの点パターン（テンプレートパターン）を用いて、検出したい点の最小の大きさ（直径１２画素）以上の点を検出する。図１４に点パターンの一例を示す。ここでは、図１４（ａ）に示す正方形の四つの角を切り取った八角形のテンプレートを用いるとする。第一点検出は、この八角形の小領域内に黒画素が、該小領域内の全画素に対する割合（黒画素率）が所定値以上ある場合に点が検出されたとみなす。第二点検出も基本的に同じである。両者の相違は、第一点検出では、八角形の初期の大きさを、八角形の外接正方形の辺長１２画素とするのに対し、第二点検出では、八角形の外接正方形の辺長８画素とすることである。
【００５１】
図１５に第一点検出処理の詳細フローチャートを示す。二値画像データの加筆領域について、例えば、左から右、上から下へと順次スキャンし、未処理画素が存在する間、以下の処理を繰り返す（ステップ５１０１）。
【００５２】
まず、八角形のテンプレートパターンの大きさを、検出したい最小の点の大きさに初期設定する（ステップ５１０２）。ここでは、八角形の外接正方形の一辺の長さ（画素数）を１２画素と設定する。次に、八角形の中に黒画素が一定以上あるか判定する（ステップ５１０３）。すなわち、八角形の中の全画素数に対して黒画素数がどれだけ含まれているか判定する。そして、八角形の中に黒画素が一定以上ない場合にはステップ５１０１に戻るが、黒画素が所定の割合（例えば８０％）以上含まれていたら次の処理に進む。図１６（ａ）は、八角形の中に黒画素が一定以上ある場合の一例を示している。
【００５３】
八角形の中に黒画素が一定以上あった場合、すなわち、初期設定の八角形（テンプレート）で少なくとも検出しようとする点の位置が検出されたならば、該八角形の大きさを上下左右方向に１画素ずつ拡大する（ステップ５１０４）。図１６（ｂ）はこれを示している。
【００５４】
次に、八角形の移動領域を設定する（ステップ５１０５）。図１６（ｃ）はこれを示している。例えば、八角形の現在位置より、右方向、下方向に４画素ずつ大きくした矩形領域を移動領域とする。この時、現在の八角形の大きさと位置を記憶しておく。次に、この移動領域内で、八角形を上下左右方向に１画素ずつずらしながら移動し（ステップ５１０６）、その八角形の中に黒画素が一定以上（例えば８０％）あるか判定する（ステップ５１０７）。図１６（ｄ）はこれを示している。
【００５５】
ステップ５１０７で八角形の中に黒画素が一定以上あると判定された場合には、その時点でステップ５１０４に戻る。また、八角形の中の黒画素が一定以上ない場合には、設定した移動領域内に未移動位置があるか判定し（ステップ５１０８）、未移動位置があれば、ステップ５１０６，５１０７を繰り返し、八角形の中に黒画素が一定以上あると判定された場合には、同様に、その時点でステップ５１０４に戻る。すなわち、検出しようとする点の実際の大きさが分かるまで、八角形の拡大と、その八角形の中の黒画素率の判定を繰り返す。
【００５６】
八角形の拡大処理と黒画素率の判定処理を繰り返し、八角形の中の黒画素が一定以上にならなくなり、移動領域内に未移動位置がなくなったときに、検出しようとする一つの点の処理を打ち切る（ステップ５１０８でＮＯ）。そして、そのときステップ５１０５で記憶した八角形の大きさと位置を、一つの点の大きさと位置として決定する（ステップ１１０９）。すなわち、黒画素率が所定値以上であった最大の八角形の大きさとその位置を点として検出する。
【００５７】
次に、後続の点認識に影響しないように、二値画像データ内の、ステップ１１０９で決定した八角形の黒画素を白画素に置き換える（ステップ５１１０）。その後、ステップ５１０１に戻り、次の未処理の画素へ進む。以下、同様の処理を繰り返して第１の点を検出する。
【００５８】
先に述べたように、第二の点検出処理は、図１５の第一点検出処理と同様のフローチャートでよい。相違点は、八角形（テンプレートパターン）の初期の大きさが第一点検出の場合より小さく、例えば、八角形の外接正方形の一辺の長さを８画素と設定することである。この第二点検出により、線が太い場合に大きさがある程度揃った点（例えば、８〜１１画素）が隣接して多数検出される。この大きさが揃った点が隣接しているということを利用して、後述の線上点削除処理で、線の一部が誤って点として検出される場合に、それらの点を削除する。
【００５９】
≪近傍小点削除≫
近傍小点削除処理は、近傍に存在または隣接する二点の大きさの比の値が所定の閾値より大きい場合、小さい方の点を削除するものである。具体的には、近傍に存在または隣接
する大きな八角形の点の大きさをＤ、小さい八角形の点の大きさをｄとし、Ｄ／ｄが所定の値（例えば１．５）以上であるときに小さい八角形の点を削除して大きい八角形の点だけを残す。
【００６０】
手書きの点はいびつな形状のものも多く、一つの点が大きな点とそれに隣接した小さな点に分割されて検出されることがある。図１７は、黒領域が手書きの一つの点であるが、形状がいびつであるため、辺長が２０画素の大きな八角形の点とそれに隣接した辺長が１２画素の小さな八角形の点とに分割されて検出された例を示している。近傍小点削除処理により、辺長が１２画素の小さい八角形の点が削除されて、辺長が２０画素の大きな八角形の点だけが残り、一つの手書き点に対して一つの点が認識される。
【００６１】
近傍小点削除処理では、基本的に検出された第１の点と第２の点を全て点候補として、その取り得る２つの点候補の全ての組み合わせについて網羅的に所定の条件が満たすか判定し、満たす場合、２つの点候補の一方を削除する。例えば、第一の点としてＡ，Ｂ，Ｃの３つが検出され、第二の点としてＤ，Ｅ，Ｆ，Ｇの４つが検出されたとすると、これらＡ〜Ｇ７つの点をすべて点候補とする。そして、まず、点Ａを第１の点候補とし、Ｂ〜Ｇを第２の点候補として、順次、ＡとＢ，ＡとＣ，…，ＡとＧの組を選択して、所定の条件が満たすか判定する。次に、点Ｂを第１の点候補とし、Ｃ〜Ｇを第２の点候補として、順次、ＢとＣ，ＢとＤ，…，ＢとＧの組みを選択して、所定の条件か満たすか判定する。以下、点Ｆを第１の点候補、Ｇを第２の点候補として、ＦとＧの組が所定の条件を満たすか判定するまで、同様の処理を繰り返す。
【００６２】
図１８に近傍小点削除処理の詳細フローチャートを示す。検出された第１の点と第２の点を点候補として以下の処理を行う。まず、未処理の第１の点候補があるか判定し（ステップ５２０１）、あれば、その一つの第１の点候補を選択する（ステップ５２０２）。次に、未処理の第２の点候補があるか判定し（ステップ５２０３）、あれば、その一つの第２の点候補を選択する（ステップ５２０４）。この選択された第１の点候補と第２の点候補が隣接しているか判定する（ステップ５２０５）。隣接していない場合、ステップ５２０３に戻り、次の第２の点候補の選択に進む。そして、ステップ５２０３〜５２０５の処理を繰り返し、着目する第１の点候補に対して、いずれの第２の点候補も隣接していない場合、ステップ５２０１に戻り、次の第１の点候補の選択に進む。
【００６３】
ステップ５２０５で、第１の点候補と第２の点候補が隣接していると判定された場合には、この二つの点候補の大きさの比の値が所定の閾値Ｃｄより大きいか判定する（ステップ５２０６）。大きくない場合、ステップ５２０３に戻る。一方、大きかった場合には、二つの点候補のいずれかが小さいか判定し（ステップ５２０７）、小さい方の点候補を削除する（ステップ５２０８，５２０９）。そして、第１の点候補を削除した場合にはステップ５２０１に戻る。また、第２の点候補を削除した場合には、ステップ５２０３に戻り、着目する第１の点候補に隣接して別の第２の点候補が存在するか見に行く。
以上の処理を、未処理の第１の点候補があるまで繰り返し、未処理の第１の点候補がなくなると、近傍小点削除処理を終了とする。
【００６４】
なお、近傍小点削除処理では、検出された第１の点と第２の点を全て点候補と見做すとしたが、第１の点のみを処理の対象とすることでもよい。この場合、例えば、一つの手書き点に対して、辺長が１４画素の大きな八角形の点（第１の点）とそれに隣接した辺長が８画素の小さな八角形の点（第２の点）が検出された場合に、８画素の小さな八角形の点は、近傍小点削除処理で削除されずにそのまま残るが、このような点は後の小点削除処理で削除すればよい。
【００６５】
≪線上点削除≫
線上点削除処理は、隣接あるいは近傍に存在する二点の大きさの比の値が所定の範囲内にあるとき、これら二点は線の一部と見做して削除するものである。具体的には、隣接あるいは近傍に存在する二つの八角形の点のペアについて、一方の八角形の点の大きさをＤ１、他の八角形の点の大きさをＤ２として、Ｄ２／Ｄ１あるいはＤ１／Ｄ２が所定の範囲内（例えば、２／３〜３／２）にあるとき、この二つの八角形の点のペアは本来線の一部を構成し、それが誤って点として検出されたと見做して削除する。
【００６６】
鉛筆などによる手書きでは、筆圧が高い人、低い人、鉛筆の芯が細くとがっているもの、削られていなくて芯が太くなっているものなどがあり、人の描く線の太さ、点の大きさには非常に大きな個人差がある。しかしながら、線と点をつなぐ場合、人は線の太さより明確に大きい点を描く傾向にある。したがって、線が細く点が比較的小さい人の点を検出しようとすると、その点の大きさは、太い線の太さより小さくなってしまい、太い線の中にたくさんの点を検出する弊害が発生する。また、人の描く線の太さは太くなったり細くなったりすることがあり、線の途中で線が太くなり、孤立した点が検出されることもある。
【００６７】
図１９（ａ）は、線が太くて、該線の部分が誤って多数の点（第１の点）として検出される例で、八角形ａ〜ｇがそれを示している。八角形ａ〜ｇは、いずれもほぼ同じ大きさで、互いに隣接して数珠繋ぎになっている。線上点削除処理により、このような八角形ａ〜ｇの点列はすべて削除される。八角形ｈは、本来正しく検出されるべき点であり、これは、八角形ａ〜ｇの点に比べて十分な大きさを持つので、線上点削除処理で削除されることはない。なお、八角形ｇの点は、八角形ｈとの大小比較により、先の近傍小点削除処理で削除することでもよい。
【００６８】
図１９（ｂ）は、線の途中が一部太くなり、その部分が誤って孤立した点（第１の点）として検出される例で、八角形ｎがそれを示している。線上点削除処理により、八角形ｎのような点も削除される。すなわち、八角形ｎは孤立しているが、第２点検出処理により、該八角形ｎの点の近傍に、該八角形ｎよりやや小さい八角形ｍの点（第２の点）が検出される。なお、八角形ｍと同様の点（第２の点）が、八角形ｎの前後に多数検出されるが、図１９（ｂ）では省略してある。線上点削除処理により、八角形ｍとｎのペアが削除される。このように、第２点検出処理で検出された点を参照することにより、線が途中で太くなり、その部分が第１点検出処理で誤って孤立した点として検出された場合にも、その点を削除することができる。八角形ｏの点は、本来正しく検出されるべき点で、これは十分な大きさを持つので、この近傍に第２点検出処理で検出された小さな八角形の点が存在しても削除されない。
【００６９】
なお、八角形ｎも十分な大きさを持つ場合には削除されない。すなわち、この場合は、本来の点と見做すことにする。実際には、このようなケースはほとんどないので、問題はない。
【００７０】
線上点削除処理は近傍小点削除処理と同様に、基本的に検出された第１の点と第２の点を全て点候補として、その取り得る２つの点候補の全ての組み合わせについて網羅的に所定の条件（例えば、Ｄ２／Ｄ１あるいはＤ１／Ｄ２が２／３〜３／２の間）が満たすか判定し、満たす場合、２つの点候補の一方を削除する。
【００７１】
図２０に線上点削除処理の詳細フローチャートを示す。検出された第１の点と第２の点を点候補として以下の処理を行う。第１の点候補、第２の点候補の意味は、先の近傍小点削除処理の場合と基本的に同じである。まず、未処理の第１の点候補があるか判定し（ステップ５３０１）、あれば、その一つの第１の点候補を選択する（ステップ５３０２）。次に、未処理の第２の点候補があるか判定し（ステップ５３０３）、あれば、その一つの第２の点候補を選択する（ステップ５３０４）。この選択された第１の点候補と第２の点候補が隣接あるいは近傍にあるか判定する（ステップ５３０５）。隣接や近傍にない場合、ステップ５３０３に戻り、次の第２の点候補の選択に進む。そして、ステップ５３０３〜５３０５の処理を繰り返し、着目する第１の点候補に対して、いずれの第２の点候補も隣接や近傍にいない場合、ステップ５３０１に戻り、次の第１の点候補の選択に進む。
【００７２】
ステップ５３０５で、第１の点候補と第２の点候補が隣接や近傍にあると判定された場合には、この二つの点候補の大きさの比の値が所定の範囲内（例えば２／３〜３／２）にあるか判定する（ステップ５３０６）。所定の範囲内にない場合、ステップ５３０３に戻る。一方、所定の範囲内であった場合には、この二つの点候補を削除する（ステップ５３０７）。そして、ステップ５３０１に戻る。この場合、この時点で未処理として残っている点候補を処理対象として、その一つを第１の点候補とし、残りを第２の点候補とする。
以上の処理を未処理の第１の点候補があるまで繰り返し、未処理の第１の点候補がなくなると、線上点削除処理を終了とする。
【００７３】
≪小点削除≫
小点削除処理は、第１点検検出処理で検出したい点の最小の大きさ（ここでは１２画素）より小さい点をすべて削除するものである。近傍小点削除処理と線上点削除処理の順番は、どちらが先でもあとでもよいが、小点削除処理は最後に実施する。
【００７４】
小点削除処理では、近傍小点削除処理と線上点削除処理で削除されずに残った全ての点候補について、その大きさが所定の値（１２画素）以上が閾値判定して、所定の値より小さいものを削除すればよいので、処理フローチャートは省略する。
【００７５】
上記の点認識処理により、シート上に、さまざまな大小の点、いびつな点、さまざまな太さの線が手書きされていても、正確に本来の点だけを抽出することができる。
【００７６】
以上のようにして抽出された点の領域情報（座標、大きさ）を内部記憶装置２００に記憶する。また、後の線認識処理で、該点領域を線として認識しないように、二値画像データ内の点に該当する領域を白で塗りつぶす。
【００７７】
＜線の認識＞
線認識部１５０は、点領域が白画素で塗りつぶされた二値画像データから線分を検出し、点認識部１４０で検出された点と該線分を連結する。
【００７８】
図２１に線認識処理の一実施例の全体フローチャートを示す。まず、点領域が白画素で塗りつぶされた二値画像データを複数のブロックに分割する（ステップ６００１）。次に、各ブロックごとに線分を検出する（ステップ６００２）。最後に、線分同士を連結する（ステップ６００３）。この時、点認識処理で得られた点情報（座標、大きさ）をもとに、点として検出された領域も線分の一つとして連結し、点と線の連結情報を得る。以下、各処理について詳しく説明する。
【００７９】
≪ブロック分割≫
ブロック分割処理では、二値画像データを複数ブロックに分割する。ここでは、１ブロックの大きさは２４×２４画素とする。また、各ブロックの領域内に黒画素の塊があるかどうかを探索するために、各ブロックの境界を１画素幅の白で塗りつぶす。こうすると黒画素の追跡でブロックの境界を意識する必要がなくなるため、処理が速くなる。ただし、線分が細い場合にはブロックの境界を白で塗りつぶすと線が消えてしまい、後で行う線ブロックの連結がうまくいかない可能性がある。そこで、ブロックの境界を白で塗りつぶす際には、塗りつぶす画素が黒画素である場合にのみ両側を黒画素ではさんだ黒白黒で境界を塗りつぶすことにする。このようにすると、線が細い場合でも線が消えることなく追跡可能になり、線の認識を精度良く行うことが可能になる。
【００８０】
図２２にブロック分割処理の詳細フローチャートを示す。まず、二値画像データについて２４×２４画素単位に１画素幅の境界を設定する（ステップ６１０１）。次に、この境界上の画素を塗りつぶし画素として選択し（ステップ６１０２）、該塗りつぶし画素が黒画素か判定する（ステップ６１０３）。塗りつぶし画素が白画素の場合には、そのままとする。一方、塗りつぶし画素が黒画素の場合には、当該黒画素を白画素とし、その両側の画素の白画素のものを黒画素とする（ステップ６１０４）。次に、塗りつぶし対象画素が、またあるか判定し（ステップ６１０５）、あれば、ステップ６１０２に戻る。以下、塗りつぶし対象画素がなくなるまで、ステップ６１０２〜６１０５を繰り返す。
【００８１】
図２３は塗りつぶし処理のイメージを示したもので、図２３（ａ）が塗りつぶし前の状態、図２３（ｂ）が塗りつぶし後の状態を示す。図２３（ａ）において、破線がブロック境界である。この境界上の画素を塗りつぶし画素として、該画素が黒画素の場合、それを白画素とすると共に、その両側の画素の、白画素のものを黒画素とする。その結果、塗りつぶし後は、図２３（ｂ）のようになる。
【００８２】
図２４にブロック分割処理後の画像のイメージを示す。図２４の場合、画像は２４×２４画素の大きさの９ブロックに分割され、各ブロックの境界は１画素幅の白で区分されている。なお、図２４では、線分は省略してある。
【００８３】
≪線分の検出≫
線分の検出処理では、各ブロックでの線分の検出を行う。線ブロックごとに、黒画素が検出されたらその境界を追跡し、線分の境界とその位置を検出する。線分の境界が検出できたら、その外接矩形の大きさを算出し、所定の大きさ以下(例えば矩形の辺の大きさが２以下)の線分を削除する。次に線分の境界の内部の黒画素の位置をすべて検出する。それと同時に線分の重心位置を算出する。このとき、一つのブロックに複数の線分が検出されることもありうる。
【００８４】
図２５に線分検出処理の使用際フローチャートを示す。まず、一つのブロックを選択する（ステップ６２０１）。そして、線分探索すべき画素を設定する（ステップ６２０２）。次に、この探索画素が未処理の黒画素か判定し（ステップ６２０３）、未処理の黒画素でない場合にはステップ６２０２に戻る。一方、ステップ６２０３で、未処理の黒画素が検出されたなら、該黒画素を始点に黒境界追跡（黒輪郭追跡）を行って、線分の境界と、その位置を検出し（ステップ６２０４）、線分の外接矩形の大きさを算出する（ステップ６２０５）。そして、算出した外接矩形の大きさが所定の大きさより大きいか判定し（ステップ６２０６）、所定の大きさ以下の場合、当該検出された線分を削除して（ステップ６２０７）、ステップ６２０２に戻る。外接矩形の大きさが所定の大きさより大きい場合、該線分の境界内部の黒画素の位置をすべて検出するとともに、該線分の重心位置を算出する（ステップ６２０８）。その後、当該ブロック内の全画素を処理したか判定し（ステップ６２０９）、未処理の画素があればステップ６２０２に戻る。
【００８５】
一つのブロックについて、ステップ６２０２〜６２０９の処理を繰り返し、全画素を処理すると、全ブロック処理したか判定し（ステップ６２１０）、未処理のブロックがあれば、ステップ６２０１に戻る。以下、各ブロックについて同様の処理を繰り返す。このとき、一つのブロックで複数の線分が検出されることも当然ありうる。
【００８６】
≪線分の連結≫
線分の連結処理では、ブロックごとに検出された線分同士を連結する。このとき、点の認識処理において点として検出された領域も線分の一つとして連結対象とする。線分同士の連結は、二つの線分の外接矩形がある所定の距離以上離れている場合は行わない。また、連結の対象となる一方の線分が他の線分と連結している場合は、連結されている二つの線分同士の重心を結ぶ線の方向と連結しようとしている二つの重心を結ぶ線の方向とが所定の角度以上をなすときには連結を行わない。二つの線分の外接矩形が所定の距離以下の場合や重なっている場合には、それらの外接矩形に外接する最小の矩形領域を設定する。その設定された矩形領域を上下左右に所定の画素(例えば１画素)だけ拡大し、その拡大矩形領域内にそれぞれの線分に属する黒画素が発見された場合にその二つの線分を連結する。
【００８７】
図２６は画像（二値画像データ）を９ブロックに分割したもので、ブロック内に線分Ａ，Ｂ，Ｃ，Ｄが存在する。各線分で網点がその重心を示している。各隣接ブロック間において、それぞれの線分に外接する最小矩形を設定し、それを１画素ずつ上下左右方向に拡大すると、その外接矩形にお互いの線分の一部が含まれるので連結対象となる。ここで、線分Ａ，Ｂの重心を結ぶ方向と線分Ｂ，Ｃの重心を結ぶ方向とのなす角度が小さいのでＡ，Ｂ，Ｃは連結される。ところが、線分ＣとＤではＢ，Ｃの重心を結ぶ方向とＣ，Ｄの重心を結ぶ方向とのなす角度が大きく線分Ｃと線分Ｄは連結されない。
【００８８】
図２７に線分連結処理の詳細フローチャートを示す。まず、一つの線分（連結線分）を設定する（ステップ６３０１）。次に、これに連結すべくもう一つの線分（被連結線分）を設定する（ステップ６３０２）。そして、連結線分に対し、被連結線分の距離が所定の距離により小さいか判定する（ステップ６３０３）。小さいと判定された場合、次に、該二つの線分の外接矩形に外接する最小の矩形を設定する（ステップ６３０４）。そして、この外接矩形を上下左右に所定の画素（例えば１画素）だけ拡大し（ステップ６３０５）、この拡大外接矩形内に両線分の黒画素が存在するか判定する（ステップ６３０６）。存在する場合、次に、連結線分に対する被連結線分の重心への角度が所定の値より小さいか判定し（ステップ６３０７）、小さい場合、当該連結線分に被連結線分を連結する（ステップ６３０８）。そして、ステップ６３０９に進み、当該連結成分に対して、未処理の線分（被連結線分）があるか判定し、あれば、ステップ６３０２に戻り、ステップ６３０２〜６３０９の処理を繰り返す。
【００８９】
一方、ステップ６３０３，６３０６，６３０７のいずれかで、その条件を満たさない場合には、そのままステップ６３０９にスキップする。すなわち、ステップ６３０２で設定した被連結線分を連結対象から外す。そして、未処理の線分があれば、ステップ６３０２に戻り、その一つの線分を連結線分に対する新たな被連結線分に設定して、ステップ６３０３以降の処理を繰り返す。
【００９０】
ステップ６３０１で設定した連結部分に対して、連結対象となる線分（被連結線分）がなくなった場合、ステップ６３１０に進む。ここで、未処理の連結線分があれば、ステップ６３０１に戻り、ステップ６３０１〜６３０９の処理を繰り返す。
【００９１】
以上のようにして線分を連結する。このとき、点認識処理において点として検出された領域も線分の一つとして連結対象とする。これにより、点と線を繋ぐことができるので、点の順序を特定することができる。つまり、ゴルファーの打球の軌跡を再現することができる。
【００９２】
＜マーク認識＞
マーク認識部１６０では、レイアウト位置補正済みの二値画像データから手書きされた丸印（チェックマーク）の抽出を行う。マーク認識処理の基本は、点認識や線認識と同様に、レイアウトファイルからマークを抽出すべき領域情報を取得し、その領域に対応する部分をレイアウト位置補正済み二値画像データから切り出す。そして、ここではＯＭＲ（オプティカルマークリーダ）処理を行ってチェックマークの有無の認識を行う。基本的には、切り出した領域内で黒画素が領域内の全画素に対する比率が所定の値より大きい場合にマークがあると判定する。通常、マークは矩形の枠を伴っているので切り出した領域の外周部分に縦横の直線があると判定した場合はその黒画素数を領域内の全黒画素数から差し引いてチェックによる黒画素を検出する。
【００９３】
＜レイアウトファイルによる点の意味づけ＞
点の認識やＯＭＲで手書きされた点やマークが認識された。認識されると同時にそれらの点は位置が検出される。例えば、点の重心座標とすることができる。これは、レイアウトファイルで定義された領域のどこにあるかを調べることでその点がゴルフコースのどの位置に存在するか。例えばフェアウェイ、ラフ、バンカー、グリーン等がわかる。また、マークの意味にしてもレイアウトファイルで定義されているので、そのマークの部分がスコアの数字を意味しているのか、パット数の数字を意味しているのかを認識することができる。
【００９４】
以上、本発明の実施形態としてゴルフプレイ情報処理システムを対象したが、勿論、本発明はこのようなシステムに限られるものではなく、一般にシート上に手書きされた点と線を認識する必要がある場合に広く適用することができる。
【図面の簡単な説明】
【００９５】
【図１】本発明を適用したブルフプレイ情報処理システムの構成例を示す図。
【図２】手書きフォーム処理の全体フローチャート。
【図３】有彩色除去処理の全体フローチャート。
【図４】有彩色除去処理の詳細フローチャート。
【図５】ＩＤ検出処理の全体フローチャート。
【図６】図５中の領域抽出処理の詳細フローチャート。
【図７】領域抽出処理を説明する図。
【図８】画像補正処理の全体フローチャート。
【図９】図８中の画像正立処理の詳細フローチャート。
【図１０】図８中のレイアウト位置補正処理の詳細フローチャート。
【図１１】画像中のマーカー検出法の一例を示す図。
【図１２】アフィン変換を説明する図。
【図１３】点認識処理の全体フローチャート。
【図１４】点検出用の点パターン（テンプレートパターン）の一例を示す図。
【図１５】図１３中の第一点検出処理の詳細フローチャート。
【図１６】第一点検出処理の具体的処理イメージを示す図。
【図１７】図１３中の近傍小点削除処理を説明する図。
【図１８】近傍小点削除処理の詳細フローチャート。
【図１９】図１３中の線上点削除処理を説明する図。
【図２０】線上点削除処理の詳細フローチャート。
【図２１】線認識処理の全体フローチャート。
【図２２】図２１中のブロック分割処理の詳細フローチャート。
【図２３】ブロック境界の塗りつぶしイメージを示す図。
【図２４】ブロック分割後の画像イメージを示す図。
【図２５】図２１中の線分検出処理の詳細フローチャート。
【図２６】図２１中の線分連結処理を説明する図。
【図２７】線分連結処理の詳細フローチャート。
【図２８】未記入の手書きグラフィクスコアカードの一例を示す図。
【図２９】点と線、マークが記入された手書きグラフィクスコアカードの一例を示す図。
【図３０】ゴルフコースのレイアウトファイルの領域マップの一例を示す図。
【符号の説明】
【００９６】
１００  制御部
１１０  有彩色除去部
１２０  ＩＤ検出部
１３０  画像補正部
１４０  点認識部
１５０  線認識部
１６０  マーク認識部
１７０  認識情報意味付け部
１８０  画像入力装置
１９０  操作部
２００  内部記憶装置
２１０  外部記憶装置
２２０  表示装置
２３０  印刷装置
２４０  モデム
【図１】
2010099136.tif 000003
【図２】
2010099136.tif 000004
【図３】
2010099136.tif 000005
【図４】
2010099136.tif 000006
【図５】
2010099136.tif 000007
【図６】
2010099136.tif 000008
【図７】
2010099136.tif 000009
【図８】
2010099136.tif 000010
【図９】
2010099136.tif 000011
【図１０】
2010099136.tif 000012
【図１１】
2010099136.tif 000013
【図１２】
2010099136.tif 000014
【図１３】
2010099136.tif 000015
【図１４】
2010099136.tif 000016
【図１５】
2010099136.tif 000017
【図１６】
2010099136.tif 000018
【図１７】
2010099136.tif 000019
【図１８】
2010099136.tif 000020
【図１９】
2010099136.tif 000021
【図２０】
2010099136.tif 000022
【図２１】
2010099136.tif 000023
【図２２】
2010099136.tif 000024
【図２３】
2010099136.tif 000025
【図２４】
2010099136.tif 000026
【図２５】
2010099136.tif 000027
【図２６】
2010099136.tif 000028
【図２７】
2010099136.tif 000029
【図２８】
2010099136.tif 000030
【図２９】
2010099136.tif 000031
【図３０】
2010099136.tif 000032