Building and Training a Convolutional Neural Network in Keras
KEY CONCEPTS:
Develop a facial expression recognition model in Keras
Build and train a convolutional neural network (CNN)
Deploy the trained model to a web interface with Flask
Apply the model to real-time video streams and image data
PROJECT PURPOSE:
In this 2-hour long project-based course from Coursera Project Network, I built and trained a convolutional neural network (CNN) in Keras from scratch to recognize facial expressions. The data consisted of 48x48 pixel grayscale images of faces. The objective was to classify each face based on the emotion shown in the facial expression into one of seven categories (0=Angry, 1=Disgust, 2=Fear, 3=Happy, 4=Sad, 5=Surprise, 6=Neutral). I used OpenCV to automatically detect faces in images and draw bounding boxes around them. Once the CNN was trained, saved, and exported, the trained model predictions were directly served to a web interface and performed real-time facial expression recognition on video and image data.
PROJECT OUTLINE:
Task 1: Introduction and Overview
Task 2: Explore the Dataset
Task 3: Generate Training and Validation Batches
Task 4: Creating a Convolutional Neural Network (CNN) Model
Task 5: Train and Evaluate Model
Task. 6: Represent Model as JSON String
Task 7: Create a Flask App to Serve Predictions
Task 8: Design a HTML Template for the Flask App
Task 9: Use Model to Recognize Facial Expressions in Videos
PROJECT SCREENSHOTS:
HELPFUL LINKS: