Building and Training a Convolutional Neural Network in Keras

Screen Shot 2020-10-01 at 11 23 37 AM

Screen Shot 2020-10-01 at 11 25 15 AM

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:

Screen Shot 2020-10-01 at 11 40 11 AM

Screen Shot 2020-10-01 at 11 41 51 AM

Screen Shot 2020-10-01 at 11 42 09 AM

COURSERA PROJECT LINK

PROJECT GOOGLE DRIVE

MY COURSE CERTIFICATE

Screen Shot 2020-10-01 at 11 47 38 AM