Based on: 1 Facial expression recognition based on Local Binary Patterns: A comprehensive study Caifeng Shan, Shaogang Gong, Peter W. McOwan Image and Vision Computing 27 (2009) 803–816
Facial expression 2 Facial expression is one of the most immediate and powerful way for a human being to communicate emotions. Automatic facial expression analysis can impact applications in areas such as human-machine interaction and data-driven animation. High accuracy recognition of facial expression is difficult due to their complexity and variability.
Automatic facial expression recognition 3 It involves two aspects: Facial representation is to derive a set of feature from original face images, to represent faces. Local Binary Patterns are used as appearance features for facial image analysis. Classifier design. Support Vector Machine is used to classify facial expressions.
Facial expression data 4 Focus is on prototypic expression recognition. I considered 3-class recognition: Happiness Sadness Surprise And 4-class recognition, including the neutral expression.
Data preprocessing 5 The faces were normalized to a fixed distance between the eyes. Opencv Haar Classifier Cascade was used to identify the face and then the eyes in the image. The image was then resized and cropped to a 110x150 pixels image.
LPB operator 6 Original LPB operator 6 8 5 labels the pixels of an image by thresholding a 3 6 1 3x3 neighborhood of each pixel with the 2 7 4 center value and considering the results as a binary number. 1 1 0 The 256-bin histogram 0 0 of the LBP labels computed over a region 0 1 0 is used as a texture descriptor. 11000100
Extended LBP operator 7 LBP operator is extended to use neighborhoods of different sizes. Using a circular neighborhood and bilinearly interpolating values at non-integer pixel coordinates allow any radius and number of pixels in the neighborhood. R=2, P=8
Uniform patterns 8 LBP P operator produces 2 P different output values. ,R Since certain bins contains more information, it’s possible to use a subset of the 2 P patterns: A uniform pattern is a LBP pattern that contains at most 2 bitwise transitions when the binary string is considered circular, i.e. 00000000, 00001100, 10000011. Accumulating the non-uniform patterns in a single bin, produces an operator with only P(P-1)+3 bins.
The histogram 9 A histogram of the A B labeled image is used to capture the information about the distribution of the local micro-patterns. To take into account the Z shape information of faces, these are equally divided into small regions to extract LBP histogram, 0.4 the resulting histograms 0.35 0.3 are then concatenated to 0.25 form a single histogram. 0.2 0.15 0.1 0.05 0 A B … Z
Possible optimization 10 Some parameter can be optimized for better feature extraction: The LBP operator (P and R) The number of regions Following the setting of the article, I selected the LBP 8,2 operator (59-bin) and I divided the 110x150 pixels face image into 18x21 pixel regions. Therefore the images were divided into 6x7 regions and represented by the LBP histograms with the length of 2478.
Support Vector Machine 11 The basic SVM is a non-probabilistic binary linear classifier that predicts for each input, which of two possible classes the input belongs to. Given a set of training examples, each marked as belonging to one of two classes, an SVM training algorithm builds a model that assigns new examples into one class or the other. SVMs can perform a non-linear classification, mapping their inputs into high-dimensional feature spaces, using a kernel.
Kernels 12 CvSVM::LINEAR Linear kernel. No mapping is done, linear discrimination (or regression) is done in the original feature space. It is the fastest option. CvSVM::POLY Polynomial kernel: CvSVM::RBF Radial basis function (RBF), a good choice in most cases.
Results 13 Ran on a MacBook Pro 2.8GHz dual-core Intel Core i7 16GB RAM and SSD
Image database 14 Cohn Kanade DB Happiness: 176 HA Sadness: 85 20% NE Surprise: 255 41% Neutral: 354 SA 10% TOT: 870 SU 29% http://www.pitt.edu/~emotion/ck-spread.htm http://www.consortium.ri.cmu.edu/ckagree/ Some tests were done on: http://www.kasrl.org/jaffe.html
Training the SVM 15 CvSVM::train_auto Trains an SVM with Images subdivision optimal parameters. Training images are Training chosen randomly. 25% Results are the Testing average on r 75% repetitions.
3-class results - default 16 Region subdivision R P Kernel 6x7 2 8 RBF Average run time % HA SA SU 13.61s HA 89.280 0.076 10.644 SA 3.656 63.437 32.906 Total % SU 0.635 0.000 99.364 90.008
4-class results - default 17 Region subdivision R P Kernel 6x7 2 8 RBF Average run time % NE HA SA SU 41.92s NE 95.902 0.586 1.823 1.688 HA 22.439 77.091 0.000 0.470 Total % SA 44.953 0.000 52.859 2.188 84.367 SU 16.104 0.005 0.000 83.891
3-class results - linear 18 Region subdivision R P Kernel 6x7 2 8 linear Average run time % HA SA SU 3.80s HA 99.151 0.023 0.826 SA 0.359 94.969 4.672 Total % SU 0.359 0.307 99.333 98.552
4-class results - linear 19 Region subdivision R P Kernel 6x7 2 8 linear Average run time % NE HA SA SU 7.56s NE 97.797 0.064 1.538 0.602 HA 2.098 97.576 0.000 0.326 Total % SA 19.688 0.000 80.000 0.313 96.015 SU 1.839 0.271 0.078 97.813
3-class results - polynomial 20 Region subdivision R P Kernel 6x7 2 8 polynomial Average run time % HA SA SU 17.43s HA 99.159 0.045 0.795 SA 0.281 93.359 6.359 Total % SU 0.265 0.276 99.458 98.351
4-class results - polynomial 21 Region subdivision R P Kernel 6x7 2 8 polynomial Average run time % NE HA SA SU 52.66s NE 97.932 0.0489 1.470 0.549 HA 2.765 96.947 0.000 0.288 Total % SA 21.734 0.000 77.828 0.438 95.690 SU 1.922 0.266 0.141 97.672
Kernels 22 Success rate Run time 100 60 90 50 80 70 40 60 50 30 40 3-class 20 3-class 30 20 4-class 4-class 10 10 - 0
3-class results - different regions 23 Region subdivision R P Kernel 3x4 2 8 linear Average run time % HA SA SU 3.28s HA 98.886 0.515 0.598 SA 1.094 94.125 4.781 Total % SU 0.328 1.120 98.552 97.936
4-class results - different regions 24 Region subdivision R P Kernel 3x4 2 8 linear Average run time % NE HA SA SU 6.10s NE 95.315 0.177 3.305 1.203 HA 2.432 97.189 0.106 0.273 Total % SA 23.750 0.078 75.156 1.016 93.865 SU 4.057 0.016 0.120 95.807
3-class results - different regions 25 Region subdivision R P Kernel 5x6 2 8 linear Average run time % HA SA SU 3.57s HA 99.144 0.008 0.849 SA 0.047 96.109 3.844 Total % SU 0.370 0.292 99.339 98.740
4-class results - different regions 26 Region subdivision R P Kernel 5x6 2 8 linear Average run time % NE HA SA SU 6.85s NE 97.007 0.038 1.906 1.049 HA 1.174 98.333 0.000 0.492 Total % SA 22.032 0.000 77.797 0.172 95.408 SU 2.495 0.208 0.245 97.052
3-class results - different regions 27 Region subdivision R P Kernel 7x8 2 8 linear Average run time % HA SA SU 4.15s HA 99.182 0.083 0.735 SA 0.047 96.000 3.953 Total % SU 0.250 0.281 99.469 98.799
4-class results - different regions 28 Region subdivision R P Kernel 7x8 2 8 linear Average run time % NE HA SA SU 8.57s NE 97.391 0.008 1.594 1.008 HA 1.205 98.333 0.008 0.455 Total % SA 21.172 0.000 78.641 0.188 95.939 SU 1.661 0.214 0.078 98.047
Regions 29 Success rate Run time 100 10 99 9 98 8 97 7 96 6 95 5 3-class 3-class 94 4 4-class 4-class 93 3 92 2 91 1 90 - 3x4 5x6 6x7 7x8 3x4 5x6 6x7 7x8
3-class results - radius 30 Region subdivision R P Kernel 6x7 1 8 linear Average run time % HA SA SU 3.86s HA 99.212 0.000 0.788 SA 0.172 95.547 4.281 Total % SU 0.385 0.208 99.406 98.704
4-class results - radius 31 Region subdivision R P Kernel 6x7 1 8 linear Average run time % NE HA SA SU 7.82s NE 97.759 0.019 1.797 0.425 HA 1.689 97.977 0.000 0.333 Total % SA 21.188 0.000 78.188 0.625 95.950 SU 1.672 0.318 0.042 97.969
3-class results - radius 32 Region subdivision R P Kernel 6x7 3 8 linear Average run time % HA SA SU 3.83s HA 99.129 0.068 0.803 SA 0.109 94.406 5.484 Total % SU 0.094 0.443 99.464 98.516
4-class results - radius 33 Region subdivision R P Kernel 6x7 3 8 linear Average run time % NE HA SA SU 7.43s NE 97.635 0.105 1.248 1.011 HA 2.833 96.659 0.000 0.508 Total % SA 20.375 0.000 78.719 0.906 95.728 SU 1.719 0.016 0.151 98.115
Radius 34 Success rate Run time 100 9 8 99 7 6 98 5 3-class 3-class 4 97 4-class 4-class 3 2 96 1 95 - 0 1 2 3 4 0 1 2 3 4
3-class results - points 35 Region subdivision R P Kernel 6x7 2 6 linear Average run time % HA SA SU 2.81s HA 99.492 0.000 0.508 SA 0.234 95.328 4.438 Total % SU 0.432 0.620 98.948 98.536
Recommend
More recommend