iM@S chara detect with TensorFlow
アイマスのキャラである765PRO AS組の13人を識別するプログラムです。
Python 3.5以降で動くと思います。
requirements.txtに沿って必要なライブラリをpipでインストールしてください。
dlibのビルドにはcmakeとboostが必要となります。
Windowsの場合はAFDの参考URLを見てください。
Ubuntuの場合はpipを実行する前にsudo apt install cmake libboost-python-dev
を実行してください。
Ubuntuで実行するとcv2をimportした際に以下のエラーが発生する場合があります。
ImportError: libSM.so.6: cannot open shared object file: No such file or directory
ImportError: libXrender.so.1: cannot open shared object file: No such file or directory
発生した場合はsudo apt install libsm6 libxrender1
を実行してください。
static/ -> WebUIを動かすのに必要なファイル群
templates/ -> レンダリング用HTMLファイル
chara.json -> タグとキャラ名を関連付けるJSONファイル
checkpoint, imas_model.ckpt* -> キャラ判定用モデル
detector_face.svm -> 顔判定用特徴量ファイル
pic_eval.py -> キャラ判定器本体スクリプト
study.py -> 学習用スクリプト
web.py -> WebUI用スクリプト
学習にはデータセットが必要となるため、ここでは説明しません。
Taggerで作成したデータセットをそのまま使えるようにしてあるはずです。
すでに学習済みのファイルを入れてありますので、実行するだけなら可能です。
ただ単にpython web.py
と実行すれば動きます。
ただ、./static/images/yayoi_sd.png
を現在消した状態にしています。
過去のコミットを覗くと出てくるので、それを利用してください。
まだまだ精度が甘いです。AS組以外の区別があまり出来ません。
90%を切るとAS組以外と判定するようにしていますが、正しいキャラでもAS組以外と判定しまうことがあります。判定詳細をよく見てください。
また、ずっと画像を投げていると./static/images/upload/
内に大量に画像が溜まっていくので、定期的に削除してください。
テストでCookieに一意なキーを置くようにし、それをファイル名として使うようにしました。
このスクリプトは以下のリポジトリからほとんどのスクリプトをお借りしました。
AkiyoshiOkano/zuckerberg-detect-ai