Este repositorio contiene el código desarrollado para el Trabajo Fin de Grado:
"Sistema de visión artificial para detección de personas en entornos naturales a partir de imágenes tomadas desde un dron"
Está organizado en tres subproyectos: preparación de imágenes, entrenamiento de redes neuronales convolucionales (CNNs) y una aplicación web (WebApp). Se incluyen además scripts en utils que se usan desde varios subproyectos. Cada subproyecto está cuidadosamente estructurado para facilitar su comprensión y reproducibilidad.
La estructura general del proyecto es la siguiente:
En el directorio raíz se encuentran las siguientes carpetas y archivos:
- __init__.py: Añade el directorio
utils
al path para permitir la importación de módulos. - pytest.ini: Configura el framework de pruebas pytest, para la ejecución automática de pruebas.
- .gitignore: Especifica los archivos que Git debe ignorar.
Este subproyecto se divide en:
- config: Contiene un archivo de configuración
.yaml
con parámetros del recorte, rutas y extensiones. - informes: Almacena los análisis estadísticos del dataset antes y después del procesado.
- src: Scripts de recorte, reetiquetado y creación de CSVs para la validación cruzada. Incluye un archivo
settings
para configurar y añadir rutas alsys.path
.
Este subproyecto se organiza en:
- codigo: Script de entrenamiento de CNNs y archivo de configuración
.yaml
. - imagenes: Subimágenes recortadas y CSVs para la validación cruzada.
Tras ejecutar el script de entrenamiento, se crea automáticamente una carpeta adicional:
- resultados: Almacena los resultados de los entrenamientos, métricas en cada época, métricas por umbrales, modelo entrenado
.h5
y parametrización elegida en.yaml
.
Durante la ejecución, se crean y borran automáticamente dos carpetas:
- datos_entreno: Separa las imágenes en entrenamiento, validación y prueba.
- tmp: Guarda archivos temporales durante el entrenamiento.
La WebApp se divide en:
- coleccionesImagenes: Contiene colecciones de imágenes de ejemplo.
- config: Contiene un archivo de configuración
.yaml
con parámetros de solapamiento, márgenes y extensiones. - src: Scripts principales de la lógica de la WebApp, un archivo
requirements.txt
para desplegar la aplicación y una carpeta.streamlit
con un archivo.toml
para personalizar la apariencia de la web. - static: Almacena archivos estáticos, como el logo de la app.
La carpeta utils contiene scripts .py
de utilidad para los subproyectos de preparación y WebApp.
Se recomienda tener instaladas las siguientes herramientas para reproducir completamente el proyecto:
- Anaconda
- Visual Studio Code
- Pulse Secure
- WinSCP
- Putty
Este proyecto está licenciado bajo la Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0).
- Félix de Miguel Villalba - Desarrollador Principal
- Daniel Urda Muñoz - Tutor
El dataset utilizado para el desarrollo del proyecto es HERIDAL y se puede descargar desde la web de los creadores.
- [Descargar dataset] (([http://ipsar.fesb.unist.hr/HERIDAL%20database.html]))