Computer Graphics & Geometry

3D head model reconstruction from photographs

P. Kán
Comenius University, Bratislava, Slovakia



Contents


Abstract:

This paper presents a novel algorithm for automatic 3D head model reconstruction from frontal and profile photographs. We propose an innovative approach for the 3D head model creation based on a previous parameterized model research. We show the new way of estimating reconstructed 3D head model geometry from predefined model by hierarchical tree of facial features. Our reconstruction algorithm works in three phases. In the first one we use two computer vision techniques; Skin-Tone based image segmentation and Haar Cascade Classifiers to detect head parameters from input images. In the second phase predefined model geometry is adjusted to reach similar properties to the real head. In the third phase the color texture and normal map texture are created and mapped on the reconstructed geometry. Finally we incorporated our reconstruction algorithm to the 3D Head Modeling System application. Created modeling system is capable to reconstruct 3D head model from input photographs, to render it by advanced rendering techniques approximating subsurface scattering in real-time and to export the model into the Collada file format for further use in the other applications. Proposed algorithm for automatic image-based 3D head reconstruction can be used e.g. in computer games development, in the movies creation, in telecommunications to lower the data transfer, in medicine, or in the security systems for human identification.

1. Introduction

Nowadays the 3D technology is starting to be used in our everyday life for example in new 3D televisions, 3D games or in medicine. For this purpose many high quality 3D content have to be created. Especially 3D models of human head are widely used in many applications to solve many kinds of tasks. There are different ways to create 3D head models. With use of special hardware, for example the laser scanner, we can obtain a high quality 3D head models of real persons. But a very high price of those types of hardware is problematic and therefore they are available only for few institutions and companies. The other way to create 3D head model is to use one of the 3D digital content creation tools and create 3D model manually. But manual creation of 3D head model is often very time-consuming and the result isn't very precise, especially in case when we need to reconstruct the model of real person. We decided to use the image-based techniques for 3D head model reconstruction in our work. In the recent research, there were proposed different approaches to reconstruct 3D head model from images. Some of them were oriented to produce high quality results, mainly based on morphable model [8], and another were oriented to maximize the reconstruction speed, for example AvMaker solution [16], but result quality of these techniques is limited.

Our solution is based on previous parameterized head model approach [1], which provides us a possibility of creation many variable 3D heads and we can obtain a model representing concrete person if correct parameters and textures are used. In our work, we created a new parameterized head model based on a hierarchical tree of facial features, which enable application to easily estimate correct parameters for a specific human head. This model defines the vertex weights for each facial feature, whose give us the information about the transformations intensity in each vertex. The main benefit of parameterized model based on a hierarchical tree of facial features is an easy scalability. Hierarchical tree can be extended by adding the new features to the existing hierarchy and defining vertex weights to establish connection with predefined geometry. New advantage of organizing facial features to the tree comes with top to bottom parameters estimation. It means when a root parameter is adjusted, each node feature is also adjusted relatively to the parent node. Then more precise feature property is estimated in the next adjustment of current node. Problematic part of reconstruction with parameterized model is to extract correct head parameters from input images. To overcome this problem we use two computer vision and image processing techniques; Haar cascade classifiers [2] and skin tone based image segmentation [3, 4, 5, 6]. Then we analyze detection results and estimate final head model parameters. According to parameters detected from the input images we calculate global and local transformations and apply them to create a new model. Then we interpolate between old and changed model with parameters defined as vertex weights for each facial feature. To enhance realistic look of the model our algorithm creates color texture and normal map texture of the head, whose can be used in an advanced real-time rendering techniques to simulate the skin lighting. These textures are mapped to model geometry by applying correct transformations to the uv coordinates of the predefined geometry vertices. Our parameterized model consists of 32672 triangles to reach a good reconstruction precision and to gives us high resolution head model. This model can be rendered with texture-space diffusion [7] technique even approximating subsurface scattering in interactive frame rates.

The main contribution of our work can be summed in the following list:

The paper is organized as follows. In section 2 previous works are discussed. In section 3 our reconstruction algorithm is described, our novel parameterized head model based on hierarchical tree of facial features is discussed and texture extraction process is shown. In section 4 advanced real-time skin rendering techniques are presented. In section 5 our reconstruction algorithm results are shown and created 3D head modeling system is described. Finally in section 6 we discuss conclusion and future work.

2. Previous work

The automatic 3D head reconstruction from images is a difficult task solved by researchers for a long time. Many reconstruction techniques were proposed in the recent research. The results within different approaches are variable in quality and computation time according to the purpose of use. Techniques used in telecommunications create a low-polygonal face or head model to achieve lower data transfer in videoconferences. For this purpose Mikael Rydfalk [22] created a parameterized face model named Candide in 1987. His model was a low-resolution adjustable model, which can be updated by several parameters. This model was later improved by Jörgen Ahlberg [6] to simplify animation and it was named Candide-3. An advantage of the Candide-3 model is fast reconstruction time, but disadvantage of this technique is low precision and few details.

Another approach generating high quality 3D head models, called a Morphable Model, was proposed by Volker Blanz and Thomas Vetter [8] to reach photorealistic model appearance and high precision in reconstruction. In this approach head model is represented as a multidimensional 3D morphing function based on the linear combination of large number of the 3D face scans. The main disadvantage of a Morphable Model is a high computational time. This model was later updated by Yong-Li Hu et al. [15], who used the mesh resampling method to overcome the key problem of model construction, the pixel-to-pixel alignments of prototypic faces. When applying the method to several images of a person, the reconstructions reach almost the quality of laser scans.

In some techniques, the 3D head model is reconstructed from one image like in the AvMaker [16] program, where the missing information is approximated by use of predefined model and synthetized texture. The special case of image-based head reconstruction is gathering 3D coordinates of points from two 2D images using stereo vision [20]. Advantages of image-based head model reconstruction techniques are generally fast computational time and low reconstruction cost. The main disadvantage is low reconstruction accuracy. An Active Appearance Models [10] is an example of head model reconstruction technique based on predefined model and it is used mainly for head tracking in video. Liu et al. [21] use video sequences to generate 3D head models. A disadvantage of this approach is low acceptable head rotation angle.

In our solution the image-based 3D head model reconstruction technique with predefined parameterized head model based on a hierarchical tree of facial features is used. This approach is capable of giving us the reconstructed 3D head model in a few seconds.

3. 3D head model reconstruction

In this section we describe our reconstruction algorithm, which is capable of automatically or semi-automatically reconstruct the 3D head model from frontal and profile head photographs. The reconstruction process of our algorithm can be divided into the three following steps:

Figure 1: Reference mesh of parameterized head model.
Reference mesh of parameterized head model

In the design phase of creation our reconstruction algorithm we were inspired by parameterized head model created by Jörgen Ahlberg [6]. We created the new parameterized model based on a hierarchical three of facial features, which is the key part of reconstruction process. Proposed parameterized model has the two main parts. The first one is the predefined 3D head geometry (Figure 1) in high resolution. This geometry is represented as a triangle mesh and it consists of 32672 triangles. The second part is the hierarchical tree of facial features (Figure 2). This is the control structure, which enable the algorithm to transform geometry by adjusting the positions in feature tree. Hierarchy in this tree provides an easy and precise top to bottom parameters estimation. Firstly the root parameter is set (for example the position of head center in the front image). All child nodes of the root node immediately change their positions according the root's value relatively to their previous values. In the next steps the child nodes parameters are estimated separately to reach their final positions. Another advantage of this approach is a possibility of simple user interaction and manual adjusting of the head model. The problem is to properly define the connection between control structure and the predefined geometry. We solved this problem by using the vertex weights for each facial feature. These vertex weights identify the intensity of transformation by current facial feature in each vertex of predefined geometry. The example of the vertex weights defined for the eye is shown in Figure 3. In our model the facial features are organized in the hierarchical tree as follows. The root node is the head center and the child nodes are the main facial features. Child nodes of the facial feature are their properties or other more detailed features. For example Left eyes nodes define left, right, top and bottom border coordinates in the front image.

Figure 2: The hierarchical tree of facial features and theirs attributes. In bottom image are the nodes in the tree and in top image is their visualization.
The hierarchical tree of facial features and theirs attributes

Figure 3: Example of vertex weights for the eye. White color means weight value 1 and Black means 0.
Example of vertex weights for the left eye

3.1. Parameters extraction from images

Frontal and profile head photographs are expected as an input for the reconstruction algorithm. Therefore the human face and its properties detection should be performed separately for both images. To recognize the head and gather its properties from images two main techniques are used. Haar Cascade Classifiers based on an extended set of Haar like features [19] are employed to detect face and facial features in the front image. For this purpose classifiers trained to detect Front head region [19], Eyes positions, Nose position and Mouth position [9], and facial features proportions are used. The results of the face region and facial features detection can be seen in Figure 4. The second image processing technique used in the parameters detection phase is a Skin tone based image segmentation [14, 12, 17, 18]. The image encoding is converted into YCrCb color space and for all pixels the Cr and Cb values are evaluated. If Cr and Cb coordinates of the pixel are in a skin tone area (Figure 5a), the pixel is segmented as a skin-tone colored. By this technique all pixels are divided into skin tone pixels and non-skin tone pixels as we can see in Figure 5. Then we can analyze skin tone colored pixels and acquire the information about the head shape.

Figure 4: Face region and facial features detection by Haar Cascade Classifiers. Facial features are marked with a cross and face region with a rectangle.
Face region and facial features detection by Haar Cascade Classifiers.

Figure 5: Skin tone based segmentation. (a) Adjusted skin-tone area in CrCb color plane. Black pixels give us the information about Cr and Cb value considered as skin-colored. (b) Input image and (c) segmentation result.
Skin tone based segmentation.

A color space selection is an important choice in Skin tone based image segmentation technique. We examined three color spaces Normalized RGB, Lab and YCrCb to select one, which will give us the best segmentation results. We chose chrominance plane from each color space to have the most chrominance information stored in the two selected channels. Skin tone areas in the tested color spaces can be seen in Figure 6. Finally we chose YCrCb color space, because it gives us the most covered facial area by the skin tone segmented pixels, and we manually adjusted skin tone area in CrCb plane (Figure 5a) to achieve better segmentation result. In our implementation the skin tone area is stored in a 255x255 binary image, because Cr and Cb values can reach maximum value 255.

Figure 6: Skin tone areas (top) and segmentation result (down) in Normalized RGB (a) Lab (b) and YCrCb (c) color spaces. Skin tone areas were created by selecting skin areas in images from training set and adding skin pixel values into the skin tone area.
Skin tone areas and segmentation result.

Figure 7: Profile face and facial features detection. From input image (a) the binary image is created by the skin tone based segmentation (b). The segmented image is filtered by a median filter and moving probes are sent from head center to each direction (c) to find borders. Then a head bounding box (d) is calculated. Finally a front head contour is obtained by sending moving probes from left border to right and gathered face curve is analyzed.
Profile face and facial features detection.

To detect parameters from the profile image (Figure 7) we use the skin tone based segmentation and then we apply a median filter to smooth the segmentation result and reduce the noise. After median filtering we calculate head center by a linear interpolation of skin tone colored pixels' coordinates. We send moving probes from head center to each direction. These probes stop moving when they reach non skin tone colored pixel. After all probes stop, we calculate head bounding box by getting minimum and maximum x and y coordinate of probes. Then we obtain front head contour by sending the moving probes from the left to the right border. Probes stop if they reach skin tone colored pixel. After all probes stop, we smooth out the result curve by a median filter and we can analyze it to obtain the information about tip of the nose position, eyes and mouth position. To analyze back head contour we send moving probes from right border to left. As the input images to parameters detection could be used photographs in an optional resolution and quality, but we recommend to use images with resolution 512x512 and higher, where more information about facial features is included and high resolution texture could be created.

3.2. Parameterized model update

Updating model parameters is a key point in the 3D head reconstruction with the parameterized model. In this step the new vertex coordinates are calculated to reconstruct the 3D model of real head from input images. All features in the parameterized model based on the hierarchical tree of facial features have defined vertex weights to transform correct vertex due to the head parameters. These weights were precalculated in a training process (Figure 3). Each facial feature has also defined its own local coordinate system, which center is stored in our parameterized model and usually it is in the center of the facial feature. Rotation of local feature coordinate system is same as in global coordinate system. The positions of vertices are modified by local and global transformations.

Figure 8: The parameterized head model with a reference coordinate system aligned to the tip of the nose.
The parameterized head model with a reference coordinate system aligned to the tip of the nose.

Firstly we need to define a model coordinate system origin to perform an image space to model space position calculation. In our model a tip of the nose was selected as a reference point (Figure 8) of a 3D model coordinate system. The first step in updating model phase is a global scale transformation application. We don't change head model width in global transformations. According to model width and head aspect ratio in images we calculate vertical head scale along z coordinate and depth head scale along y coordinate as

equation1

and

equation2

where Vs is a vertical scale coefficient along z axis, Ds is a depth scale coefficient along y axis, FW2D and FH2D are head sizes in front image, PW2D and PH2D are head sizes in profile image and W3D is 3D head model width, H3D is 3D head model height and D3D is 3D head model depth in model space. After calculating Vs and Ds we scale all vertex positions in the 3D head model with those coefficients. Global scale is performed in coordinate system with origin in head center to preserve head center position. After applying the global scale transformation we translate the geometry of the head model to have the tip of the nose in the origin (0,0,0). Then we can make a local head transformations in local features coordinate systems on vertices with weights defined per each facial feature in the hierarchical tree. We calculate new features positions and sizes according to the location in front and profile image. Then we calculate a final vertex position by the linear interpolation between new features positions and their old locations.

equation2

According to the above equation we calculate the position of ith vertex Vertexi from old ith vertex position oldVertexi and new vertex position newVertexi for each vertex and each facial feature in the 3D model. We calculate new vertex coordinate from old coordinate by scaling and translating according to facial feature transformations. Final coordinates of each vertex are obtained by applying above equation to it for each facial feature transformation (scale, translate), where vertex weight for current vertex and facial feature is set as parameter p. The vertex position newVertexi is calculated by concrete facial feature transformation. After applying all local transformations according to facial features positions and sizes in images we have adjusted 3D head geometry, which shapes a head from input images.

3.3. Textures creation and mapping

The third step of our 3D head reconstruction algorithm is an automatic color texture and normal map texture creation and mapping them into the reconstructed geometry. We need these textures for enhancing the realistic appearance of rendered model and to be able to display more details by simulating local surface normals using normal mapping technique [13]. The textures are mapped to the reconstructed 3D head model geometry by transforming predefined uv mapping coordinates. Scale and translation of uv coordinates are performed on all vertices with the origin in concrete facial feature center and with linear falloff to correctly transform geometry regions of facial features according to parameters stored in hierarchical tree of facial features.

Color texture is automatically created by joining detected head areas from front and profile input images. The first step is scaling a smaller image up to have same head height as in the bigger one. Then a front head image rectangle from frontal image is joined with a profile head image rectangle. A profile rectangle is connected to the front rectangle from both left and right sides. Horizontally flipped profile image is joined from the left side. X joint coordinate is in front image left eye left border position and right eye right position and eye center in profile image. Blending between images is calculated by the linear interpolation in connection area. After image junction, known texture parts are cloned into the background texture parts. For example the hair texture is cloned into the space above head. When the color texture creation is finished, we can calculate a normal map texture from it. Grayscale copy of color texture is used as a surface height map, because it contains main head surface details information. For each pixel in grayscale image it is calculated its x direction and y direction intensity difference with the next pixel in current direction. This difference is scaled by surface height scale constant to decrease differences. We found empirically the height scale constant 0.01 in our experiments. X and Y differences are brought into account as derivatives of the image function in X and Y directions. From these derivatives we can create directional vectors and calculate image function normal as their cross product. Then we normalize obtained normal and transform its coordinates into the RGB color space for storing in the normal map texture. Comparison between manually created textures and automatically created textures can be seen in figure 9

Figure 9: Head textures comparison. Top left: color texture created automatically by our algorithm. Top right image: Manually created head color texture. Bottom left: normal map texture automatically calculated by our technique. Bottom right: Normal map texture automatically calculated by NVIDIA Normal Map filter [25].
Head textures comparison.

4. Real-time 3D head model rendering

When the 3D head model is reconstructed we would like to display it to user and enable him or her to interact with the model and optionally change the parameters to reach better precision. For making the reconstructed 3D head model rendering more realistic we can use local lighting illumination calculation. Very simple approximation of skin illumination is a local Phong lighting model [24]. It is not so computational expensive and gives us a good performance also with the slower computers. To enhance details in the rendering we can use a Normal mapping [13] technique, which simulates local object normals with a normal map texture calculated in the reconstruction phase. The Normal mapping enhances details, but it causes very hard and rough surface, because it does not calculate light transport under the skin surface.

When we want to reach realistic skin lighting, we should simulate a subsurface scattering effect caused by light scattering under the skin. We use a texture-space diffusion technique described by Simon Green in the GPU Gems book [11]. In the first step the 3D head model is rendered without the texture to texture space according to uv coordinates and lighting is calculated by a Phong model or advanced lighting calculations like the normal mapping. In the second step the result is blurred with a predefined convolution to simulate light transport under the skin. The Uniform blur only approximates subsurface light transport, because a distance between two pixels is in the texture space different than in the 3D world space. In the third step the model is rendered with the color texture and lighting computed in previous steps. The Light transport of different color channels could be simulated variously to create inner material light coloring, like soft red color from blood under the skin. Rendering techniques results comparison could be seen in Figure 10.

Figure 10: Head rendering result with techniques (a) Phong illumination model, (b) normal mapping and (c) texture-space diffusion. Detail rendering (top) and whole head (bottom).
Head rendering result

5. Results

We incorporate our reconstruction algorithm into the 3D Head Modeling system, which consists of the three main phases (Figure 11). In the first phase the input images are loaded, a human head is detected in both images and the textured 3D head model is created. Then the reconstructed model is rendered in second phase by using the real-time rendering techniques, which simulate skin lighting. In the third phase the model can be exported to the Collada [7, 5] format for further use in another application. The texture is also exported with a model given. One of our goal in the designing phase of the 3D Head Modeling System was to make it easy usable and to make the reconstruction process simple. User can reconstructs the 3D head model in the three basic steps. In the first one He or she loads the front head photograph, in the second step the user loads the profile head photograph and in the third step the reconstruction process is started. After the loading input images into the modeling system, it detects facial features positions and head attributes automatically from input images, but it also allows user to adjust detected positions manually to enhance reconstructed model precision. User can adjust facial features positions also after the reconstruction and run algorithm again to improve the result. Screenshot of created modeling system can be seen in figure 12

Figure 11: Three main phases of the modeling system.
Three main phases of the modeling system

Figure 12: 3D Head Modeling System Screenshot.
3D Head Modeling System Screenshot

The proposed modeling system was implemented in C++ programming language using OpenCV [2] library in detection phase and OpenGL [3] library to render the reconstructed head model. Glsl shading language [4] was used to implement shaders calculating Phong model, normal mapping and texture-space diffusion lighting techniques.

Table 1: Frame rates in rendering the reconstructed 3D head model with different rendering techniques.
Lighting Calculation fps
No shader
Phong lighting model
Normal mapping
Texture-space diffusion
65
64
42
26

Table 2: Reconstruction quality evaluation and speed comparison. Our solution, morphable model [8] and CyberExtruder [16] solution were tested.
Method Quality Reconstruction time
Morphable Model
CyberExtruder
Our method
89%
82%
57%
50 minutes
4 seconds
4 seconds

The system was tested on AMD Athlon X2 1.9 Ghz, 2GB RAM computer with NVIDIA GeForce 7150 graphic card. Detection in a front image takes 1.54 seconds in average and detection in a profile image takes 1.8 seconds in average on this hardware configuration. The 3D head model updating process takes 4 seconds on average. The Reconstructed 3D head model was rendered at interactive frame rates reported in Table 1. In each tested rendering technique we used the textured model. Quality of a reconstruction was measured by statistics of subjective human evaluation. Respondents were asked to evaluate the quality of 3D head reconstruction from concrete front and profile images in percentage. Three different approaches were compared by this evaluation (Table 2). Final approach quality was figured out as an average of respondents answers. Quality of our solution could be improved in future work by adding more head attributes to parameterized model and by enhancing detection precision. Example of front and profile source photographs, reconstructed head geometry and textured model with Phong illumination could be seen in Figure 13.

Figure 13: Example of front (a) and profile (b) source photograph, reconstructed head geometry (c) and textured model (d).
Example of reconstruction

6. Conclusion and Future Work

We created the automatic image based 3D head modeling system, which is capable of reconstruct the 3D head model from 2D images. This system creates 3D head model automatically, but it allows user to change reconstructed model to reach better precision. The 3D head modeling system renders the reconstruction result by using the advanced skin illumination calculation techniques. Finally, user can export reconstructed high polygonal model for use in the other applications. New parameterized head model based on the hierarchical tree of facial features, which defines vertex weights for each feature to set transformation intensity, was developed in this work. This model provides easy feature position and attributes estimation for modeling system and for the user. Our parameterized model consists of 32672 triangles and allows modeling system to reconstruct high resolution model. We introduce a novel method for detecting head parameters from image with use Haar Cascade Classifiers and skin-tone based image segmentation in this work. This method gives us the correct results to achieve good precision with updating a parameterized model. To load parameterized head geometry and render the reconstructed model we created a Collada rendering engine, which can be used in many other works to easily load and render digital content on GPU.

Many extensions could further improve our modeling system, because the application is object based and allows updating or changing each reconstruction part. More facial features controllers could be added and better head parameters detectors could be implemented to enhance the reconstruction precision and speed. In a future work we are planning to improve the reconstruction precision with optical flow based techniques used in the morphable model approach [8]. Reconstruction precision could be improved also by adding more head attributes to the parameterized model. We are aiming to develop a hair reconstruction technique, which could update the modeling system to give full head and hair reconstruction result. We are planning to use OpenCL [1] library to move computation to the GPU.

7. Acknowledgments

I would like thank doc. RNDr. Andrej Ferko, PhD. for his helpful guidance and support in this work, Jörgen Ahlberg for providing his parameterized face model report and Michal Šukola, Tomáš Matúš and others for providing their photographs to development and presentation purposes. I thank to anonymous reviewers for their many valuable comments and suggestions. This work has in part been funded by Slovak Ministry of Education VEGA No. 1/0763/09.

8. References

[1] OpenCL [online]. [quot 2010-04-10]. Available on www: <http://www.khronos.org/opencl/>.

[2] OpenCV [online]. 2010. [quot 2010-04-07]. Available on www: <http://opencv.willowgarage.com/wiki/>.

[3] OpenGl [online]. 1997. [quot 2010-04-07]. Available on www: <http://www.opengl.org/>.

[4] OpenGL Shading Language [online]. [quot 2010-04-07]. Available on www: <http://www.opengl.org/documentation/glsl/>.

[5] COLLADA - Digital Asset Exchange Schema for Interactive 3D [online]. 2009. [quot. 2009-12-10]. Available on www: <http://www.khronos.org/collada/>.

[6] Ahlberg, J. 2001. Candide-3 – an updated parameterized face. Report No. LiTH-ISY-R-2326, Dept. of Electrical Engineering, Linköping University, Sweden, 2001.

[7] Arnaud, R., Barnes, M.C. 2006. COLLADA Sailing the Gulf of 3D Digital Content Creation. Wellesley: A K Peters, 2006. 237 p. ISBN 1-56881-287-6.

[8] Blanz, V., Vetter, T. 1999. A morphable model for the synthesis of 3D faces In SIGGRAPH '99: Proceedings of the 26th annual conference on Computer graphics and interactive techniques. New York: ACM Press/Addison-Wesley Publishing Co., 1999. p. 187-194. ISBN 0-201-48560-5.

[9] Castrillión-Santana, M., Déniz-Suárez, O., Antón-Canalís, L., Lorenzo-Navarro, J. 2008. Face and Facial Feature Detection Evaluation, Performance Evaluation of Public Domain Haar Detectors for Face and Facial Feature Detection In International Conference on Computer Vision Theory and Application. INSTICC, 2008. P 167-172. ISBN: 978-989-8111-21-0. [online], [quot 2010-01-10]. Available on www: <http://alereimondo.no-ip.org/OpenCV/uploads/37/ CameraReadyPaper63.pdf>.

[10] Faggian, N., Paplinski, A.P., Sherrah, J. 2006. Active Appearance Models for Automatic Fitting of 3D Morphable Models In AVSS '06: Proceedings of the IEEE International Conference on Video and Signal Based Surveillance. Washington: IEEE Computer Society, 2006. p. 90-95. ISBN 0-7695-2688-8.

[11] Green, S. 2004. Real-Time Approximations to Subsurface Scattering In Fernando, R. GPU Gems: Programming Techniques, Tips and Tricks for Real-Time Graphics [online]. Indiana: Addison-Wesley Professional, 2004. ISBN 03-212-2832-4. [quot 2009-12-11]. Available on www: <http://http.developer.nvidia.com/GPUGems/gpugems_ch16.html>.

[12] Hadid, A., Pietikäinen, M., Martinkauppi, B. 2002. Color-Based Face Detection using Skin Locus Model and Hierarchical Filtering In ICPR '02: Proceedings of the 16th International Conference on Pattern Recognition (ICPR'02). Washington: IEEE Computer Society. vol. 4, 2002. p. 196-200. ISBN:0-7695-1695-X.

[13] Heidrich, W., Seidel, H. 1999. Realistic, hardware-accelerated shading and lighting In SIGGRAPH '99: Proceedings of the 26th annual conference on Computer graphics and interactive techniques. New York: ACM Press/Addison-Wesley Publishing Co, 1999. p. 171-178. ISBN:0-201-48560-5.

[14] Hsu, R., Abdel-Mottaleb, M., Jain A.K. 2002. Face detection in color images In IEEE Transactions on Pattern Analysis and Machine Intelligence. Washington: IEEE Computer Society. vol. 24, 2002. p. 696-706.

[15] Hu, Y., Yin, B., Cheng, Gu, Ch. 2004. An improved morphable model for 3D face synthesis In Proceedings of International Conference on Machine Learning and Cybernetics.Washington: IEEE Computer Society. vol. 7, 2004. p. 4362-4367. ISBN 0-7803-8403-2.

[16] Ives, J.D. Method for Generating a Three-Dimensional Representation From a Single Two-Dimensional Image and its Practical Uses. [online]. Newark: CyberExtruder.com, Inc. [quot 2009-12-11]. Available on www: <http://www.cyberextruder.com/UserData/downloads/Method%20for%20Generating%20a%203D%20Model_FinalDraft1E.pdf>.

[17] Kim. Ch., Yi, J. 2006. An Optimal Chrominance Plane in the RGB Color Space for Skin Color Segmentation In International Journal of Information Technology. World Scientific Publishing. vol. 12, 2006. No. 7, p. 73-81.

[18] Kuchi, P. Gabbur, P., Bhat, P.S., David. S., Smieee, S. 2002. Human Face Detection and Tracking using Skin Color Modeling and Connected Component Operators In IETE journal of research. New Delhi: Institution of Electronics and Telecommunication Engineers. vol. 48, 2002. No. 3-4, p. 289-293.

[19] Lienhart, R., Maydt, J. 2002. An extended set of Haar-like features for rapid object detection In Proceedings of International Conference on Image Processing. Washington: IEEE Computer Society. vol. 1, 2002. p. 900-903. ISBN: 0-7803-7622-6.

[20] Lin, K., Wang, F., Yao, J., Zhou, Ch. 2008. Human Head Modeling Based on an Improved Generic Model In FSKD '08: Proceedings of the 2008 Fifth International Conference on Fuzzy Systems and Knowledge Discovery. Washington: IEEE Computer Society. vol. 4, 2008. p. 300-304. ISBN 978-0-7695-3305-6.

[21] Liu, Z., Zhang, Z., Jacobs, C., Cohen, M. 2000. Rapid modeling of animated faces from video In The Journal of Visualization and Computer Animation [online], 2000, vol. 12, No. 4. [quot 2009-12-11]. Available on www: <http://research.microsoft.com/pubs/69797/tr-2000-11.pdf>.

[22] Rydfalk, M. 1987. Candide, a parameterized face. Report No. LiTH-ISY-I-866, Dept. of Electrical Engineering, Linköping University, Sweden, 1987.

[23] Viola. P., Jones., M.J. 2001. Rapid Object Detection using a Boosted Cascade of Simple Features In Proceedings of the Computer Vision and Pattern Recognition. Washington: IEEE Computer Society. vol. 1, 2001. p. 511-518. ISBN: 0-7695-1272-0.

[24] Žára, J., Beneš, B., Sochor, J., Felkel, P. 2004. Moderní počítačová grafika. Brno: Computer Press, 2004. 609 p. ISBN 80-251-0454-0.

[25] NVIDIA Plug-ins for Adobe Photoshop [online]. 1997. [quot 2010-04-07]. Available on www: <http://developer.nvidia.com/object/photoshop_dds_plugins.html>.