画像内に人がいるかどうかを判定するための機械学習model構築方法。
学習データセットはMS COCOを使用しています。(学業以外の用途で使用しない方がよい。著作権関連注意)
学習にはtensorflowを使用し、Mobilenetからの転移学習を行う。
ラズパイで動作させるために、tflite用のモデるを作成する。
anacondaで環境作るのおすすめです。
ライブラリに関してはenv/env.yml
に記載してあります。次のコマンドで環境を作ってください。
conda create -n people -f env/env.yml
conda activate people
eval.py
: 学習済みモデルを評価するファイル。あるディレクトリにある画像データを読み込み、学習済みモデルで判定する。train_mobile.py
: 学習を行うファイル。学習データセットMSCOCOを読み込み、Mobilenetから転移学習を行う。学習が終わったら、tflite用のモデルも作成する。make_data.py
: SCOCOからデータセットをダウンロードし、そのデータセットから人が映っている画像とそうでない画像を抽出するを行うファイル。quntize.py
: 学習モデルを量子化するファイル。学習済みモデルを読み込み、量子化を行う。多分エラーが起きるから使わない方がいい。show.py
:データセット内の画像を確認するファイル。
make_data.py
を実行し、学習データセットをダウンロードする。train_mobile.py
を実行し、学習を行う。学習が行われると、model_mobile_good.h5
というtensorflow用のモデルが作成される。そのモデルをtflite用に変換したmodel_mobile.tflite
というモデルも作成される。モデルはmodel
ディレクトリに保存される。eval.py
を実行し、学習済みモデルを評価する。あるディレクトリに評価したい画像を適当に入れとく。train_mobile.py
で作成されたtflite用のモデルをラズパイに転送し、実行する。