以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ゴルフのプレーが可能な施設であるゴルフ場を予約可能なゴルフ場予約システムSに対して、本発明を適用した場合の実施形態である。
[1.第1実施形態]
[1-1.ゴルフ場予約システムの構成]
先ず、本実施形態に係るゴルフ場予約システムSの構成及び機能概要について、図1を用いて説明する。図1は、本実施形態に係るゴルフ場予約システムSの概要構成の一例を示す図である。
図1に示すように、ゴルフ場予約システムSは、ゴルフ場予約サーバ1と、複数のゴルフ場端末2と、複数のユーザ端末3と、を含んで構成される。ゴルフ場予約サーバ1と、各ゴルフ場端末2と、各ユーザ端末3とは、ネットワークNWを介して互いに接続される。ネットワークNWは、例えばインターネット、専用通信回線(例えば、CATV(Community Antenna Television)回線)、移動体通信網(基地局等を含む)、及びゲートウェイ等により構築されている。
ゴルフ場予約サーバ1は、ゴルフ場を予約するための予約サイトに関する各種処理を実行するサーバ装置である。ユーザは、予約サイトを利用することにより、所望のゴルフ場の利用を予約することができる。ゴルフ場予約サーバ1は、ユーザ端末3からの要求に応じて、予約サイトに関するウェブページ等の情報を送信する。また、ゴルフ場予約サーバ1は、ユーザ端末3で撮影されたスコアカードの画像から、ゴルフのスコアを認識してもよい。ゴルフ場予約サーバ1は、ゴルフ場の予約に関する処理を実行するサーバ装置と、スコアカードの画像からスコアを認識するサーバ装置と、を含んで構成されてもよい。
各ゴルフ場端末2は、ゴルフ場の従業員により利用される端末装置である。ゴルフ場端末2の例として、タブレット式コンピュータ、パーソナルコンピュータ等が挙げられる。ゴルフ場端末2には、ウェブブラウザ、電子メールクライアント等がインストールされている。ゴルフ場端末2は、従業員による操作に基づいてゴルフ場予約サーバ1へ要求を送信し、この要求に応じてゴルフ場予約サーバ1から送信されてきたウェブページ等の情報を表示する。従業員は、ゴルフ場端末2を利用して、ゴルフ場の予約状況やチェックイン状況を確認等する。
各ユーザ端末3は、予約サイトを利用することにより、ゴルフ場を利用するユーザが携帯する端末装置である。例えば、ユーザは、ユーザ端末3を携帯してゴルフ場へ行く。ユーザ端末3の例として、スマートフォン、タブレット式コンピュータ等の携帯情報端末、携帯電話機、PDA(Personal Digital Assistant)等が挙げられる。ゴルフ場を予約する段階においては、ユーザは、例えばパーソナルコンピュータ等の据え置き型の端末装置を用いてもよい。ユーザ端末3には、ブラウザ、電子メールクライアント等のソフトウェアが組み込まれている。また、ユーザ端末3には、予約サイトを利用したり、ゴルフのスコアを入力したりするための専用のアプリケーションがインストールされていてもよい。
また、各ユーザ端末3は、画像を撮影する機能を有する。例えば、各ユーザ端末3は、CCD(Charge-Coupled Device)センサ又はCMOS(Complementary Metal Oxide Semiconductor)センサ等で構成されるデジタルカメラを備える。ユーザ端末3は、デジタルカメラで撮影された画像の画像データを、ユーザ端末3のメモリに記憶させる。画像データのフォーマットの例として、JPEG、RAW等が挙げられる。
[1-2.ゴルフ場予約サーバの構成]
次に、ゴルフ場予約サーバ1の構成について、図2及び図3を用いて説明する。図2は、本実施形態に係るゴルフ場予約サーバ1の概要構成の一例を示すブロック図である。図2に示すように、ゴルフ場予約サーバ1は、システム制御部11と、システムバス12と、入出力インターフェース13と、記憶部14と、通信部15と、を備えている。システム制御部11と入出力インターフェース13とは、システムバス12を介して接続されている。
システム制御部11は、CPU(Central Processing Unit)11a、ROM(Read Only Memory)11b、RAM(Random Access Memory)11c等により構成されている。
入出力インターフェース13は、記憶部14及び通信部15とシステム制御部11との間のインターフェース処理を行う。
記憶部14は、例えば、ハードディスクドライブ等により構成されている。この記憶部14には、会員DB14a、ゴルフ仲間DB14b、ゴルフ場DB14c、予約情報DB14d、チェックインDB14e、スコアDB14f等のデータベースが記憶されている。「DB」は、データベースの略語である。図3は、データベースに記憶される情報の例を示す図である。
会員DB14aには、ゴルフ場予約システムSを利用するユーザに関する会員情報が、ユーザごとに記憶されている。具体的に、会員DB14aには、会員情報として、ユーザID、氏名、住所、電話番号、電子メールアドレス等が、関連付けて記憶されている。ユーザIDは、ユーザを識別する識別情報である。
ゴルフ仲間DB14bには、ゴルフ場予約システムSを利用するユーザのゴルフ仲間に関する情報が、ユーザごとに記憶されている。具体的に、ゴルフ仲間DB14bには、ユーザID及びゴルフ仲間リスト等が、互いに関連付けて記憶される。ゴルフ仲間リストは、ユーザIDにより示されるユーザのゴルフ仲間である他のユーザのユーザIDのリストである。例えば、ゴルフ場予約サーバ1は、ゴルフ場予約システムSを利用して互いにゴルフ仲間であることを認めたユーザそれぞれのゴルフ仲間リストに、他方のユーザのユーザIDを追加してもよい。
ゴルフ場DB14cには、ゴルフ場予約システムSで予約可能なゴルフ場に関するゴルフ場が、ゴルフ場ごとに記憶されている。具体的に、ゴルフ場DB14cには、ゴルフ場情報として、ゴルフ場ID、ゴルフ場名、住所、電話番号、電子メールアドレス等が、関連付けて記憶されている。ゴルフ場IDは、ゴルフ場を識別する識別情報である。
予約情報DB14dには、ゴルフ場の予約に関する予約情報が、予約が行われるごとに記憶される。具体的に、予約情報DB14dには、予約情報として、予約番号、予約者ID、ゴルフ場ID、プレー日、組数、組情報等が、関連付けて記憶される。予約番号は、予約を識別する番号である。予約者IDは、予約を行ったユーザのユーザIDである。ゴルフ場IDは、予約されたゴルフ場を示す。プレー日は、ゴルフのプレーが行われる日を示す。組数は、何組でゴルフをプレーするかを示す。組数として、1以上の値が設定される。組情報は、ゴルフをプレーする予定である組に関する情報である。組数に相当する数の組情報が、予約情報DB14dに記憶される。各組情報は、組ID、スタート時刻、及びメンバーリストを含む。組IDは、組を識別する識別情報である。スタート時刻は、その組がゴルフのプレーを開始する時刻である。メンバーリストは、組を構成するメンバーのリストである。例えば、予約者は、ゴルフ場を予約する際に又は予約後に、組の各メンバーを選択し又は各メンバーの情報を入力する。例えば、予約者の予約仲間から、メンバーの選択が可能であってもよい。或いは、各メンバーの氏名及び電子メールアドレスの入力が可能であってもよい。メンバーリストは、予約者により選択されたゴルフ仲間のユーザID又は予約者により入力されたメンバーの情報を含んでもよい。予約者については、その予約者のユーザIDがメンバーリストに含まれてもよい。各組について、1~4人のメンバーの選択又は入力がかのうであってもよい。一の予約でゴルフ場が予約された全ての組のメンバーのうち、予約者以外のメンバーは、例えば予約者の同伴者である。同伴者は、予約者とともにゴルフをプレーするユーザである。同伴者は、予約者と同じホールでプレーするメンバーに限定されなくてもよい。
チェックインDB14eには、ゴルフ場にチェックインしたユーザに関するチェックイン情報が、チェックインしたユーザごとに記憶される。具体的に、チェックインDB14eには、チェックイン情報として、ゴルフ場ID、チェックイン日時及びユーザID等が、互いに関連付けて記憶される。ゴルフ場IDは、チェックインが行われたゴルフ場を示す。チェックイン日時は、チェックインが行われた日時を示す。ユーザIDは、チェックインしたユーザを示す。チェックインとは、ゴルフのプレーヤが、ゴルフ場において、そのゴルフ場の利用開始の手続きを行うことである。例えば、ユーザが、専用アプリケーションを起動して、そのユーザのユーザIDを示す情報、例えばバーコードを、ユーザ端末の画面に表示させる。各ゴルフ場端末2は、例えばバーコードリーダを備えてもよい。ゴルフ場の従業員は、バーコードリーダを用いて、ゴルフ場端末2にユーザIDを読み取らせる。ゴルフ場端末2は、読み取ったユーザIDを、そのゴルフ場のゴルフ場ID及びチェックイン日時とともに、ゴルフ場予約サーバ1へ送信する。ゴルフ場予約サーバ1は、ゴルフ場端末2から受信した情報を、チェックインDB14eに記憶させる。ここで、ゴルフ場予約サーバ1は、予約情報を参照し、その日にそのゴルフ場でゴルフをプレーする予定である予約者又は同伴者のみチェックインを可能にさせてもよい。チェックインの際、ユーザは、ユーザ端末3の画面を従業員に見せるのではなく、そのユーザの氏名をチェックインシートに記入してもよい。この場合、従業員は、ゴルフ場端末2に氏名を入力して、その日にゴルフ場を予約した予約者及び同伴者の中から、チェックインしたユーザを検索してもよい。ゴルフ場予約サーバ1は、検索されたユーザのユーザID等を含むチェックイン情報を、チェックインDB14eに記憶させる。
スコアDB14fには、ゴルフ場予約システムSを利用するユーザや同伴者のゴルフのスコアを示すスコア情報が記憶される。具体的に、スコアDB14fには、ユーザID、ゴルフ場ID、プレー日、スコア情報、一又は複数の同伴者スコア情報等が関連付けて記憶される。ユーザIDは、スコア情報に示されるスコアを出したユーザを示す。ゴルフ場ID及びプレー日は、スコア情報に示されるスコアが出されたゴルフ場及びプレー日を示す。スコア情報は、例えば各ホールのスコア及びグロススコアを含んでもよい。同伴者スコア情報は、ユーザIDにより示されるユーザの同伴者が出したスコアを示す。例えば、ユーザが同伴者のスコアを入力又は記入した場合に、スコアDB14fに同伴者スコア情報が記憶される。同伴者スコア情報は、例えば同伴者名及びスコア情報を含む。
記憶部14には、更に、オペレーティングシステム、DBMS(Database Management System)、サーバプログラム等の各種プログラムが記憶されている。サーバプログラムは、ゴルフ場の利用予約に関する処理や、スコアカードの画像からスコアを認識するための処理をシステム制御部11に実行させるプログラムである。サーバプログラムは、例えば、他の装置からネットワークNWを介して取得されるようにしてもよいし、磁気テープ、光ディスク、メモリカード等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。
通信部15は、例えばネットワークインターフェースコントローラ等により構成されている。通信部15は、ネットワークNWを介して、ゴルフ場端末2やユーザ端末3と接続し、これらの装置との通信状態を制御する。
[1-3.システム制御部の機能概要]
次に、ゴルフ場予約サーバ1におけるシステム制御部11の機能概要について、図4乃至図10を用いて説明する。図4は、本実施形態に係るゴルフ場予約サーバ1におけるシステム制御部11の機能ブロックの一例を示す図である。システム制御部11は、CPU11aが、サーバプログラムに含まれる各種プログラムコードを読み出し実行することにより、図4に示すように、撮影画像取得部1101、セル情報取得部1102、ホール番号セル特定部1103、名前セル特定部1104、スコアセル特定部1105、スコア特定部1106、認識結果出力部1107等として機能する。
撮影画像取得部1101は、ゴルフのスコア表の撮影画像を取得する。スコア表は、例えばスコアカードに印字されている。ユーザは、ユーザ端末3のデジタルカメラで、スコアカードを撮影する。ユーザ端末3は、撮影された画像を、ゴルフ場予約サーバ1へ送信する。こうして、撮影画像取得部1101は、ユーザ端末3から撮影画像を取得する。なお、撮影されるスコア表には、4人分のスコアが記入されていてもよいし、3人以下の人数分のスコアが記入されていてもよい。
図5は、撮影画像及びスコア表の一例を示す図である。図5において、撮影画像Pは、スコアカードCDの画像を含む。スコアカードCDは、例えばスコア表100-1及び100-2を含む。スコア表100-1は、第1ホールから第9ホールまでのスコアを記入するための表である。スコア表100-2は、第10ホールから第18ホールまでのスコアを記入するための表である。なお、一のスコア表に、第1ホールから第18ホールまでのスコアの記入が可能であってもよい。スコア表100-1及びスコア表100-2は、それぞれ複数のセルを含む。例えば、スコア表100-1は、名前セルの並び110、ホール番号セルの並び120、スコアセルの並び130を少なくとも含む。名前セルの並び110は、名前セル111、112、113及び114を含む。すなわち、名前セルの並び110は、4個のセルを含む。各名前セルは、プレーヤ名が記入されるセルである。ホール番号セルの並び120は、ホール番号セル121、122、123、124、125、126、127、128及び129を含む。各ホール番号セルは、対応するホール番号を含むセルである。具体的に、ホール番号セル121~129には、1~9の番号をそれぞれ表示する。スコアセルの並び130は、各名前セルに対応してスコア表100-1に含まれる。スコアセルの並び130は、プレーヤごとに存在する。各スコアセルの並び130は、スコアセル131、132、133、134、135、136、137、138及び139を含む。各スコアセルは、対応するホール番号に示されるホールでのスコアが記入されるセルである。具体的に、スコアセル131~139には、第1ホール~第9ホールそれぞれのスコアが記入される。スコア表100-1は、更にスコアの合計が記入されるセル、各ホールの規定打数を表示するセル、各ホールの距離を表示するセル等を含んでもよい。スコア表100-2の構成は、スコア表100-1の構成と同一又は類似していてもよい。スコア表100-1は、記入方式が縦式のスコア表である。縦式のスコア表とは、各プレーヤのスコアセルが縦に並べられているスコア表である。なお、名前セルの並び110には、4人のプレーヤ全員の名前が記入されてもよいし、二人又は三人のプレーヤの名前のみが記入されてもよいし、一人のプレーヤの名前のみが記入されてもよい。或いは、名前セルの並び110には、プレーヤ名が全く記入されていなくてもよい。
セル情報取得部1102は、撮影画像取得部1101により取得された撮影画像内における、スコア表に含まれる複数のセルそれぞれの位置及び面積を示すセル情報を取得する。例えば、セル情報取得部1102は、撮影画像を解析して、各セルを特定する。撮影画像の解析方法については後述する。セル情報取得部1102は、撮影画像における各セルの座標を特定してもよい。通常、各セルは矩形である。そこで、セル情報取得部1102は、セルの左上頂点の座標及び右下頂点の座標と、を特定してもよい。これらの座標により、そのセルそれぞれの位置及び面積を示すことができる。セル情報取得部1102は、例えば各セルに番号を付与し、そのセル番号に対して座標を関連付けてもよい。そして、セル情報取得部1102は、各セルのセル番号と座標との組み合わせを含むセル情報を生成してもよい。なお、ユーザ端末3が撮影画像の解析及びセル情報の生成を行い、セル情報取得部1102は、ユーザ端末3からセル情報を取得してもよい。
ホール番号セル特定部1103は、撮影画像取得部1101により取得された撮影画像から認識された文字及びセル情報取得部1102により取得されたセル情報に基づいて、スコア表に含まれる複数のセルの中から、所定の複数のホールをそれぞれ示す文字をそれぞれ含む連続する複数のホール番号セルを特定する。ホール番号セル特定部1103は、所定の複数のホールとして、例えば第1ホールから第9ホール、第10ホールから第18ホール、又は第1ホールから第18ホールのホール番号セルを特定してもよい。例えば、ホール番号セル特定部1103は、文字認識により、スコア表から数字を認識する。ホール番号セル特定部1103は、セル情報により示されるセルの座標に基づき、各セルが番号(または数値)を含むか否か及びその番号を特定する。ホール番号セル特定部1103は、例えば1~9、10~18又は1~18の番号をその順序で含むセルであって且つ連続するセルの並び(または組み合わせ)を、ホール番号セルの並びとして特定する。
名前セル特定部1104は、セル情報取得部1102により取得されたセル情報に基づいて、スコア表の複数のセルに含まれる連続する所定数のセルでそれぞれ構成される複数の並び(または組み合わせ)の中から、その所定数のセルの面積の合計が最大となる並びを、名前セルの並びとして特定する。名前セル特定部1104が特定する名前セルの個数は、例えば4個であってもよい。基本的に、ゴルフをプレーする各組は、最大4人で構成される。従って、大多数のスコアカードは、4人分のスコアが記入可能になっている。また、名前セルは、縦又は横(行方向又は列方向)に連続している。更に、各名前セルは、スコア表に含まれる全セルの中で相対的に面積が大きい。その理由の一つとして、名前セルが小さいと、名前を記入しにくい又は記入された名前を読みにくいという事情が挙げられる。また、文字数が比較的多い名前も存在するので、その点を考慮して、名前セルは比較的に大きい。スコアセルにはスコアが記入されるものの、スコアは単純な数字で構成されており、また1桁又は2桁の数字で構成されているので、スコアセルが名前セルよりも小さくても、名前と比較して、記入されたスコアを読みやすい。また、ホール番号、距離、見出し等の情報を表示するセルについては、印字された情報であるので、これらのセルが名前セルよりも小さくても、それらに表示された情報は読みやすい。各名前セルの面積は、スコア表に含まれる全セルの中でも最大である場合もある。しかしながら、一個一個のセルで見ると、名前セルよりも大きいセルが存在する可能性もある。そこで、所定数のセルの合計で判定することで、名前セルを適切に特定することができる。例えば、図5において、名前セル111~114は、横方向に連続しており、それらの面積の合計は、他の連続する4個のセルの合計よりも大きい。
名前セル特定部1104は、並びを構成する4個のセルの面積が互いに同一とみなされるセルの並びから、名前セルの並びを特定してもよい。スコア表内の名前セルの面積は互いに同一であることが一般的である。面積が互いに同一とみなされるとは、面積が完全に同一であってもよいし、面積が略同一であってもよい。元の名前セル間で面積が互いに同一であっても、撮影画像から特定された名前セル間で面積が完全に同一とはならない場合がある。面積が略同一とは、例えば4個のセルのうち、面積が最大のセルのその面積と、面積が最小のセルのその面積との差が、所定の閾値未満となることであってもよい。この閾値は、例えば何れかのセルの面積又はセルの平均面積の所定割合であってもよい。
なお、4人一組でプレーする場合であっても、例えばコンペが開催されるときなどには、4人よりも多いプレーヤ分のスコアの記入が可能なスコアカード又はスコアシートが利用される場合があるかもしれない。その場合は、特定する名前セルの個数は、4個よりも多くてもよい。
ホール番号セル特定部1103によりホール番号セルが特定された場合、名前セル特定部1104は、その特定されたホール番号セルに基づいて、名前セルの並びの候補を限定してもよい。これにより、セルの合計面積の計算量を削減することができる。
例えば、名前セル特定部1104は、特定されたホール番号セルが並ぶ方向に対して垂直に並ぶセルの並びに、名前セルの並びの候補を限定してもよい。ホール番号セルが縦方向に並んでいれば、名前セルは横方向に並ぶ。その逆に、ホール番号セルが横方向に並んでいれば、名前セルは縦方向に並ぶ。
また例えば、名前セル特定部1104は、スコア表に含まれる複数のセルのうち、所定の複数のホールのうち最初にプレーされるホールを示す文字を含むホール番号セルの位置から見て、他のホール番号セルが位置する側の反対側にあるセルから、名前セルの並びの候補を特定してもよい。ここで、最初にプレーされるホールは、第1ホール又は第10ホールである。
図6は、名前セルの並びの候補が特定される範囲の一例を示す図である。図6に示すように、スコア表100-1に含まれるホール番号セルの並び120のうち、ホール番号セル121が、最小のホール番号である「1」を含む。スコア表100-1は、縦式のスコア表であるので、ホール番号セル122~129は、ホール番号が小さい順に上から下に並んでいる。従って、ホール番号セル122~129は、ホール番号セル121よりも下に位置している。スコア表100-1を、ホール番号セル121よりも上に位置するセル群の領域141と、ホール番号セル121よりも下に位置するセル群の領域142とに分ける。ホール番号セル121と同じ高さに位置するセルは、便宜上除外する。ホール番号セル122~129は領域142に位置しているので、その反対側である領域141から、名前セルの並びの候補が特定される。説明の便宜上、領域141内の11個のセルに、A1~A11の識別子を付与する。図7は、名前セルの並びの候補の例を示す図である。図6に示すように、ホール番号セル121~129は縦方向に並んでいる。そのため、名前セル特定部1104は、セルA1~A11の中から、横方向に連続する4個のセルの並びを、名前セルの並びの候補とする。例えば、図7に示すように、並び210~300が特定される。並び210は、セルA1、A2、A3及びA4を含む。並び220は、セルA2、A3、A4及びA5を含む。並び230は、A3、A4、A5及びA6を含む。並び240は、A4、A5、A6及びA7を含む。並び250は、A5、A6、A7及びA8を含む。並び260は、A1、A2、A9及びA10を含む。並び270は、A2、A9、A10及びA11を含む。並び280は、A9、A10、A11及びA4を含む。並び290は、A10、A11、A4及びA5を含む。並び300は、A11、A4、A5及びA6を含む。名前セル特定部1104は、各並びに含まれるセルの面積の合計を計算する。セルA5、A6、A7及びA8の合計面積が最も大きいので、並び250が、名前セルの並びとして特定される。セルA5~A8は、名前セル111~114である。
図8は、名前セルの並びの候補が特定される範囲の他の例を示す図である。図8に示すスコア表100-2は、記入方式が横式のスコア表である。横式のスコア表とは、各プレーヤのスコアセルが横に並べられているスコア表である。図8に示すように、スコア表100-2は、名前セルの並び310、ホール番号セルの並び320等を含む。名前セルの並び310は、名前セル311~314を含む。ホール番号セルの並び320は、ホール番号セル321~329を含む。ホール番号セルの並び320のうち、ホール番号セル321が、最小のホール番号である「1」を含む。スコア表100-2は、横式のスコア表であるので、ホール番号セル322~329は、ホール番号が小さい順に左から右に並んでいる。従って、ホール番号セル322~329は、ホール番号セル321よりも右に位置している。スコア表100-2を、ホール番号セル321よりも左に位置するセル群の領域341と、ホール番号セル321よりも右に位置するセル群の領域342とに分ける。ホール番号セル322~329は領域342に位置しているので、その反対側である領域341から、名前セルの並びの候補が特定される。領域141内の11個のセルに、B1~B11の識別子を付与する。図9は、名前セルの並びの候補の他の例を示す図である。図8に示すように、ホール番号セル321~329は縦方向に並んでいる。そのため、名前セル特定部1104は、セルB1~B11の中から、縦方向に連続する4個のセルの並びを、名前セルの並びの候補とする。例えば、図9に示すように、並び410~490が特定される。これらのうち、並び450に含まれるセルB5、B6、B7及びB8の合計面積が最も大きいので、並び450が、名前セルの並びとして特定される。セルB5~B8は、名前セル311~314である。
スコアセル特定部1105は、名前セル特定部1104により特定された名前セルの位置に基づいて、スコア表に含まれる複数のセルのうち、スコアが記入されるスコアセルを特定する。例えば、スコアセル特定部1105は、特定された名前セルの並びと垂直に交差するセルの並びの中から、スコアセルを特定してもよい。ホール番号セル特定部1103によりホール番号セルが特定された場合、スコアセル特定部1105は、名前セルの位置及びホール番号セルの位置に基づいて、スコアセルを特定してもよい。例えば、スコアセル特定部1105は、名前セルの並びと垂直に交差するセルの並びと、ホール番号セルの並びと垂直に交差するセルの並びと、の両方に含まれるセルを、スコアセルとして特定してもよい。
スコア特定部1106は、撮影画像取得部1101により取得された撮影画像において、スコアセル特定部1105により特定されたスコアセルに対応する画像部分から、スコアを認識する。例えば、スコア特定部1106は、セル情報から、特定された各スコアセルの座標を取得する。スコア特定部1106は、撮影画像から、スコアセルの座標に対応する部分を特定し、その部分から、文字認識により、スコアを認識する。スコア特定部1106は、名前セル及びホール番号セルに対する各スコアセルの位置に基づいて、プレーヤごとに各ホールのスコアを認識する。スコア特定部1106は、更にOUTコース又はINコースにおける合計スコアやグロススコアも、撮影画像から認識してもよい。
認識結果出力部1107は、スコア特定部1106により認識されたスコアを示すスコア情報を出力する。スコア情報は、例えば、各プレーヤ及び各ホールに関連付けてスコアを示す。認識結果出力部1107は、スコア情報を、撮影画像の取得元のユーザ端末3へ送信してもよい。これにより、認識結果出力部1107は、ユーザ端末3にスコア情報を表示させてもよい。図10は、スコア情報の表示例を示す図である。図10に示すスコアカード画面500には、スコア情報が表示される。スコアカード画面500は、専用アプリケーションに従って表示される。例えば、スコアカード画面500は、4個のプレーヤ名セル510、複数のスコアセル520、登録ボタン530等を含む。プレーヤ名セル510には、本来プレーヤ名前が表示される。但し、本実施形態において、ゴルフ場予約サーバ1は、スコア表の撮影画像からプレーヤ名を認識しない。そのため、プレーヤ名セル510には、便宜的に「プレーヤ1」、「プレーヤ2」等が表示されてもよい。各スコアセルには、認識されたスコアが表示される。ここで、ユーザが、何れのスコアを出したプレーヤがそのユーザ自身であるかを選択可能に、専用アプリケーションが構成されてもよい。また、ユーザが、各プレーヤ名セル510にプレーヤ名を入力可能であってもよい。或いは、ユーザが、そのユーザのゴルフ仲間の中から、ゴルフをプレーしたプレーヤを選択可能に、専用アプリケーション及びゴルフ場予約サーバ1が構成されてもよい。そして、選択されたプレーヤの名前がプレーヤ名セル510に表示されてもよい。各スコアセル520には、スコアが表示される。図10においては、OUTコースのスコアのみが表示されているが、ユーザからの操作に応じて、ユーザ端末3は、INコースのスコアを表示してもよい。また、各スコアセル520のスコアを修正すること、及びスコアセル520にスコアを入力することが可能に、専用アプリケーションが構成されてもよい。登録ボタン530は、スコアカード画面500に表示されたスコア情報を、必要であればユーザにより修正されたプレーヤ名及びスコアにて、スコアDB14fに記憶させるよう、ゴルフ場予約サーバ1に要求するためのボタンである。
[1-4.ゴルフ場予約システムの動作]
次に、ゴルフ場予約システムSの動作について、図11乃至図13を用いて説明する。図11は、本実施形態に係るゴルフ場予約システムの処理例を示すシーケンス図である。例えば、ゴルフをプレーしてスコアカードにスコアを記入したユーザは、ユーザ端末3にそのスコアカードの撮影を開始させる。ユーザ端末3は、撮影を行いながらスコア表の検出を行う(ステップS1)。例えば、ユーザ端末3は、そのユーザ端末3の機種を判定する。ユーザ端末3は、判定した機種の端末が備えるデジタルカメラのレンズに応じた歪収差係数を取得する。例えば、ユーザ端末3は、ゴルフ場予約サーバ1から歪収差係数を取得してもよい。ユーザ端末3は、ユーザによる操作に応じて動画の撮影を開始する。ユーザ端末3は、撮影された動画の各フレームの撮影画像を、歪収差係数を用いて補正する。そして、ユーザ端末3は、各フレームの画像から、スコア表の検出を試みる。例えば、ユーザ端末3は、画像から複数の凸多角形を検出する。このとき、ユーザ端末3は、複数の多角形で構成される多角形も検出する。ユーザ端末3は、検出された各多角形を矩形に近似する。ユーザ端末3は、特定された矩形のうち、他の複数の矩形を含み且つ他の何れの矩形にも含まれない矩形を、スコア表と決定する。ユーザ端末3は、一のフレームから複数のスコア表を検出する場合もある。ユーザ端末3は、検出された表の画像内における座標を示すスコア表位置情報を生成する。ユーザ端末3は、スコア表が検出されたフレームの撮影画像及びスコア表位置情報を、ゴルフ場予約サーバ1へ送信する(ステップS2)。ここで、ユーザは、ゴルフをプレーしたゴルフ場及びプレー日を選択してもよい。これに応じて、ユーザ端末3は、選択されたゴルフ場のゴルフ場ID及びプレー日を、ゴルフ場予約サーバ1へ送信してもよい。
ユーザ端末3から撮影画像及びスコア表位置情報を受信したゴルフ場予約サーバ1は、例えば検出されたスコア表ごとに、名前セル特定処理を実行する(ステップS3)。図12は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部11による名前セル特定処理の一例を示すフローチャートである。図12に示すように、撮影画像取得部1101は、スコア表位置情報に基づいて、撮像画像からスコア表の画像を抽出する(ステップS101)。
次いで、セル情報取得部1102は、抽出されたスコア表の画像に基づいて、スコア表の各セルの位置及び面積を示すセル情報を取得する(ステップS102)。例えば、セル情報取得部1102は、スコア表の画像に対して射影変換を施すことにより、画像内のスコア表の形状を矩形に変換する。セル情報取得部1102は、変換されたスコア表の画像に対してモルフォロジー変換を施すことにより、画像内の線分を強調する。次いで、セル情報取得部1102は、画像から縦及び横の線分をそれぞれ検出する。次いで、セル情報取得部1102は、縦の線分と横の線分との交点を検出する。次いで、セル情報取得部1102は、縦の線分と横の線分で形成される矩形をセルとみなし、それらの交点の座標に基づいて、各セルの座標を含むセル情報を生成する。
次いで、ホール番号セル特定部1103は、スコア表の画像から数字を認識する(ステップS103)。例えば、ホール番号セル特定部1103は、スコア表の画像から、各セルを構成する線分を消去する。次いで、ホール番号セル特定部1103は、スコア表の画像に対して大津の二値化を施すことにより、画像内の文字を強調する。番号セル特性部1103は、例えば学習済みのコンボリューショナルニューラルネットワーク(CNN)を用いて、画像から数字を認識する。このとき、番号セル特性部1103は、アルファベット、カタカナ、その他の種類の文字も認識してもよい。
次いで、番号セル特性部1103は、ホール番号のセルの並びを特定する(ステップS104)。例えば、番号セル特性部1103は、認識された各数字の座標及び各セルの座標に基づいて、数字を含むセルを特定する。番号セル特性部1103は、縦又は横に並ぶ9個のセルであって、1~9又は10~18の順に数字を含むセルを、ホール番号セルとして特定する(ステップS105)。
次いで、番号セル特性部1103は、スコア表の記入形式が縦式であるか又は横式であるかを判定する(ステップS106)。例えば、番号セル特性部1103は、ホール番号セルが縦に並んでいる場合、記入形式が縦式と判定し、ホール番号セルが横に並んでいる場合、記入形式が横式と判定する。
次いで、名前セル特定部1104は、セルの合計面積の最大値を、0に初期設定する(ステップS106)。次いで、名前セル特定部1104は、画像から検出された複数のセルのうち、ホール番号「1」又は「10」を含むホール番号セルの位置から見て、他のホール番号セルが位置する側の反対側にあるセルから、記入形式に応じた方向に連続する4個のセルの並びを一つ選択する(ステップS107)。ここで、名前セル特定部1104は、記入形式が縦式の場合、横方向に連続するセルの並びを選択し、記入形式が横式の場合、縦方向に連続するセルの並びを選択する。
次いで、名前セル特定部1104は、選択された4個のセルの合計面積を計算する(ステップS108)。次いで、名前セル特定部1104は、計算された合計面積が、現在の合計面積の最大値よりも大きいか否かを判定する(ステップS109)。計算された合計面積が最大値よりも大きい場合(ステップS109:YES)、名前セル特定部1104は、合計面積の最大値を、計算された合計面積に設定する(ステップS110)。
計算された合計面積が最大値よりも大きくはない場合(ステップS109:NO)、又はステップS110の後、名前セル特定部1104は、他に未だ選択していない4個のセルの並びがあるか否かを判定する(ステップS111)。選択していないセルの並びがある場合(ステップS111:YES)、処理はステップS107に進み、未だ選択していない4個のセルの並びが一つ選択される。一方、セルの並びが全て選択された場合(ステップS111:NO)、名前セル特定部1104は、合計面積が最大である4個のセルの並びを、名前セルの並びに決定し(ステップS112)、名前セル特定処理は終了する。
名前セル特定処理が終了すると、図11に示すように、ゴルフ場予約サーバ1は、例えば検出されたスコア表ごとに、スコア特定処理を実行する(ステップS4)。図13は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部11によるスコア特定処理の一例を示すフローチャートである。図13に示すように、スコアセル特定部1105は、名前特定処理で取得されたセル情報、名前セル及びホール番号セルの位置に基づいて、スコアセルを特定する(ステップS201)。例えば、スコアセル特定部1105は、名前セルの並びに直交するセルの並びを4個特定する。また、スコアセル特定部1105は、ホール番号セルの並びに直交するセルの並びを9個特定する。スコアセル特定部1105は、名前セルの並びに直交するセルの並びと、ホール番号セルの並びに直交するセルの並びと、の両方に含まれるセルを、スコアセルとして特定する。
次いで、スコアセル特定部1105は、スコア表の画像において、特定された各スコアセルの位置に対応する部分から、名前セル特定処理において認識された数字を、スコアとして決定する(ステップS202)。このとき、スコアセル特定部1105は、各スコアセルの位置に基づいて、そのセルのスコアが、何番目のプレーヤの何ホール目のスコアであるかを決定する。ステップS202が終わると、スコア特定処理は終了する。
スコア特定処理が終了すると、図11に示すように、認識結果出力部1107は、特定された各スコアを、ホール番号に関連付けた各プレーヤのスコア情報を、ユーザ端末3へ送信する(ステップS5)。
ゴルフ場予約サーバ1からスコア情報を受信したユーザ端末3は、スコア情報に基づいてスコアを表示する(ステップS6)。例えば、ユーザ端末3は、スコア画面を表示し、スコア画面内に各スコアを表示する。また、ユーザ端末3は、OUTコースやINコースの合計スコアやグロススコアを表示してもよい。
次いで、ユーザは、ユーザ端末3を操作して、各スコア情報に示されるスコアを出したプレーヤ名を入力する。このとき、ユーザは、何れのスコアを出したプレーヤがそのユーザ自身であるかを選択し、残りのスコアを出した各同伴者名を入力してもよい(ステップS7)。ユーザ端末3は、そのユーザ端末3を利用するユーザの最終的なスコア情報を、そのユーザのユーザIDとともにゴルフ場予約サーバ1へ送信するとともに、スコア情報と同伴者名とを関連付けた各同伴者スコア情報を、ゴルフ場予約サーバ1へ送信する(ステップS8)。このときに、ユーザは、ゴルフをプレーしたゴルフ場及びプレー日を選択してもよい。これに応じて、ユーザ端末3は、選択されたゴルフ場のゴルフ場ID及びプレー日を、ゴルフ場予約サーバ1へ送信してもよい。
ゴルフ場予約サーバ1は、ユーザ端末3から受信されたスコア情報、同伴者スコア情報、ゴルフ場ID、プレー日を、ユーザIDに関連付けてスコアDB14fに記憶させる(ステップS9)。
以上説明したように、本実施形態によれば、ゴルフ場予約サーバ1が、ゴルフのスコア表の撮影画像を取得する。また、ゴルフ場予約サーバ1が、取得された撮影画像内における、スコア表に含まれる複数のセルそれぞれの位置及び面積を示すセル情報を取得する。また、ゴルフ場予約サーバ1が、取得されたセル情報に基づいて、スコア表の複数のセルに含まれる連続する所定数のセルでそれぞれ構成される複数の並びの中から、所定数のセルの面積の合計が最大となる並びを、プレーヤ名が記入される名前セルの並びとして特定する。従って、スコア表の撮影画像から、プレーヤ名が記入されるセルを適切に特定することができる。
ここで、ゴルフ場予約サーバ1が、取得された撮影画像から認識された文字及び取得されたセル情報に基づいて、スコア表の複数のセルの中から、所定の複数のホールそれぞれを示す文字をそれぞれ含む連続する複数のホール番号セルを特定してもよい。また、ゴルフ場予約サーバ1が、特定されたホール番号セルに基づいて、名前セルの並びの候補を限定してもよい。この場合、合計面積の計算量を削減することができる。
ここで、ゴルフ場予約サーバ1が、特定されたホール番号セルが並ぶ方向に対して垂直に並ぶセルの並びに、名前セルの候補を限定してもよい。この場合、候補としての所定数のセルが並ぶ方向を適切に限定することができる。
また、ゴルフ場予約サーバ1が、スコア表の複数のセルのうち、最初のホールを示す文字を含むセルの位置から見て、他のホールを示す文字を含むセルが位置する側の反対側にあるセルから、名前セルの並びの候補を特定してもよい。この場合、セルの位置関係に基づいて、スコア表のうち、候補としての所定数のセルの並びが特定される範囲を限定することができる。
また、ゴルフ場予約サーバ1が、特定された名前セルの位置に基づいて、スコア表の複数のセルのうち、スコアが記入されるスコアセルを特定してもよい。また、ゴルフ場予約サーバ1が、取得された撮影画像において、特定されたスコアセルに対応する画像部分から認識されたスコアを示すスコア情報を出力してもよい。この場合、スコア表に記入されたスコアを出力することができる。
また、ゴルフ場予約サーバ1が、連続する4個の名前セルの並びを特定してもよい。
[2.第2実施形態]
次に、第2実施形態について説明する。本実施形態において、ゴルフ場予約サーバ1は、スコア表において特定された名前セルの画像から、プレーヤ名を認識する。このとき、ゴルフ場予約サーバ1は、ゴルフ場予約システムSの会員の名前を用いて、プレーヤ名を特定してもよい。特に、ゴルフ場予約サーバ1は、ゴルフ場の予約情報(及び同伴者の情報)を用いて、プレーヤ名を特定してもよい。以下に説明する点を除き、本実施形態は、第1実施形態と同じであってもよい。
[2-1.システム制御部の機能概要]
次に、システム制御部11の機能概要について、図14及び図15を用いて説明する。図14は、本実施形態に係るゴルフ場予約サーバ1におけるシステム制御部11の機能ブロックの一例を示す図である。図14において、図4と同一の要素については同一の符号が付されている。本実施形態において、システム制御部11は、撮影画像取得部1101、セル情報取得部1102、ホール番号セル特定部1103、名前セル特定部1104、スコアセル特定部1105、スコア特定部1106、認識結果出力部1107、施設利用情報取得部1108、会員名取得部1109、名前特定部1110等として機能する。
施設利用情報取得部1108は、ゴルフ場を利用するプレーヤを示す施設利用情報を取得する。施設利用情報により示されるプレーヤは、例えばゴルフ場の利用を予定するユーザ、ゴルフ場を現に利用しているユーザ、又はゴルフ場を利用したユーザであってもよい。施設利用情報取得部1108は、施設利用情報として、予約情報を取得する。予約情報は、ゴルフ場の予約者のユーザIDを含む。予約者は、ゴルフ場を利用してゴルフをプレーする予定であるプレーヤである蓋然性がある。また、施設利用情報取得部1108は、予約情報に含まれる一又は複数の組のメンバーリストを取得してもよい。メンバーリストは、予約されたゴルフ場でゴルフのプレーを予定するプレーヤを示す。ここで、施設利用情報取得部1108は、プレー日が今日である予約情報を取得してもよい。また、施設利用情報取得部1108は、プレー日が今日である予約情報において、ゴルフのプレーの開始時刻が現在時刻よりも前である組のメンバーリストを取得してもよい。或いは、ユーザ端末3がスコア表の画像を撮影したとき、ユーザ端末3は、その撮影画像に、例えばジオタギングにより位置情報を付加してもよい。この位置情報は、画像が撮影された位置及び撮影日時を示す。ユーザ端末3は、位置情報が付加された撮影画像を、ゴルフ場予約サーバ1へ送信してもよい。施設利用情報取得部1108は、撮影画像に付加された位置情報と、ゴルフ場DB14cに記憶された各ゴルフ場の住所に基づいて、何れのゴルフ場又はその付近で画像が撮影されたかを判定する。施設利用情報取得部1108は、画像が撮影されたゴルフ場の予約情報であって、且つプレー日が撮影日と一致する予約情報を取得してもよい。或いは、ユーザがゴルフをプレーしたゴルフ場及びプレー日をそのユーザが選択可能なように、専用アプリケーション及びゴルフ場予約サーバ1が構成されてもよい。この場合、施設利用情報取得部1108は、そのユーザが予約者又は同伴者である予約情報であって、且つユーザが選択したゴルフ場及びプレー日の予約情報を取得してもよい。
会員名取得部1109は、ゴルフ予約システムSを利用可能な複数のプレーヤである会員の名前を記憶する会員DB14aから、会員名を取得する。会員名取得部1109は、会員名として、氏名を取得してもよいし、姓又は名を取得してもよい。ゴルフ予約システムSの会員が、スコアカードに記入されたスコアを出したプレーヤの候補として抽出されるので、スコアカードからプレーヤ名を適切に特定することができる。
会員名取得部1109は、全会員の名前を取得してもよいし、所定条件を満たす会員の名前を取得してもよい。例えば、施設利用情報取得部1108により施設利用情報が取得された場合、会員名取得部1109は、複数の会員のうち、施設利用情報により示される会員の名前を取得してもよい。ゴルフ場を利用する会員が、スコアカードに記入されたスコアを出したプレーヤの候補として抽出されるので、スコアカードからプレーヤ名を適切に特定することができる。特に本実施形態において、会員名取得部1109は、予約情報により示される予約者及び同伴者の少なくとも何れか一方の名前を取得してもよい。
会員名取得部1109は、スコア表の撮影画像を送信してきたユーザ端末3のユーザの名前を取得してもよい。スコア表を撮影したユーザは、そのスコア表にスコアが記入されたプレーヤである蓋然性がある。また、会員名取得部1109は、そのユーザのゴルフ場仲間の名前を取得してもよい。
名前特定部1110は、撮影画像取得部1101により取得された撮影画像において、名前セル特定部1104により特定された名前セルのうち、少なくとも一の名前セルに対応する画像部分に基づいて、スコア表に記載されているプレーヤ名を特定する。例えば、セル情報に基づいて、撮影画像のうち、名前セルに対応する画像部分を特定する。撮影画像取得部1101は、特定した画像から、文字認識により、記入された文字を認識する。撮影画像取得部1101は、認識された一又は複数の文字そのものを、スコア表に記載されているプレーヤ名として特定してもよい。
会員名取得部1109により会員名が取得された場合、名前特定部1110は、名前セルに対応する画像部分から認識された名前と、会員名取得部1109により取得された名前と、の比較に基づいて、プレーヤ名を特定してもよい。例えば、名前特定部1110は、認識された名前を構成する文字と、取得された会員名を構成する文字との一致率を計算してもよい。一致率は、認識された名前を構成する文字数と会員名を構成する文字数との合計のうち、認識された名前と会員名との間で一致する文字の割合であってもよい。会員名取得部1109は、画像から認識された名前との一致率が所定値以上である会員名を、スコア表に記載されているプレーヤ名として特定してもよい。画像から認識された名前との一致率が所定値以上である会員が複数人存在する場合、会員名取得部1109は、それらの会員のうち、一致率が最大である会員名を、スコア表に記載されているプレーヤ名として特定してもよい。名前特定部1110は、スコア表に記入された複数のプレーヤ名が互いに異なるプレーヤ名(会員名)となるように、プレーヤ名を特定してもよい。会員名取得部1109により、各組のメンバーリストに含まれるメンバーの名前が取得された場合、名前特定部1110は、例えば組ごとに、その組の全メンバーの名前と、スコア表の画像から認識された全プレーヤの名前とを比較してもよい。名前特定部1110は、組内の全メンバーについて、画像から認識された何れかの名前との一致度が所定値以上であって、且つ最大の一致度が計算された名前が他のメンバーと異なる組を、スコア表にメンバーの名前が記入された組として特定してもよい。そして、名前特定部1110は、特定された組のメンバーの名前から、各プレーヤの名前を特定してもよい。
なお、本実施形態において、名前セル特定部1104は、4個のセルの面積の合計が最大となるセルの並びを特定する以外の方法で、名前セルを特定してもよい。例えば、名前セル特定部1104は、各セルから文字を認識した結果、プレーヤの名前らしい文字が認識されたセルを、名前セルとして特定してもよい。
認識結果出力部1107は、名前特定部1110により特定されたプレーヤ名を出力する。例えば、認識結果出力部1107は、撮影画像から認識されたスコアを示すスコア情報とともに、プレーヤ名を、ユーザ端末3へ送信する。ユーザ端末3は、例えばスコアカード画面に、プレーヤ名及びスコアを表示してもよい。
認識結果出力部1107は、特定された名前セルに対応する画像部分から認識された名前と、会員名取得部1109により取得された会員名と、が対応しない場合、プレーヤ名の誤認識の可能性を示唆する誤認識プレーヤ名情報を出力してもよい。名前が対応しないとは、例えば、画像から認識された何れかの名前について、一致率が所定値以上である会員名が存在しない場合であってもよい。スコア表を撮影したユーザは、ゴルフ場予約システムSの会員であるので、スコア表には、ゴルフ場予約システムSの会員のスコアが記入されている蓋然性が高い。そうした事情にかかわらず、撮影画像から認識されたプレーヤ名が何れかの会員名にも対応しない場合、誤認識の可能性がある。認識結果出力部1107は、誤認識プレーヤ名情報として、誤認識の可能性の有無を示す情報を、ユーザ端末3へ送信してもよい。また、認識結果出力部1107は、誤認識プレーヤ名情報として、誤認識の可能性があるプレーヤ名を示す情報を、ユーザ端末3へ送信してもよい。これにより、認識結果出力部1107、プレーヤ名の誤認識の可能性があることを示す情報を、ユーザ端末3に表示させる。
図15は、プレーヤ名の誤認識の可能性の表示例を示す図である。図15において、図10と同一の要素については同一の符号が付されている。図15に示すスコアカード画面500は、4個のプレーヤ名セル510、複数のスコアセル520、登録ボタン530、メッセージ540、誤認識プレーヤ名情報550等を含む。メッセージ540は、例えば「プレーヤ名の誤認識の可能性があります」、「プレーヤ名を確認してください」、「プレーヤ名を修正してください」等の、誤認識の可能性を示す情報、プレーヤ名の確認又は修正を促す情報であってもよい。誤認識プレーヤ名情報550は、4個のプレーヤ名セル510のうち、何れのプレーヤ名セル510に示されるプレーヤ名の誤認識の可能性があるかを示す情報である。例えば、プレーヤ名の誤認識の可能性があるセル510の表示態様と、他のセル510の表示態様とが異なるように、誤認識プレーヤ名情報550が表示されてもよい。異ならせる表示態様の例として、セルの色彩、プレーヤ名のフォントスタイル、太さ若しくは色彩、セルを囲む線のスタイル、太さ若しくは色彩等が挙げられる。
[2-2.ゴルフ場予約システムの動作]
次に、ゴルフ場予約システムSの動作について、図16及び図17を用いて説明する。図16は、本実施形態に係るゴルフ場予約システムの処理例を示すシーケンス図である。図16において、図11と同一のステップについては同一の番号が付されている。
図16に示すように、先ずステップS1~S3が実行される。次いで、ゴルフ場予約サーバ1は、例えば検出されたスコア表ごとに、プレーヤ名特定処理を実行する(ステップS21)。図17は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部11によるプレーヤ名特定処理の一例を示すフローチャートである。図17に示すように、名前セル特定部1104は、名前セル特定処理で抽出されたスコア表の画像において、特定された各スコアセルの位置に対応する部分から、プレーヤ名を認識する(ステップS301)。例えば、名前セル特定部1104は、学習済みのCNNを用いて、画像からプレーヤ名を認識する。
次いで、会員名取得部1109は、撮影画像を送信してきたユーザ端末3のユーザのユーザIDに関連付けて会員DB14aに記憶された会員情報から、そのユーザの名前を取得する(ステップS302)。次いで、施設利用情報取得部1108は、予約情報DB14dから予約情報を取得する(ステップS303)。例えば、施設利用情報取得部1108は、撮影画像に付加された位置情報から特定されるゴルフ場及びプレー日の予約情報を取得してもよい。次いで、会員名取得部1109は、取得された予約情報に基づいて、予約者及び同伴者の名前を取得する(ステップS304)。例えば、会員名取得部1109は、予約情報から、予約者のユーザIDを取得する。また、会員名取得部1109は、予約情報に含まれるメンバーリストから、各同伴者のユーザIDを取得する。会員名取得部1109は、これらのユーザIDにそれぞれ関連付けて会員DB14aに記憶された会員情報から、名前を取得する。
次いで、名前セル特定部1104は、プレーヤ番号Mを1に設定する(ステップS305)。次いで、名前セル特定部1104は、認識されたプレーヤ名のうち、M番目のプレーヤ名と、ステップS302及びS304で取得された各プレーヤ名との一致率を計算する(ステップS306)。次いで、名前セル特定部1104は、計算された一致率のうち最大の一致率が、所定の閾値未満であるか否かを判定する(ステップS307)。最大の一致率が閾値未満である場合(ステップS307:YES)、名前セル特定部1104は、M番目のプレーヤ名の誤認識の可能性があると決定する(ステップS308)。
最大の一致率が閾値未満ではない場合(ステップS307:NO)、又はステップS308の後、名前セル特定部1104は、番号Mが、認識されたプレーヤ名の数よりも小さいか否かを判定する(ステップS309)。番号Mがプレーヤ名の数よりも小さい場合(ステップS309:YES)、名前セル特定部1104は、番号Mを1増加させて(ステップS310)、処理はステップS306に進む。
一方、番号Mがプレーヤ名の数よりも小さくはない場合(ステップS309:NO)、名前セル特定部1104は、計算された一致率に基づいて、ユーザ端末3に表示させる各プレーヤ名を決定する(ステップS311)。例えば、名前セル特定部1104は、画像から認識されたプレーヤ名との一致率が閾値以上である会員名のうち、その一致率が最大である会員名前を、表示させるプレーヤ名に決定してもよい。名前セル特定部1104は、一致率の最大値が閾値未満であるプレーヤ名が撮影画像から認識された場合、そのプレーヤ名そのものを、表示させるプレーヤ名に決定してもよい。
次いで、名前セル特定部1104は、ステップS308において誤認識の可能性があると判定されたプレーヤ名を示す誤認識プレーヤ名情報を生成し(ステップS312)、プレーヤ名特定処理は終了する。
プレーヤ名特定処理が終了すると、図16に示すように、ステップS4が実行される。次いで、認識結果出力部1107は、撮影画像から認識されたスコア情報、プレーヤ名及び誤認識プレーヤ名情報を、ユーザ端末3へ送信する(ステップS22)。
ユーザ端末3は、ゴルフ場予約サーバ1から受信されたスコア情報及びプレーヤ名を、スコアカード画面に表示する(ステップS23)。次いで、ユーザ端末3は、誤認識プレーヤ名情報に基づいて、誤認識の可能性があるか否かを判定する(ステップS24)。誤認識の可能性がある場合(ステップS24:YES)、ユーザ端末3は、スコアカード画面に、誤認識の可能性を示すメッセージ及び誤認識プレーヤ名情報を表示する(ステップS25)。
誤認識の可能性がない場合(ステップS24:NO)、又はステップS25の後、ユーザは、必要に応じて、プレーヤ名及びスコアを修正する(ステップS26)。ユーザ端末3は、最終的なプレーヤ名及びスコア情報を、そのユーザ端末3のユーザIDとともにゴルフ場予約サーバ1へ送信する(ステップS8)。
ゴルフ場予約サーバ1は、ユーザ端末3から受信したプレーヤ名、スコア情報、ゴルフ場及びプレー日を、ユーザ端末3から受信したユーザIDに関連付けて、スコアDB14fに記憶させる(ステップS27)。ここで、プレーヤ名の中に、スコア情報を送信してきたユーザ端末3のユーザの名前がある場合、ゴルフ場予約サーバ1は、対応するスコア情報を、そのユーザのスコア情報として記憶させてもよい。プレーヤ名のうち、ユーザ端末3のユーザの名前以外のプレーヤ名を同伴者名に決定してもよい。ゴルフ場予約サーバ1は、同伴者名と、対応するスコア情報とを、同伴者スコア情報として記憶させてもよい。また、同伴者名が、プレーヤ名特定処理で取得された会員の名である場合、ゴルフ場予約サーバ1は、その会員のユーザIDに関連付けて、その同伴者のスコア情報、ゴルフ場ID及びプレー日を、スコアDB14fに記憶させてもよい。
以上説明したように、本実施形態によれば、ゴルフ場予約サーバ1が、取得された撮影画像において、特定された名前セルのうち、少なくとも一の名前セルに対応する画像部分に基づいて、プレーヤ名を特定する。また、ゴルフ場予約サーバ1が、特定された名前を示す情報を出力する。従って、スコア表に記入されたプレーヤ名を特定して出力することができる。
ここで、ゴルフ場予約サーバ1が、ゴルフ予約システムSを利用可能な複数の会員の名前を記憶する記憶部14から、会員名を取得してもよい。また、ゴルフ場予約サーバ1が、名前セルに対応する画像部分から認識された名前と、取得された会員名と、の比較に基づいて、プレーヤ名を特定してもよい。この場合、スコア表に記入されたプレーヤ名を適切に特定することができる。
ここで、ゴルフ場予約サーバ1が、複数のプレーヤのうち、ゴルフ場を利用するプレーヤを示す施設利用情報を取得してもよい。また、ゴルフ場予約サーバ1が、複数のプレーヤのうち、取得された施設利用情報により示されるプレーヤ名を取得してもよい。この場合、スコア表に記入されたプレーヤ名は、ゴルフ場を利用するプレーヤ名である可能性が高いので、スコア表に記入されたプレーヤ名を適切に特定することができる。
ここで、ゴルフ場予約サーバ1が、ゴルフ場の利用を予約した予約者と、その予約者とともに、予約されたゴルフ場でゴルフをプレーする予定の同伴者と、の少なくとも何れか一方を示す予約情報を、施設利用情報として取得してもよい。この場合、スコア表に記入されたプレーヤ名は、ゴルフ場を利用するゴルフをプレーする予定であるプレーヤ名である可能性が高いので、スコア表に記入されたプレーヤ名を適切に特定することができる。
また、ゴルフ場予約サーバ1が、名前セルに対応する画像部分から認識された名前と、ゴルフ場予約システムSの会員名と、が対応しない場合、名前の誤認識の可能性を示唆する誤認識プレーヤ名情報を出力してもよい。この場合、スコア表から認識された名前と、ゴルフ予約システムSの会員名と、が対応しない場合、プレーヤ名の誤認識の可能性が示唆される。従って、ユーザは、誤認識の示唆に応じて、プレーヤ名を修正することができる。
[3.第3実施形態]
次に、第3実施形態について説明する。本実施形態において、ゴルフ場予約サーバ1は、ゴルフ場のチェックイン情報を用いて、スコア表の撮影画像からプレーヤ名を特定する。以下に説明する点を除き、本実施形態は、第2実施形態と同じであってもよい。
[3-1.システム制御部の機能概要]
次に、システム制御部11の機能概要について説明する。施設利用情報取得部1108は、施設利用情報として、チェックイン情報を取得する。チェックイン情報は、ゴルフ場の利用を開始したプレーヤを示す。ここで、施設利用情報取得部1108は、プレー日が今日であるチェックイン情報を取得してもよい。或いは、撮影画像に位置情報が付加されている場合、施設利用情報取得部1108は、撮影画像に付加された位置情報により特定されるゴルフ場及びプレー日のチェックイン情報を取得してもよい。或いは、ユーザがゴルフをプレーしたゴルフ場及びプレー日を選択可能なように、専用アプリケーション及びゴルフ場予約サーバ1が構成されてもよい。この場合、施設利用情報取得部1108は、そのユーザが選択したゴルフ場及びプレー日のチェックイン情報を取得してもよい。
会員名取得部1109は、施設利用情報取得部1108により取得されたチェックイン情報により示される会員の名前を取得する。名前特定部1110は、名前セルに対応する画像部分から認識された名前と、会員名取得部1109により取得されたチェックインした会員の名前と、の比較に基づいて、プレーヤ名を特定する。
[3-2.ゴルフ場予約システムの動作]
次に、ゴルフ場予約システムSの動作について、図18を用いて説明する。図18は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部11によるプレーヤ名特定処理の一例を示すフローチャートである。図18において、図17と同一のステップについては同一の番号が付されている。
図18に示すように、先ずステップS301及びS302が実行される。次いで、施設利用情報取得部1108は、チェックインDB14eから、チェックイン情報を取得する(ステップS321)。次いで、会員名取得部1109は、取得されたチェックイン情報に基づいて、チェックインしたユーザの名前を取得する(ステップS322)。例えば、会員名取得部1109は、チェックイン情報から、チェックインしたユーザのユーザIDを取得する。会員名取得部1109は、取得したユーザIDにそれぞれ関連付けて会員DB14aに記憶された会員情報から、名前を取得する。次いで、ステップS305~S312が実行されて、プレーヤ名特定処理は終了する。
以上説明したように、本実施形態によれば、ゴルフ場予約サーバ1が、ゴルフ場においてそのゴルフ場の利用開始の手続きを行ったプレーヤを示すチェックイン情報を、施設利用情報として取得する。この場合、チェックインを行ったプレーヤの名前を用いて、スコア表に記入されたプレーヤ名が特定される。スコア表に記入されたプレーヤ名は、ゴルフ場の利用を開始したプレーヤ名である可能性が高いので、スコア表に記入されたプレーヤ名を適切に特定することができる。
[4.第4実施形態]
次に、第4実施形態について説明する。本実施形態において、ゴルフ場予約サーバ1は、スコア表の画像から認識されたスコアが、基準と比較して逸脱している場合、そのスコアの誤認識の可能性があることを示す情報を出力する。以下に説明する点を除き、本実施形態は、第1実施形態~第3実施形態の何れかと同じであってもよい。
[4-1.システム制御部の機能概要]
次に、システム制御部11の機能概要について、図19及び図20を用いて説明する。図19は、本実施形態に係るゴルフ場予約サーバ1におけるシステム制御部11の機能ブロックの一例を示す図である。図19において、図4と同一の要素については同一の符号が付されている。本実施形態において、システム制御部11は、撮影画像取得部1101、セル情報取得部1102、ホール番号セル特定部1103、名前セル特定部1104、スコアセル特定部1105、スコア特定部1106、認識結果出力部1107、基準スコア取得部1111等として機能する。
基準スコア取得部1111は、ゴルフにおける基準のスコアを取得する。基準のスコアとは、例えば標準的な、一般的な、通常の又は平均的なスコアであってもよい。例えば、規定打数ごとに、予め定められた基準のスコアが記憶部14に記憶されていてもよい。また、予め定められた基準のグロススコアが記憶部14に記憶されていてもよい。基準スコア取得部1111は、基準のスコアとして、例えば標準的な、一般的な、通常の又は平均的なスコアの範囲を取得してもよい。
或いは、基準スコア取得部1111は、ゴルフ予約システムSを利用して予約されたゴルフ場におけるゴルフのプレーにより獲得されたスコアを示すスコア情報を記憶するスコアDB14fに基づいて、基準のスコアを取得してもよい。例えば、基準スコア取得部1111は、スコアDB14fに記憶されたスコアの統計値を、基準のスコアとして取得してもよい。スコアの統計値の例として、平均値、中央値、最頻値等が挙げられる。基準スコア取得部1111は、規定打数ごとに、スコアの統計値を計算してもよい。また、基準スコア取得部1111は、グロススコアの統計値を計算してもよい。基準スコア取得部1111は、例えばスコアの平均値及び標準偏差に基づいて、妥当なスコアの範囲を、基準のスコアとして取得してもよい。何れのゴルフ場でのスコアがスコアカードに記入されたかを特定可能である場合、基準スコア取得部1111は、そのゴルフ場のゴルフ場IDに関連付けられたスコア情報に基づいて、基準のスコアを取得してもよい。例えば、ユーザがスコアカードの撮影画像を送信するとき、ユーザがプレーしたゴルフ場を選択可能に、専用アプリケーションが構成されてもよい。或いは、基準スコア取得部1111は、撮影画像に付加された位置情報から、ゴルフ場を特定してもよい。基準スコア取得部1111は、定期的にスコアの統計値を計算し、記憶部14に統計値を予め記憶させておいてもよい。
認識結果出力部1107は、スコア特定部1106によりスコア表の画像から認識されたスコアと、基準スコア取得部1111により取得された基準のスコアとの比較結果に基づいて、スコアの誤認識の可能性を示唆する誤認識スコア情報を出力する。例えば、スコアセル特定部1105は、認識されたスコアと基準のスコアとの差が所定値以上である場合、誤認識の可能性があると判定してもよい。スコアセル特定部1105は、ホールごとに誤認識の可能性を判定してもよい。また、スコアセル特定部1105は、グロススコアの認識の可能性を判定してもよい。或いは、スコアセル特定部1105は、認識されたスコアが、基準のスコアの範囲外である場合、誤認識の可能性があると判定してもよい。認識結果出力部1107は、誤認識スコア情報として、誤認識の可能性の有無を示す情報を、ユーザ端末3へ送信してもよい。また、認識結果出力部1107は、誤認識スコア情報として、誤認識の可能性があるスコア(プレーヤとホールとの組み合わせ)を示す情報を、ユーザ端末3へ送信してもよい。これにより、認識結果出力部1107は、スコアの誤認識の可能性があることを示す情報を、ユーザ端末3に表示させる。
図20は、スコアの誤認識の可能性の表示例を示す図である。図20において、図10と同一の要素については同一の符号が付されている。図20に示すスコアカード画面500は、4個のプレーヤ名セル510、複数のスコアセル520、登録ボタン530、メッセージ560、誤認識スコア名情報570等を含む。メッセージ560は、例えば「スコアの誤認識の可能性があります」、「スコアを確認してください」、「スコアを修正してください」等の、誤認識の可能性を示す情報、スコアの確認又は修正を促す情報であってもよい。誤認識スコア情報570は、スコアセル520のうち、何れのスコアセル520に示されるスコアの誤認識の可能性があるかを示す情報である。例えば、スコアの誤認識の可能性があるセル520の表示態様と、他のセル520の表示態様とが異なるように、誤認識スコア情報570が表示されてもよい。異ならせる表示態様の例として、セルの色彩、スコアのフォントスタイル、太さ若しくは色彩、セルを囲む線のスタイル、太さ若しくは色彩等が挙げられる。
なお、システム制御部11は、第2実施形態又は第3実施形態の場合と同様に、スコア表の画像において、特定された名前セルに対応する部分から、プレーヤ名を認識し、スコア情報とともにプレーヤ名をユーザ端末3に送信してもよい。また、システム制御部11は、プレーヤ名の誤認識の可能性の有無を判定し、この判定結果に基づいて、誤認識プレーヤ名情報をユーザ端末3へ送信してもよい。
[4-2.ゴルフ場予約システムの動作]
次に、ゴルフ場予約システムSの動作について、図21及び図22を用いて説明する。図21は、本実施形態に係るゴルフ場予約システムの処理例を示すシーケンス図である。図21において、図11と同一のステップについては同一の番号が付されている。図21に示すように、先ずステップS1~S3が実行される。次いで、ゴルフ場予約サーバ1は、例えば検出されたスコア表ごとに、スコア特定処理を実行する(ステップS41)。
図22は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部11によるスコア特定処理の一例を示すフローチャートである。図22において、図13と同一のステップについては同一の番号が付されている。図22に示すように、先ずステップS201及びS202が実行される。
次いで、スコア特定部1106は、プレーヤ番号Mを1に設定する(ステップS221)。次いで、スコア特定部1106は、ホール番号セルの特定結果に基づいて、ホール番号Nを、初期値である1又は10に設定する(ステップS222)。次いで、スコア特定部1106は、第Nホールの平均スコアを取得する(ステップS223)。例えば、スコア特定部1106は、スコア表の画像から、文字認識により各ホールの規定打数を認識してもよい。スコアセル特定部1105は、スコアDB14fに記憶されたスコア情報から、第Nホールの規定打数と同じ規定打数のホールにおけるスコアを取得してもよい。そして、スコア特定部1106は、取得されたスコアの平均値を計算してもよい。或いは、プレーされたゴルフ場が特定された場合、スコア特定部1106は、そのゴルフ場のゴルフ場IDに関連付けられてスコアDB14fに記憶されたスコア情報から、第Nホールのスコアを取得してもよい。そして、スコア特定部1106は、取得されたスコアの平均値を計算してもよい。
次いで、スコア特定部1106は、スコア表においてM番目のプレーヤの名前セルに対応するスコアセルの並びから認識されたスコアのうち、第Nホールのスコアと、取得された平均値との差が、所定の閾値未満であるか否かを判定する(ステップS224)。M番目のプレーヤの第Nホールのスコアと平均値との差が閾値未満ではない場合(ステップS224:NO)、スコア特定部1106は、M番目のプレーヤの第Nホールのスコアの誤認識の可能性があると決定する(ステップS225)。
M番目のプレーヤの第Nホールのスコアと平均値との差が閾値未満である場合(ステップS224:YES)、又はステップS225の後、スコア特定部1106は、ホール番号の初期値に8を加算して、ホール番号の最大値を計算する。従って、スコア特定部1106は、最大値として、9又は18を得る。そして、スコア特定部1106は、ホール番号Nが、最大値未満であるか否かを判定する(ステップS226)。ホール番号Nが最大値未満である場合(ステップS226:YES)、スコア特定部1106は、ホール番号Nを1増加させて(ステップS227)、処理はステップS223に進む。
一方、ホール番号Nが最大値未満ではない場合(ステップS226:NO)、スコア特定部1106は、プレーヤ番号Mが4未満であるか否かを判定する(ステップS228)。プレーヤ番号Mが4未満である場合(ステップS228:YES)、スコア特定部1106は、プレーヤ番号Mを1増加させて(ステップS229)、処理はステップS222に進む。
一方、プレーヤ番号Mが4未満ではない場合(ステップS228:NO)、スコア特定部1106は、ステップS225において誤認識の可能性があると判定されたスコアを示す誤認識スコア情報を生成して(ステップS230)、スコア特定処理は終了する。
スコア特定処理が終了すると、図21に示すように、認識結果出力部1107は、撮影画像から認識されたスコア情報及び誤認識スコア情報を、ユーザ端末3へ送信する(ステップS42)。
ユーザ端末3は、スコア情報に基づいてスコアを、スコアカード画面に表示する(ステップS6)。次いで、ユーザ端末3は、誤認識スコア情報に基づいて、スコアの誤認識の可能性があるか否かを判定する(ステップS43)。誤認識の可能性がある場合(ステップS43:YES)、ユーザ端末3は、スコアカード画面に、誤認識の可能性を示すメッセージ及び誤認識スコア情報を表示する(ステップS44)。誤認識の可能性がない場合(ステップS43:NO)、又はステップS44の後、ステップS7~S9が実行される。
以上説明したように、本実施形態によれば、ゴルフ場予約サーバ1が、ゴルフにおける基準のスコアを取得する。また、ゴルフ場予約サーバ1が、スコア表から認識されたスコアと基準のスコアとの比較結果に基づいて、スコアの誤認識の可能性を示唆する誤認識スコア情報を出力する。従って、ユーザは、誤認識の示唆に応じて、スコアを修正することができる。
ここで、ゴルフ場予約サーバ1が、ゴルフ予約システムSを利用して予約されたゴルフ場において、記憶部14に記憶されたスコアに基づいて、基準のスコアを取得してもよい。この場合、スコア表から認識されたスコアと、ゴルフ予約システムSを利用して予約されたゴルフ場における過去のプレーで獲得されたスコアと、の比較に基づいて、スコアの誤認識が示唆される。従って、過去の実際のプレーによるスコアを用いることで、スコアの誤認識を適切に示唆することができる。
ここで、ゴルフ場予約サーバ1が、記憶部14に記憶されたスコアの統計値を、基準のスコアとして取得してもよい。この場合、例えば過去の標準的なスコアが用いられるので、スコアの誤認識を適切に示唆することができる。
[5.第5実施形態]
次に、第5実施形態について説明する。本実施形態において、ゴルフ場予約サーバ1は、スコア表において特定された名前セルの画像から、プレーヤ名を認識する。このとき、ゴルフ場予約サーバ1は、ゴルフ場予約システムSの会員の名前を用いて、プレーヤ名を特定する。また、ゴルフ場予約サーバ1は、基準のスコアとして、スコア表の画像から名前が認識された会員の過去のスコアを取得する。そして、ゴルフ場予約サーバ1は、スコア表の画像から認識されたスコアが、会員の過去のスコアと比較して逸脱している場合、そのスコアの誤認識の可能性があることを示す情報を出力する。以下に説明する点を除き、本実施形態は、第4実施形態と同じであってもよい。
[5-1.システム制御部の機能概要]
次に、システム制御部11の機能概要について、図23を用いて説明する。図23は、本実施形態に係るゴルフ場予約サーバ1におけるシステム制御部11の機能ブロックの一例を示す図である。図23において、図14又は図19と同一の要素については同一の符号が付されている。本実施形態において、システム制御部11は、撮影画像取得部1101、セル情報取得部1102、ホール番号セル特定部1103、名前セル特定部1104、スコアセル特定部1105、スコア特定部1106、認識結果出力部1107、会員名取得部1109、名前特定部1110、基準スコア取得部1111等として機能する。
会員名取得部1109及び名前特定部1110の機能は、第2実施形態又は第3実施形態の場合と同一であってもよい。ここで、名前特定部1110は、ゴルフ場予約システムSの会員のうち何れかの会員の名前を、スコアカードに記入されたプレーヤ名として特定する。
基準スコア取得部1111は、スコアDB14fに記憶されたスコアのうち、撮影画像において、特定されたスコアセルに対応する画像部分から認識されたスコアを獲得したプレーヤのスコアを、基準のスコアとして取得する。例えば、基準スコア取得部1111は、名前セルに対応する画像部分に基づいて名前特定部1110により特定されたプレーヤ名の会員のユーザIDに関連付けられたスコア情報を取得する。何れのゴルフ場でのスコアがスコアカードに記入されたかを特定可能である場合、基準スコア取得部1111は、そのゴルフ場のゴルフ場IDと、プレーヤ名が特定された会員のユーザIDと、に関連付けられたスコア情報を取得してもよい。複数のスコア情報が取得された場合、基準スコア取得部1111は、複数のスコアの統計値を、基準のスコアとして取得してもよい。統計値の計算方法は、第4実施形態の場合と同じであってもよい。基準スコア取得部1111は、例えばホールごとに又は規定打数ごとに、スコアの統計値を計算してもよい。また、基準スコア取得部1111は、グロススコアの統計値を計算してもよい。
スコア特定部1106は、認識されたスコアと基準のスコアとの差が所定値以上である場合、誤認識の可能性があると判定してもよい。認識結果出力部1107は、スコアセル特定部1105による判定結果に基づいて、誤認識スコア情報を出力する。誤認識の判定方法及び誤認識スコア情報の出力方法は、第4実施形態の場合と同じであってもよい。
なお、システム制御部11は、スコア表の撮影画像から文字認識によりプレーヤを特定するのではなく、例えばスコア表の撮影時に、ユーザが各プレーヤを選択してもよい。また、システム制御部11は、第2実施形態又は第3実施形態の場合と同様に、プレーヤ名の誤認識の可能性の有無を判定し、この判定結果に基づいて、誤認識プレーヤ名情報をユーザ端末3へ送信してもよい。
[5-2.ゴルフ場予約システムの動作]
次に、ゴルフ場予約システムSの動作について、図24及び図25を用いて説明する。図24は、本実施形態に係るゴルフ場予約システムの処理例を示すシーケンス図である。図24において、図16又は図21と同一のステップについては同一の番号が付されている。図24に示すように、先ずステップS1~S3及びS21が実行される。次いで、ゴルフ場予約サーバ1は、例えば検出されたスコア表ごとに、スコア特定処理を実行する(ステップS61)。
図25は、本実施形態に係るゴルフ場予約サーバ1のシステム制御部11によるスコア特定処理の一例を示すフローチャートである。図25において、図22と同一のステップについては同一の番号が付されている。図25に示すように、先ずステップS201、S202及びS221が実行される。
次いで、基準スコア取得部1111は、M番目のプレーヤのスコア情報を取得する(ステップS241)。例えば、基準スコア取得部1111は、M番目のプレーヤ名のユーザのユーザIDに関連付けてスコアDB14fに記憶されているスコア情報を取得する。
次いで、基準スコア取得部1111は、ホール番号Nの初期値を設定する(ステップS222)。次いで、基準スコア取得部1111は、ステップS241で取得されたスコア情報から、第Nホールのスコアを取得する(ステップS242)。例えば、基準スコア取得部1111は、第Nホールの規定打数と同じ規定打数で出たスコアを取得してもよい。或いは、M番目のプレーヤが過去に同じゴルフ場でプレーしたときのスコア情報がある場合、基準スコア取得部1111は、そのゴルフ場の第Nホールのスコアを取得してもよい。次いで、基準スコア取得部1111は、取得されたスコアの平均値を計算する(ステップS243)。
次いで、スコア特定部1106は、スコア表においてM番目のプレーヤの名前セルに対応するスコアセルの並びから認識されたスコアのうち、第Nホールのスコアと、取得された平均値との差が、閾値未満であるか否かを判定する(ステップS224)。M番目のプレーヤの第Nホールのスコアと平均値との差が閾値未満ではない場合(ステップS224:NO)、スコア特定部1106は、M番目のプレーヤの第Nホールのスコアの誤認識の可能性があると決定する(ステップS225)。
M番目のプレーヤの第Nホールのスコアと平均値との差が閾値未満である場合(ステップS224:YES)、又はステップS225の後、スコア特定部1106は、ホール番号の初期値に8を加算して、ホール番号の最大値を計算する。そして、スコア特定部1106は、ホール番号Nが、最大値未満であるか否かを判定する(ステップS226)。ホール番号Nが最大値未満である場合(ステップS226:YES)、スコア特定部1106は、ホール番号Nを1増加させて(ステップS227)、処理はステップS242に進む。
一方、ホール番号Nが最大値未満ではない場合(ステップS226:NO)、スコア特定部1106は、プレーヤ番号Mが4未満であるか否かを判定する(ステップS228)。プレーヤ番号Mが4未満である場合(ステップS228:YES)、スコア特定部1106は、プレーヤ番号Mを1増加させて(ステップS229)、処理はステップS222に進む。
一方、プレーヤ番号Mが4未満ではない場合(ステップS228:NO)、スコア特定部1106は、誤認識スコア情報を生成して(ステップS230)、スコア特定処理は終了する。
スコア特定処理が終了すると、図24に示すように、認識結果出力部1107は、撮影画像から認識されたスコア情報、プレーヤ名及び誤認識スコア情報を、ユーザ端末3へ送信する(ステップS62)。
ユーザ端末3は、スコア情報及びプレーヤ名を、スコアカード画面に表示する(ステップS23)。次いで、ユーザ端末3は、スコアの誤認識の可能性があるか否かを判定する(ステップS43)。誤認識の可能性がある場合(ステップS43:YES)、ユーザ端末3は、誤認識の可能性を示すメッセージ及び誤認識スコア情報を表示する(ステップS44)。
誤認識の可能性がない場合(ステップS43:NO)、又はステップS44の後、ステップS26、S8及びS27が実行される。
以上説明したように、本実施形態によれば、ゴルフ場予約サーバ1が、記憶部14に記憶されたスコアのうち、スコア表の撮影画像から認識されたスコアを獲得した会員のスコアを、基準のスコアとして取得する。従って、スコア表にスコアが記入されたプレーヤ自身の過去のスコアを用いて、スコアの誤認識が示唆される。そのため、スコアの誤認識を適切に示唆することができる。
ここで、ゴルフ場予約サーバ1が、スコア表の撮影画像において、特定された名前セルに対応する画像部分に対する文字認識に基づいて特定された会員のスコアを、記憶部14から取得してもよい。この場合、スコア表の撮影画像に基づいて、スコア表に名前が記入されたプレーヤが特定され、そのプレーヤの過去のスコアを用いて、スコアの誤認識が示唆される。従って、ユーザは、スコアを出したプレーヤを選択する作業を省略することができる。
[6.他の実施形態]
これまで説明してきた実施形態においては、本発明がゴルフに適用されていた。しかしながら、本発明は、ゴルフ以外で、所定数の競技主体間でスコアを競うことが可能な競技に適用されてもよい。競技の例として、スポーツ、ゲーム等が挙げられる。競技主体は、その競技をプレーする主体である。競技主体の例として、プレーヤ、チーム等が挙げられる。各競技主体は、その競技をプレーすることにより、スコアを獲得する。獲得したスコアを、スコア表に記入することができる。スコア表の例として、スコアカード、スコアシート、スコアボード等が挙げられる。
スコアを競う競技主体の数は、基本的には2以上である。スコアを競う競技主体の数又はスコアを競う競技主体の数の上限は、例えばその競技のルール、その競技の慣習、競技をプレーする場所での規則等により決められていてもよい。本発明のスコア表画像処理装置は、対象となる競技のルール、慣習又は規則等に応じた数のセルで構成される複数の並びのうち、その数のセルの面積の合計が最大であるセルの並びを、競技主体の名前が記入されるセルの並びを特定してもよい。
前述した理由と同様の理由により、スコア表において、競技主体の名前が記入される名前セルは、ステージの番号が表示されるセルや、スコアが記入されるセルよりも大きい可能性が高い。単独では名前セルよりも大きいセルは存在するかもしれない。しかしながら、名前セルは、連続して並べられる。連続して所定数並べられたセルの合計面積で考えた場合、名前セルの並びよりも面積が大きいセルの並びが存在する可能は低い。そのため、本発明は、様々な競技に適用可能である。
対象となる競技においては、所定の複数のステージそれぞれでスコアの獲得が可能であってもよい。ステージとは、例えば競技がプレーされる場所、期間、回等を示す。ステージごとにスコアが計算される。そして、全ステージのスコアの合計で勝敗が決定されてもよい。これらのステージも、例えばルール、慣習、規則等により決められていてもよい。例えば、ゴルフの場合、各ステージはホールである。そして、第1ホールから第18ホールの全18ホールのスコアの合計で、成績が決定される。また、ゴルフ場のコースは、第1ホールから第9ホールで構成されるOUTコースと、第10ホールから第18ホールで構成されるINコースに分けられる。従って、ゴルフの場合、所定の複数のステージとは、例えば第1~第9ホール、第10~第18ホール、又は第1~第18ホールであってもよい。
本発明のスコア表画像処理装置は、対象の競技をプレー可能な施設を予約に関する処理を実行する装置に適用されてもよいし、予約に関する処理を実行しない装置に適用されてもよい。競技をプレー可能な施設自体は、予約可能であってもよいし、予約不可能であってもよい。競技をプレー可能な施設の例として、グラウンド、コート、コース等が挙げられる。
本発明のスコア表画像処理装置は、サーバ装置ではなく、スコア表を撮影可能な端末装置に適用されてもよい。
本発明を適用可能なスポーツの一例として、野球が挙げられる。野球の場合、2チーム間でスコアを競う。例えばスコアボードに、2チーム分のスコアの記入が可能である。例えば、何れかのチームのプレーヤ、監督又はその他の人物が、端末装置でスコアボードを撮影する。撮影画像は端末装置からスコア表画像処理装置へ送信される。スコア表画像処理装置は、2個のセルで構成される複数の並びのうち、2個のセルの面積の合計が最大であるセルの並びを、チーム名が記入されるセルの並びとして特定してもよい。野球におけるステージは、イニング(回)である。スコア表画像処理装置は、1~9のイニングの番号をそれぞれ含む連続するセルを特定してもよい。
本発明を適用可能なゲームの一例として、麻雀が挙げられる。麻雀の場合、4人のプレーヤがスコアを競う。例えばスコアシートに、4人分のスコアが記入可能である。3人で麻雀がプレーされる場合もあるが、スコアシートに4人分のスコアが記入可能であればよい。例えば、何れかのプレーヤがスコアボードを撮影する。スコア表画像処理装置は、4個のセルで構成される複数の並びのうち、4個のセルの面積の合計が最大であるセルの並びを、プレーヤ名が記入されるセルの並びとして特定してもよい。