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.
- entrada de imagen de tamaño
- 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 especificartype=BOUNDARIES
ycoordinate_type=RATIO
.
- tensor de tamaño
- 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 tamaño
- tensor de puntuaciones (
kTfLiteFloat32
):- tensor de tamaño
[1 x num_results]
, cada valor que representa la puntuación del objeto detectado.
- tensor de tamaño
- Cantidad de tensor de detección (
kTfLiteFloat32
):- entero num_results como tensor de tamaño
[1]
.
- entero num_results como tensor de tamaño
- Tensor de ubicación (
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 | |
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. |