Tài liệu tham khảo cho ultralytics/utils/tal.py
Ghi
Tệp này có sẵn tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/utils/tal.py. Nếu bạn phát hiện ra một vấn đề, vui lòng giúp khắc phục nó bằng cách đóng góp Yêu cầu 🛠️ kéo. Cảm ơn bạn 🙏 !
ultralytics.utils.tal.TaskAlignedAssigner
Căn cứ: Module
Một người phân công nhiệm vụ phù hợp để phát hiện đối tượng.
Lớp này gán các đối tượng ground-truth (gt) cho các neo dựa trên số liệu được căn chỉnh nhiệm vụ, kết hợp cả hai thông tin phân loại và bản địa hóa.
Thuộc tính:
Tên | Kiểu | Sự miêu tả |
---|---|---|
topk |
int
|
Số lượng ứng cử viên hàng đầu để xem xét. |
num_classes |
int
|
Số lượng các lớp đối tượng. |
alpha |
float
|
Tham số alpha cho thành phần phân loại của chỉ số được căn chỉnh nhiệm vụ. |
beta |
float
|
Tham số beta cho thành phần bản địa hóa của chỉ số được căn chỉnh nhiệm vụ. |
eps |
float
|
Một giá trị nhỏ để ngăn chặn sự phân chia bằng không. |
Mã nguồn trong 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)
Khởi tạo một đối tượng TaskAlignedAssigner với các siêu tham số có thể tùy chỉnh.
Mã nguồn trong ultralytics/utils/tal.py
forward(pd_scores, pd_bboxes, anc_points, gt_labels, gt_bboxes, mask_gt)
Tính toán nhiệm vụ phù hợp với nhiệm vụ. Mã tham chiếu có sẵn tại https://github.com/Nioolek/PPYOLOE_pytorch/blob/master/ppyoloe/assigner/tal_assigner.py.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
pd_scores |
Tensor
|
Hình dạng (BS, num_total_anchors, num_classes) |
bắt buộc |
pd_bboxes |
Tensor
|
Hình dạng (BS, num_total_anchors, 4) |
bắt buộc |
anc_points |
Tensor
|
hình dạng(num_total_anchors, 2) |
bắt buộc |
gt_labels |
Tensor
|
Hình dạng (BS, n_max_boxes, 1) |
bắt buộc |
gt_bboxes |
Tensor
|
Hình dạng (BS, n_max_boxes, 4) |
bắt buộc |
mask_gt |
Tensor
|
Hình dạng (BS, n_max_boxes, 1) |
bắt buộc |
Trở lại:
Tên | Kiểu | Sự miêu tả |
---|---|---|
target_labels |
Tensor
|
Hình dạng (BS, num_total_anchors) |
target_bboxes |
Tensor
|
Hình dạng (BS, num_total_anchors, 4) |
target_scores |
Tensor
|
Hình dạng (BS, num_total_anchors, num_classes) |
fg_mask |
Tensor
|
Hình dạng (BS, num_total_anchors) |
target_gt_idx |
Tensor
|
Hình dạng (BS, num_total_anchors) |
Mã nguồn trong ultralytics/utils/tal.py
get_box_metrics(pd_scores, pd_bboxes, gt_labels, gt_bboxes, mask_gt)
Chỉ số căn chỉnh điện toán đưa ra các hộp giới hạn sự thật dự đoán và mặt đất.
Mã nguồn trong ultralytics/utils/tal.py
get_pos_mask(pd_scores, pd_bboxes, gt_labels, gt_bboxes, anc_points, mask_gt)
Lấy in_gts khẩu trang, (b, max_num_obj, h * w).
Mã nguồn trong ultralytics/utils/tal.py
get_targets(gt_labels, gt_bboxes, target_gt_idx, fg_mask)
Tính toán nhãn mục tiêu, hộp giới hạn mục tiêu và điểm mục tiêu cho các điểm neo dương.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
gt_labels |
Tensor
|
Nhãn chân lý cơ bản của hình dạng (b, max_num_obj, 1), trong đó b là Kích thước lô và max_num_obj là số lượng đối tượng tối đa. |
bắt buộc |
gt_bboxes |
Tensor
|
Sự thật mặt đất giới hạn các hộp hình dạng (b, max_num_obj, 4). |
bắt buộc |
target_gt_idx |
Tensor
|
Chỉ số của các đối tượng chân lý mặt đất được gán cho dương Điểm neo, có hình dạng (b, hw), trong đó hw là tổng số điểm neo. |
bắt buộc |
fg_mask |
Tensor
|
Một boolean tensor Hình dạng (B, H * W) cho biết dương (tiền cảnh) điểm neo. |
bắt buộc |
Trở lại:
Kiểu | Sự miêu tả |
---|---|
Tuple[Tensor, Tensor, Tensor]
|
Một bộ chứa các tensor sau: - target_labels (Tensor): Hình dạng (b, hw), chứa các nhãn đích cho điểm neo tích cực. - target_bboxes (Tensor): Hình dạng (b, hw, 4), chứa các hộp giới hạn mục tiêu cho các điểm neo tích cực. - target_scores (Tensor): Hình dạng (b, h * w, num_classes), chứa điểm số mục tiêu Đối với các điểm neo dương, trong đó num_classes là số của các lớp đối tượng. |
Mã nguồn trong ultralytics/utils/tal.py
iou_calculation(gt_bboxes, pd_bboxes)
select_candidates_in_gts(xy_centers, gt_bboxes, eps=1e-09)
staticmethod
Chọn trung tâm neo dương trong gt.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
xy_centers |
Tensor
|
Hình dạng (H * W, 2) |
bắt buộc |
gt_bboxes |
Tensor
|
hình dạng(b, n_boxes, 4) |
bắt buộc |
Trở lại:
Kiểu | Sự miêu tả |
---|---|
Tensor
|
Hình dạng (B, n_boxes, H * W) |
Mã nguồn trong ultralytics/utils/tal.py
select_highest_overlaps(mask_pos, overlaps, n_max_boxes)
staticmethod
Nếu một hộp neo được gán cho nhiều gts, hộp có IoU cao nhất sẽ được chọn.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
mask_pos |
Tensor
|
Hình dạng (B, n_max_boxes, H * W) |
bắt buộc |
overlaps |
Tensor
|
Hình dạng (B, n_max_boxes, H * W) |
bắt buộc |
Trở lại:
Tên | Kiểu | Sự miêu tả |
---|---|---|
target_gt_idx |
Tensor
|
Hình dạng (B, H * W) |
fg_mask |
Tensor
|
Hình dạng (B, H * W) |
mask_pos |
Tensor
|
Hình dạng (B, n_max_boxes, H * W) |
Mã nguồn trong ultralytics/utils/tal.py
select_topk_candidates(metrics, largest=True, topk_mask=None)
Chọn các ứng cử viên hàng đầu dựa trên các số liệu đã cho.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
metrics |
Tensor
|
Một tensor hình dạng (b, max_num_obj, hw), trong đó b là kích thước lô, max_num_obj là số lượng đối tượng tối đa và hw đại diện cho Tổng số điểm neo. |
bắt buộc |
largest |
bool
|
Nếu True, hãy chọn các giá trị lớn nhất; Nếu không, hãy chọn các giá trị nhỏ nhất. |
True
|
topk_mask |
Tensor
|
Một boolean tùy chọn tensor hình dạng (b, max_num_obj, topk), trong đó TOPK là số lượng ứng cử viên hàng đầu để xem xét. Nếu không được cung cấp, Các giá trị top-k được tự động tính toán dựa trên các chỉ số đã cho. |
None
|
Trở lại:
Kiểu | Sự miêu tả |
---|---|
Tensor
|
Một tensor Hình dạng (b, max_num_obj, h * w) chứa các ứng cử viên top-k đã chọn. |
Mã nguồn trong ultralytics/utils/tal.py
ultralytics.utils.tal.RotatedTaskAlignedAssigner
Căn cứ: TaskAlignedAssigner
Mã nguồn trong ultralytics/utils/tal.py
iou_calculation(gt_bboxes, pd_bboxes)
select_candidates_in_gts(xy_centers, gt_bboxes)
staticmethod
Chọn trung tâm neo dương trong gt cho các hộp giới hạn xoay.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
xy_centers |
Tensor
|
Hình dạng (H * W, 2) |
bắt buộc |
gt_bboxes |
Tensor
|
hình dạng(b, n_boxes, 5) |
bắt buộc |
Trở lại:
Kiểu | Sự miêu tả |
---|---|
Tensor
|
Hình dạng (B, n_boxes, H * W) |
Mã nguồn trong ultralytics/utils/tal.py
ultralytics.utils.tal.make_anchors(feats, strides, grid_cell_offset=0.5)
Tạo neo từ các tính năng.
Mã nguồn trong ultralytics/utils/tal.py
ultralytics.utils.tal.dist2bbox(distance, anchor_points, xywh=True, dim=-1)
Chuyển đổi khoảng cách (ltrb) thành hộp (xywh hoặc xyxy).
Mã nguồn trong ultralytics/utils/tal.py
ultralytics.utils.tal.bbox2dist(anchor_points, bbox, reg_max)
Chuyển đổi bbox (xyxy) thành dist (ltrb).
ultralytics.utils.tal.dist2rbox(pred_dist, pred_angle, anchor_points, dim=-1)
Giải mã tọa độ hộp giới hạn đối tượng dự đoán từ các điểm neo và phân bố.
Thông số:
Tên | Kiểu | Sự miêu tả | Mặc định |
---|---|---|---|
pred_dist |
Tensor
|
Khoảng cách quay dự đoán, (bs, h * w, 4). |
bắt buộc |
pred_angle |
Tensor
|
Góc dự đoán, (bs, h * w, 1). |
bắt buộc |
anchor_points |
Tensor
|
Điểm neo, (h * w, 2). |
bắt buộc |
Trở lại: (torch.Tensor): Các hộp giới hạn xoay dự đoán, (bs, h * w, 4).