pytorch-deep-image-matting

September 9, 2020 · View on GitHub

This repository includes the non-official pytorch implementation of deep image matting.

Performance

modelSAD ↓MSE ↓Grad ↓Conn ↓link
stage0-paper59.60.01940.559.3
stage1-paper54.60.01736.755.3
stage0-our56.010.017333.7157.57
stage1-our54.420.017535.0154.85download
stage1-our-skip52.990.017131.5653.24download
  • Lower metrics show better performance.
  • Training batch=1, images=43100, epochs=12 for stage1-our-skip model, it takes about 1 days.
  • Test maxSize=1600.
  • GPU memory >= 10GB

Updates

  • 2020.09.09: run the demo.py with the latest model (stage1-skip-sad-52.9.pth), and update the visualization results.
  • 2020.09.09: adopt VGG-16 backbone with skip connection, and we get better performance with less training costs (12 epochs), Get Stage1-Skip-SAD=52.9
  • 2019.10.29: conduct stage0 experiment using current code. Get Stage0-SAD=56.0.
  • 2019.09.09: conv6 kernel size from 1x1 to 3x3. Get Stage1-SAD=54.4. The performance of stage1 is as good as paper. While using model released before this day, please change the kernel_size=1 and padding=0 of conv6 in file core/net.py.
  • 2019.08.24: Fix cv2.dilate and cv2.erode iterations is set default = 1 and set triamp dilate and erode as the test 1k tirmap (k_size:2-5, iterations:5-15). Get Stage1-SAD=57.1.
  • 2019.07.05: Training with refine stage, fixed encoder-decoder. Get Stage2-SAD=57.7.
  • 2019.06.23: Training with alpha loss and composite loss. Get Stage1-SAD=58.7.
  • 2019.06.17: Training trimap generated by erode as well as dialte to balance the 0 and 1 value. Get Stage0-SAD=62.0.
  • 2019.04.22: Input image is normalized by mean=[0.485, 0.456, 0.406] and std=[0.229, 0.224, 0.225] and fix crop error. Get Stage0-SAD=69.1.
  • 2018.12.14: Initial. Get Stage0-SAD=72.9.

Installation

  • Python 2.7.12 or 3.6.5
  • Pytorch 0.4.0 or 1.0.0
  • OpenCV 3.4.3

Demo

Download our model to the ./model and run the following command. Then the predict alpha mattes will locate in the folder ./result/example/pred.

python core/demo.py

Training

Adobe-Deep-Image-Matting-Dataset

Please concat author for available.

MSCOCO-2017-Train-Dataset

Download

PASCAL-VOC-2012

Download

Composite-Dataset

Run the following command and the composite training and test dataset will locate in Combined_Dataset/Training_set/comp and Combined_Dataset/Test_set/comp, Combined_Dataset is the extracted folder of Adobe-Deep-Image-Matting-Dataset

python tools/composite.py

Pretrained-Model

Run the following command and the pretrained model will locate in ./model/vgg_state_dict.pth

python tools/chg_model.py

Start Training

Run the following command and start the training

bash train.sh

Test

Run the following command and start the test of Adobe-1k-Composite-Dataset

bash deploy.sh

Evaluation

Please eval with official Matlab Code. and get the SAD, MSE, Grad Conn.

Visualization

Running model is Stage1-Skip-SAD=52.9, please click to view whole images.

ImageTrimapPred-AlphaGT-Alpha
imageimageimageimage
imageimageimageimage
imageimageimageimage
imageimageimageimage
imageimageimageimage

Disclaimer

As covered by the ADOBE IMAGE DATASET LICENSE AGREEMENT, the pre-trained models included in this repository can only be used and distributed for non-commercial purposes.