Preparing the data

Image datasets contain giant number of samples nowadays. Similar is wrong for 3d model datasets. They do not contain hundreds of thousands images. They are not well studied and balanced. Also most datasets contain not orientation-aligned bodies.

Example of relatively clear 3d body dataset is ModelNet10. Body from the dataset is stored as .off file containing vertices, edges and faces. Materials, textures and other stuff is not supported by the .off file format.

Here is class labels vs number of samples:

Total number of samples is about 5000. Also dataset is very imbalanced.

The first thing to do is choosing the classifier type. Since state of art solutions on non-trivial data like images, speech and so on are based on neural networks (or monstrous assemblies which are frequently used during Kaggle competitions), looks logical to train NN. NNs are sensitive to balancing of the dataset. So second thing to do is to balance the dataset.

I have decided to get more data and create extended dataset using models from the 3dWarehouse. Models are saved in .skp file format so convertation is necessary. I have created .skp->.off converter using SketchUp C Api and converted a lot of skp model with it’s help.

The next step is data clean up, dublicate images have been removed. After all I’ve got this distribution:

Looks much better. Almost all classes contain approx 1000 samples except of a toilets. The rest of class imbalance can be fixed using class weights.

Data preparation is over. Next time we will dive into the data preprocessing.

--

--