JP2020151218A - 情報処理装置、記録方法、プログラム、及び情報処理システム - Google Patents

情報処理装置、記録方法、プログラム、及び情報処理システム Download PDF

Info

Publication number
JP2020151218A
JP2020151218A JP2019052962A JP2019052962A JP2020151218A JP 2020151218 A JP2020151218 A JP 2020151218A JP 2019052962 A JP2019052962 A JP 2019052962A JP 2019052962 A JP2019052962 A JP 2019052962A JP 2020151218 A JP2020151218 A JP 2020151218A
Authority
JP
Japan
Prior art keywords
arrangement
game
recognition
game parts
board
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2019052962A
Other languages
English (en)
Inventor
木曽野 正篤
Masaatsu Kisono
正篤 木曽野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2019052962A priority Critical patent/JP2020151218A/ja
Publication of JP2020151218A publication Critical patent/JP2020151218A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】盤上が含まれるように撮影された画像データから、記録が必要な盤上のゲーム部品の配置の変化を検知して記録できる情報処理装置を提供することを課題とする。【解決手段】盤上に複数のゲーム部品をプレイヤが配置して行うゲームの前記ゲーム部品の配置の変化を記録する情報処理装置であって、前記盤上が含まれるように撮影された画像データから、前記盤上に配置されている前記ゲーム部品を認識する画像認識手段と、前記画像認識手段による認識に基づき、記録が必要な前記ゲーム部品の配置の変化を順番に記録する処理手段と、を有し、前記処理手段は、前回の認識に基づく前記ゲーム部品の配置の記録、及び今回の認識に基づく前記ゲーム部品の配置に差分があり、且つ今回の認識に基づく前記ゲーム部品の配置に正当性があれば、今回の認識に基づく前記ゲーム部品の配置の変化を記録することにより、上記課題を解決する。【選択図】 図6

Description

本発明は、情報処理装置、記録方法、プログラム、及び情報処理システムに関する。
例えば既存の駒や将棋盤をそのまま使用して、棋譜を自動的に記録する技術が知られている(例えば特許文献1参照)。棋譜とは、対局者が互いに行った手を順番に記入した記録である。特許文献1の技術では、駒を指す盤面の画像を撮影するカメラと、各対局者の持ち時間をそれぞれカウントする対局時計とを利用して、駒を指した後の持ち時間のカウント中断時点を検出し、カウント中断時点でカメラによって撮影された盤面の画像から駒の動きを検出して棋譜の記録を行っていた。
しかしながら、既存の駒や将棋盤をそのまま使用して、棋譜を自動的に記録する従来の技術では、各対局者が駒を指したことを検出するために、カメラ撮影のための電気的な指示を行う機能を有する対局時計が必要という問題があった。なお、特許文献1には上記のような機能を有する対局時計を使わずに、棋譜を自動的に記録することについて記載されていない。
本発明の実施の形態は上記の点に鑑みなされたもので、盤上が含まれるように撮影された画像データから、記録が必要な盤上のゲーム部品の配置の変化を検知して記録できる情報処理装置を提供することを目的とする。
上記目的を達成するために本願請求項1は、盤上に複数のゲーム部品をプレイヤが配置して行うゲームの前記ゲーム部品の配置の変化を記録する情報処理装置であって、前記盤上が含まれるように撮影された画像データから、前記盤上に配置されている前記ゲーム部品を認識する画像認識手段と、前記画像認識手段による認識に基づき、記録が必要な前記ゲーム部品の配置の変化を順番に記録する処理手段と、を有し、前記処理手段は、前回の認識に基づく前記ゲーム部品の配置の記録、及び今回の認識に基づく前記ゲーム部品の配置に差分があり、且つ今回の認識に基づく前記ゲーム部品の配置に正当性があれば、今回の認識に基づく前記ゲーム部品の配置の変化を記録することを特徴とする。
盤上が含まれるように撮影された画像データから、記録が必要な盤上のゲーム部品の配置の変化を検知して記録できる。
第1の実施形態に係る情報処理システムの一例の構成図である。 本実施形態に係るコンピュータの一例のハードウェア構成図である。 全天球撮影装置の一例のハードウェア構成図である。 本実施形態に係るスマートフォンの一例のハードウェア構成図である。 棋譜記録システムの一例のソフトウェア構成図である。 第1の実施形態に係る情報処理システムの一例の機能構成図である。 画像処理ワーカの一例の機能構成図である。 カメラの一例の設置図である。 操作端末においてカメラの管理を行うカメラ管理ページ画面の一例のイメージ図である。 操作端末においてカメラの追加又は編集を行うカメラ編集ページ画面の一例のイメージ図である。 棋譜記録システムのUI画面の一例のイメージ図である。 解析した局面及び棋譜を表示する画面の一例の説明図である。 キャッシュサーバにキャッシュされるタスクのデータの一例について説明する図である。 将棋盤の現在の局面の情報を表した文字列の詳細を説明する一例の図である。 将棋盤のマスの位置を表す情報の一例の説明図である。 第1の実施形態に係る情報処理システムの処理の一例を示したシーケンス図である。 キャッシュサーバへの新しいタスクの追加について説明する一例の図である。 実行中のタスクについて説明する一例の図である。 タスクの状態の詳細について説明する一例の状態遷移図である。 状態が「対局中」の画像処理ワーカの処理の一例を示すフローチャートである。 将棋の局面の一例を示す図である。 状態が「対局中」の画像処理ワーカ64の処理の一例を示すフローチャートである。 将棋の局面の一例を示す図である。 カメラの一例の配置図である。 カメラの一例の配置図である。
以下、本発明の実施形態について図面を参照しながら説明する。本実施形態では「盤上に複数のゲーム部品をプレイヤが配置して行うゲーム」の一例として、将棋盤に駒を対局者が配置して行う将棋を例に説明する。将棋はボードゲームの一例である。ボードゲームとは、盤上(ボード上)で駒、カード、さいころ、チップなどのゲーム部品を配置したり移動したりして勝敗を競うゲームの総称である。例えばボードゲームには、将棋の他、囲碁、連珠、チェス、オセロ、麻雀、バックギャモン、すごろく、等が含まれる。なお、本実施形態において「盤上」や「盤面」と言うとき、盤が複数に分かれているボードゲームであれば全ての盤の「盤上」や「盤面」が含まれる。例えば本実施形態では、図示を省略しているが、将棋盤20の「盤上」や「盤面」と言うとき、駒台の面も含まれている。
[第1の実施形態]
<システム構成>
図1は第1の実施形態に係る情報処理システム1の一例の構成図である。図1の情報処理システム1は、棋譜記録システム10、対局配信システム12、棋譜DB14、操作端末16、カメラ18を含むように構築される。棋譜記録システム10、対局配信システム12、及び棋譜DB14は通信ネットワーク22を介してデータ通信できる。操作端末16及びカメラ18は通信ネットワーク24を介してデータ通信できる。また、操作端末16及びカメラ18は通信ネットワーク22及び24を介して、棋譜記録システム10、対局配信システム12、及び棋譜DB14とデータ通信できる。
通信ネットワーク22及び24は、インターネット、移動体通信網、LAN(Local Area Network)等によって構築される。通信ネットワーク22及び24には、有線通信だけでなく、3G(3rd Generation)、WiMAX(Worldwide Interoperability for Microwave Access)またはLTE(Long Term Evolution)等の無線通信によるネットワークが含まれてもよい。
棋譜記録システム10は例えば対局室などの将棋盤20で対局者が行う将棋の対局の棋譜(以下、単に対局と呼ぶ)を後述のように記録する。棋譜記録システム10は1台以上のコンピュータを含むように構築される。対局配信システム12は将棋盤20で行われる対局の映像を配信したり、棋譜記録システム10が記録した棋譜を配信したりする。対局配信システム12は1台以上のコンピュータを含むように構築される。棋譜DB14は棋譜記録システム10が記録した棋譜を含む棋譜のデータベースである。棋譜DB14は1台以上のコンピュータを含むように構築される。
操作端末16はユーザが操作する情報処理端末であり、ユーザから受け付けた各種操作に応じて棋譜記録システム10やカメラ18等に各種処理要求を行うと共に、ユーザに対する各種UIの表示を行う。操作端末16は、デスクトップPC、ノートPC、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)などの情報処理端末である。なお、図1では操作端末16が一台の例を示しているが複数台であってもよい。操作端末16はブラウザが搭載されている。
カメラ18は、将棋盤20の盤上が含まれるように動画の撮影を行う撮影装置の一例である。カメラ18は、ネットワークカメラ、ウェブカメラ、又はカメラ付きの情報処理端末などである。ネットワークカメラはIPアドレスを持ち、パソコンなどの制御機器に繋げなくても動画や静止画を配信できる撮影装置の一例である。ウェブカメラは、パソコンなどの制御機器に繋げて動画や静止画を配信できる撮影装置の一例である。カメラ18はパソコンなどの制御機器を介して通信ネットワーク24に接続されてもよい。
なお、図1の情報処理システム1の構成は一例であって、棋譜記録システム10、対局配信システム12、及び棋譜DB14を一台のコンピュータに統合して実現するようにしてもよいし、複数のコンピュータに分散して実現するようにしてもよい。また、棋譜記録システム10、対局配信システム12、及び棋譜DB14はクラウドコンピューティングによりサービスを提供してもよい。クラウドコンピューティングとは、インターネットなどの通信ネットワーク22を経由して、コンピュータ資源をサービスの形で提供する利用形態である。
このように、本実施形態に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものにすぎない。ある実施形態では、棋譜記録システム10は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。
同様に、対局配信システム12及び棋譜DB14は、互いに通信するように構成された複数のコンピューティングデバイスを含むことができる。棋譜記録システム10、対局配信システム12、及び棋譜DB14は、開示された処理ステップ、例えば図16を様々な組み合わせで共有するように構成できる。例えば、所定のユニットによって実行されるプロセスは、対局配信システム12及び棋譜DB14によって実行され得る。同様に、所定のユニットの機能は、対局配信システム12及び棋譜DB14によって実行することができる。棋譜記録システム10、対局配信システム12、及び棋譜DB14の各要素は1つのサーバ装置にまとめられていてもよいし、複数の装置に分けられていてもよい。
<ハードウェア構成>
<<コンピュータ>>
棋譜記録システム10、対局配信システム12、及び棋譜DB14は、例えば図2に示すハードウェア構成のコンピュータ500により実現される。また、操作端末16がデスクトップPC等のPCである場合も例えば図3に示すハードウェア構成のコンピュータ500により実現される。
図2は、本実施形態に係るコンピュータ500の一例のハードウェア構成図である。図2に示されているように、コンピュータ500はCPU(Central Processing Unit)501、ROM(Read Only Memory)502、RAM(Random Access Memory)503、HD504、HDD(Hard Disk Drive)コントローラ505、ディスプレイ506、外部機器接続I/F(Interface)508、ネットワークI/F509、データバス510、キーボード511、ポインティングデバイス512、DVD−RW(Digital Versatile Disk Rewritable)ドライブ514、メディアI/F516を備えている。
これらのうち、CPU501は、コンピュータ500全体の動作を制御する。ROM502は、IPL等のCPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。HD504は、プログラム等の各種データを記憶する。HDDコントローラ505は、CPU501の制御にしたがってHD504に対する各種データの読み出し又は書き込みを制御する。
ディスプレイ506は、カーソル、メニュー、ウインドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F508は、各種の外部機器を接続するためのインタフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F509は、通信ネットワーク9を利用してデータ通信をするためのインタフェースである。データバス510は、CPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
キーボード511は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス512は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD−RWドライブ514は、着脱可能な記録媒体の一例としてのDVD−RW513に対する各種データの読み出し又は書き込みを制御する。なお、DVD−RWに限らず、DVD−R等であってもよい。メディアI/F516は、フラッシュメモリ等の記録メディア515に対するデータの読み出し又は書き込み(記憶)を制御する。
<<カメラ>>
カメラ18は、ネットワークカメラ、ウェブカメラの他、例えば図3のハードウェア構成の全天球撮影装置600により実現することもできる。図3は、全天球撮影装置600の一例のハードウェア構成図である。図3の全天球撮影装置600は、2つの撮像素子を使用した全天球(全方位)撮影装置の例であるが、2つ以上の撮像素子を使用した全天球撮影装置であってもよい。
また、全天球撮影装置600は必ずしも全方位撮影専用の装置である必要はなく、通常のデジタルカメラやスマートフォン等に、後付けの全方位の撮像ユニットを取り付けることで、実質的に全天球撮影装置600と同じ機能を有するようにしてもよい。
図3に示されているように、全天球撮影装置600は、撮像ユニット601、画像処理ユニット604、撮像制御ユニット605、マイク608、音処理ユニット609、CPU611、ROM612、SRAM(Static Random Access Memory)613、DRAM(Dynamic Random Access Memory)614、操作部615、外部機器接続I/F616、通信部617、アンテナ617a、加速度・方位センサ618によって構成されている。
このうち、撮像ユニット601は、各々半球画像を結像するための180°以上の画角を有する広角レンズ(いわゆる魚眼レンズ)602a,602bと、各広角レンズに対応させて設けられている2つの撮像素子603a,603bを備えている。撮像素子603a,603bは、広角レンズ602a,602bによる光学像を電気信号の画像データに変換して出力するCMOS(Complementary Metal Oxide Semiconductor)センサやCCD(Charge Coupled Device)センサなどの画像センサ、画像センサの水平又は垂直同期信号や画素クロックなどを生成するタイミング生成回路、撮像素子603a,603bの動作に必要な種々のコマンドやパラメータなどが設定されるレジスタ群など、を有している。
撮像ユニット601の撮像素子603a,603bは、各々、画像処理ユニット604とパラレルI/Fバスで接続されている。また、撮像素子603a,603bは、撮像制御ユニット605と、シリアルI/Fバス(I2Cバス等)で接続されている。画像処理ユニット604、撮像制御ユニット605、及び音処理ユニット609は、バス610を介してCPU611と接続される。さらに、バス610には、ROM612、SRAM613、DRAM614、操作部615、外部機器接続I/F616、通信部617、及び加速度・方位センサ618なども接続される。
画像処理ユニット604は、撮像素子603a,603bから出力される画像データをパラレルI/Fバスを通して取り込み、それぞれの画像データに対して所定の処理を施した後、これらの画像データを合成処理して、正距円筒射影画像のデータを作成する。
撮像制御ユニット605は、一般に撮像制御ユニット605をマスタデバイス、撮像素子603a,603bをスレーブデバイスとして、I2Cバスを利用して、撮像素子603a,603bのレジスタ群にコマンド等を設定する。必要なコマンド等は、CPU611から受け取る。また、撮像制御ユニット605は、同じくI2Cバスを利用して、撮像素子603a,603bのレジスタ群のステータスデータ等を取り込み、CPU611に送る。
また、撮像制御ユニット605は、操作部615のシャッターボタンが押下されたタイミングで、撮像素子603a,603bに画像データの出力を指示する。全天球撮影装置600によっては、ディスプレイ(例えば、スマートフォンのディスプレイ)によるプレビュー表示機能や動画表示に対応する機能を持つ場合もある。この場合は、撮像素子603a,603bからの画像データの出力は、所定のフレームレート(フレーム/分)によって連続して行われる。
また、撮像制御ユニット605は、後述するように、CPU611と協働して撮像素子603a,603bの画像データの出力タイミングの同期をとる同期制御手段としても機能する。なお、本実施形態では、全天球撮影装置600にはディスプレイが設けられていないが、表示部を設けてもよい。
マイク608は、音を音(信号)データに変換する。音処理ユニット609は、マイク608から出力される音データをI/Fバスを通して取り込み、音データに対して所定の処理を施す。
CPU611は、全天球撮影装置600の全体の動作を制御すると共に、必要な処理を実行する。ROM612は、CPU611のための種々のプログラムを記憶している。SRAM613及びDRAM614はワークメモリであり、CPU611で実行するプログラムや処理途中のデータ等を記憶する。特にDRAM614は、画像処理ユニット604での処理途中の画像データや処理済みの正距円筒射影画像のデータを記憶する。
操作部615はシャッターボタンなどの操作ボタンの総称である。ユーザは操作部615を操作することで、種々の撮影モードや撮影条件などを入力する。外部機器接続I/F616は各種の外部機器を接続するためのインタフェースである。
この場合の外部機器は、例えばUSBメモリやPC等である。DRAM614に記憶された正距円筒射影画像のデータは、外部機器接続I/F616を介して外付けのメディア等の外部機器に記録されたり、必要に応じて外部機器接続I/F616を介してスマートフォン等の外部機器に送信されたりする。
通信部617は、全天球撮影装置600に設けられたアンテナ617aを介して、Wi−Fi、NFC(Near Field Communication)やBluetooth(登録商標)等の近距離無線通信技術によって、スマートフォン等の外部機器と通信を行う。この通信部617によっても、正距円筒射影画像のデータをスマートフォン等の外部端末(装置)に送信することができる。
加速度・方位センサ618は、地球の磁気から全天球撮影装置600の方位を算出し、方位情報を出力する。この方位情報はExifに沿った関連情報(メタデータ)の一例であり、撮影画像の画像補正等の画像処理に利用される。なお、関連情報には、画像の撮影日時、及び画像データのデータ容量の各データも含まれている。また、加速度・方位センサ618は、全天球撮影装置600の移動に伴う角度の変化(Roll角、Pitch角、Yaw角)を検出するセンサである。角度の変化はExifに沿った関連情報(メタデータ)の一例であり、撮像画像の画像補正等の画像処理に利用される。更に、加速度・方位センサ618は、3軸方向の加速度を検出するセンサである。
全天球撮影装置600は、加速度・方位センサ618が検出した加速度に基づいて、自装置(全天球撮影装置600)の姿勢(重力方向に対する角度)を算出する。全天球撮影装置600に、加速度・方位センサ618が設けられることによって、画像補正の精度が向上する。
<<スマートフォン>>
操作端末16は、例えば図4に示すハードウェア構成のスマートフォン700や、タブレット端末により実現される。図4は、本実施形態に係るスマートフォン700の一例のハードウェア構成図である。図4に示されているように、スマートフォン700は、CPU701、ROM702、RAM703、EEPROM704、CMOSセンサ705、撮像素子I/F706、加速度・方位センサ707、メディアI/F709、GPS受信部711を備えている。
これらのうち、CPU701は、スマートフォン700全体の動作を制御する。ROM702は、CPU701やIPL等のCPU701の駆動に用いられるプログラムを記憶する。RAM703は、CPU701のワークエリアとして使用される。EEPROM704は、CPU701の制御にしたがって、スマートフォン用プログラム等の各種データの読み出し又は書き込みを行う。
CMOSセンサ705は、CPU701の制御に従って被写体(主に自画像)を撮像して画像データを得る内蔵型の撮像手段の一種である。なお、CMOSセンサ705ではなく、CCDセンサ等の撮像手段であってもよい。撮像素子I/F706は、CMOSセンサ705の駆動を制御する回路である。加速度・方位センサ707は、地磁気を検知する電子磁気コンパスやジャイロコンパス、加速度センサ等の各種センサである。
メディアI/F709は、フラッシュメモリ等の記録メディア708に対するデータの読み出し又は書き込み(記憶)を制御する。GPS受信部711は、GPS衛星からGPS信号を受信する。
また、スマートフォン700は、遠距離通信回路712、CMOSセンサ713、撮像素子I/F714、マイク715、スピーカ716、音入出力I/F717、ディスプレイ718、外部機器接続I/F719、近距離通信回路720、近距離通信回路720のアンテナ720a、及びタッチパネル721を備えている。
これらのうち、遠距離通信回路712は、通信ネットワーク24を介して、他の機器と通信する回路である。CMOSセンサ713は、CPU701の制御に従って被写体を撮像して画像データを得る内蔵型の撮像手段の一種である。撮像素子I/F714は、CMOSセンサ713の駆動を制御する回路である。マイク715は、音を電気信号に変える内蔵型の回路である。スピーカ716は、電気信号を物理振動に変えて音楽や音声などの音を生み出す内蔵型の回路である。
音入出力I/F717は、CPU701の制御に従ってマイク715及びスピーカ716との間で音信号の入出力を処理する回路である。ディスプレイ718は、被写体の画像や各種アイコン等を表示する液晶や有機EL(Electro Luminescence)などの表示手段の一種である。外部機器接続I/F719は各種の外部機器を接続するインタフェースである。近距離通信回路720はNFCやBluetooth等の通信回路である。タッチパネル721は、ユーザがディスプレイ718を押下することで、スマートフォン700を操作する入力手段の一種である。
また、スマートフォン700は、バスライン710を備えている。バスライン710は図4に示されているCPU701等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
<ソフトウェア構成>
続いて、棋譜記録システム10にインストールされるコンピュータソフトウエアについて説明する。ここで、コンピュータソフトウエア(以下、ソフトウェアと呼ぶ)とは、コンピュータの動作に関するプログラム、その他、コンピュータによる処理の用に供する情報であってプログラムに準ずるものである。プログラムとは、コンピュータに対する指令であって、一の結果を得ることができるように組み合わせたものをいう。また、プログラムに準ずるものとは、コンピュータに対する直接の指令ではないためプログラムとは呼べないが、コンピュータの処理を規定するという点でプログラムに類似する性質を有するものをいう。例えば、データ構造(データ要素間の相互関係で表される、データの有する論理的構造)がプログラムに準ずるものに該当する。
また、アプリケーションとは、ソフトウェアの分類のうち、特定の処理を行うために使用されるソフトウェアの総称である。一方、OS(オペレーティングシステムとは、コンピュータを制御し、アプリケーション等がコンピュータ資源を利用可能にするためのソフトウェアである。OSは、入出力の制御、メモリおよびハードディスク等のハードウェアの管理、プロセスの管理といった、コンピュータの基本的な管理・制御を行っている。アプリケーションは、OSが提供する機能を利用して動作する。
なお、上記ソフトウェアは、インストール可能な形式または実行可能な形式のファイルをコンピュータで読み取り可能な記録媒体に記録して流通させるようにしてもよい。記録媒体の例としては、CD−R(Compact Disc Recordable)、DVD、ブルーレイディスク、SDカード等が挙げられる。記録媒体は、プログラム製品(Program Product)として国内または国外へ提供できる。また、上記ソフトウェアはインストール可能な形式または実行可能な形式のファイルをダウンロードさせるようにしてもよい。
図5は棋譜記録システム10の一例のソフトウェア構成図である。棋譜記録システム10を構成する各サーバ等は、それぞれが独立したサーバプロセス等である。なお、図5では全てのサーバ等が同じOS50上に配置されているが、物理的に異なるサーバや仮想レイヤ上のVM(仮想マシン)で動作させたり、コンテナ技術を使って動作させたり、するようにしてもよい。
OS50は棋譜記録システム10の基本的な機能を提供し、棋譜記録システム10の全体を管理する基本ソフトウェアである。ミドルウェア/プログラム言語ランタイムはOS50上で動作する。また、ストレージ54はOS50上で動作する。Webサーバ56、API(Application Programming Interface)サーバ58、キャッシュサーバ62、画像処理ワーカ64、画像認識サーバ66、動画受信サーバ68、及びワーカ管理70はミドルウェア/プログラム言語ランタイム52上で動作する。
Webサーバ56は、UIとなる操作端末16のブラウザからのリクエストに対してレスポンスを返す。コンテンツはストレージ54に保存されている。コンテンツの具体例としては、HTML、JavaScript(登録商標)、CSSや画像・アイコンファイルなどである。
APIサーバ58は、操作端末16のブラウザからのリクエストに対してレスポンスを返す。APIサーバ58はリクエストに応じたAPIプログラム60がキャッシュサーバ62や動画受信サーバ68を呼び出し、レスポンスを生成する。キャッシュサーバ62は他のサービスからのリクエストに応じてデータをキャッシュする。キャッシュサーバ62にキャッシュされるデータは、タスクの定義や状態、結果などである。
画像処理ワーカ64は動画受信サーバ68から動画データを受け取り、解析する。画像処理ワーカ64は解析の状態や結果をキャッシュサーバ62に保存する。また、画像の認識処理は画像処理ワーカ64自身が行うこともできるし、画像認識サーバ66に代行させることもできる。
画像認識サーバ66は画像処理ワーカ64から画像データを受け取り、画像の認識処理を実行したあと、結果を返す。なお、画像の認識処理に必要となる学習済みの画像認識モデルはストレージ54から読み出すようにしてもよいし、画像認識サーバ66のストレージなどから読み出すようにしてもよい。動画受信サーバ68はカメラ18から送信される動画データを受信し、記憶する。動画受信サーバ68は画像処理ワーカ64からリクエストを受信すると、動画データの一部(最新の画像データ)を提供する。
ワーカ管理70は棋譜記録システム10で稼働している画像処理ワーカ64の数とタスク数とをモニタリングする。なお、ワーカ管理70はタスク数に対して十分な数の画像処理ワーカ64が無ければ新たに画像処理ワーカ64を追加し、反対にタスク数が減少して画像処理ワーカ64の数が過剰であればタスクを実行していない画像処理ワーカ64を終了させる。
<機能構成>
図6は第1の実施形態に係る情報処理システム1の一例の機能構成図である。図6の操作端末16は、ストリームID受信部80、ストリーム開始要求部82、タスク開始要求部84、指示部86、表示制御部88、及びカメラ管理部90を有している。
操作端末16のストリームID受信部80は、棋譜記録システム10の動画受信サーバ68が発行したストリームIDを受信する。なお、ストリームIDはストリームの識別情報(チャネル)の一例である。
ストリーム開始要求部82は、ストリームIDと、ストリームを送信する棋譜記録システム10側の宛先(ストリームの宛先)と、を指定してカメラ18にストリーミングの開始を要求する。これにより操作端末16を操作するユーザは、棋譜を記録したい将棋盤20の盤上が含まれるように動画の撮影を行うカメラ18を選択し、ストリームIDとストリームの宛先とを指定してストリーミングの開始を要求できる。ストリーミングの開始を要求されたカメラ18は、指定されたストリームIDとストリームの宛先とを利用して棋譜記録システム10の動画受信サーバ68への動画データ(ストリームデータ)の送信を開始する。動画受信サーバ68にはカメラ18が撮影した動画データが記録される。
タスク開始要求部84はストリームIDを指定して棋譜記録のためのタスクの開始をAPIサーバ58に要求する。これにより、棋譜記録システム10のキャッシュサーバ62には、動画受信サーバ68に記録された動画データから棋譜を記録するための新しいタスクをキャッシュできる。
画像処理ワーカ64はキャッシュサーバ62にキャッシュされたタスクに従い、動画受信サーバ68から動画データを受け取り、動画データに含まれる将棋盤20の盤上の局面を解析する。動画データに含まれる将棋盤20の盤上の局面の解析は、画像処理及び画像の認識処理により盤上の駒の種類及び配置を検知することで行う。
例えば画像処理ワーカ64はタスクに従い、動画受信サーバ68から動画データを受け取り、その動画データから盤面部分の画像データを切り出す。また、画像処理ワーカ64は盤面部分の画像データから更に、盤面部分のマス(縦横9×9マス)ごとの画像データを切り出す。また、画像処理ワーカ64は切り出したマスごとの画像データの画像の認識処理を画像認識サーバ66に要求する。
画像認識サーバ66は、学習済みの画像認識モデルを用いて、マスごとの画像データからマスへの駒の配置の有無、配置されている駒の種類(先手の歩、後手の銀など)を認識する。学習済みの画像認識モデルは、例えば上向きの各種の駒の画像と下向きの各種の駒の画像とを入力データとし、先手及び後手の駒の種類を出力データとして学習させた画像認識モデルである。入力データとする駒の画像は、駒を持つ対局者の指により駒の一部が映っていない画像であってもよい。画像認識サーバ66は、認識の結果を画像処理ワーカ64に返す。
画像処理ワーカ64は画像認識サーバ66から返された認識の結果から盤上の駒の種類及び配置を検知して、盤上の局面を解析する。画像処理ワーカ64は解析の状態や結果をキャッシュサーバ62に保存する。
指示部86は、ユーザによる対局開始、対局休憩、対局再開、及び終局などの指示を画像処理ワーカ64に対して行い、指示に従った処理を行わせる。表示制御部88は操作端末16の表示を制御する。例えば表示制御部88はキャッシュサーバ62に保存されている解析の状態や結果に従い、後述するような解析した局面及び棋譜を表示する画面を表示する。
カメラ管理部90は、将棋盤20の盤上が含まれるように動画の撮影を行い、その動画のストリーミングが可能なカメラ18を管理する。例えばカメラ管理部90は、ユーザがカメラ18を識別可能なカメラ識別情報(名前等)と、カメラ18にアクセスするための宛先(アドレス)とを関連付けて管理する。
このように、図6の機能構成図に示したように、棋譜記録システム10とカメラ18とを分離し、通信ネットワーク22、24で接続したシステム構成とすることで、より柔軟なシステムを構築できると共に、拡張性やメンテナンス性を高めることができる。
図7は画像処理ワーカ64の一例の機能構成図である。図7の画像処理ワーカ64は、状態管理部100、ドライバ部102、ストリームデータ受信部104、位置合わせ部106、画像認識要求部108、及び棋譜記録部110をモジュールとして有している。
ドライバ部102は画像処理ワーカ64の処理全体を統括している。ドライバ部102は他のモジュールを呼び出して、自動棋譜記録を実現するメインのブロックである。ドライバ部102はキャッシュサーバ62へのステータス更新と、キャッシュサーバ62からのメッセージ受信も行う。ドライバ部102は画像をストリームデータ受信部104から取得する。
ストリームデータ受信部104は動画受信サーバ68から動画フレームを読み込んで画像をデコードする。位置合わせ部106は画像から将棋盤20の盤面部分とマス目の位置とを求める。位置合わせ部106はシステム動作中に定期的に位置合わせを行い、対局中に将棋盤20の位置がずれたとしても補正する。
画像認識要求部108は、動画受信サーバ68から取得した動画データから将棋盤20の盤面部分のマスごとの画像を切り出し、マスごとの画像データの画像の認識処理を画像認識サーバ66に要求する。また、画像認識要求部108は、マスごとの画像データの画像の認識処理の結果を画像認識サーバ66から取得する。
棋譜記録部110は棋譜を記録するために必要なデータを保持している。棋譜記録部110はマスごとの画像データの画像の認識処理の結果を入力として受け取り、棋譜を記録するために必要なデータを更新する。なお、棋譜を記録するために必要なデータの詳細は後述する。
<カメラ18の設置例>
図8はカメラ18の一例の設置図である。図8は対局室の天井にカメラ18を設置した例を示している。図8のカメラ18には例えばネットワークカメラを利用できる。ネットワークカメラは例えばWi−Fi等で通信ネットワーク24に接続される。カメラ18は対局室に置かれた将棋盤20の盤上が含まれるように動画の撮影が行える位置の一例である天井に設置されている。ユーザにより操作される操作端末16も通信ネットワーク24に例えばWi−Fi等で接続される。なお、操作端末16を操作するユーザは、棋譜の記録開始、対局開始、対局休憩、対局再開、及び終局などの棋譜記録システム10に対する指示を、操作端末16から行うことができる。
<処理の詳細>
以下では第1の実施形態に係る情報処理システム1の処理の詳細について説明する。
<<カメラ18の管理>>
図9は操作端末16においてカメラ18の管理を行うカメラ管理ページ画面1000の一例のイメージ図である。カメラ管理ページ画面1000は、登録済みのカメラ18の一覧1002が表示されている。図9は名前が「対局室1」及び「対局室2」のカメラ18が登録済みの例を示している。
操作端末16を操作するユーザはカメラ追加ボタン1004を押下する操作を行うことにより、図10のカメラ編集ページ画面1100から新規にカメラ18の情報を登録することができる。また、操作端末16を操作するユーザは変更ボタン1006を押下する操作を行うことにより、図10のカメラ編集ページ画面1100から登録済みのカメラ18の情報を編集することができる。更に、操作端末16を操作するユーザは削除ボタン1008を押下する操作を行うことにより、登録済みのカメラ18の情報を削除することができる。
図10は操作端末16においてカメラ18の追加又は編集を行うカメラ編集ページ画面1100の一例のイメージ図である。カメラ編集ページ画面1100は、新規にカメラ18の情報を登録する場合、又は、登録済みのカメラ18の情報を編集する場合、に利用される。図10のカメラ編集ページ画面1100は、カメラ18の情報として、カメラ識別情報の一例である名前と、カメラ18にアクセスするための宛先(アドレス)の一例であるIPアドレスと、が設定された例を示している。なお、カメラ18にアクセスするための宛先(アドレス)はURL等であってもよい。
<<棋譜記録システム10のUI>>
図11は棋譜記録システム10のUI画面1200の一例のイメージ図である。UI画面1200はユーザが操作する操作端末16に表示される。図11のUI画面1200は登録済みのカメラ18の一覧1202と、それぞれのカメラ18の状態1204と、各種指示を行うためのボタン1206と、が表示されている。また、図11のカメラ18の状態1204には「対局中」と「待機中」とが表示されている。カメラ18の状態1204の詳細については後述する。
状態1204が「待機中」のカメラ18のボタン1206には、棋譜の記録を開始する指示を行う「開始」ボタン及び棋譜の記録を終了する「終了」ボタンが表示される。状態1204が「対局中」のカメラ18のボタン1206には、棋譜の記録を開始する指示を行う「開始」ボタン、棋譜の記録を終了する「終了」ボタン、及び「棋譜を見る」ボタンが表示される。
「棋譜を見る」ボタンを押下する操作により操作端末16は、その「棋譜を見る」ボタンに対応するカメラ18の画像データから解析した局面及び棋譜を表示する画面1300を表示する。操作端末16を操作するユーザは、解析した局面及び棋譜を表示する画面1300から、将棋盤20の現在の局面や、これまでの棋譜を参照できる。
図12は解析した局面及び棋譜を表示する画面1300の一例の説明図である。解析した局面及び棋譜を表示する画面1300は、棋譜記録システム10のタスクの状態1302と、これまでの棋譜1304と、最後に指された手(駒)の位置を視覚的に表すマス1306と、手番の対局者を視覚的に表すアイコン1308と、指示を行うボタン1310とが表示されている。
なお、解析した局面及び棋譜を表示する画面1300は「先手」及び「後手」の表示の近辺などに対局者の名前や、それぞれの残り時間などを表示してもよい。タスクの状態1302は、画像処理ワーカ64が行う後述のタスクの状態を表している。これまでの棋譜1304は対局者が指した手(指し手)と、その指し手に消費された時間とが合わせて表示されている。最後に指された手の位置を視覚的に表すマス1306は、他のマスとの色を変えることで、最後に指された手の位置を示している。手番の対局者を視覚的に表すアイコン1308は手番の場合と手番でない場合とで色を変えることで、手番の対局者を視覚的に示している。
図12の指示を行うボタン1310には、対局開始ボタン、対局休憩ボタン、対局再開ボタン、終局ボタン及び戻るボタンが含まれている。操作端末16を操作するユーザは図12の対局開始ボタン、対局休憩ボタン、対局再開ボタン、終局ボタン又は戻るボタンを押下する操作を行い、対局開始、対局休憩、対局再開、終局、又はUI画面1200に戻る指示を行うことができる。
なお、図11のUI画面1200の状態1204が「待機中」のカメラ18のボタン1206の場合は「開始」ボタンを押下する操作により、その「開始」ボタンの右横に「棋譜を見る」ボタンが表示される。また、図11のUI画面1200の状態1204が「対局中」のカメラ18のボタン1206の場合は「終了」ボタンを押下する操作により、そのカメラ18の「棋譜を見る」ボタンが消える。操作端末16を操作するユーザは図12の対局開始ボタンを押下する操作を行うことで、画像処理ワーカ64に対局開始を指示できる。
<<キャッシュサーバ62にキャッシュされるタスクのデータ>>
図13はキャッシュサーバ62にキャッシュされるタスクのデータの一例について説明する図である。文字列1402がタスクの状態を表す。なお、タスクの状態の詳細については状態遷移図を用いて後述する。文字列1404は先手の持ち駒を表す。図13の例では先手の持ち駒がない例を示している。文字列1406が後手の持ち駒を表す。図13の例では後手の持ち駒がない例を示している。文字列1408は将棋盤20の現在の局面の情報を表している。初期状態の文字列1408は、駒の初期配置を表す。指し手が進むことにより、文字列1408は、その時の駒の配置に更新される。
図14は将棋盤20の現在の局面の情報を表した文字列1408の詳細を説明する一例の図である。先頭の数字1502は将棋盤20のマスの位置を表している。本実施形態では将棋盤20のマスの位置を、図15(B)に示すように将棋盤20のマス目の左上のマスから右方向に一意な番号を振り、その番号で表している。図15は将棋盤のマスの位置を表す情報の一例の説明図である。
また、先頭の数字1502に続く文字列1504は、数字1502が表すマスに配置された駒の情報を「color」と「type」とで表している。文字列「color」は数字1502が表すマスに配置された駒が、先手「0」又は後手「1」の何れの駒であるかを表している。文字列「type」は数字1502が表すマスに配置された駒の種類を表している。例えば文字列「type」は、駒の種類を表1のように表す。なお、駒が無いマスは、先頭の数字1502に続く文字列1504が空欄となる。
Figure 2020151218
図13に戻り、文字列1410及び文字列1412が指し手の履歴リストを表す。文字列1410は将棋盤20のマスの位置を図15(A)に示すように表した場合に、駒の移動前のマスの位置と移動後のマスの位置とで指し手を表している。例えば「2g2f」は図15(A)の「2g」のマスに配置されていた駒が「2f」のマスに移動したことを表している。なお、持ち駒から駒を打つ場合は、例えば「1*2f」のように「*」の前の数字「1」で駒の種類を表し、「*」の後の「2f」で駒を打つ位置を表すようにしてもよい。
文字列1412は、指し手の履歴リストを、将棋界などで棋譜用紙への記入に一般的に使用されている表現方法で表したものである。例えば「26歩」は将棋界で「2六歩」と表される指し手を表しており、「2六」で表される将棋盤20の右から2番目で上から6番目のマスの位置に「歩」が移動したことを表している。
文字列1414は、先頭の数字が指し手の順番を表し、指し手ごとに、手が指された時点での対局者の持ち時間の残り時間、及び指し手に消費された時間を表している。文字列1416は、最後の指し手の駒があるマスの位置を図15(B)のように表す。図13の例では「17」が将棋盤20のマス目の右から1番目で上から2番目のマスの位置を表している。文字列1418は、手番が先手「0」及び後手「1」の何れであるかを表した情報である。文字列1420は解析した直近の指し手が後述の合法手であるか否か示す情報である。
<<情報処理システム1の処理のシーケンス図>>
図16は、第1の実施形態に係る情報処理システム1の処理の一例を示したシーケンス図である。ステップS10において操作端末16を操作するユーザは、例えば図11のUI画面1200の「開始」ボタンを押下する操作を行う。ステップS12に進み、操作端末16はストリームIDの取得を棋譜記録システム10のAPIサーバ58に要求する。
ステップS14、S16において、APIサーバ58は動画受信サーバ68が発行したストリームIDを受信する。ステップS18に進み、操作端末16は動画受信サーバ68が発行したストリームIDをAPIサーバ58から受信する。
ステップS20に進み、操作端末16はストリームIDと、ストリームを送信する棋譜記録システム10側の宛先(ストリームの宛先)と、を指定してカメラ18にストリーミングの開始を要求する。ストリーミングの開始を要求されたカメラ18は、ステップS22に進み、指定されたストリームIDとストリームの宛先とを利用して棋譜記録システム10の動画受信サーバ68への動画データ(ストリームデータ)の送信を開始する。したがって、ステップS22以降、動画受信サーバ68にはカメラ18が撮影した動画データが記録される。
ステップS24に進み、操作端末16はストリームIDを指定して棋譜記録のためのタスクの開始をAPIサーバ58に要求する。ステップS26において、APIサーバ58はストリームIDにより指定される動画受信サーバ68に記録された動画データから棋譜を記録するための新しいタスクをキャッシュサーバ62にキャッシュする。ステップS26の処理により、棋譜記録システム10のキャッシュサーバ62には動画受信サーバ68に記録された動画データから棋譜を記録するための新しいタスクがキャッシュされる。
ステップS28に進み、操作端末16はキャッシュサーバ62に新しくキャッシュされたタスクのタスクIDをAPIサーバ58から受信する。ステップS30において操作端末16はストリーム開始完了のフィードバックを、ユーザに対して行う。
また、画像処理ワーカ64はキャッシュサーバ62にキャッシュされるタスクを監視しており、ステップS32のタスク取得要求により、ステップS34でキャッシュサーバ62からストリームIDが指定されたタスクを取得する。画像処理ワーカ64は取得したタスクに従い、ストリームIDを指定して動画受信サーバ68から動画データの取得を開始できる。
画像処理ワーカ64は、動画受信サーバ68から取得した動画データに含まれる将棋盤20の盤上の局面を、画像処理及び画像の認識処理により盤上の駒の種類及び配置を検知して解析する。動画受信サーバ68から取得した動画データに含まれる将棋盤20の盤上の局面を、画像処理及び画像の認識処理により盤上の駒の種類及び配置を検知して解析する処理の詳細はフローチャートを用いて後述する。
ステップS38に進み、画像処理ワーカ64は解析の状態や結果に従い、図13に示したようなタスクのデータを更新する。このようにキャッシュサーバ62に保存されているタスクのデータは将棋盤20の局面に従った内容となる。
また、操作端末16はステップS40〜S48に示すように、例えば所定時間ごとにタスクIDを指定してキャッシュサーバ62に保存されているタスクのデータを取得することにより、例えば図12のような解析した局面及び棋譜を表示する画面1300を表示できる。なお、ステップS32〜S38の処理とステップS40〜S48の処理とは、それぞれ所定時間ごとに非同期で行われている。
ステップS50において操作端末16を操作するユーザは、例えば図12の解析した局面及び棋譜を表示する画面1300の対局開始ボタンを押下する操作を行う。ステップS52に進み、操作端末16はタスクIDを指定して、対局開始を棋譜記録システム10のAPIサーバ58に要求する。
ステップS54において、APIサーバ58は指定されたタスクIDに対応するタスクのデータの文字列1042を対局開始に基づき更新する。画像処理ワーカ64はステップS56でキャッシュサーバ62からタスクIDに対応するタスクのデータを取得することにより、対局開始が通知される。ステップS58に進み、画像処理ワーカ64は対局開始に従い、対局開始からの経過時間の計測を開始する。
ステップS60において操作端末16を操作するユーザは、例えば図12の解析した局面及び棋譜を表示する画面1300の対局休憩ボタンを押下する操作を行う。ステップS62に進み、操作端末16はタスクIDを指定して、対局休憩を棋譜記録システム10のAPIサーバ58に要求する。
ステップS64において、APIサーバ58は指定されたタスクIDに対応するタスクのデータの文字列1042を対局休憩に基づき更新する。画像処理ワーカ64はステップS66でキャッシュサーバ62からタスクIDに対応するタスクのデータを取得することにより、対局休憩が通知される。ステップS68に進み、画像処理ワーカ64は対局休憩に従い、対局開始からの経過時間の計測を中断する。
ステップS70において操作端末16を操作するユーザは、例えば図12の解析した局面及び棋譜を表示する画面1300の対局再開ボタンを押下する操作を行う。ステップS72に進み、操作端末16はタスクIDを指定して、対局再開を棋譜記録システム10のAPIサーバ58に要求する。
ステップS74において、APIサーバ58は指定されたタスクIDに対応するタスクのデータの文字列1042を対局再開に基づき更新する。画像処理ワーカ64はステップS76でキャッシュサーバ62からタスクIDに対応するタスクのデータを取得することにより、対局再開が通知される。ステップS78に進み、画像処理ワーカ64は対局再開に従い、対局開始からの経過時間の計測を再開する。
また、ステップS80において操作端末16を操作するユーザは、例えば図12の解析した局面及び棋譜を表示する画面1300の終局ボタンを押下する操作を行う。ステップS82に進み、操作端末16はタスクIDを指定して、終局を棋譜記録システム10のAPIサーバ58に要求する。
ステップS84において、APIサーバ58は指定されたタスクIDに対応するタスクのデータの文字列1042を終局に基づき更新する。画像処理ワーカ64はステップS86でキャッシュサーバ62からタスクIDに対応するタスクのデータを取得することにより、終局が通知される。ステップS88に進み、画像処理ワーカ64は終局に従い、対局開始からの経過時間の計測を停止する。
ステップS90に進み、操作端末16はストリームIDと、ストリームを送信する棋譜記録システム10側の宛先(ストリームの宛先)と、を指定してカメラ18にストリーミングの停止を要求する。ストリーミングの停止を要求されたカメラ18は、指定されたストリームIDとストリームの宛先とを利用した棋譜記録システム10の動画受信サーバ68への動画データ(ストリームデータ)の送信を停止する。
なお、図16のシーケンス図はカメラ18が1台の例を示したが、カメラ18が複数台の場合も、同様である。したがって、カメラ18が複数台の場合のシーケンス図についての説明は省略する。また、図16のシーケンス図は操作端末16がストリームIDと、ストリームを送信する棋譜記録システム10側の宛先(ストリームの宛先)と、を指定してカメラ18にストリーミングの開始を要求するため、ファイヤーウォール等への対応も可能である。
図17は、キャッシュサーバ62への新しいタスクの追加について説明する一例の図である。キャッシュサーバ62に新しくキャッシュされるタスクの定義には、ストリームIDと、対局者に関する情報と、時間に関する情報と、が含まれる。対局者に関する情報は例えば対局者の名前である。時間に関する情報は、例えば持ち時間、秒読み、ディレイなどである。「秒読み」とは、持ち時間を使い果たした後、又は秒読み将棋において、一手を指すために消費できる時間である。「ディレイ」とは、持ち時間の減算が開始されるまでの猶予時間である。例えば猶予時間が過ぎる前に手を指した場合、猶予時間の残りを持ち時間に加算することで、いわゆるフィッシャールールにも対応できる。
図18は、実行中のタスクについて説明する一例の図である。例えば図18に示した例では画像処理ワーカ64が1つ以上のタスクを実行する例を示している。例えば「Worker1」で示される画像処理ワーカ64は「タスク1」及び「タスク4」を実行することでキャッシュサーバ62にキャッシュされている「タスク1」及び「タスク4」のタスクのデータを更新する。また、APIサーバ58はタスクIDを指定して、そのタスクIDに対応するタスクのデータをキャッシュサーバ62から取得できる。
なお、タスクを実行中の画像処理ワーカ64は、前局面データ、盤上の駒データ、対局の時間に関するデータ、指し手の時間に関するデータ、最後に駒を動かした場所、反則フラグ、持ち駒、手数、終局の種別などの情報を記憶している。
前局面データは、初期状態で、駒の初期配置を表し、指し手が進むことにより、その時の駒の配置に更新される。盤上の駒データは、画像認識サーバ66からの応答を記録した内容である。対局の時間に関するデータは、対局の持ち時間、ディレイ、秒読みなどの内容である。指し手の時間に関するデータは、指し手に要した時間である。最後に駒を動かした場所は、直前の指し手により駒が指された又は打たれたマスを表す。
反則フラグは解析した直近の指し手が後述の合法手であるか否か示す情報である。持ち駒は、先手及び後手の持ち駒をリストで表す。手数は、何手指されたかを表す。終局の種別は対局中、詰み、千日手、投了の何れかを表している。
図19はタスクの状態の詳細について説明する一例の状態遷移図である。図19に示すタスクの状態は、ボード検出、ボード位置合わせ、準備中、対局開始待ち、対局中、休憩中、及び終局が含まれる。
タスクの状態「ボード検出」は動画受信サーバ68から取得している画像データから将棋盤20を検出中の状態である。ボードが見つかる(将棋盤20を検出する)と、タスクは状態「ボードの位置合わせ」に遷移する。ボード位置計算終了(将棋盤20のマス目の位置計算が終了)すると、タスクは状態「準備中」に遷移する。
将棋盤20で駒が初期配置になると、タスクは状態「対局開始待ち」となる。ユーザによる対局開始の指示があると、タスクは状態「対局中」に遷移する。状態「対局中」のタスクは中断により状態「休憩中」に遷移する。また、状態「休憩中」のタスクは再開により状態「対局中」に遷移する。さらに、状態「対局中」のタスクは投了などの終局条件を満たした場合に状態「終局」に遷移する。
<<状態が「対局中」の画像処理ワーカ64の処理>>
図20は状態が「対局中」の画像処理ワーカ64の処理の一例を示すフローチャートである。ステップS100に進み、画像処理ワーカ64は動画受信サーバ68から取得した動画データ(動画ソース)からフレームを読み込む。ステップS102に進み、画像処理ワーカ64はフレームから盤面部分の画像を切り出す。
ステップS104に進み、画像処理ワーカ64は盤面部分の画像から更に、盤面部分のマスごとの画像を切り出す。そして、画像処理ワーカ64は切り出したマスごとの画像の認識処理を画像認識サーバ66に要求し、マスごとの画像からマスへの駒の配置と、配置されている駒の種類とを認識する。ステップS106に進み、画像処理ワーカ64は画像認識サーバ66から返された認識の結果から盤上の駒の種類及び配置を検知して、盤上の現局面を求める。
ステップS108において、画像処理ワーカ64はステップS106で求めた盤上の現局面と、記憶している前局面とに差分があるか否かを判定する。差分がなければ、画像処理ワーカ64はステップS114でタスクのデータの更新を行ったあと、ステップS100に戻り、処理を続ける。
また、差分があれば、画像処理ワーカ64はステップS110に進み、盤上の現局面と前局面との差分から求めた直近の指し手が合法手であるか否かを判定する。ここで、合法手とは、将棋のルールを考慮したときに、前局面から現局面への変化に正当性がある指し手のことを言う。本実施形態では、将棋のルールにおける反則手が指された状態、画像認識サーバ66による駒の種類の認識間違いが生じている状態、対局者の手などが重なって映ることにより駒が認識できていない状態、なども合法手でないと判定する。
合法手であれば、画像処理ワーカ64はステップS112に進み、記憶している前局面をステップS106で求めた盤上の現局面に更新する。このように、画像処理ワーカ64は盤上の現局面と前局面との差分から求めた直近の指し手が合法手であれば、記録が必要な指し手であると判断し、記憶している前局面をステップS106で求めた盤上の現局面に更新することで、直近の指し手が棋譜に追加される。その後、画像処理ワーカ64はステップS114でタスクのデータの更新を行ったあと、ステップS100に戻り、処理を続ける。
なお、ステップS110で合法手でないと判定すると、画像処理ワーカ64はステップS112の処理をスキップしてステップS114に進み、タスクのデータの更新を行ったあと、ステップS100に戻り、処理を続ける。このように、合法手でなければ、画像処理ワーカ64は記録が必要な指し手でないと判断し、記憶している前局面をステップS106で求めた盤上の現局面に更新しない。
図20のフローチャートの処理について、図21の局面を例に説明する。図21は将棋の局面の一例を示す図である。ここでは、対局者の「2九飛」の指し手により前局面である図21(A)から図21(B)の局面に進んだ例を説明する。例えば画像認識サーバ66による駒の種類の認識間違い(例えば「飛」を「金」と認識している場合など)が暫く生じた後で、認識間違いが解消した場合を考える。
画像認識サーバ66による駒の種類の認識間違いが生じている間は、盤上の現局面と前局面との差分から求めた直近の指し手「2九金」は、図21(A)の局面から進むことのない正当性の無い指し手であるため、記録が必要な指し手でないと判断できる。画像認識サーバ66による駒の種類の認識間違いが解消されると、盤上の現局面と前局面との差分から求めた直近の指し手「2九飛」は、図21(A)の局面から進むことのある正当性のある指し手であるため、記録が必要な指し手であると判断される。
このように、図20のフローチャートの処理によれば、ユーザや対局時計などが棋譜を記録するタイミングを示さなくても、画像認識サーバ66による駒の種類の認識間違いが解消された後の正しい指し手を棋譜として記録できる。
また、状態が「対局中」の画像処理ワーカ64の処理は、例えば図22に示すような手順で行ってもよい。図22は状態が「対局中」の画像処理ワーカ64の処理の一例を示すフローチャートである。ステップS200〜S208の処理は図20のフローチャートのステップS100〜S108の処理と同様である。
ステップS208において、画像処理ワーカ64はステップS206で求めた盤上の現局面と、記憶している前局面とに差分があるか否かを判定する。差分がなければ、画像処理ワーカ64はステップS220でタスクのデータの更新を行ったあと、ステップS200に戻り、処理を続ける。
また、差分があれば、画像処理ワーカ64はステップS210に進み、記憶している前局面のデータを退避させた後、記憶している前局面(前回の局面)を一手前(前々回の局面)に戻す。画像処理ワーカ64はステップS212に進み、盤上の現局面と前々回の局面との差分から求めた直近の指し手が合法手であるか否かを判定する。
合法手であれば画像処理ワーカ64はステップS218に進み、記憶している前々回の局面をステップS206で求めた盤上の現局面に更新する。画像処理ワーカ64は盤上の現局面と前々回の局面との差分から求めた直近の指し手が合法手であれば、前回の局面が記録の必要の無い指し手であると判断し、退避させた前回の局面のデータを破棄する。画像処理ワーカ64はステップS220でタスクのデータの更新を行ったあと、ステップS200に戻り、処理を続ける。
ステップS212で合法手でないと判定すると、画像処理ワーカ64はステップS214に進み、退避させた前回の局面のデータを復元する。画像処理ワーカ64はステップS214に続いてステップS216に進み、盤上の現局面と前局面との差分から求めた直近の指し手が合法手であるか否かを判定する。
合法手であれば、画像処理ワーカ64はステップS218に進み、記憶している前局面をステップS206で求めた盤上の現局面に更新する。このように、画像処理ワーカ64は盤上の現局面と前局面との差分から求めた直近の指し手が合法手であれば、記録が必要な指し手であると判断し、記憶している前局面をステップS206で求めた盤上の現局面に更新することで、直近の指し手が棋譜に追加される。その後、画像処理ワーカ64はステップS220でタスクのデータの更新を行ったあと、ステップS200に戻り、処理を続ける。
なお、ステップS216で合法手でないと判定すると、画像処理ワーカ64はステップS218の処理をスキップしてステップS220に進み、タスクのデータの更新を行ったあと、ステップS200に戻り、処理を続ける。このように、合法手でなければ、画像処理ワーカ64は記録が必要な指し手でないと判断し、記憶している前局面をステップS210で求めた盤上の現局面に更新しない。
図22のフローチャートの処理について図23の局面を例に説明する。図23は将棋の局面の一例を示す図である。例えば将棋では、図21(A)の局面から図23(A)に示すように「2六」のマスに「飛」を指を離さないように置いて、その後、図23(B)に示すように「2七」のマスにずらす指し方がある。このような指し方は「2六飛」「2七飛」の2手に見えるが、図22のフローチャートの処理によれば「2六飛」の認識を破棄して「2七飛」の認識を採用できる。
具体的に、図23(B)の局面では、盤上の現局面と前局面との差分から求めた直近の指し手「2七飛」は、図21(A)の局面から進むことのできる正当性のある指し手であるため、記録が必要な指し手であると判断できる。したがって、画像処理ワーカ64は図23(A)の前回の局面のデータを、破棄できる。
このように、図22のフローチャートの処理によれば、ユーザや対局時計などが棋譜を記録するタイミングを示さなくても、図23を用いて説明したような、マスを跨ぐように駒をずらして配置するような指し方にも対応できる。
第1の実施形態によれば、ライブでストリーミングされている将棋盤20の盤上を映した動画データを連続的に解析し、記録が必要な駒の配置の変化を検知して、自動的に棋譜を記録することができる。
[他の実施形態]
図8に示したカメラ18の配置は一例であって、図24又は図25のようにカメラ18を配置してもよい。図24及び図25はカメラ18の一例の配置図である。
図24は三脚やフリップアームで支持してカメラ18を設置した例を示している。図24のカメラ18には例えばウェブカメラを利用できる。ウェブカメラは例えば操作端末16に接続される。カメラ18は対局室に置かれた将棋盤20の盤上が含まれるように動画の撮影が行える位置に設置される。カメラ18は操作端末16を介して通信ネットワーク24に接続される。
図25はスマートフォンなどのカメラ付きの操作端末16をセルカ棒やフリップアームで支持し、カメラ18としても利用する例である。カメラ付きの操作端末16は対局室に置かれた将棋盤20の盤上が含まれるように動画の撮影が行える位置に設置される。図25の例ではカメラ付きの操作端末16が撮影した動画データが、棋譜記録システム10に送信される。
なお、第1の実施形態では、カメラ18から受信した動画データを利用する例を説明したが、過去の対局を撮影した動画データから、棋譜を記録する構成も可能である。カメラ18は複数の将棋盤20が含まれるように撮影してもよく、1つの動画データから複数の対局の棋譜を記録することも可能である。また、第1の実施形態では将棋を一例として説明したが、画像処理ワーカ64と画像認識サーバ66とを変更すれば様々なボードゲームへの対応も可能である。
<まとめ>
本実施形態によれば、盤上が含まれるように撮影された画像から、記録が必要な対局者の指し手を検知して記録できる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
なお、1台のコンピュータを含むように構築される棋譜記録システム10は特許請求の範囲に記載した情報処理装置の一例である。画像認識サーバ66は画像認識手段の一例である。画像処理ワーカ64は処理手段の一例である。Webサーバ56はデータ提供手段の一例である。
1台のコンピュータを含むように構築される棋譜記録システム10が実行する棋譜の記録方法は、特許請求の範囲に記載した情報処理装置が実行する記録方法の一例である。画像認識サーバ66の処理は認識ステップの一例である。画像処理ワーカ64の処理は記録ステップの一例である。
また、ストリーム開始要求部82は送信開始指示手段の一例である。タスク開始要求部84は処理開始指示手段の一例である。ストリーム開始要求部82の処理は、送信開始指示ステップの一例である。タスク開始要求部84の処理は、処理開始指示ステップの一例である。表示制御部88の処理は、表示ステップの一例である。
1 情報処理システム
10 棋譜記録システム
12 対局配信システム
14 棋譜DB
16 操作端末
18 カメラ
20 将棋盤
22、24 通信ネットワーク
50 OS
52 ミドルウェア/プログラム言語ランタイム52
54 ストレージ
56 Webサーバ
58 APIサーバ
60 APIプログラム
62 キャッシュサーバ
64 画像処理ワーカ
66 画像認識サーバ
68 動画受信サーバ
70 ワーカ管理
80 ストリームID受信部
82 ストリーム開始要求部
84 タスク開始要求部
86 指示部
88 表示制御部
90 カメラ管理部
特開2010−104510号公報

Claims (12)

  1. 盤上に複数のゲーム部品をプレイヤが配置して行うゲームの前記ゲーム部品の配置の変化を記録する情報処理装置であって、
    前記盤上が含まれるように撮影された画像データから、前記盤上に配置されている前記ゲーム部品を認識する画像認識手段と、
    前記画像認識手段による認識に基づき、記録が必要な前記ゲーム部品の配置の変化を順番に記録する処理手段と、
    を有し、
    前記処理手段は、前回の認識に基づく前記ゲーム部品の配置の記録、及び今回の認識に基づく前記ゲーム部品の配置に差分があり、且つ今回の認識に基づく前記ゲーム部品の配置に正当性があれば、今回の認識に基づく前記ゲーム部品の配置の変化を記録することを特徴とする情報処理装置。
  2. 前記処理手段は、前回の認識に基づく前記ゲーム部品の配置の記録、及び今回の認識に基づく前記ゲーム部品の配置に差分があれば、前々回の認識に基づく前記ゲーム部品の配置の記録との関係から今回の認識に基づく前記ゲーム部品の配置の正当性を判定し、今回の認識に基づく前記ゲーム部品の配置に正当性があれば、前回の認識に基づく前記ゲーム部品の配置の記録を破棄して、今回の認識に基づく前記ゲーム部品の配置の変化を記録すること
    を特徴とする請求項1記載の情報処理装置。
  3. 前記処理手段は、前々回の認識に基づく前記ゲーム部品の配置の記録との関係から今回の認識に基づく前記ゲーム部品の配置に正当性がなければ、更に、前回の認識に基づく前記ゲーム部品の配置の記録との関係から今回の認識に基づく前記ゲーム部品の配置の正当性を判定し、今回の認識に基づく前記ゲーム部品の配置に正当性があれば、前回の認識に基づく前記ゲーム部品の配置の記録を残して、今回の認識に基づく前記ゲーム部品の配置の変化を記録すること
    を特徴とする請求項2記載の情報処理装置。
  4. 前記画像認識手段は、前記ゲーム部品の学習済みの画像認識モデルを用いて、前記盤上が含まれるように撮影された画像データから、前記盤上に配置された前記ゲーム部品の位置及び種類を認識すること
    を特徴とする請求項1乃至3何れか一項記載の情報処理装置。
  5. 前記処理手段は、認識された前記ゲーム部品の種類に応じて設定されている前記ゲーム部品の移動が可能な位置の情報を用いて、今回の認識に基づく前記ゲーム部品の配置に正当性があるか否かを判定すること
    を特徴とする請求項4記載の情報処理装置。
  6. 前記処理手段は、今回の認識に基づく前記ゲーム部品の配置の変化と共に、前回の認識に基づく前記ゲーム部品の配置の変化から今回の認識に基づく前記ゲーム部品の配置の変化までの経過時間を記録すること
    を特徴とする請求項1乃至5何れか一項記載の情報処理装置。
  7. 前記処理手段が順番に記録した前記ゲーム部品の配置の変化に関する情報を、操作端末に表示させるためのデータを作成して、前記データを前記操作端末に提供するデータ提供手段、を更に有すること
    を特徴とする請求項1乃至6何れか一項記載の情報処理装置。
  8. 盤上に複数のゲーム部品をプレイヤが配置して行うゲームの前記ゲーム部品の配置の変化を記録する情報処理装置が実行する記録方法であって、
    前記盤上が含まれるように撮影された画像データから、前記盤上に配置されている前記ゲーム部品を認識する認識ステップと、
    前記認識ステップによる認識に基づき、記録が必要な前記ゲーム部品の配置の変化を順番に記録する記録ステップと、
    を有し、
    前記記録ステップは、前回の認識に基づく前記ゲーム部品の配置の記録、及び今回の認識に基づく前記ゲーム部品の配置に差分があり、且つ今回の認識に基づく前記ゲーム部品の配置に正当性があれば、今回の認識に基づく前記ゲーム部品の配置の変化を記録することを特徴とする記録方法。
  9. 盤上に複数のゲーム部品をプレイヤが配置して行うゲームの前記ゲーム部品の配置の変化を記録する情報処理装置を、
    前記盤上が含まれるように撮影された画像データから、前記盤上に配置されている前記ゲーム部品を認識する画像認識手段、
    前記画像認識手段による認識に基づき、記録が必要な前記ゲーム部品の配置の変化を順番に記録する処理手段、
    として機能させ、
    前記処理手段は、前回の認識に基づく前記ゲーム部品の配置の記録、及び今回の認識に基づく前記ゲーム部品の配置に差分があり、且つ今回の認識に基づく前記ゲーム部品の配置に正当性があれば、今回の認識に基づく前記ゲーム部品の配置の変化を記録することを特徴とするプログラム。
  10. 盤上が含まれるように撮影を行う撮影装置と、操作端末と、前記盤上に複数のゲーム部品をプレイヤが配置して行うゲームの前記ゲーム部品の配置の変化を記録する情報処理装置と、を含む情報処理システムであって、
    前記操作端末は、
    前記盤上が含まれるように撮影される画像データの識別情報、及び前記画像データを送信する宛先を指定して、前記宛先への前記画像データの送信の開始を前記撮影装置に指示する送信開始指示手段と、
    前記識別情報を指定して、前記宛先に送信された前記画像データに対する処理の開始を前記情報処理装置に指示する処理開始指示手段と、
    前記情報処理装置が順番に記録した前記ゲーム部品の配置の変化に関する情報を表示する表示手段と、
    を有し、
    前記情報処理装置は、
    前記操作端末からの前記処理の開始の指示に基づき、前記宛先に送信された画像データから前記盤上に配置されている前記ゲーム部品を認識する画像認識手段と、
    前記画像認識手段による認識に基づき、記録が必要な前記ゲーム部品の配置の変化を順番に記録する処理手段と、
    を有し、
    前記処理手段は、前回の認識に基づく前記ゲーム部品の配置の記録、及び今回の認識に基づく前記ゲーム部品の配置に差分があり、且つ今回の認識に基づく前記ゲーム部品の配置に正当性があれば、今回の認識に基づく前記ゲーム部品の配置の変化を記録することを特徴とする情報処理システム。
  11. 盤上が含まれるように撮影を行う撮影装置と、操作端末と、前記盤上に複数のゲーム部品をプレイヤが配置して行うゲームの前記ゲーム部品の配置の変化を記録する情報処理装置と、を含む情報処理システムが実行する記録方法であって、
    前記操作端末は、
    前記盤上が含まれるように撮影される画像データの識別情報、及び前記画像データを送信する宛先を指定して、前記宛先への前記画像データの送信の開始を前記撮影装置に指示する送信開始指示ステップと、
    前記識別情報を指定して、前記宛先に送信された前記画像データに対する処理の開始を前記情報処理装置に指示する処理開始指示ステップと、
    前記情報処理装置が順番に記録した前記ゲーム部品の配置の変化に関する情報を表示する表示ステップと、
    を実行し、
    前記情報処理装置は、
    前記操作端末からの前記処理の開始の指示に基づき、前記宛先に送信された前記画像データから前記盤上に配置されている前記ゲーム部品を認識する認識ステップと、
    前記認識ステップによる認識に基づき、記録が必要な前記ゲーム部品の配置の変化を順番に記録する記録ステップと、
    を実行し、
    前記記録ステップは、前回の認識に基づく前記ゲーム部品の配置の記録、及び今回の認識に基づく前記ゲーム部品の配置に差分があり、且つ今回の認識に基づく前記ゲーム部品の配置に正当性があれば、今回の認識に基づく前記ゲーム部品の配置の変化を記録することを特徴とする記録方法。
  12. 盤上が含まれるように撮影を行う撮影装置、及び前記盤上に複数のゲーム部品をプレイヤが配置して行うゲームの前記ゲーム部品の配置の変化を記録する情報処理装置とデータ通信が可能である操作端末を、
    前記盤上が含まれるように撮影される画像データの識別情報、及び前記画像データを送信する宛先を指定して、前記宛先への前記画像データの送信の開始を前記撮影装置に指示する送信開始指示手段、
    前記識別情報を指定して、前記宛先に送信された前記画像データに対する処理の開始を前記情報処理装置に指示する処理開始指示手段、
    前記情報処理装置に記録された、記録が必要な前記ゲーム部品の配置の変化を表示する表示手段、
    として機能させるためのプログラム。
JP2019052962A 2019-03-20 2019-03-20 情報処理装置、記録方法、プログラム、及び情報処理システム Pending JP2020151218A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019052962A JP2020151218A (ja) 2019-03-20 2019-03-20 情報処理装置、記録方法、プログラム、及び情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019052962A JP2020151218A (ja) 2019-03-20 2019-03-20 情報処理装置、記録方法、プログラム、及び情報処理システム

Publications (1)

Publication Number Publication Date
JP2020151218A true JP2020151218A (ja) 2020-09-24

Family

ID=72556710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019052962A Pending JP2020151218A (ja) 2019-03-20 2019-03-20 情報処理装置、記録方法、プログラム、及び情報処理システム

Country Status (1)

Country Link
JP (1) JP2020151218A (ja)

Similar Documents

Publication Publication Date Title
CN105407258B (zh) 带有梯形磁体用于光学图像稳定的竖直安装的相机致动器部件
CN110917614B (zh) 基于区块链***的云游戏***及云游戏的控制方法
CN108415705B (zh) 网页生成方法、装置、存储介质及设备
JP5688297B2 (ja) 通信システム、情報処理装置、通信プログラムおよび通信方法
JP2014131215A (ja) 画像管理システム、画像管理方法、及びプログラム
US20210200861A1 (en) Control information processing method and apparatus, electronic device, and storage medium
US20140223359A1 (en) Display processor and display processing method
JP2021039468A (ja) 撮影装置、通信システム、通信方法およびプログラム
JP2012143269A (ja) 通信システム、情報処理装置、通信プログラムおよび通信方法
CN109618192B (zh) 播放视频的方法、装置、***和存储介质
CN113509720A (zh) 虚拟对战的回放方法、装置、终端、服务器及存储介质
JP2017212510A (ja) 画像管理装置、プログラム、画像管理システム及び情報端末
EP3028181A1 (en) Information processing apparatus, information processing method, and program
CN114339294A (zh) 网络抖动的确认方法、装置、设备及存储介质
JP6115113B2 (ja) 所定領域管理システム、所定領域管理方法、及びプログラム
JP2023175782A (ja) プログラム、電子機器およびサーバシステム
JP2015035169A (ja) 電子機器、サーバ、電子機器の制御方法、情報処理方法および記録媒体
US10645274B2 (en) Server apparatus, distribution system, distribution method, and program with a distributor of live content and a viewer terminal for the live content including a photographed image of a viewer taking a designated body pose
JP2020151218A (ja) 情報処理装置、記録方法、プログラム、及び情報処理システム
JP2020119335A (ja) プログラム、カメラワークデータ生成方法および電子機器
JP2019061386A (ja) 情報処理システム、情報処理装置、情報処理方法及びプログラム
CN111641774B (zh) 中继终端、通信***、输入***、中继控制方法
JP2022029349A (ja) 情報処理装置、操作端末、記録方法、プログラム、及び情報処理システム
CN103366613A (zh) 信息处理设备、信息处理方法和程序
JP5489594B2 (ja) 情報処理装置、その制御方法、プログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20210421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210422

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220113