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. I will not maintain the project, please refer to Polygon-RNN++ for better experience.
Difference with the original paper
I use two virtual starting vertices to handle the first vertex as in the image captioning.
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
- 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
Run the following command to generate data for train/validation/test.
python generate_data.py --data train/val/test
Run the following command to train.
python train.py --gpu_id 0 1 2 --batch_size 8 --lr 0.0001
Run the following command to validate.
python validate.py --gpu_id 0 1 2 --batch_size 8
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.