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 wymiaruboundingBoxAxis
zostaną zwinięte z zachowaniem kolejności. Na przykład jeśli poletensor
ma kształt {1, 4, 10, 2} iboundingBoxAxis = 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 .
|