--- license: mit library_name: keras tags: - image-classification - keras - face - face-expression - facial-expression --- # Facial expression classification model This model is designed for facial expression classification and it uses custom CNN model to classify the images into 7 different categories. This CNN Model is to classify the facial expression into one of the following categories: 1. Anger 2. Disgust 3. Fear 4. Happiness 5. Neutral 6. Sadness 7. Surprise ## Architecture Summary | Layer (type) | Output Shape | Param # | |--------------------------------------|-----------------------------|-----------------| | conv2d (Conv2D) | (None, 46, 46, 32) | 320 | | max_pooling2d (MaxPooling2D) | (None, 23, 23, 32) | 0 | | dropout (Dropout) | (None, 23, 23, 32) | 0 | | conv2d_1 (Conv2D) | (None, 21, 21, 64) | 18,496 | | max_pooling2d_1 (MaxPooling2D) | (None, 10, 10, 64) | 0 | | batch_normalization (BatchNormalization) | (None, 10, 10, 64) | 256 | | dropout_1 (Dropout) | (None, 10, 10, 64) | 0 | | conv2d_2 (Conv2D) | (None, 8, 8, 128) | 73,856 | | max_pooling2d_2 (MaxPooling2D) | (None, 4, 4, 128) | 0 | | batch_normalization_1 (BatchNormalization) | (None, 4, 4, 128) | 512 | | dropout_2 (Dropout) | (None, 4, 4, 128) | 0 | | conv2d_3 (Conv2D) | (None, 2, 2, 128) | 147,584 | | flatten (Flatten) | (None, 512) | 0 | | dense (Dense) | (None, 96) | 49,248 | | dropout_3 (Dropout) | (None, 96) | 0 | | dense_1 (Dense) | (None, 96) | 9,312 | | dropout_4 (Dropout) | (None, 96) | 0 | | dense_2 (Dense) | (None, 64) | 6,208 | | dense_3 (Dense) | (None, 7) | 455 | Total params: 306,247 (1.17 MB) Trainable params: 305,863 (1.17 MB) Non-trainable params: 384 (1.50 KB) ## Training details - Dataset: https://www.kaggle.com/datasets/manishshah120/facial-expression-recog-image-ver-of-fercdataset | Name | Value | |------|-------| | Input shape | 48x48 (48, 48, 1) | | Optimizer | Adam | | Loss | Crossentropy | | Max epochs | 200 | | Early stopping monitor | val_loss | | Early stopping patience | 12 | ## Model performance - Training Accuracy: 0.5758 (Epoch #84) - Training Loss: 1.1272 (Epoch #84) - Validation Accuracy: 0.5823 (Epoch #84) - Validation Loss: 1.1285 (Epoch #84) ### Classification report ``` precision recall f1-score support 0 0.52 0.40 0.45 491 1 0.00 0.00 0.00 55 2 0.43 0.17 0.25 528 3 0.83 0.84 0.83 879 4 0.51 0.67 0.58 626 5 0.39 0.58 0.47 594 6 0.73 0.72 0.73 416 accuracy 0.58 3589 macro avg 0.49 0.48 0.47 3589 weighted avg 0.58 0.58 0.57 3589 ``` ## Notebook Training notebook: https://www.kaggle.com/code/harkishankhuva/facial-expression-classification