Design and development of a parallelized algorithm for face recognition in mobile cloud environment

Received May 24, 2020 Revised Jul 28, 2020 Accepted Jan 10, 2021 Face recognition is the biometric application to recognise the identity. Face recognition application holds a set of images which are called databases stored by the user at cloud database. Cloud computing environment, database can be stored in the cloud environment to achieve huge data storage area. The problem with these data storages are that because of that huge size processing on this storage takes too much of compiling time. This paper aims to develop face recognition in mobile cloud environment by exploiting data or task parallelism in existing face recognition algorithms. To design and develop parallel PCA based face recognition algorithm. The parallel PCA face recognition algorithm has been deployed in the cloud server for performing PCA by request of user. It matches the image on the cloud server and gives response back to the user in the fewer amounts of time and with reduced latency. The developed Parallel PCA face recognition algorithm has minimized the overall response time for the face recognition algorithm. The performance of the developed system is tested and analysed on real face images. To analyse the developed system, a centralized and distributed based server methods are developed and comparison is being carried out. The conclusion drawn that the distributed server improves the efficiency as well as the computing power as compared with centralized server system. The comparison of centralized and distributed based servers is carried out by observing the time taken while varying the number of images in the training dataset.


INTRODUCTION
Cloud computing is an approach of using remote servers in order to provide huge data storage, computation and other processing service. In cloud computing server, it is possible to save large number of data and when user request for a particular data service then it will give the response back to the user in the fraction of the time. This service of cloud computing is referred as the on-demand environment of the cloud. One of the big challenges in using cloud servers is the latency time taken in order to give response back to the user from the server. In order to overcome this situation, the cloud environment is divided into several small scaled distributed server processes which are called cloudlet. So, user requests are sent and received through cloudlets in order to enable the use of cloud server. So, through the help of the cloudlet process, it distributes the computing load of the cloud server which achieves the minimal response time and reduced latency time when request is been send from resources to match the process with multiple server in the cloud [1][2][3]. Mobile cloud computing is simplest way in the cloud server. This refers to an infrastructure where both the data storage and processing will happen outside of the mobile device that is the cloud server. Mobile cloud applications move the computing power and data storage away from the mobile devices and into powerful and centralized computing platforms located in clouds, which are accessible over the wireless connection based on the native client. It can help to overcome the mobile computing challenges like battery life, storage and bandwidth. This also improves the reliability, scalability, data storage and processing power as mobile.
Face recognition method can be used as one of the method in order to provide secure data access from the cloud. Face recognition is a process that automatically identify an individual from captured image or video, for different application like airport, Passport office, and Government office. In the face recognition process, it stores the data in the database in order to verify the human for providing the authentication. The database can be stored either inside the local server or on cloud server [4]. For example, if cloud database is used in order to provide the authentication, then with the help of the cloud database it matches the data and give back result in accurate time. In face recognition method different face recognition algorithm analyse the image, and then extract that image information such as shape, size and position of the facial database from the image to locate matching image [5]. To extract the image, it performs the different parallel stages of face recognition algorithm in the cloud. Through this it gives better and efficient output in minimal time [3,6,7].
This paper is about performing the face recognition using clouding storage. In Face recognition over the mobile cloud computing, huge data that can be provided as database. Through the mobile cloud computing it integrate the cloud computing mobile environment in the mobile platform. With mobile cloud computing it give the better output in limited time period. Mover over multiple user can do process on cloud through the mobile cloud computing simultaneously.
The growth of the cloud computing is increasing in day to day process of the organization. Not only the organization but regular internet user is also using the cloud computing services like Google Does, drop box and with the help of these features the user can access their files from wherever they want. Cloud computing delivers a wide range of resources like computational power, computational platform, storage and application to user in internet [8]. Cloud computing is an emerging technology it sends request for services and based on the request it provide the result in an on-demand environment. In the cloud computing environment user can access services based on user needs without knowing how the services are delivered and where the service is hosted [2,9]. Soyata T. et al. [10] describe about that how mobile computing and cloud computing are enable to converge the new multimedia application for the cloud environment. It also described that how process is working to the end-to-end network bandwidth latency for the resource-intensive and interaction-intensive application. In the paper it described that in the cloud environment how two level hierarchical structure are presenting the todays generation cloud computing infrastructure. It also describes that mobile cloud computing gave platform to various application to perform various computational task on the mobile device.
Ha K. et al. [11] described that in the cloud environment how two level hierarchical structure are presenting the todays generation cloud computing infrastructure. It also spcify that mobile cloud computing gave platform to various application to perform various computational task on the mobile device. On the other hand, Milos Stojmenovic [12] discuss about how biometric applications are running on the mobile device and application are processing faster through the mobile cloud computing. Cloud biometric improved the real time biometric data with the help of the cloud computing environment. The main advantage is that it's reduced the cost of the biometric devices which are connected to the network.
Yang J. et al. [13] described the two architecture based on the ICA algorithm for recognize the face. Both architecture -I and architecture -II are involved with the PCA based algorithm and both architectures are generating the mostly similar result. The author described the ICA algorithm is strongly depend on the PCA based process. ICA based algorithm has little effect on performance of the face recognition. In the previous paper it described about the ICA and PCA face recognition algorithm based on the architecture and how ICA is based on the PCA algorithm. Yang, J., et al. [14] described that due to high dimensionality of image space many LDA based approach are using PCA based algorithm first to minimize the dimensionality of the image. After reducing the size of image, it can perform the LDA algorithm on image. The paper proposed new algorithm for the face recognition which called the direct LDA algorithm and it is the combination of the LDA + PCA algorithm [13,14].
Lu J. et al. [15] also proposed the DF-LDA based algorithm in the face recognition but this algorithm has some problem with the large size of the face recognition and it developing the non-linear algorithm. Georgescu D. [4] author proposed to verify the face recognition algorithm with help of Eigen face techniques. Eigen face techniques can be solving with help of PCA based face recognition algorithm. This Eigen face technique is simple, robust and easy for the implementation. It requires the large amount of the data in face recognition system for fast result. While on research it concluded that for the face recognition algorithm each and every method are using the PCA base algorithm in one or another way [16][17][18]. On the biometric mobile cloud computing there is systematic approach of proper recognition of face. Each and every algorithmic methods and techniques has their own advantage and limitation. There is not proper approach for the parallel algorithm which can work parallel on the cloud server for face recognition to match result. A proper approach of communication between the source and cloud data is not found in surveyed literature [16][17][18].
The motivation of this paper is to design and develop parallelized algorithm for the face recognition in the mobile cloud computing. The main aim is to develop the parallel based algorithm for the face recognition method on the cloud server. So, with the help of parallel face recognition algorithm it can reduced the latency of the system and give the better output for the large scale database process. In the current scenario face recognition application is working on different algorithm in different way but there is no efficient algorithm which can work parallely and reduce the time complexity of the system.

DESIGN OF PARALLEL ALGORITHM FOR FACE RECOGNISATION IN MOBILE CLOUD
COMPUTING In this section, the design process is mainly divided into two. − Adding training dataset to the server − Validation of the image If the face recognition application follows adding the images training dataset to the server then the application follows the fashion as follows. Figure 1 show the sequence diagram for registering the image. The sequence diagram shows three objects of the system and the interaction among them. Firstly, face recognition application is registering with the name and send it to server. Now, the server acknowledges the face recognition application indicating that the name has been register. Once the registration has been done successfully next step is to capture the images of user in five different angels and sending to the server. The server intern sends the scaled images to the training dataset of the system [8]. Once the training dataset mages are saved a conformation message is been send to be server. Once the conformation message from the training dataset is received, the server sends an acknowledgment message to the face recognition application toasting that images are saved successfully on the cloud server.  Figure 2 shows the sequence diagram for validating the image. The sequence diagram shows the interactions between three objects of the system. Firstly, user sends request to the server through the face recognition application. When server gets the request from the application it gives response back to the application that request is accepted. Once a positive response comes backs to the application, the applications activates the camera in order to capture the image. The captured image is then sent it to the server for further verification. Once the server acquires the image, it searches for the highest matching image. On the backend, the image is matched with the training dataset. Once the server has the result, it sends the result back to the face recognition application.

Sequence diagram for the system server
The face recognition application captures the images these captured images are so converted from coloured image to the grey scaled image and send to the server. If the image is generated for the first time, then it fetches and save on the training dataset of the database and give the response back to the server [7]. If the user wants to validate the image, then the captured image is converted into scaled grey image and is been send to the cloud server. On the cloud server side, it fetches the image and applies PCA and finds the most similar with the help of the Euclidian method in order to generate the result. The Parallel PCA algorithm working is as follows as shown in Figure 3: − Step 1: PCA algorithm is implemented on the server. − Step 2: Firstly, it takes a scaled image from image capturing device and map the image in the form of matrix − Step 3: After converting to image into matrix form, it saves the hashmaping value and loads image in text format. − Step 4: These generated formats are the training dataset − Step 5: Once the training dataset is being generated, Eigen face of each images training dataset are obtained. − Step 6: After generating the Eigen faces for the training dataset images, it builds matrix for each image as well as the transpose matrix form are generated and from the transpose matrix vectors of the images are generated. − Step 7: After generating the vector value of the image, it finds the most similar images of the captured image by comparing it with the training dataset images − Step 8: After mapping the image with Eculin distance with the vector of an image final result is been generated.

IMPLEMENTATION OF PARALLEL ALGORITHM FOR FACE RECOGNISATION IN MOBILE CLOUD COMPUTING
In this paper, parallel face recognition algorithm is designed and developed with help of the mobile cloud computing as shown in Figure 4. This is being achieved by developing an android application for face recognition and making a cloud server. Here an android application is developed for the face recognition process. An android application is used to register or validate the user. This application can register the new user by providing user's name and five images taken indifferent angle. These taken images along with the user's name is kept as the training dataset if the user request for validating the image after new registration. The training dataset is stored in the cloud sever.
If user request for validation through face recognition application, the taken image is sent to the server so as to perform PCA algorithm on it to generate the result. Here, the server fetches the images from the training dataset and compares with the image send by the face recognition application in order to generate the output. The comparison result is nothing but finding the most similar image in the training dataset. The designed system is being tested in centralised and distributed server system in order to find the time complexity of each system and do a comparative analysis on both the system as shown in Figures 5 and 6. The main motive of developing the system in both centralised and distributed server system is to comment on the performance of the developed system. Evaluation of the system was carried out based on the time taken to perform the task if the number of images in training dataset keep getting increased.
The analysis of the system is carried out by considering the server as centralized and distributed. The parameter here considered in order to compare the performance of both the system is the time taken to perform the particular task. In centralized system, images are sent from the face recognition application to a single server in order to perform the particular task selected by the user. In distributed system, images taken by face recognition application are sent to the central server of the system. Now, central server of the system sends the received information to four other servers which are connected to the main centre server. The main motive is to divide the task among the sever so as to generate result in less time and make the system faster. That is, it in the distributed server, the process is running concurrently to generate the result.   Figure 7 shows the graphical representation of comparative analysis between the centralized and distributed system server. Figure 5 shows the time taken in order to complete the process while varying the number of images in the training dataset. The orange bar is denoted as distributed system whereas the blue bar is denoted as centralized server system. The x axis is labelled as the Time-taken in seconds and Y-axis is considered as the number of images taken in the training dataset. Observing the Figure 7 it is clear that the if the system is designed in distributed way, it is taking less time to complete the process as compared to the time taken by the centralized system. Hence, it can be concluded that the distributed server system acts faster for better and efficient output than the centralized system. In the centralized server, request is directly sent from the face recognition application to the REST server in order to perform the relevant task. Now, as the number of training dataset images keeps increasing the response time of the server keeps gradually gains more which leads to difficulty in responding back to the face recognition application. This may even lead to failure of the system. Whereas in the distributed server, first request is being sent to the central sever from the face recognition application. Now, in backend, the central server sends the same request to the rest of the different server in order to perform the task in parallel way. This distribution fashion of task can achieve increase in performance of the system. Because as the task is been divided amount the servers, the time taken to process the task will be less. Thus, distributed system leads to a better and efficient use of the system.

CONCLUSIONS
The devloped system is giving result on the different type of the face expression and emotion of the face. The parallel PCA algorithm is provding the most similar face while validating the face image from the image dataset. Identifying the face recognition process is achieved with the help of the parallel PCA and Eculian distance. Parallel PCA face recognition agorithm is applying on the cloud server and it match the image on the cloud server, after matching image, it gives the response back to the user. The developed system is designed in both centralized and distributed servers. It can be observed that; centralized server is taking more time to give response as compared to the distributed server if number of images in the training dataset is high. But if number of images in the training dataset is low, then centralized server is taking less time as compared to the distributed server.
It shows that developed system is able to achieve high stability and higher performance while designed in distributed server system. With the help of cloud based system it's possible to provide huge number of the data and give the accurate result in less amount of the time. The developed application can be used by n number of users simultaneously in order in add himself/herself to the training dataset or to request for validating the image. The present work can still be improved by combining PCA based face recognition algorithm with some other face recognition algorithm for better efficiency and accurate result. To improve the efficiency of the developed system, integration of audio and video of user can be provided in order to identify person with face and voice, it leads to achieve high recognition rate. To improve the cloud with more hierarchy cloud based server to improve the result and emerging with high accuracy in less time.