kifu.meを公開してから約2ヶ月経ちました。たくさんの方に使って頂いて、本当にありがとうございます! シェアしていただいたポジションの数も順調に増えていて、今見たら469になってました。
さて、kifu.meの"community"機能は公開済みですが、本丸の"検索・分析機能"はまだ開発中です。とはいえ、出来ている部分もあるので少し紹介したいと思います。
ギャモンプレーヤーにとっての「ワッパー」とは、0.100以上期待値を下げるエラーを指します。皆さんは、これまでいくつ「ワッパー」をやらかしたか覚えていますか? 私はもちろん覚えてませんし、そもそもワッパーの数が多すぎて・・
こんな時、kifu.meの検索機能を使えば、これまでの全ての棋譜から条件を指定して「ワッパー」のみを取り出せます。例えば、0.100なんてケチな条件ではなく、1.0以上の超超超特大ワッパーを探してみましょう。こんなとてつもないエラーは、みなさんの棋譜に無いかもしれませんが、非常に残念なことに私の棋譜からはザクザク出て来ます。
これまでのチェッカープレイでの最大のエラーはこれでした。14バックゲームでヒットチャンスが来たのに、特大ワッパーとはこれいかに? 実戦では5の目でヒット出来るのを見落としてしまったのでした。これはボットとの練習試合だったのですが、ほぼ同じ局面で同じ見落としをしていることが、今回調べてみて分かりました。以下の局面は、2015年9月25日の寺尾さんとの7ポイントマッチです。ということはフェスティバルのオンライン予選とかだったかもしれません。24/19*がどうして私には見えないのか?? 全くもって理解不能です。
キューブアクションはどうでしょうか? Doubleの最大エラーはこれです。
2015年5月25日。その"事件"は起こりました・・ というほどでも無いのですが、PlayOKでdaruma3と対戦していた私は、操作を間違えて、ここでダブルしてしまいました。対戦中に小泉さんに「私、今ダブルしました?」と確認したように思います。これ以降、何となくPlayOKから足が遠のくきっかけになった瞬間でした。
二番目にひどいキューブアクションは、こちらです。
2015年12月22日の木村さんとのマッチです。この時は"操作ミス"をした記憶無いので、ガチでdouble-takeと思ってダブルしたんだと思われます。いやヒドイもんだ。
ということで、ワッパー見つける以外にもいろいろ使えるはずのツール作ってます。来年早々にもリリースしたいと考えていますので、どうぞよろしくお願いします。
今年はリーグ戦にフル参戦できたし、リーグの成績はすこぶる良かった。私にとっては最高の一年でした。例会とかネットでお世話になった皆さまありがとうございました。来年も楽しくギャモンが遊べる年でありますように!
2017年12月31日日曜日
2017年11月24日金曜日
ガマンぎりぎりライン
先日、twitterにこう書いたものの、実は思っていたキューブアクション間違ってたし(スコアを加味すると)、もう一度ちゃんと調べてみることにしました。黒からダブル来ました スコアは2-1/5pで白リード これは珍しくリファレンスとして覺えているポジションでしたので、キューブアクションに自信ありました pic.twitter.com/8lq2rE3wlz— Masahiro Kisono (@mkisono) November 12, 2017
バーポイントホールディングゲームでは、18ポイントと13ポイントのアンカーが相対し、お互いにギリギリまでポイントを崩さない状況が発生すると思います。私はこれを「ガマンぎりぎりライン」と心の中で呼んでいます。NHKの「デザイン あ」という番組にそういうコーナーがあるんです。このラインを越えると、途端にダイレクトヒットのチャンスがやってくるので、キューブアクションを考えるわけです。
さて、上記のポジションは、マネーなら Double / Take で、実戦のスコアだと No Double / Take でした。
チェッカーの配置をいくつか変えてみて、Double / Take と No double / Take の境界はどのあたりか探してみました。その結果が上のポジションで、pip差が大きく効いてくるようでした。この局面では紫が68、水色が81。紫13pip(19%)リードです。これよりリードが大きいと水色からはダブル出来ないようでした。
他の条件としては、水色が完全なボードを作っている必要があります。6ポイントが空いてしまっているようなボードでは、勝率がガクッと下がります。
こんなポジション本当に出てくるの? と思い検索してみましたが、実際に過去に何度も出てきてました。
例えば、これは一年くらい前の私の実戦で出てきた局面です。ほとんど条件を満たしているように見えますが、ボードが完全じゃないのでダブルできないようです。
他にも、nishikenさんとの名人ネット予選、nasuさんとの王位戦などなど、割と頻繁に出くわす形と思いました。
そんなわけで、過去の局面をサクッと検索できる、ギャモン研究に革新をもたらすと信じて疑わないシステムを開発中です。一部の機能は使えますので、ぜひ https://kifu.me/ へ来てください。
2017年6月24日土曜日
第23期名人戦決勝トーナメント
今期の名人リーグは、東京の2部で優勝し2枠を獲得しました。さらに、くじ運が良くて決勝トーナメントではいきなりベスト8からの登場となりました。
こんなチャンスはもう2度と無いかもしれないと考え、ここ2週間ほどは大好きなプログラミングもほどほどに、ギャモンに打ち込みました。実際のところは、先週風邪を引いて寝込んでしまい、暇な時間はAceをひたすらやってました。これでだいぶギャモンの感覚を取り戻したと思ったのは気のせいで、あまり考えずにプレイしてしまう悪い癖がついただけでした。それを急いで修正しているところで、今日はUSBGFのトーナメントで Joe Russellと当たる幸運に恵まれました。最強クラスのプレーヤー相手にどこまでやれるのか、自分の調子を測るにはもってこいの相手です。
試合は負けましたが、自分の調子としては悪くなかったので、明日は体調を万全に整えて下平さんに挑戦したいと思います。
こんなチャンスはもう2度と無いかもしれないと考え、ここ2週間ほどは大好きなプログラミングもほどほどに、ギャモンに打ち込みました。実際のところは、先週風邪を引いて寝込んでしまい、暇な時間はAceをひたすらやってました。これでだいぶギャモンの感覚を取り戻したと思ったのは気のせいで、あまり考えずにプレイしてしまう悪い癖がついただけでした。それを急いで修正しているところで、今日はUSBGFのトーナメントで Joe Russellと当たる幸運に恵まれました。最強クラスのプレーヤー相手にどこまでやれるのか、自分の調子を測るにはもってこいの相手です。
試合は負けましたが、自分の調子としては悪くなかったので、明日は体調を万全に整えて下平さんに挑戦したいと思います。
勝負どころだと思った場面— Masahiro Kisono (@mkisono) June 24, 2017
Joeが少考したのでこれはキューブが来ると思い、ダブルの瞬間即テイクした
現時点では相手がやること多いし、こちらにはアンカーがある
とはいえこのゲームでギャモン取られて敗色濃厚となりました pic.twitter.com/4Xpoe3QgcG
2017年6月3日土曜日
棋譜ミー ライブストリーミング
5月のバックギャモンフェスティバルで、棋譜ミーを使ってライブ配信しました。Kazuki-Sander戦という好カードでした。
ライブ配信自体、フェスの配信が初めてだったのですが、横瀬さんにやり方を教えてもらったので、今では自分で出来るようになりました。棋譜ミーを改造して、ライブ配信でここまで出来るようになりました。
ちょっと分かりづらいですか、これはプレイ中にリアルタイムで処理している映像です。テストプレイの時はいつも息子に手伝ってもらってますが、息子はこの画面をチラ見しながらプレイしています。つまり、ダイスをロールするとまもなくベストムーブが画面に表示されます。その気になればいくらでも「チート」できます。
後半、映像が途切れ途切れになってしまいましたが、これは自宅のネットワークの問題で、プログラム自体は最後までちゃんと動いてました。
現実のマッチでは、これを見ながらやっては意味ないですが、ライブ配信を見ている人には参考になるかもしれません。作ってみて改めて思ったのは、そもそもこういう情報が必要かってことです。将棋の電王戦みたいに「評価値」が出るのがすでに受け入れられているかもしれませんが、バックギャモンにおいてはどうでしょうか? 私としては、一流のプレーヤーがコメンタリーしているのを聞くのがとても楽しいです。コメンタリーを用意できない場合も多いでしょうから、そういう配信では有効かもしれないです。
これに加えて、キューブアクションの評価と勝率を表示する機能までは作ろうと思ってます。
AbemaTVで配信し、たしか2000人以上のviewがあったと思いますが、私としてはあまり満足の行く内容ではありませんでした。全くの言い訳ですが、準備を始めたのが前日で、ストリーミング用に作っていなかった棋譜ミーを改造するのは、あの時点ではあれが限界でした。奥の小部屋で支度中 ダイス認識、いい感じですよ pic.twitter.com/p3zGXdQwah— Masahiro Kisono (@mkisono) May 3, 2017
ライブ配信自体、フェスの配信が初めてだったのですが、横瀬さんにやり方を教えてもらったので、今では自分で出来るようになりました。棋譜ミーを改造して、ライブ配信でここまで出来るようになりました。
ちょっと分かりづらいですか、これはプレイ中にリアルタイムで処理している映像です。テストプレイの時はいつも息子に手伝ってもらってますが、息子はこの画面をチラ見しながらプレイしています。つまり、ダイスをロールするとまもなくベストムーブが画面に表示されます。その気になればいくらでも「チート」できます。
後半、映像が途切れ途切れになってしまいましたが、これは自宅のネットワークの問題で、プログラム自体は最後までちゃんと動いてました。
これに加えて、キューブアクションの評価と勝率を表示する機能までは作ろうと思ってます。
2017年5月23日火曜日
8away - 4away
4月まで名人リーグ、5月はフェスティバルと、途切れなくギャモンで遊んでいると、ドイツ人が"Nach der EM ist vor der WM"と言っていたのを思い出します。ユーロが終わると次はワールドカップ予選、ワールドカップが終わるとすぐにまたユーロの予選と、いつまで経ってもサッカーの楽しみが続くのです。
というわけで、次のお楽しみ「盤聖リーグ」が始まりました!
5月21日の四ツ谷例会で、犬塚雄輝くんと対戦しました。2セット目でこんな場面がありました。白の振り番です。キューブアクション?
仮にこれがマネーゲームだったらビーバーでしょうし、XGもビーバーだと言っています。実戦ではこれが 1-5/9p と白がリードされている 8away-4away のスコアでした。このスコアで解析すると、キューブアクションの結果は全く異なるものになります。なんと白はダブルすべきで、黒はパス!
白の勝率はさほど高くありませんが、ギャモンがそこそこあります。リダブルしてギャモンが取れればぴったりマッチ勝ちとなるので、ここでのギャモンはとても価値があります。4away-2awayのキューブと同じように考えればよいと、試合後に日野くんに教えてもらいました。なるほどー、対戦中は全く気づきませんでした。なんてボンヤリしているんでしょうか・・
XGID=-b--BCCBA---A----abbbbcaBA:1:1:1:00:1:5:0:9:10
X:mkisono O:yuki
Score is X:1 O:5 9 pt.(s) match.
+13-14-15-16-17-18------19-20-21-22-23-24-+
| O O | | O O O O O X |
| O | | O O O O X |
| | | O |
| | | |
| | X | |
| |BAR| |
| | | |
| | | |
| | | X X | +---+
| X | | X X X O | | 2 |
| X X X | | X X X O | +---+
+12-11-10--9--8--7-------6--5--4--3--2--1-+
Pip count X: 148 O: 111 X-O: 1-5/9
Cube: 2, X own cube
X on roll, cube action
Analyzed in Rollout
No redouble
Player Winning Chances: 53.33% (G:17.58% B:2.10%)
Opponent Winning Chances: 46.67% (G:24.01% B:9.01%)
Redouble/Take
Player Winning Chances: 54.52% (G:18.08% B:4.28%)
Opponent Winning Chances: 45.48% (G:25.71% B:12.09%)
Cubeless Equities: No Double=+0.056, Double=+1.051
Cubeful Equities:
No redouble: +0.644 (-0.356)
Redouble/Take: +1.051 (+0.051)
Redouble/Pass: +1.000
Best Cube action: Redouble / Pass
Rollout:
1296 Games rolled with Variance Reduction.
Moves: 3-ply, cube decisions: XG Roller
Confidence No Double: ± 0.014 (+0.631..+0.658)
Confidence Double: ± 0.020 (+1.030..+1.071)
Double Decision confidence: 100.0%
Take Decision confidence: 100.0%
Duration: 13 minutes 08 seconds
eXtreme Gammon Version: 2.10, MET: Kazaross XG2
実戦で私は、missed doubleを繰り返し、ブランダーの山を築きました。例えば、以下のポジションでもXGはダブルせよといいます。まだまだ修行が足りないことを痛感しました。
XGID=---bBCCBA---A------bcbccBA:1:1:1:00:1:5:0:9:10
X:mkisono O:yuki
Score is X:1 O:5 9 pt.(s) match.
+13-14-15-16-17-18------19-20-21-22-23-24-+
| | | O O O O O X |
| | | O O O O O X |
| | | O O O |
| | | |
| | X | |
| |BAR| |
| | | |
| | | |
| | | X X | +---+
| X | | X X X O | | 2 |
| X X X | | X X X O | +---+
+12-11-10--9--8--7-------6--5--4--3--2--1-+
Pip count X: 148 O: 94 X-O: 1-5/9
Cube: 2, X own cube
X on roll, cube action
Analyzed in Rollout
No redouble
Player Winning Chances: 43.18% (G:8.31% B:0.54%)
Opponent Winning Chances: 56.82% (G:34.96% B:19.06%)
Redouble/Take
Player Winning Chances: 43.46% (G:9.03% B:0.61%)
Opponent Winning Chances: 56.54% (G:37.43% B:18.90%)
Cubeless Equities: No Double=-0.401, Double=+0.186
Cubeful Equities:
No redouble: +0.129 (-0.057)
Redouble/Take: +0.186
Redouble/Pass: +1.000 (+0.814)
Best Cube action: Redouble / Take
Rollout:
1296 Games rolled with Variance Reduction.
Moves: 3-ply, cube decisions: XG Roller
Confidence No Double: ± 0.013 (+0.116..+0.142)
Confidence Double: ± 0.015 (+0.171..+0.200)
Double Decision confidence: 100.0%
Take Decision confidence: 100.0%
Duration: 15 minutes 03 seconds
eXtreme Gammon Version: 2.10, MET: Kazaross XG2
ようやく私がダブルしたのは以下の場面でした。ここでのキャッシュポイントは60%くらいでしたので、その勝率も超えてしまっており、遅すぎるダブルでした。
盤聖リーグではあり得ないスコアですが、8away-16awayでも同じ理屈でしょうから、次にこんな場面に出くわしたら、サッとキューブを差し出したいと思います。
XGID=-a-BBBBBB----------cbbcdC-:1:1:1:D:1:5:0:9:10
X:mkisono O:yuki
Score is X:1 O:5 9 pt.(s) match.
+13-14-15-16-17-18------19-20-21-22-23-24-+
| | | O O O O O X |
| | | O O O O O X |
| | | O O O X |
| | | O |
| | | |
| |BAR| |
| | | |
| | | |
| | | | +---+
| X X | | X X X X | | 2 |
| X X | | X X X X O | +---+
+12-11-10--9--8--7-------6--5--4--3--2--1-+
Pip count X: 138 O: 77 X-O: 1-5/9
Cube: 2, X own cube
X on roll, cube action
Analyzed in Rollout
No redouble
Player Winning Chances: 66.64% (G:12.18% B:0.52%)
Opponent Winning Chances: 33.36% (G:12.82% B:2.96%)
Redouble/Take
Player Winning Chances: 67.24% (G:13.09% B:0.78%)
Opponent Winning Chances: 32.76% (G:13.55% B:3.68%)
Cubeless Equities: No Double=+0.353, Double=+1.383
Cubeful Equities:
No redouble: +0.806 (-0.194)
Redouble/Take: +1.383 (+0.383)
Redouble/Pass: +1.000
Best Cube action: Redouble / Pass
Rollout:
1296 Games rolled with Variance Reduction.
Moves: 3-ply, cube decisions: XG Roller
Confidence No Double: ± 0.011 (+0.796..+0.817)
Confidence Double: ± 0.015 (+1.368..+1.397)
Double Decision confidence: 100.0%
Take Decision confidence: 100.0%
Duration: 14 minutes 19 seconds
eXtreme Gammon Version: 2.10, MET: Kazaross XG2
というわけで、次のお楽しみ「盤聖リーグ」が始まりました!
5月21日の四ツ谷例会で、犬塚雄輝くんと対戦しました。2セット目でこんな場面がありました。白の振り番です。キューブアクション?
仮にこれがマネーゲームだったらビーバーでしょうし、XGもビーバーだと言っています。実戦ではこれが 1-5/9p と白がリードされている 8away-4away のスコアでした。このスコアで解析すると、キューブアクションの結果は全く異なるものになります。なんと白はダブルすべきで、黒はパス!
白の勝率はさほど高くありませんが、ギャモンがそこそこあります。リダブルしてギャモンが取れればぴったりマッチ勝ちとなるので、ここでのギャモンはとても価値があります。4away-2awayのキューブと同じように考えればよいと、試合後に日野くんに教えてもらいました。なるほどー、対戦中は全く気づきませんでした。なんてボンヤリしているんでしょうか・・
XGID=-b--BCCBA---A----abbbbcaBA:1:1:1:00:1:5:0:9:10
X:mkisono O:yuki
Score is X:1 O:5 9 pt.(s) match.
+13-14-15-16-17-18------19-20-21-22-23-24-+
| O O | | O O O O O X |
| O | | O O O O X |
| | | O |
| | | |
| | X | |
| |BAR| |
| | | |
| | | |
| | | X X | +---+
| X | | X X X O | | 2 |
| X X X | | X X X O | +---+
+12-11-10--9--8--7-------6--5--4--3--2--1-+
Pip count X: 148 O: 111 X-O: 1-5/9
Cube: 2, X own cube
X on roll, cube action
Analyzed in Rollout
No redouble
Player Winning Chances: 53.33% (G:17.58% B:2.10%)
Opponent Winning Chances: 46.67% (G:24.01% B:9.01%)
Redouble/Take
Player Winning Chances: 54.52% (G:18.08% B:4.28%)
Opponent Winning Chances: 45.48% (G:25.71% B:12.09%)
Cubeless Equities: No Double=+0.056, Double=+1.051
Cubeful Equities:
No redouble: +0.644 (-0.356)
Redouble/Take: +1.051 (+0.051)
Redouble/Pass: +1.000
Best Cube action: Redouble / Pass
Rollout:
1296 Games rolled with Variance Reduction.
Moves: 3-ply, cube decisions: XG Roller
Confidence No Double: ± 0.014 (+0.631..+0.658)
Confidence Double: ± 0.020 (+1.030..+1.071)
Double Decision confidence: 100.0%
Take Decision confidence: 100.0%
Duration: 13 minutes 08 seconds
eXtreme Gammon Version: 2.10, MET: Kazaross XG2
実戦で私は、missed doubleを繰り返し、ブランダーの山を築きました。例えば、以下のポジションでもXGはダブルせよといいます。まだまだ修行が足りないことを痛感しました。
XGID=---bBCCBA---A------bcbccBA:1:1:1:00:1:5:0:9:10
X:mkisono O:yuki
Score is X:1 O:5 9 pt.(s) match.
+13-14-15-16-17-18------19-20-21-22-23-24-+
| | | O O O O O X |
| | | O O O O O X |
| | | O O O |
| | | |
| | X | |
| |BAR| |
| | | |
| | | |
| | | X X | +---+
| X | | X X X O | | 2 |
| X X X | | X X X O | +---+
+12-11-10--9--8--7-------6--5--4--3--2--1-+
Pip count X: 148 O: 94 X-O: 1-5/9
Cube: 2, X own cube
X on roll, cube action
Analyzed in Rollout
No redouble
Player Winning Chances: 43.18% (G:8.31% B:0.54%)
Opponent Winning Chances: 56.82% (G:34.96% B:19.06%)
Redouble/Take
Player Winning Chances: 43.46% (G:9.03% B:0.61%)
Opponent Winning Chances: 56.54% (G:37.43% B:18.90%)
Cubeless Equities: No Double=-0.401, Double=+0.186
Cubeful Equities:
No redouble: +0.129 (-0.057)
Redouble/Take: +0.186
Redouble/Pass: +1.000 (+0.814)
Best Cube action: Redouble / Take
Rollout:
1296 Games rolled with Variance Reduction.
Moves: 3-ply, cube decisions: XG Roller
Confidence No Double: ± 0.013 (+0.116..+0.142)
Confidence Double: ± 0.015 (+0.171..+0.200)
Double Decision confidence: 100.0%
Take Decision confidence: 100.0%
Duration: 15 minutes 03 seconds
eXtreme Gammon Version: 2.10, MET: Kazaross XG2
ようやく私がダブルしたのは以下の場面でした。ここでのキャッシュポイントは60%くらいでしたので、その勝率も超えてしまっており、遅すぎるダブルでした。
盤聖リーグではあり得ないスコアですが、8away-16awayでも同じ理屈でしょうから、次にこんな場面に出くわしたら、サッとキューブを差し出したいと思います。
XGID=-a-BBBBBB----------cbbcdC-:1:1:1:D:1:5:0:9:10
X:mkisono O:yuki
Score is X:1 O:5 9 pt.(s) match.
+13-14-15-16-17-18------19-20-21-22-23-24-+
| | | O O O O O X |
| | | O O O O O X |
| | | O O O X |
| | | O |
| | | |
| |BAR| |
| | | |
| | | |
| | | | +---+
| X X | | X X X X | | 2 |
| X X | | X X X X O | +---+
+12-11-10--9--8--7-------6--5--4--3--2--1-+
Pip count X: 138 O: 77 X-O: 1-5/9
Cube: 2, X own cube
X on roll, cube action
Analyzed in Rollout
No redouble
Player Winning Chances: 66.64% (G:12.18% B:0.52%)
Opponent Winning Chances: 33.36% (G:12.82% B:2.96%)
Redouble/Take
Player Winning Chances: 67.24% (G:13.09% B:0.78%)
Opponent Winning Chances: 32.76% (G:13.55% B:3.68%)
Cubeless Equities: No Double=+0.353, Double=+1.383
Cubeful Equities:
No redouble: +0.806 (-0.194)
Redouble/Take: +1.383 (+0.383)
Redouble/Pass: +1.000
Best Cube action: Redouble / Pass
Rollout:
1296 Games rolled with Variance Reduction.
Moves: 3-ply, cube decisions: XG Roller
Confidence No Double: ± 0.011 (+0.796..+0.817)
Confidence Double: ± 0.015 (+1.368..+1.397)
Double Decision confidence: 100.0%
Take Decision confidence: 100.0%
Duration: 14 minutes 19 seconds
eXtreme Gammon Version: 2.10, MET: Kazaross XG2
2017年5月1日月曜日
棋譜ミー ハーフバースデー
去年のフェスが終わった後から、自動棋譜起こしアプリの開発を続けています。テクノくんが名前を付けてくれてから、もう半年経ったのでハーフバースデーのお祝い、というか開発状況を書きます。
一言で言えば、「そこそこ動く」ところまで来ました。条件さえ良ければ、手で棋譜を入力するよりも、棋譜ミーが出力した棋譜の間違いを手で直す方が早いです。「条件」については、別のブログに書きました。
名人リーグでの対戦動画を自動で処理しようと思って開発を始めたのですが、最初のマッチの解析が終わったのは、対戦が終わってから3ヶ月も後でした。それが現在では、週末の5試合の棋譜起こしが、次の週末までにはだいたい終わっているところまで来ました。
小野盤聖との19ポイントマッチでは、棋譜ミーが特定した全718ムーブのうち、手作業による修正が必要なのは35でした。これは割合にすると 4.87%で、私の平均PRよりもだいぶいいです。すでに娘は父を超えました!
これまで多大なる時間と労力をこのプロジェクトに投入して来ましたが、いよいよ投資を回収するフェーズに移りつつあります。開発にご協力いただいた方々、応援してくださった方々に感謝します。
私のフェス事前入金は間に合いませんでしたが、棋譜ミーは間に合いました。フェスのマッチ動画を棋譜ミーに解析させてもいいよという方は、フェス会場でお声がけくださいませ。
そんなわけで、私の今年のフェスの最大の関心事は「会場の照明」です。ダイスがテカらずに動画が撮影できるかどうか、それが最も重要なポイントであります。
一言で言えば、「そこそこ動く」ところまで来ました。条件さえ良ければ、手で棋譜を入力するよりも、棋譜ミーが出力した棋譜の間違いを手で直す方が早いです。「条件」については、別のブログに書きました。
名人リーグでの対戦動画を自動で処理しようと思って開発を始めたのですが、最初のマッチの解析が終わったのは、対戦が終わってから3ヶ月も後でした。それが現在では、週末の5試合の棋譜起こしが、次の週末までにはだいたい終わっているところまで来ました。
小野盤聖との19ポイントマッチでは、棋譜ミーが特定した全718ムーブのうち、手作業による修正が必要なのは35でした。これは割合にすると 4.87%で、私の平均PRよりもだいぶいいです。すでに娘は父を超えました!
これまで多大なる時間と労力をこのプロジェクトに投入して来ましたが、いよいよ投資を回収するフェーズに移りつつあります。開発にご協力いただいた方々、応援してくださった方々に感謝します。
私のフェス事前入金は間に合いませんでしたが、棋譜ミーは間に合いました。フェスのマッチ動画を棋譜ミーに解析させてもいいよという方は、フェス会場でお声がけくださいませ。
そんなわけで、私の今年のフェスの最大の関心事は「会場の照明」です。ダイスがテカらずに動画が撮影できるかどうか、それが最も重要なポイントであります。
棋譜ミー ユーザーガイド 2017年4月バージョン
棋譜ミーが扱えないケースがいろいろあります。
チェッカーが重なって置かれてしまうと、そのターンのムーブを特定できません。やむを得ない場合を除いて、チェッカーをできるだけ重ねないようにしましょう。
例えば序盤で65が出て 24/13 と動かしたとします。チェッカーを重ねずに並べることができる場合は、下図のようにムーブしてください。
これはチェッカーをバーに置く場合も同じです。2枚以上がオン・ザ・バーだったとしても、一枚ずつ並べましょう。
例えば、カメラが斜めすぎると、バー横のダイスやチェッカーを認識することができません。
また、ボード全体が写っていることも重要です。プログラムは「丸いもの」をチェッカーと認識しますので、チェッカーの一部が写っていなくて半月型になっていると、解析ができません。
1080pでは動画ファイルのサイズが大きくなり過ぎる問題がありますが、そういう場合はタイムラプスモードが有効です。私は0.5秒ごとのコマ撮りにしています。これなら4時間録画しても、ファイルサイズは1GBくらいです。
棋譜ミーの解析は1秒ごとのフレームで処理していますが、この頻度で解析できなかったことは今までありません。
つまり、フレームレートを上げるよりも、解像度を上げてもらった方が、棋譜ミーとしてはうれしいです。
これらが最も重要なポイントですが、以下も注意してもらえると助かります。
ボードを動かさない
棋譜ミーは、対戦中にボードが固定されている前提でプログラムを作っています。なので、途中でボードが動いてしまうと困ります。実際は多少ずれても平気で、おおよそチェッカーの直径以内のズレなら大丈夫なはずです。
この問題は、いずれプログラム的になんとかしようと思っていますが、現状では制限事項です。
ダブリングキューブについて
ダブリングキューブは、ボード上に一つだけある前提でプログラムを書いています。たまに見かけるのですが、テイクしたキューブをボードの外に置いたり、ダブリングキューブが2つ以上置いてあったりする(シュエットじゃないのに!)のですが、棋譜ミーちゃんが混乱するのでやめましょう。
クロック・スコアボード
ボードの上に置いてあってもなんとかしますが、出来ればボードの外に置いて欲しいです。
だいたいこんなことろです。他にも「ドット柄のシャツを着ない」とか、そんなことにも口を出したい気持ちなのですが、プログラムが未熟なのを人のせいにしている上に、おせっかい過ぎるのでやめておきます。
チェッカーをなるべく重ねない
現状ではチェッカーが重なっている場合をうまく扱えません。「チェッカーが重なる」とは以下のような状態のことです。右上にご注目。チェッカーが重なって置かれてしまうと、そのターンのムーブを特定できません。やむを得ない場合を除いて、チェッカーをできるだけ重ねないようにしましょう。
例えば序盤で65が出て 24/13 と動かしたとします。チェッカーを重ねずに並べることができる場合は、下図のようにムーブしてください。
これはチェッカーをバーに置く場合も同じです。2枚以上がオン・ザ・バーだったとしても、一枚ずつ並べましょう。
カメラはボードの真上に
試合を撮影するカメラは、ボードの真上に配置してください。多少横にズレていても支障はありませんが、斜めすぎるとチェッカーやダイスを認識することができず、解析できません。例えば、カメラが斜めすぎると、バー横のダイスやチェッカーを認識することができません。
また、ボード全体が写っていることも重要です。プログラムは「丸いもの」をチェッカーと認識しますので、チェッカーの一部が写っていなくて半月型になっていると、解析ができません。
解像度は1080pで
様々なマッチ動画でテストして来ましたが、解像度が低すぎる動画では、解析の精度が悪かったです。私は1080pの設定で撮影していますが、もう少し低い解像度(720p)でも大丈夫かもしれないです。1080pでは動画ファイルのサイズが大きくなり過ぎる問題がありますが、そういう場合はタイムラプスモードが有効です。私は0.5秒ごとのコマ撮りにしています。これなら4時間録画しても、ファイルサイズは1GBくらいです。
棋譜ミーの解析は1秒ごとのフレームで処理していますが、この頻度で解析できなかったことは今までありません。
つまり、フレームレートを上げるよりも、解像度を上げてもらった方が、棋譜ミーとしてはうれしいです。
これらが最も重要なポイントですが、以下も注意してもらえると助かります。
ボードを動かさない
棋譜ミーは、対戦中にボードが固定されている前提でプログラムを作っています。なので、途中でボードが動いてしまうと困ります。実際は多少ずれても平気で、おおよそチェッカーの直径以内のズレなら大丈夫なはずです。
この問題は、いずれプログラム的になんとかしようと思っていますが、現状では制限事項です。
ダブリングキューブについて
ダブリングキューブは、ボード上に一つだけある前提でプログラムを書いています。たまに見かけるのですが、テイクしたキューブをボードの外に置いたり、ダブリングキューブが2つ以上置いてあったりする(シュエットじゃないのに!)のですが、棋譜ミーちゃんが混乱するのでやめましょう。
クロック・スコアボード
ボードの上に置いてあってもなんとかしますが、出来ればボードの外に置いて欲しいです。
だいたいこんなことろです。他にも「ドット柄のシャツを着ない」とか、そんなことにも口を出したい気持ちなのですが、プログラムが未熟なのを人のせいにしている上に、おせっかい過ぎるのでやめておきます。
2017年3月11日土曜日
Web 棋譜ミー
バックギャモンフェスティバル直後から「棋譜ミー」の開発を始めて、すでに5ヶ月も経ちました。未だにプロトタイプの状態ではありますが、徐々に進化しています。
「棋譜ミー」が出来ることは見た目あまり変わっていないのですが、中身の構造は大きく変更しました。1月になってから画像認識処理をごっそり変更した結果、処理の高速化が出来ました。なので2月の四ツ谷で「例会デビュー」し、対戦からリアルタイムで棋譜を起こすデモもやりました。当時はムーブの解析処理も一部実装していない状態でしたので、結構エラーが出ちゃいました。
最近は、細かいバグも都度対応しているので、エラーが起きる確率もだいぶ下がってきました。このデバッグ作業はこれからも果てしなく続くでしょうから、少しでも効率的にデバッグできるよう、エラーが起きた場面を即座に画像で確認出来るようなHTMLを出力する機能を追加しました。これで私のデバッグ作業は飛躍的に効率化できたのですが、マッチ動画を振り返るツールとしてもなかなかに使える気がします。こちらのページをご覧ください。名人リーグの私と鈴木さんのマッチです。
画面の左側のテーブルがいわゆる棋譜のデータですが、いくつかリンクがあります。一番左のリンクは、「出目を読んだ動画のフレーム」です。ここを参照すれば、どんな目がロールされたのかおよそ分かります。その隣のリンクをクリックすると、棋譜ミーが「ムーブを確定させたフレーム」が表示されます。なので、これらのフレームをぽちぽち辿っていけば、ゲームの流れを把握することができます。マウスでぽちぽちクリックするのは面倒なので、キーボードの左右矢印キーでもフレーム間を移動できるようにしました。現在は不完全な棋譜しか出力できない棋譜ミーですが、このページを見ながら修正していけば、それほど時間がからないのではないかと目論んでいます。(もしくはこれを見ながらXGで棋譜入力した方が早いかもw)
先日、リーグ戦の対戦のため赤坂に行きました。もはや行きつけの caffe beneで、盤聖戦のために上京されていた永井一矢さんにお会いしました。永井さんは私が棋譜ミーを開発していることをご存知でしたので、しばらくその話で盛り上がりました。その時話したネタも、このWebページに入れてみました。
動画には、当然ながら「時間」の情報も含まれています。つまり、あるムーブをしてから次のムーブが行われるまでどれくらい時間を要したかは、先ほど説明したフレームの番号を引き算すれば求めることができます。実戦でウンウン悩んだポジションこそ、後で振り返りたいものではないでしょうか? そんなわけで、60秒以上かかったムーブやアクションはオレンジ、120秒以上は赤でマークしてあります。
開発を始めた当初は、リーグ戦のマッチ動画解析に実践投入とか思っていたのですが、すでにリーグ戦は終わってしまいました・・ 棋譜を振り返るためのツールを開発していたはずが、いつの間にか棋譜を起こすこと自体が目的となってしまい、もはや振り返りなど全くしていません。それどころか、プログラミングが面白すぎるので、プログラミングの合間に思い出したようにギャモンをする状態となっています。それでもリーグ戦の成績が良かったのは、出目が良かったからに他なりませんが、開発用に提供していただいたマッチ動画がいずれも世界屈指のプレーヤーの動画だったのが奏功したかもしれないです。横田名人はたくさん動画を見たそうですが、私もこの数ヶ月でだいぶ見ましたから、その効果が少しはあったのかもしれないです。
棋譜ミーは私一人で作っていますが、他の人と意見交換するのは大事だと思っています。先日の永井さんとの会話もアイデアが膨らみましたし、これからもいろんな人の意見を伺いつつ、改善して行きたいと考えています。プレーヤーの皆さんから、コメントいただければうれしいです。
「棋譜ミー」が出来ることは見た目あまり変わっていないのですが、中身の構造は大きく変更しました。1月になってから画像認識処理をごっそり変更した結果、処理の高速化が出来ました。なので2月の四ツ谷で「例会デビュー」し、対戦からリアルタイムで棋譜を起こすデモもやりました。当時はムーブの解析処理も一部実装していない状態でしたので、結構エラーが出ちゃいました。
四谷例会で自動棋譜取りの実演中、すごい!! pic.twitter.com/MNBNEItaiE— chibatch@一茶っさ (@_chibatch) February 5, 2017
最近は、細かいバグも都度対応しているので、エラーが起きる確率もだいぶ下がってきました。このデバッグ作業はこれからも果てしなく続くでしょうから、少しでも効率的にデバッグできるよう、エラーが起きた場面を即座に画像で確認出来るようなHTMLを出力する機能を追加しました。これで私のデバッグ作業は飛躍的に効率化できたのですが、マッチ動画を振り返るツールとしてもなかなかに使える気がします。こちらのページをご覧ください。名人リーグの私と鈴木さんのマッチです。
鈴木さんとのマッチ解析動画を公開しました https://t.co/vhj2IKXEdW— Masahiro Kisono (@mkisono) March 1, 2017
画面の左側のテーブルがいわゆる棋譜のデータですが、いくつかリンクがあります。一番左のリンクは、「出目を読んだ動画のフレーム」です。ここを参照すれば、どんな目がロールされたのかおよそ分かります。その隣のリンクをクリックすると、棋譜ミーが「ムーブを確定させたフレーム」が表示されます。なので、これらのフレームをぽちぽち辿っていけば、ゲームの流れを把握することができます。マウスでぽちぽちクリックするのは面倒なので、キーボードの左右矢印キーでもフレーム間を移動できるようにしました。現在は不完全な棋譜しか出力できない棋譜ミーですが、このページを見ながら修正していけば、それほど時間がからないのではないかと目論んでいます。(もしくはこれを見ながらXGで棋譜入力した方が早いかもw)
先日、リーグ戦の対戦のため赤坂に行きました。もはや行きつけの caffe beneで、盤聖戦のために上京されていた永井一矢さんにお会いしました。永井さんは私が棋譜ミーを開発していることをご存知でしたので、しばらくその話で盛り上がりました。その時話したネタも、このWebページに入れてみました。
動画には、当然ながら「時間」の情報も含まれています。つまり、あるムーブをしてから次のムーブが行われるまでどれくらい時間を要したかは、先ほど説明したフレームの番号を引き算すれば求めることができます。実戦でウンウン悩んだポジションこそ、後で振り返りたいものではないでしょうか? そんなわけで、60秒以上かかったムーブやアクションはオレンジ、120秒以上は赤でマークしてあります。
開発を始めた当初は、リーグ戦のマッチ動画解析に実践投入とか思っていたのですが、すでにリーグ戦は終わってしまいました・・ 棋譜を振り返るためのツールを開発していたはずが、いつの間にか棋譜を起こすこと自体が目的となってしまい、もはや振り返りなど全くしていません。それどころか、プログラミングが面白すぎるので、プログラミングの合間に思い出したようにギャモンをする状態となっています。それでもリーグ戦の成績が良かったのは、出目が良かったからに他なりませんが、開発用に提供していただいたマッチ動画がいずれも世界屈指のプレーヤーの動画だったのが奏功したかもしれないです。横田名人はたくさん動画を見たそうですが、私もこの数ヶ月でだいぶ見ましたから、その効果が少しはあったのかもしれないです。
棋譜ミーは私一人で作っていますが、他の人と意見交換するのは大事だと思っています。先日の永井さんとの会話もアイデアが膨らみましたし、これからもいろんな人の意見を伺いつつ、改善して行きたいと考えています。プレーヤーの皆さんから、コメントいただければうれしいです。
2017年1月28日土曜日
棋譜ミーボード
棋譜ミーの開発を続けています。
試行錯誤の毎日ですが、結局のところ、ボード上にあるチェッカー、ダイスとキューブが正確に認識できれば、あとはひたすらバックギャモンのルールに従って処理をすればいいわけです。
ところが、肝心の物体認識処理はすこぶる難しい。協力者の方に試合の動画を提供してもらい、様々な条件でうまくいくようにできないものかと頑張っているところです。
ここまでやってみて難しい条件だったのは以下のような場合です。
バックギャモンのボードは、ポイントの色とチェッカーの色が同じ場合が多いです。見た目にはこの方が美しいと思うのですが、チェッカーの場所を特定したいプログラムにとっては悪条件です。理想的には、例えば以下のようになっていたらいいです。背景がぼんやりした色で、チェッカーの色とハッキリ違っているといいな。アプリだと色が簡単に変更できて便利ですね。
リアルボードはアプリと違ってどうしようも無い気がしますが、そんなことはない。自分でチェッカーを別の色に塗ってしまえばいいのでは?
ということで、東急ハンズでスプレー塗料を買ってきて、緑と白だったチェッカーを、ピンクと青にリノベしました!
ボードの背景が緑ベースなので、色空間上で距離の遠そうな赤と青に近い色にしました。さらに大事なポイントは「つや消し」タイプの塗料であること! チェッカーのテカリは侮れない要素で、黒のチェッカーがテカっているために、見た目は白になっていることさえあります。こうなると判別はすこぶる難しいのが現状です。
ちなみに元はこうでした。
これではいつまで経っても仕事が終わらないので、棋譜ミー専用ダブリングキューブを試作しました。
ダイスについているQRコードみたいなものは、「ARマーカー」というものです。プログラムで処理すると、画像からARマーカーの位置を簡単に見つけることができます。これを使えば、キューブの認識はpiece of cakeです。試作品は、これまた東急ハンズで買ったサイコロ型の木材(70円)に紙を貼り付けたものです。実際はもう少しサイズを小さくしても認識可能だと思います。
ボードの縦方向が狭いと、チェッカーをチェッカーの上に重ねる場面が多くなります。このケースもチェッカーを認識するのが難しく、現状は対応していません。プレイヤーの皆さんは、なるべくチェッカーを重ねないようお願いいたしますw
この条件を見ると、先日矢澤プロが紹介されていたP-40ボードはとても良いです。ボードが自由にデザインできるシステムは素晴らしいですね。オーダーする際には、配色をパッキパキにしてください!!
唯一困ったことはバーの幅が狭いこと。これの何が困るかというと、オンザバーのチェッカーと、バーの隣のポイントにあるチェッカーが見た目重なる場合があるからです。特にボード斜め横から撮影した画像では、この問題が顕著になります。Phil先生、ぜひ広幅バータイプのP-40ボード作ってください!
もう一つP-40で困るのは、このボードで私がまだ一度も勝ってないこと! 相手はそれぞれ景山プロとipetaniさんだったので、まあ無理からぬ結果ではありますが・・
そんなわけで、棋譜ミーと棋譜ミーボードの進化はきっと続きますっ!!
試行錯誤の毎日ですが、結局のところ、ボード上にあるチェッカー、ダイスとキューブが正確に認識できれば、あとはひたすらバックギャモンのルールに従って処理をすればいいわけです。
ところが、肝心の物体認識処理はすこぶる難しい。協力者の方に試合の動画を提供してもらい、様々な条件でうまくいくようにできないものかと頑張っているところです。
ここまでやってみて難しい条件だったのは以下のような場合です。
- 照明が暗い上に、ボードの絵柄とチェッカーのコントラストが弱い
- チェッカーがテカっていて、色が判別しづらい
- チェッカーのテクスチャが複雑で、ダイスと誤認識してしまう
クイズ:これは何でしょうか? pic.twitter.com/9IYbKYi37V— Masahiro Kisono (@mkisono) December 16, 2016
棋譜ミーボード
他にも課題はたくさんあるのですが、それらを少しでも解消すべく、棋譜ミーにとって都合のよいボードを考案しました。これです!バックギャモンのボードは、ポイントの色とチェッカーの色が同じ場合が多いです。見た目にはこの方が美しいと思うのですが、チェッカーの場所を特定したいプログラムにとっては悪条件です。理想的には、例えば以下のようになっていたらいいです。背景がぼんやりした色で、チェッカーの色とハッキリ違っているといいな。アプリだと色が簡単に変更できて便利ですね。
リアルボードはアプリと違ってどうしようも無い気がしますが、そんなことはない。自分でチェッカーを別の色に塗ってしまえばいいのでは?
ということで、東急ハンズでスプレー塗料を買ってきて、緑と白だったチェッカーを、ピンクと青にリノベしました!
塗装したチェッカーを乾かしているところ
ボードの背景が緑ベースなので、色空間上で距離の遠そうな赤と青に近い色にしました。さらに大事なポイントは「つや消し」タイプの塗料であること! チェッカーのテカリは侮れない要素で、黒のチェッカーがテカっているために、見た目は白になっていることさえあります。こうなると判別はすこぶる難しいのが現状です。
ちなみに元はこうでした。
ARダブリングキューブ
チェッカーは常に丸い。プレシジョンダイスは、色は違えどデザインは共通。なので、これらはかなり正確に認識することができます。問題はダブリングキューブです。デザインも大きさもまちまちで、世の中のあまねくダブリングキューブを正確に認識するのは至難の技に思えます。これではいつまで経っても仕事が終わらないので、棋譜ミー専用ダブリングキューブを試作しました。
ダイスについているQRコードみたいなものは、「ARマーカー」というものです。プログラムで処理すると、画像からARマーカーの位置を簡単に見つけることができます。これを使えば、キューブの認識はpiece of cakeです。試作品は、これまた東急ハンズで買ったサイコロ型の木材(70円)に紙を貼り付けたものです。実際はもう少しサイズを小さくしても認識可能だと思います。
ARキューブの制作現場
理想のバックギャモンボードとは
棋譜ミー的に都合の良いボードの条件を列挙すると、以下のようになります。- ボードの背景とチェッカーの色のコントラストが強い
- チェッカーがテカらない素材である
- ボードの縦方向のピッチが長く、両側からチェッカーを6枚ずつ並べても重ならない
- 「バー」の幅が広い
- ARダブリングキューブ装備!
ボードの縦方向が狭いと、チェッカーをチェッカーの上に重ねる場面が多くなります。このケースもチェッカーを認識するのが難しく、現状は対応していません。プレイヤーの皆さんは、なるべくチェッカーを重ねないようお願いいたしますw
この条件を見ると、先日矢澤プロが紹介されていたP-40ボードはとても良いです。ボードが自由にデザインできるシステムは素晴らしいですね。オーダーする際には、配色をパッキパキにしてください!!
唯一困ったことはバーの幅が狭いこと。これの何が困るかというと、オンザバーのチェッカーと、バーの隣のポイントにあるチェッカーが見た目重なる場合があるからです。特にボード斜め横から撮影した画像では、この問題が顕著になります。Phil先生、ぜひ広幅バータイプのP-40ボード作ってください!
もう一つP-40で困るのは、このボードで私がまだ一度も勝ってないこと! 相手はそれぞれ景山プロとipetaniさんだったので、まあ無理からぬ結果ではありますが・・
そんなわけで、棋譜ミーと棋譜ミーボードの進化はきっと続きますっ!!
登録:
投稿 (Atom)