
DETALLE DEL PROYECTO
AgriDrone Vision Evaluation Pipeline
AgriDrone Vision Evaluation Pipeline es un caso de estudio técnico, generalizado y anonimizado, de un sistema aplicado de visión por computador y machine learning geoespacial sobre imágenes agrícolas de dron.
El proyecto documenta el diseño de un flujo de ingeniería de ML de extremo a extremo, capaz de procesar imágenes y video UAV de alta resolución, ejecutar modelos de detección de objetos, validar su desempeño, generar artefactos de evaluación reproducibles, enriquecer las detecciones con metadatos geoespaciales y exportar los resultados a formatos aptos para análisis GIS, reportería técnica y flujos posteriores de apoyo a la decisión agrícola.
En su núcleo, el sistema aplica modelos de detección YOLOv8 / YOLO11 sobre imágenes agrícolas capturadas por dron. El pipeline admite tanto inferencia YOLO directa como inferencia por tiles con SAHI, especialmente útil en imágenes de alta resolución donde los objetos pequeños se pierden al redimensionar. SAHI permite dividir la imagen en tiles solapados, procesarlos de forma independiente y reconstruir las detecciones sobre la imagen completa, mejorando la detección de objetos pequeños o densos en escenas aéreas.
El flujo documentado cubre varias etapas del ciclo de vida de ML: configuración del dataset, orquestación del entrenamiento, validación, benchmarking, selección automática del mejor modelo, inferencia, post-procesamiento, evaluación, visualización, exportación geoespacial y documentación técnica. No se presenta como un notebook de entrenamiento, sino como un sistema de ingeniería de ML que conecta experimentación, inferencia, evaluación y análisis geoespacial.
La capa de entrenamiento y validación describe cómo entrenar y evaluar modelos YOLO bajo distintas configuraciones: versión del modelo, tamaño de imagen, tamaño de batch, umbral de confianza, selección de dispositivo y estructura del dataset. Documenta también la lógica de selección de modelo a partir de las métricas de cada experimento, que permite identificar el mejor checkpoint `best.pt` de corridas anteriores. El flujo de validación y benchmarking incluye métricas globales y por clase, tiempos de inferencia, consideraciones de ejecución sobre GPU y generación reproducible de artefactos.
La capa de evaluación incorpora conceptos de evaluación estilo COCO, la conversión de anotaciones y predicciones YOLO a estructuras compatibles con COCO, y el cálculo de métricas como AP50, AP50:95, precisión, recall y F1. La documentación distingue entre las métricas nativas de validación de YOLO, las métricas de evaluación estilo COCO y las salidas operativas de inferencia, dejando claro que cada tipo responde a una pregunta distinta sobre el desempeño del modelo.
La capa de inferencia procesa imágenes individuales, directorios completos, imágenes de dron de alta resolución mediante SAHI, y entradas de video. Para imagen estática genera imágenes con cajas delimitadoras, etiquetas de clase y puntajes de confianza, metadatos JSON por imagen, resúmenes por lote y salidas geoespaciales. Para video documenta un procesador dedicado de inferencia y seguimiento que usa los IDs de tracking de YOLO para contar objetos únicos a lo largo de los frames, renderizar video anotado, generar resúmenes JSON y, opcionalmente, artefactos SRT a nivel de frame.
Una parte central del proyecto es la integración entre visión por computador y procesamiento geoespacial. El sistema no se detiene en la detección: enriquece las detecciones con metadatos EXIF/GPS cuando están disponibles, convierte latitud y longitud a coordenadas UTM y prepara salidas espaciales estructuradas para flujos GIS. Esas salidas pueden incluir GeoJSON, CSV, shapefiles, resúmenes compatibles con QGIS y registros de metadatos espaciales. Así las predicciones del modelo se pueden inspeccionar, analizar y visualizar en herramientas geoespaciales, en vez de quedarse como cajas aisladas en el espacio de píxeles.
El proyecto documenta además un flujo de georreferenciación ráster para las imágenes de detección con estilo aplicado: copia de metadatos EXIF/XMP desde las imágenes originales del dron, generación de archivos JGW world para las salidas JPEG, documentación de los supuestos de CRS, soporte opcional de GeoTIFF como alternativa y carga ráster orientada a QGIS. Esta capa ráster es distinta de las salidas vectoriales como GeoJSON y shapefile, y responde a la necesidad práctica de superponer visualmente la imagen anotada dentro de herramientas GIS.
El componente de video introduce otro tipo de complejidad, porque la inferencia sobre video no es inferencia de imagen repetida por frame. Involucra estado temporal, decodificación de frames, ejecución de `model.track()`, extracción de cajas e IDs de seguimiento, conteo de objetos únicos, renderizado de superposiciones, escritura de video, generación de SRT, manejo de errores por frame y liberación de recursos. La documentación recoge riesgos como la inestabilidad de los IDs del tracker, valores `box.id` ausentes, problemas de espacio de color RGB/BGR, fallos de serialización JSON y cuellos de botella de rendimiento por el procesamiento frame a frame.
El sistema documenta también sus restricciones y compromisos de ingeniería: el sobrecosto de SAHI en tiempo de ejecución, la presión sobre la memoria GPU/CUDA, los supuestos del runtime de cuDNN, el linaje de experimentos basado en sistema de archivos, la fragilidad de las rutas, la ausencia de lógica formal de reintentos, la falta de workers en segundo plano, la idempotencia de las salidas, la calidad de los metadatos, la ambigüedad de CRS y la diferencia entre un pipeline por lotes de nivel investigación y una plataforma lista para producción. Esas limitaciones se documentan a propósito, para mostrar criterio de ingeniería realista en vez de presentar el sistema como un producto terminado.
Desde la arquitectura de software, el proyecto se organiza en varios servicios y capas de procesamiento: orquestación por CLI, selección de modelo, entrenamiento, validación, benchmarking, inferencia, reconstrucción SAHI, seguimiento en video, enriquecimiento geoespacial, georreferenciación ráster, exportación GIS, reportería y renderizado de documentación. La versión pública los describe como componentes arquitectónicos generalizados, sin publicar código propietario ni detalles de implementación institucional.
El repositorio busca demostrar capacidades aplicadas de ingeniería de ML en varios dominios: visión por computador, detección de objetos, procesamiento de imagen de alta resolución, manejo de metadatos geoespaciales, integración GIS, analítica de video, metodología de evaluación, flujos conscientes de GPU y documentación técnica. Muestra cómo un pipeline de machine learning puede extenderse más allá de la inferencia hacia evaluación reproducible, inteligencia espacial, reportería y análisis práctico.
Este repositorio público es una versión saneada para portafolio. No incluye datasets privados, código fuente de sistemas propietarios, pesos de modelos entrenados, imágenes reales de dron, coordenadas reales de campo, shapefiles ni GeoJSON reales, credenciales de producción, nombres de instituciones o clientes, resultados experimentales no publicados ni detalles operativos confidenciales. La documentación se presenta como un caso de estudio técnico generalizado, centrado en arquitectura, metodología, decisiones de ingeniería y patrones de diseño de sistemas.
Framework: AI / Computer Vision
Stack tecnológico:
Python, PyTorch, Ultralytics YOLOv8/YOLO11, SAHI, OpenCV, Pillow, NumPy, Pandas, pycocotools, ClearML, CUDA, cuDNN, EXIF/GPS metadata processing, UTM coordinate conversion, GeoJSON, Shapefile, JGW world files, GeoTIFF, QGIS, PyQGIS, GDAL/OGR, Markdown documentation
Equipo
Company / Institution: Anonymized Agricultural Computer Vision R&D Case Study
Desarrollador: Marco Parra
The repository documents the problem, architecture and results of this case study. Source code is not published (confidential, anonymized professional work).

Imágenes del proyecto
