Skip to content

BardOfCodes/flying_furniture

Repository files navigation

Flying Furniture

A small synthetic dataset for Classification and Segmentation.

alt-text-1 alt-text-2 alt-text-1 alt-text-4 alt-text-1

Introduction

This repository contains the code to create the Flying Furniture dataset. Flying Furniture dataset contains 50,000 synthetically rendered images containing 20 sub-classes (12 classes) of furnitures. Each image contains a single furniture, for random viewpoint (and random truncation, random lighting) with a random background. Additionally, segmentation maps are provided all images, based on the 12 classes. This dataset can be used for 20-way classification or 13-way(including background) segmentation.

The code is provided to help the reader create their own synthetic dataset.

But why?

I was the Teaching Assistant for DS-265: Deep Learning for Computer Vision at CDS department ,IISc, Bangalore for the spring semester of 2018. For giving the students a hands-on experience of deep learning, along with my colleague Ram Prabakar, I held a in-class Kaggle competition for the course. To avoid copy-paste of solutions from GitHub, and to make the challenge more intriguing, I created this dataset. The Kaggle competition The Flying Furniture Challenge was held from February 8th to Februray 19th. For more details on the challenge, check out the link!

Instructions

  1. First we need to install and download a couple of things:Shapenet dataset, SUN dataset, Blender.

  2. Add symbolic links for the Shapenet Dataset and SUN dataset in dataset folder:

ln -s <location-to-shapenet> ./
ln -s <location-to-sun> ./
  1. Add the BASE_DIR in global_variables.py file.
BASE_DIR = <location-to-this-code>

If required, modify the global_variables.py file. This file contains all the useful variables such as saving location etc.

  1. First, run python save_info.py to save essential information in a dict(info.npy) for other files.

  2. Now you can run a sequence of files to get the results:

cd render_pipeline
# to run the rendering process
python run_render.py
cd ..
# to process the files: get bounding boxes, segmentation map etc.
python process_images.py
# to get the train-test-split, various text files etc.
python make_train_test_split.py

This creates data/classification/ which contains the classification dataset, and data/segmentation which contains the segmentation maps. The folder meta_files, contains csv files with meta information about models in Shapenet dataset. We use this to decide the sub-class of various models.

The name of the dataset is inspired by the flying chairs dataset.

This code can be used to understand the render pipeline in RenderForCNN and adapted likewise for various purposes.

Qualitative examples from Flying Furniture dataset:

Class Label Class Sub-Class Segmetation-color Examples
1 zigzag_chair chair (192.0, 0.0, 128.0) alt
2 normal_bed bed (0.0, 64.0, 0.0) alt
8 pool_table table (128.0, 128.0, 128.0) alt
15 lshaped_sofa sofa (128.0, 64.0, 0.0) alt
16 bunk_bed bed (0.0, 64.0, 0.0) alt
17 normal_sofa sofa (128.0, 64.0, 0.0) alt
Find gifs for each class in misc/ folder.

Acknowledgement

This code is mostly just a simplified version of RenderForCNN. I Would like the following:

About

Code for creating the flying furniture dataset. Used for The Flying Furniture Challenge, an in-class kaggle competition.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages