Técnicas de aprendizaje para la identificación de rapaces por restos óseos Maching Learning techniques for the identification of raptors by ...

Página creada Zacarias Catalán
 
SEGUIR LEYENDO
Técnicas de aprendizaje para la identificación de rapaces por restos óseos Maching Learning techniques for the identification of raptors by ...
Técnicas de aprendizaje para la
 identificación de rapaces por restos óseos

   Maching Learning techniques for the
identification of raptors by skeletal remains

                         Por
           Paula Sánchez de la Nieta Gómez

            Grado en Ingeniería del Software
             Facultad de Informática

                       Dirigido por
                   Yolanda García Ruiz

                Madrid, 2020–2021
Técnicas de aprendizaje para la identificación de rapaces por restos óseos Maching Learning techniques for the identification of raptors by ...
Agradecimientos

  A mi familia, a mis amigas y compañeros de la universidad, gracias por el apoyo y los
ánimos durante todos estos años.
A Pilar Gamarra, por motivarme, por enseñarme lo que valgo y por confiar en mí más
que yo misma.
A mi tutora Yolanda García Ruiz, por acompañarme y ayudarme en todo momento. Y a
Luis Revuelta Rueda por pensar en mí para este proyecto innovador.

                                          II
Técnicas de aprendizaje para la identificación de rapaces por restos óseos Maching Learning techniques for the identification of raptors by ...
Certificado de permisos

  Que dispone del permiso de utilización de los datos incluidos en la base de datos
  (Número de registro 49/437736.9/21, Fecha: 06/07/2021 11:56).

  Que el registro del programa está en proceso de patente.

                                      III
Técnicas de aprendizaje para la identificación de rapaces por restos óseos Maching Learning techniques for the identification of raptors by ...
Índice general

                                                                                                                                          Página

1. Introducción                                                                                                                                   1
   1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                            1
   1.2. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                          2
   1.3. Plan de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                                           2

2. Machine Learning                                                                                                                                5
   2.1. ¿Qué es el Machine Learning? . . . . . . . . . .                                  .   .   .   .   .   .   .   .   .   .   .   .   .   .    5
   2.2. Aprendizaje Máquina Supervisado . . . . . . . .                                   .   .   .   .   .   .   .   .   .   .   .   .   .   .    6
        2.2.1. Algoritmos Aprendizaje Supervisado . .                                     .   .   .   .   .   .   .   .   .   .   .   .   .   .    7
   2.3. Aprendizaje Máquina No supervisado . . . . . .                                    .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
        2.3.1. Algoritmos Aprendizaje No Supervisado                                      .   .   .   .   .   .   .   .   .   .   .   .   .   .    9
   2.4. Aprendizaje Máquina por Refuerzo . . . . . . .                                    .   .   .   .   .   .   .   .   .   .   .   .   .   .   10

3. Predicción de tipo de ave                                                                                                                      12
   3.1. Materiales y métodos . . . . .           . .     . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   12
        3.1.1. Materiales . . . . . . .          . .     . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   12
        3.1.2. Métodos . . . . . . . .           . .     . . . . .            .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   12
   3.2. Comparativa de los algoritmos            del     DataSet              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   14

4. Herramienta de desarrollo                                                                                                                      16
   4.1. Pruebas de arquitectura      .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
   4.2. Arquitectura . . . . . .     .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   19
   4.3. Implementación . . . . .     .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   20
        4.3.1. Backed . . . . .      .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   20
        4.3.2. Fronted . . . . .     .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
   4.4. Despliegue . . . . . . . .   .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
   4.5. Herramientas de trabajo      .   .   .   .   .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   23

5. Descripción de la aplicación web                                                                                                               24
   5.1. Análisis de la competencia . . .             .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   24
   5.2. Escenarios de uso . . . . . . . .            .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   24
   5.3. Requisitos funcionales . . . . .             .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   25
   5.4. Interfaz de usuario . . . . . . .            .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
        5.4.1. Interfaz Principal . . . .            .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
        5.4.2. Interfaz Identificación .             .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
        5.4.3. Interfaz Contacto . . . .             .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
        5.4.4. Interfaz Recursos . . . .             .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
   5.5. Navegación entre interfaces . .              .   .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29

                                                         IV
Técnicas de aprendizaje para la identificación de rapaces por restos óseos Maching Learning techniques for the identification of raptors by ...
Técnicas de aprendizaje para la identificación de rapaces por restos óseos               UCM

6. Conclusiones                                                                           32
   6.1. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    32

7. Bibliografía y enlaces de referencia                                                   36

                                             V
Técnicas de aprendizaje para la identificación de rapaces por restos óseos Maching Learning techniques for the identification of raptors by ...
Resumen

   Actualmente, en un mundo tan comprometido por la conservación del medio ambien-
te, aparecen muchas iniciativas e incluso modos de vida para salvar el planeta, cuidar la
Tierra y acciones de cero emisiones contaminantes. En este proyecto queremos centrarnos
en la conservación de los ecosistemas autóctonos.
El proyecto surge de la necesidad de reconocer los restos óseos de aves muertas que se
encuentran en nuestra geografía, de forma rápida y eficaz. La determinación de la especie
a partir de los restos óseos es de gran ayuda a las autoridades pertinentes, ya que les
permite mantener una estadística actualizada y correcta de la población de aves y deter-
minar los impactos medioambientales que conlleva la humanización de los terrenos.
La aplicación se focaliza en la identificación de aves rapaces emblemáticas a partir de sus
restos óseos, permitiendo su uso a cualquier usuario con acceso a internet.

  Palabras clave
      Aves

      Rapaces

      Aprendizaje Máquina

      Aplicación web

      Python

      Framework

      Django

                                            VI
Técnicas de aprendizaje para la identificación de rapaces por restos óseos Maching Learning techniques for the identification of raptors by ...
Abstract

Nowadays, in a world so committed to environmental conservation, there are many initia-
tives and even ways of life to save the planet, take care of the Earth and zero polluting
emissions actions. In this project we want to focus on the conservation of native ecosys-
tems.
The project arises from the need to recognise the skeletal remains of dead birds found in
our geography, quickly and efficiently. Determining the species from the skeletal remains
is of great help to the relevant authorities, as it allows them to keep up-to-date and co-
rrect statistics on the bird population and to determine the environmental impact of the
humanisation of the land.
The application focuses on the identification of emblematic birds of prey from their ske-
letal remains, allowing its use by any user with internet access.

  Key words

     Birds

     Raptors

     Machine Learning

     Web aplication

     Framework

     Python

     Django

                                           VII
Capítulo 1

Introducción

1.1.     Motivación
En España existen 622 especies de aves, convirtiéndose en el segundo país con más bio-
diversidad de aves en Europa [1], solamente superado por Rusia. Este trabajo se centra
en las aves rapaces emblemáticas, caracterizadas por su pico curvado, sus garras, sus po-
tentes músculos en las patas y porque suelen ser de gran tamaño, que se encuentran en
nuestro país. Además, en España desde el 23 de julio de 1966 en el Boletín Oficial del Es-
tado de ley se estableció la protección legal de todas las aves rapaces, diurnas y nocturnas.

Aunque estas cifras sean positivas, no debemos relajarnos con la conservación de éstas y
el resto de especies aviares, ya que la humanización de los terrenos provoca la muerte de
muchas de estas aves. Se ha demostrado que la principal causa de mortalidad no natu-
ral de muchas aves rapaces es por electrocución, a causa de las líneas eléctricas que no
cumplen las características técnicas exigidas por el Real Decreto 1432/2008 por el cual se
establecen medidas para la protección de la avifauna contra la colisión y la electrocución
[2]. Además, hay que tener en cuenta también la caza ilegal de aves, en el que el grupo
más afectado son las aves rapaces. En España estos datos son críticos e impide en muchos
casos la recuperación de estas aves. Es necesario revertir esta situación, para garantizar la
recuperación de estas especies y el mantenimiento del ecosistema, ya que, la conservación
de las aves rapaces es clave.

En resumen, en muchos casos no es fácil determinar la causa de la muerte de las aves,
resulta muy útil conocer el número de aves que aparecen muertas en nuestros campos, así
como su especie. Sin embargo, determinar la especie de un ave no es tarea fácil, incluso
para aquellos que se consideran expertos en el tema. Esto es debido a que en muchos
casos solo se dispone de esqueletos (uno o varios huesos) encontrados en el campo por
caminantes, pastores y/o turistas. Entre las variables que permiten determinar el tipo
de ave, se encuentran las relacionadas con la fisionomía de los huesos, y en particular su
tamaño. Disponer de una aplicación que permita registrar los tipos de huesos encontrados
así como sus medidas, permitirá predecir de forma automática el tipo de ave para su
registro. En este sentido, las tecnologías actuales y el hecho de que prácticamente todo
el mundo disponga de un dispositivo móvil con acceso a internet en cualquier punto
geográfico, proporcionan una solución viable.

                                             1
Técnicas de aprendizaje para la identificación de rapaces por restos óseos            UCM

1.2.     Objetivo
Desarrollar una aplicación web que pueda utilizar cualquier usuario que tenga acceso a
internet, desde sus móviles, tabletas u ordenadores y que ayude en la labor de identificar
las diferentes especies de aves rapaces emblemáticas a través de sus restos óseos.

Objetivo 1. Definir un modelo predictivo para determinar el tipo de ave rapaz a partir
de un algoritmo de Aprendizaje Máquina (Machine Learning en inglés).

Objetivo 2. Desarrollar una aplicación web donde se incluya el modelo predictivo con una
interfaz intuitiva para el usuario, en la cual se mostrarán los resultados de la predicción.

1.3.     Plan de trabajo
La organización de este proyecto consta de una serie de etapas.

1. Estudio de distintos algoritmos de Machine Learning, supervisado y no supervisado,
con la posterior comparación entre ellos para determinar el más apropiado para el pro-
yecto.

2. Implementación de distintos modelos de Machine Learning en el lenguaje Python para
estudiar y comparar su eficiencia.

3. Investigación de las distintas tecnologías web, eligiendo aquella que se adaptó mejor
al Modelo Vista Controlador (MVC) y a la unificación entre el algoritmo implementado
y el controlador de la página web.

4. Implementación de la página web.

5. Desarrollo del diseño de las interfaces de la aplicación web.

6. Despliegue de la aplicación web en un servidor.

                                             2
Introduction

Motivation
There are 622 bird species in Spain, making it the country with the second highest biodi-
versity of birds in Europe [1], second only to Russia. This work focuses on the emblematic
birds of prey, characterised by their curved beaks, their claws, their powerful leg muscles
and because they are usually large in size, which are found in our country. Moreover, in
Spain, since 23 July 1966, the Boletín Oficial del Estado established the legal protection
of all birds of prey, both diurnal and nocturnal.

Although these figures are positive, we must not relax with the conservation of these and
other avian species, as the humanisation of land causes the death of many of these birds.
It has been shown that the main cause of unnatural mortality of many birds of prey is
electrocution, due to power lines that do not comply with the technical characteristics
required by Real Decreto 1432/2008, which establishes measures for the protection of
birds of prey against collision and electrocution [2]. In addition, illegal hunting of birds
must also be taken into account, in which the most affected group are birds of prey. In
Spain, these figures are critical and in many cases prevent the recovery of these birds. It
is necessary to reverse this situation in order to guarantee the recovery of these species
and the maintenance of the ecosystem, as the conservation of birds of prey is key.

In summary, in many cases it is not easy to determine the cause of death of birds, it is
very useful to know the number of birds that appear dead in our fields, as well as their
species. However, determining the species of a bird is not an easy task, even for those who
consider themselves experts on the subject. This is due to the fact that in many cases
only skeletons (one or several bones) found in the field by walkers, shepherds and/or
tourists are available. Among the variables that make it possible to determine the type
of bird are those related to the physiognomy of the bones, and in particular their size.
Having an application that allows the types of bones found and their measurements to be
recorded will make it possible to automatically predict the type of bird to be recorded.
In this sense, current technologies and the fact that practically everyone has a mobile
device with internet access at any geographical location provide a viable solution.

Target
To develop a web application that can be used by any user with internet access, from
their mobiles, tablets or computers, to help in the task of identifying the different species
of emblematic birds of prey through their skeletal remains.

                                             3
Técnicas de aprendizaje para la identificación de rapaces por restos óseos         UCM

Target 1. Define a predictive model to determine the type of bird of prey from a Machine
Learning algorithm.

Target 2. Develop a web application including the predictive model with an intuitive
user interface to display the prediction results.

The work plan
The organisation of this project consists of a series of stages.
1. Study of different Machine Learning algorithms, supervised and unsupervised, with
subsequent comparison between them to determine the most appropriate for the project.

2. Implementation of different Machine Learning models in the Python language to study
and compare their efficiency.

3. Investigation of the different web technologies, choosing the one that best adapted to
the Model View Controller (MVC) and the unification between the implemented algo-
rithm and the web page controller.

4. Website implementation.

5. Development of the design of the web application interfaces.

6. Deployment of the web application on a server.

                                            4
Capítulo 2

Machine Learning

2.1.     ¿Qué es el Machine Learning?
La inteligencia artificial (IA) nace en el año 1956 (New Hanpshire, Estados Unidos). El
filósofo Thomas Hobbes (1588-1679) formuló la hipótesis de que todo pensamiento es el
resultado de un cálculo. Esta hipótesis es retomada por Alan Turning, matemático, acom-
pañado por Alanzo Church (en su tesis chuch-Turing), enuncia una segunda hipótesis:
“una máquina puede hacer cualquier cálculo. Por lo tanto, si el pensamiento es el resul-
tado de un cálculo y el cálculo lo hace una máquina, ¡el pensamiento se puede simular en
las máquinas!” [3]
De esta idea surge la inteligencia artificial, que al final es más probabilidad y estadística
de lo que pensamos. Existen dos tipos:

      Aprendizaje Máquina (Machine Learning): siendo la capacidad estadística de
      dotar a las máquinas la facultad de “aprender” mediante algoritmos diseñados a
      partir de modelos estadísticos.
      Los algoritmos de aprendizaje máquina se clasifican en tres tipos dependiendo de
      los datos utilizados para su aprendizaje, véase el esquema de la Figura 2.1.

      Aprendizaje Profundo (Deep Learning): son los algoritmos capaces de mejorar
      de forma autómata. Se puede llegar a considerar una rama del aprendizaje máquina.

Los algoritmos del aprendizaje máquina han evolucionado mucho, convirtiéndose en un
reto para los programadores que desarrollan los algoritmos para cada vez ser más precisos
en una tarea en concreto. Entrenan a dichos algoritmos con grandes cantidades de datos
(cuánto mayor sea el volumen de datos más relevancia tendrá a la hora de dar respuestas
válidas), para que sean parseados, aprendan de ellos y que al final sean capaces de hacer
una predicción.
Esta capacidad de aprendizaje se emplea también para la mejora de motores de búsqueda,
la robótica, el diagnóstico médico, en la ciencia científica relacionada con el desarrollo de
la Inteligencia Artificial, entre otros.

                                             5
Técnicas de aprendizaje para la identificación de rapaces por restos óseos            UCM

 Figura 2.1: Esquema clasificación Aprendizaje Máquina. (Fuente: Elaboración propia)

2.2.     Aprendizaje Máquina Supervisado
Los algoritmos de aprendizaje supervisado, trabajan con un conjunto de datos “etiqueta-
dos”, es decir, variables de entrada de las cuales sabemos el valor de salida adecuado. El
algoritmo es entrenado con dicho conjunto de datos etiquetados permitiendo al algoritmo
“aprender” a predecir un valor de salida factible a través de las variables suministradas,
puede verse la explicación más gráficamente en la Figura 2.2.
El aprendizaje supervisado se divide en dos grandes grupos dependiendo del tipo de datos
etiquetados:

     Problemas de clasificación: El resultado de la predicción es un valor categórico,
     valor dentro de un conjunto finito de datos posibles. Por ejemplo, el género de una
     persona, si un correo es spam o no. Además, estos problemas pueden ser binarios,
     si solo clasifican en dos tipos de clases, o multi-clases, cuando pueden clasificar los
     datos en varias clases.

     Problemas de regresión: El resultado de la predicción es un valor real, un valor nu-
     mérico dentro de un conjunto infinito de valores posibles. Por ejemplo, predicciones
     meteorológicas o de crecimiento.

Este trabajo se ajusta a un problema de clasificación multi-clase, donde las clases se co-
rresponden con las distintas especies de aves rapaces.

                                            6
Técnicas de aprendizaje para la identificación de rapaces por restos óseos          UCM

Figura 2.2: Diagrama de flujo del aprendizaje supervisado. (Fuente: https://medium.
com/soldai/tipos-de-aprendizaje-automático-6413e3c615e2)

2.2.1.    Algoritmos Aprendizaje Supervisado
     Árboles de decisión. Decision trees. Algoritmo utilizado tanto en clasificación,
     como en regresión, consiste en la toma de decisiones simples que permitan recorrer
     el conjunto de datos hasta hallar un resultado correcto. Un árbol de decisiones, se
     representa con nodos, indican una característica, y hay tres tipos, nodo raíz (nodo
     superior o “padre” a todos), nodo (nodo hijo, tiene un nodo padre y nodos hijos)
     y nodo hoja (nodo que ya no tiene nodos hijos), y con ramas que representan la
     decisión tomada [4].
     En la Figura 2.3, podemos observar un ejemplo general de como se iría construyen-
     do un árbol de decisión.

     Máquinas de vectores de soporte. Support vector machines (SVM). Al-
     goritmo de clasificación y regresión, cuyo objetivo es dividir el conjunto de datos
     dados eficazmente, para elegir un hiperplano (plano que separa una colección de
     datos de distintas características) con la mayor distancia posible entre los dos vec-
     tores más cercanos ( denominado margen), para obtener el máximo margen posible.
     Cuanto mayor sea el margen, más óptimo será el algoritmo [5].
     En la Figura 2.4 se representa la elección de un hiperplano óptimo y el margen.

                                            7
Técnicas de aprendizaje para la identificación de rapaces por restos óseos             UCM

Figura 2.3: Ejemplo árbol de decisión generalizado. (Fuente: https://www.datacamp.
com/community/tutorials/decision-tree-classification-python)

Figura 2.4: Ejemplo SVM generalizado. (Fuente: https://www.datacamp.com/
community/tutorials/svm-classification-scikit-learn-python)

      Bosques aleatorios. Random Forest. Se tiene un conjunto de datos con muchas
      características, el algoritmo del árbol de decisión, visto en el apartado 2.2.1, tiende
      a ser de gran tamaño complicando el modelo y el proceso de entrenamiento, por
      tanto, se decide a utilizar el Random Forest. Basado en la técnica de “divide y
      vencerás”, división aleatoria del conjunto de datos en pequeños árboles de decisión
      independientes, cada árbol aporta un resultado y la clase más popular entre todos
      los árboles de decisión, se considera el resultado final [6].
      Véase una representación gráfica del algoritmo en la Figura 2.5.

2.3.     Aprendizaje Máquina No supervisado
Los algoritmos de aprendizaje no supervisado, al contrario que pasa con los algoritmos
de aprendizaje supervisado, no trabajan con un conjunto de datos etiquetados en los que
conocemos su valor de salida, ya que solo se conoce el tipo de datos de entrada. Por tanto,
son algoritmos interesados en aumentar la estructura de los datos disponibles para poder

                                             8
Técnicas de aprendizaje para la identificación de rapaces por restos óseos            UCM

Figura 2.5: Ejemplo Random Forest generalizado. (Fuente: https://www.datacamp.com/
community/tutorials/random-forests-classifier-python)

delimitar lo máximo posible el resultado final.
El aprendizaje no supervisado se divide en dos grandes grupos dependiendo de la forma
en la que se traten los datos de entrada:

     Problemas de agrupación o clustering: Basados en el agrupamiento de caracte-
     rísticas según unas similitudes, que pueden tener o no un sentido. Son muy utilizados
     en los sistemas de recomendación.

     Problemas de reducción de la densidad: Técnicas matemáticas y estadísticas
     para transformar el conjunto de datos original en un nuevo conjunto de datos con
     una dimensión más pequeña a cambio de cierta pérdida de información. Se utilizan
     para representar de una forma más visual y sencilla los datos.

2.3.1.    Algoritmos Aprendizaje No Supervisado
     K-Medias (K-Means). El algoritmo KMedias es muy fácil de implementar y muy
     eficiente computacionalmente. Éstas son las principales razones de su popularidad.
     Sin embargo, para los grupos no esféricos, la identificación de clases no es muy
     buena.
     El algoritmo KMeans tiene como objetivo encontrar y clasificar puntos de datos
     que son muy similares entre sí. Cuanto más cerca estén los puntos de datos entre
     sí, es más probable que pertenezcan al mismo grupo.

     Agrupación jerárquica. Alternativa al algoritmo K-Means, visto en el apartado
     2.3.1. Este algoritmo, se caracteriza por no ser necesaria la especificación del número

                                            9
Técnicas de aprendizaje para la identificación de rapaces por restos óseos           UCM

Figura 2.6: Diagrama de flujo del aprendizaje no supervisado. (Fuente:https://medium.
com/soldai/tipos-de-aprendizaje-automático-6413e3c615e2)

     de grupos, que surgen por la unión de las distintas características similares. Además,
     este algoritmo permite dibujarlo con un dendograma, véase la Figura 2.7, diagrama
     que muestra las distancias de las características entre cada par de clases unidas
     de manera secuencial. Esta forma de representación, nos permite observar que el
     algoritmo se construye de abajo hacia arriba (bottom-up), en donde al principio,
     cada característica es un grupo, las cuales se unen según su cercanía hasta que
     todas las características forman parte de un único grupo [7].

2.4.     Aprendizaje Máquina por Refuerzo
El aprendizaje máquina por refuerzo es un método de aprendizaje que implica recompen-
sar los comportamientos deseables y castigar los no deseados. Al aplicar este enfoque, los
agentes pueden reconocer e interpretar el entorno, actuar y aprender mediante prueba
y error. Está aprendiendo a establecer metas a largo plazo para obtener las máximas
recompensas generales y las soluciones óptimas. (Véase la Figura 2.8).
Una de las áreas más populares para probar el aprendizaje por refuerzo es el juego.
AlphaGo o Pacman son juegos que aplican esta técnica. En estos casos, el algoritmo
recibe información sobre las reglas del juego y aprende a jugar por su cuenta. Funciona
de forma aleatoria al principio, pero con el tiempo comienza a aprender movimientos más
complejos. Este tipo de aprendizaje también se aplica a otros campos como la robótica,
la relación calidad-precio y los sistemas de control.

                                           10
Técnicas de aprendizaje para la identificación de rapaces por restos óseos    UCM

Figura 2.7: Ejemplo dendograma. (Fuente: https://www.jacobsoft.com.mx/es_mx/
clustering-jerarquico-con-python/)

Figura 2.8: Diagrama de flujo del aprendizaje por refuerzo. (Fuente: https://medium.
com/soldai/tipos-de-aprendizaje-automático-6413e3c615e2)

                                           11
Capítulo 3

Predicción de tipo de ave

En este capítulo se va a hacer una descripción detallada del algoritmo de predicción del
tipo de aves rapaces emblemáticas comparándolo con distintos modelos de aprendizaje
máquina supervisado.

3.1.     Materiales y métodos
A continuación, se van a presentar los materiales utilizados para la realización de la
predicción y los distintos métodos que hemos tenido en cuenta al comparar los diferentes
modelos supervisados.

3.1.1.    Materiales
Base de datos
La base de datos, número de registro 49/437736.9/21, utilizada para la comparación de
los algoritmos supervisados, ha sido proporcionada por Víctor García Matarranz agente
forestal del Ministerio para la Transición Ecológica y el Reto Demográfico (MITECO) y
Luis Revuelta Rueda. La elaboración de esta base de datos, fue realizada por ellos mismos
gracias a la obtención de distintos esqueletos privados y de diferentes museos de España,
permitiendo que Víctor García Matarranz los verificase como especialista que es.

La base de datos, es un archivo excel, en el que se recogen veintiséis especies diferentes
de aves, el Búho Real, el Gavilán, entre otras como se puede observar en la Figura 3.3.
Las especies forman las filas, mientras que las columnas son los ocho huesos más repre-
sentativos en el esqueleto de un ave rapaz, ( cráneo, húmero, radio, cúbito, coxal, fémur,
tibiotarso, tarsometatarso), en la base de datos se presentan once columnas, ya que el
hueso del cráneo y del coxal se deben medir en longitud y anchura.

En la Figura 3.1 se muestra un extracto de la base de datos utilizada.

3.1.2.    Métodos
Estos métodos serán utilizados en la comparación de los diferentes algoritmos, sección
3.2.

                                           12
Técnicas de aprendizaje para la identificación de rapaces por restos óseos            UCM

                Figura 3.1: Base de datos. (Fuente: Elaboración propia)

Overfitting y Underfitting
El problema del Overfitting, sobre-entrenamiento en español, en el ámbito del machine
learning consiste en el aprendizaje erróneo de nuestro algoritmo con los datos suministra-
dos, ya que éste solo predecirá correctamente aquellos datos idénticos al entrenamiento.
Esto provoca que el algoritmo no sea capaz de distinguir datos factibles [8].
En cambio, el Underfitting, falta de entrenamiento en español, es lo opuesto al overfitting,
ya que este problema surge cuando los datos de entrenamiento del algoritmo son muy
escasos o no hay diversidad entre ellos, provocando sesgos en el resultado, excluyendo
datos válidos.
En la Figura 3.2 se puede observar una gráfica aclarativa del resultado esperado de nues-
tro modelo y lo que provoca los problemas de overfitting y underfitting.

Figura 3.2: Gráfica comparativa del Overfitting y Underfitting. (Fuente: https://www.
aprendemachinelearning.com/que-es-overfitting-y-underfitting-y-como-solucionarlo/)

Para evitar estos problemas, o que afecten los menos posible, se realizará: [9]
      Obtención de una cantidad suficiente de datos para entrenar el modelo y validarlo.

      Clases variadas y balanceadas, la cantidad y variedad de clases debe ser equitativa.

      Dividir el conjunto de datos en entrenamiento y test.

                                            13
Técnicas de aprendizaje para la identificación de rapaces por restos óseos            UCM

Técnica de sobre muestreo de minorías sintéticas
Este método conocido también por Synthetic Minority Oversampling Technique, a partir
de ahora SMOTE para abreviar, se utiliza para resolver el problema de overfitting y un-
derfitting que puedan presentar los modelos.
Nitesh Chawla, describió esta técnica como “la elección de los datos más cercanos en el
espacio de características entre dos datos de la clase minoritaria” [10]. Es decir, se elige
un dato “A” al azar y de los datos más cercanos a “A” se elige un “B”, se traza un
segmento en el espacio de características entre los datos “A” y “B”, generando un nuevo
dato “C” que pertenecerá al conjunto de datos [11]. Este método se puede utilizar para
crear tantos datos como sean necesarios.

En la Figura 3.3, se observa una gran diferencia entre la primera especie, la Perdicera,
frente a la última, el Circus Cyaneus, por tanto se realizará un balanceamiento de las
clases para que todas ellas tengan un conteo equitativo, facilitando el funcionamiento de
los algoritmos.
En nuestro modelo solo se aplica SMOTE a los datos de entrenamiento, con el objetivo
de tener mejores resultados.

Figura 3.3: Contador del número de especies que aparecen en la base de datos. (Fuente:
Elaboración propia)

3.2.     Comparativa de los algoritmos del DataSet
Se han implementado los algoritmos árbol de decisión, SVM y random forest, vistos en
la sección 2.2.1, para nuestro modelo y estudiar su grado de eficacia.

                                            14
Técnicas de aprendizaje para la identificación de rapaces por restos óseos              UCM

Para ello se ha realizado una tabla 3.1 comparativa entre los distintos algoritmos estu-
diados y su precisión sin aplicar SMOTE y aplicándolo.

                  Algoritmo         score con SMOTE       score sin SMOTE
               Árbol de decisión      0.98 (+/- 0.03)      0.94 (+/- 0.05)
                     SVM              1.00 (+/- 0.00)      1.00 (+/- 0.00)
                Random Forest         1.00 (+/- 0.01)      0.98 (+/- 0.02)

                         Cuadro 3.1: Comparativa de algortimos

La diferencia entre el score, precisión del algoritmo al predecir, aplicando SMOTE y
sin aplicarlo es mínima. Para nuestra elección nos basaremos en la columna de aplica-
ción con SMOTE, parqa evitar problemas de overfitting, sección 3.1.2, en nuestro modelo.

En la tabla 3.1 se muestra una ligera diferencia entre el algoritmo de árbol de precisión y
los de SVM y Random Forest. El árbol de decisión queda descartado por tener un score
inferior al de los otros dos algoritmos, aunque la precidicción haya sido válida, la del resto
fue superior.
A continuación, se debe decidir entre utilizar el SVM y el Random Forest. Como ambos
algoritmos tienen una precisión del 1.00, se decide utilizar en nuestro modelo el random
forest, porque es un método preciso, no sufre de overfitting y para este modelo parece el al-
goritmo más adecuado, ya que el SVM no es tan eficaz cuando hay muchas características
y no se puede asegurar un amplio margen entre los dos vectores más cercanos.

                                             15
Capítulo 4

Herramienta de desarrollo

Este capitulo trata la implementación de la aplicación web, desde la arquitectura seguida,
las tecnologías utilizadas para el desarrollo backend (Django, framework de Python) y las
del fronted (HTML5, lenguaje de marcas de hipertexto para la creación de las plantillas
web y CSS3, hojas de estilo en cascada para darle formato, diseño y estilo al documento
escrito en lenguaje de marcado), hasta las herramientas de trabajo que se han utilizado
para este proyecto.

La aplicación “Identificación de restos óseos de las aves rapaces emblematicas” se puede
visitar en el siguiente enlace [ http://sdelanieta.pythonanywhere.com ] y si lo que desea
es ver como se ha programado dicha aplicación, en este enlace encontrará el código fuente
[https://github.com/Enolah/djangoTFG].

4.1.     Pruebas de arquitectura
Estas pruebas sirven para conocer si las tecnologías conocidas para aplicarse a la pro-
gramación web son viables para mi proyecto. Se han desarrollado dos prototipos con
las mismas funcionalidades básicas (pagina de inicio con enlace a otra página donde se
implementa el algoritmo), para su posterior evaluación, donde analizaremos las partes
positivas y negativas de la utilización de dichas tecnologías. Esto permite decidir cual de
las dos opciones es más viable para la construcción del software.

      NODE.JS + JAVASCRIPT

      JavaScript es un lenguaje de programación y scripting, encargado de dar dinamis-
      mo e interactividad a las paginas web, complementándose con HTML y CSS para
      añadir funciones avanzadas del lado cliente y así no construir una pagina plana
      [12]. Siendo el numero tres en el índice de Popularidad PYPL de Febrero 2021 [13],
      se le considera uno de los tres lenguajes nativos de la web (HTML, CSS, JavaScript).

      Node.js es un entorno en tiempo de ejecución multiplataforma para la capa del
      servidor basado en JavaScript. Pero no se debe confundir con un lenguaje de pro-
      gramación o framework (plataforma para desarrollar aplicaciones software), ya que
      es un entorno de ejecución que se utiliza para ejecutar JavaScript fuera del navega-
      dor [14].

                                            16
Técnicas de aprendizaje para la identificación de rapaces por restos óseos          UCM

     Aunque Node.js puede utilizarse tanto para fronted como para backend, en este pro-
     totipo se utilizó para construir el servidor de la app web, consta de una estructura
     “Single Threaded Event Loops” pudiendo así manejar múltiples clientes al mismo
     tiempo.En la Figura 4.1 se puede ver la arquitectura de Node.js.

Figura 4.1: Procesamiento de Node.js las peticiones entrantes utilizando el bucle de even-
tos. (Fuente: Elaboración propia)

     En la Figura 4.1 se puede observar que es un modelo de solicitud-respuesta multihi-
     lo,varios clientes envían una solicitud y el servidor procesa cada una de ellas antes
     de devolver la respuesta. Sin embargo, se utilizan múltiples hilos para procesar las
     llamadas concurrentes. Estos hilos se definen en un pool de hilos, y cada vez que
     llega una petición, se asigna un hilo individual para manejarla [14].
     Por ultimo, a Node.js le añadimos una serie de paquetes, que se explicarán después.
     Los paquetes utilizados fueron:

        1. Express: Framework basado en el módulo de HTTP que proporciona la posi-
           bilidad de dividir la función callback que gestiona peticiones HTTP en varias
           fases y mecanismos de alto nivel para acceder a algunas componentes de la
           petición.
        2. Express session: Gestiona el almacenamiento de sesiones. Este middleware
           añade el atributo sesión al objeto request que contiene los datos de sesión
           correspondientes al cliente que se está atendiendo.
        3. Body-parser: Obtiene el cuerpo de la petición HTTP, interpreta su contenido
           y modifica el objeto request añadiéndole un nuevo atributo (body).
        4. Moment: Permite manejar fechas, es mas potente que la clase Date.
        5. Nodemon: Monitoriza los cambios, en el momento que detecta un cambio
           reinicia el servidor.

                                           17
Técnicas de aprendizaje para la identificación de rapaces por restos óseos         UCM

        6. Ejs: son documentos HTML con marcadores especiales de varios tipos. Utili-
           zados en nuestra aplicación como plantillas o subplantillas.

     Para la implementación de la web se utilizó EJS, el cual también es un lenguaje
     de plantillas simples que permite generar lenguaje de marcado como HTML con
     JavaScript simple. También nos permite crear subplantilla para no repetir código.
     Es la opción mas utilizada a la hora de crear una aplicación con Node.js, ya que es
     muy útil para generar HTML y contenido dinámico.

     Una vez que se tiene una idea general de las tecnologías que vamos a utilizar para
     este prototipo decidimos ponerlo a prueba y evaluar sus ventajas y desventajas.

        • Ventajas.
          Durante el transcurso de la carrera he tenido asignaturas que trataban estas
          mismas tecnologías, sabiendo así ya utilizarlas.
          Hay mucha documentación e información para crear una pagina web con esta
          tecnología.
          La aplicación puede ser dinámica e interactuar con el usuario a tiempo real.
          La ejecución de un modelo vista controlador (MVC) es viable y sencilla de
          implementar.
        • Desventajas.
          Poca información encontrada para la compatibilidad entre JavaScript y Python.
          Para conseguir que el algoritmo funcionase era bastante complicado, no se con-
          seguía una buena conexión.

     DJANGO

     Python es un lenguaje de programación orientado a objetos de alto nivel con se-
     mántica dinámica incorporada, principalmente para desarrollar aplicaciones web y
     de escritorio. Esta es una opción multiplataforma con bibliotecas e intérpretes gra-
     tuitos disponibles [15].

     La empresa The World Company of Lawrence en Kansas, Estados Unidos, contaba
     con un grupo de desarrolladores que decidieron hacer una serie de aplicaciones en
     PHP para optimizar los procesos de la empresa, en 2003 cambiaron de lenguaje de
     programación a Python.
     Después de un proceso de múltiples mejoras consiguieron desarrollar un framework
     muy potente, llamado Django.
     EN 2005, lanzaron Django como código abierto, facilitando que la comunidad de
     desarrolladores aportase mejoras, soporte y usabilidad. Así es como Django empezó
     a darse a conocer. No fue hasta 2008 cuando Django obtuvo las características base
     por las que actualmente es conocido:

        • Es muy rápido programar una aplicación web funcional.
        • Contiene funcionalidades ya creadas para facilitar el desarrollo, por ejemplo,
          la autenticación de un usuario.
        • Solución de problemas de seguridad.

                                           18
Técnicas de aprendizaje para la identificación de rapaces por restos óseos          UCM

        • Escalable.
        • Puede utilizarse para aplicaciones de cualquier tipo.
        • Integración del patrón Modelo Vista Controlador en su implementación.
     Aunque Django tiene una forma distinta de implementar el MVC, siendo Modelo
     Template Vista (MTV), esta última característica ha sido la más importante para
     el desarrollo del prototipo.

     Hoy en día, Django, se utiliza en aplicaciones como Instagram, Mozilla, entre otras.

     Una vez que se tiene una idea general de las tecnologías que vamos a utilizar para
     este prototipo decidimos ponerlo a prueba y evaluar sus ventajas y desventajas.

        • Ventajas.
          Hay una comunidad muy grande con una amplia documentación.
          En constante progreso y mejoras.
          Muchas funcionalidades ya implementadas que ahorran trabajo al programa-
          dor.
          Incluye el patrón Modelo Template Vista (MTV).
          Al pertenecer al mismo lenguaje de programación, el algoritmo se acopla muy
          bien al desarrollo de la aplicación web.
        • Desventajas.
          Nuevo framework no visto anteriormente

4.2.      Arquitectura
La arquitectura usada en la aplicación es la mostrada en la figura 4.2, en ella podemos
observar el patron Modelo Template Controlador (MTV para abreviar), que divide la
aplicación en tres componenetes.

       Figura 4.2: Ejemplo de un servidor en Django. (Fuente: Elaboración propia)

                                           19
Técnicas de aprendizaje para la identificación de rapaces por restos óseos        UCM

     El modelo contiene la funcionalidad básica entre datos.

     La vista media entre el modelo y el template.

     El template decide la forma en la que se muestra la información.

4.3.     Implementación
A continuación, se relatará la implementación seguida para la creación de la página web.

4.3.1.    Backed
Primero se implementa un entorno virtual, aislando la configuración de nuestra aplica-
ción, evitando conflictos con otros posibles proyectos.

             Figura 4.3: Esquema de Django. (Fuente: Elaboración propia)

A continuacion, desarrollamos el servidor Django, programado en Python, dentro de
nuestro entorno virtual. Django genera inicialmente una estructura de proyecto, véase
Figura 4.3, respetando el patrón MTV.

     Models.py: Archivo donde esta la información de la base de datos, en el proyecto
     no se le da uso a este archivo, ya que la base de datos proporcionada no necesita
     ser modificada, solo leerla una única vez al inicio para el algoritmo.

     View.py: Archivo que contiene los métodos, funciones necesarios para el correcto
     desarrollo de la aplicación web.

                                           20
Técnicas de aprendizaje para la identificación de rapaces por restos óseos        UCM

                                   Peticiones HTTP
                        Descripción             GET/POST            URL
                  Página principal/Inicio          GET                /
                    Página de contacto             GET           /contacto
                    Página de recursos             GET           /descargas
                 Página de identificación          GET              /iden
            Cálculo del algoritmo de predicción    POST           /calcular

                             Cuadro 4.1: peticiones HTTP

     Urls.py: Archivo donde se almacenan todas las urls, peticiones HTTP que pueden
     realizarse dentro de la aplicacion web. 4.1
     Templates: Carpeta donde se ubican todos los archivos HTML que se utilizan en
     la aplicación.

Además de éstas, se han implementado dos nuevas, que nos ayudarán a tener más orga-
nizado y mejorar la lectura del código, puede verse la nueva estructura del proyecto en
la Figura 4.4

        Figura 4.4: Esquema de Django versión 2. (Fuente: Elaboración propia)

     prediccion.py: Clase que contiene la codificación del modelo utilizado para la
     prediccion del tipo de aver.
     read data.py: Clase que lee la base de datos proporcionada.

Se instalan en el entorno virtual,los paquetes de librerías necesarios para que funcione
correctamente nuestra aplicación.

                                           21
Técnicas de aprendizaje para la identificación de rapaces por restos óseos               UCM

      et-xmlfile, xlrd, openpyxl: Librerías que permiten abrir la base de datos creada
      en excel, con extensión “.xlsx”.
      imbalanced-learn, imblearn: Librería utilizada para la aplicación del SMOTE.
      numpy: Librería de Python que proporciona un objeto de matriz multidimensional,
      y el el objeto ndarray [16].
      pandas: Librería que proporciona estructuras de datos y herramientas de análisis
      de datos de alto rendimiento [17].
      scikit-learn: Librería que proporciona herramientas simples y eficientes para el
      análisis predictivo de datos [18].

En el proyecto hay otras librerías que se descargan al instalar alguna de las mencionadas
anteriormente, por eso no son comentadas. Las importantes son de las que ya he hablado.

4.3.2.    Fronted
Las plantillas se han desarrollado con HTML5 y CSS3 [19]. Lo más característico de estas
plantillas es el uso de herencia entre las plantillas para evitar la duplicidad del código. Hay
una plantilla “padre” que contiene el encabezado, barra de navegación y pie de pagina, y
el resto de plantillas heredan de ella.
Con CSS3 se ha dado todo el estilo a la pagina web y se ha hecho una web responsive, es
decir, cambia según el tamaño del dispositivo.

4.4.     Despliegue
Para el despliegue del servidor del proyecto se ha utilizado Pythonanywhere [20], por
su comodidad al ser un servidor exclusivamente de python. Tiene accesos a la versión
mas actual de python y se le pueden instalar todas las librerías necesarias para que la
aplicación funcione correctamente.
Pythonanywhere permite un hospedaje gratuito, de hasta 512MB, al crear una cuenta
con ellos, y una enlace para la aplicación web. Para este proyecto se ha tenido que ampliar
el almacenamiento en disco para facilitar la subida de elementos estáticos y la instalación
de las librerías.
Los pasos a seguir para hacer el despliegue son muy sencillos:
   1. Crear una cuenta en Github, repositorio online gratuito para la gestión y el control
      de versiones dentro de tu proyecto.
   2. Crear un repositorio para guardar el proyecto.
   3. Crear una cuenta de Pythonanywhere.
   4. Desde la “API Token” , crear nueva API Token.
   5. Abrir una terminal Bash donde descargarás tu código de GitHub en Pythonanywhe-
      re.
   6. Instalar los paquetes necesarios para el correcto funcionamiento de la aplicación.

                                              22
Técnicas de aprendizaje para la identificación de rapaces por restos óseos           UCM

4.5.     Herramientas de trabajo
A continuación se describen las distintas herramientas que se han utilizado en la imple-
mentación de la aplicación web.

     Visual Studio Code: Visual Studio Code es un editor de texto sin formato, de
     código abierto y gratuito. Desarrollado por Microsoft, proporciona a los usuarios
     herramientas de programación avanzadas. A través de comandos de Git le da al
     editor un verificador de versión completo.
     Por esta razón, Microsoft ha decidido hacer de Visual Studio Code un editor modu-
     lar totalmente personalizable a través de complementos. Microsoft y otros desarro-
     lladores pueden compartir el complemento y extender Visual Studio Code a través
     de un repositorio de extensiones.
     Ha sido utilizado para la programación de la aplicación web y de los prototipos, ya
     que permite la compatibilidad entre muchos lenguajes de programación.

     Anaconda Navigator - Jupyter Notebook: Navigator Anaconda es un espacio
     de trabajo de ciencia de datos que permite ejecutar aplicaciones y administrar fácil-
     mente varios paquetes. El navegador Anaconda te permite trabajar con el lenguaje
     Python de una manera más amigable, pero gracias a Jupyter Notebook, puedes
     crear bloques de programa en Python y controlarlos de forma interactiva bloque a
     bloque. Ha sido utilizado para la creación de los modelos y comparar sus grados de
     ajuste.

     GitHub: Repositorio online gratuito para la gestión y el control de versiones dentro
     de tu proyecto. Ha sido utilizado para el almacenamiento de todo el código de la
     aplicación web.

     Google Drive: Servicio de almacenamiento en la nube, que proporciona Google.
     Ha sido utilizado para compartir archivos de interés para la realización del proyecto,
     y la base de datos utilizada.

     Pythonanywhere: Servicio de hospedaje exclusivamente para aplicaciones python.
     Se ha utilizado como servidor Python para desplegar la aplicación web.

                                           23
Capítulo 5

Descripción de la aplicación web

Este capítulo trata el diseño de la aplicación web. Primero se realiza un análisis de la
competencia mediante el cual se estudiarán otras aplicaciones web con funcionalidades
parecidas, es decir, la competencia del mercado. Continúa describiendo posibles escenarios
reales en los que la aplicación podría ser usada, y a partir de estos escenarios se extraen
los requisitos funcionales. Por último, detallaremos con imágenes las interfaces de usuario
que presenta la aplicación.

5.1.     Análisis de la competencia
Para hacer un estudio de mercado más específico, se necesita saber las principales ventajas
que presenta la aplicación web frente a la competencia.
      Identificación rápida y fiable.
      Adaptación a móviles, tabletas por su cómoda visualización.
      Interfaz intuitiva.
La competencia se caracteriza por la ornitología, estudio de las aves. Y las principales
características que presenta son:
      Gran variedad de aves para el estudio.
      La exploración se basa en la observación de aves en su entorno natural, ecosistema.
Las diferencias entre la aplicación y la competencia son muy evidentes, por tanto, no
encontramos un mercado que presente una amenaza para la aplicación, ya que ésta es
diferente a las demás páginas webs. Se centra en los restos óseos, no influyen características
como el color, las plumas, entre otras.
Además, la aplicación consta de una sección donde puedes conseguir información sobre
las aves analizadas e incluso instrucciones para identificar cada hueso y cómo se realizan
las mediciones por expertos.

5.2.     Escenarios de uso
Antes del desarrollo de la implementación se decidió establecer una serie de escenarios en
los que la aplicación fuese usada. Así, se pudo describir que funcionalidades eran las más
necesarias para los usuarios.

                                             24
Técnicas de aprendizaje para la identificación de rapaces por restos óseos             UCM

Los escenarios descritos a continuación son distintas situaciones del mundo real en las que
los futuros usuarios de nuestra aplicación se podrían encontrar y necesitar la aplicación
para darle solución a su problema.

      Escenario 1. Reconocimiento al aire libre.
      Un senderista o grupo de senderistas realizan una ruta cuando se percatan de un
      ave en estado de descomposición. Antes de llamar al Servicio de Protección de la
      Naturaleza (SEPRONA), el caminante desea saber de qué ave se trata. Por tanto,el
      usuario puede lanzar la aplicación desde su móvil, poner los datos de los huesos
      que haya podido medir para saber de qué ave se trata y así proporcionar más
      información al SEPRONA cuando llamen.

      Escenario 2. Reconocimiento cultural y/o científico.
      En el caso de casas museo, colegios que tiene aves disecadas o disponen de restos
      óseos sin identificar. Entonces, el usuario con un dispositivo con acceso a internet
      podrá acceder a la aplicación y meter los datos e incluso se puede consultar las
      guías de identificación de restos óseos [21], [22]. Y así, se podrán poner los restos
      de exposición o enseñárselos a visitantes, alumnos o cualquier persona que quiera
      aprender más sobre las aves.

      Escenario 3. Reconocimiento policial.
      El SEPRONA tiene que lidiar diariamente contra la caza furtiva, y esta aplicación
      puede serles muy útil para la identificación del ave al momento de encontrarlo y así
      acelerar el proceso de detención de los cazadores o encontrar a los culpables.

5.3.     Requisitos funcionales
En esta sección se describe los requisitos funcionales de la aplicación. Con estos requisitos
se pretende mostrar los servicios que proporciona la aplicación. Se han dividido en tres
servicios:

      Servicio de contacto: Zona de la aplicación donde aparecen los datos de contacto
      de la Universidad Complutense, guía de aves cedida para este proyecto, el Ministerio
      para la Transición Ecológica y el Reto Demográfico (MITECO) y los autores de las
      fotografías que aparecen en la aplicación.

      Servicio de información: Zona de la aplicación donde los usuarios pueden des-
      cargar las dos guías creadas por Víctor García Matarraz para aprender más sobre
      la medición e identificación de restos óseos. Así, como un archivo con una serie de
      números telefónicos para llamar en caso de encontrarse algún ave muerto.

      Servicio de predicción de aves rapaces emblemáticas según sus restos
      óseos: Zona de la aplicación donde reside el algoritmo de predicción de aves rapaces
      a partir de sus restos óseos descrito en el Capítulo 3, que a partir de una interfaz
      intuitiva para los usuarios se facilita su uso.

                                             25
Técnicas de aprendizaje para la identificación de rapaces por restos óseos            UCM

5.4.     Interfaz de usuario
La descripción de las distintas interfaces que forman la aplicación web se hará en base
al diseño web para un monitor, para dispositivos como móviles y tabletas, se mostrará
una imagen, su funcionamiento es igual pero la vista cambia dependiendo del dispositivo
desde el que se accede.

5.4.1.    Interfaz Principal
Es la interfaz “base” de nuestra aplicación, se puede ver en la Figura 5.1, ya que en ella
se presentan las distintas características que se repetirán también en el resto de vistas.

      En la parte superior se presenta el nombre de la aplicación web.

      Debajo del nombre se puede observar la barra de navegación, desde la cual podremos
      acceder a cualquiera de las otras interfaces restantes.

      En la parte inferior de la vista se encuentra el pie de página con el logotipo de la
      Universidad Complutense de Madrid y el correspondiente con MITECO.

La diferencia con el resto de vistas es la presentación de bienvenida al usuario, un pequeño
muestrario de aves (con sus respectivos nombres) y un botón que nos dirige directamente
a la interfaz de identificación, Figura ??.

Figura 5.1: Página inicio de la aplicación. Formato monitor. (Fuente: Elaboración propia)

5.4.2.    Interfaz Identificación
En esta interfaz se puede observar las mismas características presentadas en la interfaz
principal 5.4.1. Esta vista se presenta en formato “pantalla dividida”, en la que cada
división cambiara dependiendo de la interacción del usuario:

                                            26
Técnicas de aprendizaje para la identificación de rapaces por restos óseos             UCM

   1. Todavía no se ha introducido ningún dato 5.2:
      La parte de la izquierda observamos el formulario que podrán rellenar (entero o no)
      con los datos de los restos óseos.
      La parte de la derecha, se muestra con una imagen de un esqueleto de ave rapaz en
      el cual se han asignado los nombres de los huesos correspondientes, para permitir
      al usuario localizarlos mas fácilmente.

Figura 5.2: Página de identificación de la aplicación antes de introducir valores. Formato
monitor.(Fuente: Elaboración propia)

   2. Se ha calculado la predicción 5.3:
      La parte de la izquierda se mantiene igual, borrándose los datos de entrada.
      La parte de la derecha, donde antes veíamos la imagen del esqueleto, ahora se
      mostrara los resultados obtenidos de la predicción.

5.4.3.    Interfaz Contacto
En esta interfaz se puede observar las mismas características presentadas en la interfaz
principal 5.4.1. En esta vista se pueden leer los datos de contacto de las personas encarga-
das de la investigación y de la idea en el tema de la identificación de restos óseos. También
se cuenta brevemente el motivo que impulso esta aplicación web y el reconocimiento a los
autores de las fotografías y documentos utilizados en la aplicación. Véase la Figura 5.4.

                                             27
Técnicas de aprendizaje para la identificación de rapaces por restos óseos         UCM

Figura 5.3: Página de identificación de la aplicación mostrando los resultados obtenidos.
Formato monitor.(Fuente: Elaboración propia)

    Figura 5.4: Página de contacto. Formato monitor.(Fuente: Elaboración propia)

                                           28
Técnicas de aprendizaje para la identificación de rapaces por restos óseos             UCM

5.4.4.    Interfaz Recursos
En esta interfaz se puede observar las mismas características presentadas en la interfaz
principal 5.4.1. En esta vista se muestran varios enlaces de descarga, para poder visualizar
desde nuestro dispositivo o descargar los documentos presentes. Véase la Figura 5.5.

Figura 5.5: Página de recursos para descargar. Formato monitor.(Fuente: Elaboración
propia)

5.5.     Navegación entre interfaces
A continuación, se explicará el diagrama mostrado en la [figura]. Este diagrama muestra
la manera en que se puede navegar entre las distintas interfaces de la aplicación.

   1. El usuario accede a la aplicación y se encuentra la página de inicio con tres opciones
      a elegir, podrá ir a “recursos”, “contacto” o pulsar el botón comenzar si quiere ir a
      la pantalla de “identificación”. Desde cualquier pantalla se podrá volver a la anterior
      u otra cualquiera.

   2. Si elige ir a “recursos”, solo tendrá que seleccionar en el menú de arriba de la
      aplicación la opción “recursos” que le llevará a esa pantalla. Una vez ahí, podrá
      descargar los archivos que desee. Si después desea ir a “contacto” mira el paso 3,
      por el contrario si quiere navegar al “inicio” mire el paso 1.

   3. Si elige ir a “contacto”, solo tendrá que seleccionar en el menú de arriba de la
      aplicación la opción ir a “contacto” que le llevará a esa pantalla. Una vez ahí, podrá
      leer la información de contacto de los autores que han colaborado en la aplicación.
      Si después desea ir a “recursos” mira el paso 2, por el contrario si quiere navegar al
      “inicio” mire el paso 1.

   4. Si elige pulsar el botón “comenzar”, irá directamente a la pantalla de “identifica-
      ción” allí podrá ingresar en el formulario los datos correspondientes a los restos
      óseos que haya medido. Una vez introducidos, podrá realizar tres opciones: “res-
      taurar”,“limpiar” o “calcular”.

                                             29
También puede leer