3D Face Modeling and Recognition


The main objective of this research project is to improve facial recognition in low-resolution texture face images by using 3D sampled data captured from 3D depth sensors like Primesense or Microsoft Kinect sensors. The proposed method to solve this problem utilizes a feed-forward Neural Network to model the 3D face given by sample points cloud (without texture), which will contribute to a significant improvement in the storage of points cloud (1:100 reduction in storage size). The second step in the process uses the generated neural model for each person as a training dataset, and for a given points cloud for an unknown person, a new neural model is generated, then a model comparison technique is used to compare the new generated model with the stored ones in the training dataset. There are several challenges in this project, the first challenge is the training time of the neural model for the given points cloud; as the average number of sample points per person is 40,000 points. The second challenge is the large network structure required to handle the multi-curvature nature of the human face. From our experiments, we found out that the optimal number of nodes in the hidden neural network layers should be larger than 4000 nodes, which requires large temporary memory in the learning step. The third challenge is that the learning algorithm to be used with should adjust the relation between memory size and execution time and avoid local minima. The final challenge is the points’ rotation and transformation between the unknown input points cloud and the models stored in the training set, which will require running a registration algorithm before generating the new model for the given input points cloud; which will also increase the execution time for modeling and recognition. The best solution for these challenges is to use parallel computations to divide the problem to be run via several processors, each of which will handle part of the required network model. The problem with this solution to handle big data for a large number of faces is that it will require the acquisition of hundreds of powerful CPUs, which is cost-prohibitive. The other alternative is to use cloud servers that can offer powerful parallel CPU's for large computational problems with sufficient memory size. Figure 1, shows a sample of generated faces models using feed-forward neural networks for one person in the Bosphorus 3D face dataset on two different azimuth and elevation angles.


Figure 1, Sample of 3D face model generated from Feed-Forwared Neural Networks on diffrent azmuth and elevation angles