人脸识别技术应用非常有价值,比如犯罪份子识别,用户授权,安全系统,监视系统等等,其方法包括基于模版方法,基于特征方法和基于外观方法;Eigenface方法就是基于外观方法,它把面部数据投影到低维的线性子空间中,只需要很少的内存,但是计算代价较高,本文描述如何利用GPU的并行计算特性提高其计算效率。

注脚

展开查看详情

1.Parallel computer vision algorithm Parallel face recognition using eigenface

2.Review Edge detection using Sobel Filter Object recognition using Histogram

3.application Face recognition Criminal identification User authentication Security systems Surveillance systems

4.General steps Training Testing

5.Approaches Template based approach Multiple templates (different viewpoint) of each face Drawback: Huge requirements of memory and inefficient matching Feature based approach Use facial features to form a model (facial landmark) Require less memory Drawback: Fragile and difficult to extend to multiple views Appearance based approach Face images project onto a linear subspace which has lower dimension Require less memory Drawback: high computation cost Eigenface

6.Parallel computing and GPU Powerful and efficient platform: the modern GPU and SIMD GPGPUs (General Purpose GPUs) CUDA (Compute Unified Device Architecture) API (Application Programming Interface)

7.Modern GPU architecture

8.Eigenface Reduced dimension Not correspond to features Take an information theory approach Easy to implement using neural network

9.Eigenface approach Two phases: Having the initialized system – training Recognize new face – testing

10.Initial operations 1. Acquire an initial set of face images (the training set) ( gamma ), Same size Object centered Known individuals A number of images for each person Some variation in expression and lighting E.g. four images of ten people, so M = 40

11.Initial operations 2. Normalize training images Get the average face (psi): Calculate the mean centered faces (phi):

12.Initial operations 3. Calculate the covariance matrix and eigenvectors Calculate the covariance matrix: Eigen decomposition to get eigenvectors for C

13.Initial operations 4. Get the eigenfaces Use the set of M eigenvectors which best describes the distribution of data Eigenfaces( ) are constructed by multiplying eigenvectors with the mean centered faces Choose M’ best eigenfaces to form the “face space” Highest corresponding eigenvalues  

14.Seven of the eigenfaces calculated from the sixteen input images

15.Initial operations 5. Weight space construction M’ weight (omega) per training face By projecting their face images onto the “face space”  

16.Training Face 1 Mean centered Face 1 = Eigenface 1 Eigenface M’ … Training Face M Ω M’ = Weight Vector 1 Weight Vector M  

17.Template database Face space Weight space

18.Recognize new face images 1. Calculate a set of weights for the input image: Get the projected image: Distance between the input image and the face space: 2. Determine if the image is a face 3. Determine if the face is known or unknown Classify the weight pattern      

19.Parallelize

20.Parallelize Normalizing training images Construct average image Averaging each pixel of all training images Normalized (mean) image Average pixel value is subtracted from pixel values of all images Strategy: One thread per pixel Find the average

21.

22.Parallelize Covariance matrix computation Constructed by multiplying the mean image set with its transpose Strategy: One thread per value in the covariance matrix Each thread multiplies one row and one column  

23.Parallelize Covariance matrix computation Constructed by multiplying the mean image set with its transpose Strategy: One thread per value in the covariance matrix Each thread multiplies one row and one column  

24.Parallelize Eigen decomposition are the eigenvectors of C Strategy: Jacobi method  

25.Parallelize Eigen decomposition are the eigenvectors of C Strategy: Jacobi method  

26.Parallelize Eigenface computation M’ eigenfaces are constructed by eigenvectors multiply mean images Strategy: Pixel of each eigenface is computed independently Number of threads = number of eigenfaces * resolution Mean images and eigenvectors are brought into shared memory

27.Parallelize Eigenface computation M’ eigenfaces are constructed by eigenvectors multiply mean images Strategy: Pixel of each eigenface is computed independently Number of threads = number of eigenfaces * resolution Mean images and eigenvectors are brought into shared memory

28.Parallelize Weights computation For all training images Weight space = M’ * M Strategy: One thread per mean image per eigenface Number of threads = M’ * M

29.Parallelize Weights computation For all training images Weight space = M’ * M Strategy: One thread per mean image per eigenface Number of threads = M’ * M