The solution involved a series of iterative experiments with different convolutional neural network (CNN) architectures and techniques, including custom CNN models and state-of-the-art architectures like EfficientNet and NASNet. The development process included extensive training, fine-tuning, and optimization using methods like transfer learning, dropout layers, and data augmentation. The final model achieved an accuracy of 92.78%, exceeding the project's goal.