Riferimento per ultralytics/utils/tal.py
Nota
Questo file è disponibile su https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/tal .py. Se riscontri un problema, contribuisci a risolverlo inviando una Pull Request 🛠️. Grazie 🙏!
ultralytics.utils.tal.TaskAlignedAssigner
Basi: Module
Un assegnatore allineato ai compiti per il rilevamento degli oggetti.
Questa classe assegna gli oggetti della verità a terra (gt) alle ancore in base alla metrica di allineamento al compito, che combina sia la classificazione che le informazioni di localizzazione. informazioni di classificazione e localizzazione.
Attributi:
Nome | Tipo | Descrizione |
---|---|---|
topk |
int
|
Il numero di candidati migliori da prendere in considerazione. |
num_classes |
int
|
Il numero di classi di oggetti. |
alpha |
float
|
Il parametro alfa per la componente di classificazione della metrica di allineamento alle attività. |
beta |
float
|
Il parametro beta per la componente di localizzazione della metrica task-aligned. |
eps |
float
|
Un valore piccolo per evitare la divisione per zero. |
Codice sorgente in 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)
Inizializza un oggetto TaskAlignedAssigner con iperparametri personalizzabili.
Codice sorgente in ultralytics/utils/tal.py
forward(pd_scores, pd_bboxes, anc_points, gt_labels, gt_bboxes, mask_gt)
Calcolo dell'assegnazione allineata alle attività. Il codice di riferimento è disponibile all'indirizzo https://github.com/Nioolek/PPYOLOE_pytorch/blob/master/ppyoloe/assigner/tal_assigner.py.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
pd_scores |
Tensor
|
shape(bs, num_total_anchors, num_classes) |
richiesto |
pd_bboxes |
Tensor
|
shape(bs, num_total_anchors, 4) |
richiesto |
anc_points |
Tensor
|
shape(num_total_anchors, 2) |
richiesto |
gt_labels |
Tensor
|
shape(bs, n_max_boxes, 1) |
richiesto |
gt_bboxes |
Tensor
|
shape(bs, n_max_boxes, 4) |
richiesto |
mask_gt |
Tensor
|
shape(bs, n_max_boxes, 1) |
richiesto |
Restituzione:
Nome | Tipo | Descrizione |
---|---|---|
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) |
Codice sorgente in ultralytics/utils/tal.py
get_box_metrics(pd_scores, pd_bboxes, gt_labels, gt_bboxes, mask_gt)
Calcolo della metrica di allineamento in base ai riquadri di delimitazione previsti e a quelli della verità terrena.
Codice sorgente in ultralytics/utils/tal.py
get_pos_mask(pd_scores, pd_bboxes, gt_labels, gt_bboxes, anc_points, mask_gt)
Ottieni la maschera in_gts, (b, max_num_obj, h*w).
Codice sorgente in ultralytics/utils/tal.py
get_targets(gt_labels, gt_bboxes, target_gt_idx, fg_mask)
Calcola le etichette del bersaglio, i riquadri di delimitazione del bersaglio e i punteggi del bersaglio per i punti di ancoraggio positivi.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
gt_labels |
Tensor
|
Etichette di verità a terra di forma (b, max_num_obj, 1), dove b è la dimensione del lotto e max_num_obj è il numero massimo di oggetti. dimensione del lotto e max_num_obj è il numero massimo di oggetti. |
richiesto |
gt_bboxes |
Tensor
|
Caselle di delimitazione della verità terrena di forma (b, max_num_obj, 4). |
richiesto |
target_gt_idx |
Tensor
|
Indici degli oggetti di verità assegnati per i punti di ancoraggio positivi. con forma (b, hw), dove hwè il numero totale di punti di ancoraggio. numero di punti di ancoraggio. |
richiesto |
fg_mask |
Tensor
|
Un booleano tensor di forma (b, h*w) che indica i punti di ancoraggio positivi (in primo piano). (in primo piano) i punti di ancoraggio. |
richiesto |
Restituzione:
Tipo | Descrizione |
---|---|
Tuple[Tensor, Tensor, Tensor]
|
Una tupla contenente i seguenti tensori: - target_labels (Tensor): Forma (b, hw), contenente le etichette di destinazione per i punti di ancoraggio positivi. - target_bboxes (Tensor): Forma (b, hw, 4), contenente le caselle di delimitazione target per i punti di ancoraggio positivi. - target_scores (Tensor): Forma (b, h*w, num_classi), contenente i punteggi target per i punti di ancoraggio positivi, dove num_classi è il numero di classi di oggetti. di classi di oggetti. |
Codice sorgente in ultralytics/utils/tal.py
iou_calculation(gt_bboxes, pd_bboxes)
Calcolo dell'IoU per i riquadri di delimitazione orizzontali.
select_candidates_in_gts(xy_centers, gt_bboxes, eps=1e-09)
staticmethod
Seleziona il centro di ancoraggio positivo in gt.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
xy_centers |
Tensor
|
forma(h*w, 2) |
richiesto |
gt_bboxes |
Tensor
|
shape(b, n_boxes, 4) |
richiesto |
Restituzione:
Tipo | Descrizione |
---|---|
Tensor
|
shape(b, n_boxes, h*w) |
Codice sorgente in ultralytics/utils/tal.py
select_highest_overlaps(mask_pos, overlaps, n_max_boxes)
staticmethod
Se una casella di ancoraggio è assegnata a più gate, verrà selezionata quella con l'IoU più alto.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
mask_pos |
Tensor
|
shape(b, n_max_boxes, h*w) |
richiesto |
overlaps |
Tensor
|
shape(b, n_max_boxes, h*w) |
richiesto |
Restituzione:
Nome | Tipo | Descrizione |
---|---|---|
target_gt_idx |
Tensor
|
forma(b, h*w) |
fg_mask |
Tensor
|
forma(b, h*w) |
mask_pos |
Tensor
|
shape(b, n_max_boxes, h*w) |
Codice sorgente in ultralytics/utils/tal.py
select_topk_candidates(metrics, largest=True, topk_mask=None)
Seleziona i candidati top-k in base alle metriche indicate.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
metrics |
Tensor
|
Un tensor di forma (b, max_num_obj, hw), dove b è la dimensione del lotto, max_num_obj è il numero massimo di oggetti e hwrappresenta il numero totale di punti di ancoraggio. numero totale di punti di ancoraggio. |
richiesto |
largest |
bool
|
Se Vero, seleziona i valori più grandi; altrimenti, seleziona i valori più piccoli. |
True
|
topk_mask |
Tensor
|
Un booleano opzionale tensor di forma (b, max_num_obj, topk), dove topk è il numero di candidati migliori da considerare. Se non viene fornito, i valori top-k vengono calcolati automaticamente in base alle metriche fornite. |
None
|
Restituzione:
Tipo | Descrizione |
---|---|
Tensor
|
Un tensor di forma (b, max_num_obj, h*w) contenente i candidati top-k selezionati. |
Codice sorgente in ultralytics/utils/tal.py
ultralytics.utils.tal.RotatedTaskAlignedAssigner
Basi: TaskAlignedAssigner
Codice sorgente in ultralytics/utils/tal.py
iou_calculation(gt_bboxes, pd_bboxes)
select_candidates_in_gts(xy_centers, gt_bboxes)
staticmethod
Seleziona il centro di ancoraggio positivo in gt per i rettangoli di selezione ruotati.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
xy_centers |
Tensor
|
forma(h*w, 2) |
richiesto |
gt_bboxes |
Tensor
|
shape(b, n_boxes, 5) |
richiesto |
Restituzione:
Tipo | Descrizione |
---|---|
Tensor
|
shape(b, n_boxes, h*w) |
Codice sorgente in ultralytics/utils/tal.py
ultralytics.utils.tal.make_anchors(feats, strides, grid_cell_offset=0.5)
Genera ancore dalle caratteristiche.
Codice sorgente in ultralytics/utils/tal.py
ultralytics.utils.tal.dist2bbox(distance, anchor_points, xywh=True, dim=-1)
Trasforma la distanza (ltrb) in una scatola (xywh o xyxy).
Codice sorgente in ultralytics/utils/tal.py
ultralytics.utils.tal.bbox2dist(anchor_points, bbox, reg_max)
Trasforma bbox(xyxy) in dist(ltrb).
ultralytics.utils.tal.dist2rbox(pred_dist, pred_angle, anchor_points, dim=-1)
Decodifica le coordinate del rettangolo di selezione dell'oggetto previsto dai punti di ancoraggio e dalla distribuzione.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
pred_dist |
Tensor
|
Distanza ruotata prevista, (bs, h*w, 4). |
richiesto |
pred_angle |
Tensor
|
Angolo previsto, (bs, h*w, 1). |
richiesto |
anchor_points |
Tensor
|
Punti di ancoraggio, (h*w, 2). |
richiesto |
Restituisce: (torch.Tensor): Caselle di delimitazione ruotate previste, (bs, h*w, 4).