はじめに
一枚の画像からDepthを推定して、ぐりぐりしても、違和感なくインペイントする3D Photo Inpainting(以下、3DP)をやってみました。CPUでも動くよ。
システム環境
- Windows 10
- Anaconda 2020.02
- Python 3.7
- MeshLab
導入
Anacondaをインストールします。pyenv派の人やもともとpython入ってる人(macとか)は、環境ぶっ壊すのでやめてね。
3d-photo-inpaintingからクローンします。
Anaconda Promptを開き、3DP環境を作ります。
$ cd 3d-photo-inpainting-master
$ conda create -n 3DP python=3.7 anaconda
$ conda activate 3DP
必要なライブラリをインストールします。Pytorchは、https://pytorch.org/ のpipコマンドを参考にしましょう。(condaとpipを混ぜるのはあんまり好きじゃないので僕はpipで統一するようにしています)
$ pip install -r requirements.txt
$ pip install torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
./download.shを実行します。もしくは、次のcolor-model.pth 、depth-model.pth、edge-model.pthの3つをダウンロードし、checkpointsフォルダを作成し、そこに置きます。もう一つ、model.ptをMiDaSフォルダへ置きます。
実行
imageフォルダにぐりぐりしたい画像を置き、下記コマンドを実行すると、videoフォルダに4つの動画が生成されます。(prof_circle、prof_dolly-zoom-in、prof_swing、prof_zoom-in)
$ python main.py --config argument.yml
argument.ymlの中にあるgpu_idsを-1にすればcpuで動きます。
ぐりぐりできました!
今流行りの3D Photo Inpaintingやってみた。
— 藤本賢志(ガチ本)@pixivFANBOXはじめました (@sotongshi) April 23, 2020
もともとポートレートだけど笑https://t.co/NLq2Wsnm0a pic.twitter.com/emHtfc3DuA
meshフォルダに3Dモデル(.ply)も生成されているので、MeshLabで見てみましょう。
ply pic.twitter.com/mPjmhjbp7W
— 藤本賢志(ガチ本)@pixivFANBOXはじめました (@sotongshi) April 23, 2020
お疲れ様でした。