This document describes a facial emotion recognition system that uses convolutional neural networks (CNNs). It evaluates the performance of models based on AlexNet, VGG19, and ResNet50 on the FER2013 dataset. The best performing model is further optimized using an ensemble approach to achieve a test accuracy of 91.2%, outperforming previous methods. It first preprocesses images by rescaling pixel values between 0-1. Then it performs data augmentation on the training set, including horizontal flips and rotations. The trained models are used to classify emotions in new images into one of seven categories based on the FER2013 dataset.