AIでNARUTO気分!「Deep写輪眼」で遊んでみよう

f:id:karaage:20201011012337p:plain:w640

今一番熱いAI系OSS「Deep写輪眼」

 「今一番熱いディープラーニングを活用したOSSは?」

 と問われたら、自分の中では@KzhtTkhsさん開発の「Deep写輪眼」で決まりです(個人の感想です)。

 このブログで、人の開発したソフトを紹介だけする記事というのはあまりしないようにしているのですが、このソフトは特別です。なぜなら、開発に私が作った「Object Detection Tools」が使われているからです(以下記事参照)。

 加えて、GitHubのリポジトリにPRも送っているので、もはや共同開発者といっても過言ではないです(過言です)。

 「Deep写輪眼」は、学習済みモデルから簡単に動かせるサンプルまで揃っているので、AIの開発に慣れている方は簡単に動かすことができると思います。

 ただ、AI系の開発をしたことなかったり、慣れていない人にはすぐ動かせないかもしれないので、この記事では初心者向けに、「Deep写輪眼」を簡単に動かして遊ぶ方法を紹介したいと思います。

 カメラ付きのPCさえあれば、OS問わずにブラウザ上で操作するだけで簡単に「Deep写輪眼」を楽しめる方法もありますので、ディープラーニング全然分からないという人も、一度試してもらえると幸いです。

ディープ写輪眼の遊び方

 以下2種類の方法を紹介します。

  • Google Colaboratory(Google Colab)で「Deep写輪眼」
  • ローカルPC(Mac/Linux)上で「Deep写輪眼」

 一番手軽なのは、Google Colab上で動かす方法です。ただ、どうしてもスピードが遅くなってしまうので、リアルタイムで楽しみたい方は、ローカルPC上で動かすことにチャレンジしてみてください。

Google Colabで「Deep写輪眼」

 最初に、Google Colabで動かす方法です。Google Colab自体に関しては、以下の記事を参照ください(とりあえず動かしたい人は飛ばしてもOKです)。

 あとは、カメラ付きPC(USBカメラでもOK)のGoogle Chromeブラウザで、以下のColabのノートブックのリンクをクリックしてください。

Deep写輪眼(Google Colab Notebook)

 ノートブックを開いたら、ひたすらShift + Enterキーを押していけば、最後にDeep写輪眼が発動します。

 動作している様子は以下の@KzhtTkhsさんのツイート参照ください。

Mac/Linux上で「Deep写輪眼」

 続いてMac/Linux上でDeep写輪眼を試す方法です。pyenv/virtual-pyenvを使います。以下記事を参考にpyenv/virtual-pyenvのインストールまでを実施してください。

 Macの場合は、ターミナル上で以下コマンドを入力してPython環境を構築します。

$ pyenv install 3.7.3
$ pyenv virtualenv 3.7.3 od
$ pyenv global 3.7.3/env/od
$ pip install tensorflow==2.3.1
$ pip install opencv-python
$ pip install pillow

 Linuxの場合もほぼ同様ですが、Python3.7系インストールには、事前に以下を実行しておく必要があるようなので注意ください。

$ sudo apt install -y libffi-dev

参考:pyenvで3.7系のインストールに失敗したときのメモ

 環境のセットアップが終わったら、Deep写輪眼をダウンロードします。

$ git clone https://github.com/Kazuhito00/NARUTO-HandSignDetection
$ cd NARUTO-HandSignDetection

 あとは、動かすだけです。シンプルなもの、軽量モデルを使ったもの、エフェクト凝ったものと3種類のデモがありますので、それぞれ以下コマンドでお楽しみください。

$ python simple_demo.py --score_th=0.5
$ python simple_tflite_demo.py --score_th=0.5
$ python Ninjutsu_demo.py --score_th=0.5

 オプションの--score_th=0.5は、検出スレッショルドです。デフォルトは0.75ですが、試した感じカメラや背景によっては少し下げた方が検出しやすいようです。もっと低くしてもよいですが、あまり下げると誤検出が多くなります。

 速度は、手元のMac Bookだとシンプルなデモで1秒を切るくらいでした。GPU付きのPCでは試せてないのですが、おそらく100msは切れると思います。

 以下はNinjutsu_demo.pyを動かした時の様子です。

f:id:karaage:20201011012337p:plain:w640

まとめ

 今一番熱い、AI系のOSS「Deep写輪眼」の紹介と簡単な動かし方の解説をしました。

 学習済みモデルがついてて、すぐ楽しめるのがよいですね。このソフトをベースにすると、印を組むと音が鳴ったり、特定の順番で印を組むとエフェクトを出したりと、色々なAIアプリが作れそうですね。

 まだ試せてないですが、ラズパイ(Raspberry Pi)とかJetson Nanoでも動かすことができるのではないかなと思います。興味ある方は是非試してみてください。

関連記事