Referenz fĂŒr ultralytics/utils/tal.py
Hinweis
Diese Datei ist verfĂŒgbar unter https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/tal .py. Wenn du ein Problem entdeckst, hilf bitte mit, es zu beheben, indem du einen Pull Request đ ïž einreichst. Vielen Dank đ!
ultralytics.utils.tal.TaskAlignedAssigner
Basen: Module
Ein aufgabenorientierter Zuweiser fĂŒr die Objekterkennung.
Diese Klasse ordnet den Ankern Ground-Truth-Objekte (gt) zu, basierend auf der aufgabenorientierten Metrik, die sowohl Klassifizierungs- und Lokalisierungsinformationen kombiniert.
Attribute:
Name | Typ | Beschreibung |
---|---|---|
topk |
int
|
Die Anzahl der zu berĂŒcksichtigenden Spitzenkandidaten. |
num_classes |
int
|
Die Anzahl der Objektklassen. |
alpha |
float
|
Der Alpha-Parameter fĂŒr die Klassifizierungskomponente der aufgabenorientierten Metrik. |
beta |
float
|
Der Beta-Parameter fĂŒr die Lokalisierungskomponente der aufgabenorientierten Metrik. |
eps |
float
|
Ein kleiner Wert, um eine Division durch Null zu verhindern. |
Quellcode 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)
Initialisiere ein TaskAlignedAssigner-Objekt mit anpassbaren Hyperparametern.
Quellcode in ultralytics/utils/tal.py
forward(pd_scores, pd_bboxes, anc_points, gt_labels, gt_bboxes, mask_gt)
Berechne die aufgabengerechte Zuordnung. Der Referenzcode ist verfĂŒgbar unter https://github.com/Nioolek/PPYOLOE_pytorch/blob/master/ppyoloe/assigner/tal_assigner.py.
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
pd_scores |
Tensor
|
shape(bs, num_total_anchors, num_classes) |
erforderlich |
pd_bboxes |
Tensor
|
shape(bs, num_total_anchors, 4) |
erforderlich |
anc_points |
Tensor
|
shape(num_total_anchors, 2) |
erforderlich |
gt_labels |
Tensor
|
shape(bs, n_max_boxes, 1) |
erforderlich |
gt_bboxes |
Tensor
|
shape(bs, n_max_boxes, 4) |
erforderlich |
mask_gt |
Tensor
|
shape(bs, n_max_boxes, 1) |
erforderlich |
Retouren:
Name | Typ | Beschreibung |
---|---|---|
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) |
Quellcode in ultralytics/utils/tal.py
get_box_metrics(pd_scores, pd_bboxes, gt_labels, gt_bboxes, mask_gt)
Berechne die Ausrichtungsmetrik fĂŒr die vorhergesagten und die wahren Bounding Boxes.
Quellcode in ultralytics/utils/tal.py
get_pos_mask(pd_scores, pd_bboxes, gt_labels, gt_bboxes, anc_points, mask_gt)
Erhalte in_gts mask, (b, max_num_obj, h*w).
Quellcode in ultralytics/utils/tal.py
get_targets(gt_labels, gt_bboxes, target_gt_idx, fg_mask)
Berechne Zielbeschriftungen, Zielbegrenzungsrahmen und Zielbewertungen fĂŒr die positiven Ankerpunkte.
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
gt_labels |
Tensor
|
Ground truth labels der Form (b, max_num_obj, 1), wobei b die LosgröĂe und max_num_obj die maximale Anzahl der Objekte ist. |
erforderlich |
gt_bboxes |
Tensor
|
Ground truth bounding boxes der Form (b, max_num_obj, 4). |
erforderlich |
target_gt_idx |
Tensor
|
Indizes der zugewiesenen Ground-Truth-Objekte fĂŒr positive Ankerpunkte, mit der Form (b, hw), wobei hwdie Gesamtzahl der Anzahl von Ankerpunkten ist. |
erforderlich |
fg_mask |
Tensor
|
Eine boolesche tensor der Form (b, h*w), die die positiven (Vordergrund-) Ankerpunkte. |
erforderlich |
Retouren:
Typ | Beschreibung |
---|---|
Tuple[Tensor, Tensor, Tensor]
|
Ein Tupel, das die folgenden Tensoren enthĂ€lt: - target_labels (Tensor): Shape (b, hw), der die Zielbeschriftungen fĂŒr positive Ankerpunkte. - target_bboxes (Tensor): Shape (b, hw, 4), der die Ziel-Boundingboxen fĂŒr fĂŒr positive Ankerpunkte. - target_scores (Tensor): Shape (b, h*w, num_classes), der die Zielpunktzahlen fĂŒr positive Ankerpunkte, wobei num_classes die Anzahl der der Objektklassen ist. |
Quellcode in ultralytics/utils/tal.py
iou_calculation(gt_bboxes, pd_bboxes)
select_candidates_in_gts(xy_centers, gt_bboxes, eps=1e-09)
staticmethod
WĂ€hle den positiven Ankerpunkt in gt.
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
xy_centers |
Tensor
|
Form(h*w, 2) |
erforderlich |
gt_bboxes |
Tensor
|
shape(b, n_boxes, 4) |
erforderlich |
Retouren:
Typ | Beschreibung |
---|---|
Tensor
|
shape(b, n_boxes, h*w) |
Quellcode in ultralytics/utils/tal.py
select_highest_overlaps(mask_pos, overlaps, n_max_boxes)
staticmethod
Wenn eine Ankerbox mehreren GTS zugewiesen ist, wird diejenige mit dem höchsten IoU ausgewÀhlt.
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
mask_pos |
Tensor
|
shape(b, n_max_boxes, h*w) |
erforderlich |
overlaps |
Tensor
|
shape(b, n_max_boxes, h*w) |
erforderlich |
Retouren:
Name | Typ | Beschreibung |
---|---|---|
target_gt_idx |
Tensor
|
Form(b, h*w) |
fg_mask |
Tensor
|
Form(b, h*w) |
mask_pos |
Tensor
|
shape(b, n_max_boxes, h*w) |
Quellcode in ultralytics/utils/tal.py
select_topk_candidates(metrics, largest=True, topk_mask=None)
WĂ€hle die Top-K-Kandidaten auf der Grundlage der vorgegebenen Metriken aus.
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
metrics |
Tensor
|
Eine tensor der Form (b, max_num_obj, hw), wobei b die LosgröĂe ist, max_num_obj die maximale Anzahl der Objekte ist und hwdie Gesamtzahl der Ankerpunkte darstellt. |
erforderlich |
largest |
bool
|
Wenn True, werden die gröĂten Werte ausgewĂ€hlt; andernfalls werden die kleinsten Werte ausgewĂ€hlt. |
True
|
topk_mask |
Tensor
|
Ein optionaler Boolean tensor der Form (b, max_num_obj, topk), wobei topk die Anzahl der zu berĂŒcksichtigenden Top-Kandidaten ist. Wenn nicht angegeben, werden die Top-k-Werte automatisch auf der Grundlage der angegebenen Metriken errechnet. |
None
|
Retouren:
Typ | Beschreibung |
---|---|
Tensor
|
Eine tensor der Form (b, max_num_obj, h*w) mit den ausgewÀhlten Top-k-Kandidaten. |
Quellcode in ultralytics/utils/tal.py
ultralytics.utils.tal.RotatedTaskAlignedAssigner
Basen: TaskAlignedAssigner
Quellcode in ultralytics/utils/tal.py
iou_calculation(gt_bboxes, pd_bboxes)
select_candidates_in_gts(xy_centers, gt_bboxes)
staticmethod
WĂ€hle den positiven Ankerpunkt in gt fĂŒr gedrehte Boundingboxen.
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
xy_centers |
Tensor
|
Form(h*w, 2) |
erforderlich |
gt_bboxes |
Tensor
|
shape(b, n_boxes, 5) |
erforderlich |
Retouren:
Typ | Beschreibung |
---|---|
Tensor
|
shape(b, n_boxes, h*w) |
Quellcode in ultralytics/utils/tal.py
ultralytics.utils.tal.make_anchors(feats, strides, grid_cell_offset=0.5)
Erzeuge Anker aus Merkmalen.
Quellcode in ultralytics/utils/tal.py
ultralytics.utils.tal.dist2bbox(distance, anchor_points, xywh=True, dim=-1)
Transformiere Distanz(ltrb) in Box(xywh oder xyxy).
Quellcode in ultralytics/utils/tal.py
ultralytics.utils.tal.bbox2dist(anchor_points, bbox, reg_max)
Transformiere bbox(xyxy) in dist(ltrb).
ultralytics.utils.tal.dist2rbox(pred_dist, pred_angle, anchor_points, dim=-1)
Dekodiere die vorhergesagten Bounding-Box-Koordinaten des Objekts aus den Ankerpunkten und der Verteilung.
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
pred_dist |
Tensor
|
Vorausgesagte gedrehte Entfernung, (bs, h*w, 4). |
erforderlich |
pred_angle |
Tensor
|
Vorausgesagter Winkel, (bs, h*w, 1). |
erforderlich |
anchor_points |
Tensor
|
Verankerungspunkte, (h*w, 2). |
erforderlich |
RĂŒckgabe: (torch.Tensor): Vorausgesagte gedrehte Bounding Boxen, (bs, h*w, 4).
Quellcode in ultralytics/utils/tal.py
Erstellt am 2023-11-12, Aktualisiert am 2024-05-08
Autoren: Burhan-Q (1), glenn-jocher (4), Laughing-q (1)