This project is an image classifier that can identify 103 different species of flowers using deep learning techniques. It was developed as part of the requirements for an online nanodegree program offered by Udacity.
• Challenge: Udacity AI programming with Python Nanodegree project for deep learning module titled 'Image Classifier with Deep Learning' attempts to train an image classifier to recognize different species of flowers. Identifying different species of flowers is a common task in botany and horticulture. However, manually classifying flowers can be a time-consuming and error-prone process, especially when dealing with a large number of species. To address this, we developed an image classifier that utilizes deep learning to accurately recognize 103 different flower species. In practice, we had to train this classifier, and then export it for use in our application. We used a dataset of 103 flowers of distinct categories.
• Preprocessing: The raw images were preprocessed to ensure consistency and improve the model's performance. This includes resizing, normalizing, and augmenting the training data. Model Architecture: A deep CNN model was designed and trained using popular deep learning frameworks like TensorFlow or PyTorch. The model architecture consists of several convolutional layers, pooling layers, and fully connected layers.
• Training and Validation: The model was trained using the preprocessed training data and validated using a held-out validation set to monitor for overfitting and tune hyperparameters.
• Evaluation: The trained model was evaluated on a separate test set to assess its performance in classifying the 103 flower species. Accuracy was measured to check the model's effectiveness.
• Result: Using the following software and Python libraries: Torch, PIL, Matplotlib.pyplot, Numpy, Seaborn, Torchvision. Thus, achieved an accuracy of 91% on the test dataset as a result of the above approaches. Performed a sanity check since it's always good to check that there aren't obvious bugs despite achieving a good test accuracy. Plotted the probabilities for the top 5 classes as a bar graph, along with the input image.
• Usage: Due to the need to avoid malpractices like plagiarism, I cannot share the complete code for this project. However, I'm happy to discuss the high-level approach and provide insights into the various components and techniques used. If you're interested in learning more or collaborating on a similar project, please don't hesitate to reach out.
Software and Libraries This project uses the following software and Python libraries: NumPy, pandas, Sklearn / scikit-learn, Matplotlib (for data visualization), Seaborn (for data visualization)