"RoadTrip": Proyecto de I+D en colaboración con
Satellogic
Ignacio Pardo, Tomislav Separovic, Tomas Spognardi, Valeria Wodka
TIC - Sede Belgrano ignacio.pardo.ort@gmail.com, tomislavseparovic@gmail.com,
tomas.spognardi@gmail.com, valewodka@gmail.com
Abstract:
Debido a la llamada “democratización del espacio”(1),
la humanidad dispone de una gran cantidad de
imágenes satelitales de todo el planeta en tiempo real.
Estas contienen datos que resultarían valiosos para
diversas aplicaciones, como la fertilidad del suelo en
una granja, el congestionamiento de las calles en una
ciudad o hasta la detección temprana de incendios
forestales. La única razón por la cual no aprovechamos
esta posibilidad es la falta de métodos eficaces para
analizarlas. Una alternativa sería extraer la
información manualmente, resultaría imposible debido
al volumen de la misma. Nuestro proyecto consiste en
desarrollar herramientas que procesen estas imágenes
automáticamente con el objetivo de ayudar a mejorar
la calidad de vida de la población. Para lograrlo,
llegamos a un acuerdo de trabajo conjunto con
Satellogic, una compañía argentina que planifica tener
una constelación de 300 satélites que generen un mapa
de la Tierra en tiempo real. Ellos nos proveen las
imágenes necesarias para entrenar a nuestros
algoritmos de inteligencia artificial.
Introducción
RoadTrip consiste en crear un mapa generado en
tiempo real basándose en imágenes de Satellogic. Esto
permitiría poder luego detectar posibles catástrofes y
modificaciones en el instante que ocurren. Nuestro
proyecto actúa como plataforma para estos futuros
desarrollos. Es en estas imágenes satelitales donde
nuestras herramientas reconocen caminos (calles, rutas,
caminos de tierra, etc.) y medios de transporte sobre
dichos caminos, utilizando algoritmos de Machine
Learning y un gran volumen de datos, podemos
entrenar a un programa capaz de identificarlos. El
proyecto comenzó como un trabajo de investigación, y
luego de haberle presentado nuestro PMV -Producto
Mínimo Viable- al ingeniero David Vilaseca (2)
(responsable del area de Investigacion y Desarrollo de
la empresa Satellogic), lo convertimos en un producto.
Herramientas y Tecnologías:
Machine Learning:
Es un campo de la informática dedicado a utilizar
técnicas estadísticas y matemáticas que permiten que un
programa aprenda alguna tarea, es decir, la realice sin
ser programada explícitamente. Para realizar este
aprendizaje, debe de disponer de un gran dataset . Es la
forma más efectiva de reconocer y clasificar
características abstractas de las imágenes.
Computer Vision:
Se denomina Computer Vision a la disciplina
relacionada con el análisis de alto nivel de imágenes, y
es el proceso total que le aplicaremos a las imágenes
satelitales.
Redes Neuronales(3):
“Son un modelo computacional basado en un gran
conjunto de unidades neuronales simples de forma
aproximadamente análoga al comportamiento
Premio Sudilovsky Busel Escuela Técnica ORT
Página 1 de 3
observados en los axones de las neuronas en los
cerebros biológicos ”. La información de entrada
atraviesa la red neuronal produciendo unos valores de
salida a modo de predecir lo estimado.
Figura 1.
Las redes neuronales actúan cómo cualquier función
matemática: reciben un conjunto de valores numéricos
(en nuestro caso reciben la intensidad de los canales de
cada píxel de las imágenes) y devuelven otro. En el
medio existen varias capas de “neuronas”
interconectadas que realizan operaciones matemáticas
para obtener un “valor de activación”. La ecuación que
determina ese valor en cada neurona de una capa es:
𝐴 = 𝑓
𝑖 = 0
|𝑎|
𝑤
𝑖
𝑎
𝑖
( )
+ 𝑏
( )
Donde a es el conjunto de neuronas de la capa anterior,
w es el conjunto de pesos que tiene cada una de las
conexiones, b un valor constante de la capa, llamado
“bias”, y f una función no lineal (como por ejemplo
tanh).
Estos pesos y bias empiezan teniendo valores
aleatorios. Para “entrenar” a las redes, se necesita un
conjunto de entradas con sus salidas esperadas
correspondientes, mediante las cuales la red luego
“aprende” el patrón. Para lograrlo, primero se aplican
las entradas a las redes, obteniéndose así un conjunto de
salidas. Luego se calcula el error existente entre las
salidas esperadas y las obtenidas, usando por ejemplo el
siguiente método:
𝐸(𝑠) =
1
2
𝑠
𝑒
𝑠
| || |
2
Donde s
e
es un vector que contiene las salidas esperadas
y s las salidas obtenidas. Una vez se tiene esta función
debemos intentar minimizarla, lo cual se logra al tomar
las derivadas parciales con respecto a cada en peso en la
capa anterior, lo que nos permite calcular el gradiente
de la función de error. Este gradiente apunta en la
dirección en la que la función crece, así que mover los
valores en la dirección contraria nos permite ajustar
cada peso y activación (para ajustar las activaciones, se
debe realizar el mismo proceso en la capa anterior) de
forma tal que la función disminuya. Esto tiene el efecto
de encontrar un mínimo local de la función, es decir,
minimizar el error.
Nosotros utilizaremos una variante de este modelo: las
redes neuronales convolucionales (CNN). Estas son
idénticas a las normales excepto que en vez de
interconectar cada neurona con todas las anteriores, se
conectan solo entre nodos cercanos. Esto suele ser útil
en el campo de Computer Vision porque generalmente
las relaciones entre píxeles son locales, es decir, no hay
mucha relación entre píxeles lejanos en la imagen.
SLIC:
Es una algoritmo de segmentación en super píxeles.
Segmentar una imagen significa separarla en distintas
regiones de píxeles cercanos en distancia o color.
Utiliza el método k-means sobre un espacio de 5
dimensiones, compuesto por los 3 canales de la imagen
y las 2 dimensiones espaciales. Es más rápido e igual de
preciso que métodos anteriores.
Python:
Es el lenguaje de programación que usamos para llevar
a cabo el desarrollo del proyecto. Optamos por este ya
que dispone de soporte y documentación para librerías
y frameworks de Machine Learning. Además, es el
mismo que los desarrolladores en Satellogic usan en la
práctica. Aunque cuenta con la ventaja de tener
abstracciones de alto nivel que facilitan el desarrollo, al
ser un lenguaje interpretado es más lento que lenguajes
compilados como C y C++.
Tensorflow:
Es una librería open source desarrollada por google en
Python que contiene varias funciones para facilitar la
programación de modelos de inteligencia artificial.
Varias partes de la misma vienen pre-compiladas, lo
que la hace mucho más rápida que el resto de Python.
Desafío y Desarrollo.
El proyecto lo realizaremos entrenando una red
neuronal convolucional profunda, donde las neuronas
corresponden a campos receptivos de una manera muy
similar a las de las neuronas en la corteza visual
primaria de un cerebro biológico. Está desarrollada en
Python aprovechando la librería de Tensorflow.
Existen hoy en dia algoritmos capaces de realizar dicha
identificación de calles(4), sin embargo esto es en
imágenes de muy alta calidad y de mucha similitud al
dataset utilizado. La Figura 1. Muestra un ejemplo
realizado por Darío Pavllo, un Investigador de
Inteligencia Artificial en la empresa Facebook. Este
Premio Sudilovsky Busel Escuela Técnica ORT
Página 2 de 3
ejemplo detecta calles con una precisión de 92.89% ±
0.7%, pero al estar entrenada la red neuronal con un
dataset reducido, no es escalable a otras imágenes
satelitales.
Figura 1.
Nuestra red neuronal tiene cómo objetivo entonces
poder detectar calles, basándose en un dataset
conformado por imágenes de tamaño de 512 x 512
pixeles, con una resolución mayor que las provista por
Satellogic para así poder detectar autos que son de un
tamaño reducido.
La red neuronal para la detección de calles analizará
entonces bloques de 32 x 32 pixeles para determinar si
contienen o no calles. Estos resultados son luego
interpretados por herramientas también desarrolladas
por nosotros para generar un mapa vectorial que
contiene las calles detectadas.
Figura 2.
Por el otro lado, la red neuronal entrenada para detectar
autos, le envía los resultados de la segmentación SLIC a
una red neuronal convolucional. Este es un ejemplo del
algoritmo que desarrollamos en funcionamiento:
Figura 3.
La precisión de la red queda en evidencia en la
siguiente tabla, donde los valores corresponden a
cúmulos de píxeles:
Es un auto
No es un auto
Fue clasificado
como auto
23
7
No fue clasificado
como auto
2
1168
Conclusion
Estas nuevas tecnologías, tanto en el ámbito
aeroespacial como en el reconocimiento de imágenes e
inteligencia artificial, son de inmensa utilidad y tendrán
un gran impacto en nuestra calidad de vida y la
detección de desastres naturales, pero deben madurar.
Nuestra contribución es la de algoritmos que cumplen
una función específica de todas las posibles.
Referencias
1. https://www.lanacion.com.ar/1703019-emilian
o-kargiemanel-sonador-que-quiere-democratiz
ar-el-cielo
2. https://www.linkedin.com/in/david-vilaseca-19
91306/
3. http://www.cse.chalmers.se/~coquand/AUTO
MATA/mcp.pdf
4. https://github.com/dariopavllo/road-segmentati
on/blob/master/report.pdf
5. https://www.youtube.com/watch?v=VTRoZ1T
Ysz0&ab_channel=dariomischener
Premio Sudilovsky Busel Escuela Técnica ORT
Página 3 de 3