News
Change Detection tool - Achievements and Ongoing challenges on the Sentinel-2 Satellite Images use case
The use case of Thales Alenia Space consists in developing an application of change detection areas on Earth Observation satellite images time series. Since the pipeline and the environment of the change detection building block have already been presented in the Newsletter 3, we will focus here on the achievements in term of performance and the current studies in the context of EVOLVE project.
Performances
The performances in term of computing time are presented in the table below. Before the beginning of Evolve project, the change detection tool put almost half an hour to generate one change detection map on Thales Alenia Space computer. This computing time has been seriously reduced with the use of Dask scheduler until achieve a little more than three minutes on one pair of Sentinel-2 products. Then, the integration of Kafka stream has allowed to automate the change detection pipeline and get a distributed asynchronous architecture, what has provided a reduction of the average computing time when several change detection maps are generated.
Technologies | Computing Time | Change Detection Maps |
Nothing | ~30 min (on TAS premises) | 1 |
Dask | 3min15s | 1 |
Dask + Kafka | 6min30s | 5 |
These technologies discovered and implemented in EVOLVE project have allowed the change detection building block to deal with a big quantity of data.
Other studies
Thales Alenia Space team investigates other subjects to keep improving the change detection tool performances:
- Optimization of the resources used by the AI algorithm:
In the framework of a collaboration between Evolve and the Center of Excellence for Performance and Productivity (PoP2), work has been done to monitor the time spent on each part of our main algorithm in order to dimension and optimize it. The profiling has been done thanks to the package “pyinstrument”, that provides a memory copy (e.g. save pickle, write pickle wait threading, etc…) as a function of time. Since then, other configurations are being studied (number of GPUs, number of GPU jobs, etc…) in order to achieve the best utilization of these resources.
- Monitoring of the resources used by the change detection tool:
Prometheus monitoring solution and Grafana dashboard are already deployed on Evolve cluster. Here, the goal is to display a Grafana dashboard with the resources used in terms of CPU (in core) and memory occupied (in MB) for only the pods devoted to change detection tool. As the change detection environment is quite complex (e.g. multiples pods are generated, several pods have only a control function), monitor the resources will allow to better understand the operation of the change detection tool and evaluate the performances of this environment in term of resources consumed.
- Utilizing FPGA acceleration:
For the moment, only one meeting has been organized to study the possibility to use FPGA acceleration for the change detection tool. The next step is to try to convert the change detection neural network model in order to deploy it on FPGA. FPGAs have adaptable architecture, enabling additional optimisations for an increase in throughput. Thus the possible volume of calculations makes FPGAs a viable solution to GPUs.
- Display result on Weblyzard API:
Weblyzard has provided a visualization subsystem as a micro-service. To interface with this service, a module has been added to convert geoTiff change detection maps generated by the tool in geoJson change detection file. Today, this module has been encapsulated inside a Docker container and an image has been pushed to Evolve Docker registry, but it does not communicate with the other modules of the change detection tool. Thus, the end users have to launch this module manually.