Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/boemer00/edge-processing-remote-sensing
Develop a lightweight, efficient neural network model for real-time satellite image classification on cloud-based edge computing environments, focusing on robustness and adaptability.
https://github.com/boemer00/edge-processing-remote-sensing
computer-vision convolutional-neural-networks docker edge-computing mobilenet opencv optuna python remote-sensing
Last synced: about 1 month ago
JSON representation
Develop a lightweight, efficient neural network model for real-time satellite image classification on cloud-based edge computing environments, focusing on robustness and adaptability.
- Host: GitHub
- URL: https://github.com/boemer00/edge-processing-remote-sensing
- Owner: boemer00
- License: bsd-3-clause
- Created: 2023-10-25T13:37:50.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-11-12T16:02:22.000Z (about 1 year ago)
- Last Synced: 2024-01-25T18:46:48.604Z (11 months ago)
- Topics: computer-vision, convolutional-neural-networks, docker, edge-computing, mobilenet, opencv, optuna, python, remote-sensing
- Language: Jupyter Notebook
- Homepage:
- Size: 4.21 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Edge Processing in Extreme Conditions using Remote Sensing Data
![Satellite Remote Sensing](docs/renato-boemer-satellite-remote-sensing.jpeg)
This project develops a compact neural network model for real-time satellite imagery classification within cloud-based edge computing contexts. Edge computing refers to the decentralised processing of data, closer to the source of data generation, which facilitates quick response times and reduces the bandwidth needed for data transmission. While edge computing is relevant for the defence and security sectors, its utility extends to other domains including environmental monitoring, disaster response, and urban planning. This project is versatile and can have broad applications.
## Table of Contents
- [Objective](#objective)
- [Installation](#installation)
- [Docker Usage](#docker-usage)
- [Model Architecture and Training](#model-architecture-and-training)
- [License](#license)
- [Contact](#contact)## Objective
The core objective is to develop a lightweight, efficient neural network model for real-time satellite image classification on cloud-based edge computing environments.## Installation
This package uses [Poetry](https://python-poetry.org/) for dependency management and packaging.### Prerequisites
Ensure you have Poetry installed on your system. If not, install it using:
```curl -sSL https://install.python-poetry.org | python3 -```
### Setup
Clone the repository and navigate into the directory:```git clone https://github.com/boemer00/edge-processing-remote-sensing.git edge```
```cd edge```
Install the dependencies and setup the project using Poetry:
```poetry install```
### Usage
Activate the Poetry environment shell to run scripts:```poetry shell```
Run the pipeline:
```python src/pipeline/pipeline.py --n_trials=100```
Exit the shell when done:
```exit```
## Docker Usage
The project includes a Dockerfile for building a containerised environment. Install Docker on your machine following the instructions for your OS from [Docker's official site](https://docs.docker.com/get-docker/).To build the Docker image:
`docker build -t edge-model .`
To run the container:
`docker run -it --rm --name edge-model-container edge-model`
Within the Docker container, you can execute the pipeline.py script as follows:
`python src/pipeline/pipeline.py --n_trials=100`
## Model Architecture and Training
The project employs a **MobileNetV3Small**-based architecture, known for its lightweight structure and efficacy on edge devices.### Hyperparameter Optimisation
Hyperparameters are optimised using Optuna integrated with MLflow for tracking. The optimisation process is managed through a `pipeline.py` script that puts together data preparation, model training, and hyperparameter searching.### Training
The training process adopts data augmentation strategies to enrich the dataset, enhancing the model's ability to generalise from limited samples. Techniques such as rotation, translation, and scaling are applied to simulate a variety of operational scenarios.### Evaluation and Metrics
Model performance is evaluated using **accuracy** as the training set has equal number of images for each class.## License
This project is licensed under the [BSD](LICENSE).## Contact
For questions or feedback, please reach out to [Renato Boemer](https://www.linkedin.com/in/renatoboemer/).