Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kimiaak/mobilenetv2-project
https://github.com/kimiaak/mobilenetv2-project
Last synced: 8 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/kimiaak/mobilenetv2-project
- Owner: KimiaaK
- License: gpl-3.0
- Created: 2024-10-12T23:52:17.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2024-10-21T17:41:24.000Z (29 days ago)
- Last Synced: 2024-10-22T08:06:02.885Z (28 days ago)
- Language: Python
- Homepage: https://www.mdpi.com/2304-8158/13/12/1869
- Size: 28.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MobileNetV2-Project
# MobileNetV2 Strawberry Disease DetectionThis project applies MobileNetV2 for detecting strawberry diseases using a deep learning model. The original code has been modularized for professional deployment, including Dockerization.
## Project Structure
- `models/` contains the MobileNetV2 model code.
- `scripts/` contains training, evaluation, and utility scripts.
- `notebooks/` contains the original Jupyter notebook.
- `main.py` runs the primary functionality for making predictions.
- `Dockerfile` and `.dockerignore` are used for containerization.## Getting Started
### Prerequisites
- Docker
- Python 3.9### Setup
1. Clone the repository:
```sh
git clone https://github.com/yourusername/MobileNetV2-Project.git
cd MobileNetV2-Project
```2. Install dependencies:
```sh
pip install -r requirements.txt
```3. Build and run the Docker container:
```sh
docker build -t mobilenetv2-project .
docker run -p 8080:8080 mobilenetv2-project
```## Usage
### Training the Model
To train the model on your dataset, use the following command:
```sh
python scripts/train.py --data data/dataset_path --epochs 300 --batch_size 16 --learning_rate 0.001
```- `--data`: Path to the training dataset.
- `--epochs`: Number of training epochs (default is 300).
- `--batch_size`: Batch size for training (default is 16).
- `--learning_rate`: Learning rate for the optimizer (default is 0.001).### Evaluating the Model
To evaluate the trained model on a test dataset, use the following command:
```sh
python scripts/evaluate.py --data data/test_dataset --model models/mobilenetv2.pth
```- `--data`: Path to the evaluation dataset.
- `--model`: Path to the trained model file (`mobilenetv2.pth`).This script will print a classification report, display a confusion matrix, and calculate accuracy to help assess the model's performance.
### Making Predictions
To use the trained model to make predictions on a new image:
```sh
python main.py --image path/to/sample_image.jpg
```- `--image`: Path to the image for which you want to make a prediction.
## Project Components
### Dockerfile
The `Dockerfile` is used to create a Docker container for the project. It sets up the Python environment, installs dependencies, and runs `main.py`.
### .dockerignore and .gitignore
- **.dockerignore**: Specifies which files and directories should be ignored when building the Docker image (e.g., cache files, notebook checkpoints).
- **.gitignore**: Specifies which files should be ignored by Git (e.g., compiled Python files, environment directories).## Evaluation Metrics
The evaluation script (`evaluate.py`) provides the following metrics:
- **Accuracy**: The ratio of correctly predicted samples to the total samples.
- **Classification Report**: Precision, recall, F1-score, and support for each class.
- **Confusion Matrix**: A visualization of how well the model is classifying each class, helping identify misclassifications.