This project implements various ML algorithms for mango classification.
This project implements a comprehensive machine learning system for classifying mangoes based on their ripeness levels using computer vision and various ML algorithms. Developed as the final project for CS471 (Artificial Intelligence) at CSU San Marcos.
The goal of this project is to automatically classify mangoes into different ripeness categories using image processing and machine learning techniques. The system can distinguish between:
- Ripe mangoes
- Unripe mangoes
- Very ripe mangoes
- Multiple machine learning algorithms implemented and compared
- Balanced dataset with augmented images
- Real-world testing capabilities
- Optimized model for deployment
- Comprehensive data visualization
The project includes two main datasets:
- MangoDataset_Balanced: A balanced training dataset with images categorized by ripeness
- MangoRealTestImages: Real-world test images for model validation
- Random Forest Classifier (
RandomForestAlgorithm.ipynb
) - Gradient Boosting Classifier (
GradientBoostingClassifierAlgo.ipynb
) - Deep Learning Model (
trainingMangoModel.ipynb
) - Optimized TensorFlow Lite Model for mobile deployment
cs--final-project/
├── MangoDataset_Balanced/ # Balanced training dataset
│ ├── train/
│ │ ├── Ripe/
│ │ ├── Unripe/
│ │ └── VeryRipe/
│ └── val/
├── MangoRealTestImages/ # Real-world test images
├── balacedTrainingModel.ipynb # Model training notebook
├── checkingDuplicateImages.ipynb # Data preprocessing utility
├── dataset_visualization.png # Dataset distribution visualization
├── GradientBoostingClassifierAlgo.ipynb # Gradient Boosting implementation
├── ImagesCountingBalancedGraph.ipynb # Dataset analysis
├── jpv0wo8j5_optimized_tflite_mm5zjg2km.tflite # Optimized model
├── optimizeModelAIHub.ipynb # Model optimization notebook
├── RandomForestAlgorithm.ipynb # Random Forest implementation
├── TestingWithRealData.ipynb # Real-world testing notebook
└── trainingMangoModel.ipynb # Deep learning model training
trainingMangoModel.ipynb
: Main deep learning model trainingTestingWithRealData.ipynb
: Evaluate model on real-world imagescheckingDuplicateImages.ipynb
: Data quality checksoptimizeModelAIHub.ipynb
: Model optimization for deployment
- Successfully trained multiple models for mango classification
- Achieved high accuracy on both validation and real-world test sets
- Created an optimized TensorFlow Lite model for mobile deployment
- Generated comprehensive visualizations of dataset distribution
- Python
- TensorFlow/Keras
- Scikit-learn
- OpenCV
- NumPy
- Pandas
- Matplotlib
- Expand dataset with more mango varieties
- Implement real-time classification
- Deploy as mobile application
- Add more ripeness categories
- Integrate with IoT devices for automated sorting
Eduardo Ramos
CS471 - Artificial Intelligence
CSU San Marcos
Spring 2025
This project is part of academic coursework at CSU San Marcos.
Special thanks to the CS471 course instructor and CSU San Marcos for providing the resources and guidance for this project.