ultralytics 8.2.51__py3-none-any.whl → 8.2.53__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.
Potentially problematic release.
This version of ultralytics might be problematic. Click here for more details.
- tests/test_python.py +3 -3
- ultralytics/__init__.py +1 -1
- ultralytics/cfg/datasets/DOTAv1.5.yaml +1 -1
- ultralytics/cfg/datasets/DOTAv1.yaml +1 -1
- ultralytics/cfg/datasets/GlobalWheat2020.yaml +1 -1
- ultralytics/cfg/datasets/VOC.yaml +1 -1
- ultralytics/cfg/datasets/VisDrone.yaml +4 -4
- ultralytics/cfg/datasets/african-wildlife.yaml +1 -1
- ultralytics/cfg/datasets/brain-tumor.yaml +1 -1
- ultralytics/cfg/datasets/carparts-seg.yaml +1 -1
- ultralytics/cfg/datasets/coco-pose.yaml +1 -1
- ultralytics/cfg/datasets/coco.yaml +1 -1
- ultralytics/cfg/datasets/coco128-seg.yaml +1 -1
- ultralytics/cfg/datasets/coco128.yaml +1 -1
- ultralytics/cfg/datasets/coco8-pose.yaml +1 -1
- ultralytics/cfg/datasets/coco8-seg.yaml +1 -1
- ultralytics/cfg/datasets/coco8.yaml +1 -1
- ultralytics/cfg/datasets/crack-seg.yaml +1 -1
- ultralytics/cfg/datasets/dota8.yaml +1 -1
- ultralytics/cfg/datasets/lvis.yaml +1 -1
- ultralytics/cfg/datasets/package-seg.yaml +1 -1
- ultralytics/cfg/datasets/signature.yaml +1 -1
- ultralytics/cfg/datasets/tiger-pose.yaml +1 -1
- ultralytics/data/augment.py +2 -0
- ultralytics/data/dataset.py +9 -5
- ultralytics/data/utils.py +1 -1
- ultralytics/engine/exporter.py +1 -1
- ultralytics/engine/trainer.py +1 -1
- ultralytics/nn/tasks.py +1 -1
- ultralytics/solutions/heatmap.py +9 -8
- ultralytics/utils/benchmarks.py +1 -1
- ultralytics/utils/checks.py +1 -1
- ultralytics/utils/downloads.py +10 -6
- ultralytics/utils/plotting.py +3 -3
- {ultralytics-8.2.51.dist-info → ultralytics-8.2.53.dist-info}/METADATA +1 -1
- {ultralytics-8.2.51.dist-info → ultralytics-8.2.53.dist-info}/RECORD +40 -40
- {ultralytics-8.2.51.dist-info → ultralytics-8.2.53.dist-info}/WHEEL +1 -1
- {ultralytics-8.2.51.dist-info → ultralytics-8.2.53.dist-info}/LICENSE +0 -0
- {ultralytics-8.2.51.dist-info → ultralytics-8.2.53.dist-info}/entry_points.txt +0 -0
- {ultralytics-8.2.51.dist-info → ultralytics-8.2.53.dist-info}/top_level.txt +0 -0
tests/test_python.py
CHANGED
|
@@ -90,7 +90,7 @@ def test_predict_img(model_name):
|
|
|
90
90
|
batch = [
|
|
91
91
|
str(SOURCE), # filename
|
|
92
92
|
Path(SOURCE), # Path
|
|
93
|
-
"https://
|
|
93
|
+
"https://github.com/ultralytics/assets/releases/download/v0.0.0/zidane.jpg" if ONLINE else SOURCE, # URI
|
|
94
94
|
cv2.imread(str(SOURCE)), # OpenCV
|
|
95
95
|
Image.open(SOURCE), # PIL
|
|
96
96
|
np.zeros((320, 640, 3), dtype=np.uint8), # numpy
|
|
@@ -149,7 +149,7 @@ def test_track_stream():
|
|
|
149
149
|
|
|
150
150
|
Note imgsz=160 required for tracking for higher confidence and better matches.
|
|
151
151
|
"""
|
|
152
|
-
video_url = "https://
|
|
152
|
+
video_url = "https://github.com/ultralytics/assets/releases/download/v0.0.0/decelera_portrait_min.mov"
|
|
153
153
|
model = YOLO(MODEL)
|
|
154
154
|
model.track(video_url, imgsz=160, tracker="bytetrack.yaml")
|
|
155
155
|
model.track(video_url, imgsz=160, tracker="botsort.yaml", save_frames=True) # test frame saving also
|
|
@@ -290,7 +290,7 @@ def test_data_converter():
|
|
|
290
290
|
from ultralytics.data.converter import coco80_to_coco91_class, convert_coco
|
|
291
291
|
|
|
292
292
|
file = "instances_val2017.json"
|
|
293
|
-
download(f"https://github.com/ultralytics/
|
|
293
|
+
download(f"https://github.com/ultralytics/assets/releases/download/v0.0.0/{file}", dir=TMP)
|
|
294
294
|
convert_coco(labels_dir=TMP, save_dir=TMP / "yolo_labels", use_segments=True, use_keypoints=False, cls91to80=True)
|
|
295
295
|
coco80_to_coco91_class()
|
|
296
296
|
|
ultralytics/__init__.py
CHANGED
|
@@ -37,7 +37,7 @@ download: |
|
|
|
37
37
|
# Download
|
|
38
38
|
dir = Path(yaml['path']) # dataset root dir
|
|
39
39
|
urls = ['https://zenodo.org/record/4298502/files/global-wheat-codalab-official.zip',
|
|
40
|
-
'https://github.com/ultralytics/
|
|
40
|
+
'https://github.com/ultralytics/assets/releases/download/v0.0.0/GlobalWheat2020_labels.zip']
|
|
41
41
|
download(urls, dir=dir)
|
|
42
42
|
|
|
43
43
|
# Make Directories
|
|
@@ -76,7 +76,7 @@ download: |
|
|
|
76
76
|
|
|
77
77
|
# Download
|
|
78
78
|
dir = Path(yaml['path']) # dataset root dir
|
|
79
|
-
url = 'https://github.com/ultralytics/
|
|
79
|
+
url = 'https://github.com/ultralytics/assets/releases/download/v0.0.0/'
|
|
80
80
|
urls = [f'{url}VOCtrainval_06-Nov-2007.zip', # 446MB, 5012 images
|
|
81
81
|
f'{url}VOCtest_06-Nov-2007.zip', # 438MB, 4953 images
|
|
82
82
|
f'{url}VOCtrainval_11-May-2012.zip'] # 1.95GB, 17126 images
|
|
@@ -61,10 +61,10 @@ download: |
|
|
|
61
61
|
|
|
62
62
|
# Download
|
|
63
63
|
dir = Path(yaml['path']) # dataset root dir
|
|
64
|
-
urls = ['https://github.com/ultralytics/
|
|
65
|
-
'https://github.com/ultralytics/
|
|
66
|
-
'https://github.com/ultralytics/
|
|
67
|
-
'https://github.com/ultralytics/
|
|
64
|
+
urls = ['https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-train.zip',
|
|
65
|
+
'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-val.zip',
|
|
66
|
+
'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip',
|
|
67
|
+
'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip']
|
|
68
68
|
download(urls, dir=dir, curl=True, threads=4)
|
|
69
69
|
|
|
70
70
|
# Convert
|
|
@@ -28,7 +28,7 @@ download: |
|
|
|
28
28
|
|
|
29
29
|
# Download labels
|
|
30
30
|
dir = Path(yaml['path']) # dataset root dir
|
|
31
|
-
url = 'https://github.com/ultralytics/
|
|
31
|
+
url = 'https://github.com/ultralytics/assets/releases/download/v0.0.0/'
|
|
32
32
|
urls = [url + 'coco2017labels-pose.zip'] # labels
|
|
33
33
|
download(urls, dir=dir.parent)
|
|
34
34
|
# Download data
|
|
@@ -104,7 +104,7 @@ download: |
|
|
|
104
104
|
# Download labels
|
|
105
105
|
segments = True # segment or box labels
|
|
106
106
|
dir = Path(yaml['path']) # dataset root dir
|
|
107
|
-
url = 'https://github.com/ultralytics/
|
|
107
|
+
url = 'https://github.com/ultralytics/assets/releases/download/v0.0.0/'
|
|
108
108
|
urls = [url + ('coco2017labels-segments.zip' if segments else 'coco2017labels.zip')] # labels
|
|
109
109
|
download(urls, dir=dir.parent)
|
|
110
110
|
# Download data
|
|
@@ -1225,7 +1225,7 @@ download: |
|
|
|
1225
1225
|
|
|
1226
1226
|
# Download labels
|
|
1227
1227
|
dir = Path(yaml['path']) # dataset root dir
|
|
1228
|
-
url = 'https://github.com/ultralytics/
|
|
1228
|
+
url = 'https://github.com/ultralytics/assets/releases/download/v0.0.0/'
|
|
1229
1229
|
urls = [url + 'lvis-labels-segments.zip'] # labels
|
|
1230
1230
|
download(urls, dir=dir.parent)
|
|
1231
1231
|
# Download data
|
ultralytics/data/augment.py
CHANGED
|
@@ -1401,6 +1401,8 @@ class CenterCrop:
|
|
|
1401
1401
|
Returns:
|
|
1402
1402
|
(numpy.ndarray): The center-cropped and resized image as a numpy array.
|
|
1403
1403
|
"""
|
|
1404
|
+
if isinstance(im, Image.Image): # convert from PIL to numpy array if required
|
|
1405
|
+
im = np.asarray(im)
|
|
1404
1406
|
imh, imw = im.shape[:2]
|
|
1405
1407
|
m = min(imh, imw) # min dimension
|
|
1406
1408
|
top, left = (imh - m) // 2, (imw - m) // 2
|
ultralytics/data/dataset.py
CHANGED
|
@@ -15,6 +15,7 @@ from torch.utils.data import ConcatDataset
|
|
|
15
15
|
|
|
16
16
|
from ultralytics.utils import LOCAL_RANK, NUM_THREADS, TQDM, colorstr
|
|
17
17
|
from ultralytics.utils.ops import resample_segments
|
|
18
|
+
from ultralytics.utils.torch_utils import TORCH_1_13
|
|
18
19
|
|
|
19
20
|
from .augment import (
|
|
20
21
|
Compose,
|
|
@@ -263,7 +264,7 @@ class YOLOMultiModalDataset(YOLODataset):
|
|
|
263
264
|
super().__init__(*args, data=data, task=task, **kwargs)
|
|
264
265
|
|
|
265
266
|
def update_labels_info(self, label):
|
|
266
|
-
"""Add texts information for multi
|
|
267
|
+
"""Add texts information for multi-modal model training."""
|
|
267
268
|
labels = super().update_labels_info(label)
|
|
268
269
|
# NOTE: some categories are concatenated with its synonyms by `/`.
|
|
269
270
|
labels["texts"] = [v.split("/") for _, v in self.data["names"].items()]
|
|
@@ -296,10 +297,10 @@ class GroundingDataset(YOLODataset):
|
|
|
296
297
|
with open(self.json_file, "r") as f:
|
|
297
298
|
annotations = json.load(f)
|
|
298
299
|
images = {f'{x["id"]:d}': x for x in annotations["images"]}
|
|
299
|
-
|
|
300
|
+
img_to_anns = defaultdict(list)
|
|
300
301
|
for ann in annotations["annotations"]:
|
|
301
|
-
|
|
302
|
-
for img_id, anns in TQDM(
|
|
302
|
+
img_to_anns[ann["image_id"]].append(ann)
|
|
303
|
+
for img_id, anns in TQDM(img_to_anns.items(), desc=f"Reading annotations {self.json_file}"):
|
|
303
304
|
img = images[f"{img_id:d}"]
|
|
304
305
|
h, w, f = img["height"], img["width"], img["file_name"]
|
|
305
306
|
im_file = Path(self.img_path) / f
|
|
@@ -416,7 +417,10 @@ class ClassificationDataset:
|
|
|
416
417
|
import torchvision # scope for faster 'import ultralytics'
|
|
417
418
|
|
|
418
419
|
# Base class assigned as attribute rather than used as base class to allow for scoping slow torchvision import
|
|
419
|
-
|
|
420
|
+
if TORCH_1_13: # 'allow_empty' argument first introduced in torch 1.13
|
|
421
|
+
self.base = torchvision.datasets.ImageFolder(root=root, allow_empty=True)
|
|
422
|
+
else:
|
|
423
|
+
self.base = torchvision.datasets.ImageFolder(root=root)
|
|
420
424
|
self.samples = self.base.samples
|
|
421
425
|
self.root = self.base.root
|
|
422
426
|
|
ultralytics/data/utils.py
CHANGED
|
@@ -379,7 +379,7 @@ def check_cls_dataset(dataset, split=""):
|
|
|
379
379
|
if str(dataset) == "imagenet":
|
|
380
380
|
subprocess.run(f"bash {ROOT / 'data/scripts/get_imagenet.sh'}", shell=True, check=True)
|
|
381
381
|
else:
|
|
382
|
-
url = f"https://github.com/ultralytics/
|
|
382
|
+
url = f"https://github.com/ultralytics/assets/releases/download/v0.0.0/{dataset}.zip"
|
|
383
383
|
download(url, dir=data_dir.parent)
|
|
384
384
|
s = f"Dataset download success ✅ ({time.time() - t:.1f}s), saved to {colorstr('bold', data_dir)}\n"
|
|
385
385
|
LOGGER.info(s)
|
ultralytics/engine/exporter.py
CHANGED
|
@@ -454,7 +454,7 @@ class Exporter:
|
|
|
454
454
|
LOGGER.info(f"\n{prefix} starting export with openvino {ov.__version__}...")
|
|
455
455
|
assert TORCH_1_13, f"OpenVINO export requires torch>=1.13.0 but torch=={torch.__version__} is installed"
|
|
456
456
|
ov_model = ov.convert_model(
|
|
457
|
-
self.model
|
|
457
|
+
self.model,
|
|
458
458
|
input=None if self.args.dynamic else [self.im.shape],
|
|
459
459
|
example_input=self.im,
|
|
460
460
|
)
|
ultralytics/engine/trainer.py
CHANGED
|
@@ -266,7 +266,7 @@ class BaseTrainer:
|
|
|
266
266
|
self.amp = bool(self.amp) # as boolean
|
|
267
267
|
self.scaler = torch.cuda.amp.GradScaler(enabled=self.amp)
|
|
268
268
|
if world_size > 1:
|
|
269
|
-
self.model = nn.parallel.DistributedDataParallel(self.model, device_ids=[RANK])
|
|
269
|
+
self.model = nn.parallel.DistributedDataParallel(self.model, device_ids=[RANK], find_unused_parameters=True)
|
|
270
270
|
|
|
271
271
|
# Check imgsz
|
|
272
272
|
gs = max(int(self.model.stride.max() if hasattr(self.model, "stride") else 32), 32) # grid size (max stride)
|
ultralytics/nn/tasks.py
CHANGED
|
@@ -379,7 +379,7 @@ class DetectionModel(BaseModel):
|
|
|
379
379
|
|
|
380
380
|
def init_criterion(self):
|
|
381
381
|
"""Initialize the loss criterion for the DetectionModel."""
|
|
382
|
-
return E2EDetectLoss(self) if self
|
|
382
|
+
return E2EDetectLoss(self) if getattr(self, "end2end", False) else v8DetectionLoss(self)
|
|
383
383
|
|
|
384
384
|
|
|
385
385
|
class OBBModel(DetectionModel):
|
ultralytics/solutions/heatmap.py
CHANGED
|
@@ -60,9 +60,9 @@ class Heatmap:
|
|
|
60
60
|
self.heatmap_alpha = heatmap_alpha
|
|
61
61
|
|
|
62
62
|
# Predict/track information
|
|
63
|
-
self.boxes =
|
|
64
|
-
self.track_ids =
|
|
65
|
-
self.clss =
|
|
63
|
+
self.boxes = []
|
|
64
|
+
self.track_ids = []
|
|
65
|
+
self.clss = []
|
|
66
66
|
self.track_history = defaultdict(list)
|
|
67
67
|
|
|
68
68
|
# Region & Line Information
|
|
@@ -107,16 +107,17 @@ class Heatmap:
|
|
|
107
107
|
print("Using Circular shape now")
|
|
108
108
|
self.shape = "circle"
|
|
109
109
|
|
|
110
|
-
def extract_results(self, tracks
|
|
110
|
+
def extract_results(self, tracks):
|
|
111
111
|
"""
|
|
112
112
|
Extracts results from the provided data.
|
|
113
113
|
|
|
114
114
|
Args:
|
|
115
115
|
tracks (list): List of tracks obtained from the object tracking process.
|
|
116
116
|
"""
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
117
|
+
if tracks[0].boxes.id is not None:
|
|
118
|
+
self.boxes = tracks[0].boxes.xyxy.cpu()
|
|
119
|
+
self.clss = tracks[0].boxes.cls.tolist()
|
|
120
|
+
self.track_ids = tracks[0].boxes.id.int().tolist()
|
|
120
121
|
|
|
121
122
|
def generate_heatmap(self, im0, tracks):
|
|
122
123
|
"""
|
|
@@ -138,7 +139,7 @@ class Heatmap:
|
|
|
138
139
|
self.extract_results(tracks)
|
|
139
140
|
self.annotator = Annotator(self.im0, self.tf, None)
|
|
140
141
|
|
|
141
|
-
if self.track_ids
|
|
142
|
+
if self.track_ids:
|
|
142
143
|
# Draw counting region
|
|
143
144
|
if self.count_reg_pts is not None:
|
|
144
145
|
self.annotator.draw_region(
|
ultralytics/utils/benchmarks.py
CHANGED
|
@@ -195,7 +195,7 @@ class RF100Benchmark:
|
|
|
195
195
|
(shutil.rmtree("rf-100"), os.mkdir("rf-100")) if os.path.exists("rf-100") else os.mkdir("rf-100")
|
|
196
196
|
os.chdir("rf-100")
|
|
197
197
|
os.mkdir("ultralytics-benchmarks")
|
|
198
|
-
safe_download("https://
|
|
198
|
+
safe_download("https://github.com/ultralytics/assets/releases/download/v0.0.0/datasets_links.txt")
|
|
199
199
|
|
|
200
200
|
with open(ds_link_txt, "r") as file:
|
|
201
201
|
for line in file:
|
ultralytics/utils/checks.py
CHANGED
|
@@ -315,7 +315,7 @@ def check_font(font="Arial.ttf"):
|
|
|
315
315
|
return matches[0]
|
|
316
316
|
|
|
317
317
|
# Download to USER_CONFIG_DIR if missing
|
|
318
|
-
url = f"https://
|
|
318
|
+
url = f"https://github.com/ultralytics/assets/releases/download/v0.0.0/{name}"
|
|
319
319
|
if downloads.is_url(url, check=True):
|
|
320
320
|
downloads.safe_download(url=url, file=file)
|
|
321
321
|
return file
|
ultralytics/utils/downloads.py
CHANGED
|
@@ -194,12 +194,12 @@ def unzip_file(file, path=None, exclude=(".DS_Store", "__MACOSX"), exist_ok=Fals
|
|
|
194
194
|
return path # return unzip dir
|
|
195
195
|
|
|
196
196
|
|
|
197
|
-
def check_disk_space(url="https://ultralytics.com/assets/
|
|
197
|
+
def check_disk_space(url="https://ultralytics.com/assets/coco8.zip", path=Path.cwd(), sf=1.5, hard=True):
|
|
198
198
|
"""
|
|
199
199
|
Check if there is sufficient disk space to download and store a file.
|
|
200
200
|
|
|
201
201
|
Args:
|
|
202
|
-
url (str, optional): The URL to the file. Defaults to 'https://
|
|
202
|
+
url (str, optional): The URL to the file. Defaults to 'https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip'.
|
|
203
203
|
path (str | Path, optional): The path or drive to check the available free space on.
|
|
204
204
|
sf (float, optional): Safety factor, the multiplier for the required free space. Defaults to 2.0.
|
|
205
205
|
hard (bool, optional): Whether to throw an error or not on insufficient disk space. Defaults to True.
|
|
@@ -320,7 +320,11 @@ def safe_download(
|
|
|
320
320
|
if "://" not in str(url) and Path(url).is_file(): # URL exists ('://' check required in Windows Python<3.10)
|
|
321
321
|
f = Path(url) # filename
|
|
322
322
|
elif not f.is_file(): # URL and file do not exist
|
|
323
|
-
|
|
323
|
+
uri = (url if gdrive else clean_url(url)).replace( # cleaned and aliased url
|
|
324
|
+
"https://github.com/ultralytics/assets/releases/download/v0.0.0/",
|
|
325
|
+
"https://ultralytics.com/assets/", # assets alias
|
|
326
|
+
)
|
|
327
|
+
desc = f"Downloading {uri} to '{f}'"
|
|
324
328
|
LOGGER.info(f"{desc}...")
|
|
325
329
|
f.parent.mkdir(parents=True, exist_ok=True) # make directory if missing
|
|
326
330
|
check_disk_space(url, path=f.parent)
|
|
@@ -354,10 +358,10 @@ def safe_download(
|
|
|
354
358
|
f.unlink() # remove partial downloads
|
|
355
359
|
except Exception as e:
|
|
356
360
|
if i == 0 and not is_online():
|
|
357
|
-
raise ConnectionError(emojis(f"❌ Download failure for {
|
|
361
|
+
raise ConnectionError(emojis(f"❌ Download failure for {uri}. Environment is not online.")) from e
|
|
358
362
|
elif i >= retry:
|
|
359
|
-
raise ConnectionError(emojis(f"❌ Download failure for {
|
|
360
|
-
LOGGER.warning(f"⚠️ Download failure, retrying {i + 1}/{retry} {
|
|
363
|
+
raise ConnectionError(emojis(f"❌ Download failure for {uri}. Retry limit reached.")) from e
|
|
364
|
+
LOGGER.warning(f"⚠️ Download failure, retrying {i + 1}/{retry} {uri}...")
|
|
361
365
|
|
|
362
366
|
if unzip and f.exists() and f.suffix in {"", ".zip", ".tar", ".gz"}:
|
|
363
367
|
from zipfile import is_zipfile
|
ultralytics/utils/plotting.py
CHANGED
|
@@ -298,8 +298,8 @@ class Annotator:
|
|
|
298
298
|
if label:
|
|
299
299
|
w, h = self.font.getsize(label) # text width, height
|
|
300
300
|
outside = p1[1] >= h # label fits outside box
|
|
301
|
-
if p1[0] > self.im.size[
|
|
302
|
-
p1 = self.im.size[
|
|
301
|
+
if p1[0] > self.im.size[0] - w: # size is (w, h), check if label extend beyond right side of image
|
|
302
|
+
p1 = self.im.size[0] - w, p1[1]
|
|
303
303
|
self.draw.rectangle(
|
|
304
304
|
(p1[0], p1[1] - h if outside else p1[1], p1[0] + w + 1, p1[1] + 1 if outside else p1[1] + h + 1),
|
|
305
305
|
fill=color,
|
|
@@ -317,7 +317,7 @@ class Annotator:
|
|
|
317
317
|
w, h = cv2.getTextSize(label, 0, fontScale=self.sf, thickness=self.tf)[0] # text width, height
|
|
318
318
|
h += 3 # add pixels to pad text
|
|
319
319
|
outside = p1[1] >= h # label fits outside box
|
|
320
|
-
if p1[0] > self.im.shape[1] - w: # check if label extend beyond right side of image
|
|
320
|
+
if p1[0] > self.im.shape[1] - w: # shape is (h, w), check if label extend beyond right side of image
|
|
321
321
|
p1 = self.im.shape[1] - w, p1[1]
|
|
322
322
|
p2 = p1[0] + w, p1[1] - h if outside else p1[1] + h
|
|
323
323
|
cv2.rectangle(self.im, p1, p2, color, -1, cv2.LINE_AA) # filled
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ultralytics
|
|
3
|
-
Version: 8.2.
|
|
3
|
+
Version: 8.2.53
|
|
4
4
|
Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
|
|
5
5
|
Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
6
6
|
Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
|
|
@@ -6,38 +6,38 @@ tests/test_engine.py,sha256=xW-UT9_9xZp-7-hSnbJgMw_ezTk6NqTOIiA59XZDmxA,4934
|
|
|
6
6
|
tests/test_explorer.py,sha256=NcxSJeB6FxwkN09hQl7nnQL--HjfHB_WcZk0mEmBNHI,2215
|
|
7
7
|
tests/test_exports.py,sha256=Uezf3OatpPHlo5qoPw-2kqkZxuMCF9L4XF2riD4vmII,8225
|
|
8
8
|
tests/test_integrations.py,sha256=xglcfMPjfVh346PV8WTpk6tBxraCXEFJEQyyJMr5tyU,6064
|
|
9
|
-
tests/test_python.py,sha256=
|
|
10
|
-
ultralytics/__init__.py,sha256=
|
|
9
|
+
tests/test_python.py,sha256=qhtSQ7NDfBChsVUxeSwfUIkoKq0S1Z-Rd9_MP023Y5k,21794
|
|
10
|
+
ultralytics/__init__.py,sha256=fDa5shd9ITuM3SOYAGwCfW_q3NMC2eqOxGXOpgnr4iY,694
|
|
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=MqUsV-Mdk80dO64yY7JmplEO0Awb-25Lfx4YC9QYxhc,26210
|
|
14
14
|
ultralytics/cfg/default.yaml,sha256=xRKVF-Z9E3imXTU9OCK94kj3jGgYoo67VJQwuYlHiUU,8228
|
|
15
15
|
ultralytics/cfg/datasets/Argoverse.yaml,sha256=FyeuJT5CHq_9d4hlfAf0kpZlnbUMO0S--UJ1yIqcdKk,3134
|
|
16
|
-
ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=
|
|
17
|
-
ultralytics/cfg/datasets/DOTAv1.yaml,sha256=
|
|
18
|
-
ultralytics/cfg/datasets/GlobalWheat2020.yaml,sha256=
|
|
16
|
+
ultralytics/cfg/datasets/DOTAv1.5.yaml,sha256=QVfp_Qp-4rukuicaB4qx86NxSHM8Mrzym8l_fIDo8gw,1195
|
|
17
|
+
ultralytics/cfg/datasets/DOTAv1.yaml,sha256=sxe2P7nY-cCPufH3G1pymnQVtNoGH1y0ETG5CyWfK9g,1165
|
|
18
|
+
ultralytics/cfg/datasets/GlobalWheat2020.yaml,sha256=fxWJv0EhMQTCC6Npc13ZYRhg-EedLmUOxRQXfe1GruQ,2060
|
|
19
19
|
ultralytics/cfg/datasets/ImageNet.yaml,sha256=P5t0rwMNZX2iu7ooBkd5xSi75m66ccBzO0XiBABGGhU,42507
|
|
20
20
|
ultralytics/cfg/datasets/Objects365.yaml,sha256=kiiV4KLMH2mcPPRrg6cQGygnbiTrHxwtAgA0ht6wcW4,9324
|
|
21
21
|
ultralytics/cfg/datasets/SKU-110K.yaml,sha256=geRkccBRl2eKgfNYTOPYwD9mTfqktTBGiMJoE3PZEnA,2493
|
|
22
|
-
ultralytics/cfg/datasets/VOC.yaml,sha256=
|
|
23
|
-
ultralytics/cfg/datasets/VisDrone.yaml,sha256=
|
|
24
|
-
ultralytics/cfg/datasets/african-wildlife.yaml,sha256=
|
|
25
|
-
ultralytics/cfg/datasets/brain-tumor.yaml,sha256=
|
|
26
|
-
ultralytics/cfg/datasets/carparts-seg.yaml,sha256=
|
|
27
|
-
ultralytics/cfg/datasets/coco-pose.yaml,sha256=
|
|
28
|
-
ultralytics/cfg/datasets/coco.yaml,sha256=
|
|
29
|
-
ultralytics/cfg/datasets/coco128-seg.yaml,sha256=
|
|
30
|
-
ultralytics/cfg/datasets/coco128.yaml,sha256=
|
|
31
|
-
ultralytics/cfg/datasets/coco8-pose.yaml,sha256=
|
|
32
|
-
ultralytics/cfg/datasets/coco8-seg.yaml,sha256=
|
|
33
|
-
ultralytics/cfg/datasets/coco8.yaml,sha256=
|
|
34
|
-
ultralytics/cfg/datasets/crack-seg.yaml,sha256=
|
|
35
|
-
ultralytics/cfg/datasets/dota8.yaml,sha256=
|
|
36
|
-
ultralytics/cfg/datasets/lvis.yaml,sha256=
|
|
22
|
+
ultralytics/cfg/datasets/VOC.yaml,sha256=oyBcI4ybNjKUc1UyS8rghjaGszXMAbvZL1CK5szfGqg,3657
|
|
23
|
+
ultralytics/cfg/datasets/VisDrone.yaml,sha256=XRyLw16noiOYnEW4MDCU5hqjGWWMKq6vpq-6oGTcU5Q,3081
|
|
24
|
+
ultralytics/cfg/datasets/african-wildlife.yaml,sha256=ZMthNcQsk97awEvnap8Oydd3SXuDfpY_OjgXnw8inqc,901
|
|
25
|
+
ultralytics/cfg/datasets/brain-tumor.yaml,sha256=HTQAC83rPLFyLBtdVvhh0A7LBbPrpdVfD32uOSUBDBQ,827
|
|
26
|
+
ultralytics/cfg/datasets/carparts-seg.yaml,sha256=8XdKeWH-LSF1CElYsKSuQia8U2Sj8urbA88aTuEyyfE,1239
|
|
27
|
+
ultralytics/cfg/datasets/coco-pose.yaml,sha256=q8XCTa-BPOp3lCFDgZdWTDRtnkBlS_MOXVskd2EEnKQ,1605
|
|
28
|
+
ultralytics/cfg/datasets/coco.yaml,sha256=vW-YouGHdcOaTVIUCAyH_LFj02fBii_PJgk3G6sAwLg,2586
|
|
29
|
+
ultralytics/cfg/datasets/coco128-seg.yaml,sha256=U7OLAJfK9zrdiL7sVDB-7CpwC2FEucXK2DHJvn_ewh8,1957
|
|
30
|
+
ultralytics/cfg/datasets/coco128.yaml,sha256=Xl_dZykUsDPgofy9o-FjEM-dkAf2T2sGZjksABoD7RM,1940
|
|
31
|
+
ultralytics/cfg/datasets/coco8-pose.yaml,sha256=h0ZQfHGoeG724n3jTvHkLObnYZfNDlaOZSJLoPAV800,993
|
|
32
|
+
ultralytics/cfg/datasets/coco8-seg.yaml,sha256=sFMRTJa2ARpqAtr-50SS_RkB4KoczmAamK6C7qIfAd8,1897
|
|
33
|
+
ultralytics/cfg/datasets/coco8.yaml,sha256=3_lNlMo40Rf52oxOnAIyaf7ZOdV0-z-Gcv-uMWmAE0s,1872
|
|
34
|
+
ultralytics/cfg/datasets/crack-seg.yaml,sha256=rJ2nbxclHjrEMZPwUCdHO2yjfuAZBoekuH40oP5HfNA,823
|
|
35
|
+
ultralytics/cfg/datasets/dota8.yaml,sha256=d65FTGCJzZPIVetfeS-_feshKjoYDsd1XqbWoC3u6tI,1044
|
|
36
|
+
ultralytics/cfg/datasets/lvis.yaml,sha256=ryswcm32vDAZ3-8rWx0YWzUv4kdOEPYg2OhRt-UswpE,29691
|
|
37
37
|
ultralytics/cfg/datasets/open-images-v7.yaml,sha256=gsN0JXLSdQglio024p6NEegNbX06kJUNuj0bh9oEi-U,12493
|
|
38
|
-
ultralytics/cfg/datasets/package-seg.yaml,sha256=
|
|
39
|
-
ultralytics/cfg/datasets/signature.yaml,sha256=
|
|
40
|
-
ultralytics/cfg/datasets/tiger-pose.yaml,sha256=
|
|
38
|
+
ultralytics/cfg/datasets/package-seg.yaml,sha256=6iPpZOP0xgrTcO8DAZNPGFlJwrYn5bDgx-FpEnv2Ut8,833
|
|
39
|
+
ultralytics/cfg/datasets/signature.yaml,sha256=qTOULZf0J9hS7ZXVd_sPJ8uoNVmbKnqZ6Kgm_EjmXpY,760
|
|
40
|
+
ultralytics/cfg/datasets/tiger-pose.yaml,sha256=tU88xdKAoN2DFXDk2NMHV7y9bC2HGJCF0LvTVvCaCNE,896
|
|
41
41
|
ultralytics/cfg/datasets/xView.yaml,sha256=rjQPRNk--jlYN9wcVTu1KbopgZIkWXhr_s1UkSdcERs,5217
|
|
42
42
|
ultralytics/cfg/models/rt-detr/rtdetr-l.yaml,sha256=Nbzi93tAJhBw69hUNBkzXaeMMWwW6tWeAsdN8ynryuU,1934
|
|
43
43
|
ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml,sha256=o0nWoKciT-vypC2eS5qIEWNSac0L6vwLtbK9ucQluG4,1512
|
|
@@ -83,25 +83,25 @@ ultralytics/cfg/trackers/botsort.yaml,sha256=YrPmj18p1UU40kJH5NRdL_4S8f7knggkk_q
|
|
|
83
83
|
ultralytics/cfg/trackers/bytetrack.yaml,sha256=QvHmtuwulK4X6j3T5VEqtCm0sbWWBUVmWPcCcM20qe0,688
|
|
84
84
|
ultralytics/data/__init__.py,sha256=VGe-ATG7j35F4A4r8Jmzffjlhve4JAJPgRa5ahKTU18,616
|
|
85
85
|
ultralytics/data/annotator.py,sha256=evXQzARVerc0hb9ol-n_GrrHf-dlXO4lCMMWEZoJ2UM,2117
|
|
86
|
-
ultralytics/data/augment.py,sha256=
|
|
86
|
+
ultralytics/data/augment.py,sha256=V0iyu_9q_mx-G_61sPA1FWt_6ErJY4SnY_W62uxKOqI,59866
|
|
87
87
|
ultralytics/data/base.py,sha256=C3teLnw97ZTbpJHT9P7yYWosAKocMzgJjRe1rxgfpls,13524
|
|
88
88
|
ultralytics/data/build.py,sha256=AfMmz0sHIYmwry_90tEJFRk_kz0S3SolScVXqYHiT08,7261
|
|
89
89
|
ultralytics/data/converter.py,sha256=7640xKuf7LPeoTwoCvgbIXM5xbzyq72Hu2Rf2lrgjRY,17554
|
|
90
|
-
ultralytics/data/dataset.py,sha256=
|
|
90
|
+
ultralytics/data/dataset.py,sha256=q8g8cUAabdhqahL0a0cbulOey29UFXY51VDEFJN_x0c,22444
|
|
91
91
|
ultralytics/data/loaders.py,sha256=UUL7yOmuseAG5RBVI-kLrLr42Vm4kL05Qqnc5jAmNW0,23972
|
|
92
92
|
ultralytics/data/split_dota.py,sha256=fWezt1Bo3jiZ6AyUWdBtTUuvLamPv1t7JD-DirM9gQ8,10142
|
|
93
|
-
ultralytics/data/utils.py,sha256=
|
|
93
|
+
ultralytics/data/utils.py,sha256=GHmqx6e5yRfcUD2Qkwk-tQfhXCwtUMFD3Uf6d699nGo,31046
|
|
94
94
|
ultralytics/data/explorer/__init__.py,sha256=-Y3m1ZedepOQUv_KW82zaGxvU_PSHcuwUTFqG9BhAr4,113
|
|
95
95
|
ultralytics/data/explorer/explorer.py,sha256=YacduFQvYOgTRF0BhCZWpTEaGlhp7oRy9a49VvNysEQ,18998
|
|
96
96
|
ultralytics/data/explorer/utils.py,sha256=EvvukQiQUTBrsZznmMnyEX2EqTuwZo_Geyc8yfi8NIA,7085
|
|
97
97
|
ultralytics/data/explorer/gui/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
98
98
|
ultralytics/data/explorer/gui/dash.py,sha256=CPlFIIhf53j_YVAqealsC3AbcztdPqZxfniQcBnlKK4,10042
|
|
99
99
|
ultralytics/engine/__init__.py,sha256=mHtJuK4hwF8cuV-VHDc7tp6u6D1gHz2Z7JI8grmQDTs,42
|
|
100
|
-
ultralytics/engine/exporter.py,sha256
|
|
100
|
+
ultralytics/engine/exporter.py,sha256=-qidFlOXEnzOJR8c4YhsZqugonN0tpyk_Ye4dIrTsT4,58642
|
|
101
101
|
ultralytics/engine/model.py,sha256=8qD5irabp8BF7bBZGwztCu8yAVQQp1kksYSea9EhdEo,39078
|
|
102
102
|
ultralytics/engine/predictor.py,sha256=W58kDCFH2AfoFzpGbos3k8zUEVsLunBuM8sc2B64rPY,17449
|
|
103
103
|
ultralytics/engine/results.py,sha256=5MevvBz0E-cpDf55FqweInlKdcQPb7sz0EgZSROJqw4,35817
|
|
104
|
-
ultralytics/engine/trainer.py,sha256=
|
|
104
|
+
ultralytics/engine/trainer.py,sha256=vFdWN6I-DoAHZYmxjRDeYcc44B9i8tBtK8u6oMgyj9o,35476
|
|
105
105
|
ultralytics/engine/tuner.py,sha256=iZrgMmXSDpfuDu4bdFRflmAsscys2-8W8qAGxSyOVJE,11844
|
|
106
106
|
ultralytics/engine/validator.py,sha256=Y21Uo8_Zto4qjk_YqQk6k7tyfpq_Qk9cfjeXeyDRxs8,14643
|
|
107
107
|
ultralytics/hub/__init__.py,sha256=93bqI8x8-MfDYdKkQVduuocUiQj3WGnk1nIk0li08zA,5663
|
|
@@ -165,7 +165,7 @@ ultralytics/models/yolo/world/train.py,sha256=acYN2-onL69LrL4av6_hY2r5AY0urC0WVi
|
|
|
165
165
|
ultralytics/models/yolo/world/train_world.py,sha256=IsnCEVt6DcM9lUskCKmIN-M8MM79xLpwTRqRoAHUnZ4,4857
|
|
166
166
|
ultralytics/nn/__init__.py,sha256=4BPLHY89xEM_al5uK0aOmFgiML6CMGEZbezxOvTjOEs,587
|
|
167
167
|
ultralytics/nn/autobackend.py,sha256=vtCvcYTyF2l4KeG5N-PD8FhmPx9pca92mmGaHdQuUfE,31258
|
|
168
|
-
ultralytics/nn/tasks.py,sha256=
|
|
168
|
+
ultralytics/nn/tasks.py,sha256=jGAauQZOOSXKsxAKad_HBNfLleOoTS7T9XSlOZN8v7Y,45856
|
|
169
169
|
ultralytics/nn/modules/__init__.py,sha256=mARjWk83WPYF5phXhXfPbAu2ZohtdbHdi5zzoxyMubo,2553
|
|
170
170
|
ultralytics/nn/modules/block.py,sha256=DIXowCZn_Luc5VgGQEGXi34fqeiz_bhaNT48zEzguDM,34491
|
|
171
171
|
ultralytics/nn/modules/conv.py,sha256=Ywe87IhuaS22mR2JJ9xjnW8Sb-m7WTjxuqIxV_Dv8lI,12722
|
|
@@ -176,7 +176,7 @@ ultralytics/solutions/__init__.py,sha256=O_G9jh34NnFsHKSA8zcJH0CHtg1Q01JEiRWGwX3
|
|
|
176
176
|
ultralytics/solutions/ai_gym.py,sha256=KQdx0RP9t9y1MqYMVlYUSn09SVJSUwKvgxPri_DhczM,4721
|
|
177
177
|
ultralytics/solutions/analytics.py,sha256=UI8HoegfIJGgvQPOt4-e9A0ss2_ofM7zzxcbKlhe66k,11572
|
|
178
178
|
ultralytics/solutions/distance_calculation.py,sha256=pSIkyytHGRAaNzIrkkNkiOnSVWU1PYvURlCIV_jRORA,6505
|
|
179
|
-
ultralytics/solutions/heatmap.py,sha256=
|
|
179
|
+
ultralytics/solutions/heatmap.py,sha256=Fl01uzt5B0hBtcK0xG0QtUe1KyyEhorpV2C6Nbb3d_o,10392
|
|
180
180
|
ultralytics/solutions/object_counter.py,sha256=IR2kvgjlaHuzfq55gtwBiGFJ7dS5-5OCFOck54ol3PU,10786
|
|
181
181
|
ultralytics/solutions/parking_management.py,sha256=Bd7FU3WZ8mRBWq81Z5c8jH5WloF4jPKo8TycqU_AcEI,9786
|
|
182
182
|
ultralytics/solutions/queue_management.py,sha256=ECm6gLZplmE9Cm-zdOazHBBDcW-vvr8nx2M28fcPbts,6787
|
|
@@ -193,10 +193,10 @@ ultralytics/trackers/utils/kalman_filter.py,sha256=0oqhk59NKEiwcJ2FXnw6_sT4bIFC6
|
|
|
193
193
|
ultralytics/trackers/utils/matching.py,sha256=UxhSGa5pN6WoYwYSBAkkt-O7xMxUR47VuUB6PfVNkb4,5404
|
|
194
194
|
ultralytics/utils/__init__.py,sha256=905ZnRdmTrhXao2nsCP2mV2xAshsEKk0r4aOPP4EVPQ,38490
|
|
195
195
|
ultralytics/utils/autobatch.py,sha256=gPFcREMsMHRAuTQiBnNZ9Mm1XNqmQW-uMPhveDFEQ_Y,3966
|
|
196
|
-
ultralytics/utils/benchmarks.py,sha256=
|
|
197
|
-
ultralytics/utils/checks.py,sha256=
|
|
196
|
+
ultralytics/utils/benchmarks.py,sha256=EudI2wNzOPPNjf9J0AiROe32yD4G8nTg5tcZOZSJSw8,23581
|
|
197
|
+
ultralytics/utils/checks.py,sha256=QIltfNxlZdMOTzXqU815MBIevMj_TKBU_VeVXqjXdOo,28411
|
|
198
198
|
ultralytics/utils/dist.py,sha256=NDFga-uKxkBX2zLxFHSene_cCiGQJoyOeCXcN9JIOIk,2358
|
|
199
|
-
ultralytics/utils/downloads.py,sha256=
|
|
199
|
+
ultralytics/utils/downloads.py,sha256=MPuCfS7zZh_uco0Ddqh6NdKqdmUXXpk0Wz_GS99ltlc,21920
|
|
200
200
|
ultralytics/utils/errors.py,sha256=GqP_Jgj_n0paxn8OMhn3DTCgoNkB2WjUcUaqs-M6SQk,816
|
|
201
201
|
ultralytics/utils/files.py,sha256=TVfY0Wi5IsUc4YdsDzC0dAg-jAP5exYvwqB3VmXhDLY,6761
|
|
202
202
|
ultralytics/utils/instance.py,sha256=5daM5nkxBv9hr5QzyII8zmuFj24hHuNtcr4EMCHAtpY,15654
|
|
@@ -204,7 +204,7 @@ ultralytics/utils/loss.py,sha256=tAAi_l0SAtbtqT8AQSBSCvEyv342-r04H2KcSF1Yk_w,337
|
|
|
204
204
|
ultralytics/utils/metrics.py,sha256=C7qFuZjwGqbsG4sggm_qfm8gVuBUwHg_Fhxj08b6NfU,53671
|
|
205
205
|
ultralytics/utils/ops.py,sha256=Jlb0YBkN_SMVT2AjKPEjxgOtgnj7i7HTBh9FEwpoprU,33509
|
|
206
206
|
ultralytics/utils/patches.py,sha256=SgMqeMsq2K6JoBJP1NplXMl9C6rK0JeJUChjBrJOneo,2750
|
|
207
|
-
ultralytics/utils/plotting.py,sha256=
|
|
207
|
+
ultralytics/utils/plotting.py,sha256=icSUqsmJLpeXyVAIt8vxpbrxTe40mwiF5ay4el3IXl0,55584
|
|
208
208
|
ultralytics/utils/tal.py,sha256=xuIyryUjaaYHkHPG9GvBwh1xxN2Hq4y3hXOtuERehwY,16017
|
|
209
209
|
ultralytics/utils/torch_utils.py,sha256=uuiXENrjF8a0PydZRfdp3bQ4oQZ9FyERXXfqGyXLCg0,27713
|
|
210
210
|
ultralytics/utils/triton.py,sha256=gg1finxno_tY2Ge9PMhmu7PI9wvoFZoiicdT4Bhqv3w,3936
|
|
@@ -220,9 +220,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=5Z3ua5YBTUS56FH8VQKQG1aaIo9fH8GEyz
|
|
|
220
220
|
ultralytics/utils/callbacks/raytune.py,sha256=ODVYzy-CoM4Uge0zjkh3Hnh9nF2M0vhDrSenXnvcizw,705
|
|
221
221
|
ultralytics/utils/callbacks/tensorboard.py,sha256=QEgOVhUqY9akOs5TJIwz1Rvn6l32xWLpOxlwEyWF0B8,4136
|
|
222
222
|
ultralytics/utils/callbacks/wb.py,sha256=9-fjQIdLjr3b73DTE3rHO171KvbH1VweJ-bmbv-rqTw,6747
|
|
223
|
-
ultralytics-8.2.
|
|
224
|
-
ultralytics-8.2.
|
|
225
|
-
ultralytics-8.2.
|
|
226
|
-
ultralytics-8.2.
|
|
227
|
-
ultralytics-8.2.
|
|
228
|
-
ultralytics-8.2.
|
|
223
|
+
ultralytics-8.2.53.dist-info/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
|
|
224
|
+
ultralytics-8.2.53.dist-info/METADATA,sha256=9jxWIong0zNd04Gd2rvhQGDx7oYTgbMkrw5jbBCgsVY,41217
|
|
225
|
+
ultralytics-8.2.53.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
|
|
226
|
+
ultralytics-8.2.53.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
|
|
227
|
+
ultralytics-8.2.53.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
|
|
228
|
+
ultralytics-8.2.53.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|