Executa detecção de objetos em imagens.
A API espera um modelo do TFLite com TFLite Model Metadata..
A API oferece suporte a modelos com um tensor de entrada de imagem e quatro tensores de saída. Para ser mais específico, veja os requisitos.
- Tensor de imagem de entrada (
kTfLiteUInt8
/kTfLiteFloat32
)- entrada de imagem de
[batch x height x width x channels]
. - a inferência em lote não é aceita (
batch
precisa ser 1). - apenas entradas RGB são aceitas (
channels
precisa ser 3). - Se o tipo for
kTfLiteFloat32
, as NormalizationOptions precisam ser anexadas aos metadados para a normalização de entrada.
- entrada de imagem de
- Os tensores de saída precisam ser as quatro saídas de uma operação
DetectionPostProcess
, ou seja:- Tensor de localização (
kTfLiteFloat32
):- tensor de tamanho
[1 x num_results x 4]
, a matriz interna que representa caixas delimitadoras no formato [superior, esquerda, direita, inferior]. BoundingBoxProperties
precisam ser anexados aos metadados e precisam especificartype=BOUNDARIES
ecoordinate_type=RATIO
.
- tensor de tamanho
- Tensor de classes (
kTfLiteFloat32
):- tensor de tamanho
[1 x num_results]
, cada valor representando o índice de números inteiros de uma classe. - Se os mapas de rótulos estiverem anexados aos metadados como arquivos associados a
TENSOR_VALUE_LABELS
, eles serão usados para converter os valores do tensor em rótulos.
- tensor de tamanho
- Tensor de pontuações (
kTfLiteFloat32
):- tensor de tamanho
[1 x num_results]
, cada valor representando a pontuação do objeto detectado.
- tensor de tamanho
- Número do tensor de detecção (
kTfLiteFloat32
):- num_results do número inteiro como um tensor de tamanho
[1]
.
- num_results do número inteiro como um tensor de tamanho
- Tensor de localização (
Um exemplo desse modelo pode ser encontrado no TensorFlow Hub.
Classes aninhadas
classe | ObjectDetector.ObjectDetectorOptions | Opções para configurar um ObjectDetector . |
Métodos públicos
estático ObjectDetector |
createFromBuffer(contexto de contexto, modelBuffer ByteBuffer)
Cria uma instância
ObjectDetector com base em um buffer de modelo e o ObjectDetector.ObjectDetectorOptions padrão. |
estático ObjectDetector |
createFromFile(contexto de contexto, modelPath String)
Cria uma instância
ObjectDetector com base em um arquivo de modelo e o ObjectDetector.ObjectDetectorOptions padrão. |
estático ObjectDetector |
createFromFile(contexto de contexto, File modelFile)
Cria uma instância
ObjectDetector com base em um arquivo de modelo e o ObjectDetector.ObjectDetectorOptions padrão. |
estático ObjectDetector |
createFromOptions(contexto de contexto, ObjectDetector.ObjectDetectorOptions detectorOptions)
Cria uma instância
ObjectDetector de um ObjectDetector.ObjectDetectorOptions . |
ObjectDetectorResult | |
ObjectDetectorResult |
detect(imagem MPImage, ImageProcessingOptions imageprocessingOptions)
Executa detecção de objetos na imagem única fornecida.
|
void |
detectAsync(imagem MPImage, ImageProcessingOptions imageHandlingOptions, carimbos de data/hora longos)
Envia dados de imagens em tempo real para realizar a detecção de objetos. Os resultados ficam disponíveis pelo
OutputHandler.ResultListener fornecido no ObjectDetector.ObjectDetectorOptions . |
void |
detectAsync(imagem MPImage, carimbos de data/hora longos)
Envia dados de imagens em tempo real para realizar a detecção de objetos com opções de processamento de imagem padrão, ou seja,
|
ObjectDetectorResult |
detectForVideo(imagem MPImage, ImageProcessingOptions imageprocessingOptions, carimbos de data/hora longos)
Executa detecção de objetos no frame de vídeo fornecido.
|
ObjectDetectorResult |
detectForVideo(imagem MPImage, carimbos de data/hora longos)
Executa detecção de objetos no frame de vídeo fornecido com opções de processamento de imagem padrão,
ou seja,
|
Métodos herdados
Métodos públicos
public Static ObjectDetector createFromBuffer (contexto de contexto, ByteBuffer modelBuffer)
Cria uma instância ObjectDetector
com base em um buffer de modelo e o ObjectDetector.ObjectDetectorOptions
padrão.
Parâmetros
contexto | um ERROR(/Context) do Android. |
---|---|
modelBuffer | um ByteBuffer direto ou um ERROR(/MappedByteBuffer) do modelo de detecção. |
Gera
se houver um erro durante a criação de ObjectDetector .
|
public Static ObjectDetector createFromFile (contexto de contexto, String modelPath)
Cria uma instância ObjectDetector
com base em um arquivo de modelo e o ObjectDetector.ObjectDetectorOptions
padrão.
Parâmetros
contexto | um ERROR(/Context) do Android. |
---|---|
modelPath | caminho para o modelo de detecção com metadados nos recursos. |
Gera
se houver um erro durante a criação de ObjectDetector .
|
público estático ObjectDetector createFromFile (contexto de contexto, arquivo modelFile)
Cria uma instância ObjectDetector
com base em um arquivo de modelo e o ObjectDetector.ObjectDetectorOptions
padrão.
Parâmetros
contexto | um ERROR(/Context) do Android. |
---|---|
modelFile | a instância File do modelo de detecção. |
Gera
IOException | se ocorrer um erro de E/S ao abrir o arquivo do modelo do tflite. |
---|---|
se houver um erro durante a criação de ObjectDetector .
|
public Static ObjectDetector createFromOptions (contexto de contexto, ObjectDetector.ObjectDetectorOptions detectorOptions)
Cria uma instância ObjectDetector
de um ObjectDetector.ObjectDetectorOptions
.
Parâmetros
contexto | um ERROR(/Context) do Android. |
---|---|
detectorOptions | uma instância ObjectDetector.ObjectDetectorOptions . |
Gera
se houver um erro durante a criação de ObjectDetector .
|
public ObjectDetectorResult detect (MPImage)
Executa a detecção de objetos na imagem única fornecida com opções de processamento de imagem padrão,
ou seja, sem aplicação de qualquer rotação. Use esse método somente quando o ObjectDetector
for
criado com ERROR(/RunningMode.IMAGE)
.
ObjectDetector
oferece suporte aos seguintes tipos de espaço de cores:
Parâmetros
imagem | um objeto MPImage do MediaPipe para processamento. |
---|
Gera
caso haja um erro interno. |
public ObjectDetectorResult detect (MPImage, ImageProcessingOptions imageprocessingOptions)
Executa detecção de objetos na imagem única fornecida. Use esse método somente quando o ObjectDetector
for criado com ERROR(/RunningMode.IMAGE)
.
ObjectDetector
oferece suporte aos seguintes tipos de espaço de cores:
Parâmetros
imagem | um objeto MPImage do MediaPipe para processamento. |
---|---|
imageProcessingOptions | o ImageProcessingOptions que especifica como processar a imagem de entrada antes de executar a inferência. Essa tarefa não oferece suporte à região de interesse: especificar ImageProcessingOptions.regionOfInterest() fará com que esse método gere uma IllegalArgumentException. |
Gera
IllegalArgumentException | se ImageProcessingOptions especificar uma região de interesse. |
---|---|
caso haja um erro interno. |
public void detectAsync (MPImage imagem, ImageProcessingOptions image ProcessingOptions, long timestampMs)
Envia dados de imagens em tempo real para realizar a detecção de objetos. Os resultados ficam disponíveis pelo OutputHandler.ResultListener
fornecido no ObjectDetector.ObjectDetectorOptions
. Use esse método somente quando
a ObjectDetector
for criada com ERROR(/RunningMode.LIVE_STREAM)
.
É necessário informar um carimbo de data/hora (em milissegundos) para indicar quando a imagem de entrada é enviada ao detector de objetos. Os carimbos de data/hora de entrada precisam aumentar monotonicamente.
ObjectDetector
oferece suporte aos seguintes tipos de espaço de cores:
Parâmetros
imagem | um objeto MPImage do MediaPipe para processamento. |
---|---|
imageProcessingOptions | o ImageProcessingOptions que especifica como processar a imagem de entrada antes de executar a inferência. Essa tarefa não oferece suporte à região de interesse: especificar ImageProcessingOptions.regionOfInterest() fará com que esse método gere uma IllegalArgumentException. |
timestampMs | o carimbo de data/hora de entrada (em milissegundos). |
Gera
IllegalArgumentException | se ImageProcessingOptions especificar uma região de interesse. |
---|---|
caso haja um erro interno. |
public void detectAsync (MPImage imagem, carimbos de data/hora longos)
Envia dados de imagem em tempo real para realizar detecção de objetos com opções de processamento de imagem padrão, ou seja,
sem nenhuma rotação aplicada, e os resultados estarão disponíveis por meio do OutputHandler.ResultListener
fornecido no ObjectDetector.ObjectDetectorOptions
. Use esse método somente quando o ObjectDetector
for criado com ERROR(/RunningMode.LIVE_STREAM)
.
É necessário informar um carimbo de data/hora (em milissegundos) para indicar quando a imagem de entrada é enviada ao detector de objetos. Os carimbos de data/hora de entrada precisam aumentar monotonicamente.
ObjectDetector
oferece suporte aos seguintes tipos de espaço de cores:
Parâmetros
imagem | um objeto MPImage do MediaPipe para processamento. |
---|---|
timestampMs | o carimbo de data/hora de entrada (em milissegundos). |
Gera
caso haja um erro interno. |
public ObjectDetectorResult detectForVideo (imagem MPImage, ImageProcessingOptions imageHandlingOptions, carimbo de data/hora longo)
Executa detecção de objetos no frame de vídeo fornecido. Use esse método somente quando o ObjectDetector
for criado com ERROR(/RunningMode.VIDEO)
.
É necessário fornecer o carimbo de data/hora do frame do vídeo (em milissegundos). Os carimbos de data/hora de entrada precisam aumentar monotonicamente.
ObjectDetector
oferece suporte aos seguintes tipos de espaço de cores:
Parâmetros
imagem | um objeto MPImage do MediaPipe para processamento. |
---|---|
imageProcessingOptions | o ImageProcessingOptions que especifica como processar a imagem de entrada antes de executar a inferência. Essa tarefa não oferece suporte à região de interesse: especificar ImageProcessingOptions.regionOfInterest() fará com que esse método gere uma IllegalArgumentException. |
timestampMs | o carimbo de data/hora de entrada (em milissegundos). |
Gera
IllegalArgumentException | se ImageProcessingOptions especificar uma região de interesse. |
---|---|
caso haja um erro interno. |
public ObjectDetectorResult detectForVideo (MPImage, carimbo de data/hora longo)
Executa detecção de objetos no frame de vídeo fornecido com opções de processamento de imagem padrão,
ou seja, sem aplicação de qualquer rotação. Use esse método somente quando o ObjectDetector
for
criado com ERROR(/RunningMode.VIDEO)
.
É necessário fornecer o carimbo de data/hora do frame do vídeo (em milissegundos). Os carimbos de data/hora de entrada precisam aumentar monotonicamente.
ObjectDetector
oferece suporte aos seguintes tipos de espaço de cores:
Parâmetros
imagem | um objeto MPImage do MediaPipe para processamento. |
---|---|
timestampMs | o carimbo de data/hora de entrada (em milissegundos). |
Gera
caso haja um erro interno. |