ObjectDetector

Clase final pública ObjectDetector

Realiza la detección de objetos en imágenes.

La API espera un modelo de TFLite con los metadatos del modelo de TFLite.

La API admite modelos con un tensor de entrada de imagen y cuatro tensores de salida. Para ser más específicos, estos son los requisitos.

  • Tensor de imagen de entrada (kTfLiteUInt8/kTfLiteFloat32)
    • entrada de imagen de tamaño [batch x height x width x channels].
    • no se admite la inferencia por lotes (se requiere que batch sea 1).
    • Solo se admiten entradas RGB (se requiere que channels sea 3).
    • Si el tipo es kTfLiteFloat32, se debe adjuntar NormalizationOptions a los metadatos para la normalización de entrada.
  • Los tensores de salida deben ser las 4 salidas de una op DetectionPostProcess, es decir:
    • Tensor de ubicación (kTfLiteFloat32):
      • tensor de tamaño [1 x num_results x 4], el array interno que representa los cuadros de límite con el formato [top, left, right, left].
      • Las BoundingBoxProperties deben adjuntarse a los metadatos y deben especificar type=BOUNDARIES y coordinate_type=RATIO.
    • Tensor de clases (kTfLiteFloat32):
      • tensor de tamaño [1 x num_results], cada valor que representa el índice de números enteros de una clase.
      • Si los mapas de etiquetas se adjuntan a los metadatos como archivos asociados TENSOR_VALUE_LABELS, se usan para convertir los valores del tensor en etiquetas.
    • tensor de puntuaciones (kTfLiteFloat32):
      • tensor de tamaño [1 x num_results], cada valor que representa la puntuación del objeto detectado.
    • Cantidad de tensor de detección (kTfLiteFloat32):
      • entero num_results como tensor de tamaño [1].

Puedes encontrar un ejemplo de este modelo en TensorFlow Hub.

Categorías anidadas

clase ObjectDetector.ObjectDetectorOptions Opciones para configurar un ObjectDetector

Métodos públicos

ObjectDetector estático
createFromBuffer(contexto de contexto, modelBuffer de ByteBuffer)
Crea una instancia ObjectDetector a partir de un búfer de modelo y el ObjectDetector.ObjectDetectorOptions predeterminado.
ObjectDetector estático
createFromFile(contexto de contexto, String modelPath)
Crea una instancia ObjectDetector a partir de un archivo de modelo y el ObjectDetector.ObjectDetectorOptions predeterminado.
ObjectDetector estático
createFromFile(contexto de contexto, Archivo modelFile)
Crea una instancia ObjectDetector a partir de un archivo de modelo y el ObjectDetector.ObjectDetectorOptions predeterminado.
ObjectDetector estático
createFromOptions(contexto de contexto, ObjectDetector.ObjectDetectorOptions detectorOptions)
Crea una instancia de ObjectDetector a partir de un ObjectDetector.ObjectDetectorOptions.
ObjectDetectorResult
detect(imagen MPImage)
Realiza la detección de objetos en la imagen única que se proporciona con las opciones de procesamiento de imágenes predeterminadas, p.ej.,
ObjectDetectorResult
detect(imagen MPImage, ImageProcessingOptions imageProcessingOptions)
Realiza la detección de objetos en la imagen única proporcionada.
void
detectAsync(imagen MPImage, ImageProcessingOptions imageProcessingOptions, marca de tiempo largaMs)
Envía datos de imágenes en vivo para realizar la detección de objetos, y los resultados estarán disponibles a través del OutputHandler.ResultListener proporcionado en ObjectDetector.ObjectDetectorOptions.
void
detectAsync(imagen MPImage, timestampMs largo)
Envía datos de imágenes en vivo para realizar la detección de objetos con las opciones de procesamiento de imágenes predeterminadas, p.ej.,
ObjectDetectorResult
detectForVideo(imagen MPImage, ImageProcessingOptions imageProcessingOptions, marca de tiempo largaMs)
Realiza la detección de objetos en el fotograma de video proporcionado.
ObjectDetectorResult
detectForVideo(imagen MPImage, timestampMs largo)
Realiza la detección de objetos en el fotograma de video proporcionado con las opciones de procesamiento de imágenes predeterminadas, p.ej.,

Métodos heredados

Métodos públicos

publica estática estática ObjectDetector createFromBuffer (contexto de contexto, ByteBuffer modelBuffer)

Crea una instancia ObjectDetector a partir de un búfer de modelo y el ObjectDetector.ObjectDetectorOptions predeterminado.

Parámetros
Contexto un ERROR(/Context) de Android
modelBuffer un ByteBuffer directo o un ERROR(/MappedByteBuffer) del modelo de detección.
Arroja
Si se produce un error durante la creación de ObjectDetector.

publica estática estática ObjectDetector createFromFile (contexto de contexto, String modelPath)

Crea una instancia ObjectDetector a partir de un archivo de modelo y el ObjectDetector.ObjectDetectorOptions predeterminado.

Parámetros
Contexto un ERROR(/Context) de Android
modelPath al modelo de detección con metadatos en los recursos.
Arroja
Si se produce un error durante la creación de ObjectDetector.

público estático ObjectDetector createFromFile (Contexto de contexto, Archivo modelFile)

Crea una instancia ObjectDetector a partir de un archivo de modelo y el ObjectDetector.ObjectDetectorOptions predeterminado.

Parámetros
Contexto un ERROR(/Context) de Android
modelFile a la instancia del modelo de detección File.
Arroja
IOException si se produce un error de E/S cuando se abre el archivo del modelo de tflite.
Si se produce un error durante la creación de ObjectDetector.

estático público ObjectDetector createFromOptions (Contexto de contexto, ObjectDetector.ObjectDetectorOptions detectorOptions)

Crea una instancia de ObjectDetector a partir de un ObjectDetector.ObjectDetectorOptions.

Parámetros
Contexto un ERROR(/Context) de Android
detectorOptions una instancia de ObjectDetector.ObjectDetectorOptions.
Arroja
Si se produce un error durante la creación de ObjectDetector.

public ObjectDetectorResult detect (MPImage image)

Realiza la detección de objetos en la imagen única que se proporciona con las opciones de procesamiento de imágenes predeterminadas, es decir, sin aplicar ninguna rotación. Usa este método solo cuando se cree el ObjectDetector con ERROR(/RunningMode.IMAGE).

ObjectDetector admite los siguientes tipos de espacios de color:

Parámetros
imagen un objeto MPImage de MediaPipe para su procesamiento
Arroja
si se produce un error interno.

public ObjectDetectorResult detect (MPImage imagen, ImageProcessingOptions imageProcessingOptions)

Realiza la detección de objetos en la imagen única proporcionada. Usa este método solo cuando se cree el ObjectDetector con ERROR(/RunningMode.IMAGE).

ObjectDetector admite los siguientes tipos de espacios de color:

Parámetros
imagen un objeto MPImage de MediaPipe para su procesamiento
imageProcessingOptions ImageProcessingOptions que especifica cómo procesar la imagen de entrada antes de ejecutar la inferencia. Ten en cuenta que la región de interés no es compatible con esta tarea: especificar ImageProcessingOptions.regionOfInterest() hará que este método arroje una IllegalArgumentException.
Arroja
IllegalArgumentException si ImageProcessingOptions especifica una región de interés.
si se produce un error interno.

public void detectAsync (imagen MPImage, ImageProcessingOptions imageProcessingOptions, long timestampMs)

Envía datos de imágenes en vivo para realizar la detección de objetos, y los resultados estarán disponibles a través del OutputHandler.ResultListener proporcionado en ObjectDetector.ObjectDetectorOptions. Usa este método solo cuando se cree el ObjectDetector con ERROR(/RunningMode.LIVE_STREAM).

Se debe proporcionar una marca de tiempo (en milisegundos) para indicar cuándo se envía la imagen de entrada al detector de objetos. Las marcas de tiempo de entrada deben aumentar monótonamente.

ObjectDetector admite los siguientes tipos de espacios de color:

Parámetros
imagen un objeto MPImage de MediaPipe para su procesamiento
imageProcessingOptions ImageProcessingOptions que especifica cómo procesar la imagen de entrada antes de ejecutar la inferencia. Ten en cuenta que la región de interés no es compatible con esta tarea: especificar ImageProcessingOptions.regionOfInterest() hará que este método arroje una IllegalArgumentException.
timestampMs la marca de tiempo de entrada (en milisegundos).
Arroja
IllegalArgumentException si ImageProcessingOptions especifica una región de interés.
si se produce un error interno.

public void detectAsync (imagen MPImage, timestampMs largo)

Envía datos de imágenes en vivo para realizar la detección de objetos con opciones de procesamiento de imagen predeterminadas (es decir, sin rotación), y los resultados estarán disponibles a través del OutputHandler.ResultListener proporcionado en ObjectDetector.ObjectDetectorOptions. Usa este método solo cuando se cree el ObjectDetector con ERROR(/RunningMode.LIVE_STREAM).

Se debe proporcionar una marca de tiempo (en milisegundos) para indicar cuándo se envía la imagen de entrada al detector de objetos. Las marcas de tiempo de entrada deben aumentar monótonamente.

ObjectDetector admite los siguientes tipos de espacios de color:

Parámetros
imagen un objeto MPImage de MediaPipe para su procesamiento
timestampMs la marca de tiempo de entrada (en milisegundos).
Arroja
si se produce un error interno.

public ObjectDetectorResult detectForVideo (MPImage imagen, ImageProcessingOptions imageProcessingOptions, long timestampMs)

Realiza la detección de objetos en el fotograma de video proporcionado. Usa este método solo cuando se cree el ObjectDetector con ERROR(/RunningMode.VIDEO).

Es obligatorio proporcionar la marca de tiempo del fotograma del video (en milisegundos). Las marcas de tiempo de entrada deben aumentar de forma monótona.

ObjectDetector admite los siguientes tipos de espacios de color:

Parámetros
imagen un objeto MPImage de MediaPipe para su procesamiento
imageProcessingOptions ImageProcessingOptions que especifica cómo procesar la imagen de entrada antes de ejecutar la inferencia. Ten en cuenta que la región de interés no es compatible con esta tarea: especificar ImageProcessingOptions.regionOfInterest() hará que este método arroje una IllegalArgumentException.
timestampMs la marca de tiempo de entrada (en milisegundos).
Arroja
IllegalArgumentException si ImageProcessingOptions especifica una región de interés.
si se produce un error interno.

public ObjectDetectorResult detectForVideo (MPImage image, long timestampMs)

Realiza la detección de objetos en el fotograma de video proporcionado con opciones de procesamiento de imágenes predeterminadas, es decir, sin rotación. Usa este método solo cuando se cree el ObjectDetector con ERROR(/RunningMode.VIDEO).

Es obligatorio proporcionar la marca de tiempo del fotograma del video (en milisegundos). Las marcas de tiempo de entrada deben aumentar de forma monótona.

ObjectDetector admite los siguientes tipos de espacios de color:

Parámetros
imagen un objeto MPImage de MediaPipe para su procesamiento
timestampMs la marca de tiempo de entrada (en milisegundos).
Arroja
si se produce un error interno.