Saltar al contenido principal

DOCUMENTACIÓN CON IA

¿Qué desea saber?

Endpoint de ROI Recortada (Solo Clasificación)

Nota sobre OV10i

El OV10i admite únicamente modelos de Clasificación. Las funciones de Segmentación mencionadas en esta página están disponibles en las cámaras OV20i y OV80i.

Visión General

El endpoint cropped_roi proporciona acceso a las Regiones de Interés (ROIs) recortadas generadas a partir de los resultados de Clasificación en Haystack ejecutándose en el dispositivo.

Solo clasificación

Haystack no admite actualmente resultados de segmentación. Este endpoint funciona únicamente para resultados de tipo clasificación. Si necesita procesar la salida del segmentador de forma programática, utilice la API estándar de resultados de inspección en su lugar.

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 construye dinámicamente las URLs para las imágenes de 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 correspondiente a una ROI de clasificación individual, que típicamente representa una sola 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 reutilizarla
  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 de classification_result

  3. Filtra Únicamente los Resultados de Clasificación

    • Omite los 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. Genera las URLs de ROI Recortadas

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

image1.png

image2.png


Ejemplo de Uso

Obtener una Imagen de ROI Recortada

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

Uso 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. Adquirir los metadatos de la última captura mediante /postgrest/captures.
  2. Identificar los IDs de classification_result disponibles.
  3. Construir las URLs de ROI recortadas para cada resultado.
  4. Mostrar o descargar esas imágenes para análisis, datos de entrenamiento o inspección de QA.

Descargar el Flujo de Node-RED

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