na_o_ysのブログ

プログラミングのメモ

どうぶつしょうぎの盤面認識アプリを作る (1) 準備編

(1) 準備編
(2) 勉強編
(3) 盤面の正規化
(4) 駒の認識


会社の人たちと一泊二日の開発合宿@伊東温泉をすることになりました。

この機会に初めての画像認識にチャレンジしてみようと思います。

2日間で作りきる自信が全く無いので、この記事は前日夜にこそこそ準備しながら書いています。

作りたいもの

どうぶつしょうぎ っていうボドゲがあります。

4 種類の駒と 4 * 3 の盤面で遊べる、将棋の簡易版です。やりこめばやりこむほど強くなる、見かけによらず奥が深い(本当に)ゲームです。

このゲーム、解析の結果後手必勝であることが分かっており、論文任意の有効盤面から必勝手筋(負けの場合は最長手筋)を出力するプログラムが公開されています。

今回は、盤面を撮影した画像から、必勝手筋を出力する チートツール を作ってみたいと思います。

使う予定のもの

OpenCV のインストール

blog.ymyzk.com

こちらの記事どおりにインストールを進めていきます。

  • $ pip install numpy --with-python3 ではオプションが無いと怒られたので、 $ pip3 install numpy とした
  • $ brew link opencv3 --force では python から読み込めなかったので、以下を実行
    • $ echo /usr/local/opt/opencv3/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/opencv3.pth
    • $ echo /usr/local/opt/opencv3/lib/python3.4/site-packages >> /usr/local/lib/python3.4/site-packages/opencv3.pth