Skip to content
Source code for our CVPR 2019 paper - PPGNet: Learning Point-Pair Graph for Line Segment Detection
Python Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ckpt/backbone update code Jun 9, 2019
data update code Jun 9, 2019
models convert CUDA tensor to CPU tensor before using it as numpy array indi… Jul 29, 2019
tools
.gitattributes update code Jun 9, 2019
.gitignore update code Jun 9, 2019
LICENSE
README.md
main.py Update main.py Jul 20, 2019
test.py Fixed test script and class to properly run inference on an image Jul 19, 2019
test.sh
train.sh Update train.sh Jun 13, 2019
utils.py update code Jun 9, 2019

README.md

PPGNet: Learning Point-Pair Graph for Line Segment Detection

PyTorch implementation of our CVPR 2019 paper:

PPGNet: Learning Point-Pair Graph for Line Segment Detection

Ziheng Zhang*, Zhengxin Li*, Ning Bi, Jia Zheng, Jinlei Wang, Kun Huang, Weixin Luo, Yanyu Xu, Shenghua Gao

(* Equal Contribution)

The poster can be found HERE.

pipe-line Demonstraton of juncton-line graph representaton G={V, E}. (a) an sample image patch with 10 junctons (V); (b) the graph which describes the connectvity of all junctons (G); (c) the adjacency matrix of all junctons (E, black means the junction pair is connected).

Requirements

  • Python >= 3.6
  • fire >= 0.1.3
  • numba >= 0.40.0
  • numpy >= 1.14.5
  • pytorch = 0.4.1
  • scikit-learn = 0.19.2
  • scipy = 1.1.0
  • tensorboard >= 1.11.0
  • tensorboardX >= 1.4
  • torchvision >= 0.2.1
  • OpenCV >= 3.4.3

Usage

  1. clone this repository (and make sure you fetch all .pth files right with git-lfs): git clone https://github.com/svip-lab/PPGNet.git
  2. download the preprocessed SIST-Wireframe dataset from BaiduPan (code:lnfp) or Google Drive.
  3. specify the dataset path in the train.sh script. (modify the --data-root parameter)
  4. run train.sh.

Please note that the code requires the GPU memory to be at least 24GB. For GPU with memory smaller than 24GB, you can use a smaller batch with --batch-size parameter and/or change the --block-inference-size parameter in train.sh to be a smaller integer to avoid the out-of-memory error.

Citation

Please cite our paper for any purpose of usage.

@inproceedings{zhang2019ppgnet,
  title={PPGNet: Learning Point-Pair Graph for Line Segment Detection},
  author={Ziheng Zhang and Zhengxin Li and Ning Bi and Jia Zheng and Jinlei Wang and Kun Huang and Weixin Luo and Yanyu Xu and Shenghua Gao},
  booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
  year={2019}
}
You can’t perform that action at this time.