Flexible Networks for Learning Physical Dynamics of Deformable Objects (2021)
By Jinhyung Park, Dohae Lee, In-Kwon Lee from Yonsei University (Seoul, Korea)
To download our paper, click here.
Introduction
This repository accompanies the paper "Flexible Networks for Learning Physical Dynamics of Deformable Objects", which is currenty under review for publication.
We release the code to train, test, and visualize the result of our model.
The implementation is based on python 3.6, tensorflow 2.3.0., CUDA 10.1, and cuDNN 7.6.1
How To Run
1. Configure Environment
pip install -r requirements.txt
2-1. Download Dataset
Download each dataset from the links below.
- Synthetic Dataset: https://drive.google.com/file/d/1VcwW4UVLUFseo1iJfCdswjAgnFU87ETg/view?usp=sharing
- Real-World Dataset: https://drive.google.com/file/d/1svoipJCZ6Amz04-aKn7rwWWUPEmeQop-/view?usp=sharing
After downloading and unzipping each dataset, place each folder as below.
data/synthetic_dataset/preprocessed_data
data/real_world_dataset/preprocessed_data
2-2 (Alternative) Generating the entire Synthetic Dataset
Alternatively, you can generate the synthetic dataset from scratch by executing the following commands.
The entire process of generating the synthetic dataset takes a couple of hours and consumes approximately 12.43GB.
python3 box2d_simulator/simulator.py # generates raw point set data
python3 data/simulation/preprocess_code/preprocess.py # preprocess data
3. Train
To train TP-Net with the parameters that we used for getting the best performance, execute the following command.
You can change the hyperparameters or other training options by changing config.py.
CUDA_VISIBLE_DEVICES=0 python3 train.py
4. Evaluate & Visualize
To evaluate the trained model on test cases, run
CUDA_VISIBLE_DEVICES=0 python3 ./evaluation/evaluate_synthetic.py --init_data_type=ordered
CUDA_VISIBLE_DEVICES=0 python3 ./evaluation/evaluate_real_world.py --init_data_type=unordered
To visualize the results, run
python3 ./evaluation/visualize_synthetic.py
python3 ./evaluation/visualize_real_world.py