Wykrywanie obiektów na obrazach.
Interfejs API oczekuje modelu TFLite z metadanymi modelu TFLite.
Interfejs API obsługuje modele z 1 tensorem wejściowym obrazu i 4 tensorami wyjściowymi. Oto wymagania.
- Tensor obrazu wejściowego (
kTfLiteUInt8
/kTfLiteFloat32
)- obraz o rozmiarze
[batch x height x width x channels]
. - wnioskowanie zbiorcze nie jest obsługiwane (wartość
batch
musi wynosić 1). - obsługiwane są tylko wejścia RGB (wartość
channels
musi wynosić 3). - W przypadku typu
kTfLiteFloat32
do metadanych należy dołączyć atrybut NormalizationOptions, aby znormalizować dane wejściowe.
- obraz o rozmiarze
- Tensory wyjściowe muszą być 4 wyjściami operacji
DetectionPostProcess
, np.:- Tensor lokalizacji (
kTfLiteFloat32
):- tensor rozmiaru
[1 x num_results x 4]
, czyli tablica wewnętrzna reprezentująca ramki ograniczające w formacie [top, left, right, dołu]. - Do metadanych muszą być dołączone atrybuty
BoundingBoxProperties
i muszą określaćtype=BOUNDARIES
orazcoordinate_type=RATIO
.
- tensor rozmiaru
- Tensor klas (
kTfLiteFloat32
):- tensor rozmiaru
[1 x num_results]
, przy czym każda wartość reprezentuje indeks liczby całkowitej klasy. - jeśli mapy etykiet są dołączone do metadanych jako powiązane pliki (
TENSOR_VALUE_LABELS
), są one używane do konwertowania wartości tensorów na etykiety.
- tensor rozmiaru
- tensor wyników (
kTfLiteFloat32
):- tensor rozmiaru
[1 x num_results]
, każda wartość reprezentująca wynik wykrytego obiektu.
- tensor rozmiaru
- Liczba tensorów wykrywania (
kTfLiteFloat32
):- liczba całkowita num_results w postaci tensora rozmiaru
[1]
.
- liczba całkowita num_results w postaci tensora rozmiaru
- Tensor lokalizacji (
Przykład takiego modelu znajdziesz w centrum TensorFlow.
Zagnieżdżone klasy
klasa | ObjectDetector.ObjectDetectorOptions | Opcje konfigurowania: ObjectDetector |
Metody publiczne
static ObjectDetector |
createFromBuffer(kontekst kontekst, ByteBuffer modelBuffer)
Tworzy instancję
ObjectDetector z bufora modelu i domyślnej wartości ObjectDetector.ObjectDetectorOptions . |
static ObjectDetector |
createFromFile(Kontekst; ciąg znaków modelPath)
Tworzy instancję
ObjectDetector z pliku modelu i domyślne ObjectDetector.ObjectDetectorOptions . |
static ObjectDetector |
createFromFile(kontekst; plik modelFile)
Tworzy instancję
ObjectDetector z pliku modelu i domyślne ObjectDetector.ObjectDetectorOptions . |
static ObjectDetector |
createFromOptions(Kontekst; ObjectDetector.ObjectDetectorOptionsdetectorOptions)
Tworzy instancję
ObjectDetector z ObjectDetector.ObjectDetectorOptions . |
ObjectDetectorResult | |
ObjectDetectorResult |
detect(obraz MPImage, ImageProcessingOptions imageProcessingOptions)
Wykrywanie obiektów na pojedynczym obrazie.
|
void |
detectAsync(obraz MPImage, ImageProcessingOptions imageProcessingOptions, long timestampMs)
Wysyła bieżące dane obrazu w celu wykrywania obiektów, a wyniki są dostępne za pomocą interfejsu
OutputHandler.ResultListener w ObjectDetector.ObjectDetectorOptions . |
void |
detectAsync(obraz MPImage, długie sygnatury czasowe)
Wysyła bieżące dane obrazu w celu wykrywania obiektów za pomocą domyślnych opcji przetwarzania obrazu, tj.
|
ObjectDetectorResult |
detectForVideo(obraz MPImage, ImageProcessingOptions imageProcessingOptions, długi timestampMs)
Wykrywanie obiektów w dostarczonej ramce wideo.
|
ObjectDetectorResult |
detectForVideo(obraz MPImage, długie sygnatury czasowe)
Wykrywanie obiektów w podanej ramce wideo z domyślnymi opcjami przetwarzania obrazu, tj.
|
Metody dziedziczone
Metody publiczne
public static ObjectDetector createFromBuffer (Kontekst kontekstu, ByteBuffer modelBuffer)
Tworzy instancję ObjectDetector
z bufora modelu i domyślnej wartości ObjectDetector.ObjectDetectorOptions
.
Parametry
sytuacja | ERROR(/Context) na Androidzie. |
---|---|
modelBuffer | bezpośrednie ByteBuffer lub ERROR(/MappedByteBuffer) modelu wykrywania. |
Rzuty
jeśli podczas tworzenia zbioru danych ObjectDetector wystąpi błąd.
|
public static ObjectDetector createFromFile (Kontekst; String modelPath)
Tworzy instancję ObjectDetector
z pliku modelu i domyślne ObjectDetector.ObjectDetectorOptions
.
Parametry
sytuacja | ERROR(/Context) na Androidzie. |
---|---|
modelPath | do modelu wykrywania z metadanymi w zasobach. |
Rzuty
jeśli podczas tworzenia zbioru danych ObjectDetector wystąpi błąd.
|
public static ObjectDetector createFromFile (Kontekst kontekstu, Plik modelFile)
Tworzy instancję ObjectDetector
z pliku modelu i domyślne ObjectDetector.ObjectDetectorOptions
.
Parametry
sytuacja | ERROR(/Context) na Androidzie. |
---|---|
modelFile | instancję modelu wykrywania File . |
Rzuty
IOException | jeśli podczas otwierania pliku modelu tflite wystąpi błąd wejścia-wyjścia. |
---|---|
jeśli podczas tworzenia zbioru danych ObjectDetector wystąpi błąd.
|
public static ObjectDetector createFromOptions (Kontekst kontekstowy, ObjectDetector.ObjectDetectorOptionsdetectorOptions)
Tworzy instancję ObjectDetector
z ObjectDetector.ObjectDetectorOptions
.
Parametry
sytuacja | ERROR(/Context) na Androidzie. |
---|---|
detectorOptions | instancję ObjectDetector.ObjectDetectorOptions . |
Rzuty
jeśli podczas tworzenia zbioru danych ObjectDetector wystąpi błąd.
|
public ObjectDetectorResult detect (obraz MPImage)
Wykrywanie obiektów na pojedynczym obrazie z użyciem domyślnych opcji przetwarzania obrazu, tj. bez zastosowania rotacji. Używaj tej metody tylko wtedy, gdy ObjectDetector
zostaje utworzony za pomocą ERROR(/RunningMode.IMAGE)
.
ObjectDetector
obsługuje te typy przestrzeni kolorów:
Parametry
obraz | do przetwarzania obiektu MediaPipe MPImage . |
---|
Rzuty
jeśli wystąpił błąd wewnętrzny. |
public ObjectDetectorResult detect (obraz MPImage, ImageProcessingOptions imageProcessingOptions)
Wykrywanie obiektów na pojedynczym obrazie. Używaj tej metody tylko wtedy, gdy tworzony jest ObjectDetector
za pomocą ERROR(/RunningMode.IMAGE)
.
ObjectDetector
obsługuje te typy przestrzeni kolorów:
Parametry
obraz | do przetwarzania obiektu MediaPipe MPImage . |
---|---|
imageProcessingOptions | ImageProcessingOptions określający sposób przetwarzania obrazu wejściowego przed uruchomieniem wnioskowania. Zwróć uwagę, że to zadanie nie obsługuje regionu zainteresowań: określenie wartości ImageProcessingOptions.regionOfInterest() spowoduje, że ta metoda spowoduje zgłoszenie wyjątku IllegalArgumentException. |
Rzuty
IllegalArgumentException | jeśli ImageProcessingOptions określa region zainteresowań. |
---|---|
jeśli wystąpił błąd wewnętrzny. |
public void detectAsync (obraz MPImage, ImageProcessingOptions imageProcessingOptions, długi timestampMs)
Wysyła bieżące dane obrazu w celu wykrywania obiektów, a wyniki są dostępne za pomocą interfejsu OutputHandler.ResultListener
w ObjectDetector.ObjectDetectorOptions
. Używaj tej metody tylko wtedy, gdy ObjectDetector
zostaje utworzony za pomocą ERROR(/RunningMode.LIVE_STREAM)
.
Podanie sygnatury czasowej (w milisekundach), która wskazuje, kiedy obraz wejściowy jest wysyłany do detektora obiektów, jest wymagany. Podane sygnatury czasowe muszą rosnąć monotonicznie.
ObjectDetector
obsługuje te typy przestrzeni kolorów:
Parametry
obraz | do przetwarzania obiektu MediaPipe MPImage . |
---|---|
imageProcessingOptions | ImageProcessingOptions określający sposób przetwarzania obrazu wejściowego przed uruchomieniem wnioskowania. Zwróć uwagę, że to zadanie nie obsługuje regionu zainteresowań: określenie wartości ImageProcessingOptions.regionOfInterest() spowoduje, że ta metoda spowoduje zgłoszenie wyjątku IllegalArgumentException. |
timestampMs | wejściową sygnaturę czasową (w milisekundach). |
Rzuty
IllegalArgumentException | jeśli ImageProcessingOptions określa region zainteresowań. |
---|---|
jeśli wystąpił błąd wewnętrzny. |
public void detectAsync (obraz MPImage, długie sygnatura czasowa)
Wysyła bieżące dane obrazu w celu przeprowadzenia wykrywania obiektów z użyciem domyślnych opcji przetwarzania obrazu, tj. bez zastosowanego obrotu, a wyniki będą dostępne za pomocą funkcji OutputHandler.ResultListener
podanej w ObjectDetector.ObjectDetectorOptions
. Używaj tej metody tylko wtedy, gdy tworzony jest ObjectDetector
za pomocą ERROR(/RunningMode.LIVE_STREAM)
.
Podanie sygnatury czasowej (w milisekundach), która wskazuje, kiedy obraz wejściowy jest wysyłany do detektora obiektów, jest wymagany. Podane sygnatury czasowe muszą rosnąć monotonicznie.
ObjectDetector
obsługuje te typy przestrzeni kolorów:
Parametry
obraz | do przetwarzania obiektu MediaPipe MPImage . |
---|---|
timestampMs | wejściową sygnaturę czasową (w milisekundach). |
Rzuty
jeśli wystąpił błąd wewnętrzny. |
public ObjectDetectorResult detectForVideo (obraz MPImage, ImageProcessingOptions imageProcessingOptions, long timestampMs)
Wykrywanie obiektów w dostarczonej ramce wideo. Używaj tej metody tylko wtedy, gdy tworzony jest ObjectDetector
za pomocą ERROR(/RunningMode.VIDEO)
.
Wymagane jest podanie sygnatury czasowej klatki wideo (w milisekundach). Wejściowe sygnatury czasowe muszą rosnąć monotonicznie.
ObjectDetector
obsługuje te typy przestrzeni kolorów:
Parametry
obraz | do przetwarzania obiektu MediaPipe MPImage . |
---|---|
imageProcessingOptions | ImageProcessingOptions określający sposób przetwarzania obrazu wejściowego przed uruchomieniem wnioskowania. Zwróć uwagę, że to zadanie nie obsługuje regionu zainteresowań: określenie wartości ImageProcessingOptions.regionOfInterest() spowoduje, że ta metoda spowoduje zgłoszenie wyjątku IllegalArgumentException. |
timestampMs | wejściową sygnaturę czasową (w milisekundach). |
Rzuty
IllegalArgumentException | jeśli ImageProcessingOptions określa region zainteresowań. |
---|---|
jeśli wystąpił błąd wewnętrzny. |
public ObjectDetectorResult detectForVideo (obraz MPImage, długie sygnatury czasowe)
Wykrywanie obiektów w podanej ramce wideo z domyślnymi opcjami przetwarzania obrazu, tj. bez zastosowania rotacji. Używaj tej metody tylko wtedy, gdy ObjectDetector
zostaje utworzony za pomocą ERROR(/RunningMode.VIDEO)
.
Wymagane jest podanie sygnatury czasowej klatki wideo (w milisekundach). Wejściowe sygnatury czasowe muszą rosnąć monotonicznie.
ObjectDetector
obsługuje te typy przestrzeni kolorów:
Parametry
obraz | do przetwarzania obiektu MediaPipe MPImage . |
---|---|
timestampMs | wejściową sygnaturę czasową (w milisekundach). |
Rzuty
jeśli wystąpił błąd wewnętrzny. |