/PMCNet

(ICCV 2021) Official PyTorch implementation of "Learning to Discover Reflection Symmetry via Polar Matching Convolution."

Primary LanguageC++

Learning to Discover Reflection Symmetry via Polar Matching Convolution

Ahyun Seo*, Woohyeon Shim*, Minsu Cho

[paper] [project page]

Official PyTorch implementation of Learning to Discover Reflection Symmetry via Polar Matching Convolution (ICCV 2021).

Contributors of this repo: Woohyeon Shim, Ahyun Seo

Environment

    conda create --name pmcnet python=3.7
    conda activate pmcnet
    conda install pytorch==1.7.0 torchvision==0.8.1 cudatoolkit=11.0 -c pytorch
    conda install -c conda-forge matplotlib
    pip install albumentations tqdm parmap scikit-image pycocotools opencv-python
    
    mkdir weights
    # setup coco_path and sym_datasets
    cd bsds
    python setup.py build_ext --inplace

Datasets

.
├── coco_path
│   ├── train2014
│   ├── val2014
│   └── annotations
├── sym_datasets
│   ├── NYU
│   ├── SDRW
│   └── LDRS
├── (...) 
└── main.py

Training

The trained weights and arguments will be save to the checkpoint path corresponding to the VERSION_NAME.

    CUDA_VISIBLE_DEVICES=0,1,2,3 python main.py --ver VERSION_NAME 

Test

  • trained weights of PMCNet (passwd: ldrs2021) weights
    CUDA_VISIBLE_DEVICES=0 python main.py --ver ours -t

References

  • Python port of BSDS 500 link
  • spb-mil link
  • NYU database link
  • SDRW dataset (CVPR 2013 challenge) link
  • COCO preprocessing link

Citation

If you find our code or paper useful to your research work, please consider citing:

@inproceedings{seoshim2021pmcnet,
    author   = {Seo, Ahyun and Shim, Woohyeon and Cho, Minsu},
    title    = {Learning to Discover Reflection Symmetry via Polar Matching Convolution},
    booktitle= {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
    year     = {2021}
}