Referentie voor ultralytics/data/utils.py
Opmerking
Dit bestand is beschikbaar op https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/data/utils .py. Als je een probleem ziet, help het dan oplossen door een Pull Request 🛠️ bij te dragen. Bedankt 🙏!
ultralytics.data.utils.HUBDatasetStats
Een klasse voor het genereren van HUB dataset JSON en -hub
dataset map.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
path |
str
|
Pad naar data.yaml of data.zip (met data.yaml in data.zip). Standaard is 'coco8.yaml'. |
'coco8.yaml'
|
task |
str
|
Dataset taak. Opties zijn 'detecteren', 'segmenteren', 'poseren', 'classificeren'. De standaardinstelling is 'detecteren'. |
'detect'
|
autodownload |
bool
|
Probeer dataset te downloaden als deze niet lokaal wordt gevonden. Standaard is Vals. |
False
|
Voorbeeld
Download *.zip bestanden van https://github.com/ultralytics/hub/tree/main/example_datasets bijvoorbeeld https://github.com/ultralytics/hub/raw/main/example_datasets/coco8.zip voor coco8.zip.
from ultralytics.data.utils import HUBDatasetStats
stats = HUBDatasetStats('path/to/coco8.zip', task='detect') # detect dataset
stats = HUBDatasetStats('path/to/coco8-seg.zip', task='segment') # segment dataset
stats = HUBDatasetStats('path/to/coco8-pose.zip', task='pose') # pose dataset
stats = HUBDatasetStats('path/to/dota8.zip', task='obb') # OBB dataset
stats = HUBDatasetStats('path/to/imagenet10.zip', task='classify') # classification dataset
stats.get_json(save=True)
stats.process_images()
Broncode in ultralytics/data/utils.py
426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 |
|
__init__(path='coco8.yaml', task='detect', autodownload=False)
Klasse initialiseren.
Broncode in ultralytics/data/utils.py
get_json(save=False, verbose=False)
Geef dataset JSON terug voor Ultralytics HUB.
Broncode in ultralytics/data/utils.py
process_images()
Afbeeldingen comprimeren voor Ultralytics HUB.
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.img2label_paths(img_paths)
Definieer labelpaden als een functie van afbeeldingspaden.
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.get_hash(paths)
Geeft een enkele hashwaarde van een lijst met paden (bestanden of dirs).
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.exif_size(img)
Geeft de exif-gecorrigeerde PIL-grootte.
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.verify_image(args)
Controleer één afbeelding.
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.verify_image_label(args)
Controleer één afbeelding-labelpaar.
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.polygon2mask(imgsz, polygons, color=1, downsample_ratio=1)
Converteer een lijst met veelhoeken naar een binair masker van de opgegeven afbeeldingsgrootte.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
imgsz |
tuple
|
De grootte van de afbeelding als (hoogte, breedte). |
vereist |
polygons |
list[ndarray]
|
Een lijst van veelhoeken. Elke veelhoek is een matrix met de vorm [N, M], waarbij N het aantal veelhoeken is en M het aantal punten zodat M % 2 = 0. |
vereist |
color |
int
|
De kleurwaarde om de polygonen op het masker in te vullen. Standaard ingesteld op 1. |
1
|
downsample_ratio |
int
|
Factor waarmee het masker wordt gedownsampled. Standaard 1. |
1
|
Retourneert:
Type | Beschrijving |
---|---|
ndarray
|
Een binair masker van de opgegeven afbeeldingsgrootte met de polygonen ingevuld. |
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.polygons2masks(imgsz, polygons, color, downsample_ratio=1)
Converteer een lijst met veelhoeken naar een verzameling binaire maskers van de opgegeven afbeeldingsgrootte.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
imgsz |
tuple
|
De grootte van de afbeelding als (hoogte, breedte). |
vereist |
polygons |
list[ndarray]
|
Een lijst van veelhoeken. Elke veelhoek is een matrix met de vorm [N, M], waarbij N het aantal veelhoeken is en M het aantal punten zodat M % 2 = 0. |
vereist |
color |
int
|
De kleurwaarde om de polygonen op de maskers in te vullen. |
vereist |
downsample_ratio |
int
|
Factor waarmee elk masker wordt gedownsampled. Standaard 1. |
1
|
Retourneert:
Type | Beschrijving |
---|---|
ndarray
|
Een verzameling binaire maskers van de opgegeven afbeeldingsgrootte met de polygonen ingevuld. |
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.polygons2masks_overlap(imgsz, segments, downsample_ratio=1)
Geeft een (640, 640) overlappingsmasker.
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.find_dataset_yaml(path)
Zoek en retourneer het YAML-bestand dat hoort bij een Detect, Segment of Pose dataset.
Deze functie zoekt eerst naar een YAML-bestand op het hoofdniveau van de opgegeven map en als dat niet wordt gevonden, wordt er een recursieve zoekopdracht uit. De voorkeur gaat uit naar YAML-bestanden die dezelfde stam hebben als het opgegeven pad. Een AssertionError als er geen YAML-bestand wordt gevonden of als er meerdere YAML-bestanden worden gevonden.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
path |
Path
|
Het directorypad om het YAML-bestand te zoeken. |
vereist |
Retourneert:
Type | Beschrijving |
---|---|
Path
|
Het pad van het gevonden YAML-bestand. |
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.check_det_dataset(dataset, autodownload=True)
Download, controleer en/of pak een dataset uit als deze niet lokaal wordt gevonden.
Deze functie controleert de beschikbaarheid van een gespecificeerde dataset, en als deze niet wordt gevonden, is er de optie om de dataset te downloaden en de dataset te downloaden en uit te pakken. Vervolgens worden de begeleidende YAML-gegevens gelezen en geparseerd, waarbij wordt gecontroleerd of aan de belangrijkste eisen wordt voldaan en ook paden gerelateerd aan de dataset op te lossen.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
dataset |
str
|
Pad naar de dataset of dataset descriptor (zoals een YAML-bestand). |
vereist |
autodownload |
bool
|
Of de dataset automatisch gedownload moet worden als hij niet gevonden wordt. Standaard ingesteld op True. |
True
|
Retourneert:
Type | Beschrijving |
---|---|
dict
|
Geparsetteerde datasetinformatie en paden. |
Broncode in ultralytics/data/utils.py
253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 |
|
ultralytics.data.utils.check_cls_dataset(dataset, split='')
Controleert een classificatie dataset zoals Imagenet.
Deze functie accepteert een dataset
naam en probeert de bijbehorende datasetinformatie op te halen.
Als de dataset niet lokaal wordt gevonden, wordt geprobeerd de dataset van internet te downloaden en lokaal op te slaan.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
dataset |
str | Path
|
De naam van de dataset. |
vereist |
split |
str
|
De splitsing van de dataset. Ofwel 'val', 'test', of ''. Standaard wordt '' gebruikt. |
''
|
Retourneert:
Type | Beschrijving |
---|---|
dict
|
Een woordenboek met de volgende sleutels: - 'train' (pad): Het directorypad met de trainingsset van de dataset. - 'val' (Pad): Het mappad met de validatieset van de dataset. - test" (Pad): Het mappad met de testset van de dataset. - 'nc' (int): Het aantal klassen in de dataset. - 'names' (dict): Een woordenboek met klassennamen in de dataset. |
Broncode in ultralytics/data/utils.py
347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 |
|
ultralytics.data.utils.compress_one_image(f, f_new=None, max_dim=1920, quality=50)
Comprimeert een enkel afbeeldingsbestand tot een kleiner formaat met behoud van de beeldverhouding en kwaliteit met behulp van de Python Imaging Library (PIL) of OpenCV library. Als de ingevoerde afbeelding kleiner is dan de maximale afmeting, wordt deze niet verkleind.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
f |
str
|
Het pad naar het afbeeldingsbestand. |
vereist |
f_new |
str
|
Het pad naar het uitvoerafbeeldingsbestand. Als dit niet wordt opgegeven, wordt het invoerbestand overschreven. |
None
|
max_dim |
int
|
De maximale afmeting (breedte of hoogte) van de uitvoerafbeelding. Standaard is dit 1920 pixels. |
1920
|
quality |
int
|
De compressiekwaliteit van de afbeelding als percentage. De standaardwaarde is 50%. |
50
|
Voorbeeld
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.autosplit(path=DATASETS_DIR / 'coco8/images', weights=(0.9, 0.1, 0.0), annotated_only=False)
Automatisch een dataset splitsen in train/val/test splitsingen en de resulterende splitsingen opslaan in autosplit_*.txt bestanden.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
path |
Path
|
Pad naar map met afbeeldingen. Standaard DATASETS_DIR / 'coco8/images'. |
DATASETS_DIR / 'coco8/images'
|
weights |
list | tuple
|
Train-, validatie- en testsplitfracties. Standaard ingesteld op (0,9, 0,1, 0,0). |
(0.9, 0.1, 0.0)
|
annotated_only |
bool
|
Als dit Waar is, worden alleen afbeeldingen met een bijbehorend txt-bestand gebruikt. Staat standaard op Onwaar. |
False
|
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.load_dataset_cache_file(path)
Laad een Ultralytics *.cache woordenboek vanaf een pad.
Broncode in ultralytics/data/utils.py
ultralytics.data.utils.save_dataset_cache_file(prefix, path, x, version)
Sla een Ultralytics dataset *.cache dictionary x op in een pad.