東京農工大学は,将棋盤面と持ち駒をスマートフォンで撮影してWebサーバに送信すると,AIが即座に認識して局面データとして変換するWebアプリを開発し,公開した(ニュースリリース)。
今回の研究では,将棋盤の画像認識を「将棋盤の枠を認識する」「将棋盤に乗っている駒を認識する」「将棋盤に乗っていない持ち駒を認識する」の3フェーズに分けた。
将棋盤の枠を認識するために,Line Segment Detector(LSD:線分検出器)を用いて画像内の直線を検出し,パターンの一致度から将棋盤の枠の検出を行なった。このシステムは計算量を減らし高速に検出するために,輪郭検出による将棋盤の枠1つ1つの四角形の抽出を行ない,数パターンの候補から選ぶ。
将棋盤上の駒認識を行なうために,将棋盤枠内の画像を9×9に分割し,1つ1つをConvolutional Neural Network(CNN:畳込みニューラルネットワーク)で認識した。持ち駒の認識を行なうためには,将棋盤の右下,左上部分の画像を取得し,物体認識手法であるYOLOv3(You Only Look Once)を用いて認識した。
どちらも置き方により斜めになる可能性があるが,学習用データベースの拡張により対応した。認識した結果は最終的にKIF局面形式(BOD形式)に変換した。ユーザ側にはその形式をもとに認識した結果をGUIで表示した。
盤上・持ち駒の認識用モデルの学習に用いたデータベースは,農工大将棋部の駒・盤や自分が所有しているもの,インターネットで公開されている画像などから収集して作成した。一文字駒や二文字駒,裏が赤い駒や黒い駒,特殊なフォントなど,さまざまな種類の駒を含むようにした。
ユーザの撮影環境が一定ではないので,明暗を変えた画像や大きさを変えた画像も用いた。また,将棋の駒の文字だけのデータも元画像から手動で作成し,CNNやYOLOv3のモデルが文字に注目するようにした。
実際に将棋カフェなどで撮影したモデルの学習を用いていないテストデータの結果では,枠認識は91%,盤上の認識は99.78%,持ち駒の認識は適合率が73.4%,再現率が97.9%となった。枠認識がうまくいかないときは,撮影者に表示を行ない再撮影を依頼するシステムになっている。
研究グループは,これは日本でも世界でも初めてのサービスとし,2019年9月に開催されるニコニコ技術タグ有志開催NT名古屋2019と同年10月に開催される電子情報通信学会パターン認識・メディア理解研究会にて発表を行なうとしている。