Classe d'assistance permettant de convertir des valeurs représentant des cadres de délimitation en rectangles.
La classe fournit une fonction statique permettant de créer des cadres de délimitation en tant que RectF
à partir de différents types de configurations.
En règle générale, un cadre de délimitation peut être représenté par quatre valeurs flottantes, mais ces valeurs peuvent être interprétées de nombreuses façons. Nous acceptons désormais trois configurations BoundingBoxUtil.Type
, et l'ordre des éléments dans chaque type est également configurable.
Classes imbriquées
enum | BoundingBoxUtil.CoordinateType | Indique si les coordonnées sont des pixels réels ou des rapports relatifs. | |
enum | BoundingBoxUtil.Type | Indique comment un cadre de délimitation est représenté. |
Méthodes publiques
statique List<RectF> |
convert(TensorTensorBuffer, int[] valueIndex, intboundBoxAxis, type BoundingBoxUtil.Type, CoordinatType BoundingBoxUtil.CoordinateType, hauteur int, largeur int)
Crée une liste de cadres de délimitation à partir d'un élément
TensorBuffer qui les représente. |
Méthodes héritées
Méthodes publiques
public statique List<RectF> convert (TensorBuffer tensor, int[] valueIndex, int limitesBoxAxis, type BoundingBoxUtil.Type, BoundingBoxUtil.CoordinateType CoordinatType, int height, int width)
Crée une liste de cadres de délimitation à partir d'un élément TensorBuffer
qui les représente.
Paramètres
Tensor | contient les données représentant certaines cases. |
---|---|
valueIndex | indique l'ordre des éléments définis dans chaque type de cadre de délimitation. Un tableau d'index vide représente l'ordre par défaut de chaque type de cadre de délimitation. Par exemple, pour indiquer l'ordre par défaut des LIMITES, {left, top, right, bottom}, l'index doit être {0, 1, 2, 3}. Pour indiquer l'ordre {left, right, top, bottom}, vous devez indiquer {0, 2, 1, 3}.
Le tableau d'index peut être appliqué à tous les types de cadres de délimitation pour ajuster l'ordre des éléments sous-jacents correspondants. |
boundingBoxAxis | spécifie l'index de la dimension qui représente le cadre de délimitation. La taille de cette dimension doit être de 4. Ici, l'index commence à 0. Par exemple, si le Tensor a la forme 4x10, l'axe des cadres de délimitation est susceptible d'être 0. L'axe négatif est également accepté: -1 correspond au dernier axe et -2 au second. Pour la forme 10x4, il est probable que l'axe soit égal à 1 (ou -1, de façon équivalente). |
Type | définit la façon dont les valeurs doivent être converties en cases. Voir BoundingBoxUtil.Type |
coordinateType | définit la manière dont les valeurs sont interprétées au niveau des coordonnées. Voir BoundingBoxUtil.CoordinateType |
taille | la hauteur de l'image
à laquelle appartiennent les cadres. N'a d'effets que lorsque coordinateType est défini sur BoundingBoxUtil.CoordinateType.RATIO |
largeur | la largeur de l'image
à laquelle appartiennent les cadres. N'a d'effets que lorsque coordinateType est défini sur BoundingBoxUtil.CoordinateType.RATIO |
Renvoie
- Liste des cadres de délimitation représentés par l'élément
tensor
. Toutes les dimensions, à l'exception deboundingBoxAxis
, seront réduites et l'ordre sera conservé. Par exemple, pourtensor
ayant la forme {1, 4, 10, 2} etboundingBoxAxis = 1
, le résultat est une liste de 20 cadres de délimitation.
Génère
IllegalArgumentException | Si la taille de la dimension du cadre de délimitation (définie par boundingBoxAxis ) n'est pas de 4 |
---|---|
IllegalArgumentException | Si boundingBoxAxis ne se trouve pas dans (-(D+1), D) , où D correspond au nombre de dimensions de tensor . |
IllegalArgumentException | si tensor a un type de données autre que DataType.FLOAT32 .
|