Función Tensorflow.js tf.image.nonMaxSuppressionWithScore()

Tensorflow.js es una biblioteca de código abierto desarrollada por Google para ejecutar modelos de aprendizaje automático, así como redes neuronales de aprendizaje profundo en el entorno del navegador o del Node.

La función .image.nonMaxSuppressionWithScore() se utiliza para ejecutar la supresión no máxima de los cuadros de limitación sobre la base de iou, es decir, la intersección sobre la unión. Además, esta operación también favorece un modo Soft-NMS en el que los recuadros disminuyen la puntuación establecida de diferentes recuadros que se cruzan, admitiendo así varias áreas de la imagen además de puntuaciones altas. Para habilitar el modo Soft-NMS mencionado anteriormente, debemos configurar el parámetro softNmsSigma para que sea mayor que cero.

Sintaxis:

tf.image.nonMaxSuppressionWithScore(boxes, scores, maxOutputSize, 
iouThreshold?, scoreThreshold?, softNmsSigma?)

Parámetros:  

  • boxes: El tensor 2d indicado, que es de configuración [numBoxes, 4]. Y todo acceso es [y1, x1, y2, x2], permitiendo que (y1, x1) e (y2, x2) sean los bordes de la caja restrictiva. Puede ser de tipo tf.Tensor2D, TypedArray o Array.
  • puntuaciones: El tensor 1d indicado, siempre que las puntuaciones de las cajas tengan la configuración [numBoxes]. Es de tipo tf.Tensor2D, TypedArray o Array.
  • maxOutputSize: Es el recuento máximo de las cajas indicadas que se van a recoger. Es de tipo número.
  • iouThreshold: Es el flotador indicado que significa el umbral para decidir si las casillas indicadas se cruzan demasiado con referencia al pagaré. Debe estar en medio de [0, 1]. El valor predeterminado es 0,5, es decir, el 50 por ciento de la caja se cruza. Es opcional y es de tipo número.
  • scoreThreshold: Es el umbral establecido para decidir en qué momento se deben eliminar las casillas en función de la puntuación establecida. El valor predeterminado es -inf, es decir, se permiten todas las puntuaciones. Es opcional y es de tipo número.
  • softNmsSigma: Es un parámetro opcional de tipo número. Es el flotador indicado que significa el parámetro sigma a favor de Soft NMS . Además, si sigma es cero, entonces regresa a nonMaxSuppression .

Valor devuelto: Devuelve {[nombre: string]: tf.Tensor}.

Ejemplo 1: En este ejemplo, usaremos un tensor 2d, puntajes y parámetros maxOutputSize.

Javascript

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Calling image.nonMaxSuppressionWithScore() method
const output = tf.image.nonMaxSuppressionWithScore(
    tf.tensor2d([1, 2, 3, 4, 2, 4, 6, 7], 
    [2, 4]), [1, 1], 4
);
  
// Printing output
console.log(output);

Producción:

{
  "selectedIndices": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      2
    ],
    "dtype": "int32",
    "size": 2,
    "strides": [],
    "dataId": {
      "id": 74
    },
    "id": 74,
    "rankType": "1",
    "scopeId": 35
  },
  "selectedScores": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      2
    ],
    "dtype": "float32",
    "size": 2,
    "strides": [],
    "dataId": {
      "id": 75
    },
    "id": 75,
    "rankType": "1",
    "scopeId": 35
  }
}

Ejemplo 2: En este ejemplo, usaremos una array de flotantes, iouThreshold, scoreThreshold, así como softNmsSigma.

Javascript

// Importing the tensorflow.js library
import * as tf from "@tensorflow/tfjs"
  
// Defining an array of floats
const arr = [[11.1, 2.3, 7.3, 6.4], [3, 6]]
  
// Calling image.nonMaxSuppressionWithScore() method
const res = tf.image.nonMaxSuppressionWithScore(
    arr, [2.1, 0], 100, 0.5, 1, 0.5);
  
// Printing output
console.log(res);

Producción:

{
  "selectedIndices": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      1
    ],
    "dtype": "int32",
    "size": 1,
    "strides": [],
    "dataId": {
      "id": 84
    },
    "id": 84,
    "rankType": "1",
    "scopeId": 42
  },
  "selectedScores": {
    "kept": false,
    "isDisposedInternal": false,
    "shape": [
      1
    ],
    "dtype": "float32",
    "size": 1,
    "strides": [],
    "dataId": {
      "id": 85
    },
    "id": 85,
    "rankType": "1",
    "scopeId": 42
  }
}

Referencia: https://js.tensorflow.org/api/latest/#image.nonMaxSuppressionWithScore

Publicación traducida automáticamente

Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *