Generating 3D Chairs in Tensorflow2 using CNNs
Code is written according to this paper using this dataset. Two main differences are:
1- Segmantation network (in Fig.2 network shown below which have Euclidean error x1) is not used.
2- Embeddings are used to encode chair id's rather than one-hot encodings. Embeddings are generally preferred due to their statistical efficiency.
You can use quick_data.py to download the dataset. Running this script with the h string for the dataset argument will process the chairs data to a TFRecords file. Then, you can use the parse_chairs function from utils/data to read the images.
Resize training images as like as you want using parse_chairs(x, resize=64) function.
There is two different jupyter notebooks: training and experiment. In the experiment notebook, model structure is re-created manually and proper weights has been loaded for experiments such as morphing between images and fixing other parameters like rotation and elevation.
Morphing between two chairs (fixed elevation and rotation)
Rotating a chair for a specific chair