EP09_06 — 🔴 Pipeline Integrado: De la Detección a la Medición del Mundo Real
9.10.6 EP09_06 🔴 Pipeline Integrado: De la Detección a la Medición del Mundo Real
Este ejercicio final integra los dos ejercicios de detección y el principio de fotogrametría presentado en la sección “Fotogrametría y Referencia de Escala” — exactamente el mismo cálculo implementado en la figura de medición por referencia de escala de este capítulo. El escenario reproduce una situación realista: un detector (Faster R-CNN o YOLO) genera varias cajas candidatas superpuestas para el mismo objeto de interés; tras filtrarlas por NMS, la caja superviviente de mayor confianza se usa, junto con una caja de referencia de ancho real conocido (como la tarjeta de \(8{,}56\) cm), para estimar las dimensiones reales del objeto detectado.
9.10.6.1 📋 Directrices de Implementación
Referencia conocida: Leer el valor real \(L_{ref}\) (ancho real del objeto de referencia, en cm) y, a continuación, los cuatro reales \(x_1\ y_1\ x_2\ y_2\) de su caja delimitadora en píxeles (ya conocida, sin necesidad de detección).
Candidatas del objeto a medir: Leer el entero \(N\) (número de cajas candidatas producidas por el detector para el objeto de interés) y el umbral real \(\tau\); a continuación, leer las \(N\) líneas de cajas candidatas, cada una con \(x_1\ y_1\ x_2\ y_2\ \text{score}\).
Etapa 1 — NMS: Aplicar exactamente el algoritmo de Supresión de No Máximos del EP09_04 a las \(N\) cajas candidatas, usando el umbral \(\tau\), para eliminar detecciones redundantes del mismo objeto.
Etapa 2 — Selección de la caja final: Tras el NMS, la caja de mayor score entre las mantenidas es la detección final del objeto (la entrada garantiza que todas las cajas candidatas corresponden a un único objeto físico, por lo que la primera caja seleccionada por el NMS ya es el resultado final).
Etapa 3 — Medición por referencia de escala: Calcular la razón \(\text{cm/pixel} = L_{ref} / \text{ancho de la referencia en píxeles}\) y aplicarla tanto al ancho como a la altura (en píxeles) de la caja final del objeto, obteniendo sus dimensiones reales estimadas en centímetros.
Salida: Primero, una línea por caja mantenida tras el NMS (mismo formato del EP09_04): índice score. A continuación, la línea Total mantenidas: X. Finalmente, la línea Objeto: L x A cm, donde \(L\) y \(A\) son el ancho y la altura estimados del objeto, cada uno con 2 decimales.
9.10.6.2 📌 Restricciones Computacionales
Reutilizar el NMS del EP09_04 íntegramente — misma regla de desempate, mismo criterio de supresión (\(\text{IoU} > \tau\)).
La referencia no pasa por NMS: su caja se da directamente, sin candidatas competidoras.
Razón única para ancho y altura: así como en la figura de fotogrametría del capítulo, la misma razón cm/pixel (derivada del ancho de la referencia) se aplica tanto al ancho como a la altura del objeto — no hay calibración vertical separada.
9.10.6.3 🧠 Fundamentación Teórica
Etapa
Concepto del capítulo
Múltiples cajas candidatas
Salida bruta de un detector como el Faster R-CNN o el YOLO, antes del posprocesamiento
NMS (EP09_04)
Filtra las detecciones redundantes, preservando solo la más confiable para el objeto
Referencia de escala conocida
Mismo principio de la tarjeta de \(8{,}56\) cm usado en la sección “Fotogrametría y Referencia de Escala”
Conversión píxel → centímetro
Regla de tres simple: \(\text{cm/pixel} = L_{ref} / w_{ref\_px}\), aplicada a la caja final del objeto
9.10.6.4 🧩 Métodos del morph.py que pueden ayudar
mm.IoU(boxA, boxB) — la misma función sugerida en el EP09_04, aquí reutilizada dentro de la etapa de NMS de este pipeline integrado (recuerde la conversión de formato: \(w = x_2-x_1\), \(h = y_2-y_1\)).
Si ya resolvió el EP09_04 encapsulando el NMS en una función propia, este es el momento ideal de reutilizar ese código — la integración de módulos ya probados individualmente es exactamente la práctica de ingeniería que este ejercicio quiere reforzar.
9.10.6.5 📦 Especificación de Entrada y Salida (VPL)
Entrada:
Línea 1: Real \(L_{ref}\).
Línea 2: \(x_1\ y_1\ x_2\ y_2\) de la caja de referencia.
Línea 3: Entero \(N\) y real \(\tau\).
Siguientes \(N\) líneas: \(x_1\ y_1\ x_2\ y_2\ \text{score}\) de las cajas candidatas del objeto.
Salida:
Una línea por caja mantenida tras el NMS: índice score.