私的AI研究会 > MotionSeg
画像のセグメンテーションを使い静止画から動画パーツを入れ替える技術「Motion Supervised co-part Segmentation」をローカルマシンで検証する
cd /anaconda_win/workspace_2 ← Windows の場合 cd ~/workspace_2 ← Linux の場合 git clone https://github.com/AliaksandrSiarohin/motion-cosegmentation motion-co-seg
update ├─workspace_2 │ ├─motion-co-seg ← GitHub からクローンしたプロジェクトに上書きする │ │ ├─result │ │ ├─result_save │ │ └─sample │ │ ├─images │ │ └─videos │ └─mylib2 ← ローカル環境で実行するための汎用ライブラリ │ ├─mylib_test │ └─result・解凍してできる「update/」フォルダ以下を次のフォルダの下に上書きコピーする
%matplotlib inline
カテゴリー | --config | --checkpoint | --source_image | --terget_video | --swap_index | 出力例 |
0:10seg | config/ vox-256-sem-10segments.yaml | ./sample/ vox-10segments.pth.tar | ./sample/images/ 16.png | ./sample/videos/ 04.mp4 | [2] | 赤い唇のトランプ |
./sample/images/ 25.png | ./sample/ videos/11.mp4 | {7,3] | 青い目なった女優 | |||
1:5seg | config/ 256-sem-5segments.yaml | ./sample/ vox-5segments.pth.tar | ./sample/images/ 27.png | ./sample/videos/ 02.mp4 | [3,4,5] | 金髪になった女優 |
./sample/images/ 27.png | ./sample/videos/ 04.mp4 | [3,4,5] | トランプ顔の女優 | |||
./sample/images/ 23.png | ./sample/videos/ 07.mp4 | [1] | 髭が生えた男優 | |||
2:super | config/ vox-256-sem-10segments.yaml | ./sample/ vox-first-order.pth.tar | ./sample/images/ anim16.png | ./sample/videos/ 04.mp4 | [1,2,3.. ...14,15] | 女優の顔のトランプ |
(py38_learn) python part_swap2.py --config ./config/vox-256-sem-10segments.yaml --target_video ./sample/videos/04.mp4 --source_image ./sample/images/16.png --checkpoint sample/vox-10segments.pth.tar --swap_index 2 --result_video ./result_lips.mp4 100%|████████████████████████████████████████████████████████████████████████████████| 211/211 [00:03<00:00, 66.93it/s]・GPU動作の場合(「--cpu」オプションなし)
100%|████████████████████████████████████████████████████████████████████████████████| 211/211 [00:03<00:00, 66.93it/s]
(py38_learn) python part_swap2.py --config ./config/vox-256-sem-10segments.yaml --target_video ./sample/videos/11.mp4 --source_image ./sample/images/26.png --checkpoint sample/vox-10segments.pth.tar --swap_index 7,9 --result_video ./result_eye_cor.mp4 100%|████████████████████████████████████████████████████████████████████████████████| 109/109 [00:01<00:00, 67.05it/s]・GPU動作の場合(「--cpu」オプションなし)
100%|████████████████████████████████████████████████████████████████████████████████| 109/109 [00:01<00:00, 67.05it/s]
コマンドオプション | 引数 | 初期値 | 意味 |
-c, --category | str | '0' | カテゴリー指定(必須) |
--config | str | 指定しなければ内部設定※ | 学習済みモデルの設定ファイル(.yaml) |
--checkpoint | str | 学習済みモデル・ファイル | |
--source_image | str | 静止画ファイルパス | |
--driving_video | str | 動画ファイルパス | |
--result_video | str | 出力保存ファイルパス | |
--swap_index" | list | '-1' | index of swaped parts |
--hard | bool | False | use hard segmentation labels for blending |
--use_source_segmentation | bool | False | use source segmentation for swaping |
--first_order_motion_model | bool | False | use first order model for alignment |
--supervised | bool | False | use supervised segmentation labels for blending. Only for faces. |
--cpu | bool | False | cpu mode |
コマンドオプション | -c 0 (10seg) | -c 1 (5seg) | -c 3 (super) |
--config | ./config/vox-256-sem-10segments.yaml | ./config/vox-256-sem-5segments.yaml | ./config/vox-256-sem-10segments.yaml |
--checkpoint | ./sample/vox-10segments.pth.tar | ./sample/vox-5segments.pth.tar | ./sample/vox-first-order.pth.tar |
--source_image | ダイアログによる静止画選択 | ||
--driving_video | ダイアログによる動画選択 | ||
--result_video | ./result/result_10seg.mp4 | ./result/result_5seg.mp4 | ./result/result_super.mp4 |
./result/result_10seg.png | ./result/result_5seg.png | ./result/result_super.png |
#ref(): File not found: "fomm2_001_m.jpg" at page "MotionSeg"
#ref(): File not found: "fomm2_002_m.jpg" at page "MotionSeg"
from skimage.draw import ellipse as cricle
import imageio.v2 as imageio
import imageio.v2 as imageio import warnings warnings.simplefilter('ignore', UserWarning)
# config = yaml.load(f) config = yaml.load(f,Loader=yaml.Loader)