画像中の「人」だけを削除する。
左が入力画像(人が写っている)で、右が出力画像(人が消えている)。
- 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