GithubHelp home page GithubHelp logo

tempec's Introduction

Requirement

  • keras 2.0.3
  • tensorflow 1.12.0
  • opencv2

コード概説

ー main.py
実行用コード。DEEPEC、TempEC、TempEC-HPの3種類のネットワークの学習・テストができます。
ー data_utils.py
データセットの画像を読み込むためのクラスを記述。
ー NETWORK.py
それぞれのネットワーク構造を記述。

---以下はデータ収集用のコードなのでシステムを動かすのには無関係。
ー labelling.py
動画にアイコンタクトのGround Truthをつける。
ー detect_face.py
動画から顔画像、目画像を切り出す。

実行

基本的にはターミナルで
「python main.py (エポック数) (テストデータの名前) (実行タイプ)」
を実行すれば動きます。

例:python main.py 20 Avec test_cnn ※CNNを動画Avec.mp4の画像で20エポック学習する場合

テストデータの名前は、学習時にはそれを除いたデータで学習、テスト時はそのデータで学習、という意味で指定します。

検出対象の画像はdataset/imagesに動画ごとで別々に入っています。

学習結果の重みファイルはcacheディレクトリに.h5で保存されます。場所は「ネットワークのタイプ/テストデータの名前/(lstmではタイプステップ数)」。重みファイルは実行のたびに上書きされるので必要に応じて別所に移してください。

テスト時の結果はresultディレクトリに保存されます。cacheと同じディレクトリ構造です。
結果として保存されるのは以下の内容です。
ー ROC.png : ROC曲線
ー result.csv : ネットワークの出力尤度を並べたもの(出力結果を可視化するときはこれを使う。)
ー result.txt : 出力結果を分析したもの。具体的には識別ミスの数や、正解率・再現率・F値などがテキストでまとめられる。
ー imgディレクトリ: 識別ミスした画像が保存される。False-NegativeがFNディレクトリに、False-PositiveがFPディレクトリに保存される。(ただし左目のみ)

##実行タイプ
ー train_cnn : CNN(DEEPEC)の学習
ー test_cnn : CNN(DEEPEC)のテスト
ー train_lstm : LSTM(TempEC)の学習
ー test_lstm : LSTM(TempEC)のテスト
ー train_lstm_face : LSTM+face(TempEC-HP)の学習
ー test_lstm_face : LSTM+face(TempEC-HP)のテスト

DEEPECはシングルフレームからのアイコンタクト検出、TempEC・TempEC-HPは連続した複数フレームからのアイコンタクト検出を行い、TempEC-HPでは目画像に加えて顔方向も利用します。

パラメータ

各パラメータは以下のように設定してあります。必要に応じて修正してください。

LSTMのタイムステップ = 10
識別の閾値 = 0.5
LSTM学習のバッチサイズ = 128
画像サイズ = 36 × 60

tempec's People

Contributors

b-step62 avatar yukiwatanabe52 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.