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ść
batchmusi wynosić 1). - obsługiwane są tylko wejścia RGB (wartość
channelsmusi wynosić 3). - W przypadku typu
kTfLiteFloat32do 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
BoundingBoxPropertiesi muszą określaćtype=BOUNDARIESorazcoordinate_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. |