<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JCC</journal-id><journal-title-group><journal-title>Journal of Computer and Communications</journal-title></journal-title-group><issn pub-type="epub">2327-5219</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jcc.2015.35007</article-id><article-id pub-id-type="publisher-id">JCC-56576</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Computer Science&amp;Communications</subject></subj-group></article-categories><title-group><article-title>
 
 
  Parallel Cascade Correlation Neural Network Methods for 3D Facial Recognition: A Preliminary Study
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Sokyna</surname><given-names>M. Al-Qatawneh</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Khalid</surname><given-names>Mohammad Jaber</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>Faculty of Science and Information Technology, Al-Zaytoonah University of Jordan, Amman, Jordan</addr-line></aff><pub-date pub-type="epub"><day>25</day><month>05</month><year>2015</year></pub-date><volume>03</volume><issue>05</issue><fpage>54</fpage><lpage>62</lpage><history><date date-type="received"><day>March</day>	<month>2015</month>	</date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
   This paper explores the possibility of using multi-core programming model that implements the Cascade correlation neural networks technique (CCNNs), to enhance the classification phase of 3D facial recognition system, after extracting robust and distinguishable features. This research provides a comprehensive summary of the 3D facial recognition systems, as well as the state-of-the- art for the Parallel Cascade Correlation Neural Networks methods (PCCNNs). Moreover, it highlights the lack of literature that combined between distributed and shared memory model which leads to novel possibility of taking advantage of the strengths of both approaches in order to construct an efficient parallel computing system for 3D facial recognition. 
 
</p></abstract><kwd-group><kwd>Parallel Computing</kwd><kwd> CCNNs</kwd><kwd> 3D Facial Recognition</kwd><kwd> MPI</kwd><kwd> GPGPU</kwd><kwd> Multicore</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The simultaneous execution of the same task on multi-processors in order to obtain results quickly is known as parallel computing [<xref ref-type="bibr" rid="scirp.56576-ref1">1</xref>]. The advantage of this method is that a task is divided into many sub-tasks and processed by more than one processor simultaneously, resulting in a significant reduction in the response time. Parallel computing plays a very critical role in many application areas, especially those which require processing large amount of data, such as image processing, filtering, data visualization, and segmentation [<xref ref-type="bibr" rid="scirp.56576-ref2">2</xref>]. On the other hand, automatic 3D pattern recognition is considered as a very hard to solve problem due to its non-linearity [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. In particular, it is presented as a template matching challenge, where recognition should be performed in a high-dimensional space [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. Therefore more computation is needed to find a match, which can be sorted by using a dimensional reduction technique to project the problem into a lower dimensionality space. Particularly, facial recognition based on 3D information is relatively new in terms of literature, algorithms, commercial applications, and datasets used for experimentation [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. Besides that, comparing different 3D facial recognition techniques is very challenging for a number of reasons. Firstly, there are very few standardized 3D facial databases which are used for benchmarking purposes. Secondly, there are differences in the experimental setups and in the metrics, which are used to evaluate the performances of pattern recognition techniques [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. The Cascade Correlation Neural Networks (CCNNs) can be considered as a good solution to the pattern recognition computation problems; one of its advantages is that they can reduce misclassifications among the neighborhood classes.</p><p>The rest of the paper is organized as follows: Section 2 looks at the state of the art and background of 3D features extraction and facial recognition. In Section 3 we present the approaches of parallel processing systems and its related work with facial recognition systems. A detailed literature on cascade correlation neural networks and its application with parallel systems are introduced in section 4. Section 5 presents the summary of this research with future directions for our work.</p></sec><sec id="s2"><title>2. 3D Facial Recognition Studies</title><p>According to Al-Qatawneh [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>], there is a limit in 3D facial recognition researches in comparison with the wealth of 2D facial recognition researches, regardless of that there are a number of investigations which have demonstrated how geometric pattern structure could be used to aid recognition [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. For instance, 3D facial recognition has attracted more attention in recent years due to two major factors. Firstly, the inherent problems with 2D facial recognition systems which appear to be very sensitive to facial pose variation, variant facial expressions, lighting and illumination [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. On the other hand, for example, Xu et al. [<xref ref-type="bibr" rid="scirp.56576-ref4">4</xref>] compared 2D intensity image against depth images and concluded that depth map give a more robust face representation, because intensity images are significantly affected by changes in illumination [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. Secondly, the recent developments in 3D acquisition techniques, such as 3D scanners, use of infrared and other technologies which have made obtaining 3D data much easier than it was before. For 3D face recognition applications, two main requirements have to be met. The first requirement is to provide a powerful representation modelling technique for 3D facial image. The second is to provide a matching algorithm or criterion to recognize and distinguish between these models. While the second requirement has been subject to extensive investigation and research, the first requirement is still considered an open research area [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. In a paper presented by Bowyer et al. [<xref ref-type="bibr" rid="scirp.56576-ref5">5</xref>] covered this topic in detail by presenting a comparative survey of 3D face recognition algorithms. They concluded that 3D face recognition has the potential to overcome limitations of its 2D counterpart. In particular, 3D shape data of a face could be used to correct the corresponding 2D facial image, taken with a non-standard pose, to a standard pose [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>].</p><p>As it explained in our previous work [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>] Nagamine et al. [<xref ref-type="bibr" rid="scirp.56576-ref6">6</xref>] tackled face recognition by exploring facial profiles. They used horizontal section (extracted as an intersection of a face surface with a plane parallel to X-Z plane), vertical section (extracted as an intersection of a face surface with a plane parallel to Y-Z plane) and circular cross section (extracted as an intersection of a face surface with a cylinder (axis on Y-Z plane and parallel to Z-axis)). They extracted five feature points, and used them to standardize the face pose. For comparison between faces, Euclidean distance matching between feature vectors of different faces was used. It was concluded that vertical profiles that pass through the central region of the face give better recognition rates, circular sections which cross near the eyes and part of the nose also show some distinctiveness, while the distinctiveness of the horizontal profiles are not remarkable in themselves [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>].</p><p>In addition, Hasher et al. [<xref ref-type="bibr" rid="scirp.56576-ref7">7</xref>] [<xref ref-type="bibr" rid="scirp.56576-ref8">8</xref>] used PCA and Independent Component Analysis (ICA) to analyze range images in a similar way to 2D intensity images and estimated probability models for the coefficients. For registration, and pose standardization they used the nose tip and the nose bridge [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. They used a database of 37 individuals with images of 6 different facial expressions for each [<xref ref-type="bibr" rid="scirp.56576-ref7">7</xref>].</p><p>Elyan and Ugail [<xref ref-type="bibr" rid="scirp.56576-ref9">9</xref>] presented a method to determine the symmetry profile of the face. They computed the intersection between the symmetry plane and the facial mesh and then computed a few feature points along the symmetry profile in order to allocate the central region of the face and extract a set of profiles from that region. In this approach, they assume that the symmetry profile passes through the tip of the nose. To locate the tip of the nose they fit a bilinear blended Coon’s surface patch. Coon’s patch is simply a parametric surface defined by four given boundary curves [<xref ref-type="bibr" rid="scirp.56576-ref9">9</xref>]. These four boundaries of the Coon’s patch are determined based on a boundary curve that encloses an approximated central region of interest, which is simply the region of the face that contains or is likely to contain the nose area [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>].</p><p>Considering all this prior work which has been done, [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>] asserted that there still remain a number of areas that 3D face recognition research needs to address. For registration, automatic landmark localization, artefact removal, scaling, and elimination of errors due to occlusions, glasses, beard, etc. need to be worked out. Additionally, methods of deforming the face without the loss of discriminative information would also be beneficial It is likely that information fusion is the future of 3D face recognition [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. There are many ways of representing and combining texture and shape information. Publicly available 3D datasets are necessary to encourage further research on these topics [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>].</p><p><xref ref-type="table" rid="table1">Table 1</xref> gives a comparison of selected elements of algorithms that use 3D facial data to recognize faces.</p></sec><sec id="s3"><title>3. Parallel Processing Studies</title><p>The meaning of parallel computing is when in order to obtain results quickly there is a simultaneous execution of the same task on multiple processors [<xref ref-type="bibr" rid="scirp.56576-ref1">1</xref>]. The benefit of this method is that a task is divided into many sub- tasks and processed by more than one processor simultaneously, resulting in a significant reduction in the response time. Parallel computing plays a very critical role in many application areas, especially those which require processing large amount of data, such as weather forecast, data visualization, biology and engineering [<xref ref-type="bibr" rid="scirp.56576-ref29">29</xref>].</p><p>Parallel processing computers can be classified in many perspectives; such as implicit and explicit parallelism. When referring to implicit parallelism we mean that it is a built-in programming approach that is incorporated within parallel language and parallelizing compilers, it does not specify or control scheduling of calculations. Whereas the responsibility of explicit parallelism is on the programmer, with tasks such as task decomposition, synchronization, communication and so on. As another classification is based on instruction streams and data streams that were proposed by Flynn in 1996. Flynn proposed a four-way classification of parallel computers that are SISD (Single Instruction Single Data), SIMD (Single Instruction multiple Data), MISD (Multiple Instruction Single Data), and MIMD (Multiple Instruction Multiple Data) [<xref ref-type="bibr" rid="scirp.56576-ref1">1</xref>].</p><p>In 1988 E. E. Johnson proposed a new taxonomy which was based on memory structure such as shared/global memory or distributed memory [<xref ref-type="bibr" rid="scirp.56576-ref1">1</xref>]. Communications are totally involved between processors in parallel computation and the mechanism which are used for communication/synchronization and is referred to as message passing. Fortunately, many message-passing libraries have been developed to provide routines to initiate and configure the messaging environment as well as to send/receive packets of data between processors. The two most popular message-passing libraries are Parallel Virtual Machine (PVM) [<xref ref-type="bibr" rid="scirp.56576-ref30">30</xref>] and Message Passing Interface (MPI) [<xref ref-type="bibr" rid="scirp.56576-ref30">30</xref>], while the most popular routines as shared address space paradigms are the POSIX Thread [<xref ref-type="bibr" rid="scirp.56576-ref30">30</xref>] and OpenMP [<xref ref-type="bibr" rid="scirp.56576-ref30">30</xref>] as illustrated in <xref ref-type="fig" rid="fig1">Figure 1</xref>.</p><p>Recently, researchers tried to use General Purpose computation on Graphics Processing Units (GPGPU) as parallel programming approach. GPGPU are techniques to program GPU chips using application programming interface (API) functions such as OpenGL, Direct3D and CUDA [<xref ref-type="bibr" rid="scirp.56576-ref31">31</xref>] and are used in order to obtain results quickly. However, Graphics Processing Units (GPUs) are highly threaded streaming multiprocessors of very high computation and data throughput [<xref ref-type="bibr" rid="scirp.56576-ref32">32</xref>]. In 2006, CUDA (Compute Unified Device Architecture) was created by NVIDIA which is a parallel computing platform and programming model and implemented by the graphics processing units (GPUs). CUDA has been widely deployed through thousands of applications and published research papers such as astronomy, biology, chemistry, physics, and data mining. Supported by an installed base of over 300 million CUDA-enabled GPUs in notebooks, workstations, compute clusters and super</p><fig id="fig1"  position="float"><label><xref ref-type="fig" rid="fig1">Figure 1</xref></label><caption><title>Parallel programming models</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/56576x3.png"/></fig><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Summary of recognition algorithms using 3D facial data</title></caption><table><tbody><thead><tr><th align="center" valign="middle" >Reference</th><th align="center" valign="middle" >Database Size</th><th align="center" valign="middle" >Data Representation</th><th align="center" valign="middle" >Algorithm</th><th align="center" valign="middle" >Reported Performance</th></tr></thead><tr><td align="center" valign="middle" >Cartoux et al. [<xref ref-type="bibr" rid="scirp.56576-ref10">10</xref>], 1989</td><td align="center" valign="middle" >18</td><td align="center" valign="middle" >Profiles, surface</td><td align="center" valign="middle" >Curvature based Nearest Neighbor</td><td align="center" valign="middle" >100%</td></tr><tr><td align="center" valign="middle" >Lee et al. [<xref ref-type="bibr" rid="scirp.56576-ref11">11</xref>], 1990</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >EGI</td><td align="center" valign="middle" >Correlation</td><td align="center" valign="middle" >N/A</td></tr><tr><td align="center" valign="middle" >Gordon, [<xref ref-type="bibr" rid="scirp.56576-ref12">12</xref>], 1992</td><td align="center" valign="middle" >26</td><td align="center" valign="middle" >curvatures</td><td align="center" valign="middle" >Euclidean nearest neighbor</td><td align="center" valign="middle" >100%</td></tr><tr><td align="center" valign="middle" >Nagamine et al. [<xref ref-type="bibr" rid="scirp.56576-ref6">6</xref>], 1992</td><td align="center" valign="middle" >160</td><td align="center" valign="middle" >Multiple profiles</td><td align="center" valign="middle" >Euclidean nearest neighbor</td><td align="center" valign="middle" >100%</td></tr><tr><td align="center" valign="middle" >Tanaka et al. [<xref ref-type="bibr" rid="scirp.56576-ref13">13</xref>], 1998</td><td align="center" valign="middle" >37</td><td align="center" valign="middle" >curvatures based EGI</td><td align="center" valign="middle" >Fisher’s spherical Correlation</td><td align="center" valign="middle" >100%</td></tr><tr><td align="center" valign="middle" >Zhao and Chellappa [<xref ref-type="bibr" rid="scirp.56576-ref14">14</xref>], 2000</td><td align="center" valign="middle" >N/A</td><td align="center" valign="middle" >3D model + Texture</td><td align="center" valign="middle" >Produce a prototype images</td><td align="center" valign="middle" >81%</td></tr><tr><td align="center" valign="middle" >Beumier et al. [<xref ref-type="bibr" rid="scirp.56576-ref15">15</xref>], 2001</td><td align="center" valign="middle" >120</td><td align="center" valign="middle" >2D and 3D vertical profiles</td><td align="center" valign="middle" >Minimum distance, fusion</td><td align="center" valign="middle" >1.4% EER</td></tr><tr><td align="center" valign="middle" >Wang et al. [<xref ref-type="bibr" rid="scirp.56576-ref16">16</xref>], 2002</td><td align="center" valign="middle" >300</td><td align="center" valign="middle" >Feature vector point signature Gabor features</td><td align="center" valign="middle" >PCA + SVM</td><td align="center" valign="middle" >&gt;90%</td></tr><tr><td align="center" valign="middle" >Chang et al. [<xref ref-type="bibr" rid="scirp.56576-ref17">17</xref>], 2003</td><td align="center" valign="middle" >278</td><td align="center" valign="middle" >Texture + Range image</td><td align="center" valign="middle" >PCA</td><td align="center" valign="middle" >99% 3D + 2D, 93% 3D only</td></tr><tr><td align="center" valign="middle" >Hesher et al. [<xref ref-type="bibr" rid="scirp.56576-ref8">8</xref>], 2003</td><td align="center" valign="middle" >222</td><td align="center" valign="middle" >Range image</td><td align="center" valign="middle" >ICA or PCA, nearest neighbor</td><td align="center" valign="middle" >97%</td></tr><tr><td align="center" valign="middle" >Moreno et al. [<xref ref-type="bibr" rid="scirp.56576-ref18">18</xref>], 2003</td><td align="center" valign="middle" >420</td><td align="center" valign="middle" >Curvature, line, region features</td><td align="center" valign="middle" >Euclidean nearest neighbor</td><td align="center" valign="middle" >78%</td></tr><tr><td align="center" valign="middle" >Pan et al [<xref ref-type="bibr" rid="scirp.56576-ref19">19</xref>], 2003</td><td align="center" valign="middle" >360</td><td align="center" valign="middle" >Point set, range image</td><td align="center" valign="middle" >Hausdorff and PCA</td><td align="center" valign="middle" >3% - 5% EER</td></tr><tr><td align="center" valign="middle" >Chang et al. [<xref ref-type="bibr" rid="scirp.56576-ref20">20</xref>], 2003</td><td align="center" valign="middle" >278</td><td align="center" valign="middle" >Texture+ Range image</td><td align="center" valign="middle" >PCA</td><td align="center" valign="middle" >99% 3D + 2D, 93% 3D only</td></tr><tr><td align="center" valign="middle" >Tsalakanidou, [<xref ref-type="bibr" rid="scirp.56576-ref21">21</xref>] 2003</td><td align="center" valign="middle" >80</td><td align="center" valign="middle" >Range image</td><td align="center" valign="middle" >PCA</td><td align="center" valign="middle" >99%</td></tr><tr><td align="center" valign="middle" >Xu et al. [<xref ref-type="bibr" rid="scirp.56576-ref4">4</xref>], 2004</td><td align="center" valign="middle" >30 &amp;120</td><td align="center" valign="middle" >Point set + feature vector</td><td align="center" valign="middle" >Minimum distance</td><td align="center" valign="middle" >96% on 30, 72% on 120</td></tr><tr><td align="center" valign="middle" >Lu et al. [<xref ref-type="bibr" rid="scirp.56576-ref22">22</xref>], 2005</td><td align="center" valign="middle" >196</td><td align="center" valign="middle" >Surface mesh</td><td align="center" valign="middle" >ICP, TPS</td><td align="center" valign="middle" >89%</td></tr><tr><td align="center" valign="middle" >Lee et al.[<xref ref-type="bibr" rid="scirp.56576-ref23">23</xref>], 2005</td><td align="center" valign="middle" >70</td><td align="center" valign="middle" >depth map</td><td align="center" valign="middle" >Feature extraction, nearest neighbor</td><td align="center" valign="middle" >94%</td></tr><tr><td align="center" valign="middle" >Bronstein et al.[<xref ref-type="bibr" rid="scirp.56576-ref24">24</xref>], 2005</td><td align="center" valign="middle" >220</td><td align="center" valign="middle" >Point set</td><td align="center" valign="middle" >Canonical forms</td><td align="center" valign="middle" >100%</td></tr><tr><td align="center" valign="middle" >Lee et al. [<xref ref-type="bibr" rid="scirp.56576-ref25">25</xref>], 2005</td><td align="center" valign="middle" >200</td><td align="center" valign="middle" >Feature vector</td><td align="center" valign="middle" >SVM</td><td align="center" valign="middle" >96%</td></tr><tr><td align="center" valign="middle" >Pan et al. [<xref ref-type="bibr" rid="scirp.56576-ref26">26</xref>], 2005</td><td align="center" valign="middle" >720</td><td align="center" valign="middle" >Range image</td><td align="center" valign="middle" >PCA</td><td align="center" valign="middle" >95%</td></tr><tr><td align="center" valign="middle" >Zhang et al. [<xref ref-type="bibr" rid="scirp.56576-ref27">27</xref>], 2006</td><td align="center" valign="middle" >32</td><td align="center" valign="middle" >Range images</td><td align="center" valign="middle" >mean curvature</td><td align="center" valign="middle" >96.9%</td></tr><tr><td align="center" valign="middle" >Qatawnah et al. [<xref ref-type="bibr" rid="scirp.56576-ref28">28</xref>], 2008</td><td align="center" valign="middle" >56</td><td align="center" valign="middle" >Range images</td><td align="center" valign="middle" >Feature extraction, CCNN, SVM and KNN</td><td align="center" valign="middle" >100%</td></tr><tr><td align="center" valign="middle" >Elyan and Ugail [<xref ref-type="bibr" rid="scirp.56576-ref19">19</xref>], 2009</td><td align="center" valign="middle" >144</td><td align="center" valign="middle" >triangle mesh</td><td align="center" valign="middle" >Coon’s surface patch</td><td align="center" valign="middle" >86.9%</td></tr></tbody></table></table-wrap><p>computers [<xref ref-type="bibr" rid="scirp.56576-ref33">33</xref>].</p><p>However, there are several mechanisms to parallelize large amounts of data; function decomposition, data decomposition or both. Data decomposition consists of horizontal distribution and vertical distribution or both. Moreover, hybrid parallelism merges both data parallelism with horizontal or vertical distribution and function decomposition [<xref ref-type="bibr" rid="scirp.56576-ref1">1</xref>] as shown in <xref ref-type="fig" rid="fig2">Figure 2</xref>. The one that is probably the most important programming language in computer science used to analyze data, develop algorithms, and create models and applications is a MATLAB [<xref ref-type="bibr" rid="scirp.56576-ref34">34</xref>]. Over recent times, MALTAB has gained much popularity and has been applied in many fields including image processing, bioinformatics, engineering, medical, signal processing, communications and parallel computing. Additionally, MATLAB has parallel computing built-in functions that lets the researcher to solve computationally and data-intensive problems using multi-core processors, GPUs, and computer clusters [<xref ref-type="bibr" rid="scirp.56576-ref34">34</xref>].</p><fig id="fig2"  position="float"><label><xref ref-type="fig" rid="fig2">Figure 2</xref></label><caption><title> A mechanism to parallelize large amounts of data</title></caption><graphic mimetype="image"   position="float"  xlink:type="simple"  xlink:href="http://html.scirp.org/file/56576x4.png"/></fig><p>MATLAB multicore programming is implemented based on threads. Threads are lightweight processes; and it is very much easier to write threaded programs because the applications are threaded and run on a single machine, can also run on multiple machines without changes. This ability of migrating programs between different platforms is of great benefit to threaded APIs. Additionally, threads which run on the same processor reduce the latency of accessing memory, I/O and communications.</p><p>This can be done by a different number of ways such as it can measure the parallel performance of a given application such as Amdahl's law, speedup (S), Efficiency (E) and Overhead. The time of execution is defined by the serial runtime of a program and is the time elapsed between the beginning and the end of its execution on a sequential machine (Ts). The Parallel run time (Tp) is the time which elapses from the moment a parallel computation starts to the moment the last processor finishes execution. Overhead function (To) or total overhead of a parallel system is the total time collectively spent by all processing elements over and above that required by the fastest known sequential algorithm for solving the same problem on a single processing element; as given by Equation (1):</p><p>Overhead(To) = p*T p-Ts (1)</p><p>The measure that captures the relative benefit of solving the problem in parallel is called Speedup (S). It is defined as the ratio of the time taken to solve a problem on a single processing element to the time required to solve the same problem on a parallel computer with p identical processing elements; given by Equation (2):</p><p>Speedup(S) =Ts/T p (2)</p><p>The Efficiency (E) is a measure of the fraction of time for which a processing element is usefully employed; it is defined as the ratio of speedup to the number of processing elements; as given by Equation (3):</p><p>Efficiency(E) =S/P (3)</p>Parallel Neural Networks for Facial Recognition<p>The equipment and ability to use automatic systems for face recognition research has emerged over the last few decades. One reason for growing interest in this topic is the wide range of possible applications for face recognition systems. There is the possibility of training neural networks but it is time consuming task. Therefore, substantial efforts are dedicated to cope with the training time in different fields on different hardware architectures. Such as, Altaf et al. [<xref ref-type="bibr" rid="scirp.56576-ref35">35</xref>] proposed two techniques of parallelizing back propagation neural networks using Multicore programming based on multithreading and general-purpose computation on graphics processing units (GPGPU). While Xavier et al. [<xref ref-type="bibr" rid="scirp.56576-ref36">36</xref>] presented the parallel training of a back-propagation neural network using CUDA on GPU. The implementation was tested with two standard benchmark data sets which provided by PROBEN1. The two parallelization strategies on a cluster computer; training example and node parallelism using MPI approach was presented by Pethick et al. [<xref ref-type="bibr" rid="scirp.56576-ref37">37</xref>].</p><p>Lyle et al. [<xref ref-type="bibr" rid="scirp.56576-ref38">38</xref>] proposed the scalable massively parallel artificial neural networks for pattern recognition application. In this approach, the MPI used to parallelize the C++ code. However, each layer is distributed equally over all processors, which mean they used the data decomposition approach to parallelize the algorithm. There are further versions of parallel neural network which uses the task decomposition paradigm for cluster system where they duplicates the full neural network at each cluster node was presented by Dahl et al. [<xref ref-type="bibr" rid="scirp.56576-ref39">39</xref>]. Their system was implemented using MPI library. Schuessler et al. [<xref ref-type="bibr" rid="scirp.56576-ref40">40</xref>] proposed a method for parallelization of neural network training based on the backpropagation algorithm and implemented it using two different multithreading techniques (OpenMP and POSIX threads) applicable to the current and next generation of multithreaded and multi-core CPUs.</p></sec><sec id="s4"><title>4. Cascade Correlation Neural Networks</title><p>The training of back-propagation neural networks is considered to be a slow process because of the step-size and moving target problems [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.56576-ref41">41</xref>]. To overcome these problems cascade correlation neural networks were developed. These are “self organizing” networks [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.56576-ref41">41</xref>] with topologies which are not fixed. The supervised training begins with a minimal network topology and new hidden nodes are incrementally added to create a multi-layer construction. The new hidden nodes are added to make the most of the correlation between the new node’s output and the remaining error signal that the system is being adjusted to eliminate. The weights of a new hidden node is fixed and not changed later, hence making it a permanent feature detector in the network. This feature detector can then be used to generate outputs or to create other more complex feature detectors [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.56576-ref41">41</xref>].</p><p>In a CCNN, the number of input nodes is determined by the input features, while the number of output nodes is determined by the number of different output classes [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. The training of a CCNN starts with no hidden nodes. The direct input-output connections are trained using the entire training set with the aid of the back propagation learning algorithm [<xref ref-type="bibr" rid="scirp.56576-ref3">3</xref>]. Hidden nodes are then added gradually and every new node is connected to every input node and to every pre-existing hidden node. The goal of this adjustment is to maximize S, the sum overall output units o of the magnitude of the correlation1 between V, the candidate unit’s value, and<inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/56576x5.png" xlink:type="simple"/></inline-formula>, the residual output error observed at unit o. S can be defined as:</p><disp-formula id="scirp.56576-formula274"><label>(4)</label><graphic position="anchor" xlink:href="http://html.scirp.org/file/56576x6.png"  xlink:type="simple"/></disp-formula><p>where o is the network output at which the error is measured and p is the training pattern. The quantities and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/56576x7.png" xlink:type="simple"/></inline-formula> are the values of V and <inline-formula><inline-graphic xlink:href="http://html.scirp.org/file/56576x8.png" xlink:type="simple"/></inline-formula> averaged over all patterns.</p><p>Training is carried out using the training vector and the weights of the new hidden nodes are adjusted after each pass [<xref ref-type="bibr" rid="scirp.56576-ref41">41</xref>]. Cascade correlation networks have a number of attractive features including a very fast training time, often a hundred times faster than a perceptron network [<xref ref-type="bibr" rid="scirp.56576-ref41">41</xref>]. This makes cascade correlation networks suitable for use with large training sets.</p><p>Depending on the application and number of input nodes, cascade correlation networks are fairly small, often having fewer than a dozen neurons in the hidden layer [<xref ref-type="bibr" rid="scirp.56576-ref42">42</xref>] [<xref ref-type="bibr" rid="scirp.56576-ref43">43</xref>]. This can be contrasted with probabilistic neural networks which require a hidden-layer neuron for each training case. Also, the training of CCNNs is quite robust, and good results can usually be obtained with little or no adjustment of parameters [<xref ref-type="bibr" rid="scirp.56576-ref41">41</xref>].</p>Parallel Cascade Correlation Neural Networks<p>As mentioned before, Fahlman et al. [<xref ref-type="bibr" rid="scirp.56576-ref41">41</xref>] claim that Cascade Correlation algorithm is attractive for parallel implementation because the candidate units do not need to interact which means it can be trained independently. Few previous efforts have been made to enhance cascading correlation neural networks. Few research efforts have reported parallel cascading correlation neural network in different fields. David German [<xref ref-type="bibr" rid="scirp.56576-ref31">31</xref>] proposed a project proposal titled computing hardware for accelerated training of cascade-correlation neural networks by parallelization of multiply-accumulate operations implemented on a field-programmable gate array (FPGA) in communication with a host PC. However, the author was not clear enough and did not mention the parallel technique in details. Moreover, the authors did not mention their benchmark to evaluate their method such as speedup, overhead,..etc.</p><p>Moreover, Ingrid et al. [<xref ref-type="bibr" rid="scirp.56576-ref44">44</xref>] proposed the parallel training data of recurrent cascade correlation learning architecture (RCC) to recognize Japanese phonemes using a method called time-slicing. However, it was intended by the authors that in parallel RCC there will be a large number of training patterns or the training set should be divided into smaller chunks which are to be trained separately and sequentially, this is done in such a pattern that it goes from the simplest to the most complicated one. Therefore, the authors did not use the standard parallel computing concepts and models such as shard memory, distributed memory. Furthermore, they did not use parallel programming approaches such as multithreading, MPI or GPGPU.</p></sec><sec id="s5"><title>5. Summary and Future Work</title><p>The purpose of this paper was to propose a brief assessment for existing 3D facial recognition techniques. As well as, highlight the potential of using parallel CCNNs methods for 3D facial recognition systems. The automatic processing and characterization of 3D scanned images is still considered a challenging problem with a relatively few papers in the public domain addressing it. Semi automatic approaches, where initial assumptions are made about the pose of the face are often encountered to simplify the problem. On the other hand, extracting facial features points is considered to be an essential stage in any facial recognition systems, which can be utilized to allocate the central region of the face and extract a set of effective profiles from that region in order to use them effectively with neural networks algorithms for recognition and classification purpose. The neural networks have been applied in many fields such as face recognition, speech recognition, and pattern recognition. Parallel neural network was implemented using different parallel techniques such as GPGPU [<xref ref-type="bibr" rid="scirp.56576-ref35">35</xref>] [<xref ref-type="bibr" rid="scirp.56576-ref36">36</xref>], MPI [<xref ref-type="bibr" rid="scirp.56576-ref37">37</xref>]-[<xref ref-type="bibr" rid="scirp.56576-ref39">39</xref>] and multithreading [<xref ref-type="bibr" rid="scirp.56576-ref40">40</xref>]. However, only two-research effort have reported parallel cascading correlation neural network in different fields using FPGA. From the review, the authors noted the previous works did not implement the algorithm using stranded parallel approaches. Moreover, there is not any work hybrid between distributed and shared memory model or used both of GPU and CPU methods. Some areas of future work include develop and implement a compact representation of facial data by reconstructing a 3D triangulated human face containing the coordinate and connectivity information to simplify the process of recognition in order to extract robust and distinguishable features. After that we will propose an efficient parallel computing system for 3D facial recognition using a multi-core programming model that implements the cascade correlation neural network technique (CCNN), which is widely recognized as appropriate and efficient validation methods as explained before.</p></sec><sec id="s6"><title>Acknowledgements</title><p>The authors would like to thank Al-Zaytoonah University of Jordan for funding this project (Grant Number: 2/25/2014).</p></sec><sec id="s7"><title>Cite this paper</title><p>Sokyna M. Al-Qatawneh,Khalid Mohammad Jaber, (2015) Parallel Cascade Correlation Neural Network Methods for 3D Facial Recognition: A Preliminary Study. Journal of Computer and Communications,03,54-62. doi: 10.4236/jcc.2015.35007</p></sec></body><back><ref-list><title>References</title><ref id="scirp.56576-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Jordan, L.E. and Gita, A. (2002) Fundamentals of Parallel Processing. Prentice Hall Professional Technical Reference.</mixed-citation></ref><ref id="scirp.56576-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Khalid Mohammad, J., Rosni, A. and Nur'Aini Abdul, R. (2014) Fast Decision Tree-Based Method to Index Large DNA-Protein Sequence Databases Using Hybrid Distributed-Shared Memory Programming Model. Int. J. Bioinformatics Res. Appl., 10, 321-340.</mixed-citation></ref><ref id="scirp.56576-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Al-Qatawneh, S. (2012) 3D Facial Feature Extraction and Recognition. LAP Lambert Academic Publishing.</mixed-citation></ref><ref id="scirp.56576-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Xu, C.H., Wang, Y.H., Tan, T.N. and Quan, L. (2004) Depth vs. Intensity: Which Is More Important for Face Recognition. 17th International Conference on Pattern Recognition, 1, 342-345.</mixed-citation></ref><ref id="scirp.56576-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Bowyer, K.W., Chang, K. and Flynn, P. (2006) A Survey of Approaches and Challenges in 3D and Multi-Modal 3D + 2D Face Recognition. Computer Vision and Image Understanding, 101, 1-15.  
http://dx.doi.org/10.1016/j.cviu.2005.05.005</mixed-citation></ref><ref id="scirp.56576-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Nagamine, T., Uemura, T. and Masuda, I. (1992) 3D Facial Image Analysis for Human Identification. International Conference on Pattern Recognition, 324-327.</mixed-citation></ref><ref id="scirp.56576-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Hesher, C., Srivastava, A. and Erlebacher, G. (2003) A Novel Technique for Face Recognition Using Range Imaging. International Symposium on Signal Processing and Its Applications. http://dx.doi.org/10.1109/ISSPA.2003.1224850</mixed-citation></ref><ref id="scirp.56576-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Hesher, C.A.S. and Erlebacher, G. (2002) PCA of Range Images for Facial Recognition. In: Proceedings of International Multiconference in Computer Science, Las Vegas.</mixed-citation></ref><ref id="scirp.56576-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Elyan, E. and Ugail, H. (2009) Automatic 3D Face Recognition Using Fourier Descriptors. In: International Conference on CyberWorlds, IEEE Computer Society, Bradford, UK.</mixed-citation></ref><ref id="scirp.56576-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Cartoux, J.Y., Lapreste, J.T. and Richetin, M. (1989) Face Authentification or Recognition by Profile Extraction from Range Images. IEEE Computer Society Workshop on Interpretation of 3D Scenes, 194-199.</mixed-citation></ref><ref id="scirp.56576-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Lee, J.C. and Milios, E. (1990) Matching Range Images of Human Faces. IEEE International Conference on Computer Vision, Osaka, Japan.</mixed-citation></ref><ref id="scirp.56576-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Gordon, G. (1992) Face Recognition Based on Depth and Curvature Features. IEEE Computer Society Conference on Computer Vision and Pattern Recognition. http://dx.doi.org/10.1109/CVPR.1992.223253</mixed-citation></ref><ref id="scirp.56576-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Tanaka, H., Ikeda, M. and Chiaki, H. (1998) Curvature-Based Surface Recognition Using Spherical Correlation Principal Directions for Curved Object Recognition. Third IEEE International Conference on Automatic Face and Gesture Recognition. http://dx.doi.org/10.1109/AFGR.1998.670977</mixed-citation></ref><ref id="scirp.56576-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Chellappa, R. and Zhao, W.Y. (2000) Illumination-Insensitive Face Recognition Using Symmetric Shape-from-Shading. IEEE International Conference on Computer Vision.</mixed-citation></ref><ref id="scirp.56576-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Beumier, C. and Acheroy, M. (2001) Face Verification from 3D and Grey Level Clues. Pattern Recognition Letters, 22, 1321-1329. http://dx.doi.org/10.1016/S0167-8655(01)00077-0</mixed-citation></ref><ref id="scirp.56576-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Y. Wang, Chua C.-S. and Ho, Y.-K. (2002) Facial Features Detection and Face Recognition from 2D and 3D Images. Pattern Recognition Letters, 23, 1191-1202. http://dx.doi.org/10.1016/S0167-8655(02)00066-1</mixed-citation></ref><ref id="scirp.56576-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Chang, K.I., Bowyer, K.W. and Flynn, P.J. (2003) Multimodal 2D and 3D Biometrics for Face Recognition. IEEE International Workshop on Analysis and Modeling of Face and Gestures, ed. K.W. Bowyer, 187-194.</mixed-citation></ref><ref id="scirp.56576-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Moreno, A., Sanchez, A., Velez, J. and Diaz, F. (2003) Face Recognition Using 3D Surface-Extracted Descriptors. Irish Machine Vision and Image Processing Conference (IMVIP).</mixed-citation></ref><ref id="scirp.56576-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Pan, G., Wu, Z. and Pan, Y. (2003) Automatic 3D Face Verification from Range Data. 193-196.</mixed-citation></ref><ref id="scirp.56576-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Chang, K.I., Bowyer, K.W. and Flynn, P.J. (2003) Multimodal 2D and 3D Biometrics for Face Recognition. IEEE International Workshop on Analysis and Modeling of Face and Gestures, ed. K.W. Bowyer, 187-194.</mixed-citation></ref><ref id="scirp.56576-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">Tsalakanidou, F., Tzocaras, D. and Strintzis, M. (2003) Use of Depth and Colour Eigenfaces for Face Recognition. Pattern Recognition Letters, 24, 1427-1435. http://dx.doi.org/10.1016/S0167-8655(02)00383-5</mixed-citation></ref><ref id="scirp.56576-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Lu, X. and Jain, A.K. (2005) Intergrating Range and Texture Information for 3D Face Recognition. 7th IEEE Workshop on Applications of Computer Vision.</mixed-citation></ref><ref id="scirp.56576-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Lee, Y., Song, H., Yang, U., Shin, H. and Sohn, K. (2005) Local Feature Based 3D Face Recognition. International Conference on Audio- and Video-Based Biometric Person Authentication.</mixed-citation></ref><ref id="scirp.56576-ref24"><label>24</label><mixed-citation publication-type="other" xlink:type="simple">Bronstein, A., Bronstein, M. and Kimmel, R. (2005) Three-Dimensional Face Recognition. International Journal of Computer Vision, 64, 5-30. http://dx.doi.org/10.1007/s11263-005-1085-y</mixed-citation></ref><ref id="scirp.56576-ref25"><label>25</label><mixed-citation publication-type="other" xlink:type="simple">Lee, Y., Song, H., Yang, U., Shin, H. and Sohn, K. (2005) Local Feature Based 3D Face Recognition. International Conference on Audio- and Video-based Biometric Person Authentication.</mixed-citation></ref><ref id="scirp.56576-ref26"><label>26</label><mixed-citation publication-type="other" xlink:type="simple">Pan, G., Han, S., Wu, Z. and Wang, Y. (2005) 3D Face Recognition Using Mapped Depth Images. 175.</mixed-citation></ref><ref id="scirp.56576-ref27"><label>27</label><mixed-citation publication-type="other" xlink:type="simple">Zhang, L., Razdan, A., Farin, G., Femiani, J., Bae, M. and Lockwood, C. (2006) 3D Face Authentication and Recognition Based on Bilateral Symmetry Analysis. The Visual Computer, 22, 43-55.  
http://dx.doi.org/10.1007/s00371-005-0352-9</mixed-citation></ref><ref id="scirp.56576-ref28"><label>28</label><mixed-citation publication-type="other" xlink:type="simple">Qatawnah, S., Ipson, S., Qahwaji, R. and Ugail, H. (2008) 3D Face Recognition Based on Machine Learning. In: IASTED International Conference on Visualization, Imaging and Image Processing (VIIP 2008), Palma de Mallorca, Spain.</mixed-citation></ref><ref id="scirp.56576-ref29"><label>29</label><mixed-citation publication-type="other" xlink:type="simple">Khalid Mohammad, J., Rosni, A. and Nur'Aini Abdul, R. (2014) Fast Decision Tree-Based Method to Index Large DNA-Protein Sequence Databases Using Hybrid Distri-buted-Shared Memory Programming Model. Int. J. Bioinformatics Res. Appl., 10, 321-340.</mixed-citation></ref><ref id="scirp.56576-ref30"><label>30</label><mixed-citation publication-type="other" xlink:type="simple">Claudia, L. (2001) Parallel and Distributed Computing: A Survey of Models, Paradigms and Approaches. John Wiley \\&amp;amp; Sons, Inc.</mixed-citation></ref><ref id="scirp.56576-ref31"><label>31</label><mixed-citation publication-type="other" xlink:type="simple">German, D. (2007) Engineering 90 Project Proposal. Computing Hardware for Accelerated Training of Cascade- Correlation Neural Networks. Dec. 4.</mixed-citation></ref><ref id="scirp.56576-ref32"><label>32</label><mixed-citation publication-type="other" xlink:type="simple">GPGPU. http://gpgpu.org/</mixed-citation></ref><ref id="scirp.56576-ref33"><label>33</label><mixed-citation publication-type="other" xlink:type="simple">Nvidia. http://www.nvidia.com</mixed-citation></ref><ref id="scirp.56576-ref34"><label>34</label><mixed-citation publication-type="other" xlink:type="simple">Sharma, G. and Martin, J. (2009) MATLAB??: A Language for Parallel Computing. International Journal of Parallel Programming, 3-36. http://dx.doi.org/10.1007/s10766-008-0082-5 </mixed-citation></ref><ref id="scirp.56576-ref35"><label>35</label><mixed-citation publication-type="other" xlink:type="simple">Huqqani, A.A., Schikuta, E., Ye, S. and Chen, P. (2013) Multicore and GPU Parallelization of Neural Networks for Face Recognition. Procedia Computer Science, 18, 349-358.</mixed-citation></ref><ref id="scirp.56576-ref36"><label>36</label><mixed-citation publication-type="other" xlink:type="simple">Xavier, S.-C., Francisco, M.-R. and Victor, U.-C. (2010) Parallel Training of a Back-Propagation Neural Network Using CUDA. Book Parallel Training of a Back-Propagation Neural Network Using CUDA, Series Parallel Training of a Back-Propagation Neural Network Using CUDA, ed., IEEE Computer Society.</mixed-citation></ref><ref id="scirp.56576-ref37"><label>37</label><mixed-citation publication-type="other" xlink:type="simple">Mark Pethick, M.L., Werstein, P. and Huang, Z.Y. (2003) Parallelization of a Backpropagation Neural Network on a Cluster Computer. Proc. the Fifteenth IASTED International Conference on Parallel and Distributed Computing and Systems, November, 574-582.</mixed-citation></ref><ref id="scirp.56576-ref38"><label>38</label><mixed-citation publication-type="other" xlink:type="simple">Long, L.N. and Gupta, A. (2008) Scalable Massively Parallel Artificial Neural Networks. Journal of Aerospace Computing, Information, and Communication, 5, 1-11.</mixed-citation></ref><ref id="scirp.56576-ref39"><label>39</label><mixed-citation publication-type="other" xlink:type="simple">George, D., Alan, M. and Tia, N. (2008) Parallelizing Neural Network Training for Cluster Systems. In: Book Parallelizing Neural Network Training for Cluster Systems, Series Parallelizing Neural Network Training for Cluster Systems, ACTA Press.</mixed-citation></ref><ref id="scirp.56576-ref40"><label>40</label><mixed-citation publication-type="other" xlink:type="simple">Schuessler, O. and Loyola, D. (2011) Parallel Training of Artificial Neural Networks Using Multithreaded and Multicore CPUs. Adaptive and Natural Computing Algorithms, Lecture Notes in Computer Science 6593, Springer, Berlin, Heidelberg, 70-79.</mixed-citation></ref><ref id="scirp.56576-ref41"><label>41</label><mixed-citation publication-type="book" xlink:type="simple">Fahlmann, S.E. and Lebiere, C. (1989) Advances in Neural Information Processing System 2(NIPS-2). In: Touretzky, D.S., Ed., Morgan Kaufmann, Denver, 524.</mixed-citation></ref><ref id="scirp.56576-ref42"><label>42</label><mixed-citation publication-type="other" xlink:type="simple">DTREG. http://www.dtreg.com/cascade.htm</mixed-citation></ref><ref id="scirp.56576-ref43"><label>43</label><mixed-citation publication-type="book" xlink:type="simple">Shet, R.N., Lai, K.H., Edirisingh, E. and Chung, P.W.H. (2005) Pattren Recognition and Image Analysis. In: Marques, J.S., de la Pe’rez, B.N. and Pina, P., Eds., Lecture Notes in Computer Science, Springer, Berlin.</mixed-citation></ref><ref id="scirp.56576-ref44"><label>44</label><mixed-citation publication-type="other" xlink:type="simple">Ingrid, K., Masafumi, K., Jun-ichi, A. and Hideto, T. (1996) The Time-Sliced Paradigm &amp; Mdash;a Connectionist Method for Continuous Speech Recognition. Inf. Sci., 133-158.</mixed-citation></ref></ref-list></back></article>