EP08_11 — 🔴 Clasificación y Validación de Objetos con Plantilla de Bounding Box
8.14.11 EP08_11 🔴 Clasificación y Validación de Objetos con Plantilla de Bounding Box
En este ejercicio, el objetivo es procesar una imagen en tonos de gris que contiene múltiples objetos geométricos, extraer sus propiedades con mm.measure y validar las cajas delimitadoras (bounding boxes) detectadas en relación con una plantilla real (Ground Truth - GT) proporcionada en la entrada, utilizando la métrica IoU (Intersection over Union).
8.14.11.1 📋 Directrices de Implementación
Lectura de la Imagen: Leer las dimensiones \(H \times W\) y la matriz \(H \times W\) de píxeles de la imagen en tonos de gris.
Pipeline Morfológico: Binarizar la imagen mediante el método de Otsu (mm.threshold) y renderizar la máscara binarizada resultante utilizando mm.drawImg.
Lectura de la Plantilla Real (Ground Truth):
Leer la cantidad \(G\) de cajas delimitadoras de la plantilla.
Si \(G > 0\), leer \(G\) líneas que contienen 5 valores cada una: id xmin_norm ymin_norm xmax_norm ymax_norm.
Conversión de Coordenadas: Las coordenadas de la plantilla están normalizadas en el rango \([0.0, 1.0]\). Para convertir a píxeles en la cuadrícula de la imagen:
\[x_{\min} = \lfloor \text{xmin\_norm} \times W \rfloor, \quad y_{\min} = \lfloor \text{ymin\_norm} \times H \rfloor\]
\[w = \lfloor \text{xmax\_norm} \times W \rfloor - x_{\min}, \quad h = \lfloor \text{ymax\_norm} \times H \rfloor - y_{\min}\]
Extracción de Métricas y Cálculo de IoU:
Extraer las propiedades de las instancias con mm.measure(img_bin, precision=0.02).
Para cada bounding box detectada \((x, y, w, h)\), calcular la superposición IoU respecto a las cajas de la plantilla y definir hits = 1 si existe alguna coincidencia con \(\text{IoU} \ge 0.50\), o hits = 0 en caso contrario.
Salida: Ordenar las instancias por posición (bbox[0], bbox[1]) e imprimir la tabla CSV con la columna adicional hits.
Para ordenar, usar medidas.sort(key=lambda m: (m['bbox'][1], m['bbox'][0])), con medidas = mm.measure(img).
8.14.11.2 🧠 Fundamentación Teórica y Conversión
Concepto
Fórmula / Operación
Descripción
BBox Detectada
\((x, y, w, h)\) vía mm.measure
Caja delimitadora calculada en la cuadrícula discreta en píxeles enteros.
BBox Plantilla (GT)
\((x_{\min}, y_{\min}, w, h)\) convertidos
Caja real proporcionada en la entrada en coordenadas relativas \([0.0, 1.0]\).
Evalúa la tasa de superposición de las cajas. Se considera válida si \(\text{IoU} \ge 0.50\).
Estado de Validación (hits)
\(1\) si \(\max(\text{IoU}) \ge 0.50\), sino \(0\)
Indicador binario de acierto del detector respecto a la plantilla.
8.14.11.3 📦 Especificación de Entrada y Salida (VPL)
Entrada:
Línea 1: Enteros \(H\) y \(W\) (dimensiones de la matriz).
Siguientes \(H\) líneas:\(W\) enteros (\(0\) a \(255\)) que representan la imagen en tonos de gris.
Línea \(H + 2\): Entero \(G\) (cantidad de cajas de la plantilla verdadera).
Siguientes \(G\) líneas: 5 valores numéricos por línea: id xmin_norm ymin_norm xmax_norm ymax_norm (donde las coordenadas son valores flotantes entre \(0.0\) y \(1.0\)).