This is a PyTorch implementation of Deep GrabCut, for object segmentation. We use DeepLab-v2 instead of DeconvNet in this repository.
The code was tested with Python 3.5. To use this code, please do:
-
Clone the repo:
git clone https://github.com/jfzhang95/DeepGrabCut-PyTorch cd DeepGrabCut-PyTorch
-
Install dependencies:
pip install -r requirements.txt
-
Download pretained automatically. Or manually from GoogleDrive, and then put the model into
models
.gdown --output ./models/deepgc_pascal_epoch-99.pth --id 1N8bICHnFit6lLGvGwVu6bnDttyTk6wGH
-
To try the demo of Deep GrabCut, please run:
python demo.py # 1-When window appears, press "s" # 2-Draw circle # 3-Press spacebar and wait for 2 - 3 seconds
If installed correctly, the result should look like this:
Note that the provided model was trained only on VOC 2012 dataset. You will get better results if you train model on both VOC and SBD dataset.To train Deep GrabCut on VOC (or VOC + SBD), please follow these additional steps:
-
Download the pre-trained PSPNet model for semantic segmentation, taken from this repository.
cd models/ chmod +x download_pretrained_psp_model.sh ./download_pretrained_psp_model.sh cd ..
-
Set the paths in
mypath.py
, so that they point to the location of VOC/SBD dataset. -
Run
python train.py
to train Deep Grabcut. -
If you want to train model on COCO dataset, you should first config COCO dataset path in mypath.py, and then run
python train_coco.py
to train model.