dgenerate-ultralytics-headless 8.4.5__tar.gz → 8.4.7__tar.gz

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 (316) hide show
  1. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/PKG-INFO +3 -3
  2. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +3 -3
  3. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +1 -0
  4. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/dgenerate_ultralytics_headless.egg-info/requires.txt +2 -2
  5. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/pyproject.toml +2 -2
  6. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/tests/test_python.py +27 -2
  7. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/__init__.py +1 -1
  8. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/__init__.py +4 -4
  9. dgenerate_ultralytics_headless-8.4.7/ultralytics/cfg/datasets/coco12-formats.yaml +101 -0
  10. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/default.yaml +1 -1
  11. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/augment.py +8 -0
  12. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/converter.py +21 -9
  13. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/utils.py +2 -2
  14. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/engine/trainer.py +3 -1
  15. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/detect/train.py +5 -3
  16. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/trackers/byte_tracker.py +7 -7
  17. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/platform.py +2 -1
  18. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/wb.py +6 -1
  19. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/dist.py +1 -0
  20. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/loss.py +14 -4
  21. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/patches.py +42 -0
  22. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/LICENSE +0 -0
  23. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/README.md +0 -0
  24. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
  25. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
  26. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
  27. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/setup.cfg +0 -0
  28. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/tests/__init__.py +0 -0
  29. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/tests/conftest.py +0 -0
  30. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/tests/test_cli.py +0 -0
  31. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/tests/test_cuda.py +0 -0
  32. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/tests/test_engine.py +0 -0
  33. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/tests/test_exports.py +0 -0
  34. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/tests/test_integrations.py +0 -0
  35. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/tests/test_solutions.py +0 -0
  36. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/assets/bus.jpg +0 -0
  37. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/assets/zidane.jpg +0 -0
  38. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  39. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  40. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  41. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  42. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  43. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  44. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  45. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  46. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/TT100K.yaml +0 -0
  47. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  48. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  49. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  50. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  51. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  52. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  53. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/coco.yaml +0 -0
  54. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  55. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  56. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  57. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  58. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  59. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  60. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  61. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
  62. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  63. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  64. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  65. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  66. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  67. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/kitti.yaml +0 -0
  68. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  69. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  70. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  71. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  72. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/signature.yaml +0 -0
  73. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  74. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/datasets/xView.yaml +0 -0
  75. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  76. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  77. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  78. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  79. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  80. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  81. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  82. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  83. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  84. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  85. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  86. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  87. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  88. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/26/yolo26-cls.yaml +0 -0
  89. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/26/yolo26-obb.yaml +0 -0
  90. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/26/yolo26-p2.yaml +0 -0
  91. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/26/yolo26-p6.yaml +0 -0
  92. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/26/yolo26-pose.yaml +0 -0
  93. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/26/yolo26-seg.yaml +0 -0
  94. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/26/yolo26.yaml +0 -0
  95. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/26/yoloe-26-seg.yaml +0 -0
  96. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/26/yoloe-26.yaml +0 -0
  97. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  98. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  99. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  100. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  101. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  102. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  103. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  104. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  105. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  106. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  107. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  108. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  109. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  110. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  111. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  112. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  113. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  114. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  115. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  116. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  117. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  118. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  119. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  120. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  121. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  122. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  123. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  124. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  125. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  126. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  127. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  128. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  129. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  130. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  131. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  132. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  133. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  134. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  135. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  136. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  137. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  138. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  139. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  140. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  141. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/__init__.py +0 -0
  142. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/annotator.py +0 -0
  143. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/base.py +0 -0
  144. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/build.py +0 -0
  145. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/dataset.py +0 -0
  146. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/loaders.py +0 -0
  147. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/scripts/download_weights.sh +0 -0
  148. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/scripts/get_coco.sh +0 -0
  149. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/scripts/get_coco128.sh +0 -0
  150. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  151. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/split.py +0 -0
  152. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/data/split_dota.py +0 -0
  153. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/engine/__init__.py +0 -0
  154. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/engine/exporter.py +0 -0
  155. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/engine/model.py +0 -0
  156. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/engine/predictor.py +0 -0
  157. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/engine/results.py +0 -0
  158. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/engine/tuner.py +0 -0
  159. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/engine/validator.py +0 -0
  160. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/hub/__init__.py +0 -0
  161. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/hub/auth.py +0 -0
  162. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/hub/google/__init__.py +0 -0
  163. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/hub/session.py +0 -0
  164. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/hub/utils.py +0 -0
  165. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/__init__.py +0 -0
  166. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/fastsam/__init__.py +0 -0
  167. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/fastsam/model.py +0 -0
  168. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/fastsam/predict.py +0 -0
  169. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/fastsam/utils.py +0 -0
  170. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/fastsam/val.py +0 -0
  171. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/nas/__init__.py +0 -0
  172. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/nas/model.py +0 -0
  173. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/nas/predict.py +0 -0
  174. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/nas/val.py +0 -0
  175. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/rtdetr/__init__.py +0 -0
  176. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/rtdetr/model.py +0 -0
  177. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/rtdetr/predict.py +0 -0
  178. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/rtdetr/train.py +0 -0
  179. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/rtdetr/val.py +0 -0
  180. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/__init__.py +0 -0
  181. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/amg.py +0 -0
  182. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/build.py +0 -0
  183. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/build_sam3.py +0 -0
  184. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/model.py +0 -0
  185. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/modules/__init__.py +0 -0
  186. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/modules/blocks.py +0 -0
  187. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/modules/decoders.py +0 -0
  188. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/modules/encoders.py +0 -0
  189. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  190. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/modules/sam.py +0 -0
  191. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  192. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/modules/transformer.py +0 -0
  193. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/modules/utils.py +0 -0
  194. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/predict.py +0 -0
  195. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/__init__.py +0 -0
  196. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/decoder.py +0 -0
  197. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/encoder.py +0 -0
  198. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/geometry_encoders.py +0 -0
  199. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/maskformer_segmentation.py +0 -0
  200. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/model_misc.py +0 -0
  201. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/necks.py +0 -0
  202. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/sam3_image.py +0 -0
  203. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/text_encoder_ve.py +0 -0
  204. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/vitdet.py +0 -0
  205. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/sam/sam3/vl_combiner.py +0 -0
  206. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/utils/__init__.py +0 -0
  207. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/utils/loss.py +0 -0
  208. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/utils/ops.py +0 -0
  209. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/__init__.py +0 -0
  210. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/classify/__init__.py +0 -0
  211. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/classify/predict.py +0 -0
  212. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/classify/train.py +0 -0
  213. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/classify/val.py +0 -0
  214. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/detect/__init__.py +0 -0
  215. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/detect/predict.py +0 -0
  216. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/detect/val.py +0 -0
  217. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/model.py +0 -0
  218. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/obb/__init__.py +0 -0
  219. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/obb/predict.py +0 -0
  220. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/obb/train.py +0 -0
  221. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/obb/val.py +0 -0
  222. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/pose/__init__.py +0 -0
  223. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/pose/predict.py +0 -0
  224. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/pose/train.py +0 -0
  225. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/pose/val.py +0 -0
  226. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/segment/__init__.py +0 -0
  227. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/segment/predict.py +0 -0
  228. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/segment/train.py +0 -0
  229. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/segment/val.py +0 -0
  230. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/world/__init__.py +0 -0
  231. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/world/train.py +0 -0
  232. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/world/train_world.py +0 -0
  233. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  234. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  235. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/yoloe/train.py +0 -0
  236. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  237. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/models/yolo/yoloe/val.py +0 -0
  238. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/__init__.py +0 -0
  239. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/autobackend.py +0 -0
  240. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/modules/__init__.py +0 -0
  241. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/modules/activation.py +0 -0
  242. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/modules/block.py +0 -0
  243. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/modules/conv.py +0 -0
  244. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/modules/head.py +0 -0
  245. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/modules/transformer.py +0 -0
  246. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/modules/utils.py +0 -0
  247. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/tasks.py +0 -0
  248. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/nn/text_model.py +0 -0
  249. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/optim/__init__.py +0 -0
  250. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/optim/muon.py +0 -0
  251. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/py.typed +0 -0
  252. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/__init__.py +0 -0
  253. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/ai_gym.py +0 -0
  254. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/analytics.py +0 -0
  255. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/config.py +0 -0
  256. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/distance_calculation.py +0 -0
  257. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/heatmap.py +0 -0
  258. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/instance_segmentation.py +0 -0
  259. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/object_blurrer.py +0 -0
  260. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/object_counter.py +0 -0
  261. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/object_cropper.py +0 -0
  262. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/parking_management.py +0 -0
  263. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/queue_management.py +0 -0
  264. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/region_counter.py +0 -0
  265. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/security_alarm.py +0 -0
  266. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/similarity_search.py +0 -0
  267. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/solutions.py +0 -0
  268. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/speed_estimation.py +0 -0
  269. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/streamlit_inference.py +0 -0
  270. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/templates/similarity-search.html +0 -0
  271. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/trackzone.py +0 -0
  272. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/solutions/vision_eye.py +0 -0
  273. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/trackers/__init__.py +0 -0
  274. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/trackers/basetrack.py +0 -0
  275. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/trackers/bot_sort.py +0 -0
  276. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/trackers/track.py +0 -0
  277. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/trackers/utils/__init__.py +0 -0
  278. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/trackers/utils/gmc.py +0 -0
  279. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  280. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/trackers/utils/matching.py +0 -0
  281. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/__init__.py +0 -0
  282. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/autobatch.py +0 -0
  283. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/autodevice.py +0 -0
  284. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/benchmarks.py +0 -0
  285. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/__init__.py +0 -0
  286. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/base.py +0 -0
  287. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/clearml.py +0 -0
  288. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/comet.py +0 -0
  289. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/dvc.py +0 -0
  290. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/hub.py +0 -0
  291. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/mlflow.py +0 -0
  292. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/neptune.py +0 -0
  293. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/raytune.py +0 -0
  294. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  295. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/checks.py +0 -0
  296. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/cpu.py +0 -0
  297. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/downloads.py +0 -0
  298. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/errors.py +0 -0
  299. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/events.py +0 -0
  300. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/export/__init__.py +0 -0
  301. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/export/engine.py +0 -0
  302. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/export/imx.py +0 -0
  303. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/export/tensorflow.py +0 -0
  304. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/files.py +0 -0
  305. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/git.py +0 -0
  306. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/instance.py +0 -0
  307. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/logger.py +0 -0
  308. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/metrics.py +0 -0
  309. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/nms.py +0 -0
  310. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/ops.py +0 -0
  311. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/plotting.py +0 -0
  312. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/tal.py +0 -0
  313. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/torch_utils.py +0 -0
  314. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/tqdm.py +0 -0
  315. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/triton.py +0 -0
  316. {dgenerate_ultralytics_headless-8.4.5 → dgenerate_ultralytics_headless-8.4.7}/ultralytics/utils/tuner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.4.5
3
+ Version: 8.4.7
4
4
  Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -39,8 +39,8 @@ Requires-Dist: pillow>=7.1.2
39
39
  Requires-Dist: pyyaml>=5.3.1
40
40
  Requires-Dist: requests>=2.23.0
41
41
  Requires-Dist: scipy>=1.4.1
42
- Requires-Dist: torch>=1.8.0
43
- Requires-Dist: torch!=2.4.0,>=1.8.0; sys_platform == "win32"
42
+ Requires-Dist: torch<2.10,>=1.8.0
43
+ Requires-Dist: torch!=2.4.0,<2.10,>=1.8.0; sys_platform == "win32"
44
44
  Requires-Dist: torchvision>=0.9.0
45
45
  Requires-Dist: psutil>=5.8.0
46
46
  Requires-Dist: polars>=0.20.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.4.5
3
+ Version: 8.4.7
4
4
  Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -39,8 +39,8 @@ Requires-Dist: pillow>=7.1.2
39
39
  Requires-Dist: pyyaml>=5.3.1
40
40
  Requires-Dist: requests>=2.23.0
41
41
  Requires-Dist: scipy>=1.4.1
42
- Requires-Dist: torch>=1.8.0
43
- Requires-Dist: torch!=2.4.0,>=1.8.0; sys_platform == "win32"
42
+ Requires-Dist: torch<2.10,>=1.8.0
43
+ Requires-Dist: torch!=2.4.0,<2.10,>=1.8.0; sys_platform == "win32"
44
44
  Requires-Dist: torchvision>=0.9.0
45
45
  Requires-Dist: psutil>=5.8.0
46
46
  Requires-Dist: polars>=0.20.0
@@ -45,6 +45,7 @@ ultralytics/cfg/datasets/brain-tumor.yaml
45
45
  ultralytics/cfg/datasets/carparts-seg.yaml
46
46
  ultralytics/cfg/datasets/coco-pose.yaml
47
47
  ultralytics/cfg/datasets/coco.yaml
48
+ ultralytics/cfg/datasets/coco12-formats.yaml
48
49
  ultralytics/cfg/datasets/coco128-seg.yaml
49
50
  ultralytics/cfg/datasets/coco128.yaml
50
51
  ultralytics/cfg/datasets/coco8-grayscale.yaml
@@ -5,14 +5,14 @@ pillow>=7.1.2
5
5
  pyyaml>=5.3.1
6
6
  requests>=2.23.0
7
7
  scipy>=1.4.1
8
- torch>=1.8.0
8
+ torch<2.10,>=1.8.0
9
9
  torchvision>=0.9.0
10
10
  psutil>=5.8.0
11
11
  polars>=0.20.0
12
12
  ultralytics-thop>=2.0.18
13
13
 
14
14
  [:sys_platform == "win32"]
15
- torch!=2.4.0,>=1.8.0
15
+ torch!=2.4.0,<2.10,>=1.8.0
16
16
 
17
17
  [dev]
18
18
  ipython
@@ -68,8 +68,8 @@ dependencies = [
68
68
  "pyyaml>=5.3.1",
69
69
  "requests>=2.23.0",
70
70
  "scipy>=1.4.1",
71
- "torch>=1.8.0",
72
- "torch>=1.8.0,!=2.4.0; sys_platform == 'win32'", # Windows CPU errors w/ 2.4.0 https://github.com/ultralytics/ultralytics/issues/15049
71
+ "torch>=1.8.0,<2.10",
72
+ "torch>=1.8.0,<2.10,!=2.4.0; sys_platform == 'win32'", # Windows CPU errors w/ 2.4.0 https://github.com/ultralytics/ultralytics/issues/15049
73
73
  "torchvision>=0.9.0",
74
74
  "psutil>=5.8.0", # system utilization
75
75
  "polars>=0.20.0",
@@ -159,6 +159,30 @@ def test_predict_gray_and_4ch(tmp_path):
159
159
  f.unlink() # cleanup
160
160
 
161
161
 
162
+ @pytest.mark.slow
163
+ @pytest.mark.skipif(not ONLINE, reason="environment is offline")
164
+ def test_predict_all_image_formats():
165
+ """Test YOLO prediction all 12 image formats (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP)."""
166
+ # Download dataset if needed
167
+ data = check_det_dataset("coco12-formats.yaml")
168
+ dataset_path = Path(data["path"])
169
+
170
+ # Collect all images from train and val
171
+ images = list((dataset_path / "images" / "train").glob("*.*"))
172
+ images += list((dataset_path / "images" / "val").glob("*.*"))
173
+ assert len(images) == 12, f"Expected 12 images, found {len(images)}"
174
+
175
+ # Verify all format extensions are represented
176
+ extensions = {img.suffix.lower().lstrip(".") for img in images}
177
+ expected = {"avif", "bmp", "dng", "heic", "jp2", "jpeg", "jpg", "mpo", "png", "tif", "tiff", "webp"}
178
+ assert extensions == expected, f"Missing formats: {expected - extensions}"
179
+
180
+ # Run inference on all images
181
+ model = YOLO(MODEL)
182
+ results = model(images, imgsz=32)
183
+ assert len(results) == 12, f"Expected 12 results, got {len(results)}"
184
+
185
+
162
186
  @pytest.mark.slow
163
187
  @pytest.mark.skipif(not ONLINE, reason="environment is offline")
164
188
  @pytest.mark.skipif(is_github_action_running(), reason="No auth https://github.com/JuanBindez/pytubefix/issues/166")
@@ -209,11 +233,12 @@ def test_val(task: str, weight: str, data: str) -> None:
209
233
  metrics.confusion_matrix.to_json()
210
234
 
211
235
 
236
+ @pytest.mark.skipif(not ONLINE, reason="environment is offline")
212
237
  @pytest.mark.skipif(IS_JETSON or IS_RASPBERRYPI, reason="Edge devices not intended for training")
213
238
  def test_train_scratch():
214
- """Test training the YOLO model from scratch using the provided configuration."""
239
+ """Test training the YOLO model from scratch on 12 different image types in the COCO12-Formats dataset."""
215
240
  model = YOLO(CFG)
216
- model.train(data="coco8.yaml", epochs=2, imgsz=32, cache="disk", batch=-1, close_mosaic=1, name="model")
241
+ model.train(data="coco12-formats.yaml", epochs=2, imgsz=32, cache="disk", batch=-1, close_mosaic=1, name="model")
217
242
  model(SOURCE)
218
243
 
219
244
 
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.4.5"
3
+ __version__ = "8.4.7"
4
4
 
5
5
  import importlib
6
6
  import os
@@ -401,16 +401,16 @@ def get_save_dir(args: SimpleNamespace, name: str | None = None) -> Path:
401
401
  >>> args = SimpleNamespace(project="my_project", task="detect", mode="train", exist_ok=True)
402
402
  >>> save_dir = get_save_dir(args)
403
403
  >>> print(save_dir)
404
- my_project/detect/train
404
+ runs/detect/my_project/train
405
405
  """
406
406
  if getattr(args, "save_dir", None):
407
407
  save_dir = args.save_dir
408
408
  else:
409
409
  from ultralytics.utils.files import increment_path
410
410
 
411
- runs = (ROOT.parent / "tests/tmp/runs" if TESTS_RUNNING else RUNS_DIR) / args.task
412
- nested = args.project and len(Path(args.project).parts) > 1 # e.g. "user/project" or "org\repo"
413
- project = runs / args.project if nested else args.project or runs
411
+ project = args.project or ""
412
+ if not Path(project).is_absolute():
413
+ project = (ROOT.parent / "tests/tmp/runs" if TESTS_RUNNING else RUNS_DIR) / args.task / project
414
414
  name = name or args.name or f"{args.mode}"
415
415
  save_dir = increment_path(Path(project) / name, exist_ok=args.exist_ok if RANK in {-1, 0} else True)
416
416
 
@@ -0,0 +1,101 @@
1
+ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
+
3
+ # COCO12-Formats dataset (12 images testing all supported image formats) by Ultralytics
4
+ # Documentation: https://docs.ultralytics.com/datasets/detect/coco12-formats/
5
+ # Example usage: yolo train data=coco12-formats.yaml
6
+ # parent
7
+ # ├── ultralytics
8
+ # └── datasets
9
+ # └── coco12-formats ← downloads here (1 MB)
10
+
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
+ path: coco12-formats # dataset root dir
13
+ train: images/train # train images (relative to 'path') 6 images
14
+ val: images/val # val images (relative to 'path') 6 images
15
+ test: # test images (optional)
16
+
17
+ # Classes
18
+ names:
19
+ 0: person
20
+ 1: bicycle
21
+ 2: car
22
+ 3: motorcycle
23
+ 4: airplane
24
+ 5: bus
25
+ 6: train
26
+ 7: truck
27
+ 8: boat
28
+ 9: traffic light
29
+ 10: fire hydrant
30
+ 11: stop sign
31
+ 12: parking meter
32
+ 13: bench
33
+ 14: bird
34
+ 15: cat
35
+ 16: dog
36
+ 17: horse
37
+ 18: sheep
38
+ 19: cow
39
+ 20: elephant
40
+ 21: bear
41
+ 22: zebra
42
+ 23: giraffe
43
+ 24: backpack
44
+ 25: umbrella
45
+ 26: handbag
46
+ 27: tie
47
+ 28: suitcase
48
+ 29: frisbee
49
+ 30: skis
50
+ 31: snowboard
51
+ 32: sports ball
52
+ 33: kite
53
+ 34: baseball bat
54
+ 35: baseball glove
55
+ 36: skateboard
56
+ 37: surfboard
57
+ 38: tennis racket
58
+ 39: bottle
59
+ 40: wine glass
60
+ 41: cup
61
+ 42: fork
62
+ 43: knife
63
+ 44: spoon
64
+ 45: bowl
65
+ 46: banana
66
+ 47: apple
67
+ 48: sandwich
68
+ 49: orange
69
+ 50: broccoli
70
+ 51: carrot
71
+ 52: hot dog
72
+ 53: pizza
73
+ 54: donut
74
+ 55: cake
75
+ 56: chair
76
+ 57: couch
77
+ 58: potted plant
78
+ 59: bed
79
+ 60: dining table
80
+ 61: toilet
81
+ 62: tv
82
+ 63: laptop
83
+ 64: mouse
84
+ 65: remote
85
+ 66: keyboard
86
+ 67: cell phone
87
+ 68: microwave
88
+ 69: oven
89
+ 70: toaster
90
+ 71: sink
91
+ 72: refrigerator
92
+ 73: book
93
+ 74: clock
94
+ 75: vase
95
+ 76: scissors
96
+ 77: teddy bear
97
+ 78: hair drier
98
+ 79: toothbrush
99
+
100
+ # Download script/URL (optional)
101
+ download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco12-formats.zip
@@ -36,7 +36,7 @@ amp: True # (bool) Automatic Mixed Precision (AMP) training; True runs AMP capab
36
36
  fraction: 1.0 # (float) fraction of training dataset to use (1.0 = all)
37
37
  profile: False # (bool) profile ONNX/TensorRT speeds during training for loggers
38
38
  freeze: # (int | list, optional) freeze first N layers (int) or specific layer indices (list)
39
- multi_scale: 0.0 # (float) multiscale training by varying image size
39
+ multi_scale: 0.0 # (float) multi-scale range as a fraction of imgsz; sizes are rounded to stride multiples
40
40
  compile: False # (bool | str) enable torch.compile() backend='inductor'; True="default", False=off, or "default|reduce-overhead|max-autotune-no-cudagraphs"
41
41
 
42
42
  # Segmentation
@@ -2066,7 +2066,15 @@ class Format:
2066
2066
  if self.mask_overlap:
2067
2067
  sem_masks = cls_tensor[masks[0].long() - 1] # (H, W) from (1, H, W) instance indices
2068
2068
  else:
2069
+ # Create sem_masks consistent with mask_overlap=True
2069
2070
  sem_masks = (masks * cls_tensor[:, None, None]).max(0).values # (H, W) from (N, H, W) binary
2071
+ overlap = masks.sum(dim=0) > 1 # (H, W)
2072
+ if overlap.any():
2073
+ weights = masks.sum(axis=(1, 2))
2074
+ weighted_masks = masks * weights[:, None, None] # (N, H, W)
2075
+ weighted_masks[masks == 0] = weights.max() + 1 # handle background
2076
+ smallest_idx = weighted_masks.argmin(dim=0) # (H, W)
2077
+ sem_masks[overlap] = cls_tensor[smallest_idx[overlap]]
2070
2078
  else:
2071
2079
  masks = torch.zeros(
2072
2080
  1 if self.mask_overlap else nl, img.shape[0] // self.mask_ratio, img.shape[1] // self.mask_ratio
@@ -838,14 +838,19 @@ async def convert_ndjson_to_yolo(ndjson_path: str | Path, output_path: str | Pat
838
838
  if http_url := record.get("url"):
839
839
  if not image_path.exists():
840
840
  image_path.parent.mkdir(parents=True, exist_ok=True)
841
- try:
842
- async with session.get(http_url, timeout=aiohttp.ClientTimeout(total=30)) as response:
843
- response.raise_for_status()
844
- image_path.write_bytes(await response.read())
845
- return True
846
- except Exception as e:
847
- LOGGER.warning(f"Failed to download {http_url}: {e}")
848
- return False
841
+ # Retry with exponential backoff (3 attempts: 0s, 2s, 4s delays)
842
+ for attempt in range(3):
843
+ try:
844
+ async with session.get(http_url, timeout=aiohttp.ClientTimeout(total=30)) as response:
845
+ response.raise_for_status()
846
+ image_path.write_bytes(await response.read())
847
+ return True
848
+ except Exception as e:
849
+ if attempt < 2: # Don't sleep after last attempt
850
+ await asyncio.sleep(2**attempt) # 1s, 2s backoff
851
+ else:
852
+ LOGGER.warning(f"Failed to download {http_url} after 3 attempts: {e}")
853
+ return False
849
854
  return True
850
855
 
851
856
  # Process all images with async downloads (limit connections for small datasets)
@@ -861,9 +866,16 @@ async def convert_ndjson_to_yolo(ndjson_path: str | Path, output_path: str | Pat
861
866
  pbar.update(1)
862
867
  return result
863
868
 
864
- await asyncio.gather(*[tracked_process(record) for record in image_records])
869
+ results = await asyncio.gather(*[tracked_process(record) for record in image_records])
865
870
  pbar.close()
866
871
 
872
+ # Validate images were downloaded successfully
873
+ success_count = sum(1 for r in results if r)
874
+ if success_count == 0:
875
+ raise RuntimeError(f"Failed to download any images from {ndjson_path}. Check network connection and URLs.")
876
+ if success_count < len(image_records):
877
+ LOGGER.warning(f"Downloaded {success_count}/{len(image_records)} images from {ndjson_path}")
878
+
867
879
  if is_classification:
868
880
  # Classification: return dataset directory (check_cls_dataset expects a directory path)
869
881
  return dataset_dir
@@ -37,8 +37,8 @@ from ultralytics.utils.downloads import download, safe_download, unzip_file
37
37
  from ultralytics.utils.ops import segments2boxes
38
38
 
39
39
  HELP_URL = "See https://docs.ultralytics.com/datasets for dataset formatting guidance."
40
- IMG_FORMATS = {"bmp", "dng", "jpeg", "jpg", "mpo", "png", "tif", "tiff", "webp", "pfm", "heic"} # image suffixes
41
- VID_FORMATS = {"asf", "avi", "gif", "m4v", "mkv", "mov", "mp4", "mpeg", "mpg", "ts", "wmv", "webm"} # video suffixes
40
+ IMG_FORMATS = {"avif", "bmp", "dng", "heic", "jp2", "jpeg", "jpeg2000", "jpg", "mpo", "png", "tif", "tiff", "webp"}
41
+ VID_FORMATS = {"asf", "avi", "gif", "m4v", "mkv", "mov", "mp4", "mpeg", "mpg", "ts", "wmv", "webm"} # videos
42
42
  FORMATS_HELP_MSG = f"Supported formats are:\nimages: {IMG_FORMATS}\nvideos: {VID_FORMATS}"
43
43
 
44
44
 
@@ -981,11 +981,13 @@ class BaseTrainer:
981
981
  "Request support for addition optimizers at https://github.com/ultralytics/ultralytics."
982
982
  )
983
983
 
984
+ num_params = [len(g[0]), len(g[1]), len(g[2])] # number of param groups
984
985
  g[2] = {"params": g[2], **optim_args, "param_group": "bias"}
985
986
  g[0] = {"params": g[0], **optim_args, "weight_decay": decay, "param_group": "weight"}
986
987
  g[1] = {"params": g[1], **optim_args, "weight_decay": 0.0, "param_group": "bn"}
987
988
  muon, sgd = (0.1, 1.0) if iterations > 10000 else (0.5, 0.5) # scale factor for MuSGD
988
989
  if use_muon:
990
+ num_params[0] = len(g[3]) # update number of params
989
991
  g[3] = {"params": g[3], **optim_args, "weight_decay": decay, "use_muon": True, "param_group": "muon"}
990
992
  import re
991
993
 
@@ -1002,6 +1004,6 @@ class BaseTrainer:
1002
1004
 
1003
1005
  LOGGER.info(
1004
1006
  f"{colorstr('optimizer:')} {type(optimizer).__name__}(lr={lr}, momentum={momentum}) with parameter groups "
1005
- f"{len(g[1]['params'])} weight(decay=0.0), {len(g[0]['params']) if len(g[0]) else len(g[3]['params'])} weight(decay={decay}), {len(g[2]['params'])} bias(decay=0.0)"
1007
+ f"{num_params[1]} weight(decay=0.0), {num_params[0]} weight(decay={decay}), {num_params[2]} bias(decay=0.0)"
1006
1008
  )
1007
1009
  return optimizer
@@ -117,11 +117,13 @@ class DetectionTrainer(BaseTrainer):
117
117
  if isinstance(v, torch.Tensor):
118
118
  batch[k] = v.to(self.device, non_blocking=self.device.type == "cuda")
119
119
  batch["img"] = batch["img"].float() / 255
120
- multi_scale = self.args.multi_scale
121
- if random.random() < multi_scale:
120
+ if self.args.multi_scale > 0.0:
122
121
  imgs = batch["img"]
123
122
  sz = (
124
- random.randrange(int(self.args.imgsz * 0.5), int(self.args.imgsz * 1 + self.stride))
123
+ random.randrange(
124
+ int(self.args.imgsz * (1.0 - self.args.multi_scale)),
125
+ int(self.args.imgsz * (1.0 + self.args.multi_scale) + self.stride),
126
+ )
125
127
  // self.stride
126
128
  * self.stride
127
129
  ) # size
@@ -270,9 +270,9 @@ class BYTETracker:
270
270
  args (Namespace): Command-line arguments containing tracking parameters.
271
271
  frame_rate (int): Frame rate of the video sequence.
272
272
  """
273
- self.tracked_stracks = [] # type: list[STrack]
274
- self.lost_stracks = [] # type: list[STrack]
275
- self.removed_stracks = [] # type: list[STrack]
273
+ self.tracked_stracks: list[STrack] = []
274
+ self.lost_stracks: list[STrack] = []
275
+ self.removed_stracks: list[STrack] = []
276
276
 
277
277
  self.frame_id = 0
278
278
  self.args = args
@@ -304,7 +304,7 @@ class BYTETracker:
304
304
  detections = self.init_track(results, feats_keep)
305
305
  # Add newly detected tracklets to tracked_stracks
306
306
  unconfirmed = []
307
- tracked_stracks = [] # type: list[STrack]
307
+ tracked_stracks: list[STrack] = []
308
308
  for track in self.tracked_stracks:
309
309
  if not track.is_activated:
310
310
  unconfirmed.append(track)
@@ -423,9 +423,9 @@ class BYTETracker:
423
423
 
424
424
  def reset(self):
425
425
  """Reset the tracker by clearing all tracked, lost, and removed tracks and reinitializing the Kalman filter."""
426
- self.tracked_stracks = [] # type: list[STrack]
427
- self.lost_stracks = [] # type: list[STrack]
428
- self.removed_stracks = [] # type: list[STrack]
426
+ self.tracked_stracks: list[STrack] = []
427
+ self.lost_stracks: list[STrack] = []
428
+ self.removed_stracks: list[STrack] = []
429
429
  self.frame_id = 0
430
430
  self.kalman_filter = self.get_kalmanfilter()
431
431
  self.reset_id()
@@ -89,7 +89,8 @@ def resolve_platform_uri(uri, hard=True):
89
89
  raise ValueError(f"Invalid platform URI: {uri}. Use ul://user/datasets/name or ul://user/project/model")
90
90
 
91
91
  try:
92
- r = requests.head(url, headers=headers, allow_redirects=False, timeout=30)
92
+ timeout = 3600 if "/datasets/" in url else 90 # NDJSON generation can be slow for large datasets
93
+ r = requests.head(url, headers=headers, allow_redirects=False, timeout=timeout)
93
94
 
94
95
  # Handle redirect responses (301, 302, 303, 307, 308)
95
96
  if 300 <= r.status_code < 400 and "location" in r.headers:
@@ -128,10 +128,15 @@ def _log_plots(plots, step):
128
128
  def on_pretrain_routine_start(trainer):
129
129
  """Initialize and start wandb project if module is present."""
130
130
  if not wb.run:
131
+ from datetime import datetime
132
+
133
+ name = str(trainer.args.name).replace("/", "-").replace(" ", "_")
131
134
  wb.init(
132
135
  project=str(trainer.args.project).replace("/", "-") if trainer.args.project else "Ultralytics",
133
- name=str(trainer.args.name).replace("/", "-"),
136
+ name=name,
134
137
  config=vars(trainer.args),
138
+ id=f"{name}_{datetime.now().strftime('%Y%m%d_%H%M%S')}", # add unique id
139
+ dir=str(trainer.save_dir),
135
140
  )
136
141
 
137
142
 
@@ -49,6 +49,7 @@ def generate_ddp_file(trainer):
49
49
 
50
50
  content = f"""
51
51
  # Ultralytics Multi-GPU training temp file (should be automatically deleted after use)
52
+ from pathlib import Path, PosixPath # For model arguments stored as Path instead of str
52
53
  overrides = {vars(trainer.args)}
53
54
 
54
55
  if __name__ == "__main__":
@@ -512,9 +512,19 @@ class v8SegmentationLoss(v8DetectionLoss):
512
512
  )
513
513
  if pred_semseg is not None:
514
514
  sem_masks = batch["sem_masks"].to(self.device) # NxHxW
515
- mask_zero = sem_masks == 0 # NxHxW
516
515
  sem_masks = F.one_hot(sem_masks.long(), num_classes=self.nc).permute(0, 3, 1, 2).float() # NxCxHxW
517
- sem_masks[mask_zero.unsqueeze(1).expand_as(sem_masks)] = 0
516
+
517
+ if self.overlap:
518
+ mask_zero = masks == 0 # NxHxW
519
+ sem_masks[mask_zero.unsqueeze(1).expand_as(sem_masks)] = 0
520
+ else:
521
+ batch_idx = batch["batch_idx"].view(-1) # [total_instances]
522
+ for i in range(batch_size):
523
+ instance_mask_i = masks[batch_idx == i] # [num_instances_i, H, W]
524
+ if len(instance_mask_i) == 0:
525
+ continue
526
+ sem_masks[i, :, instance_mask_i.sum(dim=0) == 0] = 0
527
+
518
528
  loss[4] = self.bcedice_loss(pred_semseg, sem_masks)
519
529
  loss[4] *= self.hyp.box # seg gain
520
530
 
@@ -798,7 +808,7 @@ class PoseLoss26(v8PoseLoss):
798
808
  loss[0], loss[3], loss[4] = det_loss[0], det_loss[1], det_loss[2]
799
809
 
800
810
  batch_size = pred_kpts.shape[0]
801
- imgsz = torch.tensor(batch["resized_shape"][0], device=self.device, dtype=pred_kpts.dtype) # image size (h,w)
811
+ imgsz = torch.tensor(preds["feats"][0].shape[2:], device=self.device, dtype=pred_kpts.dtype) * self.stride[0]
802
812
 
803
813
  pred_kpts = pred_kpts.view(batch_size, -1, *self.kpt_shape) # (b, h*w, 17, 3)
804
814
 
@@ -992,7 +1002,7 @@ class v8OBBLoss(v8DetectionLoss):
992
1002
  batch_size = pred_angle.shape[0] # batch size, number of masks, mask height, mask width
993
1003
 
994
1004
  dtype = pred_scores.dtype
995
- imgsz = torch.tensor(batch["resized_shape"][0], device=self.device, dtype=dtype) # image size (h,w)
1005
+ imgsz = torch.tensor(preds["feats"][0].shape[2:], device=self.device, dtype=dtype) * self.stride[0]
996
1006
 
997
1007
  # targets
998
1008
  try:
@@ -40,9 +40,51 @@ def imread(filename: str, flags: int = cv2.IMREAD_COLOR) -> np.ndarray | None:
40
40
  return None
41
41
  else:
42
42
  im = cv2.imdecode(file_bytes, flags)
43
+ # Fallback for formats OpenCV imdecode may not support (AVIF, HEIC)
44
+ if im is None and filename.lower().endswith((".avif", ".heic")):
45
+ im = _imread_pil(filename, flags)
43
46
  return im[..., None] if im is not None and im.ndim == 2 else im # Always ensure 3 dimensions
44
47
 
45
48
 
49
+ _pil_plugins_registered = False
50
+
51
+
52
+ def _imread_pil(filename: str, flags: int = cv2.IMREAD_COLOR) -> np.ndarray | None:
53
+ """Read an image using PIL as fallback for formats not supported by OpenCV.
54
+
55
+ Args:
56
+ filename (str): Path to the file to read.
57
+ flags (int, optional): OpenCV imread flags (used to determine grayscale conversion).
58
+
59
+ Returns:
60
+ (np.ndarray | None): The read image array in BGR format, or None if reading fails.
61
+ """
62
+ global _pil_plugins_registered
63
+ try:
64
+ from PIL import Image
65
+
66
+ # Register HEIF/AVIF plugins once
67
+ if not _pil_plugins_registered:
68
+ try:
69
+ import pillow_heif
70
+
71
+ pillow_heif.register_heif_opener()
72
+ except ImportError:
73
+ pass
74
+ try:
75
+ import pillow_avif # noqa: F401
76
+ except ImportError:
77
+ pass
78
+ _pil_plugins_registered = True
79
+
80
+ with Image.open(filename) as img:
81
+ if flags == cv2.IMREAD_GRAYSCALE:
82
+ return np.asarray(img.convert("L"))
83
+ return cv2.cvtColor(np.asarray(img.convert("RGB")), cv2.COLOR_RGB2BGR)
84
+ except Exception:
85
+ return None
86
+
87
+
46
88
  def imwrite(filename: str, img: np.ndarray, params: list[int] | None = None) -> bool:
47
89
  """Write an image to a file with multilanguage filename support.
48
90