Referência para ultralytics/data/utils.py
Nota
Este ficheiro está disponível em https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/data/utils .py. Se detectares um problema, por favor ajuda a corrigi-lo contribuindo com um Pull Request 🛠️. Obrigado 🙏!
ultralytics.data.utils.HUBDatasetStats
Uma classe para gerar o conjunto de dados HUB JSON e -hub
diretório do conjunto de dados.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
path |
str
|
Caminho para data.yaml ou data.zip (com data.yaml dentro de data.zip). A predefinição é 'coco8.yaml'. |
'coco8.yaml'
|
task |
str
|
Tarefa do conjunto de dados. As opções são 'detetar', 'segmentar', 'posar', 'classificar'. A predefinição é 'detetar'. |
'detect'
|
autodownload |
bool
|
Tenta descarregar o conjunto de dados se não for encontrado localmente. A predefinição é Falso. |
False
|
Exemplo
Transfere ficheiros *.zip de https://github.com/ultralytics/hub/tree/main/example_datasets Ou seja, https://github.com/ultralytics/hub/raw/main/example_datasets/coco8.zip para 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()
Código fonte em 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)
Inicializa a classe.
Código fonte em ultralytics/data/utils.py
get_json(save=False, verbose=False)
Devolve o conjunto de dados JSON para Ultralytics HUB.
Código fonte em ultralytics/data/utils.py
process_images()
Comprime imagens para Ultralytics HUB.
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.img2label_paths(img_paths)
Define percursos de etiquetas como uma função de percursos de imagem.
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.get_hash(paths)
Devolve um único valor de hash de uma lista de caminhos (ficheiros ou dirs).
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.exif_size(img)
Devolve o tamanho do PIL corrigido pelo exif.
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.verify_image(args)
Verifica uma imagem.
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.verify_image_label(args)
Verifica um par imagem-rótulo.
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.polygon2mask(imgsz, polygons, color=1, downsample_ratio=1)
Converte uma lista de polígonos para uma máscara binária do tamanho de imagem especificado.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
imgsz |
tuple
|
O tamanho da imagem como (altura, largura). |
necessário |
polygons |
list[ndarray]
|
Uma lista de polígonos. Cada polígono é uma matriz com a forma [N, M], em que N é o número de polígonos, e M é o número de pontos tais que M % 2 = 0. |
necessário |
color |
int
|
O valor da cor para preencher os polígonos na máscara. O valor predefinido é 1. |
1
|
downsample_ratio |
int
|
Fator pelo qual reduz a amostragem da máscara. O valor predefinido é 1. |
1
|
Devolve:
Tipo | Descrição |
---|---|
ndarray
|
Uma máscara binária do tamanho de imagem especificado com os polígonos preenchidos. |
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.polygons2masks(imgsz, polygons, color, downsample_ratio=1)
Converte uma lista de polígonos para um conjunto de máscaras binárias do tamanho de imagem especificado.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
imgsz |
tuple
|
O tamanho da imagem como (altura, largura). |
necessário |
polygons |
list[ndarray]
|
Uma lista de polígonos. Cada polígono é uma matriz com a forma [N, M], em que N é o número de polígonos, e M é o número de pontos tais que M % 2 = 0. |
necessário |
color |
int
|
O valor da cor para preencher os polígonos nas máscaras. |
necessário |
downsample_ratio |
int
|
Fator pelo qual reduz a amostragem de cada máscara. O valor predefinido é 1. |
1
|
Devolve:
Tipo | Descrição |
---|---|
ndarray
|
Um conjunto de máscaras binárias do tamanho de imagem especificado com os polígonos preenchidos. |
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.polygons2masks_overlap(imgsz, segments, downsample_ratio=1)
Devolve uma máscara de sobreposição (640, 640).
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.find_dataset_yaml(path)
Procura e devolve o ficheiro YAML associado a um conjunto de dados Detect, Segment ou Pose.
Esta função procura primeiro um ficheiro YAML no nível da raiz do diretório fornecido e, se não for encontrado, executa uma pesquisa recursiva. executa uma pesquisa recursiva. Dá preferência a ficheiros YAML que tenham o mesmo caule que o caminho fornecido. Um AssertionError é gerado se nenhum arquivo YAML for encontrado ou se vários arquivos YAML forem encontrados.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
path |
Path
|
O caminho do diretório para procurar o ficheiro YAML. |
necessário |
Devolve:
Tipo | Descrição |
---|---|
Path
|
O caminho do ficheiro YAML encontrado. |
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.check_det_dataset(dataset, autodownload=True)
Descarrega, verifica e/ou descompacta um conjunto de dados se não for encontrado localmente.
Esta função verifica a disponibilidade de um conjunto de dados especificado e, se não for encontrado, tem a opção de descarregar e descompacta o conjunto de dados. Em seguida, lê e analisa os dados YAML que o acompanham, garantindo que os principais requisitos são cumpridos e também resolve os caminhos relacionados com o conjunto de dados.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
dataset |
str
|
Caminho para o conjunto de dados ou descritor de conjunto de dados (como um ficheiro YAML). |
necessário |
autodownload |
bool
|
Se queres descarregar automaticamente o conjunto de dados se não for encontrado. Usa a predefinição True. |
True
|
Devolve:
Tipo | Descrição |
---|---|
dict
|
Analisa as informações e os caminhos do conjunto de dados. |
Código fonte em 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='')
Verifica um conjunto de dados de classificação como o Imagenet.
Esta função aceita um dataset
e tenta obter a informação do conjunto de dados correspondente.
Se o conjunto de dados não for encontrado localmente, tenta descarregar o conjunto de dados da Internet e guardá-lo localmente.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
dataset |
str | Path
|
O nome do conjunto de dados. |
necessário |
split |
str
|
A divisão do conjunto de dados. Escolhe entre 'val', 'test' ou ''. A predefinição é ''. |
''
|
Devolve:
Tipo | Descrição |
---|---|
dict
|
Um dicionário que contém as seguintes chaves: - 'train' (Caminho): O caminho do diretório que contém o conjunto de treinamento do conjunto de dados. - 'val' (Caminho): O caminho do diretório que contém o conjunto de validação do conjunto de dados. - "test" (Caminho): O caminho do diretório que contém o conjunto de teste do conjunto de dados. - 'nc' (int): O número de classes no conjunto de dados. - 'names' (dict): Um dicionário de nomes de classes no conjunto de dados. |
Código fonte em 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)
Comprime um único ficheiro de imagem para um tamanho reduzido, preservando a sua relação de aspeto e qualidade, utilizando a biblioteca Python Imaging Library (PIL) ou a biblioteca OpenCV. Se a imagem de entrada for menor que a dimensão máxima, ela não será redimensionada.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
f |
str
|
O caminho para o ficheiro de imagem de entrada. |
necessário |
f_new |
str
|
O caminho para o ficheiro de imagem de saída. Se não for especificado, o ficheiro de entrada será substituído. |
None
|
max_dim |
int
|
A dimensão máxima (largura ou altura) da imagem de saída. A predefinição é 1920 pixéis. |
1920
|
quality |
int
|
A qualidade de compressão da imagem como uma percentagem. A predefinição é 50%. |
50
|
Exemplo
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.autosplit(path=DATASETS_DIR / 'coco8/images', weights=(0.9, 0.1, 0.0), annotated_only=False)
Divide automaticamente um conjunto de dados em divisões train/val/test e guarda as divisões resultantes em ficheiros autosplit_*.txt.
Parâmetros:
Nome | Tipo | Descrição | Predefinição |
---|---|---|---|
path |
Path
|
Caminho para o diretório de imagens. A predefinição é DATASETS_DIR / 'coco8/images'. |
DATASETS_DIR / 'coco8/images'
|
weights |
list | tuple
|
Treina, valida e testa as fracções de divisão. Usa como padrão (0,9, 0,1, 0,0). |
(0.9, 0.1, 0.0)
|
annotated_only |
bool
|
Se for True, só são utilizadas imagens com um ficheiro txt associado. A predefinição é Falso. |
False
|
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.load_dataset_cache_file(path)
Carrega um dicionário Ultralytics *.cache a partir do caminho.
Código fonte em ultralytics/data/utils.py
ultralytics.data.utils.save_dataset_cache_file(prefix, path, x, version)
Guarda um conjunto de dados Ultralytics *.cache dictionary x no caminho.
Código fonte em ultralytics/data/utils.py
Criado em 2023-11-12, Atualizado em 2024-05-08
Autores: Burhan-Q (1), Laughing-q (1), glenn-jocher (3)