PROTOTIPADO DE VISIÓN POR
COMPUTADORA PARA LA
DETECCIÓN DE OBJETOS EN
DRONES AUTÓNOMOS.
TÍTULO DEL TFG: Prototipado de visión por computadora para la detección de
objetos en drones autónomos.
TITULACIÓN: Grado en Ingeniería de Sistemas Aeroespaciales
AUTOR: Anthony Demóstenes Pérez Calderón
DIRECTOR: Miguel Valero Garcia
FECHA: 17 de junio de 2024
Resumen
En la era contemporánea, los drones han trascendido su función inicial de
captura de imágenes aéreas para convertirse en herramientas versátiles con
aplicaciones en múltiples campos. Este proyecto se centra en la exploración de
la visión autónoma de los drones, particularmente en el uso del aprendizaje
automático para la detección de objetos. El objetivo principal es desafiar los
prejuicios negativos asociados con el uso militar de los drones y destacar sus
capacidades transformadoras en contextos civiles y recreativos.
El enfoque del proyecto abarca desde la exploración de los límites físicos de los
drones hasta el desarrollo de algoritmos adaptables mediante la fusión de
programación y tecnologías de visión por computadora. Se ha llevado a cabo un
proceso exhaustivo de prototipado e implementación de un algoritmo de
detección de objetos, integrando modelos entrenados con herramientas
avanzadas como Roboflow y utilizando el dron Tello como plataforma de prueba.
El resultado es un sistema capaz de capturar imágenes en tiempo real,
procesarlas y detectar objetos con precisión, demostrando las capacidades
autónomas de visión de estos dispositivos.
El proyecto se estructura en capítulos que detallan cada etapa del desarrollo,
comenzando con la introducción del dron Tello y su ecosistema de ingeniería,
seguido de la programación en Python y el uso de librerías específicas. Se
incluye una descripción del proceso de etiquetado de imágenes con CVAT,
crucial para crear un conjunto de datos de calidad. Posteriormente, en la fase de
entrenamiento del modelo en Roboflow se cubre la configuración del modelo, el
ajuste de hiperparámetros y la evaluación del rendimiento.
La integración del modelo entrenado en Python, utilizando PyCharm, se aborda
detallando la captura y procesamiento en tiempo real del video del dron Tello y
el uso de herramientas avanzadas de inferencia. En este estadio se encontraron
desafíos técnicos significativos, como la conexión a dos redes y la optimización
del procesamiento de imágenes, mediante soluciones innovadoras y pruebas
constantes.
En la conclusión, se reflexiona sobre los logros alcanzados y se proporcionan
recomendaciones para futuros trabajos, estableciendo una base sólida para
estudios futuros en la visión autónoma de drones, invitando a la comunidad a
construir sobre estos cimientos. Además de su contribución técnica, el proyecto
aspira a cambiar la percepción pública de los drones, fomentando su uso en
contextos accesibles y recreativos. La síntesis innovadora de tecnologías
presentadas en el presente proyecto augura un futuro emocionante, donde los
drones y el aprendizaje automático convergen para inspirar avances
significativos en múltiples disciplinas.
Abstract
In the contemporary era, drones have transcended their initial function of
capturing aerial images to become versatile tools with applications in multiple
fields. This project focuses on exploring the autonomous vision capabilities of
drones, particularly in the use of machine learning for object detection. The
primary goal is to challenge the negative prejudices associated with the military
use of drones and to highlight their transformative capabilities in civilian and
recreational contexts.
The project spans from exploring the physical limits of drones to developing
adaptable algorithms through the fusion of programming and computer vision
technologies. An exhaustive process of prototyping and implementing an object
detection algorithm has been carried out, integrating trained models with
advanced tools such as Roboflow and using the Tello drone as a test platform.
The result is a system capable of capturing real-time images, processing them,
and detecting objects accurately, demonstrating the autonomous vision
capabilities of these devices.
The project is structured into chapters that detail each stage of development,
starting with the introduction of the Tello drone and its engineering ecosystem,
followed by programming in Python and the use of specific libraries. A description
of the image annotation process with CVAT is included, which is crucial for
creating a high-quality dataset. Subsequently, in the model training phase in
Roboflow, model configuration, hyperparameter tuning, and performance
evaluation are covered.
The integration of the trained model in Python, using PyCharm, addresses real-
time video capture and processing from the Tello drone and the use of advanced
inference tools. Significant technical challenges were encountered at this stage,
such as connecting to two networks and optimising image processing, which were
addressed through innovative solutions and constant testing.
In the conclusion, the achievements are reflected upon, and recommendations
for future work are provided, establishing a solid foundation for future studies in
autonomous drone vision and inviting the community to build upon these
foundations. Besides its technical contribution, the project aims to change public
perception of drones, promoting their use in accessible and recreational contexts.
The innovative synthesis of technologies presented in this project heralds an
exciting future where drones and machine learning converge to inspire significant
advancements in multiple disciplines.
ÍNDICE
INTRODUCCIÓN ................................................................................................... 1
CAPÍTULO 1. DRONE TELLO EDU .................................................................... 3
1.1 Especificaciones .......................................................................................................... 4
1.2 SDK 2.0 y su aplicación en la visión autónoma ........................................................ 5
CAPÍTULO 2. OBJETIVOS Y PLAN DE TRABAJO ........................................... 7
2.1 Tello Engineering Ecosystem ........................................................................................... 7
2.2 Objetivos ............................................................................................................................. 9
2.3 Plan de trabajo.................................................................................................................. 10
CAPÍTULO 3. HERRAMIENTAS DE SOFTWARE ........................................... 12
3.1 Entorno de desarrollo ...................................................................................................... 12
3.2 DJITelloPy API .................................................................................................................. 13
3.3 Computer Vision Annotation Tool - [Link] ................................................................ 14
3.4 Librería Roboflow ............................................................................................................. 16
3.5 Roboflow Inference APK ................................................................................................. 17
CAPÍTULO 4. PROTOTIPO DEL MODELO DE DETECCIÓN ......................... 20
CAPÍTULO 5. ETIQUETADO DE IMÁGENES .................................................. 22
5.1 Proceso de etiquetado con CVAT .................................................................................. 22
5.1.1 Configuración del proyecto ......................................................................................... 22
5.1.2 Carga de imágenes ..................................................................................................... 24
5.1.3 Anotación de imágenes............................................................................................... 24
5.1.4 Exportación de anotaciones ........................................................................................ 25
5.1.5 Buenas prácticas en el etiquetado .............................................................................. 27
CAPÍTULO 6. PREPARACIÓN DE DATOS DEL MODELO DE DETECCIÓN 29
6.1 Importación y organización de imágenes anotadas .................................................... 29
6.1.1 Exportación de imágenes anotadas desde CVAT ...................................................... 29
6.1.2 Subida de imágenes a Roboflow ................................................................................ 29
6.1.3 Organización del conjunto de datos............................................................................ 30
6.2 Preprocesamiento de Datos ........................................................................................... 30
6.2.1 Aumento de datos ....................................................................................................... 30
6.2.2 Normalización y escalado ........................................................................................... 31
6.2.3 División del conjunto de datos .................................................................................... 31
6.3 Revisión y validación de datos ....................................................................................... 32
6.3.1 Revisión de calidad de datos ...................................................................................... 32
6.3.2 Validación de Subconjuntos ........................................................................................ 32
CAPÍTULO 7. CONFIGURACIÓN Y ENTRENAMIENTO DEL MODELO ....... 34
7.1 Configuración del modelo ............................................................................................... 34
7.1.1 Selección de la Arquitectura del Modelo .................................................................... 34
7.1.2 Ajuste de hiperparámetros .......................................................................................... 34
7.1.3 Criterios de evaluación................................................................................................ 35
7.2 Proceso de entrenamiento .............................................................................................. 35
7.2.1 Inicio del entrenamiento .............................................................................................. 35
7.2.2 Monitorización del entrenamiento ............................................................................... 35
7.3 Pruebas del modelo de detección .................................................................................. 36
7.3.1 Evaluación en el conjunto de validación ..................................................................... 36
7.3.2 Interpretación de resultados ....................................................................................... 37
7.4 Evaluación del modelo de detección de objetos .......................................................... 37
7.4.1 Ajustes hiperparámetricos .......................................................................................... 37
7.4.2 Resultados y análisis .................................................................................................. 37
CAPÍTULO 8. ANÁLISIS DE RESULTADOS DEL MODELO DE DETECCIÓN
............................................................................................................................. 39
8.1 Descripción de los modelos entrenados ....................................................................... 39
8.2 Evaluación global de las métricas ................................................................................. 43
8.2.1 Modelo tfg-ls1lh/1 ........................................................................................................ 43
8.2.2 Modelo tfg-ls1lh/2 ........................................................................................................ 44
8.2.3 Modelo tfg-ls1lh/3 ........................................................................................................ 45
8.3 Conclusiones y recomendaciones de modelado ......................................................... 46
CAPÍTULO 9. ALGORITMO DE DETECCIÓN EN PYTHON ........................... 49
9.1 Preparación del entorno .................................................................................................. 49
9.1.1 Instalación de Librerías ............................................................................................... 49
9.1.2 Carga del modelo ........................................................................................................ 49
9.1.3 Integración en el código .............................................................................................. 50
CAPÍTULO 10. INTEGRACIÓN EN EL TELLO ENGINEERING ECOSYSTEM
............................................................................................................................. 53
10.1 Creación del repositorio ................................................................................................ 53
CAPÍTULO 11. CONCLUSIÓN........................................................................... 54
11.1 Valoración de objetivos del plan de trabajo ................................................................ 54
11.2 Valoración personal del proyecto ................................................................................ 55
11.3 Futuros trabajos y mejoras ........................................................................................... 55
11.4 Conclusión general ........................................................................................................ 56
BIBLIOGRAFÍA ................................................................................................... 58
ANEXOS .............................................................................................................. 59
Introducción 1
INTRODUCCIÓN
El avance tecnológico en la actualidad ha propiciado la proliferación de los
drones como dispositivos revolucionarios con aplicaciones multifacéticas que
van más allá de la simple captura de imágenes aéreas. Estos dispositivos
autónomos han demostrado su valía en diversas disciplinas, desde la
exploración de entornos volcánicos hasta la optimización de la agricultura y la
entrega eficiente de suministros médicos en áreas de difícil acceso. Su
versatilidad ha contribuido significativamente a resolver desafíos complejos en
distintos campos.
A pesar de sus beneficios innegables, los drones también han enfrentado
percepciones negativas, especialmente al ser vinculados con su aplicación en
contextos militares y la preocupación asociada con posibles abusos. Este
estigma ha motivado la necesidad de cambiar la percepción pública y demostrar
que los drones no solo son herramientas de utilidad estratégica, sino también
dispositivos accesibles y versátiles con un potencial de entretenimiento y
diversión.
Este proyecto tiene como objetivo principal explorar el potencial de los drones
desde una perspectiva de visión autónoma, centrándose en el uso del
aprendizaje automático para la detección de objetos. El desarrollo de este
proyecto final de grado comienza con una investigación exhaustiva sobre los
límites físicos del dron Tello EDU, estableciendo las bases para explorar las
posibilidades que ofrece la programación en conjunto con las tecnologías de
visión por computadora, explorando desde modelos de aprendizaje autónomo a
aplicaciones de entrenamiento neuronal aplicadas a la detección de objetos. El
proyecto se enfocó en la creación de un algoritmo simple y adaptativo utilizando
principalmente herramientas de prototipado tanto de hardware como de software
con el propósito de destacar la versatilidad y el potencial tanto de los drones
como del aprendizaje autónomo.
El documento está estructurado de manera que guíe al lector a través de cada
fase del desarrollo del proyecto. Inicialmente, se introduce el dron Tello EDU y
su ecosistema de ingeniería, proporcionando una visión general de sus
especificaciones y capacidades. A continuación, se definen los objetivos
específicos del proyecto y se detalla la planificación de las tareas necesarias
para alcanzarlos. Posteriormente, se describen las herramientas de software
utilizadas, como DJITelloPy y Roboflow, y se ofrece una guía para su instalación
y configuración.
El siguiente apartado aborda el desarrollo del modelo de detección de objetos,
desde la captura de imágenes hasta la implementación del algoritmo de
detección. Se explica el proceso de etiquetado de imágenes utilizando CVAT,
fundamental para crear un conjunto de datos de alta calidad, y se describe la
preparación de los datos para el entrenamiento del modelo, incluyendo el formato
y la organización de los datos.
2 Prototipado de visión por computadora para la detección de objetos en drones autónomos
La fase de entrenamiento del modelo se detalla exhaustivamente, incluyendo la
configuración del modelo en Roboflow, el ajuste de hiperparámetros y la
evaluación del rendimiento utilizando métricas como precisión, recall y mAP. La
integración del modelo entrenado en un entorno de desarrollo en Python,
utilizando PyCharm, es uno de los aspectos clave del proyecto. Se explica cómo
se captura y procesa en tiempo real la entrada de video del dron Tello y cómo se
utilizan herramientas avanzadas de inferencia para realizar detecciones
precisas. Se han superado varios desafíos técnicos, como la conexión a dos
redes simultáneamente y la optimización del procesamiento de imágenes, lo que
ha requerido soluciones innovadoras y pruebas constantes.
En la conclusión del proyecto, se reflexiona sobre los logros alcanzados y se
proporcionan recomendaciones para futuros trabajos. Se destacan las
oportunidades para mejorar el sistema mediante el uso de modelos más
avanzados como YOLO y Faster R-CNN, y se sugieren nuevas aplicaciones,
como la navegación autónoma y la detección de múltiples objetos en tiempo real.
Este proyecto sienta las bases para futuros desarrollos en el ámbito de la visión
autónoma en drones, alentando a la comunidad a retomar y mejorar los cimientos
establecidos en este trabajo. Se espera que este proyecto no solo contribuya al
uso de tecnologías de desarrollo de redes neuronales, sino también a cambiar la
percepción general de los drones, promoviendo su aplicación en contextos más
accesibles y recreativos. La síntesis innovadora de tecnologías presentadas en
esta tesis augura un futuro emocionante, donde los drones y el aprendizaje
automático convergen para inspirar avances significativos en múltiples
disciplinas.
Drone Tello EDU 3
CAPÍTULO 1. DRONE TELLO EDU
El capítulo sobre el Drone Tello EDU está diseñado para proporcionar una
comprensión detallada de este dron programable y ultraligero, ideal para
educadores y estudiantes.
El capítulo comienza con una introducción al Tello EDU, ofreciendo una visión
general del dron y destacando sus características principales como su capacidad
para alcanzar alturas de hasta 30 metros y realizar movimientos acrobáticos.
También se explica cómo puede iniciar el vuelo automáticamente al ser lanzado
al aire, lo que permite entender las capacidades básicas del dron y su potencial
en diversas aplicaciones.
A continuación, se describe cómo el Tello EDU puede ser controlado mediante
la aplicación dedicada Tello, compatible con diversos dispositivos móviles, y
también mediante controladores Bluetooth. Se detalla la posibilidad de controlar
hasta cuatro drones Tello EDU simultáneamente, facilitando su uso en entornos
educativos donde varios estudiantes pueden trabajar juntos, lo que proporciona
una visión clara de cómo se puede manejar el dron en diferentes escenarios.
La sección sobre especificaciones técnicas del dron proporciona información
precisa sobre su peso, dimensiones, duración de la batería y capacidades de la
cámara. Estos detalles técnicos son esenciales para comprender las limitaciones
y ventajas del Tello EDU en diferentes contextos de uso, ofreciendo al lector una
comprensión completa de lo que el dron puede hacer desde una perspectiva
técnica. Una de las características más destacadas del Tello EDU es su
compatibilidad con el lenguaje de programación Python. Esta sección explora las
posibilidades que esta compatibilidad ofrece, desde la automatización hasta el
control preciso del dron. Se discuten las ventajas de utilizar Python para enseñar
robótica y programación, resaltando cómo esto puede beneficiar a estudiantes y
educadores, y proporcionando una base para aplicaciones más avanzadas
El capítulo también se enfoca en las aplicaciones prácticas del Tello EDU en
entornos educativos. Se proporcionan ejemplos de proyectos y actividades que
se pueden realizar con el dron, demostrando su utilidad como herramienta para
la enseñanza de la programación y la robótica. Se destacan casos de estudio y
experiencias de uso en aulas, lo que ilustra el impacto real y las oportunidades
de aprendizaje que el Tello EDU puede ofrecer.
Finalmente, el capítulo concluye con un resumen de los puntos clave discutidos
y una reflexión sobre el potencial del Tello EDU en la educación. Se anticipan
posibles desarrollos futuros y se anima a los lectores a considerar el dron como
una herramienta educativa poderosa y versátil. Esta conclusión sirve para
reafirmar la importancia del Tello EDU (Ver en Fig. 1.1) y su capacidad para
transformar la educación en programación y robótica, dejando al lector con una
clara comprensión de su valor y potencial.
4 Prototipado de visión por computadora para la detección de objetos en drones autónomos
1.1 Especificaciones
Tabla 1.1 Ficha técnica de dron Tello (ver [1]).
Categoría Especificaciones
Peso 80g (incluyendo hélices y
batería)
Aeronave
Dimensiones 98x92.2x41 mm
Hélice 3 pulgadas
Sensor telemétrico Sí
Barómetro Sí
Funciones integradas
Sistema de visión Sí
Wi-Fi 2.4 GHz 802.11n
Vista en directo 720p
Rendimiento de vuelo Distancia máx. de vuelo 100 m
Velocidad máx. 10 m/s
Tiempo máx. de vuelo 13 min
Altitud máx. de vuelo 30 m
Batería Batería desmontable 1.1 Ah
/ 2.8 V
Foto 5 MP (2592x1936)
Campo de visión 82.6°
Cámara
Video HD 720p 30 fps
Formatos JPG (foto); MP4 (video)
Estabilización electrónica Sí
Drone Tello EDU 5
Fig. 1.1 Dron Tello EDU
1.2 SDK 2.0 y su aplicación en la visión autónoma
El SDK 2.0 proporcionado por Ryze Robotics para el dron Tello es una
herramienta esencial para el desarrollo de aplicaciones de visión por
computadora, especialmente en el ámbito de la visión autónoma en drones. Este
kit facilita la programación y control del dron a través de un protocolo de
datagramas de usuario (UDP), permitiendo la integración de algoritmos
complejos de detección y seguimiento de objetos (Ver [2]).
El SDK permite a los investigadores y desarrolladores enviar comandos
estructurados para manipular el dron y obtener retroalimentación en tiempo real.
Esto es crucial para implementar y probar algoritmos de visión por computadora
que requieren un control preciso y respuestas ágiles del dron en entornos
dinámicos. Además, la cámara integrada del Tello, que proporciona vídeo en vivo
a 720p, es una herramienta valiosa para capturar datos visuales, esenciales para
el entrenamiento y la validación de estos algoritmos.
Adicionalmente, el uso de bibliotecas de Python simplifica la integración de
tecnologías avanzadas de visión por computadora. Estas bibliotecas facilitan la
ejecución de algoritmos de detección de objetos directamente desde el dron,
permitiendo la evaluación en tiempo real de su efectividad y eficiencia. Por
ejemplo, algoritmos de aprendizaje automático y procesamiento de imágenes
pueden ser implementados y testeados directamente en el Tello EDU,
6 Prototipado de visión por computadora para la detección de objetos en drones autónomos
proporcionando una plataforma accesible y eficaz para el prototipado rápido de
soluciones en el campo de la visión autónoma.
El SDK 2.0, por lo tanto, no solo actúa como un puente para la comunicación
entre el programador y el dron, sino que también se convierte en un componente
integral en el desarrollo de aplicaciones de visión autónoma, haciendo del Tello
EDU una herramienta ideal para explorar y expandir las fronteras de la robótica
y la visión por computadora en drones.
Herramientas de software 7
CAPÍTULO 2. OBJETIVOS Y PLAN DE TRABAJO
Este capítulo presenta los objetivos específicos y el plan de trabajo del proyecto,
ofreciendo una hoja de ruta clara para su desarrollo.
El capítulo comienza con una definición clara de los objetivos principales del
proyecto, destacando la meta de explorar el potencial de los drones desde una
perspectiva de visión autónoma y centrarse en el uso del aprendizaje automático
para la detección de objetos. Se subraya la intención de cambiar la percepción
pública de los drones y demostrar su utilidad en contextos educativos y
recreativos.
A continuación, se desglosan los objetivos específicos, cada uno acompañado
de una descripción detallada que explica cómo contribuyen al objetivo general
del proyecto. Estos incluyen la investigación de las capacidades del dron Tello
EDU, la evaluación de diferentes métodos de programación y control, y la
implementación de un algoritmo de detección de objetos eficiente. Cada objetivo
está formulado de manera que proporciona una dirección clara y medible para el
desarrollo del proyecto. El capítulo también aborda los recursos necesarios para
llevar a cabo el proyecto, incluyendo hardware, software y conocimientos
técnicos. Se discuten las herramientas y tecnologías que serán utilizadas, como
el lenguaje de programación Python y las librerías específicas para la visión por
computadora, destacando cómo cada recurso contribuirá al éxito del proyecto.
Finalmente, el capítulo concluye con una reflexión sobre la importancia de una
planificación meticulosa y la necesidad de adaptabilidad durante el desarrollo del
proyecto. Se subraya la importancia de estar preparados para ajustar el plan
según sea necesario para superar desafíos imprevistos y aprovechar
oportunidades que puedan surgir. Esta sección asegura al lector que el proyecto
no solo tiene una dirección clara sino también la flexibilidad necesaria para
responder a las circunstancias cambiantes.
2.1 Tello Engineering Ecosystem
El Tello Engineering Ecosystem es un conjunto integrado de herramientas de
software que permiten el control avanzado del dron Tello utilizando diversos
dispositivos y aplicaciones. Este ecosistema es esencial para la experimentación
y el desarrollo en el ámbito de los drones programables, ofreciendo una
plataforma adaptable que soporta innovaciones en automatización y control de
vuelo.
Este ecosistema se compone de varios módulos de software que actúan como
aplicaciones frontales y servidores, facilitando a los usuarios el control interactivo
del dron. Los módulos están diseñados para ser altamente modulares y pueden
controlar tanto drones individuales como enjambres, extendiendo las
8 Prototipado de visión por computadora para la detección de objetos en drones autónomos
posibilidades de su aplicación. Las tecnologías implementadas incluyen: Python
+ tkinter para el desarrollo de aplicaciones de escritorio que permiten
interacciones directas a través de una interfaz gráfica y Vue + Ionic para la
creación de aplicaciones web que operan desde navegadores, permitiendo
control remoto.
La comunicación entre los diferentes módulos del ecosistema utiliza corredores
MQTT con un protocolo de publicación/subscripción, lo que garantiza una
transmisión de datos eficiente y en tiempo real. Esta arquitectura de
comunicación es crucial para coordinar múltiples drones y módulos de software
simultáneamente.(Fig. 2.1),
Cada módulo dentro del Tello Engineering Ecosystem tiene un repositorio en
GitHub accesible, donde el código y la información detallada están disponibles
para colaboración y desarrollo continuo, permitiendo a investigadores y
desarrolladores contribuir y adaptar el ecosistema a necesidades
específicas.(Ver [3])
Mi objetivo en este proyecto es aportar herramientas de prototipado de visión por
computadora al Tello Engineering Ecosystem, facilitando el desarrollo de
modelos entrenados de manera fácil, rápida y sin costo. Esta contribución es
crucial para permitir que el ecosistema aproveche al máximo las capacidades de
visión por computadora, mejorando la funcionalidad general del sistema y
proporcionando una base sólida para futuras investigaciones y aplicaciones
prácticas en la detección de objetos y la visión autónoma utilizando drones. Mi
trabajo se centra en diseñar y desarrollar interfaces y módulos que integren
tecnologías avanzadas de visión por computadora, optimizando así el proceso
de entrenamiento e implementación de modelos de inteligencia artificial.(Ver [4])
La incorporación de estas herramientas en el Tello Engineering Ecosystem no
solo mejora la capacidad del dron para realizar tareas complejas de visión
autónoma, sino que también abre nuevas posibilidades para aplicaciones
educativas y de investigación. Los estudiantes, investigadores y aficionados
pueden ahora desarrollar y probar de manera eficiente tecnologías emergentes
en el campo de la robótica y la inteligencia artificial, potenciando así la adopción
y el desarrollo continuo de soluciones innovadoras en el área de drones.
Herramientas de software 9
Fig. 2.1 Tello Engineering Ecosystem
2.2 Objetivos
El objetivo principal de este proyecto es desarrollar herramientas de prototipado
de visión por computadora para facilitar la implementación rápida y eficiente de
modelos entrenados de detección de objetos en el Tello Engineering Ecosystem.
Para alcanzar este fin, se han definido varios objetivos específicos que guiarán
cada etapa del desarrollo de este trabajo:
• Investigación y evaluación de tecnologías.
o Investigar las capacidades de visión por computadora del Dron
Tello: Explorar y documentar las capacidades actuales y potenciales
del dron Tello en términos de procesamiento de imágenes y visión por
computadora. Esto incluirá pruebas prácticas para evaluar la eficacia
de los algoritmos existentes y determinar posibles mejoras.
o Evaluar herramientas y marcos de trabajo existentes: Analizar las
herramientas y tecnologías disponibles que se pueden integrar en el
Tello Engineering Ecosystem para soportar el prototipado de visión por
computadora. Esto incluirá la evaluación de bibliotecas de Python,
frameworks de desarrollo de aplicaciones y protocolos de
comunicación como MQTT.
• Desarrollo de módulos y interfaces.
10 Prototipado de visión por computadora para la detección de objetos en drones autónomos
o Desarrollar una interfaz de usuario para prototipado rápido: Estas
interfaces permitirán a los usuarios configurar, probar y operar
modelos de visión por computadora de forma eficiente y sin necesidad
de conocimientos avanzados en programación.
o Implementar módulos de comunicación eficiente: Desarrollar
módulos para facilitar la comunicación eficaz entre el software de
visión por computadora y el control del dron. Esto permitirá una
integración fluida y en tiempo real de los algoritmos de detección de
objetos.
• Prototipado y validación.
o Prototipar y validar modelos de detección de objetos:
Implementar y validar modelos de visión por computadora que
pueden ser entrenados y operados dentro del ecosistema para
detectar y clasificar objetos en tiempo real. Este proceso incluirá la
creación de un entorno de prueba para simular diferentes escenarios
de vuelo y observación.
o Desarrollo de documentación y recursos educativos: Preparar
materiales educativos y documentación que faciliten a otros usuarios
del ecosistema aprender y aplicar las herramientas desarrolladas.
Esto ayudará a democratizar el acceso a tecnologías avanzadas de
visión por computadora dentro de la comunidad de Tello.
• Integración y contribución al ecosistema.
o Integrar las herramientas desarrolladas en el Tello Engineering
Ecosystem: Asegurar que todas las herramientas y módulos
desarrollados sean completamente compatibles y funcionales dentro
del ecosistema existente. Esto incluirá pruebas exhaustivas y ajustes
basados en feedback de usuarios preliminares.
o Publicación y mantenimiento de repositorios: Establecer
repositorios en GitHub para el código desarrollado, acompañados de
guías y documentación detallada, para asegurar que la comunidad
pueda acceder, utilizar y contribuir al desarrollo continuo de las
herramientas.
2.3 Plan de trabajo
A continuación (Tabla 2.3), se muestra la planificación visual de la planificación
de las tareas a lo largo de los meses del proyecto detallando el plan de trabajo y
la organización para cumplir con los objetivos del apartado anterior.
Herramientas de software 11
Tabla 2.3 Plan de trabajo
Q4 ENR FEB MAR ABR MAY JUN
23’
Investigación preliminar y
evaluación de tecnologías
Primera versión
Desarrollo de interfaces y
módulos de comunicación
Prototipado de modelo de
detección de objetos
Desarrollo de material y
documentación
Integración en el Tello
Engineering Ecosystem
12 Prototipado de visión por computadora para la detección de objetos en drones autónomos
CAPÍTULO 3. HERRAMIENTAS DE SOFTWARE
La elaboración de este proyecto se ha hecho mediante el lenguaje de
programación python versión 3.9 o 3.10 y se ha creado de manera que su uso
sea fácil y lo más robusto posible.
Es por esto que se ha trabajado con librerías de python fácilmente descargables
e instalables mediante un IDE, en el caso de este proyecto se ha utilizado
PyCharm.
En los siguientes sub apartados se describirán estas herramientas y los detalles
para su instalación. De esta manera es fácil usar el archivo “[Link]”
para descargar todos los paquetes necesarios con sus respectivas versiones en
el repositorio automáticamente y además la programación completa en el
repositorio de GitHub (ver [5]) para ejecutarlos o editarlos según las necesidades
de cada usuario.
A continuación, este capítulo proporcionará una explicación detallada de las
herramientas de software más importantes utilizadas en el proyecto, como las
librerías de Python y las herramientas de procesamiento de imágenes, así como
las instrucciones de instalación necesarias en caso de que sean más complejas.
3.1 Entorno de desarrollo
Python (Versiones 3.10 - 3.11): El lenguaje de programación principal utilizado
para el desarrollo de los algoritmos. Estas versiones de Python ofrecen
estabilidad y compatibilidad con las librerías más recientes de visión por
computadora y machine learning.
PyCharm: El IDE utilizado para escribir, depurar y probar el código. PyCharm
facilita la gestión de proyectos grandes y complejos gracias a sus características
avanzadas, como el autocompletado de código, la integración con sistemas de
control de versiones, y la gestión de entornos virtuales.
Librerías de Python: Se ha hecho uso de varias librerías esenciales para la
visión por computadora y el procesamiento de imágenes, incluyendo:
● OpenCV: Para el procesamiento de imágenes y video.
● NumPy: Para operaciones matemáticas y manipulación de matrices.
● Pandas: Para el manejo de datos estructurados.
● MQTT: Para la comunicación entre módulos usando el protocolo de
publicación/subscripción.
El archivo [Link] contiene todas las dependencias necesarias para
ejecutar el proyecto. Este archivo permite una instalación rápida y sencilla de
todos los paquetes requeridos utilizando el siguiente comando: pip install -r
[Link].
Herramientas de software 13
3.2 DJITelloPy API
La DJITelloPy API es una biblioteca de Python que facilita la interacción con los
drones Tello, proporcionando una interfaz sencilla y eficiente para enviar
comandos y recibir datos en tiempo real. Esta API es crucial para el desarrollo
de aplicaciones avanzadas de control de drones y es especialmente útil en
proyectos de visión por computadora y automatización de vuelos.
La DJITelloPy API ofrece varias características que son esenciales para el
control avanzado del dron Tello que contiene una librería de python (djitellopy)
que usa el SDK oficial del Tello EDU (ver [6]):
● Control de vuelo: Permite enviar comandos básicos como despegar,
aterrizar y mover el dron en diferentes direcciones.
● Acceso a la cámara: Proporciona funcionalidades para capturar imágenes
y videos en tiempo real desde la cámara del dron, lo cual es fundamental
para la implementación de algoritmos de visión por computadora.
● Recepción de telemetría: Permite recibir datos en tiempo real sobre la
posición, velocidad, y estado del dron, lo cual es esencial para tareas de
monitoreo y control preciso.
● Control de enjambres: Facilita el control simultáneo de múltiples drones,
lo que es útil para proyectos que requieren coordinación entre varios
dispositivos.
Para instalar la DJITelloPy API, se debe utilizar el siguiente comando pip: pip
install djitellopy. A continuación, se presenta un ejemplo básico de cómo utilizar
la DJITelloPy API para controlar un dron Tello(Ver Fig. 3.2):
Fig. 3.2 Ejemplo básico de conexión Dron Tello
14 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Este ejemplo muestra cómo inicializar el dron, conectar con él, iniciar la
transmisión de video y mostrar el feed en tiempo real. También incluye comandos
para finalizar la transmisión y aterrizar el dron que se utilizan en las primeras
versiones de prueba.
En este proyecto, utilizaremos la DJITelloPy API para desarrollar e implementar
algoritmos de visión por computadora, aprovechando sus capacidades para
acceder a la cámara del dron y controlar sus movimientos en tiempo real. La API
facilita la integración de librerías externas de detección de objetos por
computadora permitiendo el desarrollo de aplicaciones que detecten y sigan
objetos, identifiquen patrones y realicen tareas autónomas basadas en la visión.
3.3 Computer Vision Annotation Tool - [Link]
El Computer Vision Annotation Tool (CVAT) es una herramienta de código
abierto desarrollada por Intel para la anotación de imágenes y videos. Es
ampliamente utilizada en proyectos de visión por computadora para crear y
gestionar conjuntos de datos anotados, esenciales para el entrenamiento y
evaluación de modelos de aprendizaje automático. CVAT es una plataforma
robusta y flexible que soporta una amplia variedad de formatos de anotación y
proporciona una interfaz de usuario intuitiva para facilitar el proceso de
anotación(Ver Fig 3.3).
Fig 3.3 Interfaz de usuario CVAT
CVAT ofrece varias características que son esenciales para proyectos de visión
por computadora, incluyendo:
● Interfaz de usuario intuitiva: Proporciona herramientas de anotación
fáciles de usar que permiten a los usuarios dibujar y editar cuadros
Herramientas de software 15
delimitadores, polígonos, polilíneas y puntos de interés en las imágenes y
videos.
● Soporte para múltiples formatos de anotación: Es compatible con una
amplia gama de formatos de anotación, lo que facilita la exportación de
datos anotados a diferentes plataformas y frameworks de aprendizaje
automático.
● Anotación colaborativa: Permite a múltiples usuarios trabajar
simultáneamente en un proyecto, lo cual es ideal para equipos de trabajo
que requieren una colaboración eficiente.
● Automatización y scripts: Ofrece capacidades para automatizar partes
del proceso de anotación mediante el uso de scripts y modelos de
inteligencia artificial pre entrenados.
● Gestión de proyectos: Incluye funciones para gestionar y organizar
proyectos de anotación, facilitando el seguimiento del progreso y la
administración de grandes conjuntos de datos
En este proyecto, utilizaremos [Link] (Ver [7]) para la anotación de imágenes
de entrenamiento para su posterior lectura y reconocimiento del video en vivo
dado por los drones Tello. Las anotaciones son cruciales para entrenar modelos
de visión por computadora, ya que permiten identificar y etiquetar objetos de
interés en las imágenes, facilitando el proceso de aprendizaje supervisado.
El flujo de trabajo con CVAT incluirá las siguientes etapas:
1. Carga de imágenes: Subir las imágenes capturadas por los drones a la
plataforma CVAT para su anotación.
2. Anotación de datos: Utilizar las herramientas de CVAT para crear
anotaciones precisas en las imágenes. Esto incluirá la delimitación de
objetos y el etiquetado de las clases correspondientes.
3. Revisión y refinamiento: Realizar revisiones y refinamientos continuos
de las anotaciones para asegurar la calidad y precisión de los datos
anotados.
4. Exportación de anotaciones: Exportar las anotaciones en el formato
requerido para su uso en el entrenamiento de modelos de visión por
computadora, como COCO, Pascal VOC, o YOLO.
El uso de CVAT en este proyecto ofrece varias ventajas:
● Precisión en las anotaciones: Herramientas avanzadas y precisas que
mejoran la calidad de las anotaciones.
16 Prototipado de visión por computadora para la detección de objetos en drones autónomos
● Eficiencia en el proceso de anotación: Funcionalidades que aceleran el
proceso de anotación, como la clonación de cuadros delimitadores y la
interpolación automática de cuadros entre imágenes.
● Facilidad de uso: Aunque CVAT permite la colaboración, su diseño
también es óptimo para ser utilizado por una sola persona, asegurando
que todas las tareas de anotación puedan ser manejadas eficientemente
sin necesidad de un equipo grande, como es el caso de este proyecto de
final de carrera.
● Compatibilidad con diversos formatos: Flexibilidad para trabajar con
diferentes formatos de datos, facilitando la integración con diversos
pipelines de entrenamiento de modelos.
Para más información sobre cómo utilizar CVAT, se puede consultar la
documentación oficial disponible en su repositorio de GitHub (Ver [8]). Esta
documentación incluye guías detalladas sobre la instalación, configuración y uso
de CVAT, así como ejemplos prácticos y tutoriales. En este proyecto, para dar
una explicación más detallada y práctica del etiquetado fácil y rápido se ha
ejecutado en la aplicación en línea.
3.4 Librería Roboflow
Roboflow es una plataforma integral para la gestión de datos de visión por
computadora que facilita el etiquetado, el preprocesamiento, el aumento de datos
y el entrenamiento de modelos. En este proyecto, utilizamos Roboflow para
realizar el entrenamiento rápido de modelos de visión por computadora, lo que
permite un prototipado eficiente directamente desde Python.(Ver Fig 3.4)
Fig 3.4 Interfaz de usuario Roboflow
Herramientas de software 17
Roboflow ofrece varias características que son esenciales para el desarrollo
rápido y efectivo de modelos de visión por computadora, incluyendo:
● Gestión de datos: Facilita la carga, organización y etiquetado de conjuntos
de datos de imágenes.
● Preprocesamiento y aumento de datos: Proporciona herramientas para el
preprocesamiento de imágenes y el aumento de datos, mejorando así la
calidad y diversidad de los conjuntos de datos.
● Entrenamiento de modelos: Permite el entrenamiento de modelos de
visión por computadora directamente en la plataforma, optimizando el
rendimiento y reduciendo el tiempo necesario para el desarrollo.
El uso de Roboflow en este proyecto ofrece varias ventajas:
● Aceleración del prototipado: Facilita un ciclo de desarrollo rápido, desde
la anotación de datos hasta el entrenamiento y la implementación de
modelos.
● Mejora de la calidad de datos: Las herramientas de preprocesamiento y
aumento de datos mejoran significativamente la calidad y diversidad de
los conjuntos de datos.
● Facilidad de uso: La plataforma es intuitiva y fácil de usar, lo que permite
a los desarrolladores concentrarse en mejorar los modelos sin
preocuparse por los detalles técnicos del manejo de datos.
3.5 Roboflow Inference APK
El Roboflow Inference SDK es una herramienta poderosa que permite a los
desarrolladores integrar modelos de visión por computadora entrenados en la
plataforma de Roboflow directamente en sus aplicaciones Python. Este SDK
facilita la inferencia en tiempo real, proporcionando una interfaz sencilla para
cargar y utilizar modelos de detección de objetos, segmentación y clasificación
de imágenes (Ver Fig 3.5).
18 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Fig 3.5 Interfaz de usuario Roboflow
El Roboflow Inference SDK ofrece varias características esenciales para la
implementación de modelos de visión por computadora, incluyendo:
● Carga de modelos: Permite cargar modelos entrenados en la plataforma
de Roboflow con facilidad.
● Inferencia en tiempo real: Facilita la realización de inferencias en tiempo
real, lo cual es crucial para aplicaciones que requieren respuestas rápidas
y precisas.
● Compatibilidad con diversos modelos: Soporta una amplia variedad de
modelos de visión por computadora, incluyendo detección de objetos,
segmentación y clasificación de imágenes.
● Integración sencilla: Ofrece una API simple y fácil de usar que se integra
perfectamente con aplicaciones Python existentes.
Para instalar el SDK de Roboflow y comenzar a utilizarlo en el proyecto, se debe
usar el siguiente comando pip: pip install roboflow
En este proyecto, el Roboflow Inference SDK se utiliza para integrar los modelos
de visión por computadora entrenados en Roboflow y ejecutar inferencias en
tiempo real con las imágenes capturadas por los drones Tello.
A continuación, se presenta un ejemplo básico de cómo utilizar el SDK de
Roboflow para cargar un modelo y realizar inferencias(Ver Fig 3.6):
Herramientas de software 19
Fig 3.6 Ejemplo básico de cómo utilizar el SDK de Roboflow para cargar un
modelo y realizar inferencias.
Este ejemplo muestra cómo inicializar la conexión a Roboflow, acceder a un
modelo específico y realizar inferencias en una imagen.
El uso del Roboflow Inference SDK en este proyecto ofrece varias ventajas:
● Inferencia en tiempo real: Permite la implementación de modelos que
requieren respuestas rápidas y precisas.
● Facilidad de integración: La API simple facilita la integración de modelos
de visión por computadora en aplicaciones Python existentes.
● Compatibilidad con modelos entrenados: Soporta una amplia variedad de
modelos, permitiendo flexibilidad en el tipo de tareas de visión por
computadora que se pueden implementar.
Para más información sobre cómo utilizar el Roboflow Inference SDK, se puede
consultar la documentación oficial disponible en su sitio web(Ver [9]. Esta
documentación incluye guías detalladas, ejemplos prácticos y tutoriales que
pueden ayudar a maximizar el uso del SDK en proyectos de visión por
computadora.
20 Prototipado de visión por computadora para la detección de objetos en drones autónomos
CAPÍTULO 4. PROTOTIPO DEL MODELO DE
DETECCIÓN
En este capítulo, se describe el proceso de producción del prototipo de un
modelo de detección de objetos utilizando el dron Tello y las herramientas y
tecnologías descritas en los capítulos anteriores. Como ejemplo práctico, hemos
entrenado un modelo para la detección de latas de Coca-Cola, utilizando un flujo
de trabajo completo que incluye la captura de imágenes con un dispositivo ajeno
al dron Tello, la anotación de datos con CVAT, y el entrenamiento y
procesamiento de inferencias con Roboflow. El dron Tello se utiliza
específicamente para la captura de imágenes en tiempo real y la ejecución de
inferencias con el modelo entrenado(Ver Fig 4.1).
Fig 4.1 Flujo de prototipado
El primer paso en el desarrollo del modelo de detección fue la captura de
imágenes utilizando un dispositivo ajeno al dron Tello. Estas imágenes fueron
tomadas en un entorno controlado, donde se colocaron varias latas de Coca-
Cola en diferentes posiciones y orientaciones. Las imágenes capturadas se
utilizaron como base para el conjunto de datos de entrenamiento.
Prototipo del modelo de detección 21
Posteriormente, las imágenes capturadas fueron importadas a la herramienta
Computer Vision Annotation Tool (CVAT) para su anotación. El proceso de
anotación incluyó la delimitación de las latas de Coca-Cola en cada imagen y el
etiquetado correspondiente. Este paso es crucial para asegurarse de que el
modelo de detección pueda aprender a identificar correctamente las latas
durante el entrenamiento.
Una vez que las imágenes fueron anotadas, se exportaron desde CVAT y se
subieron a la plataforma Roboflow. Utilizamos Roboflow para gestionar los datos,
realizar el preprocesamiento y el aumento de los datos, y finalmente, entrenar el
modelo de detección de latas de Coca-Cola. Roboflow proporciona herramientas
eficientes para configurar los parámetros de entrenamiento y monitorizar el
progreso del modelo, lo que facilita un rápido prototipado.
A continuación, las imágenes anotadas se subieron a Roboflow, donde se
realizaron tareas de preprocesamiento y aumento de datos para mejorar la
diversidad y calidad del conjunto de datos. Después, se configuraron los
parámetros del modelo, incluyendo la arquitectura del modelo, los
hiperparámetros de entrenamiento y las técnicas de aumento de datos.
El modelo se entrenó en la plataforma de Roboflow, aprovechando sus
capacidades de procesamiento en la nube para acelerar el proceso. Tras el
entrenamiento, el modelo de detección de latas de Coca-Cola fue integrado en
un script de Python utilizando el Roboflow Inference SDK. Este SDK permite
ejecutar inferencias en tiempo real con las imágenes capturadas por el dron
Tello, proporcionando resultados rápidos y precisos.
El uso combinado del dron Tello para la captura de imágenes en tiempo real,
CVAT para la anotación de imágenes, y Roboflow para el entrenamiento y la
inferencia de modelos de visión por computadora, proporciona una solución
eficiente y robusta para el desarrollo de aplicaciones de detección de objetos.
Este flujo de trabajo puede ser adaptado para otros tipos de objetos y
aplicaciones, demostrando la versatilidad y potencia de estas herramientas en
proyectos de visión por computadora.
22 Prototipado de visión por computadora para la detección de objetos en drones autónomos
CAPÍTULO 5. ETIQUETADO DE IMÁGENES
El etiquetado de imágenes es una etapa crucial en el desarrollo de modelos de
visión por computadora. Este proceso implica la identificación y demarcación de
objetos de interés en las imágenes, proporcionando los datos necesarios para
entrenar modelos precisos y efectivos. En este capítulo, profundizaremos en el
uso de Computer Vision Annotation Tool (CVAT) para el etiquetado de imágenes
en el contexto de nuestro proyecto de detección de latas de Coca-Cola.
El etiquetado preciso de imágenes es fundamental para:
● Entrenamiento de modelos: Los modelos de visión por computadora
dependen de datos anotados para aprender a reconocer y clasificar
objetos. La precisión del etiquetado afecta directamente la efectividad del
modelo.
● Evaluación del rendimiento: Los conjuntos de datos etiquetados permiten
la validación y evaluación del rendimiento del modelo, asegurando que
cumple con los criterios de precisión y eficiencia requeridos.
● Generalización: Un etiquetado detallado y consistente ayuda al modelo a
generalizar mejor a nuevas imágenes y condiciones, mejorando su
robustez y aplicabilidad en diferentes escenarios.
CVAT (Computer Vision Annotation Tool) es una herramienta de código abierto
desarrollada por Intel. Ofrece una interfaz web intuitiva y potente para la
anotación de imágenes y videos, soportando múltiples formatos de anotación y
facilitando la colaboración entre usuarios.
5.1 Proceso de etiquetado con CVAT
El proceso de etiquetado con CVAT para nuestro proyecto incluye los siguientes
pasos:
5.1.1 Configuración del proyecto
1. Crear un nuevo proyecto: Iniciar sesión en CVAT y crear un nuevo proyecto.
Esto incluye definir el nombre del proyecto y los objetivos específicos de
anotación. De todas maneras, se puede ir directamente a crear una nueva “Task”
para añadirle más velocidad. (Ver en Fig 5.1)
Etiquetado de imágenes 23
Fig 5.1 Creación de nueva “Task”
2. Definir la configuración básica: Configurar las etiquetas que se utilizarán
durante el proceso de anotación. Para este proyecto, se definió la etiqueta "can-
coke" para identificar las latas en las imágenes, así mismo como el nombre de
proyecto y task. (Ver en Fig 5.2)
Fig 5.2 Definición de configuración básica de etiquetado
24 Prototipado de visión por computadora para la detección de objetos en drones autónomos
5.1.2 Carga de imágenes
1. Subir imágenes: Importar las imágenes capturadas al proyecto en CVAT.
Estas imágenes fueron previamente tomadas con un dispositivo ajeno al dron
Tello (Ver Fig 5.3).
Fig 5.3 Espacio de subida de imágenes
Es importante organizar las imágenes en secuencias o lotes con el objetivo de
facilitar el proceso de anotación sistemática y eficiente.
5.1.3 Anotación de imágenes
En este punto, detallamos lo necesario para la anotación de las imágenes, una
vez cargadas para su puesta en marcha. Para ello, es necesario recurrir a varios
pasos que se detallan a continuación (Ver Fig 5.4):
1. Herramientas de anotación: Utilizamos las herramientas de anotación de
CVAT para dibujar cuadros delimitadores alrededor de las latas de Coca-Cola.
Esto incluye:
● Cuadros delimitadores: Dibujamos rectángulos alrededor de cada lata de
Coca-Cola. Esta es la opción por la que se ha optado.
● Polígonos: En caso de necesitar mayor precisión, utilizar polígonos para
delimitar áreas irregulares.
Etiquetado de imágenes 25
2. Etiquetado de objetos: Asignamos la etiqueta "cocacola-can" a cada objeto
anotado, asegurando que cada lata esté correctamente identificada.
3. Revisión y ajuste: Revisamos las anotaciones para garantizar su precisión y
a su vez ajustamos las anotaciones según sea necesario para corregir errores o
mejorar la delimitación, si fuera necesario.
Fig 5.4 Dashboard de etiquetado
5.1.4 Exportación de anotaciones
1. Formato de exportación: Seleccionamos el formato de exportación
adecuado para las anotaciones. CVAT soporta varios formatos como COCO,
Pascal VOC, y YOLO y otras 26 tipos de anotaciones(Ver Fig 5.5).
2. Exportar anotaciones: Descargamos las anotaciones etiquetadas en el
formato seleccionado, listas para ser utilizadas en el entrenamiento del modelo
en Roboflow. En este proyecto se ha preferido utilizar PASCAL VOC 1.1 (Ver Fig
5.6).
26 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Fig 5.5 Elección de formato de exportación de anotación
Fig 5.6 Formatos de anotaciones disponibles en [Link]
Etiquetado de imágenes 27
5.1.5 Buenas prácticas en el etiquetado
Durante el etiquetado, se aconseja seguir unas pautas y normas para asegurar
la calidad y consistencia del etiquetado, se deben seguir algunas buenas
prácticas:
● Consistencia en la anotación: Mantener un enfoque consistente en la
creación de cuadros delimitadores y la asignación de etiquetas.
● Revisión y validación: Realizar revisiones periódicas de las anotaciones
para identificar y corregir posibles errores.
● Documentación de reglas de etiquetado: Documentar las reglas y criterios
de anotación para garantizar que todas las anotaciones sigan los mismos
estándares.
CVAT Tips
1. Iniciar la lista de etiquetas con la clase más representada: Comenzar
la lista de etiquetas con la clase más representada para que sea la
predeterminada al dibujar un cuadro.
2. Etiquetar todos los objetos de cada clase primero: Focalizarse en una
clase a la vez y cambiar todas las etiquetas de esa clase de una vez.
3. Usar atajos de teclado: Por ejemplo, presionar "N" para dibujar un nuevo
cuadro.
CVAT Alternatives
CVAT es solo una de muchas herramientas de etiquetado para visión por
computadora. En este proyecto hemos decidido utilizar [Link], de todas
maneras, también se puede probar Roboflow Annotate, que está diseñado para
simplificar muchos de los aspectos más complicados de las herramientas de
código abierto como CVAT.
Alternativas comunes a CVAT incluyen:
1. LabelImg: Una herramienta de anotación de imágenes gratuita escrita en
Python.
2. LabelMe: Creada por MIT, es una herramienta de anotación gratuita para
tareas de visión por computadora.
El etiquetado de imágenes es una etapa esencial en el desarrollo de modelos de
visión por computadora. Utilizando CVAT, se logró un etiquetado preciso y
eficiente de las imágenes, proporcionando una base sólida para el entrenamiento
del modelo. Este proceso no solo mejora la precisión del modelo, sino que
28 Prototipado de visión por computadora para la detección de objetos en drones autónomos
también garantiza su capacidad para generalizar y desempeñarse bien en
diversas condiciones y escenarios.
Al finalizar el proceso de etiquetado, se obtuvo un conjunto de datos bien
anotado que fue utilizado para entrenar el modelo de detección de latas de Coca-
Cola en Roboflow. La precisión y consistencia del etiquetado contribuyeron
significativamente a la efectividad del modelo, en el cual se etiquetaron unas 37
imágenes con diferentes tipos de Coca-Cola, tales como: Coca-cola Zero y
Cocacola Normal, además de ediciones especiales de Navidad. Todo esto con
el objetivo de garantizar la variedad para obtener un buen resultado a la hora de
entrenar nuestro modelo.
Preparación de datos del modelo de detección 29
CAPÍTULO 6. PREPARACIÓN DE DATOS DEL MODELO
DE DETECCIÓN
En este capítulo, se describe el proceso de preparación de datos para el
entrenamiento del modelo de detección. La correcta preparación de los datos es
esencial para asegurar que el modelo tenga la información necesaria para
aprender y generalizar de manera efectiva. Utilizaremos las imágenes anotadas
con CVAT y seguiremos una serie de pasos para cargar, pre-procesar y
organizar estos datos en Roboflow debido a su eficiencia y facilidad de uso.
6.1 Importación y organización de imágenes anotadas
El primer paso en la preparación de datos es la importación y organización de
las imágenes anotadas en la plataforma Roboflow .
6.1.1 Exportación de imágenes anotadas desde CVAT
● Formato de exportación: Las imágenes anotadas en CVAT se exportan
en formato PASCAL VOC. Este formato es ampliamente utilizado y
compatible con múltiples plataformas de entrenamiento.
● Exportación de anotaciones: Descargar las imágenes y los archivos de
anotación en formato PASCAL VOC desde CVAT.
6.1.2 Subida de imágenes a Roboflow
● Crear un proyecto en Roboflow: Iniciar sesión en Roboflow y crear un
nuevo proyecto específico para el conjunto de datos de detección de latas
de Coca-Cola (Fig 6.1).
Fig 6.1 Puesta en marcha del modelo en el Workspace de nuestro proyecto
30 Prototipado de visión por computadora para la detección de objetos en drones autónomos
● Subir imágenes y anotaciones: Importar las imágenes y los archivos de
anotación exportados desde CVAT al proyecto en Roboflow(Ver Fig 6.2).
Fig 6.2 Interfaz del dataset de imágenes etiquetadas de Roboflow
6.1.3 Organización del conjunto de datos
● Etiquetado y organización: Asegurarse de que las etiquetas y anotaciones
se hayan importado correctamente. Organizar las imágenes en carpetas
o lotes si es necesario.
● Revisión de anotaciones: Revisar las anotaciones importadas para
confirmar que todas las etiquetas se han asignado correctamente.
6.2 Preprocesamiento de Datos
El preprocesamiento de datos es una etapa crítica que mejora la calidad del
conjunto de datos y ayuda a entrenar un modelo más robusto.
6.2.1 Aumento de datos
● Técnicas de aumento: Aplicar técnicas de aumento de datos para
incrementar la diversidad del conjunto de datos. Esto puede incluir:
- Rotación: Girar las imágenes en diferentes ángulos.
Preparación de datos del modelo de detección 31
- Escalado: Aumentar o reducir el tamaño de los objetos en las
imágenes.
- Traslación: Desplazar los objetos dentro de las imágenes.
● Ajuste de brillo y contraste: Modificar los niveles de brillo y contraste para
simular diferentes condiciones de iluminación.
● Configuración de aumento en Roboflow: Utilizar las herramientas de
Roboflow para configurar y aplicar las técnicas de aumento de datos
automáticamente (Ver Fig 6.3).
Fig 6.3 Procesamiento y aumento de los datos del dataset del proyecto.
6.2.2 Normalización y escalado
● Normalización: Ajustar los valores de los píxeles de las imágenes para
que estén en un rango consistente, normalmente entre 0 y 1.
● Escalado: Redimensionar las imágenes a una resolución estándar
utilizada por el modelo de detección.
6.2.3 División del conjunto de datos
● División en subconjuntos: Dividir el conjunto de datos en subconjuntos de
entrenamiento, validación y prueba. Una división común es:
32 Prototipado de visión por computadora para la detección de objetos en drones autónomos
● 70% para Entrenamiento: Para enseñar al modelo a reconocer
patrones.
● 20% para Validación: Para ajustar hiperparámetros y evitar el
sobreajuste.
● 10% para Prueba: Para evaluar el rendimiento final del modelo en
datos no vistos.
Configuración en Roboflow: Utilizar las herramientas de Roboflow para dividir
automáticamente el conjunto de datos en estos subconjuntos (Ver Fig 6.2).
Fig 6.2 Esquema de división del conjunto de datos en subconjuntos
6.3 Revisión y validación de datos
Antes de proceder con el entrenamiento del modelo, es crucial revisar y validar
el conjunto de datos preprocesado.
6.3.1 Revisión de calidad de datos
● Inspección visual: Revisar visualmente una muestra de las imágenes
preprocesadas para asegurarse de que las anotaciones y el aumento de
datos se hayan aplicado correctamente.
● Corrección de errores: Identificar y corregir cualquier error en las
anotaciones o el preprocesamiento de datos.
6.3.2 Validación de Subconjuntos
● Consistencia de anotaciones: Asegurarse de que las anotaciones sean
consistentes a lo largo de los subconjuntos de entrenamiento, validación
y prueba.
● Balance de clases: Verificar que las clases estén equilibradas en cada
subconjunto para evitar sesgos en el entrenamiento del modelo.
La preparación adecuada de los datos es un paso esencial para el éxito del
entrenamiento del modelo de detección. Al importar y organizar las imágenes
anotadas en Roboflow, aplicar técnicas de preprocesamiento y aumentar los
Preparación de datos del modelo de detección 33
datos, y revisar y validar cuidadosamente el conjunto de datos, nos aseguramos
que el modelo tenga la mejor información posible para aprender. Estos pasos
detallados proporcionan una base sólida para el entrenamiento efectivo y
eficiente del modelo, lo que llevará a un mejor rendimiento y generalización en
aplicaciones reales (Ver Fig 6.4).
Fig 6.4 Interfaz del dataset de imágenes etiquetadas de Roboflow
34 Prototipado de visión por computadora para la detección de objetos en drones autónomos
CAPÍTULO 7. CONFIGURACIÓN Y ENTRENAMIENTO
DEL MODELO
En este capítulo, se describe el proceso detallado de configuración y
entrenamiento del modelo de detección utilizando Roboflow. Con las imágenes
anotadas y pre-procesadas adecuadamente, es fundamental configurar el
modelo correctamente y seguir un proceso de entrenamiento estructurado para
obtener un modelo eficiente y preciso.
7.1 Configuración del modelo
Antes de iniciar el entrenamiento, es esencial configurar el modelo
adecuadamente en Roboflow. Esto incluye seleccionar la arquitectura del
modelo, ajustar los hiperparámetros y establecer los criterios de evaluación.
7.1.1 Selección de la Arquitectura del Modelo
Roboflow ofrece soporte para varias arquitecturas de modelos de detección de
objetos. Para este proyecto, se puede optar por una arquitectura popular como
YOLO (You Only Look Once), SSD (Single Shot MultiBox Detector) o Faster R-
CNN.
La selección de la arquitectura depende de varios factores como la precisión
requerida, el tiempo de inferencia y los recursos computacionales disponibles.
7.1.2 Ajuste de hiperparámetros
1. Tasa de aprendizaje: Configurar una tasa de aprendizaje adecuada para
el modelo. Una tasa de aprendizaje demasiado alta puede causar
inestabilidad, mientras que una demasiado baja puede hacer que el
modelo tarde mucho en converger.
2. Número de épocas: Definir el número de épocas (iteraciones completas
sobre el conjunto de datos de entrenamiento) para el entrenamiento. Más
épocas permiten al modelo aprender mejor, pero también aumentan el
riesgo de sobreajuste.
3. Tamaño del lote: Establecer el tamaño del lote, que es el número de
muestras procesadas antes de actualizar los parámetros del modelo. Un
tamaño de lote adecuado puede mejorar la estabilidad y eficiencia del
entrenamiento.
Configuración y entrenamiento del modelo 35
7.1.3 Criterios de evaluación
1. Precisión del modelo: Medir la precisión del modelo utilizando métricas
como el Mean Average Precision (mAP), que evalúa la precisión y el recall
en diferentes umbrales de confianza.
2. Mean Average Precisión (maP): La precisión media media (mAP) se utiliza
para medir el rendimiento de los modelos de visión por ordenador. mAP
es igual a la media de la métrica de precisión media en todas las clases
de un modelo. Puede utilizar mAP para comparar modelos diferentes en
la misma tarea y versiones diferentes del mismo modelo. mAP se mide
entre 0 y 1.
Para entender la precisión media con más detalle, debemos dedicar algo
de tiempo a discutir las matrices de confusión, la precisión, la
recuperación y la curva precisión-recaptura(Ver [10]).
3. Pérdida: Monitorizar la función de pérdida durante el entrenamiento para
asegurarse de que el modelo esté aprendiendo correctamente y no esté
sobreajustando.
7.2 Proceso de entrenamiento
Con los datos preparados y el modelo configurado, se inicia el proceso de
entrenamiento en Roboflow. Este proceso implica varias etapas y monitorización
constante para ajustar y mejorar el modelo.
7.2.1 Inicio del entrenamiento
1. Cargar datos y configuración: Cargar los datos preprocesados y la
configuración del modelo en Roboflow.
2. Iniciar el entrenamiento: Comenzar el entrenamiento del modelo en la
plataforma, aprovechando la infraestructura de procesamiento en la nube
de Roboflow.
7.2.2 Monitorización del entrenamiento
1. Visualización de métricas: Utilizar las herramientas de visualización de
Roboflow para monitorizar métricas de rendimiento en tiempo real, como
la pérdida y la precisión.
36 Prototipado de visión por computadora para la detección de objetos en drones autónomos
2. Ajustes en tiempo real: Realizar ajustes en tiempo real si es necesario,
como modificar la tasa de aprendizaje o detener el entrenamiento si se
observa un sobreajuste.
El modelo utilizado en las primeras iteraciones fue Roboflow 3.0 Object Detection
(Fast). Este modelo nos ha permitido una rapidez para el prototipo del modelo
de detección de objetos en menos de 15 minutos (Ver en Fig 7.1)
Fig 7.1 Image Dataset de la primera versión del modelo
7.3 Pruebas del modelo de detección
Una vez completado el entrenamiento, se procede a realizar pruebas
exhaustivas del modelo para evaluar su rendimiento y ajustar los parámetros
según sea necesario.
7.3.1 Evaluación en el conjunto de validación
1. Evaluación en el conjunto de validación: Evaluar el rendimiento del
modelo en el conjunto de validación al final de cada época para ajustar
los hiperparámetros según sea necesario.
2. Pruebas finales: Al finalizar el entrenamiento, evaluar el modelo en el
conjunto de prueba para obtener una medida precisa de su rendimiento
en datos no vistos.
Configuración y entrenamiento del modelo 37
7.3.2 Interpretación de resultados
1. Análisis de métricas: En este proyecto, tendremos en cuenta las métricas clave
como mAP, precisión, recall y pérdida para determinar la efectividad del modelo.
2. Visualización de predicciones: Utilizaremos Roboflow para visualizar las
predicciones del modelo sobre imágenes de prueba y evaluar cualitativamente
su desempeño.
7.4 Evaluación del modelo de detección de objetos
Después de realizar las pruebas, se lleva a cabo una evaluación detallada del
modelo para identificar áreas de mejora y realizar ajustes finales. Estos ajustes
que hemos hecho, es una combinación entre hacer un mejor entrenamiento para
que el modelo con tenga mejores métricas, y la calidad y variedad de imágenes.
7.4.1 Ajustes hiperparámetricos
1. Ajustes hiperparámetricos: Basado en los resultados, ajustar los
hiperparámetros y realizar entrenamientos adicionales si es necesario.
• Tasa de aprendizaje: Configurar una tasa de aprendizaje adecuada para
el modelo. Una tasa de aprendizaje demasiado alta puede causar
inestabilidad, mientras que una demasiado baja puede hacer que el
modelo tarde mucho en converger.
• Número de épocas: Definir el número de épocas (iteraciones completas
sobre el conjunto de datos de entrenamiento) para el entrenamiento. Más
épocas permiten al modelo aprender mejor, pero también aumentan el
riesgo de sobreajuste.
• Tamaño del lote: Establecer el tamaño del lote, que es el número de
muestras procesadas antes de actualizar los parámetros del modelo. Un
tamaño de lote adecuado puede mejorar la estabilidad y eficiencia del
entrenamiento
2. Mejoras en el conjunto de datos: Considerar la adición de más datos anotados
o la refinación de las anotaciones para mejorar aún más el rendimiento del
modelo.
7.4.2 Resultados y análisis
1. Análisis de métricas finales: Se realizó un análisis exhaustivo de las métricas
finales para evaluar el rendimiento general del modelo.
38 Prototipado de visión por computadora para la detección de objetos en drones autónomos
2. Informe de resultados: Documentamos los resultados obtenidos, incluyendo
las métricas clave y ejemplos visuales de las predicciones del modelo.
La configuración y el entrenamiento del modelo de detección es un proceso
iterativo que requiere una cuidadosa preparación de datos, configuración de
modelos y monitorización constante. Utilizando Roboflow, se puede realizar un
entrenamiento eficiente y efectivo, aprovechando sus capacidades avanzadas
de preprocesamiento y monitorización. Los resultados obtenidos proporcionan
una base sólida para la implementación del modelo en aplicaciones reales,
demostrando la viabilidad y efectividad de las herramientas utilizadas en este
proyecto.
Análisis de resultados del modelo de detección 39
CAPÍTULO 8. ANÁLISIS DE RESULTADOS DEL
MODELO DE DETECCIÓN
En este capítulo, se presenta un análisis exhaustivo de los resultados obtenidos
del entrenamiento de los modelos de detección en Roboflow. Se han entrenado
tres versiones de modelos diferentes, y se analizarán sus métricas principales
tanto de entrenamiento como de evaluación de referencia, como Mean Average
Precision (mAP), Precisión y Recall. Además, se examinarán los detalles de los
conjuntos de datos, los gráficos de entrenamiento y los checkpoints utilizados
para cada modelo.
8.1 Descripción de los modelos entrenados
Para este proyecto, se han entrenado tres versiones de modelos diferentes
utilizando Roboflow. A continuación, se detallan las características y
configuraciones principales de cada modelo:
Tabla 8.1 Características y funciones principales del modelo 1: tfg-ls1lh/1.
Modelo 1: tfg-ls1lh/1
Tipo de modelo Roboflow 3.0 Object Detection (Fast)
Checkpoint COCOn
Número total de imágenes 22
Dataset Split Incluye imágenes variadas con
diferentes condiciones de iluminación
y ángulos.
Train,Valid,Test Set • Train Set: 73%
• Valid Set: 18%
• Test Set: 9%
Preprocessing Auto-Orient y Resize de Stretch
640x640
Training & Validation Graphs Gráficos de pérdida y precisión que
muestran la evolución del modelo
durante el entrenamiento.
La imagen proporcionada (ver Fig. 8.1) muestra las métricas de entrenamiento y
validación de la primera versión del modelo entrenado en Roboflow, denominado
tfg-ls1lh/1.
40 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Fig. 8.1 Gráficas de los resultados de las métricas de entrenamiento y
validación de la primera versión del modelo entrenado en Roboflow.
Para evitar redundancias y proporcionar una explicación más detallada de los
gráficos de entrenamiento y validación, se ha incluido un anexo(Ver Anexo 1)
con un análisis pormenorizado de cada gráfico. Este anexo detalla las
observaciones e interpretaciones de los diferentes tipos de pérdidas y métricas,
tanto en los conjuntos de entrenamiento como de validación.
El modelo 1 (tfg-ls1lh/1) muestra una tendencia general de mejora en la mayoría
de las métricas de entrenamiento, aunque con fluctuaciones significativas. Las
métricas de validación sugieren que el modelo aún enfrenta desafíos para
generalizar correctamente.
Tabla 8.2 Características y funciones principales del modelo 1: tfg-ls1lh/2.
Modelo 2: tfg-ls1lh/2
Tipo de modelo Roboflow 3.0 Object Detection (Fast)
Checkpoint Checkpoint seleccionado basado en
el mejor rendimiento en el conjunto de
validación
Número total de imágenes 77
Dataset Split Conjunto de datos balanceado con
imágenes anotadas
consistentemente.
Train,Valid,Test Set • Train Set: 86%
• Valid Set: 9%
• Test Set: 5%
Preprocessing Auto-Orient y Resize de Stretch
640x640
Análisis de resultados del modelo de detección 41
Augmentations • Outputs per training exemple: 3
• Flip: Horizontal, vertical
Training & Validation Graphs Gráficos que indican la convergencia
del modelo y las fluctuaciones en la
pérdida.
La imagen proporcionada (Fig. 8.2) muestra las métricas de entrenamiento y
validación del segundo modelo entrenado en Roboflow, denominado tfg-ls1lh/2.
Fig. 8.2 Gráficas de los resultados de las métricas de entrenamiento y
validación de la segunda versión del modelo entrenado en Roboflow.
Para evitar redundancias y proporcionar una explicación más detallada de los
gráficos de entrenamiento y validación, se ha incluido un anexo(Ver Anexo 2)
con un análisis pormenorizado de cada gráfico. Este anexo detalla las
observaciones e interpretaciones de los diferentes tipos de pérdidas y métricas,
tanto en los conjuntos de entrenamiento como de validación.
Tabla 8.3 Características y funciones principales del modelo 1: tfg-ls1lh/3.
Modelo 3: tfg-ls1lh/3
Tipo de modelo Roboflow 3.0 Object Detection (Fast)
Checkpoint tfg-ls1lh/2
Número total de imágenes 68
Dataset Split Conjunto de datos enfocado en alta
variabilidad de las latas de Coca-Cola
en diferentes escenarios.
42 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Train,Valid,Test Set • Train Set: 86%
• Valid Set: 9%
• Test Set: 5%
Preprocessing • Auto-Orient: Applied
• Static Crop: 25-75% Horizontal
Region, 25-75% Vertical
Region
• Resize: Stretch to 640x640
• Grayscale: Applied
Augmentations • Outputs per training example:
3
• Flip: Horizontal, Vertical
• Grayscale: Apply to 15% of
images
Training & Validation Graphs Gráficos de entrenamiento que
destacan la estabilidad y mejora del
modelo.
La imagen proporcionada (Ver Fig. 8.3) muestra las métricas de entrenamiento
y validación del tercer modelo entrenado en Roboflow, denominado tfg-ls1lh/3. A
continuación se presenta un análisis detallado de cada gráfico:
Fig. 8.3 Gráficas de los resultados de las métricas de entrenamiento y
validación de la tercera versión del modelo entrenado en Roboflow.
Para evitar redundancias y proporcionar una explicación más detallada de los
gráficos de entrenamiento y validación, se ha incluido un anexo(Ver Anexo 3)
con un análisis pormenorizado de cada gráfico. Este anexo detalla las
Análisis de resultados del modelo de detección 43
observaciones e interpretaciones de los diferentes tipos de pérdidas y métricas,
tanto en los conjuntos de entrenamiento como de validación.
8.2 Evaluación global de las métricas
Para evaluar los modelos, se utilizaron las siguientes métricas principales:
• mAP (Mean Average Precision): Evalúa la precisión promedio del modelo
a través de diferentes umbrales de confianza.
• mAP@50:95: es una variante que proporciona una visión más completa
del rendimiento del modelo al evaluar su precisión en múltiples umbrales
de IoU (Intersection over Union). Un modelo con un buen mAP@50:95
generalmente es más robusto y capaz de detectar objetos con diferentes
grados de precisión, lo que es crucial en aplicaciones del mundo real
donde las condiciones pueden variar.
• Precisión: Mide la exactitud de las predicciones del modelo, es decir, la
proporción de verdaderos positivos entre todas las predicciones positivas.
• Recall: Mide la capacidad del modelo para identificar correctamente todas
las instancias de las clases de interés, es decir, la proporción de
verdaderos positivos entre todas las instancias reales de las clases.
Esto nos da una visión global y más rápida de elegir el modelo que queremos
utilizar como referente en las pruebas junto al dron para ver cual es la mejor
opción en vuelo.
A continuación, se presentan los resultados detallados de cada modelo en
términos de las métricas mencionadas:
mAP(%) Precisión(%) Recall(%)
tfg-ls1lh/1 74,6 100 64,8
tfg-ls1lh/2 82,1 83 74,8
tfg-ls1lh/3 79,9 93,9 73,2
8.2.1 Modelo tfg-ls1lh/1
Este modelo presenta la mayor precisión, indicando que casi todas las
detecciones realizadas son correctas. Sin embargo, su recall es el más bajo de
los tres modelos, lo que significa que no detecta todos los objetos presentes.
Este comportamiento sugiere que el modelo es muy conservador y solo realiza
predicciones cuando está muy seguro, omitiendo muchas detecciones
potenciales.
44 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Para entender mejor, estos resultados, a continuación, explicaremos los
resultados obtenidos del entrenamiento mediante un análisis adicional del
modelo gracias a los gráficos que nos ha proporcionado Roboflow en su
plataforma (Ver Fig 8.4).
Fig. 8.4 Gráficas de entrenamiento globales del primer modelo tfg-ls1lh/1
Para evitar redundancias y proporcionar una explicación más detallada de los
gráficos de entrenamiento y validación, se ha incluido un anexo (Ver Anexo 4)
que contiene un análisis pormenorizado de cada gráfico. Este anexo detalla las
observaciones e interpretaciones de los diferentes tipos de pérdidas y métricas,
tanto en los conjuntos de entrenamiento como de validación, incluyendo gráficos
de mAP (mAP y mAP@50:95) y de pérdida.
8.2.2 Modelo tfg-ls1lh/2
Este modelo logra el mayor mAP, indicando un equilibrio entre precisión y recall.
Aunque su precisión es menor que la del modelo tfg-ls1lh/1, su recall es
significativamente mejor, lo que indica que el modelo es más equilibrado y capaz
de detectar una mayor cantidad de objetos sin perder mucha precisión.
Para entender mejor, estos resultados, a continuación, explicaremos los
resultados obtenidos del entrenamiento mediante un análisis adicional del
modelo gracias a los gráficos que nos ha proporcionado Roboflow en su
plataforma (Ver Fig 8.5).
Análisis de resultados del modelo de detección 45
Fig. 8.5 Gráficas de entrenamiento globales del primer modelo tfg-ls1lh/2
La imagen proporcionada muestra gráficos detallados de las métricas de
entrenamiento del modelo tfg-ls1lh/2. El modelo tfg-ls1lh/2 presenta un buen
equilibrio entre precisión y recall, con un mAP@50:95 que sugiere robustez en
la detección de objetos a diferentes niveles de superposición. Los gráficos de
pérdida indican un proceso de aprendizaje estable y efectivo.
Para evitar redundancias y proporcionar una explicación más detallada de los
gráficos de entrenamiento y validación, se ha incluido un anexo (Ver Anexo 5)
que contiene un análisis pormenorizado de cada gráfico. Este anexo detalla las
observaciones e interpretaciones de los diferentes tipos de pérdidas y métricas,
tanto en los conjuntos de entrenamiento como de validación, incluyendo gráficos
de mAP (mAP y mAP@50:95) y de pérdida.
8.2.3 Modelo tfg-ls1lh/3
Este modelo presenta una alta precisión y un buen recall, con un mAP cercano
al del modelo tfg-ls1lh/2. Este balance indica que el modelo es bastante eficaz
en detectar objetos correctamente y en una cantidad adecuada, aunque no
alcanza la mejor mAP ni el mejor recall entre los tres modelos.
La imagen proporcionada por roboflow(Ver Fig 8.6) muestra gráficos detallados
de las métricas de entrenamiento del modelo tfg-ls1lh/3.
46 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Fig. 8.6 Gráficas de entrenamiento globales del primer modelo tfg-ls1lh/3
El modelo tfg-ls1lh/3 presenta un buen equilibrio entre precisión y recall, con un
mAP@50:95 que sugiere robustez en la detección de objetos a diferentes niveles
de superposición. Los gráficos de pérdida indican un proceso de aprendizaje
estable y efectivo.
Para evitar redundancias y proporcionar una explicación más detallada de los
gráficos de entrenamiento y validación, se ha incluido un anexo (Ver Anexo 6)
que contiene un análisis pormenorizado de cada gráfico. Este anexo detalla las
observaciones e interpretaciones de los diferentes tipos de pérdidas y métricas,
tanto en los conjuntos de entrenamiento como de validación, incluyendo gráficos
de mAP (mAP y mAP@50:95) y de pérdida.
8.3 Conclusiones y recomendaciones de modelado
A continuación, después de haber hecho comparaciones y un estudio exhaustivo
sobre que modelo vamos a utilizar en vuelo con el dron Tello. Se ha llegado a
varias conclusiones que valen la pena poder exponerlas con el objetivo de tener
una visión global del trabajo que se ha realizado para poder comprobar cuál sería
el modelo para usar. Estas mismas son las siguientes:
1. Mejor modelo general: El modelo tfg-ls1lh/2 se destaca como el mejor modelo
general debido a su mayor mAP, lo que indica un equilibrio óptimo entre precisión
y recall. Este modelo logra una buena generalización y robustez en la detección
de objetos a diferentes niveles de superposición.
Análisis de resultados del modelo de detección 47
2. Precisión más alta: El modelo tfg-ls1lh/1 tiene la mayor precisión (100%), pero
su bajo recall (64.8%) sugiere que podría no ser ideal para aplicaciones donde
es crucial detectar la mayor cantidad posible de objetos. Este modelo es muy
conservador y solo realiza predicciones cuando está muy seguro, omitiendo
muchas detecciones potenciales.
3. Balance entre precisión y recall: El modelo tfg-ls1lh/3 ofrece un buen balance
entre precisión y recall, aunque no es el mejor en ninguna de las métricas
individualmente. Este modelo muestra una tendencia de mejora continua y
estabilidad, lo que sugiere que es capaz de aprender y generalizar de manera
efectiva, aunque todavía tiene margen para mejorar.
Para futuro lectores que quieran continuar con la mejora de este proyecto
dejamos aquí unas recomendaciones que ayudarán en el futuro a garantizar un
mejor desarrollo:
1. Ajuste de hiperparámetros: Continuar ajustando los hiperparámetros de los
modelos, especialmente para el modelo tfg-ls1lh/2, para mejorar aún más su
rendimiento. Esto incluye ajustar la tasa de aprendizaje, el tamaño del lote y la
regularización para encontrar el equilibrio óptimo entre aprendizaje y
generalización.
2. Aumento de datos: Implementar técnicas adicionales de aumento de datos
para mejorar la robustez de los modelos y su capacidad de generalización. Esto
podría incluir rotaciones, traslaciones, ajustes de brillo y contraste, y otros
métodos para aumentar la diversidad del conjunto de datos.
3. Validación cruzada: Realizar validación cruzada para asegurar que los
modelos no están sobreajustados a un subconjunto específico de datos de
validación. La validación cruzada permite evaluar el rendimiento del modelo en
múltiples particiones del conjunto de datos, proporcionando una estimación más
robusta de su capacidad de generalización.
4. Análisis de errores: Analizar los errores cometidos por cada modelo para
identificar patrones y áreas de mejora específicas. Esto incluye revisar casos de
falsos positivos y falsos negativos, y entender las circunstancias bajo las cuales
el modelo falla. Esta información puede ser utilizada para refinar el conjunto de
datos de entrenamiento y ajustar los hiperparámetros del modelo.
5. Regularización: Añadir técnicas de regularización como Dropout o L2
Regularization para ayudar a estabilizar el proceso de aprendizaje y reducir el
riesgo de sobreajuste. La regularización puede mejorar la capacidad del modelo
para generalizar a datos no vistos.
6. Monitorización y ajuste continuo: Continuar monitorizando el rendimiento del
modelo durante el entrenamiento y realizar ajustes continuos según sea
necesario. Esto incluye utilizar herramientas de visualización de métricas para
identificar rápidamente problemas de estabilidad o rendimiento.
48 Prototipado de visión por computadora para la detección de objetos en drones autónomos
7. Incorporación de nuevas tecnologías: Explorar la incorporación de nuevas
arquitecturas de modelos y técnicas de entrenamiento avanzadas. Mantenerse
actualizado con los últimos avances en el campo de la visión por computadora
puede proporcionar nuevas oportunidades para mejorar el rendimiento del
modelo.
Para una mejor implementación también es necesario tener en cuenta varias
recomendaciones:
• Implementación progresiva: Implementar las recomendaciones de
manera progresiva, comenzando con los ajustes de hiperparámetros y el
aumento de datos, y luego avanzando hacia técnicas de regularización y
análisis de errores más detallados.
• Evaluación continua: Evaluar continuamente el impacto de cada cambio
en el rendimiento del modelo, utilizando métricas clave como mAP,
precisión y recall para guiar las decisiones de ajuste y mejora.
La evaluación detallada de los tres modelos proporciona una comprensión clara
de sus fortalezas y debilidades. Siguiendo las recomendaciones para ajustes y
mejoras, es posible aumentar significativamente la estabilidad y el rendimiento
general de los modelos en futuras iteraciones de entrenamiento. Es por ello, que
para el reconocimiento de objetos usando el Dron Tello, vamos a utilizar el
modelo tfg-ls1lh/2 de Roboflow, el cual nos permite poder hacer nuestro
algoritmo en Python. (Ver en Fig 8.7)
Fig. 8.7 Modelo v2 tfg-ls1lh/2 en Roboflow
Algoritmo de detección en Python 49
CAPÍTULO 9. ALGORITMO DE DETECCIÓN EN PYTHON
En este capítulo, se detalla la implementación del algoritmo de detección en
Python utilizando el modelo tfg-ls1lh/2, seleccionado previamente por su
equilibrio óptimo entre precisión y recall. Este modelo se ha entrenado y validado
en Roboflow, y ahora se integrará en un sistema de detección en tiempo real. A
continuación, se describen los pasos y el código necesario para implementar
este algoritmo en el entorno de desarrollo PyCharm.
9.1 Preparación del entorno
Antes de implementar el algoritmo de detección, es necesario preparar el entorno
de desarrollo. Esto incluye la instalación de las librerías necesarias y la
configuración del proyecto.
9.1.1 Instalación de Librerías
Las siguientes librerías son necesarias para el proyecto:
• OpenCV: Para la captura y procesamiento de imágenes.
• Roboflow: Para integrar el modelo entrenado en Roboflow.
• DJITelloPy: Para controlar el dron Tello
Para instalar estas librerías, se pueden usar los siguientes comandos: pip install
opencv-python roboflow djitellopy
9.1.2 Carga del modelo
Para cargar el modelo entrenado desde Roboflow, es necesario obtener la API
key, el nombre del proyecto y la versión del proyecto. Cada usuario tiene su
propia API key, la cual puede obtener al registrarse en Roboflow y acceder a su
cuenta.
Para obtenere tu API key es necesario seguir los siguientes pasos:
1. Registro en Roboflow: Primero, regístrate en Roboflow(Ver [9]).
2. Acceder a tu API Key:
• Inicia sesión en tu cuenta de Roboflow.
• Dirígete a la sección de "API Keys" en el panel de control de tu cuenta.
• Copia tu API key, la cual será una cadena de texto única para tu cuenta.
[Link] del proyecto y versión del proyecto:
50 Prototipado de visión por computadora para la detección de objetos en drones autónomos
a. Crear o seleccionar un Proyecto:
▪ En el panel de control de Roboflow, selecciona o crea un
nuevo proyecto.
▪ El nombre del proyecto será utilizado para acceder a los
datos y modelos entrenados.
b. Versión del proyecto:
▪ Cada proyecto puede tener múltiples versiones,
correspondientes a diferentes etapas del entrenamiento y
mejora del modelo.
▪ Selecciona la versión del proyecto que deseas utilizar para
la detección.
9.1.3 Integración en el código
Existen dos enfoques principales para integrar el modelo entrenado en el script
de detección: usando el InferenceHTTPClient o directamente con la API de
Roboflow. A continuación, se explica cada uno.
Enfoque 1: Usar InferenceHTTPClient de inference_sdk
Este enfoque utiliza la biblioteca inference_sdk para interactuar con la API de
Roboflow y realizar inferencias en tiempo real (Ver Fig. 9.1). Es adecuado para
proyectos donde se requiere un mayor control sobre las solicitudes HTTP y el
procesamiento de respuestas.
Fig. 9.1 Enfoque 1 usando inference_sdk
Enfoque 2: Usar la API de Roboflow directamente
Este enfoque utiliza la biblioteca oficial de Roboflow para cargar y usar el modelo
entrenado. Es más sencillo y está más integrado con el ecosistema de Roboflow.
Algoritmo de detección en Python 51
A continuación, vamos a dar un ejemplo de código (Ver Fig. 9.1), para poder
iniciar un modelo en un script de detección para tener una primera idea de cómo
integrar un modelo de Roboflow en un código de Python para su puesta en
marcha:
Fig. 9.1 Integración de los datos en un script sencillo de Python
En este enfoque, se inicializa Roboflow con la API key del usuario, se selecciona
el proyecto y la versión del modelo. Luego, se utiliza el modelo para realizar
inferencias en las imágenes capturadas.
En este proyecto, hemos decidido aplicar “InferenceHTTPCliente” debido al
control y flexibilidad que proporciona, ya que es mucho más útil en entornos
donde se requieren más personalización avanzada, mientras que usar la API de
Roboflow, por un lado, se destaca por simplicidad e integración siendo más
sencilla la integración, lo que facilita la gestión y el uso de modelos, pero por otro
lado, no nos permite un mayor control sobre las solicitudes HTTP. Y en este
proyecto, buscamos control y flexibilidad a la hora de hacer llamadas al modelo
de detección.
Nuestro algoritmo que hemos utilizado para hacer las pruebas junto al Dron Tello,
es capaz de capturar las imágenes de las coca cola, procesar las detecciones y
detectar en tiempo real. Además, le hemos integrado un contador de latas para
poder tener una visión más grande de lo que pasa.
La integración y funcionamiento del sistema se demuestra con capturas de
pantalla y un video que muestran el dron Tello detectando objetos en tiempo real.
Las imágenes capturadas evidencian cómo el sistema es capaz de identificar y
etiquetar correctamente los objetos dentro del campo de visión del dron,
poniendo de manifiesto que la solución funciona de manera efectiva (Ver Fig.
9.2).
52 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Fig. 9.2 Imagen de demostración de efectividad
Esta imagen demostrativa proporciona una validación visual de la efectividad del
sistema desarrollado, asegurando al lector que el código no solo es teóricamente
sólido, sino también práctico y funcional en aplicaciones del mundo real
Este capítulo ha detallado la implementación del algoritmo de detección en
Python utilizando el modelo tfg-ls1lh/2 en el entorno de desarrollo PyCharm.
Siguiendo estos pasos, se puede construir un sistema de detección en tiempo
real robusto y eficiente. Las pruebas y ajustes adicionales asegurarán que el
sistema funcione de manera óptima
Es crucial realizar pruebas exhaustivas para asegurar que el modelo funcione
correctamente en diferentes condiciones de iluminación, ángulos y escenarios.
Ajustar el umbral de confianza y otros parámetros según sea necesario para
optimizar el rendimiento del modelo. A continuación, se describe un proceso de
prueba típico que hemos seguido:
1. Captura de imágenes en diversas condiciones: Hemos capturado
imágenes en diferentes entornos y condiciones de iluminación para probar la
robustez del modelo.
2. Ajuste del umbral de confianza: Se han probado diferentes valores de
umbral de confianza para encontrar el equilibrio óptimo entre precisión y
recall.
3. Evaluación de desempeño: Hemos utilizado métricas como precisión, recall
y mAP para evaluar el rendimiento del modelo en diferentes conjuntos de
prueba.
Integración en el Tello Engineering Ecosystem 53
CAPÍTULO 10. INTEGRACIÓN EN EL TELLO
ENGINEERING ECOSYSTEM
En este capítulo, se aborda la integración del proyecto en el Tello Engineering
Ecosystem, proporcionando una guía detallada sobre la creación de un
repositorio y la documentación necesaria para facilitar su uso y expansión por
parte de futuros desarrolladores e investigadores.
10.1 Creación del repositorio
Para asegurar la accesibilidad y la colaboración futura, se ha creado un
repositorio en GitHub que contiene todo el código fuente y los recursos
necesarios para replicar y expandir el proyecto (Ver en [5]).
El repositorio incluye los siguientes elementos:
• Código fuente: Todos los scripts necesarios para la implementación del
algoritmo de detección de objetos utilizando el dron Tello.
• Archivos de configuración: Incluyendo el archivo [Link] para la
instalación de las dependencias.
• Documentación: Un detallado archivo README que proporciona
instrucciones paso a paso para configurar y ejecutar el proyecto.
• Vídeos demostrativos: Enlaces a vídeos que muestran el funcionamiento
del sistema en tiempo real(Ver Fig. 10.1).
Fig. 10.1 Imagen de demostración del funcionamiento del algoritmo del proyecto.
54 Prototipado de visión por computadora para la detección de objetos en drones autónomos
CAPÍTULO 11. CONCLUSIÓN
En este capítulo final, se presentan las valoraciones y reflexiones sobre el
proyecto, desde el cumplimiento de los objetivos planteados hasta una
valoración personal y perspectivas futuras. Este análisis nos permite evaluar el
impacto del trabajo realizado y vislumbrar el camino a seguir para futuras
investigaciones y desarrollos en el campo de la visión autónoma en drones.
11.1 Valoración de objetivos del plan de trabajo
En este apartado, se evalúa el grado de cumplimiento de los objetivos
establecidos al inicio del proyecto:
Objetivo principal: Hemos desarrollado de manera satisfactoria herramientas de
prototipado de visión por computadora para que el ecosistema Tello Engineering
pueda desarrollar modelos entrenados de manera fácil, rápida y a un coste
reducido.
Cumplimiento: Se han implementado modelos de detección de objetos utilizando
Roboflow y se han integrado exitosamente con el dron Tello.
Entre otros objetivos específicos se encuentran:
1. Desarrollo e integración de modelos de detección: Utilizando la API de
Roboflow, se han entrenado e implementado modelos de detección de latas de
Coca-Cola.
Cumplimiento 1: Los modelos se entrenaron con éxito, se evaluaron y se
integraron en un sistema de detección en tiempo real utilizando Python y
OpenCV.
2. Captura de imágenes en tiempo real con el Dron Tello: Se ha implementado
un sistema para capturar y procesar imágenes en tiempo real desde el dron Tello.
Cumplimiento 2: Se logró implementar la captura de imágenes y la detección en
tiempo real, cumpliendo con los requisitos funcionales del proyecto.
3. Evaluación de modelos: Realizar una evaluación exhaustiva de los modelos
entrenados para determinar el mejor modelo basado en métricas de precisión,
recall y mAP.
Cumplimiento 3: Se evaluaron tres modelos diferentes, seleccionando el modelo
tfg-ls1lh/2 como el mejor en términos de equilibrio entre precisión y recall.
Conclusión 55
11.2 Valoración personal del proyecto
Este proyecto ha sido una experiencia enriquecedora y desafiante. La integración
de diversas tecnologías, desde la captura de imágenes con drones hasta el uso
de herramientas avanzadas de visión por computadora, ha proporcionado una
comprensión profunda de los sistemas de detección autónoma. La colaboración
con Roboflow y la implementación en un entorno de desarrollo como PyCharm
han permitido desarrollar una solución completa y robusta.
Aprendizajes clave
• Visión por computadora: He ampliado mis conocimientos sobre técnicas
y herramientas de visión por computadora.
• Integración de sistemas: He obtenido experiencia en la integración de
hardware (dron Tello) con software avanzado (modelos de detección).
• Desarrollo en Python: He mejorado mis habilidades de programación en
Python, especialmente en el contexto de procesamiento de imágenes y
aprendizaje automático.
Desafíos encontrados
• Conexión a dos redes: Este proyecto de prototipado exige un dispositivo
ordenador que pueda conectarse a dos redes. Para resolver esto, hemos
utilizado una antena externa wifi, lo que ha permitido mantener una
conexión estable con el dron Tello y con la red de internet
simultáneamente.
• Optimización de la captura y procesamiento de imágenes: Otro
desafío era mejorar la manera en que el dron detecta las imágenes,
optimizando la captación para su puesta en procesado. Esto se ha
resuelto mejorando el código y realizando pruebas diarias, ajustando
parámetros y técnicas para obtener los mejores resultados.
• Gestión del Tiempo: El tiempo ha sido un factor crítico, ya que, siendo
un proyecto de prototipado, era esencial encontrar la mejor manera o el
mejor camino, tanto en herramientas como en el proceso de realizar el
prototipado para que sea fácil y rápido. Este desafío se ha cumplido con
constancia y dedicación, permitiendo completar el proyecto dentro del
plazo establecido.
11.3 Futuros trabajos y mejoras
A lo largo del desarrollo del proyecto, se han identificado varias áreas de mejora
y opciones para futuros trabajos que podrían ampliar y mejorar significativamente
el sistema desarrollado:
• Entrenamiento de Modelos con YOLO: Utilizar arquitecturas de
modelos más avanzadas y específicas como YOLO (You Only Look
56 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Once), que son conocidas por su alta precisión y velocidad en la detección
de objetos. Estos modelos pueden requerir más tiempo de entrenamiento,
pero ofrecen un rendimiento superior en términos de detección.
• Uso de otros modelos específicos: Explorar el uso de otros modelos de
detección de objetos, como Faster R-CNN o SSD (Single Shot MultiBox
Detector), que también han demostrado ser altamente efectivos en
diversas aplicaciones de visión por computadora.
• Optimización del proceso de detección: Implementar técnicas de
optimización para el procesamiento de imágenes y detección en tiempo
real, como el uso de GPU para acelerar el procesamiento o la
implementación de técnicas de compresión de modelos para reducir el
tiempo de inferencia.
• Entrenamiento incremental: Desarrollar un sistema de entrenamiento
incremental que permita actualizar continuamente el modelo con nuevos
datos capturados por el dron, mejorando así su precisión y adaptabilidad
a diferentes entornos.
• Integración con sistemas de navegación autónoma: Ampliar el
proyecto para incluir la navegación autónoma del dron basada en la
detección de objetos, utilizando técnicas avanzadas de control y
planificación de trayectorias.
• Implementación de funcionalidades adicionales: Desarrollar
funcionalidades adicionales como la detección de múltiples objetos
simultáneamente, el seguimiento de objetos en movimiento y la
clasificación de objetos detectados.
11.4 Conclusión general
Este proyecto ha sido un viaje extraordinario lleno de retos y aprendizajes, que
no solo ha cumplido con los objetivos planteados, sino que también ha superado
muchas expectativas iniciales. Desde el principio, la visión de desarrollar un
sistema de detección de objetos con drones parecía ambiciosa, pero cada paso
en el camino ha demostrado que, con dedicación y esfuerzo, se pueden alcanzar
metas significativas.
Trabajar en este proyecto ha sido una experiencia profundamente
enriquecedora. La integración de tecnologías de vanguardia, como la visión por
computadora y el control de drones, ha permitido explorar nuevas fronteras del
conocimiento y la innovación. Cada línea de código escrita, cada prueba
realizada y cada ajuste fino en el modelo ha sido una oportunidad para aprender
y crecer, no solo como profesional, sino también como innovador en un campo
en constante evolución.
El desafío de conectar un ordenador a dos redes simultáneamente, solucionado
con una antena externa wifi, es solo un ejemplo de cómo la creatividad y la
Conclusión 57
ingeniosidad pueden superar obstáculos técnicos. La optimización de la captura
y el procesamiento de imágenes, mejorando el código y realizando pruebas
diarias, ha sido un testimonio del poder de la persistencia y la atención al detalle.
Estos esfuerzos no solo han mejorado el rendimiento del sistema, sino que
también han reforzado la idea de que la excelencia se logra a través de la
iteración constante y la mejora continua.
El tiempo siempre es un recurso valioso y limitado, y en este proyecto, gestionar
eficazmente ese tiempo ha sido crucial. La naturaleza del prototipado exige
rapidez y eficiencia, y encontrar el mejor camino entre múltiples opciones ha
requerido una planificación cuidadosa y una ejecución precisa. A pesar de las
limitaciones de tiempo, el proyecto se ha completado con éxito, lo que demuestra
que con dedicación y constancia, incluso las tareas más desafiantes pueden ser
abordadas de manera efectiva.
Mirando hacia el futuro, este proyecto abre un abanico de posibilidades
emocionantes. La idea de utilizar arquitecturas de modelos avanzadas como
YOLO o Faster R-CNN para mejorar aún más la detección de objetos es una
perspectiva emocionante. La implementación de técnicas de optimización para
el procesamiento en tiempo real y el desarrollo de nuevas funcionalidades como
la navegación autónoma basada en la detección de objetos son caminos
prometedores que pueden llevar este proyecto a nuevos niveles de sofisticación
y utilidad.
Este proyecto ha sido más que una simple tarea académica; ha sido un
laboratorio de innovación, una plataforma para experimentar y aprender, y una
oportunidad para contribuir al campo de la visión autónoma en drones. Cada
desafío superado y cada éxito alcanzado han ido reforzando la pasión por la
tecnología y el deseo de seguir explorando y desarrollando soluciones
innovadoras.
En conclusión, el camino recorrido en este proyecto ha sido desafiante pero
increíblemente gratificante. Las habilidades adquiridas y los conocimientos
ganados no solo han permitido desarrollar un sistema eficiente y práctico, sino
que también han abierto puertas a futuras investigaciones y desarrollos. La
experiencia ha demostrado que con dedicación, creatividad y perseverancia, es
posible transformar ideas ambiciosas en realidades tangibles y útiles. Este
proyecto es solo el comienzo de lo que promete ser un viaje continuo de
exploración y descubrimiento en el fascinante mundo de la visión autónoma en
drones.
58 Prototipado de visión por computadora para la detección de objetos en drones autónomos
BIBLIOGRAFÍA
[1] Dron Tello – Especificaciones técnicas (2020) – [Online]
[Link]
[2] Ryze Tech - Tello SDK 2.0 User Guide (2018) - [Online] - [Link]
[Link]/downloads/Tello/Tello%20SDK%202.0%20User%20Guid
[Link]
[3] DronsEETAC - Tello Engineering Ecosistem - [Online] -
[Link]
[4] DronsEETAC - Drone Engineering Ecosistem - [Online] -
[Link]
[5] Anthony Pérez– Repositorio de GitHub tfg-drone (2024) –
[Link]
[6] Damià Fuentes Escoté – DJITelloPy API oficial (2024) – [Online]
[Link]
[7] [Link] - Información y registro en la plataforma - [Online] -
[Link]
[8] [Link] - Repositorio de instalación de [Link] [Online] -
[Link]
[9] [Link] - Web roboflow [Online] - [Link]
[10] [Link] - Web roboflow Descripción maP [Online] -
[Link]
Anexos 59
ANEXOS
TÍTULO DEL TFG: Prototipado de visión por computadora para la detección
de objetos en drones autónomos.
TITULACIÓN: Grado en Ingeniería de Sistemas Aeroespaciales
AUTOR: Anthony Demóstenes Pérez Calderón
DIRECTOR: Miguel Valero Garcia
FECHA: 17 de junio de 2024
60 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Anexo 1
A continuación, se presenta un análisis detallado de cada gráfico detallando su
observación e interpretación:
Gráficos de entrenamiento
1. Train/Box Loss
Observación: La pérdida de caja (box loss) disminuye de manera consistente,
aunque con algunas fluctuaciones.
Interpretación: El modelo está aprendiendo a ajustar las cajas delimitadoras para
los objetos detectados. Las fluctuaciones indican que el modelo podría estar
ajustándose a variaciones en los datos de entrenamiento.
2. Train/Cls Loss
Observación: La pérdida de clasificación (cls loss) disminuye inicialmente, pero
presenta varias fluctuaciones a lo largo del entrenamiento.
Interpretación: El modelo está mejorando en la clasificación de los objetos dentro
de las cajas, aunque las fluctuaciones podrían sugerir que necesita más ajustes
en los hiperparámetros.
3. Train/Dfl Loss
Observación: La pérdida de distribución (dfl loss) muestra una disminución
general, pero con picos y valles significativos.
Interpretación: La disminución general es positiva, pero los picos podrían indicar
inestabilidad en el aprendizaje de la distribución de las cajas.
4. Metrics/Precision (B)
Observación: La precisión muestra un patrón ascendente general, con algunas
caídas significativas.
Interpretación: El modelo mejora en la precisión de las predicciones, pero las
caídas indican posibles problemas de sobreajuste o variabilidad en los datos.
5. Metrics/Recall (B):
Observación: El recall tiene un comportamiento errático, con caídas y subidas
abruptas.
Anexos 61
Interpretación: El modelo tiene dificultades para identificar correctamente todos
los objetos, lo que podría estar relacionado con la variabilidad en los datos de
entrenamiento o con la necesidad de ajustes adicionales en los hiperparámetros.
Gráficos de validación
1. Val/Box Loss:
Observación: La pérdida de caja en validación también muestra una tendencia
decreciente con fluctuaciones.
Interpretación: Similar al entrenamiento, el modelo está mejorando en ajustar las
cajas, pero las fluctuaciones podrían sugerir que no está generalizando
perfectamente a los datos de validación.
2. Val/Cls Loss
Observación: La pérdida de clasificación en validación tiene una tendencia
decreciente pero con picos.
Interpretación: El modelo mejora en la clasificación de objetos, aunque los picos
indican que aún tiene dificultades con algunos ejemplos de validación.
3. Val/Dfl Loss
Observación: La pérdida de distribución en validación muestra una tendencia
similar a la de entrenamiento, con una disminución general pero con picos
significativos.
Interpretación: La inestabilidad en la distribución de las cajas sigue presente en
la validación, lo que podría afectar la generalización del modelo.
4. Metrics/mAP50 (B):
Observación: El mAP50 muestra una tendencia general decreciente.
Interpretación: Esto sugiere que la precisión promedio del modelo en diferentes
umbrales de confianza está disminuyendo, lo cual es una señal preocupante y
podría indicar sobreajuste.
5. Metrics/mAP50-95 (B):
Observación: Similar al mAP50, el mAP50-95 tiene una tendencia a disminuir
con fluctuaciones significativas.
Interpretación: El modelo tiene dificultades para mantener un buen rendimiento
en un rango más amplio de umbrales de confianza.
Anexo 2
A continuación, se presenta un análisis detallado de cada gráfico:
62 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Gráficos de entrenamiento
1. Train/Box Loss
Observación: La pérdida de caja (box loss) disminuye de manera consistente,
con algunas fluctuaciones menores.
Interpretación: El modelo está aprendiendo a ajustar las cajas delimitadoras para
los objetos detectados de manera efectiva, mostrando una mejora continua.
2. Train/Cls Loss:
Observación: La pérdida de clasificación (cls loss) disminuye consistentemente,
aunque con algunas fluctuaciones iniciales.
Interpretación: El modelo mejora en la clasificación de los objetos dentro de las
cajas, indicando un aprendizaje efectivo.
3. Train/Dfl Loss
Observación: La pérdida de distribución (dfl loss) muestra una disminución
continua con fluctuaciones menores.
Interpretación: El modelo está aprendiendo a ajustar la distribución de las cajas
de manera efectiva, aunque algunas fluctuaciones menores son visibles.
4. Metrics/Precision (B)
Observación: La precisión muestra una tendencia ascendente con una
estabilización hacia el final del entrenamiento.
Interpretación: El modelo mejora en la precisión de las predicciones, alcanzando
una precisión alta y estable hacia el final del entrenamiento.
5. Metrics/Recall (B)
Observación: El recall tiene fluctuaciones significativas, aunque muestra una
tendencia general de mejora.
Interpretación: El modelo tiene algunas dificultades para identificar
correctamente todos los objetos, pero muestra una mejora general.
Gráficos de validación
1. Val/Box Loss
Observación: La pérdida de caja en validación muestra una disminución
constante con fluctuaciones menores.
Anexos 63
Interpretación: Similar al entrenamiento, el modelo está mejorando en ajustar las
cajas para los datos de validación.
2. Val/Cls Loss
Observación: La pérdida de clasificación en validación disminuye
consistentemente con algunas fluctuaciones menores.
Interpretación: El modelo está mejorando en la clasificación de los objetos en el
conjunto de validación, lo que sugiere una buena generalización.
3. Val/Dfl Loss
Observación: La pérdida de distribución en validación disminuye de manera
constante con algunas fluctuaciones.
Interpretación: La disminución constante indica que el modelo está aprendiendo
a generalizar bien a los datos de validación.
4. Metrics/mAP50 (B)
Observación: El mAP50 muestra una tendencia general de mejora con
fluctuaciones.
Interpretación: La precisión promedio del modelo en diferentes umbrales de
confianza está mejorando, aunque las fluctuaciones indican que hay espacio
para mejorar la estabilidad.
5. Metrics/mAP50-95 (B)
Observación: Similar al mAP50, el mAP50-95 tiene una tendencia a mejorar con
fluctuaciones.
Interpretación: El modelo está mejorando su rendimiento en un rango más amplio
de umbrales de confianza, pero necesita ajustes para mejorar la estabilidad.
Anexo 3
Gráficos de entrenamiento
1. Train/Box Loss
Observación: La pérdida de caja (box loss) disminuye de manera constante,
aunque con algunas fluctuaciones.
Interpretación: El modelo está aprendiendo a ajustar las cajas delimitadoras
64 Prototipado de visión por computadora para la detección de objetos en drones autónomos
para los objetos detectados de manera efectiva, mostrando una mejora
continua.
2. Train/Cls Loss
Observación: La pérdida de clasificación (cls loss) disminuye de manera
constante, aunque presenta fluctuaciones significativas.
Interpretación: El modelo mejora en la clasificación de los objetos dentro de las
cajas, aunque las fluctuaciones indican que puede haber inestabilidad en el
proceso de aprendizaje.
3. Train/Dfl Loss
Observación: La pérdida de distribución (dfl loss) muestra una disminución
continua con fluctuaciones.
Interpretación: El modelo está aprendiendo a ajustar la distribución de las cajas,
pero las fluctuaciones indican inestabilidad en el aprendizaje.
4. Metrics/Precision (B)
Observación: La precisión muestra una tendencia ascendente con fluctuaciones,
estabilizándose hacia el final del entrenamiento.
Interpretación: El modelo mejora en la precisión de las predicciones, alcanzando
una precisión alta y más estable hacia el final del entrenamiento.
5. Metrics/Recall (B)
Observación: El recall tiene fluctuaciones significativas, aunque muestra una
tendencia general de mejora.
Interpretación: El modelo enfrenta desafíos para identificar correctamente todos
los objetos, pero muestra una mejora general.
Gráficos de Validación
1. Val/Box Loss
Observación: La pérdida de caja en validación muestra una disminución
constante con fluctuaciones.
Interpretación: Similar al entrenamiento, el modelo está mejorando en ajustar las
cajas para los datos de validación.
Anexos 65
2. Val/Cls Loss
Observación: La pérdida de clasificación en validación disminuye
consistentemente con algunas fluctuaciones.
Interpretación: El modelo está mejorando en la clasificación de objetos en el
conjunto de validación, lo que sugiere una buena generalización.
3. Val/Dfl Loss
Observación: La pérdida de distribución en validación disminuye de manera
constante con fluctuaciones.
Interpretación: La disminución constante indica que el modelo está aprendiendo
a generalizar bien a los datos de validación.
4. Metrics/mAP50 (B)
Observación: El mAP50 muestra una tendencia general de mejora con
fluctuaciones.
Interpretación: La precisión promedio del modelo en diferentes umbrales de
confianza está mejorando, aunque las fluctuaciones indican que hay espacio
para mejorar la estabilidad.
5. Metrics/mAP50-95 (B)
Observación: Similar al mAP50, el mAP50-95 tiene una tendencia a mejorar con
fluctuaciones.
Interpretación: El modelo está mejorando su rendimiento en un rango más amplio
de umbrales de confianza, pero necesita ajustes para mejorar la estabilidad.
El modelo 3 (tfg-ls1lh/3) muestra una tendencia de mejora consistente en la
mayoría de las métricas de entrenamiento y validación. Las principales áreas de
enfoque deberían incluir:
Anexo 4
Gráficos de mAP
1. mAP y mAP@50:95
Observación: El gráfico muestra la evolución del mAP y mAP@50:95 a lo largo
de las épocas. Se observan fluctuaciones significativas, especialmente en las
primeras y últimas épocas del entrenamiento.
Interpretación: Las fluctuaciones en el mAP sugieren que el modelo tiene
dificultades para mantener una precisión constante a lo largo del entrenamiento.
66 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Las mejoras repentinas seguidas de caídas indican posibles problemas de
estabilidad en el aprendizaje.
Gráficos de pérdida
1. Box Loss
Observación: La pérdida de caja muestra un patrón fluctuante, con picos y valles
a lo largo del entrenamiento.
Interpretación: La inestabilidad en la pérdida de caja indica que el modelo tiene
problemas para ajustar consistentemente las cajas delimitadoras. Los picos
pueden estar asociados a ajustes de los hiperparámetros o a variaciones en el
conjunto de datos.
2. Class loss
Observación: La pérdida de clasificación presenta fluctuaciones considerables,
con un aumento significativo en ciertas épocas.
Interpretación: Las fluctuaciones en la pérdida de clasificación sugieren que el
modelo tiene dificultades para clasificar consistentemente los objetos. Las
épocas con pérdida elevada podrían coincidir con cambios en el conjunto de
datos o problemas de sobreajuste.
3. Object loss
Observación: La pérdida de objetos también muestra un patrón fluctuante, con
picos en varias épocas del entrenamiento.
Interpretación: La inestabilidad en la pérdida de objetos refleja desafíos en la
detección de objetos, lo que podría ser causado por la variabilidad en los datos
de entrenamiento o la necesidad de ajustes adicionales en los hiperparámetros.
El modelo tfg-ls1lh/1 presenta una alta precisión (100%) pero un recall
relativamente bajo (64.8%). Los gráficos de entrenamiento sugieren que el
modelo experimenta inestabilidad a lo largo del entrenamiento, con fluctuaciones
significativas en las métricas de pérdida y mAP.
Al incorporar este análisis, se puede enriquecer la interpretación de los
resultados del modelo tfg-ls1lh/1, proporcionando una visión más clara de las
áreas específicas que requieren mejoras. Los gráficos detallados permiten
identificar con precisión las etapas del entrenamiento donde el modelo enfrenta
más desafíos, guiando así las decisiones sobre ajustes y mejoras en el proceso
de entrenamiento.
Anexo 5
Gráficos mAP
Anexos 67
1. mAP y mAP@50:95
Observación: El gráfico muestra la evolución del mAP y mAP@50:95 a lo largo
de las épocas. Aunque hay fluctuaciones, se observa una tendencia general de
estabilidad y mejora a lo largo del entrenamiento.
Interpretación: La estabilidad en el mAP y mAP@50:95 sugiere que el modelo
mantiene una precisión consistente en múltiples umbrales de IoU. Esto indica
que el modelo es robusto y puede detectar objetos con diferentes niveles de
superposición.
Gráficos de pérdida
1. Box Loss
Observación: La pérdida de caja muestra una disminución constante con
fluctuaciones menores a lo largo del entrenamiento.
Interpretación: El modelo está mejorando en ajustar las cajas delimitadoras para
los objetos detectados, y la estabilidad en la pérdida sugiere que el modelo está
aprendiendo de manera efectiva.
2. Class Loss
Observación: La pérdida de clasificación disminuye de manera constante,
aunque con algunas fluctuaciones menores.
Interpretación: El modelo mejora en la clasificación de los objetos dentro de las
cajas, indicando un aprendizaje consistente.
3. Object Loss
Observación: La pérdida de objetos muestra una disminución general con
fluctuaciones menores a lo largo del entrenamiento.
Interpretación: La disminución en la pérdida de objetos indica que el modelo está
aprendiendo a detectar objetos de manera más eficiente, y las fluctuaciones
menores sugieren un proceso de aprendizaje relativamente estable.
Anexo 6
Gráficos mAP
1. mAP y mAP@50:95
Observación: El gráfico muestra la evolución del mAP y mAP@50:95 a lo largo
de las épocas. Aunque hay fluctuaciones, se observa una tendencia general de
mejora en ambos indicadores.
68 Prototipado de visión por computadora para la detección de objetos en drones autónomos
Interpretación: La mejora continua en el mAP y mAP@50:95 sugiere que el
modelo está aprendiendo a detectar objetos con mayor precisión y a diferentes
niveles de superposición, lo que es una señal positiva de su capacidad de
generalización.
Aunque hay fluctuaciones, la tendencia general de mejora en el mAP y
mAP@50:95 sugiere que el modelo está aprendiendo a detectar objetos con
mayor precisión a diferentes niveles de superposición, indicando una mejora
continua en su capacidad de generalización.
Gráficos de pérdida
1. Box Loss
Observación: La pérdida de caja muestra una disminución constante con
fluctuaciones menores a lo largo del entrenamiento.
Interpretación: El modelo está mejorando en ajustar las cajas delimitadoras para
los objetos detectados, y la estabilidad en la pérdida sugiere que el modelo está
aprendiendo de manera efectiva.
2. Class Loss
Observación: La pérdida de clasificación disminuye de manera constante,
aunque con algunas fluctuaciones menores.
Interpretación: El modelo mejora en la clasificación de los objetos dentro de las
cajas, indicando un aprendizaje consistente.
3. Object Loss
Observación: La pérdida de objetos muestra una disminución general con
fluctuaciones menores a lo largo del entrenamiento.
Interpretación: La disminución en la pérdida de objetos indica que el modelo está
aprendiendo a detectar objetos de manera más eficiente, y las fluctuaciones
menores sugieren un proceso de aprendizaje relativamente estable.