BoundingBoxUtil

classe finale pubblica BoundingBoxUtil

Classe helper per convertire valori che rappresentano riquadri di delimitazione in rettangoli.

La classe fornisce una funzione statica per creare riquadri di delimitazione come RectF da diversi tipi di configurazioni.

In generale, un riquadro di delimitazione potrebbe essere rappresentato da 4 valori float, ma i valori potrebbero essere interpretati in molti modi. Ora supportiamo 3 BoundingBoxUtil.Type configurazioni e anche l'ordine degli elementi in ciascun tipo è configurabile.

Classi nidificate

enum BoundingBoxUtil.CoordinateType Indica se le coordinate sono pixel effettivi o rapporti relativi.
enum BoundingBoxUtil.Type Indica come viene rappresentato un riquadro di delimitazione.

Metodi pubblici

Elenco statico <RectF>
convert (tensore TensorBuffer , int[] valueIndex, int boundingBoxAxis, BoundingBoxUtil.Type tipo, BoundingBoxUtil.CoordinateType coordinateType, int altezza, int larghezza)
Crea un elenco di riquadri di delimitazione da un TensorBuffer che rappresenta i riquadri di delimitazione.

Metodi ereditati

Metodi pubblici

public static List <RectF> convert (tensore TensorBuffer , int[] valueIndex, int boundingBoxAxis, BoundingBoxUtil.Type tipo, BoundingBoxUtil.CoordinateType coordinateType, int altezza, int larghezza)

Crea un elenco di riquadri di delimitazione da un TensorBuffer che rappresenta i riquadri di delimitazione.

Parametri
tensore contiene i dati che rappresentano alcune caselle.
valoreIndice denota l'ordine degli elementi definiti in ciascun tipo di riquadro di delimitazione. Una matrice di indici vuota rappresenta l'ordine predefinito di ciascun tipo di riquadro di delimitazione. Ad esempio, per denotare l'ordine predefinito dei CONFINI, {sinistra, superiore, destra, inferiore}, l'indice dovrebbe essere {0, 1, 2, 3}. Per indicare l'ordine {sinistra, destra, alto, basso}, l'ordine dovrebbe essere {0, 2, 1, 3}.

L'array di indici può essere applicato a tutti i tipi di riquadro di delimitazione per regolare l'ordine degli elementi sottostanti corrispondenti.

boundingBoxAxis specifica l'indice della dimensione che rappresenta il riquadro di delimitazione. La dimensione di quella dimensione deve essere 4. L'indice qui inizia da 0. Ad esempio, se il tensore ha forma 4x10, è probabile che l'asse per i riquadri di delimitazione sia 0. È supportato anche l'asse negativo: -1 fornisce l'ultimo asse e -2 dà il secondo, .etc. thePer la forma 10x4, è probabile che l'asse sia 1 (o -1, in modo equivalente).
tipo definisce come i valori devono essere convertiti in riquadri. Vedere BoundingBoxUtil.Type
coordinateType definisce come i valori vengono interpretati in coordinate. Vedere BoundingBoxUtil.CoordinateType
altezza l'altezza dell'immagine a cui appartengono le scatole. Ha effetti solo quando coordinateType è BoundingBoxUtil.CoordinateType.RATIO
larghezza la larghezza dell'immagine a cui appartengono le caselle. Ha effetti solo quando coordinateType è BoundingBoxUtil.CoordinateType.RATIO
ritorna
  • Un elenco di riquadri di delimitazione rappresentati dal tensor . Tutte le dimensioni tranne boundingBoxAxis verranno compresse mantenendo l'ordine. Ad esempio, dato tensor con forma {1, 4, 10, 2} e boundingBoxAxis = 1 , il risultato sarà un elenco di 20 riquadri di delimitazione.
Lancia
IllegalArgumentException se la dimensione del riquadro di delimitazione (impostata da boundingBoxAxis ) non è 4.
IllegalArgumentException se boundingBoxAxis non è in (-(D+1), D) dove D è il numero di dimensioni del tensor .
IllegalArgumentException se tensor ha un tipo di dati diverso da DataType.FLOAT32 .