SatProc: an open-source library to train and deploy Deep Segmentation Neural Nets for geospatial imagery.
2021-09-28, 09:00–13:00, María Elena Walsh

Training deep learning models with geospatial imagery is hard. You need to transform the imagery to feed the neural network taking into account the geospatial side of the data. In this workshop, we show how to easily train and deploy deep segmentation networks like U-NET with geospatial imagery using the open-source library SatProc.


SatProc library aims to detect and classify different objects of interest using satellige images and Deep Neural Networks, such as burned areas or informal assessments through massive areas.

It is divided into four main steps. The former, downloads and preprocessing images for subsequent training of the model and future predictions over them. The second step is training the machine learning model. The third one is model prediction over a region of interest. And the last one results in post-processing and presentation. Each one is described in more detail next. The purpose of image pre-processing is to generate good quality and quantity set of images to train the model. Besides, as the model consists of a classification and segmentation neural network, we need a binary mask for each image that determines the object of interest to be classified in it.

This Python (with TensorFlow) library has several features such as the creation of data sets for model training, which contains two folders. The first one with the images themselves and another one with a binary mask of the same size with delimitations of the object of interest. Training and prediction can be done with images of different sizes and intensities which can improve model quality and performance. The tool considers an original image and vectorial layers with the object of interest. In case we work with many categories then the mask will have a binary band for each one (N-Dim). The Model is a neural network with a U-Net architecture. It segments and classifies objects. On the one hand, the input is a set of images and masks, where each one is an N-dimensional binary image with many bands as categories to be analyzed. On the other one, the output of the model is an N-dimensional set of images in which each dimension corresponds to the prediction of each category. This means that the bands show a value between zero and one for each pixel.

This model has the advantage to enable adding extra information to an image like a GIS layer to improve model performance. During the prediction process, all images of the area of interest are processed by the model. In this step, the image can have different sizes compared to the training data set as the model learns the patrons defining the objects, beyond their size. The post-process focuses on the quality of the results. In this step, the prediction noise is removed. In some cases, the results are converted into an Shp file to extract useful information such as the total area of prediction or to present them together with a map or other information layer.


Authors and Affiliations

María Roberta Devesa, Dymaxion Labs
Damián Silvani, Dymaxion Labs
Federico Bayle, Dymaxion Labs

Level

3 - Medium. Advanced knowledge is recommended.

Requirements for the Attendees

Download sample satellite imagery.

Access to GitLab or GitHub.

Knowledge of:
GDAL
Python
TensorFlow
Machine Learning

Senior Data Scientist in Dymaxion Labs and Ph.D. in Physics (High Energy Experimental Physics) from the University of Buenos Aires.