2017年3月11日土曜日

Web 棋譜ミー

バックギャモンフェスティバル直後から「棋譜ミー」の開発を始めて、すでに5ヶ月も経ちました。未だにプロトタイプの状態ではありますが、徐々に進化しています。

「棋譜ミー」が出来ることは見た目あまり変わっていないのですが、中身の構造は大きく変更しました。1月になってから画像認識処理をごっそり変更した結果、処理の高速化が出来ました。なので2月の四ツ谷で「例会デビュー」し、対戦からリアルタイムで棋譜を起こすデモもやりました。当時はムーブの解析処理も一部実装していない状態でしたので、結構エラーが出ちゃいました。

最近は、細かいバグも都度対応しているので、エラーが起きる確率もだいぶ下がってきました。このデバッグ作業はこれからも果てしなく続くでしょうから、少しでも効率的にデバッグできるよう、エラーが起きた場面を即座に画像で確認出来るようなHTMLを出力する機能を追加しました。これで私のデバッグ作業は飛躍的に効率化できたのですが、マッチ動画を振り返るツールとしてもなかなかに使える気がします。こちらのページをご覧ください。名人リーグの私と鈴木さんのマッチです。

画面の左側のテーブルがいわゆる棋譜のデータですが、いくつかリンクがあります。一番左のリンクは、「出目を読んだ動画のフレーム」です。ここを参照すれば、どんな目がロールされたのかおよそ分かります。その隣のリンクをクリックすると、棋譜ミーが「ムーブを確定させたフレーム」が表示されます。なので、これらのフレームをぽちぽち辿っていけば、ゲームの流れを把握することができます。マウスでぽちぽちクリックするのは面倒なので、キーボードの左右矢印キーでもフレーム間を移動できるようにしました。現在は不完全な棋譜しか出力できない棋譜ミーですが、このページを見ながら修正していけば、それほど時間がからないのではないかと目論んでいます。(もしくはこれを見ながらXGで棋譜入力した方が早いかもw)


先日、リーグ戦の対戦のため赤坂に行きました。もはや行きつけの caffe beneで、盤聖戦のために上京されていた永井一矢さんにお会いしました。永井さんは私が棋譜ミーを開発していることをご存知でしたので、しばらくその話で盛り上がりました。その時話したネタも、このWebページに入れてみました。

動画には、当然ながら「時間」の情報も含まれています。つまり、あるムーブをしてから次のムーブが行われるまでどれくらい時間を要したかは、先ほど説明したフレームの番号を引き算すれば求めることができます。実戦でウンウン悩んだポジションこそ、後で振り返りたいものではないでしょうか? そんなわけで、60秒以上かかったムーブやアクションはオレンジ、120秒以上は赤でマークしてあります。


開発を始めた当初は、リーグ戦のマッチ動画解析に実践投入とか思っていたのですが、すでにリーグ戦は終わってしまいました・・ 棋譜を振り返るためのツールを開発していたはずが、いつの間にか棋譜を起こすこと自体が目的となってしまい、もはや振り返りなど全くしていません。それどころか、プログラミングが面白すぎるので、プログラミングの合間に思い出したようにギャモンをする状態となっています。それでもリーグ戦の成績が良かったのは、出目が良かったからに他なりませんが、開発用に提供していただいたマッチ動画がいずれも世界屈指のプレーヤーの動画だったのが奏功したかもしれないです。横田名人はたくさん動画を見たそうですが、私もこの数ヶ月でだいぶ見ましたから、その効果が少しはあったのかもしれないです。

棋譜ミーは私一人で作っていますが、他の人と意見交換するのは大事だと思っています。先日の永井さんとの会話もアイデアが膨らみましたし、これからもいろんな人の意見を伺いつつ、改善して行きたいと考えています。プレーヤーの皆さんから、コメントいただければうれしいです。