Skip to content

人と人以外が映っている画像において、人だけを削除する

License

Notifications You must be signed in to change notification settings

ka10ryu1/human_delete

Repository files navigation

概要

画像中の「人」だけを削除する。

学習結果

左が入力画像(人が写っている)で、右が出力画像(人が消えている)。

動作環境

  • Ubuntu 16.04.4 LTS ($ cat /etc/issue)
  • Python 3.5.2 ($ python3 -V)
  • chainer 4.0.0 ($ pip3 show chainer | grep Ver)
  • numpy 1.14.2 ($ pip3 show numpy | grep Ver)
  • cupy 4.0.0 ($ pip3 show cupy | grep Ver)
  • opencv-python 3.4.0.12 ($ pip3 show opencv-python | grep Ver)

ファイル構成

生成方法

$ ls `find ./ -maxdepth 3 -type f -print` | xargs grep 'help = ' --include=*.py >& log.txt
$ tree >& log.txt

ファイル

.
├── Image
│   ├── background > 背景画像フォルダ
│   ├── other      > 物体画像フォルダ
│   └── people     > 人物画像フォルダ
├── LICENSE
├── Lib
│   ├── network.py > human_deleteのネットワーク部分
│   └── plot_report_log.py
├── Model
│   ├── demo.model > デモ用モデル
│   └── param.json > デモ用パラメータファイル
├── README.md
├── Tools
│   ├── LICENSE
│   ├── README.md
│   ├── Tests
│   │   ├── Lenna.bmp       > テスト用画像
│   │   ├── Mandrill.bmp    > テスト用画像
│   │   ├── test_getfunc.py > getfuncのテスト用コード
│   │   └── test_imgfunc.py > imgfuncのテスト用コード
│   ├── concat.py          > 複数の画像を任意の行列で結合する
│   ├── dot2png.py         > dot言語で記述されたファイルをPNG形式に変換する
│   ├── func.py            > 便利機能
│   ├── getfunc.py         > 各種パラメータ取得に関する便利機能
│   ├── imgfunc.py         > 画像処理に関する便利機能
│   ├── npz2jpg.py         > 作成したデータセット(.npz)の中身を画像として出力する
│   ├── plot_diff.py       > logファイルの複数比較
│   └── png_monitoring.py  > 任意のフォルダの監視
├── auto_train.sh
├── clean_all.sh
├── create_dataset.py > 画像を読み込んでデータセットを作成する
├── predict.py        > モデルとモデルパラメータを利用して推論実行する
├── predict_repeat.py > predictを繰り返し実行する
└── train.py          > 学習メイン部

とりあえず試す

以下を入力すると、上記の学習結果を再現できるが、生成される画像は異なる。

$ ./predict_repeat.py Model/*

チュートリアル(モデルを自作する)

GPU環境でそこそこepochまわせないとまともな結果にならないので注意。

データセットを作成する

実行

$ ./create_dataset.py

生成物の確認

以下のファイルが生成されていれば成功

  • test_256x256_000020.npz
  • train_256x256_000180.npz

学習する

実行

$ ./train.py

生成物の確認

以下のファイルがresultフォルダに生成されていれば成功

  • loss.png
  • *.log
  • *.model
  • *_10.snapshot
  • *_graph.dot
  • *_train.json

推論実行

実行

$ ./predict.py result/*.model result/*.json

生成物の確認

以下のファイルがresultフォルダ生成されていれば成功

  • predict.jpg

推論実行(複数回連続実行)

実行

以下を実行することで12枚の入力画像と出力画像を連結した画像が生成される。

$ ./predict_repeat.py result/*.model result/*.json

以下を実行することで、生成された12枚の画像を1枚に結合できる。

$ Tools/concat.py ./result/predict-00*

生成物の確認

以下のファイルがresultフォルダ生成されていれば成功。

  • predict-00**.jpg < 12枚
  • concat.jpg

About

人と人以外が映っている画像において、人だけを削除する

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published