GithubHelp home page GithubHelp logo

reynaldocruz / bootcamp-senderoverde Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 0.0 75.29 MB

Semantic Segmentation for deforestation in Bolivia.

License: MIT License

Jupyter Notebook 99.81% Python 0.19%
deeplearning deforestation resunet segmentation

bootcamp-senderoverde's Introduction

馃崅 Bootcamp-SenderoVerde 馃崅

Abstract

En la 煤ltima d茅cada una gran parte del bosque en el mundo sufri贸 una reducci贸n de 谩rea considerable, debido al crecimiento de cultivos de alimentos, deforestaci贸n y al asentamiento de comunidades humanas. Estos hechos generaron que varios organismos internacionales tomen esta problem谩tica como prioritaria, ya que las consecuencias generadas produc铆an grandes cat谩strofes ambientales. El impacto que podr铆a tener el proyecto se dar铆a en un punto com煤n que comparten ambos ODS 13 (Acci贸n por el clima) y 15 (Vida de ecosistemas terrestres). Ya que la informaci贸n que brindar铆a la plataforma, permitir铆a la protecci贸n y el monitoreo de la cobertura vegetal en 谩reas en riesgo de deforestaci贸n en territorio boliviano. Como si de un eslab贸n se tratase, la protecci贸n de esta cobertura vegetal permite la preservaci贸n de ecosistemas y biodiversidad del 谩rea de estudio. Esta preservaci贸n tambi茅n permite evitar el deterioro de mecanismos naturales para la captura de di贸xido de carbono. En el contexto boliviano esta problem谩tica es recurrente, debido a que varias extensiones de bosque reducen su 谩rea de manera continua por chaqueos, desmontes, extensi贸n de la frontera agr铆cola y actividades de deforestaci贸n ilegal. Para el desarrollo del proyecto se plantea usar im谩genes satelitales de distintas fechas dentro las regiones verdes de gran importancia de la ciudad de La Paz o otros sectores dentro de Bolivia. El proyecto llega a tener varias m茅tricas de evaluaci贸n, para los resultados en el proceso de entrenamiento se utilizar谩 la evaluaci贸n de la precisi贸n, perdida, especificidad y IoU, para la evaluaci贸n general del sistema de segmentaci贸n se utilizo la m茅trica de evaluaci贸n de mean Intersection Over Union (meanIoU).

馃殌 Funcionalidades mas importantes 馃殌

El siguiente proyecto consiste en la implementaci贸n de un sistema de segmentaci贸n en im谩genes satelitales, este cuenta con dos funcionalidades importantes.

  • El sistema es capas de reconocer el porcentaje de deforestaci贸n dentro una zona seleccionada.
  • Y tambi茅n puede realizar un an谩lisis temporal para poder predecir la deforestaci贸n futuro.

馃尣 Descripci贸n del proyecto 馃尣

馃尵 Dataset 馃尵

El dataset utilizado puede ser obtenido por este enlace, detallando este cuenta con un total de 322 datos, cada dato contiene una imagen satelital RGB y otra imagen que contiene la imagen segmentada. Respecto a las clases en total se tiene 3, el primero denotado por el color rojo [185,0,0] representa el 谩rea deforestada, el segundo denotado por el color verde [0,83,0] representa las 谩reas verdes y por 煤ltimo el color azul [0,0,45] representa objetos variados o sin etiqueta (lagos, casas, etc.).

Un problema que se corrigio fue la minima cantidad de datos que se tiene, al ser muy limitada se realiz贸 data augmentation con dos t茅cnicas la primera es Flipping y la segunda Bright Variation.

馃 Modelo 馃

El modelo utilizado es el ResUnet, m谩s informaci贸n sobre este es encuentra en este enlace. Resumiendo, este modelo es mayormente utilizado por su alto rendimiento con una cantidad baja o moderada de par谩metros, su arquitectura est谩 dividida en 3 partes. La primera es denominada encoder, este tiene como entrada una imagen RGB la cual pasa por diferentes bloques de codificaci贸n(encoders), este ayuda a la red a aprender las representaciones abstractas. Despu茅s viene el bridge que consiste en una pre activaci贸n de los bloques residuales y por 煤ltimo el decoder o decodificador, este toma al bridge y las skip connections de los diferentes bloques codificados y aprende la representaci贸n sem谩ntica, en la siguiente figura se puede apreciar gr谩ficamente los bloques y la arquitectura en general.

馃崈 Training 馃崈

Se entrenaron varios modelos (Notebooks), de los cuales dos destacaron en sus resultados, el primero es un entrenamiento de 2 clases (Binario) y el otro de 3 clases (Multiclase), comenzando por el primero se utilizaron los siguientes hiperpar谩metros:

  • Learning Rate = 1e-3
  • Batch size = 16
  • Verbose = 1
  • Epocas = 50
  • Optimizador = Adam
  • Funcion de perdida = Binary Crossentropy

Las gr谩ficas del entrenamiento pueden verse a continuaci贸n.

Modelo Binario

Para el segundo se utilizaron los siguientes hiperpar谩metros:

  • Learning Rate = 1e-4
  • Batch size = 16
  • Verbose = 1
  • Epocas = 50
  • Optimizador = Adam
  • Funcion de perdida = Categorical Crossentropy

Las gr谩ficas del entrenamiento pueden verse a continuaci贸n.

Modelo Multiclase

馃尶 Evaluaci贸n 馃尶

Como anteriormente es mencionado, se analiz贸 el modelo con la m茅trica de evaluaci贸n de meanIoU obteni茅ndose un 85.23% de precisi贸n con el modelo binario (n煤mero de clases iguales a 2) y 88.09% con el multiclase (n煤mero de clases iguales a 3).

馃尶 Modelo Binario 馃尶

馃尶 Modelo Multiclase 馃尶

馃崄 Implementacion 馃崄

Se realiz贸 un interface para que el usuario pueda utilizar el modelo con distintos sectores de los cuales se recopil贸 datos, primero se selecciona el lugar, despu茅s con los variadores se selecciona el 谩rea donde se quiere hacer el an谩lisis.

Una vez seleccionada este hace un an谩lisis de la imagen actual y temporales, generando la segmentaci贸n sem谩ntica de las 谩reas verdes y deforestadas. Adem谩s de entregar los valores porcentuales, tambi茅n entrega una proyecci贸n lineal del futuro porcentaje de deforestaci贸n.

馃尩Tecnolog铆as/Frameworks utilizados 馃尩

  • TensorFlow
  • OpenCV
  • Python 3
  • Google Colab
  • Streamlit (GUI)

馃 Instalaci贸n 馃

Para el entrenamiento, evaluaci贸n y la obtenci贸n del modelo en formato TFLite o HDF5 simplemente se puede ejecutar cualquiera de los dos (Notebooks) o puedes descargarlos conjuntamente con el dataset y despu茅s cambiar las direcciones de los archivos en el notebook manualmente y ejecutarlo localmente. Para el prototipo funcional se requiere instalar los requirements y hacer correr el programa principal.

  • pip install requirements.txt

馃崁 Creditos 馃崁

馃崅 Reynaldo Esteban Cruz Villagomez 馃崅 [email protected]

馃崈 Mario Martin Torrez Callisaya 馃崈 [email protected]

馃尩 Jorge Armando Quiroz P茅rez 馃尩 [email protected]

馃 Grisel Quispe 馃 [email protected]

bootcamp-senderoverde's People

Contributors

maritush avatar reynaldocruz avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google 鉂わ笍 Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.