The aims of this project is to detect ships from satellite images using an event-driven architecture. The project implements an end-to-end U-Net based deep learning model for detecting ships. The model predicts segmentations masks indicating the ships within the images.
The project consists of two main architectures, each containing specific pipelines for different purposes:
For training the model and consists of four components. The components are orchestrated using Airflow:
- Data Ingestion: Download the datasets from kaggle.
- Preprocessing: Apply preprocessing techiniques to the datasets.
- Model Training: Builds and trains the ship detection model.
- Model Evaluation: Evaluates the performance of the trained model.
This architecture is based on an event-driven approach for making predictions using the trained model.
- Producer: Publishes new satellite images from a Satellite API.
- Consumer: Consumes the published images and sends a Post request to the prediction API endpoint.
- API: Handles the prediction requests and returns the results.
-
Clone the Repository
git clone https://github.com/ldebele/Airbus-Ship-Detection.git cd Airbus-Ship-Detection
-
Install Docker and Docker Compose
Follow the instructions on the Docker website to install Docker and Docker Compose.
-
Build Docker images
- To build all inference-related images:
make all_inference
- To build all training-related images:
make all_training
- Start the pipelines.
-
To start the inference pipeline.
make start-inference
-
To start the training pipeline.
- Initialize the database
make airflow-init
- Running the airflow
make start-training
- Accessing the web interfaces.
-
Airflow Web Interface.
Once the cluster has started up, you can log into the web interface and begin experimenting the pipelines.
Access the Airflow web interface at http://localhost:8080 using the defult credentials: Username:
airflow
and Password:airflow
-
MLflow Web Interface
Access the MLflow experiment tracker at http://localhost:5000
-
API Web Server
Access the prediction inference API web server at http://localhost:8585
- Stop and delete containers
make cleanup
This project is licensed under the MIT License. See LICENSE file for more details.
Lemi Debela - [email protected]
Project Link: https://github.com/ldebele/Airbus-Ship-Detection