Saltar al contenido principal

Endpoint de ROI recortado (Solo clasificación)

Visión general

El endpoint cropped_roi proporciona acceso a Regiones de Interés (ROIs) recortadas generadas a partir de resultados de clasificación en Haystack que se ejecuta en el dispositivo.

Importante: Este endpoint funciona solo con resultados de clasificación. El tipo de segmentación no es compatible para el recorte de ROI a través de este endpoint.

El formato de la URL base es:

http://{device-ip}/edge/haystack/cropped_roi/{classification_result_id}

Cómo funciona

Cuando la cámara completa una captura de clasificación, el flujo de Node-RED genera dinámicamente las URL para las imágenes ROI recortadas emparejando la IP del dispositivo y el ID del resultado de clasificación:

const imageUrl = `http://${baseUrl}/edge/haystack/cropped_roi/${result.id}`;

Cada URL sirve una imagen recortada que corresponde a un ROI de clasificación individual, típicamente representando una única inspección.


Resumen del flujo de Node-RED

El flujo ROI_Crop realiza lo siguiente:

  1. Extrae la IP del dispositivo

    • Analiza el campo image_url para encontrar la IP (p. ej., 192.168.0.101)
    • La almacena globalmente para reutilización
  2. Consulta los datos de la última captura

    • Envía una solicitud GET a la API PostgREST del dispositivo:

      http://{device-ip}/postgrest/captures?select=...
      &order=id.desc&limit=1
    • Recupera la captura más reciente y todas las entradas classification_result

  3. Filtra solo resultados de Clasificación

    • Omite resultados de segmentación o alineación

    • Itera sobre cada resultado de clasificación:

      classificationResults.forEach(result => {
      const roiName = result.roi_result?.inspection_region?.name || `ROI_${result.id}`;
      const imageUrl = `http://${baseUrl}/edge/haystack/cropped_roi/${result.id}`;
      imageMap[roiName] = imageUrl;
      });
  4. Obtiene las URL de ROI recortados

    • Guarda todos los enlaces de imágenes ROI en un mapa global imageMap
    • Devuelve la lista de las últimas URL de imágenes ROI recortadas

image1.png

image2.png


Ejemplos de uso

Obtener una imagen ROI recortada

curl http://192.168.0.101/edge/haystack/cropped_roi/42 -o roi_42.jpg

Usarla en una interfaz web

<img src="http://192.168.0.101/edge/haystack/cropped_roi/42" alt="Cropped ROI 42">

Ejemplo de salida

{
"ROI_1": "http://192.168.0.101/edge/haystack/cropped_roi/1",
"ROI_2": "http://192.168.0.101/edge/haystack/cropped_roi/2"
}

Parámetros

ParámetroTipoDescripción
device-ipstringDirección IP de la cámara (p. ej., 192.168.0.101)

Flujo de integración

  1. Adquiere metadatos de la captura más reciente a través de /postgrest/captures.
  2. Identifica los IDs disponibles de classification_result.
  3. Construye las URL de ROI recortados para cada resultado.
  4. Muestra o descarga esas imágenes para análisis, datos de entrenamiento o inspección QA.

Descargar Flujo de Node-RED

  • ROI Crop Flow (JSON) - Flujo completo de Node-RED para extraer imágenes ROIs recortadas
    • Implemente este flujo directamente en Node-RED para acceder a ROIs de clasificación recortadas
    • Funciona con los sistemas OV20i y OV80i