dgenerate-ultralytics-headless 8.3.192__tar.gz → 8.3.194__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 (285) hide show
  1. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/PKG-INFO +1 -1
  2. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +1 -1
  3. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +1 -0
  4. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/tests/test_exports.py +8 -5
  5. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/tests/test_python.py +1 -1
  6. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/__init__.py +1 -1
  7. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/__init__.py +7 -5
  8. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/xView.yaml +1 -1
  9. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/utils.py +1 -1
  10. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/engine/exporter.py +7 -6
  11. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/engine/model.py +4 -4
  12. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/engine/predictor.py +7 -3
  13. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/engine/trainer.py +4 -4
  14. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/hub/__init__.py +1 -2
  15. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/hub/utils.py +0 -101
  16. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/predict.py +3 -3
  17. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/segment/val.py +13 -13
  18. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/yoloe/val.py +2 -2
  19. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/__init__.py +2 -4
  20. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/autobackend.py +10 -13
  21. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/tasks.py +2 -51
  22. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/__init__.py +6 -3
  23. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/hub.py +2 -1
  24. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/checks.py +2 -1
  25. dgenerate_ultralytics_headless-8.3.194/ultralytics/utils/events.py +115 -0
  26. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/ops.py +3 -1
  27. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/tal.py +2 -2
  28. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/torch_utils.py +7 -6
  29. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/tqdm.py +49 -74
  30. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/tuner.py +1 -1
  31. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/LICENSE +0 -0
  32. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/README.md +0 -0
  33. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
  34. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
  35. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/dgenerate_ultralytics_headless.egg-info/requires.txt +0 -0
  36. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
  37. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/pyproject.toml +0 -0
  38. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/setup.cfg +0 -0
  39. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/tests/__init__.py +0 -0
  40. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/tests/conftest.py +0 -0
  41. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/tests/test_cli.py +0 -0
  42. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/tests/test_cuda.py +0 -0
  43. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/tests/test_engine.py +0 -0
  44. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/tests/test_integrations.py +0 -0
  45. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/tests/test_solutions.py +0 -0
  46. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/assets/bus.jpg +0 -0
  47. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/assets/zidane.jpg +0 -0
  48. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  49. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  50. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  51. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  52. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  53. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  54. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  55. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  56. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  57. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  58. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  59. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  60. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  61. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  62. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/coco.yaml +0 -0
  63. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  64. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  65. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  66. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  67. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  68. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  69. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  70. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  71. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  72. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  73. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  74. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  75. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  76. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  77. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  78. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  79. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/signature.yaml +0 -0
  80. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  81. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/default.yaml +0 -0
  82. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  83. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  84. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  85. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  86. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  87. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  88. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  89. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  90. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  91. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  92. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  93. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  94. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  95. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  96. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  97. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  98. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  99. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  100. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  101. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  102. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  103. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  104. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  105. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  106. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  107. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  108. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  109. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  110. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  111. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  112. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  113. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  114. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  115. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  116. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  117. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  118. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  119. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  120. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  121. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  122. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  123. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  124. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  125. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  126. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  127. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  128. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  129. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  130. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  131. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  132. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  133. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  134. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  135. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  136. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  137. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  138. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  139. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/__init__.py +0 -0
  140. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/annotator.py +0 -0
  141. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/augment.py +0 -0
  142. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/base.py +0 -0
  143. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/build.py +0 -0
  144. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/converter.py +0 -0
  145. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/dataset.py +0 -0
  146. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/loaders.py +0 -0
  147. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/scripts/download_weights.sh +0 -0
  148. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/scripts/get_coco.sh +0 -0
  149. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/scripts/get_coco128.sh +0 -0
  150. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  151. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/split.py +0 -0
  152. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/data/split_dota.py +0 -0
  153. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/engine/__init__.py +0 -0
  154. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/engine/results.py +0 -0
  155. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/engine/tuner.py +0 -0
  156. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/engine/validator.py +0 -0
  157. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/hub/auth.py +0 -0
  158. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/hub/google/__init__.py +0 -0
  159. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/hub/session.py +0 -0
  160. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/__init__.py +0 -0
  161. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/fastsam/__init__.py +0 -0
  162. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/fastsam/model.py +0 -0
  163. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/fastsam/predict.py +0 -0
  164. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/fastsam/utils.py +0 -0
  165. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/fastsam/val.py +0 -0
  166. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/nas/__init__.py +0 -0
  167. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/nas/model.py +0 -0
  168. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/nas/predict.py +0 -0
  169. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/nas/val.py +0 -0
  170. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/rtdetr/__init__.py +0 -0
  171. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/rtdetr/model.py +0 -0
  172. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/rtdetr/predict.py +0 -0
  173. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/rtdetr/train.py +0 -0
  174. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/rtdetr/val.py +0 -0
  175. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/__init__.py +0 -0
  176. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/amg.py +0 -0
  177. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/build.py +0 -0
  178. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/model.py +0 -0
  179. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/modules/__init__.py +0 -0
  180. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/modules/blocks.py +0 -0
  181. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/modules/decoders.py +0 -0
  182. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/modules/encoders.py +0 -0
  183. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  184. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/modules/sam.py +0 -0
  185. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  186. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/modules/transformer.py +0 -0
  187. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/sam/modules/utils.py +0 -0
  188. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/utils/__init__.py +0 -0
  189. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/utils/loss.py +0 -0
  190. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/utils/ops.py +0 -0
  191. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/__init__.py +0 -0
  192. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/classify/__init__.py +0 -0
  193. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/classify/predict.py +0 -0
  194. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/classify/train.py +0 -0
  195. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/classify/val.py +0 -0
  196. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/detect/__init__.py +0 -0
  197. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/detect/predict.py +0 -0
  198. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/detect/train.py +0 -0
  199. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/detect/val.py +0 -0
  200. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/model.py +0 -0
  201. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/obb/__init__.py +0 -0
  202. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/obb/predict.py +0 -0
  203. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/obb/train.py +0 -0
  204. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/obb/val.py +0 -0
  205. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/pose/__init__.py +0 -0
  206. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/pose/predict.py +0 -0
  207. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/pose/train.py +0 -0
  208. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/pose/val.py +0 -0
  209. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/segment/__init__.py +0 -0
  210. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/segment/predict.py +0 -0
  211. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/segment/train.py +0 -0
  212. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/world/__init__.py +0 -0
  213. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/world/train.py +0 -0
  214. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/world/train_world.py +0 -0
  215. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  216. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  217. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/yoloe/train.py +0 -0
  218. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  219. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/modules/__init__.py +0 -0
  220. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/modules/activation.py +0 -0
  221. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/modules/block.py +0 -0
  222. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/modules/conv.py +0 -0
  223. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/modules/head.py +0 -0
  224. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/modules/transformer.py +0 -0
  225. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/modules/utils.py +0 -0
  226. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/nn/text_model.py +0 -0
  227. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/py.typed +0 -0
  228. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/__init__.py +0 -0
  229. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/ai_gym.py +0 -0
  230. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/analytics.py +0 -0
  231. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/config.py +0 -0
  232. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/distance_calculation.py +0 -0
  233. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/heatmap.py +0 -0
  234. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/instance_segmentation.py +0 -0
  235. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/object_blurrer.py +0 -0
  236. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/object_counter.py +0 -0
  237. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/object_cropper.py +0 -0
  238. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/parking_management.py +0 -0
  239. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/queue_management.py +0 -0
  240. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/region_counter.py +0 -0
  241. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/security_alarm.py +0 -0
  242. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/similarity_search.py +0 -0
  243. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/solutions.py +0 -0
  244. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/speed_estimation.py +0 -0
  245. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/streamlit_inference.py +0 -0
  246. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/templates/similarity-search.html +0 -0
  247. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/trackzone.py +0 -0
  248. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/solutions/vision_eye.py +0 -0
  249. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/trackers/__init__.py +0 -0
  250. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/trackers/basetrack.py +0 -0
  251. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/trackers/bot_sort.py +0 -0
  252. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/trackers/byte_tracker.py +0 -0
  253. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/trackers/track.py +0 -0
  254. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/trackers/utils/__init__.py +0 -0
  255. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/trackers/utils/gmc.py +0 -0
  256. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  257. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/trackers/utils/matching.py +0 -0
  258. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/autobatch.py +0 -0
  259. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/autodevice.py +0 -0
  260. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/benchmarks.py +0 -0
  261. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/__init__.py +0 -0
  262. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/base.py +0 -0
  263. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/clearml.py +0 -0
  264. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/comet.py +0 -0
  265. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/dvc.py +0 -0
  266. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/mlflow.py +0 -0
  267. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/neptune.py +0 -0
  268. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/platform.py +0 -0
  269. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/raytune.py +0 -0
  270. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  271. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/callbacks/wb.py +0 -0
  272. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/dist.py +0 -0
  273. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/downloads.py +0 -0
  274. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/errors.py +0 -0
  275. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/export.py +0 -0
  276. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/files.py +0 -0
  277. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/git.py +0 -0
  278. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/instance.py +0 -0
  279. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/logger.py +0 -0
  280. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/loss.py +0 -0
  281. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/metrics.py +0 -0
  282. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/nms.py +0 -0
  283. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/patches.py +0 -0
  284. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/plotting.py +0 -0
  285. {dgenerate_ultralytics_headless-8.3.192 → dgenerate_ultralytics_headless-8.3.194}/ultralytics/utils/triton.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.192
3
+ Version: 8.3.194
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>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.192
3
+ Version: 8.3.194
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>
@@ -259,6 +259,7 @@ ultralytics/utils/checks.py
259
259
  ultralytics/utils/dist.py
260
260
  ultralytics/utils/downloads.py
261
261
  ultralytics/utils/errors.py
262
+ ultralytics/utils/events.py
262
263
  ultralytics/utils/export.py
263
264
  ultralytics/utils/files.py
264
265
  ultralytics/utils/git.py
@@ -120,14 +120,16 @@ def test_export_torchscript_matrix(task, dynamic, int8, half, batch, nms):
120
120
  @pytest.mark.skipif(not TORCH_1_9, reason="CoreML>=7.2 not supported with PyTorch<=1.8")
121
121
  @pytest.mark.skipif(checks.IS_PYTHON_3_13, reason="CoreML not supported in Python 3.13")
122
122
  @pytest.mark.parametrize(
123
- "task, dynamic, int8, half, batch",
123
+ "task, dynamic, int8, half, nms, batch",
124
124
  [ # generate all combinations except for exclusion cases
125
- (task, dynamic, int8, half, batch)
126
- for task, dynamic, int8, half, batch in product(TASKS, [False], [True, False], [True, False], [1])
127
- if not (int8 and half)
125
+ (task, dynamic, int8, half, nms, batch)
126
+ for task, dynamic, int8, half, nms, batch in product(
127
+ TASKS, [False], [True, False], [True, False], [True, False], [1]
128
+ )
129
+ if not (int8 and half) and not (task != "detect" and nms)
128
130
  ],
129
131
  )
130
- def test_export_coreml_matrix(task, dynamic, int8, half, batch):
132
+ def test_export_coreml_matrix(task, dynamic, int8, half, nms, batch):
131
133
  """Test YOLO export to CoreML format with various parameter configurations."""
132
134
  file = YOLO(TASK2MODEL[task]).export(
133
135
  format="coreml",
@@ -136,6 +138,7 @@ def test_export_coreml_matrix(task, dynamic, int8, half, batch):
136
138
  int8=int8,
137
139
  half=half,
138
140
  batch=batch,
141
+ nms=nms,
139
142
  )
140
143
  YOLO(file)([SOURCE] * batch, imgsz=32) # exported model inference
141
144
  shutil.rmtree(file) # cleanup
@@ -375,7 +375,7 @@ def test_data_annotator():
375
375
 
376
376
  def test_events():
377
377
  """Test event sending functionality."""
378
- from ultralytics.hub.utils import Events
378
+ from ultralytics.utils.events import Events
379
379
 
380
380
  events = Events()
381
381
  events.enabled = True
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.192"
3
+ __version__ = "8.3.194"
4
4
 
5
5
  import os
6
6
 
@@ -15,6 +15,7 @@ from ultralytics.utils import (
15
15
  DEFAULT_CFG,
16
16
  DEFAULT_CFG_DICT,
17
17
  DEFAULT_CFG_PATH,
18
+ FLOAT_OR_INT,
18
19
  IS_VSCODE,
19
20
  LOGGER,
20
21
  RANK,
@@ -22,6 +23,7 @@ from ultralytics.utils import (
22
23
  RUNS_DIR,
23
24
  SETTINGS,
24
25
  SETTINGS_FILE,
26
+ STR_OR_PATH,
25
27
  TESTS_RUNNING,
26
28
  YAML,
27
29
  IterableSimpleNamespace,
@@ -267,7 +269,7 @@ def cfg2dict(cfg: str | Path | dict | SimpleNamespace) -> dict:
267
269
  - If cfg is a SimpleNamespace object, it's converted to a dictionary using vars().
268
270
  - If cfg is already a dictionary, it's returned unchanged.
269
271
  """
270
- if isinstance(cfg, (str, Path)):
272
+ if isinstance(cfg, STR_OR_PATH):
271
273
  cfg = YAML.load(cfg) # load dict
272
274
  elif isinstance(cfg, SimpleNamespace):
273
275
  cfg = vars(cfg) # convert to dict
@@ -309,7 +311,7 @@ def get_cfg(cfg: str | Path | dict | SimpleNamespace = DEFAULT_CFG_DICT, overrid
309
311
 
310
312
  # Special handling for numeric project/name
311
313
  for k in "project", "name":
312
- if k in cfg and isinstance(cfg[k], (int, float)):
314
+ if k in cfg and isinstance(cfg[k], FLOAT_OR_INT):
313
315
  cfg[k] = str(cfg[k])
314
316
  if cfg.get("name") == "model": # assign model to 'name' arg
315
317
  cfg["name"] = str(cfg.get("model", "")).partition(".")[0]
@@ -352,7 +354,7 @@ def check_cfg(cfg: dict, hard: bool = True) -> None:
352
354
  """
353
355
  for k, v in cfg.items():
354
356
  if v is not None: # None values may be from optional args
355
- if k in CFG_FLOAT_KEYS and not isinstance(v, (int, float)):
357
+ if k in CFG_FLOAT_KEYS and not isinstance(v, FLOAT_OR_INT):
356
358
  if hard:
357
359
  raise TypeError(
358
360
  f"'{k}={v}' is of invalid type {type(v).__name__}. "
@@ -360,7 +362,7 @@ def check_cfg(cfg: dict, hard: bool = True) -> None:
360
362
  )
361
363
  cfg[k] = float(v)
362
364
  elif k in CFG_FRACTION_KEYS:
363
- if not isinstance(v, (int, float)):
365
+ if not isinstance(v, FLOAT_OR_INT):
364
366
  if hard:
365
367
  raise TypeError(
366
368
  f"'{k}={v}' is of invalid type {type(v).__name__}. "
@@ -413,7 +415,7 @@ def get_save_dir(args: SimpleNamespace, name: str = None) -> Path:
413
415
  name = name or args.name or f"{args.mode}"
414
416
  save_dir = increment_path(Path(project) / name, exist_ok=args.exist_ok if RANK in {-1, 0} else True)
415
417
 
416
- return Path(save_dir)
418
+ return Path(save_dir).resolve() # resolve to display full path in console
417
419
 
418
420
 
419
421
  def _handle_deprecation(custom: dict) -> dict:
@@ -87,7 +87,7 @@ download: |
87
87
  from PIL import Image
88
88
 
89
89
  from ultralytics.utils import TQDM
90
- from ultralytics.data.utils import autosplit
90
+ from ultralytics.data.split import autosplit
91
91
  from ultralytics.utils.ops import xyxy2xywhn
92
92
 
93
93
 
@@ -216,7 +216,7 @@ def verify_image_label(args: tuple) -> list:
216
216
  points = lb[:, 1:]
217
217
  # Coordinate points check with 1% tolerance
218
218
  assert points.max() <= 1.01, f"non-normalized or out of bounds coordinates {points[points > 1.01]}"
219
- assert lb.min() >= -0.01, f"negative class labels {lb[lb < -0.01]}"
219
+ assert lb.min() >= -0.01, f"negative class labels or coordinate {lb[lb < -0.01]}"
220
220
 
221
221
  # All labels
222
222
  max_cls = 0 if single_cls else lb[:, 0].max() # max label count
@@ -90,6 +90,7 @@ from ultralytics.utils import (
90
90
  RKNN_CHIPS,
91
91
  ROOT,
92
92
  SETTINGS,
93
+ TORCH_VERSION,
93
94
  WINDOWS,
94
95
  YAML,
95
96
  callbacks,
@@ -567,7 +568,7 @@ class Exporter:
567
568
  @try_export
568
569
  def export_torchscript(self, prefix=colorstr("TorchScript:")):
569
570
  """Export YOLO model to TorchScript format."""
570
- LOGGER.info(f"\n{prefix} starting export with torch {torch.__version__}...")
571
+ LOGGER.info(f"\n{prefix} starting export with torch {TORCH_VERSION}...")
571
572
  f = self.file.with_suffix(".torchscript")
572
573
 
573
574
  ts = torch.jit.trace(NMSModel(self.model, self.args) if self.args.nms else self.model, self.im, strict=False)
@@ -586,7 +587,7 @@ class Exporter:
586
587
  """Export YOLO model to ONNX format."""
587
588
  requirements = ["onnx>=1.12.0"]
588
589
  if self.args.simplify:
589
- requirements += ["onnxslim>=0.1.65", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
590
+ requirements += ["onnxslim>=0.1.67", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
590
591
  check_requirements(requirements)
591
592
  import onnx # noqa
592
593
 
@@ -648,7 +649,7 @@ class Exporter:
648
649
  import openvino as ov
649
650
 
650
651
  LOGGER.info(f"\n{prefix} starting export with openvino {ov.__version__}...")
651
- assert TORCH_1_13, f"OpenVINO export requires torch>=1.13.0 but torch=={torch.__version__} is installed"
652
+ assert TORCH_1_13, f"OpenVINO export requires torch>=1.13.0 but torch=={TORCH_VERSION} is installed"
652
653
  ov_model = ov.convert_model(
653
654
  NMSModel(self.model, self.args) if self.args.nms else self.model,
654
655
  input=None if self.args.dynamic else [self.im.shape],
@@ -954,17 +955,17 @@ class Exporter:
954
955
  try:
955
956
  import tensorflow as tf # noqa
956
957
  except ImportError:
957
- check_requirements("tensorflow>=2.0.0")
958
+ check_requirements("tensorflow>=2.0.0,<=2.19.0")
958
959
  import tensorflow as tf # noqa
959
960
  check_requirements(
960
961
  (
961
- "tf_keras", # required by 'onnx2tf' package
962
+ "tf_keras<=2.19.0", # required by 'onnx2tf' package
962
963
  "sng4onnx>=1.0.1", # required by 'onnx2tf' package
963
964
  "onnx_graphsurgeon>=0.3.26", # required by 'onnx2tf' package
964
965
  "ai-edge-litert>=1.2.0,<1.4.0", # required by 'onnx2tf' package
965
966
  "onnx>=1.12.0",
966
967
  "onnx2tf>=1.26.3",
967
- "onnxslim>=0.1.65",
968
+ "onnxslim>=0.1.67",
968
969
  "onnxruntime-gpu" if cuda else "onnxruntime",
969
970
  "protobuf>=5",
970
971
  ),
@@ -12,7 +12,7 @@ from PIL import Image
12
12
 
13
13
  from ultralytics.cfg import TASK2DATA, get_cfg, get_save_dir
14
14
  from ultralytics.engine.results import Results
15
- from ultralytics.nn.tasks import attempt_load_one_weight, guess_model_task, yaml_model_load
15
+ from ultralytics.nn.tasks import guess_model_task, load_checkpoint, yaml_model_load
16
16
  from ultralytics.utils import (
17
17
  ARGV,
18
18
  ASSETS,
@@ -294,7 +294,7 @@ class Model(torch.nn.Module):
294
294
  weights = checks.check_model_file_from_stem(weights) # add suffix, i.e. yolo11n -> yolo11n.pt
295
295
 
296
296
  if str(weights).rpartition(".")[-1] == "pt":
297
- self.model, self.ckpt = attempt_load_one_weight(weights)
297
+ self.model, self.ckpt = load_checkpoint(weights)
298
298
  self.task = self.model.task
299
299
  self.overrides = self.model.args = self._reset_ckpt_args(self.model.args)
300
300
  self.ckpt_path = self.model.pt_path
@@ -385,7 +385,7 @@ class Model(torch.nn.Module):
385
385
  self._check_is_pytorch_model()
386
386
  if isinstance(weights, (str, Path)):
387
387
  self.overrides["pretrained"] = weights # remember the weights for DDP training
388
- weights, self.ckpt = attempt_load_one_weight(weights)
388
+ weights, self.ckpt = load_checkpoint(weights)
389
389
  self.model.load(weights)
390
390
  return self
391
391
 
@@ -802,7 +802,7 @@ class Model(torch.nn.Module):
802
802
  # Update model and cfg after training
803
803
  if RANK in {-1, 0}:
804
804
  ckpt = self.trainer.best if self.trainer.best.exists() else self.trainer.last
805
- self.model, self.ckpt = attempt_load_one_weight(ckpt)
805
+ self.model, self.ckpt = load_checkpoint(ckpt)
806
806
  self.overrides = self.model.args
807
807
  self.metrics = getattr(self.trainer.validator, "metrics", None) # TODO: no metrics returned by DDP
808
808
  return self.metrics
@@ -266,13 +266,17 @@ class BasePredictor:
266
266
  channels=getattr(self.model, "ch", 3),
267
267
  )
268
268
  self.source_type = self.dataset.source_type
269
- if not getattr(self, "stream", True) and (
269
+ long_sequence = (
270
270
  self.source_type.stream
271
271
  or self.source_type.screenshot
272
272
  or len(self.dataset) > 1000 # many images
273
273
  or any(getattr(self.dataset, "video_flag", [False]))
274
- ): # videos
275
- LOGGER.warning(STREAM_WARNING)
274
+ )
275
+ if long_sequence:
276
+ import torchvision # noqa (import here triggers torchvision NMS use in nms.py)
277
+
278
+ if not getattr(self, "stream", True): # videos
279
+ LOGGER.warning(STREAM_WARNING)
276
280
  self.vid_writer = {}
277
281
 
278
282
  @smart_inference_mode()
@@ -24,7 +24,7 @@ from torch import nn, optim
24
24
  from ultralytics import __version__
25
25
  from ultralytics.cfg import get_cfg, get_save_dir
26
26
  from ultralytics.data.utils import check_cls_dataset, check_det_dataset
27
- from ultralytics.nn.tasks import attempt_load_one_weight, attempt_load_weights
27
+ from ultralytics.nn.tasks import load_checkpoint
28
28
  from ultralytics.utils import (
29
29
  DEFAULT_CFG,
30
30
  GIT,
@@ -644,10 +644,10 @@ class BaseTrainer:
644
644
  cfg, weights = self.model, None
645
645
  ckpt = None
646
646
  if str(self.model).endswith(".pt"):
647
- weights, ckpt = attempt_load_one_weight(self.model)
647
+ weights, ckpt = load_checkpoint(self.model)
648
648
  cfg = weights.yaml
649
649
  elif isinstance(self.args.pretrained, (str, Path)):
650
- weights, _ = attempt_load_one_weight(self.args.pretrained)
650
+ weights, _ = load_checkpoint(self.args.pretrained)
651
651
  self.model = self.get_model(cfg=cfg, weights=weights, verbose=RANK == -1) # calls Model(cfg, weights)
652
652
  return ckpt
653
653
 
@@ -768,7 +768,7 @@ class BaseTrainer:
768
768
  last = Path(check_file(resume) if exists else get_latest_run())
769
769
 
770
770
  # Check that resume data YAML exists, otherwise strip to force re-download of dataset
771
- ckpt_args = attempt_load_weights(last).args
771
+ ckpt_args = load_checkpoint(last)[0].args
772
772
  if not isinstance(ckpt_args["data"], dict) and not Path(ckpt_args["data"]).exists():
773
773
  ckpt_args["data"] = self.args.data
774
774
 
@@ -3,7 +3,7 @@
3
3
  from ultralytics.data.utils import HUBDatasetStats
4
4
  from ultralytics.hub.auth import Auth
5
5
  from ultralytics.hub.session import HUBTrainingSession
6
- from ultralytics.hub.utils import HUB_API_ROOT, HUB_WEB_ROOT, PREFIX, events
6
+ from ultralytics.hub.utils import HUB_API_ROOT, HUB_WEB_ROOT, PREFIX
7
7
  from ultralytics.utils import LOGGER, SETTINGS, checks
8
8
 
9
9
  __all__ = (
@@ -17,7 +17,6 @@ __all__ = (
17
17
  "export_model",
18
18
  "get_export",
19
19
  "check_dataset",
20
- "events",
21
20
  )
22
21
 
23
22
 
@@ -1,31 +1,17 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
3
  import os
4
- import random
5
4
  import threading
6
5
  import time
7
- from pathlib import Path
8
6
  from typing import Any
9
7
 
10
- from ultralytics import __version__
11
8
  from ultralytics.utils import (
12
- ARGV,
13
- ENVIRONMENT,
14
- GIT,
15
9
  IS_COLAB,
16
- IS_PIP_PACKAGE,
17
10
  LOGGER,
18
- ONLINE,
19
- PYTHON_VERSION,
20
- RANK,
21
- SETTINGS,
22
- TESTS_RUNNING,
23
11
  TQDM,
24
12
  TryExcept,
25
13
  colorstr,
26
14
  )
27
- from ultralytics.utils.downloads import GITHUB_ASSETS_NAMES
28
- from ultralytics.utils.torch_utils import get_cpu_info
29
15
 
30
16
  HUB_API_ROOT = os.environ.get("ULTRALYTICS_HUB_API", "https://api.ultralytics.com")
31
17
  HUB_WEB_ROOT = os.environ.get("ULTRALYTICS_HUB_WEB", "https://hub.ultralytics.com")
@@ -177,90 +163,3 @@ def smart_request(
177
163
  threading.Thread(target=func, args=args, kwargs=kwargs, daemon=True).start()
178
164
  else:
179
165
  return func(*args, **kwargs)
180
-
181
-
182
- class Events:
183
- """
184
- A class for collecting anonymous event analytics.
185
-
186
- Event analytics are enabled when sync=True in settings and disabled when sync=False. Run 'yolo settings' to see and
187
- update settings.
188
-
189
- Attributes:
190
- url (str): The URL to send anonymous events.
191
- events (list): List of collected events to be sent.
192
- rate_limit (float): The rate limit in seconds for sending events.
193
- t (float): Rate limit timer in seconds.
194
- metadata (dict): A dictionary containing metadata about the environment.
195
- enabled (bool): A flag to enable or disable Events based on certain conditions.
196
- """
197
-
198
- url = "https://www.google-analytics.com/mp/collect?measurement_id=G-X8NCJYTQXM&api_secret=QLQrATrNSwGRFRLE-cbHJw"
199
-
200
- def __init__(self):
201
- """Initialize the Events object with default values for events, rate_limit, and metadata."""
202
- self.events = [] # events list
203
- self.rate_limit = 30.0 # rate limit (seconds)
204
- self.t = 0.0 # rate limit timer (seconds)
205
- self.metadata = {
206
- "cli": Path(ARGV[0]).name == "yolo",
207
- "install": "git" if GIT.is_repo else "pip" if IS_PIP_PACKAGE else "other",
208
- "python": PYTHON_VERSION.rsplit(".", 1)[0], # i.e. 3.13
209
- "CPU": get_cpu_info(),
210
- # "GPU": get_gpu_info(index=0) if cuda else None,
211
- "version": __version__,
212
- "env": ENVIRONMENT,
213
- "session_id": round(random.random() * 1e15),
214
- "engagement_time_msec": 1000,
215
- }
216
- self.enabled = (
217
- SETTINGS["sync"]
218
- and RANK in {-1, 0}
219
- and not TESTS_RUNNING
220
- and ONLINE
221
- and (IS_PIP_PACKAGE or GIT.origin == "https://github.com/ultralytics/ultralytics.git")
222
- )
223
-
224
- def __call__(self, cfg, device=None):
225
- """
226
- Attempt to add a new event to the events list and send events if the rate limit is reached.
227
-
228
- Args:
229
- cfg (IterableSimpleNamespace): The configuration object containing mode and task information.
230
- device (torch.device | str, optional): The device type (e.g., 'cpu', 'cuda').
231
- """
232
- if not self.enabled:
233
- # Events disabled, do nothing
234
- return
235
-
236
- # Attempt to add to events
237
- if len(self.events) < 25: # Events list limited to 25 events (drop any events past this)
238
- params = {
239
- **self.metadata,
240
- "task": cfg.task,
241
- "model": cfg.model if cfg.model in GITHUB_ASSETS_NAMES else "custom",
242
- "device": str(device),
243
- }
244
- if cfg.mode == "export":
245
- params["format"] = cfg.format
246
- self.events.append({"name": cfg.mode, "params": params})
247
-
248
- # Check rate limit
249
- t = time.time()
250
- if (t - self.t) < self.rate_limit:
251
- # Time is under rate limiter, wait to send
252
- return
253
-
254
- # Time is over rate limiter, send now
255
- data = {"client_id": SETTINGS["uuid"], "events": self.events} # SHA-256 anonymized UUID hash and events list
256
-
257
- # POST equivalent to requests.post(self.url, json=data)
258
- smart_request("post", self.url, json=data, retry=0, verbose=False)
259
-
260
- # Reset events and rate limit timer
261
- self.events = []
262
- self.t = t
263
-
264
-
265
- # Run below code on hub/utils init -------------------------------------------------------------------------------------
266
- events = Events()
@@ -1761,7 +1761,7 @@ class SAM2DynamicInteractivePredictor(SAM2Predictor):
1761
1761
  @smart_inference_mode()
1762
1762
  def inference(
1763
1763
  self,
1764
- img: torch.Tensor | np.ndarray,
1764
+ im: torch.Tensor | np.ndarray,
1765
1765
  bboxes: list[list[float]] | None = None,
1766
1766
  masks: torch.Tensor | np.ndarray | None = None,
1767
1767
  points: list[list[float]] | None = None,
@@ -1777,7 +1777,7 @@ class SAM2DynamicInteractivePredictor(SAM2Predictor):
1777
1777
  When update_memory is False, it will only run inference on the provided image without updating the memory.
1778
1778
 
1779
1779
  Args:
1780
- img (torch.Tensor | np.ndarray): The input image tensor or numpy array.
1780
+ im (torch.Tensor | np.ndarray): The input image tensor or numpy array.
1781
1781
  bboxes (List[List[float]] | None): Optional list of bounding boxes to update the memory.
1782
1782
  masks (List[torch.Tensor | np.ndarray] | None): Optional masks to update the memory.
1783
1783
  points (List[List[float]] | None): Optional list of points to update the memory, each point is [x, y].
@@ -1789,7 +1789,7 @@ class SAM2DynamicInteractivePredictor(SAM2Predictor):
1789
1789
  res_masks (torch.Tensor): The output masks in shape (C, H, W)
1790
1790
  object_score_logits (torch.Tensor): Quality scores for each mask
1791
1791
  """
1792
- self.get_im_features(img)
1792
+ self.get_im_features(im)
1793
1793
  points, labels, masks = self._prepare_prompts(
1794
1794
  dst_shape=self.imgsz,
1795
1795
  src_shape=self.batch[1][0].shape[:2],
@@ -133,8 +133,17 @@ class SegmentationValidator(DetectionValidator):
133
133
  (Dict[str, Any]): Prepared batch with processed annotations.
134
134
  """
135
135
  prepared_batch = super()._prepare_batch(si, batch)
136
- midx = [si] if self.args.overlap_mask else batch["batch_idx"] == si
137
- prepared_batch["masks"] = batch["masks"][midx]
136
+ nl = len(prepared_batch["cls"])
137
+ if self.args.overlap_mask:
138
+ masks = batch["masks"][si]
139
+ index = torch.arange(1, nl + 1, device=masks.device).view(nl, 1, 1)
140
+ masks = (masks == index).float()
141
+ else:
142
+ masks = batch["masks"][batch["batch_idx"] == si]
143
+ if nl and self.process is ops.process_mask_native:
144
+ masks = F.interpolate(masks[None], prepared_batch["imgsz"], mode="bilinear", align_corners=False)[0]
145
+ masks = masks.gt_(0.5)
146
+ prepared_batch["masks"] = masks
138
147
  return prepared_batch
139
148
 
140
149
  def _process_batch(self, preds: dict[str, torch.Tensor], batch: dict[str, Any]) -> dict[str, np.ndarray]:
@@ -158,20 +167,11 @@ class SegmentationValidator(DetectionValidator):
158
167
  >>> correct_preds = validator._process_batch(preds, batch)
159
168
  """
160
169
  tp = super()._process_batch(preds, batch)
161
- gt_cls, gt_masks = batch["cls"], batch["masks"]
170
+ gt_cls = batch["cls"]
162
171
  if len(gt_cls) == 0 or len(preds["cls"]) == 0:
163
172
  tp_m = np.zeros((len(preds["cls"]), self.niou), dtype=bool)
164
173
  else:
165
- pred_masks = preds["masks"]
166
- if self.args.overlap_mask:
167
- nl = len(gt_cls)
168
- index = torch.arange(nl, device=gt_masks.device).view(nl, 1, 1) + 1
169
- gt_masks = gt_masks.repeat(nl, 1, 1) # shape(1,640,640) -> (n,640,640)
170
- gt_masks = torch.where(gt_masks == index, 1.0, 0.0)
171
- if gt_masks.shape[1:] != pred_masks.shape[1:]:
172
- gt_masks = F.interpolate(gt_masks[None], pred_masks.shape[1:], mode="bilinear", align_corners=False)[0]
173
- gt_masks = gt_masks.gt_(0.5)
174
- iou = mask_iou(gt_masks.view(gt_masks.shape[0], -1), pred_masks.view(pred_masks.shape[0], -1))
174
+ iou = mask_iou(batch["masks"].flatten(1), preds["masks"].flatten(1))
175
175
  tp_m = self.match_predictions(preds["cls"], gt_cls, iou).cpu().numpy()
176
176
  tp.update({"tp_m": tp_m}) # update tp with mask IoU
177
177
  return tp
@@ -186,9 +186,9 @@ class YOLOEDetectValidator(DetectionValidator):
186
186
  self.device = select_device(self.args.device, verbose=False)
187
187
 
188
188
  if isinstance(model, (str, Path)):
189
- from ultralytics.nn.tasks import attempt_load_weights
189
+ from ultralytics.nn.tasks import load_checkpoint
190
190
 
191
- model = attempt_load_weights(model, device=self.device)
191
+ model, _ = load_checkpoint(model, device=self.device) # model, ckpt
192
192
  model.eval().to(self.device)
193
193
  data = check_det_dataset(refer_data or self.args.data)
194
194
  names = [name.split("/", 1)[0] for name in list(data["names"].values())]
@@ -5,18 +5,16 @@ from .tasks import (
5
5
  ClassificationModel,
6
6
  DetectionModel,
7
7
  SegmentationModel,
8
- attempt_load_one_weight,
9
- attempt_load_weights,
10
8
  guess_model_scale,
11
9
  guess_model_task,
10
+ load_checkpoint,
12
11
  parse_model,
13
12
  torch_safe_load,
14
13
  yaml_model_load,
15
14
  )
16
15
 
17
16
  __all__ = (
18
- "attempt_load_one_weight",
19
- "attempt_load_weights",
17
+ "load_checkpoint",
20
18
  "parse_model",
21
19
  "yaml_model_load",
22
20
  "guess_model_task",
@@ -203,9 +203,9 @@ class AutoBackend(nn.Module):
203
203
  model = model.fuse(verbose=verbose)
204
204
  model = model.to(device)
205
205
  else: # pt file
206
- from ultralytics.nn.tasks import attempt_load_one_weight
206
+ from ultralytics.nn.tasks import load_checkpoint
207
207
 
208
- model, _ = attempt_load_one_weight(model, device=device, fuse=fuse) # load model, ckpt
208
+ model, _ = load_checkpoint(model, device=device, fuse=fuse) # load model, ckpt
209
209
 
210
210
  # Common PyTorch model processing
211
211
  if hasattr(model, "kpt_shape"):
@@ -724,17 +724,14 @@ class AutoBackend(nn.Module):
724
724
  im_pil = Image.fromarray((im * 255).astype("uint8"))
725
725
  # im = im.resize((192, 320), Image.BILINEAR)
726
726
  y = self.model.predict({"image": im_pil}) # coordinates are xywh normalized
727
- if "confidence" in y:
728
- raise TypeError(
729
- "Ultralytics only supports inference of non-pipelined CoreML models exported with "
730
- f"'nms=False', but 'model={w}' has an NMS pipeline created by an 'nms=True' export."
731
- )
732
- # TODO: CoreML NMS inference handling
733
- # from ultralytics.utils.ops import xywh2xyxy
734
- # box = xywh2xyxy(y['coordinates'] * [[w, h, w, h]]) # xyxy pixels
735
- # conf, cls = y['confidence'].max(1), y['confidence'].argmax(1).astype(np.float32)
736
- # y = np.concatenate((box, conf.reshape(-1, 1), cls.reshape(-1, 1)), 1)
737
- y = list(y.values())
727
+ if "confidence" in y: # NMS included
728
+ from ultralytics.utils.ops import xywh2xyxy
729
+
730
+ box = xywh2xyxy(y["coordinates"] * [[w, h, w, h]]) # xyxy pixels
731
+ cls = y["confidence"].argmax(1, keepdims=True)
732
+ y = np.concatenate((box, np.take_along_axis(y["confidence"], cls, axis=1), cls), 1)[None]
733
+ else:
734
+ y = list(y.values())
738
735
  if len(y) == 2 and len(y[1].shape) != 4: # segmentation model
739
736
  y = list(reversed(y)) # reversed for segmentation models (pred, proto)
740
737
 
@@ -1483,61 +1483,12 @@ def torch_safe_load(weight, safe_only=False):
1483
1483
  return ckpt, file
1484
1484
 
1485
1485
 
1486
- def attempt_load_weights(weights, device=None, inplace=True, fuse=False):
1487
- """
1488
- Load an ensemble of models weights=[a,b,c] or a single model weights=[a] or weights=a.
1489
-
1490
- Args:
1491
- weights (str | List[str]): Model weights path(s).
1492
- device (torch.device, optional): Device to load model to.
1493
- inplace (bool): Whether to do inplace operations.
1494
- fuse (bool): Whether to fuse model.
1495
-
1496
- Returns:
1497
- (torch.nn.Module): Loaded model.
1498
- """
1499
- ensemble = Ensemble()
1500
- for w in weights if isinstance(weights, list) else [weights]:
1501
- ckpt, w = torch_safe_load(w) # load ckpt
1502
- args = {**DEFAULT_CFG_DICT, **ckpt["train_args"]} if "train_args" in ckpt else None # combined args
1503
- model = (ckpt.get("ema") or ckpt["model"]).float() # FP32 model
1504
-
1505
- # Model compatibility updates
1506
- model.args = args # attach args to model
1507
- model.pt_path = w # attach *.pt file path to model
1508
- model.task = getattr(model, "task", guess_model_task(model))
1509
- if not hasattr(model, "stride"):
1510
- model.stride = torch.tensor([32.0])
1511
-
1512
- # Append
1513
- ensemble.append((model.fuse().eval() if fuse and hasattr(model, "fuse") else model.eval()).to(device))
1514
-
1515
- # Module updates
1516
- for m in ensemble.modules():
1517
- if hasattr(m, "inplace"):
1518
- m.inplace = inplace
1519
- elif isinstance(m, torch.nn.Upsample) and not hasattr(m, "recompute_scale_factor"):
1520
- m.recompute_scale_factor = None # torch 1.11.0 compatibility
1521
-
1522
- # Return model
1523
- if len(ensemble) == 1:
1524
- return ensemble[-1]
1525
-
1526
- # Return ensemble
1527
- LOGGER.info(f"Ensemble created with {weights}\n")
1528
- for k in "names", "nc", "yaml":
1529
- setattr(ensemble, k, getattr(ensemble[0], k))
1530
- ensemble.stride = ensemble[int(torch.argmax(torch.tensor([m.stride.max() for m in ensemble])))].stride
1531
- assert all(ensemble[0].nc == m.nc for m in ensemble), f"Models differ in class counts {[m.nc for m in ensemble]}"
1532
- return ensemble
1533
-
1534
-
1535
- def attempt_load_one_weight(weight, device=None, inplace=True, fuse=False):
1486
+ def load_checkpoint(weight, device=None, inplace=True, fuse=False):
1536
1487
  """
1537
1488
  Load a single model weights.
1538
1489
 
1539
1490
  Args:
1540
- weight (str): Model weight path.
1491
+ weight (str | Path): Model weight path.
1541
1492
  device (torch.device, optional): Device to load model to.
1542
1493
  inplace (bool): Whether to do inplace operations.
1543
1494
  fuse (bool): Whether to fuse model.