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 tranneboundingBoxAxis
verranno compresse mantenendo l'ordine. Ad esempio, datotensor
con forma {1, 4, 10, 2} eboundingBoxAxis = 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 . |