Référence pour ultralytics/utils/tal.py
Note
Ce fichier est disponible à l'adresse https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/tal .py. Si tu repères un problème, aide à le corriger en contribuant à une Pull Request 🛠️. Merci 🙏 !
ultralytics.utils.tal.TaskAlignedAssigner
Bases : Module
Un assignateur aligné sur les tâches pour la détection d'objets.
Cette classe attribue des objets de vérité au sol (gt) aux ancres en se basant sur la métrique d'alignement des tâches, qui combine à la fois la classification et les informations de localisation. les informations de classification et de localisation.
Attributs :
Nom | Type | Description |
---|---|---|
topk |
int
|
Le nombre de meilleurs candidats Ă prendre en compte. |
num_classes |
int
|
Le nombre de classes d'objets. |
alpha |
float
|
Le paramètre alpha pour la composante de classification de la métrique d'alignement des tâches. |
beta |
float
|
Le paramètre bêta pour la composante de localisation de la métrique alignée sur la tâche. |
eps |
float
|
Une petite valeur pour empêcher la division par zéro. |
Code source dans ultralytics/utils/tal.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 |
|
__init__(topk=13, num_classes=80, alpha=1.0, beta=6.0, eps=1e-09)
Initialise un objet TaskAlignedAssigner avec des hyperparamètres personnalisables.
Code source dans ultralytics/utils/tal.py
forward(pd_scores, pd_bboxes, anc_points, gt_labels, gt_bboxes, mask_gt)
Calcule l'affectation alignée sur les tâches. Le code de référence est disponible à l'adresse https://github.com/Nioolek/PPYOLOE_pytorch/blob/master/ppyoloe/assigner/tal_assigner.py.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
pd_scores |
Tensor
|
shape(bs, num_total_anchors, num_classes) |
requis |
pd_bboxes |
Tensor
|
shape(bs, num_total_anchors, 4) |
requis |
anc_points |
Tensor
|
shape(num_total_anchors, 2) |
requis |
gt_labels |
Tensor
|
shape(bs, n_max_boxes, 1) |
requis |
gt_bboxes |
Tensor
|
shape(bs, n_max_boxes, 4) |
requis |
mask_gt |
Tensor
|
shape(bs, n_max_boxes, 1) |
requis |
Retourne :
Nom | Type | Description |
---|---|---|
target_labels |
Tensor
|
shape(bs, num_total_anchors) |
target_bboxes |
Tensor
|
shape(bs, num_total_anchors, 4) |
target_scores |
Tensor
|
shape(bs, num_total_anchors, num_classes) |
fg_mask |
Tensor
|
shape(bs, num_total_anchors) |
target_gt_idx |
Tensor
|
shape(bs, num_total_anchors) |
Code source dans ultralytics/utils/tal.py
get_box_metrics(pd_scores, pd_bboxes, gt_labels, gt_bboxes, mask_gt)
Calcule la métrique d'alignement à partir des boîtes de délimitation prédites et de la vérité de terrain.
Code source dans ultralytics/utils/tal.py
get_pos_mask(pd_scores, pd_bboxes, gt_labels, gt_bboxes, anc_points, mask_gt)
Obtenir le masque in_gts, (b, max_num_obj, h*w).
Code source dans ultralytics/utils/tal.py
get_targets(gt_labels, gt_bboxes, target_gt_idx, fg_mask)
Calcule les étiquettes des cibles, les boîtes de délimitation des cibles et les scores des cibles pour les points d'ancrage positifs.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
gt_labels |
Tensor
|
Étiquettes de vérité terrain de forme (b, max_num_obj, 1), où b est la taille du lot et max_num_obj est le nombre maximum d'objets. taille du lot et max_num_obj est le nombre maximum d'objets. |
requis |
gt_bboxes |
Tensor
|
Boîtes de délimitation de la vérité au sol de la forme (b, max_num_obj, 4). |
requis |
target_gt_idx |
Tensor
|
Indices des objets de vérité terrain assignés pour les points d'ancrage positifs. points d'ancrage positifs, avec la forme (b, hw), où hwest le nombre total de nombre total de points d'ancrage. |
requis |
fg_mask |
Tensor
|
Un booléen tensor de forme (b, h*w) indiquant les points d'ancrage positifs (premier plan). points d'ancrage positifs (premier plan). |
requis |
Retourne :
Type | Description |
---|---|
Tuple[Tensor, Tensor, Tensor]
|
Un tuple contenant les tenseurs suivants : - target_labels (Tensor) : Forme (b, hw), contenant les étiquettes cibles pour lespoints d'ancrage positifs. points d'ancrage positifs. - target_bboxes (Tensor) : Forme (b, hw, 4), contenant les boîtes de délimitation cibles pour les points d'ancrage positifs. pour les points d'ancrage positifs. - target_scores (Tensor) : Forme (b, h*w, num_classes), contenant les scores cibles pour les points d'ancrage positifs. pour les points d'ancrage positifs, où num_classes est le nombre de classes d'objets. de classes d'objets. |
Code source dans ultralytics/utils/tal.py
iou_calculation(gt_bboxes, pd_bboxes)
Calcul de l'indice d'utilité pour les boîtes de délimitation horizontales.
select_candidates_in_gts(xy_centers, gt_bboxes, eps=1e-09)
staticmethod
SĂ©lectionne le centre d'ancrage positif en gt.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
xy_centers |
Tensor
|
forme(h*l, 2) |
requis |
gt_bboxes |
Tensor
|
shape(b, n_boxes, 4) |
requis |
Retourne :
Type | Description |
---|---|
Tensor
|
shape(b, n_boxes, h*w) |
Code source dans ultralytics/utils/tal.py
select_highest_overlaps(mask_pos, overlaps, n_max_boxes)
staticmethod
Si une boîte d'ancrage est attribuée à plusieurs tg, c'est celle dont l'IoU est le plus élevé qui sera sélectionnée.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
mask_pos |
Tensor
|
shape(b, n_max_boxes, h*w) |
requis |
overlaps |
Tensor
|
shape(b, n_max_boxes, h*w) |
requis |
Retourne :
Nom | Type | Description |
---|---|---|
target_gt_idx |
Tensor
|
forme(b, h*w) |
fg_mask |
Tensor
|
forme(b, h*w) |
mask_pos |
Tensor
|
shape(b, n_max_boxes, h*w) |
Code source dans ultralytics/utils/tal.py
select_topk_candidates(metrics, largest=True, topk_mask=None)
Sélectionne les k candidats les plus performants en fonction des paramètres donnés.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
metrics |
Tensor
|
Un tensor de forme (b, max_num_obj, hw), où b est la taille du lot, max_num_obj est le nombre maximum d'objets et hwreprésente le nombre total de points d'ancrage. le nombre total de points d'ancrage. |
requis |
largest |
bool
|
Si True, sélectionne les valeurs les plus grandes ; sinon, sélectionne les valeurs les plus petites. |
True
|
topk_mask |
Tensor
|
Un booléen facultatif tensor de la forme (b, max_num_obj, topk), où topk est le nombre de meilleurs candidats à prendre en compte. S'il n'est pas fourni, les valeurs top-k sont automatiquement calculées sur la base des métriques données. |
None
|
Retourne :
Type | Description |
---|---|
Tensor
|
Un tensor de forme (b, max_num_obj, h*w) contenant les top-k candidats sélectionnés. |
Code source dans ultralytics/utils/tal.py
ultralytics.utils.tal.RotatedTaskAlignedAssigner
Bases : TaskAlignedAssigner
Code source dans ultralytics/utils/tal.py
iou_calculation(gt_bboxes, pd_bboxes)
select_candidates_in_gts(xy_centers, gt_bboxes)
staticmethod
Sélectionne le centre d'ancrage positif dans gt pour les boîtes de délimitation tournées.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
xy_centers |
Tensor
|
forme(h*l, 2) |
requis |
gt_bboxes |
Tensor
|
shape(b, n_boxes, 5) |
requis |
Retourne :
Type | Description |
---|---|
Tensor
|
shape(b, n_boxes, h*w) |
Code source dans ultralytics/utils/tal.py
ultralytics.utils.tal.make_anchors(feats, strides, grid_cell_offset=0.5)
Génère des ancres à partir des caractéristiques.
Code source dans ultralytics/utils/tal.py
ultralytics.utils.tal.dist2bbox(distance, anchor_points, xywh=True, dim=-1)
Transforme la distance (ltrb) en boîte (xywh ou xyxy).
Code source dans ultralytics/utils/tal.py
ultralytics.utils.tal.bbox2dist(anchor_points, bbox, reg_max)
Transforme bbox(xyxy) en dist(ltrb).
ultralytics.utils.tal.dist2rbox(pred_dist, pred_angle, anchor_points, dim=-1)
Décode les coordonnées de la boîte de délimitation de l'objet prédit à partir des points d'ancrage et de la distribution.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
pred_dist |
Tensor
|
Distance de rotation prévue, (bs, h*w, 4). |
requis |
pred_angle |
Tensor
|
Angle prévu, (bs, h*w, 1). |
requis |
anchor_points |
Tensor
|
Points d'ancrage, (h*w, 2). |
requis |
Renvois : (torch.Tensor) : Boîtes de délimitation rotatives prédites, (bs, h*w, 4).
Code source dans ultralytics/utils/tal.py
Créé le 2023-11-12, Mis à jour le 2024-05-08
Auteurs : Burhan-Q (1), glenn-jocher (4), Laughing-q (1)