参考资料 ultralytics/data/utils.py
备注
该文件可从https://github.com/ultralytics/ultralytics/blob/main/ ultralytics/data/utils .py 获取。如果您发现问题,请通过提交 Pull Request🛠️ 帮助修复。谢谢🙏!
ultralytics.data.utils.HUBDatasetStats
用于生成 HUB 数据集 JSON 和 -hub
数据集目录。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
path |
str
|
data.yaml 或 data.zip 的路径(data.yaml 位于 data.zip 内)。默认为 "coco8.yaml"。 |
'coco8.yaml'
|
task |
str
|
数据集任务。选项包括 "检测"、"分割"、"摆放 "和 "分类"。默认为 "检测"。 |
'detect'
|
autodownload |
bool
|
如果在本地找不到数据集,则尝试下载。默认为 "假"。 |
False
|
示例
从 https://github.com/ultralytics/hub/tree/main/example_datasets 下载 *.zip 文件 即 https://github.com/ultralytics/hub/raw/main/example_datasets/coco8.zip 为 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()
源代码 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)
初始化类。
源代码 ultralytics/data/utils.py
get_json(save=False, verbose=False)
返回Ultralytics HUB 的数据集 JSON。
源代码 ultralytics/data/utils.py
process_images()
为Ultralytics HUB 压缩图像。
源代码 ultralytics/data/utils.py
ultralytics.data.utils.img2label_paths(img_paths)
将标签路径定义为图像路径的函数。
源代码 ultralytics/data/utils.py
ultralytics.data.utils.get_hash(paths)
返回路径(文件或目录)列表的单个哈希值。
源代码 ultralytics/data/utils.py
ultralytics.data.utils.exif_size(img)
返回经 exif 校正的 PIL 尺寸。
源代码 ultralytics/data/utils.py
ultralytics.data.utils.verify_image(args)
验证一个图像。
源代码 ultralytics/data/utils.py
ultralytics.data.utils.verify_image_label(args)
验证一对图像-标签。
源代码 ultralytics/data/utils.py
ultralytics.data.utils.polygon2mask(imgsz, polygons, color=1, downsample_ratio=1)
将多边形列表转换为指定图像大小的二进制掩码。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
imgsz |
tuple
|
图像的大小(高、宽)。 |
所需 |
polygons |
list[ndarray]
|
多边形列表。每个多边形都是一个形状为 [N, M] 的数组,其中 N 是多边形的数量,M 是 M % 2 = 0 的点的数量。 |
所需 |
color |
int
|
填充遮罩上多边形的颜色值。默认为 1。 |
1
|
downsample_ratio |
int
|
对掩码进行下采样的因子。默认为 1。 |
1
|
返回:
类型 | 说明 |
---|---|
ndarray
|
指定图像大小的二进制掩码,并填充多边形。 |
源代码 ultralytics/data/utils.py
ultralytics.data.utils.polygons2masks(imgsz, polygons, color, downsample_ratio=1)
将多边形列表转换为一组指定图像大小的二进制掩码。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
imgsz |
tuple
|
图像的大小(高、宽)。 |
所需 |
polygons |
list[ndarray]
|
多边形列表。每个多边形都是一个形状为 [N, M] 的数组,其中 N 是多边形的数量,M 是 M % 2 = 0 的点的数量。 |
所需 |
color |
int
|
填充遮罩上多边形的颜色值。 |
所需 |
downsample_ratio |
int
|
对每个掩码进行下采样的因子。默认为 1。 |
1
|
返回:
类型 | 说明 |
---|---|
ndarray
|
一组指定图像大小的二进制掩码,其中的多边形已填充。 |
源代码 ultralytics/data/utils.py
ultralytics.data.utils.polygons2masks_overlap(imgsz, segments, downsample_ratio=1)
返回 (640, 640) 重叠掩码。
源代码 ultralytics/data/utils.py
ultralytics.data.utils.find_dataset_yaml(path)
查找并返回与 Detect、Segment 或 Pose 数据集相关的 YAML 文件。
该函数首先在所提供目录的根目录下搜索 YAML 文件,如果未找到,则 则执行递归搜索。它会优先选择与所提供路径具有相同词干的 YAML 文件。如果没有 YAML 文件 会引发一个 AssertionError。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
path |
Path
|
搜索 YAML 文件的目录路径。 |
所需 |
返回:
类型 | 说明 |
---|---|
Path
|
找到的 YAML 文件的路径。 |
源代码 ultralytics/data/utils.py
ultralytics.data.utils.check_det_dataset(dataset, autodownload=True)
下载、验证和/或解压缩数据集(如果在本地找不到)。
该函数检查指定数据集的可用性,如果未找到,则可选择下载并解压缩。 解压缩数据集。然后,它会读取并解析附带的 YAML 数据,确保满足关键要求,并 解析与数据集相关的路径。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
dataset |
str
|
数据集或数据集描述符(如 YAML 文件)的路径。 |
所需 |
autodownload |
bool
|
如果未找到数据集,是否自动下载。默认为 True。 |
True
|
返回:
类型 | 说明 |
---|---|
dict
|
解析的数据集信息和路径。 |
源代码 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='')
检查分类数据集,如 Imagenet。
该函数接受一个 dataset
名称,并尝试检索相应的数据集信息。
如果本地找不到数据集,则会尝试从互联网下载数据集并保存到本地。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
dataset |
str | Path
|
数据集的名称。 |
所需 |
split |
str
|
数据集的分割。可以是 "val"、"test "或""。默认为''。 |
''
|
返回:
类型 | 说明 |
---|---|
dict
|
包含以下键值的字典: - train"(路径):包含数据集训练集的目录路径。 - val'(路径):包含数据集验证集的目录路径:包含数据集验证集的目录路径。 - test'(路径):包含测试集的目录路径:包含数据集测试集的目录路径。 - nc'(整数):数据集中的类的数量。 - names'(dict):数据集中的类名字典:数据集中的类名字典。 |
源代码 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)
使用Python Imaging Library (PIL) 或 OpenCV 库将单个图像文件压缩至更小尺寸,同时保留其纵横比和质量。如果输入图像小于最大尺寸,则不会被调整大小。 调整大小。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
f |
str
|
输入图像文件的路径。 |
所需 |
f_new |
str
|
输出图像文件的路径。如果未指定,输入文件将被覆盖。 |
None
|
max_dim |
int
|
输出图像的最大尺寸(宽度或高度)。默认为 1920 像素。 |
1920
|
quality |
int
|
图像压缩质量的百分比。默认为 50%。 |
50
|
示例
源代码 ultralytics/data/utils.py
ultralytics.data.utils.autosplit(path=DATASETS_DIR / 'coco8/images', weights=(0.9, 0.1, 0.0), annotated_only=False)
自动将数据集拆分为训练/评估/测试拆分,并将生成的拆分结果保存到 autosplit_*.txt 文件中。
参数
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
path |
Path
|
图像目录路径。默认为 DATASETS_DIR / 'coco8/images'。 |
DATASETS_DIR / 'coco8/images'
|
weights |
list | tuple
|
训练、验证和测试分割分数。默认为(0.9, 0.1, 0.0)。 |
(0.9, 0.1, 0.0)
|
annotated_only |
bool
|
如果为 True,则只使用带有相关 txt 文件的图像。默认为 "假"。 |
False
|
源代码 ultralytics/data/utils.py
ultralytics.data.utils.load_dataset_cache_file(path)
从路径加载Ultralytics *.cache 字典。
源代码 ultralytics/data/utils.py
ultralytics.data.utils.save_dataset_cache_file(prefix, path, x, version)
将Ultralytics 数据集 *.cache dictionary x 保存到路径。