Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(post): add alquimodelia post #8

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ authors:
web: https://github.com/vitornvpaixao
twitter: https://github.com/vitornvpaixao
description: "Frontend programmer and forever learner. Has been in charge of maintaining and extending our Vue.Js app."
joao:
name: JoΓ£o Santos
display_name: JoΓ£o
avatar: 'assets/images/joao.jpeg'
web: https://github.com/JotaFan
twitter: https://github.com/JotaFan
description: "Versatile programmer, deep learning modeling wizzard, and geospatial analyist. Has contributed to the pixels platform and executed many projects for Tesselo."


# Plugins
plugins:
Expand Down
70 changes: 70 additions & 0 deletions _posts/2023-02-28-our-models.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
layout: post
title: "Model Alquemy"
author: joao
categories: [ AI, code ]
image: assets/images/our-models.png
description: "An introduction to Tesselo's AI modeling, explaining the model types we used for our mapping with EO data."
featured: false
hidden: false
---
Tesselo's most successful deep learning models are presented in this post. We have
used them to do large scale land cover modeling across the world.

We have packaged our most common models into a repository that makes it easy
to use them. You can find the model references in our
[Alquimodelia](https://github.com/tesselo/alquimodelia) repository. It contains
the detailed model definitions for our most successful models. We used Keras with a
Tensorflow backend for our modeling, so the definitions are written in that famework.

The aim of Alquimodelia is to provide a user friendly way to use and change parameters
on the common model architectures used in Tesselo. The model classes can be created without
deep knowledge of keras or tensorflow. The main required parameters are the input and ouput
shape that the models will work with. Then, Arquimodelia will construct the models accordingly.

## Model types

Depending on the context and the goal of the modeling, we have used a series of
different models. They range from pixel based classifiers to time-series based
U-Net type architectures.

## Use all bands

The multispectral imagery allows us to get context from the various ranges of light available. This could help overcome coud coverage over a site, or could easily identify Land Uses.
The usage of multiple bands allowed our models to freely aquire the best out of Open Data targeting the goal at hands.

## Classifiers

Here we are giving a quick overview of the different model types and their use cases.
Detailed posts about some of the models will follow separately as well.

### Pixel based time series classifier

This classifier is quite small but very powerful for small training datasets. It is
non-sequential and based on one-dimensional convolution. It has two branches that
are detecting patterns in time series at different levels.

### Single scene image segmentation

2D U-Net or ResNet based.

#### ResNet

The ResNet architecture uses two-dimensional convolutions to provide a classification to
a given image. This has been used as a way to classify images with a single class. Or it
could be used to classify a single pixel, but with the context of the surroundings.

#### 2D U-Net

The 2D U-Net is similiar to ResNet in terms of the usage of two-dimensional convolutions, but
instead of giving one answer for each image, it responds with also an image.
Used in image classification and segmentation.

### Time series of images

#### 3D U-Net

The 3D U-Net architeture follows the same patterns and the 2D, but instead of two-dimensional
convolutions it uses three-dimensional convolutions, multiple images across time.
The answer would still be a single image, but produced with time context.
Great to surpass problems like clouds and other imagery artifacts.
Binary file added assets/images/joao.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/our-models.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.