dgenerate-ultralytics-headless 8.3.159__tar.gz → 8.3.160__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 (278) hide show
  1. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/PKG-INFO +1 -1
  2. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +1 -1
  3. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/__init__.py +1 -1
  4. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/__init__.py +0 -2
  5. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/augment.py +8 -8
  6. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/engine/exporter.py +1 -1
  7. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/engine/model.py +2 -0
  8. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/engine/results.py +0 -5
  9. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/model.py +25 -24
  10. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/world/train.py +1 -1
  11. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/yoloe/train.py +1 -1
  12. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/heatmap.py +1 -1
  13. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/object_counter.py +9 -9
  14. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/solutions.py +2 -2
  15. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/__init__.py +1 -4
  16. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/instance.py +2 -0
  17. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/metrics.py +18 -30
  18. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/LICENSE +0 -0
  19. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/README.md +0 -0
  20. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +0 -0
  21. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
  22. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
  23. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/dgenerate_ultralytics_headless.egg-info/requires.txt +0 -0
  24. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
  25. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/pyproject.toml +0 -0
  26. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/setup.cfg +0 -0
  27. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/tests/__init__.py +0 -0
  28. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/tests/conftest.py +0 -0
  29. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/tests/test_cli.py +0 -0
  30. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/tests/test_cuda.py +0 -0
  31. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/tests/test_engine.py +0 -0
  32. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/tests/test_exports.py +0 -0
  33. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/tests/test_integrations.py +0 -0
  34. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/tests/test_python.py +0 -0
  35. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/tests/test_solutions.py +0 -0
  36. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/assets/bus.jpg +0 -0
  37. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/assets/zidane.jpg +0 -0
  38. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  39. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  40. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  41. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  42. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  43. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  44. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  45. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  46. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  47. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  48. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  49. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  50. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  51. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  52. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/coco.yaml +0 -0
  53. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  54. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  55. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  56. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  57. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  58. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  59. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  60. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  61. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  62. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  63. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  64. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  65. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  66. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  67. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  68. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  69. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/signature.yaml +0 -0
  70. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  71. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/datasets/xView.yaml +0 -0
  72. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/default.yaml +0 -0
  73. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  74. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  75. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  76. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  77. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  78. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  79. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  80. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  81. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  82. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  83. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  84. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  85. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  86. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  87. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  88. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  89. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  90. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  91. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  92. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  93. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  94. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  95. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  96. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  97. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  98. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  99. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  100. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  101. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  102. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  103. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  104. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  105. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  106. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  107. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  108. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  109. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  110. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  111. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  112. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  113. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  114. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  115. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  116. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  117. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  118. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  119. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  120. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  121. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  122. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  123. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  124. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  125. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  126. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  127. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  128. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  129. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  130. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/__init__.py +0 -0
  131. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/annotator.py +0 -0
  132. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/base.py +0 -0
  133. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/build.py +0 -0
  134. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/converter.py +0 -0
  135. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/dataset.py +0 -0
  136. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/loaders.py +0 -0
  137. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/scripts/download_weights.sh +0 -0
  138. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/scripts/get_coco.sh +0 -0
  139. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/scripts/get_coco128.sh +0 -0
  140. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  141. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/split.py +0 -0
  142. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/split_dota.py +0 -0
  143. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/data/utils.py +0 -0
  144. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/engine/__init__.py +0 -0
  145. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/engine/predictor.py +0 -0
  146. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/engine/trainer.py +0 -0
  147. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/engine/tuner.py +0 -0
  148. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/engine/validator.py +0 -0
  149. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/hub/__init__.py +0 -0
  150. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/hub/auth.py +0 -0
  151. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/hub/google/__init__.py +0 -0
  152. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/hub/session.py +0 -0
  153. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/hub/utils.py +0 -0
  154. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/__init__.py +0 -0
  155. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/fastsam/__init__.py +0 -0
  156. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/fastsam/model.py +0 -0
  157. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/fastsam/predict.py +0 -0
  158. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/fastsam/utils.py +0 -0
  159. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/fastsam/val.py +0 -0
  160. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/nas/__init__.py +0 -0
  161. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/nas/model.py +0 -0
  162. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/nas/predict.py +0 -0
  163. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/nas/val.py +0 -0
  164. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/rtdetr/__init__.py +0 -0
  165. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/rtdetr/model.py +0 -0
  166. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/rtdetr/predict.py +0 -0
  167. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/rtdetr/train.py +0 -0
  168. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/rtdetr/val.py +0 -0
  169. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/__init__.py +0 -0
  170. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/amg.py +0 -0
  171. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/build.py +0 -0
  172. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/model.py +0 -0
  173. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/modules/__init__.py +0 -0
  174. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/modules/blocks.py +0 -0
  175. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/modules/decoders.py +0 -0
  176. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/modules/encoders.py +0 -0
  177. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  178. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/modules/sam.py +0 -0
  179. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  180. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/modules/transformer.py +0 -0
  181. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/modules/utils.py +0 -0
  182. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/sam/predict.py +0 -0
  183. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/utils/__init__.py +0 -0
  184. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/utils/loss.py +0 -0
  185. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/utils/ops.py +0 -0
  186. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/__init__.py +0 -0
  187. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/classify/__init__.py +0 -0
  188. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/classify/predict.py +0 -0
  189. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/classify/train.py +0 -0
  190. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/classify/val.py +0 -0
  191. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/detect/__init__.py +0 -0
  192. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/detect/predict.py +0 -0
  193. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/detect/train.py +0 -0
  194. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/detect/val.py +0 -0
  195. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/obb/__init__.py +0 -0
  196. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/obb/predict.py +0 -0
  197. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/obb/train.py +0 -0
  198. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/obb/val.py +0 -0
  199. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/pose/__init__.py +0 -0
  200. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/pose/predict.py +0 -0
  201. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/pose/train.py +0 -0
  202. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/pose/val.py +0 -0
  203. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/segment/__init__.py +0 -0
  204. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/segment/predict.py +0 -0
  205. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/segment/train.py +0 -0
  206. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/segment/val.py +0 -0
  207. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/world/__init__.py +0 -0
  208. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/world/train_world.py +0 -0
  209. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  210. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  211. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  212. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/models/yolo/yoloe/val.py +0 -0
  213. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/__init__.py +0 -0
  214. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/autobackend.py +0 -0
  215. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/modules/__init__.py +0 -0
  216. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/modules/activation.py +0 -0
  217. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/modules/block.py +0 -0
  218. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/modules/conv.py +0 -0
  219. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/modules/head.py +0 -0
  220. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/modules/transformer.py +0 -0
  221. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/modules/utils.py +0 -0
  222. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/tasks.py +0 -0
  223. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/nn/text_model.py +0 -0
  224. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/__init__.py +0 -0
  225. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/ai_gym.py +0 -0
  226. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/analytics.py +0 -0
  227. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/config.py +0 -0
  228. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/distance_calculation.py +0 -0
  229. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/instance_segmentation.py +0 -0
  230. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/object_blurrer.py +0 -0
  231. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/object_cropper.py +0 -0
  232. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/parking_management.py +0 -0
  233. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/queue_management.py +0 -0
  234. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/region_counter.py +0 -0
  235. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/security_alarm.py +0 -0
  236. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/similarity_search.py +0 -0
  237. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/speed_estimation.py +0 -0
  238. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/streamlit_inference.py +0 -0
  239. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/templates/similarity-search.html +0 -0
  240. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/trackzone.py +0 -0
  241. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/solutions/vision_eye.py +0 -0
  242. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/trackers/__init__.py +0 -0
  243. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/trackers/basetrack.py +0 -0
  244. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/trackers/bot_sort.py +0 -0
  245. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/trackers/byte_tracker.py +0 -0
  246. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/trackers/track.py +0 -0
  247. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/trackers/utils/__init__.py +0 -0
  248. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/trackers/utils/gmc.py +0 -0
  249. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  250. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/trackers/utils/matching.py +0 -0
  251. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/autobatch.py +0 -0
  252. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/autodevice.py +0 -0
  253. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/benchmarks.py +0 -0
  254. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/__init__.py +0 -0
  255. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/base.py +0 -0
  256. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/clearml.py +0 -0
  257. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/comet.py +0 -0
  258. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/dvc.py +0 -0
  259. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/hub.py +0 -0
  260. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/mlflow.py +0 -0
  261. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/neptune.py +0 -0
  262. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/raytune.py +0 -0
  263. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  264. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/callbacks/wb.py +0 -0
  265. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/checks.py +0 -0
  266. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/dist.py +0 -0
  267. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/downloads.py +0 -0
  268. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/errors.py +0 -0
  269. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/export.py +0 -0
  270. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/files.py +0 -0
  271. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/loss.py +0 -0
  272. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/ops.py +0 -0
  273. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/patches.py +0 -0
  274. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/plotting.py +0 -0
  275. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/tal.py +0 -0
  276. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/torch_utils.py +0 -0
  277. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/ultralytics/utils/triton.py +0 -0
  278. {dgenerate_ultralytics_headless-8.3.159 → dgenerate_ultralytics_headless-8.3.160}/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.3.159
3
+ Version: 8.3.160
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.159
3
+ Version: 8.3.160
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
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.159"
3
+ __version__ = "8.3.160"
4
4
 
5
5
  import os
6
6
 
@@ -954,8 +954,6 @@ def entrypoint(debug: str = "") -> None:
954
954
  from ultralytics import YOLO
955
955
 
956
956
  model = YOLO(model, task=task)
957
- if isinstance(overrides.get("pretrained"), str):
958
- model.load(overrides["pretrained"])
959
957
 
960
958
  # Task Update
961
959
  if task != model.task:
@@ -251,8 +251,7 @@ class Compose:
251
251
  >>> multiple_transforms = compose[0:2] # Returns a Compose object with RandomFlip and RandomPerspective
252
252
  """
253
253
  assert isinstance(index, (int, list)), f"The indices should be either list or int type but got {type(index)}"
254
- index = [index] if isinstance(index, int) else index
255
- return Compose([self.transforms[i] for i in index])
254
+ return Compose([self.transforms[i] for i in index]) if isinstance(index, list) else self.transforms[index]
256
255
 
257
256
  def __setitem__(self, index: Union[list, int], value: Union[list, int]) -> None:
258
257
  """
@@ -1560,14 +1559,15 @@ class RandomFlip:
1560
1559
  h = 1 if instances.normalized else h
1561
1560
  w = 1 if instances.normalized else w
1562
1561
 
1563
- # Flip up-down
1562
+ # WARNING: two separate if and calls to random.random() intentional for reproducibility with older versions
1564
1563
  if self.direction == "vertical" and random.random() < self.p:
1565
1564
  img = np.flipud(img)
1566
1565
  instances.flipud(h)
1566
+ if self.flip_idx is not None and instances.keypoints is not None:
1567
+ instances.keypoints = np.ascontiguousarray(instances.keypoints[:, self.flip_idx, :])
1567
1568
  if self.direction == "horizontal" and random.random() < self.p:
1568
1569
  img = np.fliplr(img)
1569
1570
  instances.fliplr(w)
1570
- # For keypoints
1571
1571
  if self.flip_idx is not None and instances.keypoints is not None:
1572
1572
  instances.keypoints = np.ascontiguousarray(instances.keypoints[:, self.flip_idx, :])
1573
1573
  labels["img"] = np.ascontiguousarray(img)
@@ -2533,9 +2533,9 @@ def v8_transforms(dataset, imgsz, hyp, stretch=False):
2533
2533
  flip_idx = dataset.data.get("flip_idx", []) # for keypoints augmentation
2534
2534
  if dataset.use_keypoints:
2535
2535
  kpt_shape = dataset.data.get("kpt_shape", None)
2536
- if len(flip_idx) == 0 and hyp.fliplr > 0.0:
2537
- hyp.fliplr = 0.0
2538
- LOGGER.warning("No 'flip_idx' array defined in data.yaml, setting augmentation 'fliplr=0.0'")
2536
+ if len(flip_idx) == 0 and (hyp.fliplr > 0.0 or hyp.flipud > 0.0):
2537
+ hyp.fliplr = hyp.flipud = 0.0 # both fliplr and flipud require flip_idx
2538
+ LOGGER.warning("No 'flip_idx' array defined in data.yaml, disabling 'fliplr' and 'flipud' augmentations.")
2539
2539
  elif flip_idx and (len(flip_idx) != kpt_shape[0]):
2540
2540
  raise ValueError(f"data.yaml flip_idx={flip_idx} length must be equal to kpt_shape[0]={kpt_shape[0]}")
2541
2541
 
@@ -2546,7 +2546,7 @@ def v8_transforms(dataset, imgsz, hyp, stretch=False):
2546
2546
  CutMix(dataset, pre_transform=pre_transform, p=hyp.cutmix),
2547
2547
  Albumentations(p=1.0),
2548
2548
  RandomHSV(hgain=hyp.hsv_h, sgain=hyp.hsv_s, vgain=hyp.hsv_v),
2549
- RandomFlip(direction="vertical", p=hyp.flipud),
2549
+ RandomFlip(direction="vertical", p=hyp.flipud, flip_idx=flip_idx),
2550
2550
  RandomFlip(direction="horizontal", p=hyp.fliplr, flip_idx=flip_idx),
2551
2551
  ]
2552
2552
  ) # transforms
@@ -1495,7 +1495,7 @@ class NMSModel(torch.nn.Module):
1495
1495
  scores, classes = scores.max(dim=-1)
1496
1496
  self.args.max_det = min(pred.shape[1], self.args.max_det) # in case num_anchors < max_det
1497
1497
  # (N, max_det, 4 coords + 1 class score + 1 class label + extra_shape).
1498
- out = torch.zeros(bs, self.args.max_det, boxes.shape[-1] + 2 + extra_shape, **kwargs)
1498
+ out = torch.zeros(pred.shape[0], self.args.max_det, boxes.shape[-1] + 2 + extra_shape, **kwargs)
1499
1499
  for i in range(bs):
1500
1500
  box, cls, score, extra = boxes[i], classes[i], scores[i], extras[i]
1501
1501
  mask = score > self.args.conf
@@ -777,6 +777,8 @@ class Model(torch.nn.Module):
777
777
 
778
778
  checks.check_pip_update_available()
779
779
 
780
+ if isinstance(kwargs.get("pretrained", None), (str, Path)):
781
+ self.load(kwargs["pretrained"]) # load pretrained weights if provided
780
782
  overrides = YAML.load(checks.check_yaml(kwargs["cfg"])) if kwargs.get("cfg") else self.overrides
781
783
  custom = {
782
784
  # NOTE: handle the case when 'cfg' includes 'data'.
@@ -16,7 +16,6 @@ import torch
16
16
  from ultralytics.data.augment import LetterBox
17
17
  from ultralytics.utils import LOGGER, DataExportMixin, SimpleClass, ops
18
18
  from ultralytics.utils.plotting import Annotator, colors, save_one_box
19
- from ultralytics.utils.torch_utils import smart_inference_mode
20
19
 
21
20
 
22
21
  class BaseTensor(SimpleClass):
@@ -1204,7 +1203,6 @@ class Keypoints(BaseTensor):
1204
1203
  >>> keypoints_cpu = keypoints.cpu() # Move keypoints to CPU
1205
1204
  """
1206
1205
 
1207
- @smart_inference_mode() # avoid keypoints < conf in-place error
1208
1206
  def __init__(self, keypoints: Union[torch.Tensor, np.ndarray], orig_shape: Tuple[int, int]) -> None:
1209
1207
  """
1210
1208
  Initialize the Keypoints object with detection keypoints and original image dimensions.
@@ -1225,9 +1223,6 @@ class Keypoints(BaseTensor):
1225
1223
  """
1226
1224
  if keypoints.ndim == 2:
1227
1225
  keypoints = keypoints[None, :]
1228
- if keypoints.shape[2] == 3: # x, y, conf
1229
- mask = keypoints[..., 2] < 0.5 # points with conf < 0.5 (not visible)
1230
- keypoints[..., :2][mask] = 0
1231
1226
  super().__init__(keypoints, orig_shape)
1232
1227
  self.has_visible = self.data.shape[-1] == 3
1233
1228
 
@@ -406,18 +406,18 @@ class YOLOE(Model):
406
406
  f"Expected equal number of bounding boxes and classes, but got {len(visual_prompts['bboxes'])} and "
407
407
  f"{len(visual_prompts['cls'])} respectively"
408
408
  )
409
- self.predictor = (predictor or self._smart_load("predictor"))(
410
- overrides={
411
- "task": self.model.task,
412
- "mode": "predict",
413
- "save": False,
414
- "verbose": refer_image is None,
415
- "batch": 1,
416
- },
417
- _callbacks=self.callbacks,
418
- )
409
+ if not isinstance(self.predictor, yolo.yoloe.YOLOEVPDetectPredictor):
410
+ self.predictor = (predictor or yolo.yoloe.YOLOEVPDetectPredictor)(
411
+ overrides={
412
+ "task": self.model.task,
413
+ "mode": "predict",
414
+ "save": False,
415
+ "verbose": refer_image is None,
416
+ "batch": 1,
417
+ },
418
+ _callbacks=self.callbacks,
419
+ )
419
420
 
420
- if len(visual_prompts):
421
421
  num_cls = (
422
422
  max(len(set(c)) for c in visual_prompts["cls"])
423
423
  if isinstance(source, list) and refer_image is None # means multiple images
@@ -426,18 +426,19 @@ class YOLOE(Model):
426
426
  self.model.model[-1].nc = num_cls
427
427
  self.model.names = [f"object{i}" for i in range(num_cls)]
428
428
  self.predictor.set_prompts(visual_prompts.copy())
429
-
430
- self.predictor.setup_model(model=self.model)
431
-
432
- if refer_image is None and source is not None:
433
- dataset = load_inference_source(source)
434
- if dataset.mode in {"video", "stream"}:
435
- # NOTE: set the first frame as refer image for videos/streams inference
436
- refer_image = next(iter(dataset))[1][0]
437
- if refer_image is not None and len(visual_prompts):
438
- vpe = self.predictor.get_vpe(refer_image)
439
- self.model.set_classes(self.model.names, vpe)
440
- self.task = "segment" if isinstance(self.predictor, yolo.segment.SegmentationPredictor) else "detect"
441
- self.predictor = None # reset predictor
429
+ self.predictor.setup_model(model=self.model)
430
+
431
+ if refer_image is None and source is not None:
432
+ dataset = load_inference_source(source)
433
+ if dataset.mode in {"video", "stream"}:
434
+ # NOTE: set the first frame as refer image for videos/streams inference
435
+ refer_image = next(iter(dataset))[1][0]
436
+ if refer_image is not None:
437
+ vpe = self.predictor.get_vpe(refer_image)
438
+ self.model.set_classes(self.model.names, vpe)
439
+ self.task = "segment" if isinstance(self.predictor, yolo.segment.SegmentationPredictor) else "detect"
440
+ self.predictor = None # reset predictor
441
+ elif isinstance(self.predictor, yolo.yoloe.YOLOEVPDetectPredictor):
442
+ self.predictor = None # reset predictor if no visual prompts
442
443
 
443
444
  return super().predict(source, stream, **kwargs)
@@ -158,7 +158,7 @@ class WorldTrainer(DetectionTrainer):
158
158
  return txt_map
159
159
  LOGGER.info(f"Caching text embeddings to '{cache_path}'")
160
160
  assert self.model is not None
161
- txt_feats = self.model.get_text_pe(texts, batch, cache_clip_model=False)
161
+ txt_feats = de_parallel(self.model).get_text_pe(texts, batch, cache_clip_model=False)
162
162
  txt_map = dict(zip(texts, txt_feats.squeeze(0)))
163
163
  torch.save(txt_map, cache_path)
164
164
  return txt_map
@@ -222,7 +222,7 @@ class YOLOETrainerFromScratch(YOLOETrainer, WorldTrainerFromScratch):
222
222
  return txt_map
223
223
  LOGGER.info(f"Caching text embeddings to '{cache_path}'")
224
224
  assert self.model is not None
225
- txt_feats = self.model.get_text_pe(texts, batch, without_reprta=True, cache_clip_model=False)
225
+ txt_feats = de_parallel(self.model).get_text_pe(texts, batch, without_reprta=True, cache_clip_model=False)
226
226
  txt_map = dict(zip(texts, txt_feats.squeeze(0)))
227
227
  torch.save(txt_map, cache_path)
228
228
  return txt_map
@@ -124,6 +124,6 @@ class Heatmap(ObjectCounter):
124
124
  plot_im=plot_im,
125
125
  in_count=self.in_count,
126
126
  out_count=self.out_count,
127
- classwise_count=dict(self.classwise_counts),
127
+ classwise_count=dict(self.classwise_count),
128
128
  total_tracks=len(self.track_ids),
129
129
  )
@@ -43,7 +43,7 @@ class ObjectCounter(BaseSolution):
43
43
  self.in_count = 0 # Counter for objects moving inward
44
44
  self.out_count = 0 # Counter for objects moving outward
45
45
  self.counted_ids = [] # List of IDs of objects that have been counted
46
- self.classwise_counts = defaultdict(lambda: {"IN": 0, "OUT": 0}) # Dictionary for counts, categorized by class
46
+ self.classwise_count = defaultdict(lambda: {"IN": 0, "OUT": 0}) # Dictionary for counts, categorized by class
47
47
  self.region_initialized = False # Flag indicating whether the region has been initialized
48
48
 
49
49
  self.show_in = self.CFG["show_in"]
@@ -85,17 +85,17 @@ class ObjectCounter(BaseSolution):
85
85
  # Vertical region: Compare x-coordinates to determine direction
86
86
  if current_centroid[0] > prev_position[0]: # Moving right
87
87
  self.in_count += 1
88
- self.classwise_counts[self.names[cls]]["IN"] += 1
88
+ self.classwise_count[self.names[cls]]["IN"] += 1
89
89
  else: # Moving left
90
90
  self.out_count += 1
91
- self.classwise_counts[self.names[cls]]["OUT"] += 1
91
+ self.classwise_count[self.names[cls]]["OUT"] += 1
92
92
  # Horizontal region: Compare y-coordinates to determine direction
93
93
  elif current_centroid[1] > prev_position[1]: # Moving downward
94
94
  self.in_count += 1
95
- self.classwise_counts[self.names[cls]]["IN"] += 1
95
+ self.classwise_count[self.names[cls]]["IN"] += 1
96
96
  else: # Moving upward
97
97
  self.out_count += 1
98
- self.classwise_counts[self.names[cls]]["OUT"] += 1
98
+ self.classwise_count[self.names[cls]]["OUT"] += 1
99
99
  self.counted_ids.append(track_id)
100
100
 
101
101
  elif len(self.region) > 2: # Polygonal region
@@ -111,10 +111,10 @@ class ObjectCounter(BaseSolution):
111
111
  and current_centroid[1] > prev_position[1]
112
112
  ): # Moving right or downward
113
113
  self.in_count += 1
114
- self.classwise_counts[self.names[cls]]["IN"] += 1
114
+ self.classwise_count[self.names[cls]]["IN"] += 1
115
115
  else: # Moving left or upward
116
116
  self.out_count += 1
117
- self.classwise_counts[self.names[cls]]["OUT"] += 1
117
+ self.classwise_count[self.names[cls]]["OUT"] += 1
118
118
  self.counted_ids.append(track_id)
119
119
 
120
120
  def display_counts(self, plot_im) -> None:
@@ -132,7 +132,7 @@ class ObjectCounter(BaseSolution):
132
132
  labels_dict = {
133
133
  str.capitalize(key): f"{'IN ' + str(value['IN']) if self.show_in else ''} "
134
134
  f"{'OUT ' + str(value['OUT']) if self.show_out else ''}".strip()
135
- for key, value in self.classwise_counts.items()
135
+ for key, value in self.classwise_count.items()
136
136
  if value["IN"] != 0 or value["OUT"] != 0 and (self.show_in or self.show_out)
137
137
  }
138
138
  if labels_dict:
@@ -190,6 +190,6 @@ class ObjectCounter(BaseSolution):
190
190
  plot_im=plot_im,
191
191
  in_count=self.in_count,
192
192
  out_count=self.out_count,
193
- classwise_count=dict(self.classwise_counts),
193
+ classwise_count=dict(self.classwise_count),
194
194
  total_tracks=len(self.track_ids),
195
195
  )
@@ -808,10 +808,10 @@ class SolutionResults:
808
808
  filled_slots (int): The number of filled slots in a monitored area.
809
809
  email_sent (bool): A flag indicating whether an email notification was sent.
810
810
  total_tracks (int): The total number of tracked objects.
811
- region_counts (Dict): The count of objects within a specific region.
811
+ region_counts (Dict[str, int]): The count of objects within a specific region.
812
812
  speed_dict (Dict[str, float]): A dictionary containing speed information for tracked objects.
813
813
  total_crop_objects (int): Total number of cropped objects using ObjectCropper class.
814
- speed (Dict): Performance timing information for tracking and solution processing.
814
+ speed (Dict[str, float]): Performance timing information for tracking and solution processing.
815
815
  """
816
816
 
817
817
  def __init__(self, **kwargs):
@@ -255,11 +255,8 @@ class DataExportMixin:
255
255
  Notes:
256
256
  Requires `lxml` package to be installed.
257
257
  """
258
- from ultralytics.utils.checks import check_requirements
259
-
260
- check_requirements("lxml")
261
258
  df = self.to_df(normalize=normalize, decimals=decimals)
262
- return '<?xml version="1.0" encoding="utf-8"?>\n<root></root>' if df.empty else df.to_xml()
259
+ return '<?xml version="1.0" encoding="utf-8"?>\n<root></root>' if df.empty else df.to_xml(parser="etree")
263
260
 
264
261
  def to_html(self, normalize=False, decimals=5, index=False):
265
262
  """
@@ -406,6 +406,8 @@ class Instances:
406
406
  | (self.keypoints[..., 1] < 0)
407
407
  | (self.keypoints[..., 1] > h)
408
408
  ] = 0.0
409
+ self.keypoints[..., 0] = self.keypoints[..., 0].clip(0, w)
410
+ self.keypoints[..., 1] = self.keypoints[..., 1].clip(0, h)
409
411
 
410
412
  def remove_zero_area_boxes(self):
411
413
  """
@@ -1078,23 +1078,21 @@ class DetMetrics(SimpleClass, DataExportMixin):
1078
1078
  >>> detection_summary = results.summary()
1079
1079
  >>> print(detection_summary)
1080
1080
  """
1081
- scalars = {
1082
- "box-map": round(self.box.map, decimals),
1083
- "box-map50": round(self.box.map50, decimals),
1084
- "box-map75": round(self.box.map75, decimals),
1085
- }
1086
1081
  per_class = {
1087
- "box-p": self.box.p,
1088
- "box-r": self.box.r,
1089
- "box-f1": self.box.f1,
1082
+ "Box-P": self.box.p,
1083
+ "Box-R": self.box.r,
1084
+ "Box-F1": self.box.f1,
1090
1085
  }
1091
1086
  return [
1092
1087
  {
1093
- "class_name": self.names[self.ap_class_index[i]],
1088
+ "Class": self.names[self.ap_class_index[i]],
1089
+ "Images": self.nt_per_image[self.ap_class_index[i]],
1090
+ "Instances": self.nt_per_class[self.ap_class_index[i]],
1094
1091
  **{k: round(v[i], decimals) for k, v in per_class.items()},
1095
- **scalars,
1092
+ "mAP50": round(self.class_result(i)[2], decimals),
1093
+ "mAP50-95": round(self.class_result(i)[3], decimals),
1096
1094
  }
1097
- for i in range(len(per_class["box-p"]))
1095
+ for i in range(len(per_class["Box-P"]))
1098
1096
  ]
1099
1097
 
1100
1098
 
@@ -1213,19 +1211,14 @@ class SegmentMetrics(DetMetrics):
1213
1211
  >>> seg_summary = results.summary(decimals=4)
1214
1212
  >>> print(seg_summary)
1215
1213
  """
1216
- scalars = {
1217
- "mask-map": round(self.seg.map, decimals),
1218
- "mask-map50": round(self.seg.map50, decimals),
1219
- "mask-map75": round(self.seg.map75, decimals),
1220
- }
1221
1214
  per_class = {
1222
- "mask-p": self.seg.p,
1223
- "mask-r": self.seg.r,
1224
- "mask-f1": self.seg.f1,
1215
+ "Mask-P": self.seg.p,
1216
+ "Mask-R": self.seg.r,
1217
+ "Mask-F1": self.seg.f1,
1225
1218
  }
1226
1219
  summary = DetMetrics.summary(self, normalize, decimals) # get box summary
1227
1220
  for i, s in enumerate(summary):
1228
- s.update({**{k: round(v[i], decimals) for k, v in per_class.items()}, **scalars})
1221
+ s.update({**{k: round(v[i], decimals) for k, v in per_class.items()}})
1229
1222
  return summary
1230
1223
 
1231
1224
 
@@ -1357,19 +1350,14 @@ class PoseMetrics(DetMetrics):
1357
1350
  >>> pose_summary = results.summary(decimals=4)
1358
1351
  >>> print(pose_summary)
1359
1352
  """
1360
- scalars = {
1361
- "pose-map": round(self.pose.map, decimals),
1362
- "pose-map50": round(self.pose.map50, decimals),
1363
- "pose-map75": round(self.pose.map75, decimals),
1364
- }
1365
1353
  per_class = {
1366
- "pose-p": self.pose.p,
1367
- "pose-r": self.pose.r,
1368
- "pose-f1": self.pose.f1,
1354
+ "Pose-P": self.pose.p,
1355
+ "Pose-R": self.pose.r,
1356
+ "Pose-F1": self.pose.f1,
1369
1357
  }
1370
1358
  summary = DetMetrics.summary(self, normalize, decimals) # get box summary
1371
1359
  for i, s in enumerate(summary):
1372
- s.update({**{k: round(v[i], decimals) for k, v in per_class.items()}, **scalars})
1360
+ s.update({**{k: round(v[i], decimals) for k, v in per_class.items()}})
1373
1361
  return summary
1374
1362
 
1375
1363
 
@@ -1445,7 +1433,7 @@ class ClassifyMetrics(SimpleClass, DataExportMixin):
1445
1433
  >>> classify_summary = results.summary(decimals=4)
1446
1434
  >>> print(classify_summary)
1447
1435
  """
1448
- return [{"classify-top1": round(self.top1, decimals), "classify-top5": round(self.top5, decimals)}]
1436
+ return [{"top1_acc": round(self.top1, decimals), "top5_acc": round(self.top5, decimals)}]
1449
1437
 
1450
1438
 
1451
1439
  class OBBMetrics(DetMetrics):