BoundingBoxUtil

publiczna klasa finałowa BoundingBoxUtil

Klasa pomocnicza do konwertowania wartości, które reprezentują ramki ograniczające na prostokąty.

Klasa udostępnia funkcję statyczną do tworzenia ramek ograniczających jako RectF na podstawie różnych typów konfiguracji.

Ramka ograniczająca może być zwykle reprezentowana przez 4 wartości zmiennoprzecinkowe, ale można je interpretować na wiele sposobów. Obsługujemy teraz 3 konfiguracje typu BoundingBoxUtil.Type. Możliwość konfigurowania kolejności elementów w każdym typie.

Zagnieżdżone klasy

enum | typ wyliczeniowy BoundingBoxUtil.CoordinateType Wskazuje, czy współrzędne są rzeczywistymi pikselami czy proporcjami względnymi. 
enum | typ wyliczeniowy BoundingBoxUtil.Type Określa sposób reprezentowania ramki ograniczającej. 

Metody publiczne

statyczna Lista<RectF>
convert(tensor TensorBuffer, int[] valueIndex, int boundingBoxAxis, typ BoundingBoxUtil.Type, BoundingBoxUtil.CoordinateType coordinateType, int wysokość, szerokość całkowita)
Tworzy listę ramek ograniczających z elementu TensorBuffer, który reprezentuje ramki ograniczające.

Metody dziedziczone

Metody publiczne

public static List<RectF> convert (TensorBuffer tensor, int[] valueIndex, int boundingBoxAxis, typ BoundingBoxUtil.Type, BoundingBoxUtil.CoordinateType

Tworzy listę ramek ograniczających z elementu TensorBuffer, który reprezentuje ramki ograniczające.

Parametry
tensor przechowują dane reprezentujące niektóre pola.
valueIndex wskazuje kolejność elementów zdefiniowanych w każdym typie ramki ograniczającej. Pusta tablica indeksu przedstawia domyślną kolejność poszczególnych typów ramek ograniczających. Aby na przykład wskazać domyślną kolejność granic, {left, top, right, dolnym}, indeks powinien mieć wartość {0, 1, 2, 3}. Kolejność {lewo, prawo, góra, dół} powinna być podana jako {0, 2, 1, 3}.

Tablicę indeksu można stosować do wszystkich typów ramek ograniczających, aby dostosowywać kolejność odpowiadających im elementów bazowych.

boundingBoxAxis określa indeks wymiaru, który reprezentuje ramkę ograniczającą. Rozmiar tego wymiaru musi wynosić 4. Indeks w tym miejscu zaczyna się od 0. Jeśli na przykład tensor ma kształt 4 x 10, oś ramek ograniczających prawdopodobnie będzie miała wartość 0. Obsługiwana jest też oś ujemna: -1 oznacza ostatnią oś, a -2 – drugą, itd. W przypadku kształtu 10x4 oś będzie raczej równać się 1 (lub -1).
Niestandardowy typ treści określa sposób przekształcania wartości w pola. Zobacz: BoundingBoxUtil.Type
coordinateType określa sposób interpretowania wartości jako współrzędnych. Zobacz: BoundingBoxUtil.CoordinateType
wysokość wysokość obrazu, do którego należą pola. Ma efekty tylko wtedy, gdy coordinateType ma wartość BoundingBoxUtil.CoordinateType.RATIO
szerokość szerokość obrazu, do którego należą pola. Ma efekty tylko wtedy, gdy coordinateType ma wartość BoundingBoxUtil.CoordinateType.RATIO
Zwroty
  • Lista ramek ograniczających, które reprezentują element tensor. Wszystkie wymiary oprócz wymiaru boundingBoxAxis zostaną zwinięte z zachowaniem kolejności. Na przykład jeśli pole tensor ma kształt {1, 4, 10, 2} i boundingBoxAxis = 1, wynikiem będzie lista 20 ramek ograniczających.
Rzuty
IllegalArgumentException jeśli rozmiar ramki ograniczającej (ustawionej przez boundingBoxAxis) nie wynosi 4.
IllegalArgumentException jeśli boundingBoxAxis nie należy do zakresu (-(D+1), D), gdzie D to liczba wymiarów tensor.
IllegalArgumentException jeśli typ danych tensor jest inny niż DataType.FLOAT32.