In this project, we explore image classification with models of increasing complexity. We start with the classic K-Nearest Neighbors (KNN) algorithm and gradually advance to more sophisticated models, including a neural network with a single hidden layer, a Convolutional Neural Network (CNN), and finally, the power of transfer learning using Xception. We utilize CIFAR-10 dataset here which has 60,000 images, belonging to 10 classes.