Skip to content
Pytorch implementation of Polygon-RNN(http://www.cs.toronto.edu/polyrnn/poly_cvpr17/)
Python
Branch: master
Clone or download
AlexMa011 Update requirements.txt
fix pyyaml bugs
Latest commit 8d1a5ce Jul 2, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
utils update utils Dec 24, 2018
.gitignore Initial commit May 3, 2018
README.md update utils Dec 24, 2018
config_tools.py update utils Dec 24, 2018
data.py update utils Dec 24, 2018
default_config.yaml resolve conflict Dec 24, 2018
generate_data.py update utils Dec 24, 2018
model.py update utils Dec 24, 2018
requirements.txt Update requirements.txt Jul 2, 2019
test.py
train.py update utils Dec 24, 2018
validate.py update utils Dec 24, 2018

README.md

pytorch-polygon-rnn

Pytorch implementation of Polygon-RNN. Notice that I use another way to handle the first vertex instead of training another model as in the paper.

Difference with the original paper

  1. I use two virtual starting vertices to handle the first vertex as in the image captioning.

  2. I add a LSTM layer after the ConvLSTM layers since I need the output to be D*D+1 dimension to handle the end symbol.

How to train and test

  1. Download data from CityScapes, organize the image files and annotation json files as follows:
img
├── train
│   ├── cityname1
│   │   ├── pic.png
│   │   ├── ...
│   ├── cityname2
│   │   ├── pic.png
│   │   ├── ...
├── val
│   ├── cityname
│   │   ├── pic.png
│   │   ├── ...
├── test
│   ├── cityname
│   │   ├── pic.png
│   │   ├── ...
label
├── train
│   ├── cityname1
│   │   ├── annotation.json
│   │   ├── ...
│   ├── cityname2
│   │   ├── annotation.json
│   │   ├── ...
├── val
│   ├── cityname
│   │   ├── annotation.json
│   │   ├── ...
├── test
│   ├── cityname
│   │   ├── annotation.json
│   │   ├── ...

The png files and the json files should have corresponding same name.

Execute the following command to make directories for new data and save models:

mkdir -p new_img/(train/val/test)
mkdir -p new_label/(train/val/test)
mkdir save
  1. Run the following command to generate data for train/validation/test.
python generate_data.py --data train/val/test
  1. Run the following command to train.
python train.py --gpu_id 0 1 2 --batch_size 8  --lr 0.0001
  1. Run the following command to validate.
python validate.py --gpu_id 0 1 2 --batch_size 8
  1. Run the following command to test.
python test.py --gpu_id 0 --model ./save/model.pth

Now you can easily change configurations on default_config.yaml.

You can’t perform that action at this time.