ultralytics 8.3.164__py3-none-any.whl → 8.3.166__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. ultralytics/__init__.py +1 -1
  2. ultralytics/cfg/datasets/Argoverse.yaml +1 -1
  3. ultralytics/cfg/datasets/DOTAv1.5.yaml +1 -1
  4. ultralytics/cfg/datasets/DOTAv1.yaml +1 -1
  5. ultralytics/cfg/datasets/GlobalWheat2020.yaml +1 -1
  6. ultralytics/cfg/datasets/HomeObjects-3K.yaml +3 -4
  7. ultralytics/cfg/datasets/ImageNet.yaml +1 -1
  8. ultralytics/cfg/datasets/Objects365.yaml +1 -1
  9. ultralytics/cfg/datasets/SKU-110K.yaml +4 -4
  10. ultralytics/cfg/datasets/VOC.yaml +3 -3
  11. ultralytics/cfg/datasets/VisDrone.yaml +37 -30
  12. ultralytics/cfg/datasets/african-wildlife.yaml +4 -4
  13. ultralytics/cfg/datasets/brain-tumor.yaml +3 -4
  14. ultralytics/cfg/datasets/carparts-seg.yaml +4 -4
  15. ultralytics/cfg/datasets/coco-pose.yaml +1 -1
  16. ultralytics/cfg/datasets/coco.yaml +1 -1
  17. ultralytics/cfg/datasets/coco128-seg.yaml +1 -1
  18. ultralytics/cfg/datasets/coco128.yaml +1 -1
  19. ultralytics/cfg/datasets/coco8-grayscale.yaml +1 -1
  20. ultralytics/cfg/datasets/coco8-multispectral.yaml +1 -1
  21. ultralytics/cfg/datasets/coco8-pose.yaml +1 -1
  22. ultralytics/cfg/datasets/coco8-seg.yaml +1 -1
  23. ultralytics/cfg/datasets/coco8.yaml +1 -1
  24. ultralytics/cfg/datasets/crack-seg.yaml +4 -4
  25. ultralytics/cfg/datasets/dog-pose.yaml +3 -3
  26. ultralytics/cfg/datasets/dota8-multispectral.yaml +1 -1
  27. ultralytics/cfg/datasets/dota8.yaml +1 -1
  28. ultralytics/cfg/datasets/hand-keypoints.yaml +3 -3
  29. ultralytics/cfg/datasets/lvis.yaml +1 -1
  30. ultralytics/cfg/datasets/medical-pills.yaml +3 -4
  31. ultralytics/cfg/datasets/open-images-v7.yaml +1 -1
  32. ultralytics/cfg/datasets/package-seg.yaml +4 -4
  33. ultralytics/cfg/datasets/signature.yaml +3 -3
  34. ultralytics/cfg/datasets/tiger-pose.yaml +3 -3
  35. ultralytics/cfg/datasets/xView.yaml +1 -1
  36. ultralytics/utils/metrics.py +4 -4
  37. {ultralytics-8.3.164.dist-info → ultralytics-8.3.166.dist-info}/METADATA +1 -1
  38. {ultralytics-8.3.164.dist-info → ultralytics-8.3.166.dist-info}/RECORD +42 -42
  39. {ultralytics-8.3.164.dist-info → ultralytics-8.3.166.dist-info}/WHEEL +0 -0
  40. {ultralytics-8.3.164.dist-info → ultralytics-8.3.166.dist-info}/entry_points.txt +0 -0
  41. {ultralytics-8.3.164.dist-info → ultralytics-8.3.166.dist-info}/licenses/LICENSE +0 -0
  42. {ultralytics-8.3.164.dist-info → ultralytics-8.3.166.dist-info}/top_level.txt +0 -0
ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.164"
3
+ __version__ = "8.3.166"
4
4
 
5
5
  import os
6
6
 
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── Argoverse ← downloads here (31.5 GB)
9
+ # └── Argoverse ← downloads here (31.5 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: Argoverse # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dota1.5 ← downloads here (2GB)
9
+ # └── dota1.5 ← downloads here (2GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: DOTAv1.5 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dota1 ← downloads here (2GB)
9
+ # └── dota1 ← downloads here (2GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: DOTAv1 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── GlobalWheat2020 ← downloads here (7.0 GB)
9
+ # └── GlobalWheat2020 ← downloads here (7.0 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: GlobalWheat2020 # dataset root dir
@@ -6,13 +6,12 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── homeobjects-3K ← downloads here (390 MB)
9
+ # └── homeobjects-3K ← downloads here (390 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: homeobjects-3K # dataset root dir
13
- train: train/images # train images (relative to 'path') 2285 images
14
- val: valid/images # val images (relative to 'path') 404 images
15
- test: # test images (relative to 'path')
13
+ train: images/train # train images (relative to 'path') 2285 images
14
+ val: images/val # val images (relative to 'path') 404 images
16
15
 
17
16
  # Classes
18
17
  names:
@@ -7,7 +7,7 @@
7
7
  # parent
8
8
  # ├── ultralytics
9
9
  # └── datasets
10
- # └── imagenet ← downloads here (144 GB)
10
+ # └── imagenet ← downloads here (144 GB)
11
11
 
12
12
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
13
13
  path: imagenet # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── Objects365 ← downloads here (712 GB = 367G data + 345G zips)
9
+ # └── Objects365 ← downloads here (712 GB = 367G data + 345G zips)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: Objects365 # dataset root dir
@@ -6,13 +6,13 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── SKU-110K ← downloads here (13.6 GB)
9
+ # └── SKU-110K ← downloads here (13.6 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: SKU-110K # dataset root dir
13
- train: train.txt # train images (relative to 'path') 8219 images
14
- val: val.txt # val images (relative to 'path') 588 images
15
- test: test.txt # test images (optional) 2936 images
13
+ train: train.txt # train images (relative to 'path') 8219 images
14
+ val: val.txt # val images (relative to 'path') 588 images
15
+ test: test.txt # test images (optional) 2936 images
16
16
 
17
17
  # Classes
18
18
  names:
@@ -6,16 +6,16 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── VOC ← downloads here (2.8 GB)
9
+ # └── VOC ← downloads here (2.8 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: VOC
13
- train: # train images (relative to 'path') 16551 images
13
+ train: # train images (relative to 'path') 16551 images
14
14
  - images/train2012
15
15
  - images/train2007
16
16
  - images/val2012
17
17
  - images/val2007
18
- val: # val images (relative to 'path') 4952 images
18
+ val: # val images (relative to 'path') 4952 images
19
19
  - images/test2007
20
20
  test: # test images (optional)
21
21
  - images/test2007
@@ -6,13 +6,13 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── VisDrone ← downloads here (2.3 GB)
9
+ # └── VisDrone ← downloads here (2.3 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: VisDrone # dataset root dir
13
- train: VisDrone2019-DET-train/images # train images (relative to 'path') 6471 images
14
- val: VisDrone2019-DET-val/images # val images (relative to 'path') 548 images
15
- test: VisDrone2019-DET-test-dev/images # test images (optional) 1610 images
13
+ train: images/train # train images (relative to 'path') 6471 images
14
+ val: images/val # val images (relative to 'path') 548 images
15
+ test: images/test # test-dev images (optional) 1610 images
16
16
 
17
17
  # Classes
18
18
  names:
@@ -31,50 +31,57 @@ names:
31
31
  download: |
32
32
  import os
33
33
  from pathlib import Path
34
+ import shutil
34
35
 
35
36
  from ultralytics.utils.downloads import download
36
37
 
37
38
 
38
- def visdrone2yolo(dir):
39
- """Convert VisDrone annotations to YOLO format, creating label files with normalized bounding box coordinates."""
39
+ def visdrone2yolo(dir, split, source_name=None):
40
+ """Convert VisDrone annotations to YOLO format with images/{split} and labels/{split} structure."""
40
41
  from PIL import Image
41
42
  from tqdm import tqdm
42
43
 
43
- def convert_box(size, box):
44
- # Convert VisDrone box to YOLO xywh box
45
- dw = 1.0 / size[0]
46
- dh = 1.0 / size[1]
47
- return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh
48
-
49
- (dir / "labels").mkdir(parents=True, exist_ok=True) # make labels directory
50
- pbar = tqdm((dir / "annotations").glob("*.txt"), desc=f"Converting {dir}")
51
- for f in pbar:
52
- img_size = Image.open((dir / "images" / f.name).with_suffix(".jpg")).size
44
+ source_dir = dir / (source_name or f"VisDrone2019-DET-{split}")
45
+ images_dir = dir / "images" / split
46
+ labels_dir = dir / "labels" / split
47
+ labels_dir.mkdir(parents=True, exist_ok=True)
48
+
49
+ # Move images to new structure
50
+ if (source_images_dir := source_dir / "images").exists():
51
+ images_dir.mkdir(parents=True, exist_ok=True)
52
+ for img in source_images_dir.glob("*.jpg"):
53
+ img.rename(images_dir / img.name)
54
+
55
+ for f in tqdm((source_dir / "annotations").glob("*.txt"), desc=f"Converting {split}"):
56
+ img_size = Image.open(images_dir / f.with_suffix(".jpg").name).size
57
+ dw, dh = 1.0 / img_size[0], 1.0 / img_size[1]
53
58
  lines = []
54
- with open(f, encoding="utf-8") as file: # read annotation.txt
59
+
60
+ with open(f, encoding="utf-8") as file:
55
61
  for row in [x.split(",") for x in file.read().strip().splitlines()]:
56
- if row[4] == "0": # VisDrone 'ignored regions' class 0
57
- continue
58
- cls = int(row[5]) - 1
59
- box = convert_box(img_size, tuple(map(int, row[:4])))
60
- lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
62
+ if row[4] != "0": # Skip ignored regions
63
+ x, y, w, h = map(int, row[:4])
64
+ cls = int(row[5]) - 1
65
+ # Convert to YOLO format
66
+ x_center, y_center = (x + w / 2) * dw, (y + h / 2) * dh
67
+ w_norm, h_norm = w * dw, h * dh
68
+ lines.append(f"{cls} {x_center:.6f} {y_center:.6f} {w_norm:.6f} {h_norm:.6f}\n")
61
69
 
62
- label_file = str(f).replace(f"{os.sep}annotations{os.sep}", f"{os.sep}labels{os.sep}")
63
- with open(label_file, "w", encoding="utf-8") as fl:
64
- fl.writelines(lines)
65
-
70
+ (labels_dir / f.name).write_text("".join(lines), encoding="utf-8")
66
71
 
67
72
 
68
- # Download
73
+ # Download (ignores test-challenge split)
69
74
  dir = Path(yaml["path"]) # dataset root dir
70
75
  urls = [
71
76
  "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-train.zip",
72
77
  "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-val.zip",
73
78
  "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip",
74
- "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip",
79
+ # "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip",
75
80
  ]
76
81
  download(urls, dir=dir, curl=True, threads=4)
77
82
 
78
83
  # Convert
79
- for d in "VisDrone2019-DET-train", "VisDrone2019-DET-val", "VisDrone2019-DET-test-dev":
80
- visdrone2yolo(dir / d) # convert VisDrone annotations to YOLO labels
84
+ splits = {"VisDrone2019-DET-train": "train", "VisDrone2019-DET-val": "val", "VisDrone2019-DET-test-dev": "test"}
85
+ for folder, split in splits.items():
86
+ visdrone2yolo(dir, split, folder) # convert VisDrone annotations to YOLO labels
87
+ shutil.rmtree(dir / folder) # cleanup original directory
@@ -6,13 +6,13 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── african-wildlife ← downloads here (100 MB)
9
+ # └── african-wildlife ← downloads here (100 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: african-wildlife # dataset root dir
13
- train: train/images # train images (relative to 'path') 1052 images
14
- val: valid/images # val images (relative to 'path') 225 images
15
- test: test/images # test images (relative to 'path') 227 images
13
+ train: images/train # train images (relative to 'path') 1052 images
14
+ val: images/val # val images (relative to 'path') 225 images
15
+ test: images/test # test images (relative to 'path') 227 images
16
16
 
17
17
  # Classes
18
18
  names:
@@ -6,13 +6,12 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── brain-tumor ← downloads here (4.05 MB)
9
+ # └── brain-tumor ← downloads here (4.21 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: brain-tumor # dataset root dir
13
- train: train/images # train images (relative to 'path') 893 images
14
- val: valid/images # val images (relative to 'path') 223 images
15
- test: # test images (relative to 'path')
13
+ train: images/train # train images (relative to 'path') 893 images
14
+ val: images/val # val images (relative to 'path') 223 images
16
15
 
17
16
  # Classes
18
17
  names:
@@ -6,13 +6,13 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── carparts-seg ← downloads here (132 MB)
9
+ # └── carparts-seg ← downloads here (133 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: carparts-seg # dataset root dir
13
- train: train/images # train images (relative to 'path') 3516 images
14
- val: valid/images # val images (relative to 'path') 276 images
15
- test: test/images # test images (relative to 'path') 401 images
13
+ train: images/train # train images (relative to 'path') 3516 images
14
+ val: images/val # val images (relative to 'path') 276 images
15
+ test: images/test # test images (relative to 'path') 401 images
16
16
 
17
17
  # Classes
18
18
  names:
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco-pose ← downloads here (20.1 GB)
9
+ # └── coco-pose ← downloads here (20.1 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco-pose # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco ← downloads here (20.1 GB)
9
+ # └── coco ← downloads here (20.1 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco128-seg ← downloads here (7 MB)
9
+ # └── coco128-seg ← downloads here (7 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco128-seg # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco128 ← downloads here (7 MB)
9
+ # └── coco128 ← downloads here (7 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco128 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8-grayscale ← downloads here (1 MB)
9
+ # └── coco8-grayscale ← downloads here (1 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8-grayscale # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8-multispectral ← downloads here (20.2 MB)
9
+ # └── coco8-multispectral ← downloads here (20.2 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8-multispectral # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8-pose ← downloads here (1 MB)
9
+ # └── coco8-pose ← downloads here (1 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8-pose # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8-seg ← downloads here (1 MB)
9
+ # └── coco8-seg ← downloads here (1 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8-seg # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8 ← downloads here (1 MB)
9
+ # └── coco8 ← downloads here (1 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8 # dataset root dir
@@ -6,13 +6,13 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── crack-seg ← downloads here (91.2 MB)
9
+ # └── crack-seg ← downloads here (91.6 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: crack-seg # dataset root dir
13
- train: train/images # train images (relative to 'path') 3717 images
14
- val: valid/images # val images (relative to 'path') 112 images
15
- test: test/images # test images (relative to 'path') 200 images
13
+ train: images/train # train images (relative to 'path') 3717 images
14
+ val: images/val # val images (relative to 'path') 112 images
15
+ test: images/test # test images (relative to 'path') 200 images
16
16
 
17
17
  # Classes
18
18
  names:
@@ -6,12 +6,12 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dog-pose ← downloads here (337 MB)
9
+ # └── dog-pose ← downloads here (337 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: dog-pose # dataset root dir
13
- train: train # train images (relative to 'path') 6773 images
14
- val: val # val images (relative to 'path') 1703 images
13
+ train: images/train # train images (relative to 'path') 6773 images
14
+ val: images/val # val images (relative to 'path') 1703 images
15
15
 
16
16
  # Keypoints
17
17
  kpt_shape: [24, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dota8-multispectral ← downloads here (37.3MB)
9
+ # └── dota8-multispectral ← downloads here (37.3MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: dota8-multispectral # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dota8 ← downloads here (1MB)
9
+ # └── dota8 ← downloads here (1MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: dota8 # dataset root dir
@@ -6,12 +6,12 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── hand-keypoints ← downloads here (369 MB)
9
+ # └── hand-keypoints ← downloads here (369 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: hand-keypoints # dataset root dir
13
- train: train # train images (relative to 'path') 18776 images
14
- val: val # val images (relative to 'path') 7992 images
13
+ train: images/train # train images (relative to 'path') 18776 images
14
+ val: images/val # val images (relative to 'path') 7992 images
15
15
 
16
16
  # Keypoints
17
17
  kpt_shape: [21, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── lvis ← downloads here (20.1 GB)
9
+ # └── lvis ← downloads here (20.1 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: lvis # dataset root dir
@@ -6,13 +6,12 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── medical-pills ← downloads here (8.19 MB)
9
+ # └── medical-pills ← downloads here (8.19 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: medical-pills # dataset root dir
13
- train: train/images # train images (relative to 'path') 92 images
14
- val: valid/images # val images (relative to 'path') 23 images
15
- test: # test images (relative to 'path')
13
+ train: images/train # train images (relative to 'path') 92 images
14
+ val: images/val # val images (relative to 'path') 23 images
16
15
 
17
16
  # Classes
18
17
  names:
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── open-images-v7 ← downloads here (561 GB)
9
+ # └── open-images-v7 ← downloads here (561 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: open-images-v7 # dataset root dir
@@ -6,13 +6,13 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── package-seg ← downloads here (102 MB)
9
+ # └── package-seg ← downloads here (103 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: package-seg # dataset root dir
13
- train: train/images # train images (relative to 'path') 1920 images
14
- val: valid/images # val images (relative to 'path') 89 images
15
- test: test/images # test images (relative to 'path') 188 images
13
+ train: images/train # train images (relative to 'path') 1920 images
14
+ val: images/val # val images (relative to 'path') 89 images
15
+ test: images/test # test images (relative to 'path') 188 images
16
16
 
17
17
  # Classes
18
18
  names:
@@ -6,12 +6,12 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── signature ← downloads here (11.2 MB)
9
+ # └── signature ← downloads here (11.3 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: signature # dataset root dir
13
- train: train/images # train images (relative to 'path') 143 images
14
- val: valid/images # val images (relative to 'path') 35 images
13
+ train: images/train # train images (relative to 'path') 143 images
14
+ val: images/val # val images (relative to 'path') 35 images
15
15
 
16
16
  # Classes
17
17
  names:
@@ -6,12 +6,12 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── tiger-pose ← downloads here (75.3 MB)
9
+ # └── tiger-pose ← downloads here (49.8 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: tiger-pose # dataset root dir
13
- train: train # train images (relative to 'path') 210 images
14
- val: val # val images (relative to 'path') 53 images
13
+ train: images/train # train images (relative to 'path') 210 images
14
+ val: images/val # val images (relative to 'path') 53 images
15
15
 
16
16
  # Keypoints
17
17
  kpt_shape: [12, 2] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
@@ -7,7 +7,7 @@
7
7
  # parent
8
8
  # ├── ultralytics
9
9
  # └── datasets
10
- # └── xView ← downloads here (20.7 GB)
10
+ # └── xView ← downloads here (20.7 GB)
11
11
 
12
12
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
13
13
  path: xView # dataset root dir
@@ -330,7 +330,7 @@ class ConfusionMatrix(DataExportMixin):
330
330
  """
331
331
  self.task = task
332
332
  self.nc = len(names) # number of classes
333
- self.matrix = np.zeros((self.nc + 1, self.nc + 1)) if self.task == "detect" else np.zeros((self.nc, self.nc))
333
+ self.matrix = np.zeros((self.nc, self.nc)) if self.task == "classify" else np.zeros((self.nc + 1, self.nc + 1))
334
334
  self.names = names # name of classes
335
335
 
336
336
  def process_cls_preds(self, preds, targets):
@@ -360,8 +360,9 @@ class ConfusionMatrix(DataExportMixin):
360
360
  conf (float, optional): Confidence threshold for detections.
361
361
  iou_thres (float, optional): IoU threshold for matching detections to ground truth.
362
362
  """
363
- conf = 0.25 if conf in {None, 0.001} else conf # apply 0.25 if default val conf is passed
364
363
  gt_cls, gt_bboxes = batch["cls"], batch["bboxes"]
364
+ is_obb = gt_bboxes.shape[1] == 5 # check if boxes contains angle for OBB
365
+ conf = 0.25 if conf in {None, 0.01 if is_obb else 0.001} else conf # apply 0.25 if default val conf is passed
365
366
  no_pred = len(detections["cls"]) == 0
366
367
  if gt_cls.shape[0] == 0: # Check if labels is empty
367
368
  if not no_pred:
@@ -380,7 +381,6 @@ class ConfusionMatrix(DataExportMixin):
380
381
  gt_classes = gt_cls.int().tolist()
381
382
  detection_classes = detections["cls"].int().tolist()
382
383
  bboxes = detections["bboxes"]
383
- is_obb = bboxes.shape[1] == 5 # check if detections contains angle for OBB
384
384
  iou = batch_probiou(gt_bboxes, bboxes) if is_obb else box_iou(gt_bboxes, bboxes)
385
385
 
386
386
  x = torch.where(iou > iou_thres)
@@ -422,7 +422,7 @@ class ConfusionMatrix(DataExportMixin):
422
422
  tp = self.matrix.diagonal() # true positives
423
423
  fp = self.matrix.sum(1) - tp # false positives
424
424
  # fn = self.matrix.sum(0) - tp # false negatives (missed detections)
425
- return (tp[:-1], fp[:-1]) if self.task == "detect" else (tp, fp) # remove background class if task=detect
425
+ return (tp, fp) if self.task == "classify" else (tp[:-1], fp[:-1]) # remove background class if task=detect
426
426
 
427
427
  @TryExcept(msg="ConfusionMatrix plot failure")
428
428
  @plt_settings()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.164
3
+ Version: 8.3.166
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -7,45 +7,45 @@ tests/test_exports.py,sha256=HmMKOTCia9ZDC0VYc_EPmvBTM5LM5eeI1NF_pKjLpd8,9677
7
7
  tests/test_integrations.py,sha256=kl_AKmE_Qs1GB0_91iVwbzNxofm_hFTt0zzU6JF-pg4,6323
8
8
  tests/test_python.py,sha256=JJu-69IfuUf1dLK7Ko9elyPONiQ1yu7yhapMVIAt_KI,27907
9
9
  tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
10
- ultralytics/__init__.py,sha256=E1zBb25u7AF1eUsPZbqvcqNCRLqR_t-d0OoDbwjECr8,730
10
+ ultralytics/__init__.py,sha256=yczpDVZI5DkFqH3t28doRPDuDqSjoNtwLkDWy4qLC3c,730
11
11
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
12
12
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
13
13
  ultralytics/cfg/__init__.py,sha256=VIpPHImhjb0XLJquGZrG_LBGZchtOtBSXR7HYTYV2GU,39602
14
14
  ultralytics/cfg/default.yaml,sha256=oFG6llJO-Py5H-cR9qs-7FieJamroDLwpbrkhmfROOM,8307
15
- ultralytics/cfg/datasets/Argoverse.yaml,sha256=0mm20vJBZxxLQtc_Z3Op6zUjmJkINLi70hO6aw67Lwc,3263
16
- ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=aT3VKgkVPTaaRRjnpHEhIbgANU-yt7VsFjAf5562wqA,1212
17
- ultralytics/cfg/datasets/DOTAv1.yaml,sha256=Ydf8_hRfZkaFMEkDKw3as0msVV4KPD1JuFjVMYDqIMQ,1182
18
- ultralytics/cfg/datasets/GlobalWheat2020.yaml,sha256=JP6zk5GR2fufGGFmOMr57EnRj7kKh9-fIuInkdmXMlU,2145
19
- ultralytics/cfg/datasets/HomeObjects-3K.yaml,sha256=Cgokv3w-g6z1KnQ5ALuS9qTTwBzgN7vWroQuIajJIZo,978
20
- ultralytics/cfg/datasets/ImageNet.yaml,sha256=1zci8FWwbkFwNHlAkfDUnWyoOKrFvkEXz1VNpVAizBg,42531
21
- ultralytics/cfg/datasets/Objects365.yaml,sha256=EfhNwsYMqDCXc3kZfokvk4LYq1QZDKl-ZpfoecP7aOE,9355
22
- ultralytics/cfg/datasets/SKU-110K.yaml,sha256=OBUCCRFr6UXrp6LkXZSXA92dSYCc6MrDP_0rlmmLrvI,2546
23
- ultralytics/cfg/datasets/VOC.yaml,sha256=zVkCLoj6EbZm8gf8cOg8QbEIpsN6W6oreKmW2czTWeE,3788
24
- ultralytics/cfg/datasets/VisDrone.yaml,sha256=iIAxa9F3CxG18d3SFrwqM8_8HFzObxEM3yyhWaQ8saQ,3282
25
- ultralytics/cfg/datasets/african-wildlife.yaml,sha256=SLSyIAOg9Kbx0lN7VApPDLGjAL2RKdYvzG1ErAZtwhc,918
26
- ultralytics/cfg/datasets/brain-tumor.yaml,sha256=SWJOiFGvJfxe4oGxG35Pw5NXsBxMdYWEw5UlkRSr0kg,844
27
- ultralytics/cfg/datasets/carparts-seg.yaml,sha256=liuHTeQOaztNMGr87Qtp0P8-h3VATSAB9FMfBOQ-rTo,1256
28
- ultralytics/cfg/datasets/coco-pose.yaml,sha256=j_ynggAOE1aNpjG42QHMDTrYiPic8S0cnbNHXqmH7vY,1624
29
- ultralytics/cfg/datasets/coco.yaml,sha256=E5OlAwkJkzhRI2BFIPnUE0VnzdQNDFhv2czDVS582BQ,2607
30
- ultralytics/cfg/datasets/coco128-seg.yaml,sha256=04Pfr7RPgJM2hF_LpYYD2zIPqCyOJ2sWW23HO2qXoEI,1983
31
- ultralytics/cfg/datasets/coco128.yaml,sha256=hNHjxEq57lRpcNYuN3dX7ockjhgQu7SdiXepcGApjdU,1966
32
- ultralytics/cfg/datasets/coco8-grayscale.yaml,sha256=YfAJRbM2wWd37p1Jl7rOOoxiPH3rWRo5mddjUvJcFxg,1962
33
- ultralytics/cfg/datasets/coco8-multispectral.yaml,sha256=Kaca3kaq8-iwtBOdmvJaETI-JzDNyjKbk7SSUWGUnO4,2064
34
- ultralytics/cfg/datasets/coco8-pose.yaml,sha256=4S_0RSNNK_ccz1Qxp7wdO0-RjxwwhldTRpGahQnzIw8,1010
35
- ultralytics/cfg/datasets/coco8-seg.yaml,sha256=8V59_ASLtTg3jsXtV03opU4TRwyFy2fsNUUSR791cB0,1914
36
- ultralytics/cfg/datasets/coco8.yaml,sha256=aPefOD63vx1EJ4BhdeumSrYVoJIh2uMyIb6BTrEFk68,1889
37
- ultralytics/cfg/datasets/crack-seg.yaml,sha256=8zkQD4eAeWjkxFQQGSTNvxla1b02Vuo8AlmLY7PZvjE,840
38
- ultralytics/cfg/datasets/dog-pose.yaml,sha256=CjvPu8y_KBZFcXn8JOaeDzi1NkVYgd3M4yVazOSYUT0,895
39
- ultralytics/cfg/datasets/dota8-multispectral.yaml,sha256=AD9LGIV0FdnHLJCsczU06SIOIHYOygr5owb69bi-Nk0,1217
40
- ultralytics/cfg/datasets/dota8.yaml,sha256=cVmqA8SYVIY4Rp5y0oIPfw1Si2AZMPMDrFaV8ZRUnGI,1061
41
- ultralytics/cfg/datasets/hand-keypoints.yaml,sha256=w_G5BmUKuWFb0yCbTOeWjGhz8ZAqAYeN7ECZpO37h3g,977
42
- ultralytics/cfg/datasets/lvis.yaml,sha256=69E7zRFQxqdx6T7GhrLVR8XoZtfx4pwR7I3kobxmz2M,29704
43
- ultralytics/cfg/datasets/medical-pills.yaml,sha256=1CtNFVtc2Lmo1Wjssh_hzAevo_mvkMuQGoLDGD7i2S0,836
44
- ultralytics/cfg/datasets/open-images-v7.yaml,sha256=GblFutr27lY3W2h9GyK8zUqq5svtF1EeEBoP5kbnd5o,12120
45
- ultralytics/cfg/datasets/package-seg.yaml,sha256=gJZmxXNzmvPU4K2cmkPR44Lp6aGW_9J4EFcYqgrS4T4,852
46
- ultralytics/cfg/datasets/signature.yaml,sha256=uqPSj6XCILKOmIn01GXKLXZqoouZvKx7tOusfF4hL5c,777
47
- ultralytics/cfg/datasets/tiger-pose.yaml,sha256=0f_Q45eOexla9-nKG8SDziK2ACZcND8wRZpXCKO3iO8,913
48
- ultralytics/cfg/datasets/xView.yaml,sha256=46Z-TaZAXHXM85PoSWeI9mhpu__RB5TOtPAfo0cbAFM,5341
15
+ ultralytics/cfg/datasets/Argoverse.yaml,sha256=4SGaJio9JFUkrscHJTPnH_QSbYm48Wbk8EFwl39zntc,3262
16
+ ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=VZ_KKFX0H2YvlFVJ8JHcLWYBZ2xiQ6Z-ROSTiKWpS7c,1211
17
+ ultralytics/cfg/datasets/DOTAv1.yaml,sha256=JrDuYcQ0JU9lJlCA-dCkMNko_jaj6MAVGHjsfjeZ_u0,1181
18
+ ultralytics/cfg/datasets/GlobalWheat2020.yaml,sha256=dnr_loeYSE6Eo_f7V1yubILsMRBMRm1ozyC5r7uT-iY,2144
19
+ ultralytics/cfg/datasets/HomeObjects-3K.yaml,sha256=xEtSqEad-rtfGuIrERjjhdISggmPlvaX-315ZzKz50I,934
20
+ ultralytics/cfg/datasets/ImageNet.yaml,sha256=GvDWypLVG_H3H67Ai8IC1pvK6fwcTtF5FRhzO1OXXDU,42530
21
+ ultralytics/cfg/datasets/Objects365.yaml,sha256=vLzbT3xgpLR-bHhrHOiYyzYvDIniRdevgSyPetm8QHk,9354
22
+ ultralytics/cfg/datasets/SKU-110K.yaml,sha256=a52le1-JQ2YH6b1WLMUxVz7RkZ36YsmXgWyw0z3q9nQ,2542
23
+ ultralytics/cfg/datasets/VOC.yaml,sha256=GfJkYxN6uAiBTHOsR57L0UDi5NE9vH59A15EROrp0DU,3785
24
+ ultralytics/cfg/datasets/VisDrone.yaml,sha256=NujUSnR6gpXYdcvgg9nxmSZjPjcC9MdZ_YzMipvnuK8,3615
25
+ ultralytics/cfg/datasets/african-wildlife.yaml,sha256=SuloMp9WAZBigGC8az-VLACsFhTM76_O29yhTvUqdnU,915
26
+ ultralytics/cfg/datasets/brain-tumor.yaml,sha256=qrxPO_t9wxbn2kHFwP3vGTzSWj2ELTLelUwYL3_b6nc,800
27
+ ultralytics/cfg/datasets/carparts-seg.yaml,sha256=A4e9hM1unTY2jjZIXGiKSarF6R-Ad9R99t57OgRJ37w,1253
28
+ ultralytics/cfg/datasets/coco-pose.yaml,sha256=UYEY90XjHxTEYsUMXZXXaxzxs31zRun-PLTMRo1i334,1623
29
+ ultralytics/cfg/datasets/coco.yaml,sha256=iptVWzO1gLRPs76Mrs1Sp4yjYAR4f3AYeoUwP0r4UKw,2606
30
+ ultralytics/cfg/datasets/coco128-seg.yaml,sha256=knBS2enqHzQj5R5frU4nJdxKsFFBhq8TQ1G1JNiaz9s,1982
31
+ ultralytics/cfg/datasets/coco128.yaml,sha256=ok_dzaBUzSd0DWfe531GT_uYTEoF5mIQcgoMHZyIVIA,1965
32
+ ultralytics/cfg/datasets/coco8-grayscale.yaml,sha256=8v6G6mOzZHQNdQM1YwdTBW_lsWWkLRnAimwZBHKtJg8,1961
33
+ ultralytics/cfg/datasets/coco8-multispectral.yaml,sha256=nlU4W0d8rl1cVChthOk0NImhVDCm0voY3FrZs2D0lY0,2063
34
+ ultralytics/cfg/datasets/coco8-pose.yaml,sha256=GfSONSl-Oh4QErto91E_ws3im9ZTEYmDMaPOaSLLdV8,1009
35
+ ultralytics/cfg/datasets/coco8-seg.yaml,sha256=Ez42ZE6xHlj8lcjtMBJJP2Y460q2BuiwRfk090XnBgE,1913
36
+ ultralytics/cfg/datasets/coco8.yaml,sha256=tzrDY1KW82AHsgpCxte_yPkgMIIpNY6Pb4F46TDPxkk,1888
37
+ ultralytics/cfg/datasets/crack-seg.yaml,sha256=fqvSIq1fRXO55V_g2T92hcYAVoKBHZsSZQR7CokoPUI,837
38
+ ultralytics/cfg/datasets/dog-pose.yaml,sha256=sRU1JDtEC4nLVf2vkn7lxbp4ILWNcgE-ok96rxZv2lc,908
39
+ ultralytics/cfg/datasets/dota8-multispectral.yaml,sha256=2lMBi1Q3_pc0auK00yX80oF7oUMo0bUlwjkOrp33hvs,1216
40
+ ultralytics/cfg/datasets/dota8.yaml,sha256=5n4h_4zdrtUSkmH5DHJ-JLPvfiATcieIkgP3NeOP5nI,1060
41
+ ultralytics/cfg/datasets/hand-keypoints.yaml,sha256=6JF2wwrfAfaVb5M_yLmXyv7iIFXtAt91FqS-Q3kJda0,990
42
+ ultralytics/cfg/datasets/lvis.yaml,sha256=nEQgUdSdBcTYW3LzdK2ba3k8SK-p7NNgZ-SoCXf5vns,29703
43
+ ultralytics/cfg/datasets/medical-pills.yaml,sha256=RK7iQFpDDkUS6EsEGqlbFjoohi3cgSsUIbsk7UItyds,792
44
+ ultralytics/cfg/datasets/open-images-v7.yaml,sha256=wK9v3OAGdHORkFdqoBi0hS0fa1b74LLroAzUSWjxEqw,12119
45
+ ultralytics/cfg/datasets/package-seg.yaml,sha256=V4uyTDWWzgft24y9HJWuELKuZ5AndAHXbanxMI6T8GU,849
46
+ ultralytics/cfg/datasets/signature.yaml,sha256=gBvU3715gVxVAafI_yaYczGX3kfEfA4BttbiMkgOXNk,774
47
+ ultralytics/cfg/datasets/tiger-pose.yaml,sha256=Y_8htA4--6hmpqHTW-Ix4t9SdaWenSSyl_FUtI2A7n8,926
48
+ ultralytics/cfg/datasets/xView.yaml,sha256=NEEGaRTvTGafckJiFD1ltFyMl0b04zOyOFu_J-PN-Ik,5340
49
49
  ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml,sha256=1Ycp9qMrwpb8rq7cqht3Q-1gMN0R87U35nm2j_isdro,524
50
50
  ultralytics/cfg/models/11/yolo11-cls.yaml,sha256=17l5GdN-Vst4LvafsK2-q6Li9VX9UlUcT5ClCtikweE,1412
51
51
  ultralytics/cfg/models/11/yolo11-obb.yaml,sha256=3M_c06B-y8da4tunHVxQQ-iFUNLKUfofqCZTpnH5FEU,2034
@@ -246,7 +246,7 @@ ultralytics/utils/export.py,sha256=LK-wlTlyb_zIKtSvOmfmvR70RcUU9Ct9UBDt5wn9_rY,9
246
246
  ultralytics/utils/files.py,sha256=ZCbLGleiF0f-PqYfaxMFAWop88w7U1hpreHXl8b2ko0,8238
247
247
  ultralytics/utils/instance.py,sha256=dC83rHvQXciAED3rOiScFs3BOX9OI06Ey1mj9sjUKvs,19070
248
248
  ultralytics/utils/loss.py,sha256=fbOWc3Iu0QOJiWbi-mXWA9-1otTYlehtmUsI7os7ydM,39799
249
- ultralytics/utils/metrics.py,sha256=3nQsz3rAm8n65iqikRzU30Pd2x20FY60ZlWrCMv5ZYk,62225
249
+ ultralytics/utils/metrics.py,sha256=pazuzAjKFnfnhSVH_w6xEWB4vN7RpC8n7v3zj9LkFbs,62247
250
250
  ultralytics/utils/ops.py,sha256=8d60fbpntrexK3gPoLUS6mWAYGrtrQaQCOYyRJsCjuI,34521
251
251
  ultralytics/utils/patches.py,sha256=tBAsNo_RyoFLL9OAzVuJmuoDLUJIPuTMByBYyblGG1A,6517
252
252
  ultralytics/utils/plotting.py,sha256=LO-iR-k1UewV5vt4xXDUIirdmNEZdpfiQvLyIWqINPg,47171
@@ -265,9 +265,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=j8pecmlcsM8FGzLKWoBw5xUsi5t8E5HuxY
265
265
  ultralytics/utils/callbacks/raytune.py,sha256=S6Bq16oQDQ8BQgnZzA0zJHGN_BBr8iAM_WtGoLiEcwg,1283
266
266
  ultralytics/utils/callbacks/tensorboard.py,sha256=MDPBW7aDes-66OE6YqKXXvqA_EocjzEMHWGM-8z9vUQ,5281
267
267
  ultralytics/utils/callbacks/wb.py,sha256=Tm_-aRr2CN32MJkY9tylpMBJkb007-MSRNSQ7rDJ5QU,7521
268
- ultralytics-8.3.164.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
269
- ultralytics-8.3.164.dist-info/METADATA,sha256=-S1R_V8PhKc2vEpgGJTHzz6qsK0R_xCX5NY94sUTDag,37576
270
- ultralytics-8.3.164.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
- ultralytics-8.3.164.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
- ultralytics-8.3.164.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
- ultralytics-8.3.164.dist-info/RECORD,,
268
+ ultralytics-8.3.166.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
269
+ ultralytics-8.3.166.dist-info/METADATA,sha256=4N4h2N1Vii9mOjtYcrL76k9zyCXctBsm-0k_zdReNCw,37576
270
+ ultralytics-8.3.166.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
271
+ ultralytics-8.3.166.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
272
+ ultralytics-8.3.166.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
273
+ ultralytics-8.3.166.dist-info/RECORD,,