https://github.com/soroushesnaashari/rice-images-classification-with-cnn-using-tensorflow
A Convolutional Neural Network (CNN) project using "TensorFlow" framework to classify Rice images into five types
https://github.com/soroushesnaashari/rice-images-classification-with-cnn-using-tensorflow
cnn keras tensorflow
Last synced: 3 months ago
JSON representation
A Convolutional Neural Network (CNN) project using "TensorFlow" framework to classify Rice images into five types
- Host: GitHub
- URL: https://github.com/soroushesnaashari/rice-images-classification-with-cnn-using-tensorflow
- Owner: soroushesnaashari
- Created: 2025-01-10T16:24:19.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-03T20:22:46.000Z (over 1 year ago)
- Last Synced: 2025-03-03T21:26:53.949Z (over 1 year ago)
- Topics: cnn, keras, tensorflow
- Language: Jupyter Notebook
- Homepage:
- Size: 2.32 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Rice Classification
[](https://unsplash.com/photos/aerial-view-photography-of-rice-crops-during-daytime-cusz0Bg-5mQ)
### Overview
This project demonstrates how to build and train a Convolutional Neural Network (CNN) using TensorFlow to classify images of rice. The goal is to develop an automated image classification system that can accurately distinguish between different types of rice, a task that can be crucial in agricultural research and quality control. The project walks through data preprocessing, model design, training, evaluation and result visualization.
### Project Workflow
The project follows an end-to-end workflow:
1. **Data Acquisition & Preparation**
- ***Dataset Collection:*** Gather rice images from various sources.
- ***Data Preprocessing:*** Resize images, normalize pixel values, and (if needed) apply data augmentation to increase dataset diversity.
2. **Model Design & Implementation**
- ***CNN Architecture:*** Develop a CNN model using TensorFlow. The model typically includes several convolutional layers, pooling layers, and dense layers to extract features and perform classification.
- ***Compilation:*** Set up the model with appropriate loss functions and optimizers.
3. **Training & Evaluation**
- ***Training:*** Train the model on the prepared dataset while monitoring performance on a validation set.
- ***Evaluation:*** Assess the model using metrics such as accuracy, loss curves, and confusion matrices to understand its strengths and weaknesses.
4. **Results Visualization & Analysis**
- Plot training/validation curves to visualize the learning process.
- Display sample predictions along with actual labels to evaluate performance qualitatively.
### Key Features
- **End-to-End Pipeline:** From data loading and preprocessing to model training and evaluation.
- **Custom CNN Architecture:** Designed specifically for rice image classification.
- **TensorFlow Integration:** Utilizes TensorFlow’s high-level APIs for model building and training.
- **Data Augmentation:** Techniques implemented (if applicable) to improve model robustness by artificially expanding the dataset.
- **Comprehensive Evaluation:** Detailed analysis of model performance with metrics and visualizations.
### Results
- **Model Performance:** The trained CNN achieves competitive accuracy in classifying rice images (e.g., reaching an accuracy of **`over 99% on both models`** on the training set).
- **Visual Insights:** Training and validation loss/accuracy curves are generated to monitor overfitting and learning progress.
- **Error Analysis:** Confusion matrices and misclassified examples provide insight into the model's decision-making and help guide future improvements.
### Repository Contents
- **`rice_classification.ipynb`**: Jupyter Notebook with full code, visualizations, and explanations.
- **`Data`:** Contains the [Original Dataset](https://www.kaggle.com/datasets/muratkokludataset/rice-image-dataset/data) and you can see the cleaned dataset in notebook.
- **`README.md`:** Project documentation.
### How to Contribute
Contributions are welcome! If you'd like to improve the project or add new features:
1. **Fork the repository.**
2. **Create a new branch.**
3. **Make your changes and submit a pull request.**