(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024164967
(43)【公開日】2024-11-28
(54)【発明の名称】棋譜記録システム、棋譜記録装置及び棋譜記録プログラム
(51)【国際特許分類】
A63F 3/02 20060101AFI20241121BHJP
【FI】
A63F3/02 521E
【審査請求】有
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023080722
(22)【出願日】2023-05-16
(71)【出願人】
【識別番号】521369219
【氏名又は名称】JCOM株式会社
(74)【代理人】
【識別番号】100087398
【弁理士】
【氏名又は名称】水野 勝文
(74)【代理人】
【識別番号】100128783
【弁理士】
【氏名又は名称】井出 真
(74)【代理人】
【識別番号】100128473
【弁理士】
【氏名又は名称】須澤 洋
(74)【代理人】
【識別番号】100160886
【弁理士】
【氏名又は名称】久松 洋輔
(74)【代理人】
【識別番号】100209060
【弁理士】
【氏名又は名称】冨所 剛
(72)【発明者】
【氏名】田口 和博
(72)【発明者】
【氏名】上園 一知
(57)【要約】 (修正有)
【課題】持ち時間の計測に既存の対局時計を用いる棋譜記録システムを提供。
【解決手段】棋譜を記録する棋譜記録システムは、駒認識部と対局画像取得部と対局時計抽出部と盤面抽出部と手番識別部と持ち時間識別部と消費時間算出部と指し手識別部と棋譜記憶部とを備える。駒認識部は対局に使用する駒を認識する。対局画像取得部はカメラで撮影した盤面と対局時計を収める対局画像を取得する。対局時計抽出部は対局画像から対局時計部分を抽出する。盤面抽出部は対局画像から盤面部分を抽出する。手番識別部は手番を識別して手番の変化を識別する。持ち時間識別部は手番が変化したと識別した場合に対局者の持ち時間を識別する。消費時間算出部は持ち時間に基づき対局者の消費時間を算出する。指し手識別部は盤面部分と駒認識部で認識された駒のデータとに基づき対局者の指し手を識別する。棋譜記憶部は手番と持ち時間と消費時間と指し手とを含む棋譜を記憶する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
棋譜を記録する棋譜記録システムであって、
対局に使用される駒を認識する駒認識部と、
カメラで撮影された、盤面及び対局時計が収められた対局画像を取得する対局画像取得部と、
前記対局画像取得部で取得された該対局画像から対局時計部分を抽出する対局時計抽出部と、
前記対局画像取得部で取得された該対局画像から盤面部分を抽出する盤面抽出部と、
前記対局時計抽出部で抽出された該対局時計部分に基づき、手番を識別して、手番の変化を識別する手番識別部と、
前記手番識別部で手番が変化したと識別された場合に、前記対局時計抽出部で抽出された該対局時計部分に基づき、対局者の持ち時間を識別する持ち時間識別部と、
前記持ち時間識別部で識別された持ち時間に基づき、対局者の消費時間を算出する消費時間算出部と、
前記盤面抽出部で抽出された該盤面部分と、前記駒認識部で認識された駒のデータと、に基づき、対局者の指し手を識別する指し手識別部と、
前記手番識別部で識別された手番と、前記持ち時間識別部で識別された持ち時間と、前記消費時間算出部で算出された消費時間と、前記指し手識別部で識別された指し手と、を含む棋譜を記憶する棋譜記憶部と、
を備えることを特徴とする、棋譜記録システム。
【請求項2】
前記対局画像取得部は、前記カメラで撮影された、対局前の盤面及び対局時計が収められた初期対局画像を取得し、
前記盤面抽出部は、前記対局画像取得部で取得された該初期対局画像から、盤面の初期位置を画定し、
前記対局画像抽出部は、前記対局画像取得部で取得された該初期対局画像から、対局時計の初期位置を画定する
ことを特徴とする、請求項1に記載の棋譜記録システム。
【請求項3】
前記対局時計抽出部は、前記対局画像取得部で取得された前記対局画像において斜めに映る前記対局時計部分を、正面から映る正対画像に変換し、
前記盤面抽出部は、前記対局画像取得部で取得された前記対局画像において斜めに映る前記盤面部分を、真上から映る正対画像に変換する
ことを特徴とする、請求項1に記載の棋譜記録システム。
【請求項4】
前記カメラは、スマートフォンが備えるカメラである
ことを特徴とする、請求項1ないし3のいずれか1つに記載の棋譜記録システム。
【請求項5】
棋譜を記録する棋譜記録装置であって、
対局に使用される駒を認識する駒認識部と、
カメラで撮影された、盤面及び対局時計が収められた対局画像を取得する対局画像取得部と、
前記対局画像取得部で取得された該対局画像から対局時計部分を抽出する対局時計抽出部と、
前記対局画像取得部で取得された該対局画像から盤面部分を抽出する盤面抽出部と、
前記対局時計抽出部で抽出された該対局時計部分に基づき、手番を識別して、手番の変化を識別する手番識別部と、
前記手番識別部で手番が変化したと識別された場合に、前記対局時計抽出部で抽出された該対局時計部分に基づき、対局者の持ち時間を識別する持ち時間識別部と、
前記持ち時間識別部で識別された持ち時間に基づき、対局者の消費時間を算出する消費時間算出部と、
前記盤面抽出部で抽出された該盤面部分と、前記駒認識部で認識された駒のデータと、に基づき、対局者の指し手を識別する指し手識別部と、
前記手番識別部で識別された手番と、前記持ち時間識別部で識別された持ち時間と、前記消費時間算出部で算出された消費時間と、前記指し手識別部で識別された指し手と、を含む棋譜を記憶する棋譜記憶部と、
を備えることを特徴とする、棋譜記録装置。
【請求項6】
棋譜を記録する棋譜記録プログラムであって、
コンピュータに、
対局に使用される駒を認識する駒認識手段と、
カメラで撮影された、盤面及び対局時計が収められた対局画像を取得する対局画像取得手段と、
前記対局画像取得手段で取得された該対局画像から対局時計部分を抽出する対局時計抽出手段と、
前記対局画像取得手段で取得された該対局画像から盤面部分を抽出する盤面抽出手段と、
前記対局時計抽出手段で抽出された該対局時計部分に基づき、手番を識別して、手番の変化を識別する手番識別手段と、
前記手番識別手段で手番が変化したと識別された場合に、前記対局時計抽出手段で抽出された該対局時計部分に基づき、対局者の持ち時間を識別する持ち時間識別手段と、
前記持ち時間識別手段で識別された持ち時間に基づき、対局者の消費時間を算出する消費時間算出手段と、
前記盤面抽出手段で抽出された該盤面部分と、前記駒認識手段で認識された駒のデータと、に基づき、対局者の指し手を識別する指し手識別手段と、
前記手番識別手段で識別された手番と、前記持ち時間識別手段で識別された持ち時間と、前記消費時間算出手段で算出された消費時間と、前記指し手識別手段で識別された指し手と、を含む棋譜を記憶する棋譜記憶手段と、
を実行させることを特徴とする、棋譜記録プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、将棋、囲碁、チェス等において、棋譜を記録する棋譜記録システム、棋譜記録装置及び棋譜記録プログラムに関する。
【背景技術】
【0002】
従来、将棋、囲碁、チェス等において、対局者が対局に集中できるように、棋譜を自動的に記録する棋譜記録システムが種々提案されている。
【0003】
特許文献1は、各対局者の持ち時間をそれぞれカウントする専用の対局時計と、駒を指す盤面の画像を撮影するカメラと、 前記対局時計の対局ボタンスイッチが押されることで、駒を指した後の持ち時間のカウント中断時点を検出するカウント中断検出手段と、対局ボタンスイッチが押されてカウントが中断された旨の通知を受け取った時点で前記カメラによって盤面を撮影し、その盤面の画像を取り込むとともに、取り込んだ画像から駒の動きを検出して棋譜の記録を行なう対局場側パソコンと、を備えた棋譜記録システムを開示している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の棋譜記録システムを使用するためには、対局場側パソコンへの通知を行う機能を備えた専用の対局時計を別途用意しなければならず、既存の対局時計を使用することができない。そのため、対局に至るまでの準備の手間が非常に煩雑となる。
【0006】
この点に鑑み、本発明は、持ち時間の計測に既存の対局時計を用いることができる、棋譜記録システム、棋譜記録装置及び棋譜記録プログラムを提供することを目的とする。
【0007】
上述の課題を解決するため、本発明は、(1) 棋譜を記録する棋譜記録システムであって、駒認識部と、対局画像取得部と、対局時計抽出部と、盤面抽出部と、手番識別部と、持ち時間識別部と、消費時間算出部と、指し手識別部と、棋譜記憶部と、を備えることを特徴とする。駒認識部は、対局に使用される駒を認識する。対局画像取得部は、カメラで撮影された、盤面及び対局時計が収められた対局画像を取得する。対局時計抽出部は、前記対局画像取得部で取得された該対局画像から対局時計部分を抽出する。盤面抽出部は、前記対局画像取得部で取得された該対局画像から盤面部分を抽出する。手番識別部は、前記対局時計抽出部で抽出された該対局時計部分に基づき、手番を識別して、手番の変化を識別する。持ち時間識別部は、前記手番識別部で手番が変化したと識別された場合に、前記対局時計抽出部で抽出された該対局時計部分に基づき、対局者の持ち時間を識別する。消費時間算出部は、前記持ち時間識別部で識別された持ち時間に基づき、対局者の消費時間を算出する。指し手識別部は、前記盤面抽出部で抽出された該盤面部分と、前記駒認識部で認識された駒のデータと、に基づき、対局者の指し手を識別する。棋譜記憶部は、前記手番識別部で識別された手番と、前記持ち時間識別部で識別された持ち時間と、前記消費時間算出部で算出された消費時間と、前記指し手識別部で識別された指し手と、を含む棋譜を記憶する。
【0008】
(2) 前記対局画像取得部は、前記カメラで撮影された、対局前の盤面及び対局時計が収められた初期対局画像を取得し、前記盤面抽出部は、前記対局画像取得部で取得された該初期対局画像から、盤面の初期位置を画定し、前記対局画像抽出部は、前記対局画像取得部で取得された該初期対局画像から、対局時計の初期位置を画定することを特徴とする、(1)に記載の棋譜記録システム。
【0009】
(3) 前記対局時計抽出部は、前記対局画像取得部で取得された前記対局画像において斜めに映る前記対局時計部分を、正面から映る正対画像に変換し、前記盤面抽出部は、前記対局画像取得部で取得された前記対局画像において斜めに映る前記盤面部分を、真上から映る正対画像に変換することを特徴とする、(1)に記載の棋譜記録システム。
【0010】
(4) 前記カメラは、スマートフォンが備えるカメラであることを特徴とする、(1)ないし(3)のいずれか1つに記載の棋譜記録システム。
【0011】
(5) 棋譜を記録する棋譜記録装置であって、駒認識部と、対局画像取得部と、対局時計抽出部と、盤面抽出部と、手番識別部と、持ち時間識別部と、消費時間算出部と、指し手識別部と、棋譜記憶部と、を備えることを特徴とする。駒認識部は、対局に使用される駒を認識する。対局画像取得部は、カメラで撮影された、盤面及び対局時計が収められた対局画像を取得する。対局時計抽出部は、前記対局画像取得部で取得された該対局画像から対局時計部分を抽出する。盤面抽出部は、前記対局画像取得部で取得された該対局画像から盤面部分を抽出する。手番識別部は、前記対局時計抽出部で抽出された該対局時計部分に基づき、手番を識別して、手番の変化を識別する。持ち時間識別部は、前記手番識別部で手番が変化したと識別された場合に、前記対局時計抽出部で抽出された該対局時計部分に基づき、対局者の持ち時間を識別する。消費時間算出部は、前記持ち時間識別部で識別された持ち時間に基づき、対局者の消費時間を算出する。指し手識別部は、前記盤面抽出部で抽出された該盤面部分と、前記駒認識部で認識された駒のデータと、に基づき、対局者の指し手を識別する。棋譜記憶部は、前記手番識別部で識別された手番と、前記持ち時間識別部で識別された持ち時間と、前記消費時間算出部で算出された消費時間と、前記指し手識別部で識別された指し手と、を含む棋譜を記憶する。
【0012】
(6) 棋譜を記録する棋譜記録プログラムであって、コンピュータに、駒認識手段と、対局画像取得手段と、対局時計抽出手段と、盤面抽出手段と、手番識別手段と、持ち時間識別手段と、消費時間算出手段と、指し手識別手段と、棋譜記憶手段と、を実行させることを特徴とする。駒認識手段は、対局に使用される駒を認識する。対局画像取得手段は、カメラで撮影された、盤面及び対局時計が収められた対局画像を取得する。対局時計抽出手段は、前記対局画像取得手段で取得された該対局画像から対局時計部分を抽出する。盤面抽出手段は、前記対局画像取得手段で取得された該対局画像から盤面部分を抽出する。手番識別手段は、前記対局時計抽出手段で抽出された該対局時計部分に基づき、手番を識別して、手番の変化を識別する。持ち時間識別手段は、前記手番識別手段で手番が変化したと識別された場合に、前記対局時計抽出手段で抽出された該対局時計部分に基づき、対局者の持ち時間を識別する。消費時間算出手段は、前記持ち時間識別手段で識別された持ち時間に基づき、対局者の消費時間を算出する。指し手識別手段は、前記盤面抽出手段で抽出された該盤面部分と、前記駒認識手段で認識された駒のデータと、に基づき、対局者の指し手を識別する。棋譜記憶手段は、前記手番識別手段で識別された手番と、前記持ち時間識別手段で識別された持ち時間と、前記消費時間算出手段で算出された消費時間と、前記指し手識別手段で識別された指し手と、を含む棋譜を記憶する。
【発明の効果】
【0013】
本発明によれば、既存の対局時計を用いて持ち時間を計測することができるため、対局に至るまでの準備の手間の煩雑さが軽減される。
【図面の簡単な説明】
【0014】
【
図1】本実施形態に係る情報処理システムの一例を示す図である。
【
図2】スマートフォン2のハードウェア構成を示す図である。
【
図3】棋譜記録システム7の機能構成を示す図である。
【
図4】盤面及び対局時計を撮影するスマートフォン2の設置例である。
【
図5】
図4に示すスマートフォン2によって上斜方向から撮影された盤面および対局時計の概略図を示す。
【
図8】棋譜記録システム7において行われる処理の全体流れのフローチャートである。
【
図9】棋譜記録システム7において行われる棋譜記録処理のフローチャートである。
【
図10】本実施形態の棋譜記録システムに係る棋譜記録プログラムを実行するコンピュータの一例を示す。
【発明を実施するための形態】
【0015】
以下に、本発明の実施形態について説明する。なお、以下の実施形態では、本発明を将棋に適用した場合を示す。
図1は、本実施形態に係る情報処理システムの一例を示す図である。情報処理システム1は、スマートフォン2と、ゲートウェイ3と、データベース4と、サーバ5と、データ配信サーバ6と、を有する。ゲートウェイ3と、データベース4と、サーバ5と、データ配信サーバ6と、はネットワークAを介して接続される。スマートフォン2及びゲートウェイ3は、無線通信によって接続される。
【0016】
ネットワークAとしては、有線であるか無線であるかを問わず、インターネットやLAN(Local Area Network)、VPN(Virtual Private Network)等、任意の種類の通信網を用いることができる。スマートフォン2及びゲートウェイ3の接続に用いられる無線通信としては、5G、LTE(Long Term Evolution)、WiFi(Wireless Fidelity)等の無線通信のほか、ブルートゥース(登録商標)等の近距離無線通信を用いることができる。
【0017】
スマートフォン2は、カメラ21と、棋譜記録システム7と、を備える。カメラ21で撮影された対局画像(盤面及び対局時計が収められた画像)に基づき、棋譜記録システム7で棋譜を記録する。
【0018】
ゲートウェイ3は、スマートフォン2をネットワークAに接続する。ゲートウェイ3は、スマートフォン2から、棋譜記録システム7によって記録された棋譜データや対局データなどを受信し、ネットワークAを介してデータベース4に送信する。対局データは、ユーザによって入力される対局に関するデータであり、例えば、棋戦名、先手及び後手の対局者名、最初の持ち時間、棋戦場所、手合割などのデータである。
【0019】
データベース4は、スマートフォン2から送られた棋譜データや対局データのほか、棋譜記録システム7に登録された会員データや、以前の対局で用いられた駒データなどを保存する。データベース4において、棋譜データや対局データ、会員データを紐づけておくことで、例えば所定の会員の棋譜データの一覧を検索することが容易となる。
【0020】
サーバ5は、各スマートフォン2が備える棋譜記録システム7を管理するサーバ装置である。データベース4は、サーバ5に設けられてもよく、サーバ5とは別の装置として設けられてもよい。
【0021】
データ配信サーバ6は、データベース4に保存された棋譜データや対局データを読み出して、棋譜記録システム7が記録した棋譜の配信などを行うサーバ装置である。データ配信サーバ6は、サーバ5に組み込まれてもよく、サーバ5とは異なるコンピュータ等で構成されてもよい。
【0022】
対局者は、データ配信サーバ6から配信された自分や他者の棋譜を確認することで、効率的に将棋の技術を上達させることができる。また、将棋初心者は、他者の棋譜を見ることにより、将棋の基本的なルールを学習することができるとともに、指し手や消費時間で対局の雰囲気を感じることができる。
【0023】
(ハードウェア構成)
図2は、スマートフォン2のハードウェア構成を示す図である。
図2を参照して、スマートフォン2は、カメラ21のほか、無線部22、二次記憶装置23、一次記憶装置24、プロセッサ25を有する。
【0024】
無線部22は、スマートフォン2に設けられたアンテナ22aを介して、ゲートウェイ3と無線通信を行うための通信インターフェースである。無線通信の方法については、上述の為、説明を省略する。
【0025】
二次記憶装置23や一次記憶装置24は、各種のデータ(カメラ21で撮影された対局画像データを含む)やプログラムを記憶する記憶装置である。プロセッサ25は、後述する各処理を実行するプログラムを二次記憶装置23から読みだして一次記憶装置24に展開し、読みだしたプログラムを実行する。
【0026】
(機能構成)
図3は、棋譜記録システム7の機能構成を示す図である。
図3を参照して、棋譜記録システム7は、対局データ取得部701と、対局画像取得部702と、対局時計抽出部703と、盤面抽出部704と、駒認識部706と、手番識別部707と、持ち時間識別部708と、消費時間算出部709と、指し手識別部710と、記憶部711と、送受信部723と、を有する。記憶部711は、対局データDB712と、対局画像DB713と、対局時計DB714と、盤面DB715と、駒データDB717と、棋譜記憶部718と、を有する。棋譜記憶部718は、手番DB719と、持ち時間DB720と、消費時間DB721と、指し手DB722と、を有する。なお、送受信部723は、ハードウェア構成における無線部22及びアンテナ22aに相当する。記憶部711は、二次記憶装置23や一次記憶装置24に格納される。対局データ取得部701と、対局画像取得部702と、対局時計抽出部703と、盤面抽出部704と、駒認識部706と、手番識別部707と、持ち時間識別部708と、消費時間算出部709と、指し手識別部710と、は、プロセッサ25が有する電子回路の一例や、プロセッサ25が実行するプロセスの一例である。
【0027】
対局データ取得部701は、対局者によって入力された対局データを取得し、記憶部711が備える対局データDB712に保存する。対局データについては、既に説明を行ったため、ここでは説明を省略する。対局データDB712に格納された対局データは、送受信部723から、ネットワークAを介してデータベース4へと送られて保存される。
【0028】
対局画像取得部702は、所定の時間間隔ごとに、盤面及び対局時計をカメラ21で撮影し、撮影された対局画像(盤面及び対局時計が収められた画像)を取得する。カメラ21で撮影する時間間隔は、特に限定されないが、手番の変化を識別するのに十分短い時間間隔であればよく、例えば、30ミリ秒以上150ミリ秒以下のうち任意の時間間隔に設定することができる。対局画像取得部702は、取得した各対局画像を、記憶部711が備える対局画像DB713に保存する。対局画像取得部702で取得される対局画像は、カメラ21で静止画撮影した静止画であってもよく、カメラ21で動画撮影した動画像の一部をキャプチャした静止画であってもよい。
【0029】
対局時計抽出部703は、対局画像取得部702で取得されて対局画像DB713に保存された各対局画像を読み出して、対局画像ごとに対局時計部分を抽出し、記憶部711の対局時計DB714に保存する。対局時計抽出部703による対局時計部分の抽出方法については、後述する。
【0030】
盤面抽出部704は、対局画像取得部702で取得されて対局画像DB713に保存された各対局画像を読み出して、対局画像ごとに盤面部分を抽出し、記憶部711の盤面DB715に保存する。盤面抽出部704による盤面部分の抽出方法については、後述する。
【0031】
駒認識部706は、対局に使用される駒を認識する処理部である。
対局に使用される駒が、以前対局を行った駒と同一の駒であるなど、データベース4に駒データとして既に記憶されている場合には、駒認識部706が、送受信部723を介して、データベース4から当該駒データを読み込み、読み込んだ駒データを、対局に使用される駒として認識する。駒認識部706で認識された駒データは、記憶部711の駒データDB717に保存される。
一方、対局に使用される駒が新規の駒である場合には、予めカメラ21で撮影して盤面抽出部704で抽出され、記憶部711の盤面DB715に記憶された、駒が配置された盤面を用いる。駒認識部706は、盤面DB715に記憶された盤面から駒を識別することによって、当該駒を対局に使用される駒として認識する。駒認識部706における駒の識別方法としては、例えば人工知能における機械学習を利用した方法を採用することができるが、これに限られず、種々の識別方法を採用することができる。駒認識部706で認識された駒データは、記憶部711の駒データDB717に保存される。駒データDB717に保存された駒データは、送受信部723を介して、データベース4へと送られて保存される。なお、駒認識部706で駒の認識に用いられる画像として、駒1つ1つを別々に撮影した画像を用いてもよい。
【0032】
手番識別部707は、対局時計抽出部703で抽出されて対局時計DB714に保存された対局時計部分を読み出して、対局者の手番を識別し、手番の変化を識別する。手番識別部707における手番の識別方法については、後述する。手番識別部707で識別された手番のデータは、棋譜記憶部718の手番DB719に保存される。
【0033】
持ち時間識別部708は、対局時計抽出部703で抽出されて対局時計DB714に保存された対局時計部分を読み出して、対局者の持ち時間を識別する。持ち時間識別部708における持ち時間の識別方法については、後述する。持ち時間識別部708で識別された持ち時間のデータは、棋譜記憶部718の持ち時間DB720に保存される。
【0034】
消費時間算出部709は、持ち時間識別部708で識別されて持ち時間DB720に保存された持ち時間データを読み出し、該持ち時間データに基づき、指し手を指すまでの時間(消費時間)を算出する。すなわち、消費時間算出部709は、ある対局者が前の指し手を指した時点での持ち時間と、当該対局者が次の指し手を指した時点での持ち時間と、の差分を、消費時間として算出する。消費時間算出部709で算出された消費時間のデータは、棋譜記憶部718の消費時間DB721に保存される。
【0035】
指し手識別部710は、盤面抽出部704で抽出され盤面DB715に保存された盤面部分及び駒認識部706で認識されて駒データDB717に保存された駒データを読み出し、該盤面部分から、対局者が行った指し手を識別する。指し手識別部710における指し手の識別方法については、後述する。指し手識別部710で識別された指し手のデータは、棋譜記憶部718の指し手DB722に保存される。
【0036】
棋譜記憶部718は、手番DB719に保存された手番と、持ち時間DB720に保存された持ち時間と、消費時間DB721に保存された消費時間と、指し手DB722に保存された指し手と、を同期して保存している。これにより、棋譜記憶部718において、それぞれが同期した、手番データと、持ち時間データと、消費時間データと、指し手データと、を含むデータ(棋譜データ)が作成される。作成された棋譜データは、送受信部723からネットワークAを介してデータベース4へと送られて格納される。
【0037】
(盤面及び対局時計の抽出について)
対局画像取得部702で取得された対局画像から、盤面及び対局時計を抽出する構成について、以下に説明する。
図4は、盤面及び対局時計を撮影するスマートフォン2の設置例である。
図4を参照して、スマートフォン2は、机11に取り付けられたアーム12の先端の保持部13に保持されている。保持部13はボール部14によって3次元回転可能に形成されており、保持部13の角度を調整することによって、スマートフォン2の角度を調整することができる。スマートフォン2は、カメラ21の撮影可能範囲(
図4に破線で示す)に、盤面8及び対局時計10が収まるように、その角度が調整される。
【0038】
図5は、
図4に示すスマートフォン2によって上斜方向から撮影された盤面および対局時計の概略図を示す。対局時計10は、一対のLED101a、101bと、一対の持ち時間表示部102a、102bと、一対の着手ボタン103a、103bと、を備える。LED101a、101bは、点灯/消灯によって手番を示すものであり、例えばLED101aが点灯し、LED101bが消灯している場合、
図5における左側の対局者の手番であることを示す。持ち時間表示部102a、102bには、各対局者の持ち時間が表示され、本実施形態では、デジタル形式(デジタル数字で持ち時間を示す形式)を採用している。現在手番の対局者(
図5の左側の対局者)が指し終わって着手ボタン103aを押すと、LED101aが消灯して持ち時間表示部102aが停止するとともに、LED101bが点灯して持ち時間表示部102bが作動し、手番が
図5の右側の対局者へと変更される。
【0039】
手番識別部707は、対局時計抽出部703で抽出された対局時計部分のうち、一対のLED101a、101bに相当する部分を認識して、LED101a、101bの点灯/消灯状態を読み取る。この読み取ったLED101a、101bの点灯/消灯状態に基づいて、手番を識別する。この識別処理を、対局時計抽出部703で抽出された対局時計部分ごとに行うことで、手番の変化を識別する。
【0040】
持ち時間識別部708は、対局時計抽出部703で抽出された対局時計部分のうち、一対の持ち時間表示部102a、102bに相当する部分を認識して、持ち時間表示部102a、102bに表示された持ち時間を読み取り、手番である対局者の持ち時間を識別する。
【0041】
また、指し手識別部710では、盤面抽出部704で抽出されて盤面DB715に記憶された盤面部分及び駒認識部706で認識されて駒データDB717に保存された駒データを読み出し、盤面8における全てのマスの状態(駒の有無、駒の種類)を検出する。このマス状態検出処理を、手番が変化する前後の盤面部分で行うことで、盤面部分のマスの状態の変化を検出し、指し手を識別する。なお、マス状態検出処理は、盤面抽出部704で抽出された各盤面部分に対して行ってもよい。ここで、指し手識別部710における指し手の識別方法について、
図6及び
図7を参照して詳細に説明する。
図6は、盤面における駒の移動の例を示す。
図7は、盤面における駒の移動の他の例を示す。
【0042】
まず、
図6を参照して、マス状態の変化前を示す(A)では、マス「4四」に「角」が配置されているが、マス状態の変化後を示す(B)では、マス「4四」の「角」がなくなり、マス「2二」に「馬」が配置されている。したがって、指し手識別部710は、「角」がマス「4四」からマス「2二」に移動して「成った」と識別し、指し手を「2二角成」と判定する。このように、マスの状態が2マス変化した場合(
図6では「4四」及び「2二」)、指し手識別部710は「駒を動かす動作が行われた」と識別することができる。なお、駒の判別は、駒認識部706で認識されて駒データDB717に保存された駒データを指し手識別部710が読み出し、該駒データと照合することで行われる。
【0043】
次に、
図7を参照して、マス状態の変化前を示す(C)と比較して、マス状態の変化後を示す(D)では、マス「2二」に「金」が配置されている。したがって、指し手識別部710は、マス「2二」に、持ち駒である「金」が置かれたと識別し、指し手を「2二金」と判定する。このように、マスの状態が1マス変化した場合(図では「2二」)、指し手識別部710は「持ち駒を置く動作が行われた」と識別することができる。駒の判別方法については、上述の為、説明を省略する。
【0044】
このように、本発明によれば、持ち時間の識別及び消費時間の算出は、対局画像取得部702においてカメラ21で撮影して取得された対局画像から抽出された対局時計部分に基づいて行われる。したがって、特許文献1のように専用の対局時計を別途用意する必要がなく、既存の対局時計を用いて持ち時間を測定することができる。そのため、対局に至るまでの準備の手間の煩雑さが軽減される。
【0045】
また、上述の特許文献1に記載の棋譜記録システムによれば、対局者が、対局時計に備えられた対局ボタンスイッチを押すことで、(1)該対局者の持ち時間のカウントが中断して、カウント中断検出手段がカウント中断時点を検出するとともに、(2)対局ボタンスイッチが押された旨が対局場側パソコンに通知される。そして、該通知を受け取った該対局場側パソコンが、盤面の画像をカメラで撮影して取り込む。すなわち、特許文献1に記載の棋譜記録システムでは、持ち時間のカウントは、「対局ボタンスイッチが押された時点」で中断される一方、盤面の画像の撮影は、「対局ボタンスイッチが押されたことが対局場側パソコンに通知された時点」で行われる。したがって、持ち時間のカウント中断時点と、盤面の画像をカメラで撮影する時点と、ではタイムラグが生じる。そのため、対局者の持ち時間に対応した棋譜を精度よく記録できず、棋譜が不正確となる可能性がある。
【0046】
これに対し、本発明は、対局画像取得部702において、カメラ21で撮影された対局画像(盤面及び対局時計が収められた画像)を取得する。そして、該対局画像から、対局時計部分を抽出して手番及び持ち時間を識別するとともに、盤面部分を抽出して指し手を識別する。すなわち、本発明では、対局者の持ち時間を識別するための対局時計が写された画像に、該持ち時間における盤面が写されている。そのため、対局者の持ち時間と棋譜が必然的に対応し、対局者の持ち時間に対応した棋譜を精度よく記録することができる。
【0047】
また、実際に将棋を指す場合、動かした駒から手を離した瞬間に指し手が確定するため、駒を動かしてから指し手が確定されるまでのタイムラグは生じ得ない。本発明によれば、上述の通り、対局者の持ち時間と棋譜が必然的に対応するため、実際に将棋を指している状況をより忠実に記録することができる。
【0048】
ここで、
図4に示すように、本実施形態では、スマートフォン2のカメラ21は、アーム12の保持部13に保持されて上斜方向から盤面8及び対局時計10を撮影する。そのため、
図5に示すように、カメラ21で撮影された対局画像では、対局時計10および盤面8が斜めに映ることとなる。
【0049】
そのため、対局時計抽出部703は、対局画像(
図5)において斜めに映る対局時計部分を、正面から映る正対画像に変換する変換機能を有することが好ましい。対局時計部分を正対画像に変換することによって、LED101a、101bの点灯/消灯状態が読み取りやすくなるため、手番識別部707における手番の識別が容易となるとともに、持ち時間表示部102a、102bに表示される持ち時間が読み取りやすくなるため、持ち時間識別部708における持ち時間の識別が容易となる。対局時計抽出部703における正対画像への変換方法として、本実施形態では、対局画像において斜めに映る対局時計部分の頂点を識別し、アフィン変換や射影変換を用いて正対画像に変換する方法を採用するが、正対画像への変換方法はこれに限られず、種々の既知の変換方法を採用することができる。
【0050】
また、盤面抽出部704は、対局画像(
図5)において斜めに映る盤面部分を、真上から映る正対画像に変換する変換機能を有することが好ましい。盤面部分を正対画像に変換することによって、駒の配置が読み取りやすくなるため、指し手識別部710における指し手の識別が容易となる。盤面抽出部704における正対画像への変換方法として、本実施形態では、対局画像において斜めに映る盤面部分の頂点を識別し、アフィン変換や射影変換を用いて正対画像に変換する方法を採用するが、正対画像への変換方法はこれに限られず、種々の既知の変換方法を採用することができる。
【0051】
好ましくは、対局を開始する前に、対局時計抽出部703及び盤面抽出部704によって、対局画像(
図5)における盤面部分及び対局時計部分の初期位置を、予め画定させる。具体的には、
図5を参照して、カメラ21によって撮影された対局画像(
図5)において、対局時計10の頂点を対局時計抽出部703で識別し、該頂点を通るように対局時計10の初期位置T1を画定するとともに、盤面8の頂点を盤面抽出部704で識別し、該頂点を通るように盤面8の初期位置T2を画定する。対局中、盤面8や対局時計10の位置は基本的に変わらないため、対局時計10の初期位置T1及び盤面8の初期位置T2を予め画定することにより、初期位置T1及びT2に基づいて、対局中の対局画像における対局時計部分及び盤面部分を高精度に抽出することができる。これにより、対局画像(
図5)における盤面部分及び対局時計部分の初期位置を予め画定させない構成と比較して、手番や持ち時間、指し手をより正確に識別することができる。
【0052】
(処理の流れ)
本発明における棋譜記録システム7において行われる処理の流れを説明する。
図8は、棋譜記録システム7において行われる処理の全体流れのフローチャートである。
図8を参照して、対局を開始するにあたり、まず、棋譜記録システム7の駒認識部706において、対局に使用される駒を認識する。対局に使用される駒のデータがデータベース4に存する場合(S10 Yes)、駒認識部706が、ネットワークAを介して、データベース4から当該駒データを読み込み(S20)、読み込んだ駒データを、対局に使用される駒として認識する(S60)。駒認識部706で認識された駒データは、記憶部711の駒データDB717に保存される。
【0053】
一方、対局に使用される駒のデータがデータベース4に存しない場合(S10 No)、まず、対局画像取得部702が、駒が配置された盤面をカメラ21で撮影し、撮影された盤面画像を取得する(S30)。対局画像取得部702で取得された盤面画像は、対局画像DB713に保存される。盤面抽出部704が、対局画像DB713に保存された該盤面画像を読み出し、該盤面画像から盤面部分を抽出する(S40)。抽出された盤面部分は、記憶部711の盤面DB715に保存される。駒認識部706は、盤面DB715に保存された盤面から駒を識別して(S50)、当該駒を対局に使用される駒として認識する(S60)。駒認識部706で認識された駒データは、記憶部711の駒データDB717に保存される。駒データDB717に保存された駒データは、送受信部723からネットワークAを介して送られ、データベース4に保存される。
【0054】
続いて、対局データ取得部701が、ユーザによって入力された対局データを取得し、記憶部711が備える対局データDB712に格納する(S70)。対局データDB712に格納された対局データは、送受信部723から、ネットワークAを介してデータベース4へと送られて保存される。
【0055】
続いて、対局画像取得部702が、対局前の盤面8及び対局時計10をカメラ21で撮影し、撮影された初期対局画像(対局前の盤面及び対局時計が収められた画像)を取得する(S75)。対局画像取得部702で取得された初期対局画像は、対局画像DB713に保存される。
【0056】
盤面抽出部704が、対局画像DB713から読み出した初期対局画像から、盤面8の頂点を識別し、該頂点を通るように盤面8の初期位置T2を画定する(S80)。対局前に盤面8の初期位置T2を画定させることにより(S80 Yes)、初期位置T2に基づいて、対局中の対局画像における盤面部分を高精度に抽出することができる。一方、盤面抽出部704で盤面8の初期位置T2が画定できない場合には(S80 No)、ユーザによって、スマートフォン2や保持部13の角度が調整されることによって、盤面抽出部704が盤面8の頂点を識別できる位置となるように、カメラ21の撮影可能範囲が調整される(S90)。その後、対局画像取得部702が、対局前の盤面8及び対局時計10をカメラ21で撮影して、初期対局画像を再度取得し、対局画像DB713に保存する(S75)。そして、盤面抽出部704が、対局画像DB713から読み出した初期対局画像から、盤面8の初期位置T2を再度画定する(S80)。
【0057】
盤面抽出部704による初期位置T2の画定後(S80)、対局時計抽出部703が、対局画像DB713から読み出した初期対局画像から、対局時計10の頂点を識別し、該頂点を通るように対局時計10の初期位置T1を画定する(S100)。対局前に対局時計10の初期位置T1を画定させることにより(S100 Yes)、初期位置T1に基づいて、対局中の対局画像における対局時計部分を高精度に抽出することができる。一方、対局時計抽出部703で対局時計10の初期位置T1が画定できない場合には(S100 No)、ユーザによって、対局時計抽出部703が対局時計10の頂点を識別できる位置となるように、対局時計10の位置が調整される(S110)。その後、対局画像取得部702が、対局前の盤面8及び対局時計10をカメラ21で撮影し、初期対局画像を再度取得し、対局画像DB713に保存する(S75)。そして、盤面抽出部704が、対局画像DB713から読み出した初期対局画像から、盤面8の初期位置T2を再度画定し(S80)、 盤面8の初期位置T2が画定された場合(S80 Yes)、対局時計抽出部703が、対局画像DB713から読み出した初期対局画像から、対局時計10の初期位置T1を再度画定する(S100)。なお、本フローによれば、対局時計抽出部703で対局時計10の初期位置T1が画定できない場合であっても(S100 No)、盤面8の初期位置T2は既に画定されている(S80)。そのため、ユーザによる対局時計10の位置調整(S110)及び、対局画像取得部702による初期対局画像の再取得(S75)の後工程である、盤面8の初期位置T2の再画定(S80)を省略することができる。
【0058】
その後、ユーザによって記録開始が指示されると(S120)、棋譜記録システム7で対局の棋譜データが記録される(S130)。ユーザによって記録終了が指示されると(S150)、棋譜記録システム7で記録された棋譜データが、送受信部723からネットワークAを介してデータベース4に送られて格納される(S160)。
【0059】
棋譜記録システム7によって行われる、棋譜を記録する詳細なフローについて説明する。
図9は、棋譜記録システム7において行われる棋譜記録処理のフローチャートである。まず、対局画像取得部702が、カメラ21で盤面8及び対局時計10を撮影し、対局画像(盤面8及び対局時計10が収められた画像)を取得する(S131)。対局画像取得部702で取得された対局画像は、対局画像DB713に保存される。
【0060】
対局時計抽出部703が、対局画像DB713に保存された対局画像を読み出して、該対局画像における対局時計部分を抽出する(S132)。抽出された対局時計部分は、記憶部711の対局時計DB714に保存される。
【0061】
手番識別部707が、対局時計抽出部703で抽出されて対局時計DB714に保存された対局時計部分を読み出し、手番を識別する(S133)。手番識別部707における手番の識別方法については、上述のため、説明を省略する。手番識別部707で識別された手番のデータは、棋譜記憶部718の手番DB719に保存される。
【0062】
S133で識別された手番に基づき、手番識別部707が、手番が変化したか否かを識別する(S134)。手番が変化していないと識別された場合には(S134 No)、所定時間経過後、再度対局画像取得部702が、盤面8及び対局時計10をカメラ21で撮影して、対局画像を取得する(S131)。対局画像取得部702で取得された対局画像は、対局画像DB713に保存される。そして、対局時計抽出部703が、対局画像DB713に保存された対局画像を読み出し、対局時計部分を再度抽出する(S132)。一方、手番が変化したと識別された場合には(S134 Yes)、持ち時間識別部708が、S132において対局時計抽出部703で抽出されて対局時計DB714に保存された対局時計部分を読み出し、手番だった対局者(対局者Xとする)の持ち時間を識別する(S135)。持ち時間識別部708における持ち時間の識別方法については、上述のため、説明を省略する。持ち時間識別部708で識別された持ち時間のデータは、棋譜記憶部718の持ち時間DB720に保存される。
【0063】
消費時間算出部709は、持ち時間DB720に保存された持ち時間データを読み出し、対局者Xが前回の指し手を終えた時の持ち時間と、対局者Xが今回の指し手を終えた時の持ち時間と、の差分を、消費時間として算出する(S136)。消費時間算出部709で算出された消費時間は、棋譜記憶部718の消費時間DB721に保存される。
【0064】
続いて、盤面抽出部704が、S131で取得されて対局画像DB713で保存されている対局画像を読み出し、該対局画像における盤面部分を抽出する(S137)。抽出された盤面部分は、記憶部711の盤面DB715に保存される。
【0065】
続いて、指し手識別部710が、盤面抽出部704で抽出され盤面DB715に保存された盤面部分(S137)及び駒認識部706で認識されて駒データDB717に保存された駒データ(S60)を読み出し、対局者Xが行った指し手を識別する(S138)。指し手識別部710における指し手の識別方法については、上述のため、説明を省略する。指し手識別部710で識別された指し手は、棋譜記憶部718の指し手DB722に保存される。
【0066】
対局が終了していない場合には(S139 No)、所定時間経過後、再度対局画像取得部702が、盤面8及び対局時計10をカメラ21で撮影して、対局画像を取得し(S131)、対局画像DB713に保存し、S132~S138のフローが繰り返される。一方、対局の勝敗が決したときなど、対局が終了した場合には(S139 Yes)、それぞれが同期した、手番データと、持ち時間データと、消費時間データと、指し手データと、を含むデータが、棋譜データとして得られる。
【0067】
[棋譜記録プログラム]
上述の棋譜記録システムを構成する各機能は、プログラムによって実現可能であり、各機能を実現するために予め用意されたコンピュータプログラムが二次記憶装置に格納され、制御部が二次記憶装置に格納されたプログラムを一次記憶装置に読み出し、一次記憶装置に読み出された該プログラムを制御部が実行することで、各部の機能を動作させることができる。そこで、
図10を用いて、上述の棋譜記録システムと同様の機能を有する棋譜記録プログラムを実行するコンピュータの一例について、以下に説明する。
【0068】
図10は、本実施形態の棋譜記録システムに係る棋譜記録プログラムを実行するコンピュータの一例を示す。
図10に示すように、コンピュータ1000は、操作部1100と、スピーカー1200と、カメラ1300と、ディスプレイ1400と、通信部1500と、を有する。さらに、コンピュータ1000は、CPU(制御部)1600と、HDD(二次記憶装置)1700と、RAM(一次記憶装置)1800と、を有する。これらの各部は、バス1900を介して接続される。
【0069】
HDD1700には、
図10に示すように、上述の実施形態で示した各機能部と同様の機能を発揮する棋譜記録プログラムが予め記憶される。この棋譜記録プログラムについては、
図3に示した棋譜記録システム7の各々の機能部の各構成要素と同様に、適宜統合又は分離しても良い。すなわち、HDD1700に格納される各データは、常に全てのデータがHDD1700に格納される必要はなく、処理に必要なデータのみがHDD1700に格納されれば良い。
【0070】
そして、CPU1600が、棋譜記録プログラムをHDD1700から読み出してRAM1800に展開する。これによって、棋譜記録プログラムは、棋譜記録プロセスとして機能する。この棋譜記録プロセスは、HDD1700から読み出した各種データを適宜RAM1800上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、棋譜記録プロセスは、
図3に示した各機能部にて実行される処理、例えば
図8及び
図9に示す処理を含む。また、CPU1600上で仮想的に実現される各処理部は、常に全ての処理部がCPU1600上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【0071】
なお、上述の棋譜記録プログラムについては、必ずしも最初からHDD1700に記憶させておく必要はなく、「コンピュータ読取可能な記録媒体」に各プログラムを記憶させ、コンピュータ1000がこの「コンピュータ読取可能な記録媒体」から各プログラムを取得して実行するようにしてもよい。「コンピュータ読取可能な記録媒体」としては、CD-ROM等の光ディスク、DVD-RAM等の相変化型光ディスク、MO(Magneto Optical)やMD(Mini Disk)などの光磁気ディスク、フロッピー(登録商標)ディスクやリムーバブルハードディスクなどの磁気ディスク、コンパクトフラッシュ(登録商標)、スマートメディア、SDメモリカード、メモリスティック等のメモリカードが挙げられる。また、本発明の目的のために特別に設計されて構成された集積回路(ICチップ等)等のハードウェア装置も記録媒体として含まれる。さらに、公衆回線、インターネット、LAN、WANなどを介してコンピュータ1000に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておいてもよい。その場合、コンピュータ1000が他のコンピュータまたはサーバ装置から各プログラムを取得して実行するようにしてもよい。
【0072】
(変形例)
上述の実施形態では、本発明を将棋に適用した場合を示したが、本発明の適用対象は将棋に限られず、囲碁やチェスなどの対局型遊戯にも適用することができる。
【0073】
(変形例)
上述の実施形態では、スマートフォン2が、対局データ取得部701と、対局画像取得部702と、対局時計抽出部703と、盤面抽出部704と、駒認識部706と、手番識別部707と、持ち時間識別部708と、消費時間算出部709と、指し手識別部710と、記憶部711と、を有する棋譜記録システム7を備える。この構成により、スマートフォン2が、棋譜記録装置として機能する。しかしながら、これに限られず、棋譜記録装置として、他の携帯端末(タブレットやウェアラブルデバイス等)やパソコンなどを用いてもよい。また、対局データ取得部701と、対局画像取得部702と、対局時計抽出部703と、盤面抽出部704と、駒認識部706と、手番識別部707と、持ち時間識別部708と、消費時間算出部709と、指し手識別部710と、記憶部711と、のうち少なくとも一部をサーバ5が備える構成であってもよい。これにより、スマートフォン2及びサーバ5が、棋譜記録システム7として機能する。
【0074】
(変形例)
上述の実施形態では、対局時計10は、対局の手番をLED101a、101bの点灯/消灯で表示している。しかしながら、手番の表示形式は、これに限られず、例えば着手ボタン103a、103bが上方に飛び出すことによって、手番を表示する対局時計が使用されてもよい。この場合、手番識別部707は、着手ボタンの上方への飛び出しを識別し、一対の着手ボタンの高さの相違によって、手番を識別することができる。
【0075】
(変形例)
上述の実施形態では、対局時計10は、持ち時間表示部102a及び102bに、デジタル形式(デジタル数字で持ち時間を示す形式)を採用している。しかしながら、持ち時間表示部の表示形式は、これに限られず、持ち時間表示部にアナログ形式(長針と短針によって持ち時間を示す形式)を採用することができる。この場合、持ち時間識別部708は、長針と短針を認識して時間に変換することによって、持ち時間を識別することができる。
【0076】
(変形例)
上述の実施形態では、対局時計10の初期位置T1及び盤面8の初期位置T2を予め画定したうえで、対局時計抽出部703による対局時計部分の抽出及び盤面抽出部704による盤面部分の抽出を行っているが(
図8参照)、対局時計10の初期位置T1及び盤面8の初期位置T2を予め画定した後で、対局時計10が初期位置T1から外れた場合または盤面8が初期位置T2から外れた場合、対局時計10または盤面8の初期位置を再画定させる構成であってもよい。この構成によれば、不慮の事故等で対局時計10や盤面8がずれた場合であっても、ずれた後の新たな位置を初期位置に設定することで、それ以降の対局における、対局時計抽出部703による対局時計部分の抽出及び盤面抽出部704による盤面部分の抽出を、高精度に行うことができる。対局時計10または盤面8の初期位置の再画定は、ユーザによって対局時計10または盤面8の位置が補正された後で行われてもよく、ユーザによってカメラ21の撮影可能範囲が調整された後で行われてもよい。
【0077】
(変形例)
上述の実施形態では、対局画像を撮影するカメラ21は、スマートフォン2が備えるものである。しかしながら、これに限られず、対局画像を撮影するカメラは、例えば、他の携帯端末(タブレットやウェアラブルデバイス等)に備えられたカメラであってよく、パソコンが予め備える内蔵カメラであってよく、パソコンに外付けされるWebカメラであってよい。
【0078】
(変形例)
上述の実施形態では、対局画像取得部702が、所定の時間間隔ごとに、盤面8及び対局時計10をカメラ21で撮影し、撮影された対局画像を取得する構成を有する。しかしながら、これに限られず、所定の時間間隔ごとに盤面8及び対局時計10をカメラ21で撮影する機能部を、対局画像取得部702とは独立して備えてもよい。この場合、当該機能部によって、盤面8及び対局時計10が収められた対局画像がカメラ21で撮影され、当該対局画像が、対局画像取得部702で取得されて、対局画像DB713に保存される。
【符号の説明】
【0079】
2 スマートフォン 7 棋譜記録システム 8 盤面 10 対局時計 21 カメラ 702 対局画像取得部 703 対局時計抽出部 704 盤面抽出部 706 駒認識部 707 手番識別部 708 持ち時間識別部 709 消費時間算出部 710 指し手識別部 718 棋譜記憶部 T1 対局時計の初期位置 T2 盤面の初期位置