Project Overview
In this research project we try to identify 3D objects using various classification techniques provided by the distributed computing framework Spark. Reconstruction of 3D images is very computationally intensive, and training requires a lot of computation. With the large volume of the data, it is important to implement such techniques in a scalable and distributed processing system.
The following are the 2 main steps:
Image Reconstruction: A set of 2 dimensional images were taken using an array of cameras or using a single camera at multiples positions. 3D objects are individually put on a turnable stage and pictures are taken at 6 different angles. We use 3 toy cars in the experiment. At each angle, 28 (7×4) elemental images are taken. The set of 2D images are used to reconstruct slices of the 3D object at different distances (from the camera). To achieve this we have develop a Python application in Spark using various actions and transformations on image resilient data sets (IRDD).
Figure 1. Exemplified slices of 3D reconstructed images of three toy cars used in the experiment.
Figure 2. Illustration of the pick-up process.
Figure 3. Illustration of the reconstruction process.
Classification: Machine learning algorithms such as Naïve Bayes, SVM, Deep Neural Networks are applied to IRDDs to recognize the 3D objects. Training was fast in the initial results. The models were able to classify objects with high accuracy (93.57%).