Photo on AngryCoder [Used Deep Learning To Detect Naruto (Anime) Hand Signs]
「NARUTOーナルトー」(以下、ナルト)という作品をご存知だろうか。忍者の里に生まれた主人公が、仲間たちと幾多の試練を仲間たちと乗り越えていく、バトルアクション漫画である。ストーリーに感銘をうける大人や、作中で登場する忍術に憧れて、忍者の真似をする子供たちなど世代を問わず人気である。
そんななか、ナルトの作中で登場する忍術を画像認識の技術を使って判定しようとする人が現れた。YouTuberのAngryCoder氏だ。
自分の好きなもので機械学習の勉強をしようと思った
機械学習の勉強をしようと思ったAngryCoder氏だったが、興味のわく題材が見つからなかったという。加えて、「解析や統計といった数学には手を出したくなかった」と述べる。
正直いうと、数学って大変だし、つまんないじゃん。
まあ、何も無いところから多層ニューラルネットワークを作る方がもっと大変なんだけど……。(小声)
そこでAngryCoder氏は、単層ニューラルネットを基礎とし、Keras(ディープラーニングライブラリ)を用いたCNN(畳み込みニューラルネットワーク)で画像認識モデルの学習を行うことを決めた。
Photo on AngryCoder [Used Deep Learning To Detect Naruto (Anime) Hand Signs]
多くの研究者たちや学生が「犬」や「猫」の画像を学習サンプルとしているなか、AngryCoder氏が選んだのはナルトだった。忍者たちが使う忍術は、手でさまざまな形を作って技を出す。その手の形に注目したのだ。
干支に由来する12種類の形を画像認識で判定
AIが忍術の印を判定するために、アニメや漫画などで登場する手の形を学習データとして登録した。印を判定する際は、CNNによって画像を解析し、最終的にどの形であるかを確率で表示する。
AngryCoder氏が公開している動画では、実際に実験している様子を確認できる。形によっては、まだうまく形が作れていない段階でも判定が出るレベルの精度になっている。
Photo on AngryCoder [Used Deep Learning To Detect Naruto (Anime) Hand Signs]
実際に運用してみると、学習サンプルから実際に認識が安定したのは8種類の形(↑図のなかにある緑で囲まれた形)だった。作中では干支に由来する12種類の形があるが、AngryCoder氏は「特定の形は再現するのが難しかった、というかそもそも私は忍者ではないので」と述べた。
退屈になりがちな学習も、自分の好きなものに置き換えて進めてみるとやる気が起きるものだ。AIが写輪眼のように印を瞬時に認識し、コピーできる日は近い……か?