dgenerate-ultralytics-headless 8.3.179__tar.gz → 8.3.180__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.179 → dgenerate_ultralytics_headless-8.3.180}/PKG-INFO +1 -1
  2. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +1 -1
  3. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/__init__.py +1 -1
  4. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/VOC.yaml +1 -1
  5. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/VisDrone.yaml +1 -1
  6. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/predict.py +141 -85
  7. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/downloads.py +5 -3
  8. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/LICENSE +0 -0
  9. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/README.md +0 -0
  10. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +0 -0
  11. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
  12. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
  13. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/requires.txt +0 -0
  14. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
  15. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/pyproject.toml +0 -0
  16. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/setup.cfg +0 -0
  17. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/__init__.py +0 -0
  18. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/conftest.py +0 -0
  19. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_cli.py +0 -0
  20. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_cuda.py +0 -0
  21. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_engine.py +0 -0
  22. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_exports.py +0 -0
  23. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_integrations.py +0 -0
  24. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_python.py +0 -0
  25. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/tests/test_solutions.py +0 -0
  26. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/assets/bus.jpg +0 -0
  27. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/assets/zidane.jpg +0 -0
  28. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/__init__.py +0 -0
  29. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  30. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  31. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  32. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  33. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  34. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  35. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  36. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  37. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  38. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  39. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  40. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  41. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco.yaml +0 -0
  42. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  43. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  44. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  45. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  46. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  47. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  48. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  49. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  50. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  51. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  52. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  53. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  54. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  55. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  56. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  57. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  58. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/signature.yaml +0 -0
  59. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  60. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/datasets/xView.yaml +0 -0
  61. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/default.yaml +0 -0
  62. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  63. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  64. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  65. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  66. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  67. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  68. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  69. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  70. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  71. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  72. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  73. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  74. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  75. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  76. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  77. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  78. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  79. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  80. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  81. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  82. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  83. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  84. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  85. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  86. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  87. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  88. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  89. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  90. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  91. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  92. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  93. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  94. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  95. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  96. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  97. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  98. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  99. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  100. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  101. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  102. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  103. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  104. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  105. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  106. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  107. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  108. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  109. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  110. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  111. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  112. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  113. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  114. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  115. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  116. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  117. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  118. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  119. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/__init__.py +0 -0
  120. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/annotator.py +0 -0
  121. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/augment.py +0 -0
  122. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/base.py +0 -0
  123. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/build.py +0 -0
  124. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/converter.py +0 -0
  125. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/dataset.py +0 -0
  126. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/loaders.py +0 -0
  127. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/scripts/download_weights.sh +0 -0
  128. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/scripts/get_coco.sh +0 -0
  129. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/scripts/get_coco128.sh +0 -0
  130. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  131. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/split.py +0 -0
  132. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/split_dota.py +0 -0
  133. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/data/utils.py +0 -0
  134. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/__init__.py +0 -0
  135. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/exporter.py +0 -0
  136. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/model.py +0 -0
  137. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/predictor.py +0 -0
  138. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/results.py +0 -0
  139. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/trainer.py +0 -0
  140. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/tuner.py +0 -0
  141. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/engine/validator.py +0 -0
  142. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/__init__.py +0 -0
  143. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/auth.py +0 -0
  144. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/google/__init__.py +0 -0
  145. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/session.py +0 -0
  146. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/hub/utils.py +0 -0
  147. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/__init__.py +0 -0
  148. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/__init__.py +0 -0
  149. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/model.py +0 -0
  150. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/predict.py +0 -0
  151. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/utils.py +0 -0
  152. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/fastsam/val.py +0 -0
  153. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/nas/__init__.py +0 -0
  154. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/nas/model.py +0 -0
  155. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/nas/predict.py +0 -0
  156. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/nas/val.py +0 -0
  157. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/__init__.py +0 -0
  158. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/model.py +0 -0
  159. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/predict.py +0 -0
  160. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/train.py +0 -0
  161. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/rtdetr/val.py +0 -0
  162. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/__init__.py +0 -0
  163. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/amg.py +0 -0
  164. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/build.py +0 -0
  165. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/model.py +0 -0
  166. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/__init__.py +0 -0
  167. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/blocks.py +0 -0
  168. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/decoders.py +0 -0
  169. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/encoders.py +0 -0
  170. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  171. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/sam.py +0 -0
  172. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  173. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/transformer.py +0 -0
  174. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/sam/modules/utils.py +0 -0
  175. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/utils/__init__.py +0 -0
  176. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/utils/loss.py +0 -0
  177. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/utils/ops.py +0 -0
  178. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/__init__.py +0 -0
  179. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/classify/__init__.py +0 -0
  180. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/classify/predict.py +0 -0
  181. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/classify/train.py +0 -0
  182. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/classify/val.py +0 -0
  183. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/detect/__init__.py +0 -0
  184. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/detect/predict.py +0 -0
  185. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/detect/train.py +0 -0
  186. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/detect/val.py +0 -0
  187. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/model.py +0 -0
  188. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/obb/__init__.py +0 -0
  189. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/obb/predict.py +0 -0
  190. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/obb/train.py +0 -0
  191. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/obb/val.py +0 -0
  192. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/pose/__init__.py +0 -0
  193. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/pose/predict.py +0 -0
  194. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/pose/train.py +0 -0
  195. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/pose/val.py +0 -0
  196. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/segment/__init__.py +0 -0
  197. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/segment/predict.py +0 -0
  198. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/segment/train.py +0 -0
  199. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/segment/val.py +0 -0
  200. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/world/__init__.py +0 -0
  201. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/world/train.py +0 -0
  202. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/world/train_world.py +0 -0
  203. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  204. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  205. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/train.py +0 -0
  206. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  207. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/models/yolo/yoloe/val.py +0 -0
  208. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/__init__.py +0 -0
  209. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/autobackend.py +0 -0
  210. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/__init__.py +0 -0
  211. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/activation.py +0 -0
  212. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/block.py +0 -0
  213. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/conv.py +0 -0
  214. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/head.py +0 -0
  215. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/transformer.py +0 -0
  216. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/modules/utils.py +0 -0
  217. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/tasks.py +0 -0
  218. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/nn/text_model.py +0 -0
  219. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/__init__.py +0 -0
  220. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/ai_gym.py +0 -0
  221. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/analytics.py +0 -0
  222. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/config.py +0 -0
  223. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/distance_calculation.py +0 -0
  224. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/heatmap.py +0 -0
  225. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/instance_segmentation.py +0 -0
  226. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/object_blurrer.py +0 -0
  227. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/object_counter.py +0 -0
  228. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/object_cropper.py +0 -0
  229. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/parking_management.py +0 -0
  230. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/queue_management.py +0 -0
  231. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/region_counter.py +0 -0
  232. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/security_alarm.py +0 -0
  233. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/similarity_search.py +0 -0
  234. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/solutions.py +0 -0
  235. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/speed_estimation.py +0 -0
  236. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/streamlit_inference.py +0 -0
  237. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/templates/similarity-search.html +0 -0
  238. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/trackzone.py +0 -0
  239. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/solutions/vision_eye.py +0 -0
  240. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/__init__.py +0 -0
  241. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/basetrack.py +0 -0
  242. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/bot_sort.py +0 -0
  243. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/byte_tracker.py +0 -0
  244. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/track.py +0 -0
  245. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/utils/__init__.py +0 -0
  246. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/utils/gmc.py +0 -0
  247. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  248. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/trackers/utils/matching.py +0 -0
  249. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/__init__.py +0 -0
  250. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/autobatch.py +0 -0
  251. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/autodevice.py +0 -0
  252. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/benchmarks.py +0 -0
  253. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/__init__.py +0 -0
  254. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/base.py +0 -0
  255. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/clearml.py +0 -0
  256. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/comet.py +0 -0
  257. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/dvc.py +0 -0
  258. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/hub.py +0 -0
  259. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/mlflow.py +0 -0
  260. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/neptune.py +0 -0
  261. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/raytune.py +0 -0
  262. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  263. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/callbacks/wb.py +0 -0
  264. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/checks.py +0 -0
  265. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/dist.py +0 -0
  266. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/errors.py +0 -0
  267. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/export.py +0 -0
  268. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/files.py +0 -0
  269. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/instance.py +0 -0
  270. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/loss.py +0 -0
  271. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/metrics.py +0 -0
  272. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/ops.py +0 -0
  273. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/patches.py +0 -0
  274. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/plotting.py +0 -0
  275. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/tal.py +0 -0
  276. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/torch_utils.py +0 -0
  277. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/ultralytics/utils/triton.py +0 -0
  278. {dgenerate_ultralytics_headless-8.3.179 → dgenerate_ultralytics_headless-8.3.180}/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.179
3
+ Version: 8.3.180
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.179
3
+ Version: 8.3.180
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.179"
3
+ __version__ = "8.3.180"
4
4
 
5
5
  import os
6
6
 
@@ -87,7 +87,7 @@ download: |
87
87
  f"{url}VOCtest_06-Nov-2007.zip", # 438MB, 4953 images
88
88
  f"{url}VOCtrainval_11-May-2012.zip", # 1.95GB, 17126 images
89
89
  ]
90
- download(urls, dir=dir / "images", curl=True, threads=3, exist_ok=True) # download and unzip over existing (required)
90
+ download(urls, dir=dir / "images", threads=3, exist_ok=True) # download and unzip over existing (required)
91
91
 
92
92
  # Convert
93
93
  path = dir / "images/VOCdevkit"
@@ -78,7 +78,7 @@ download: |
78
78
  "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip",
79
79
  # "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip",
80
80
  ]
81
- download(urls, dir=dir, curl=True, threads=4)
81
+ download(urls, dir=dir, threads=4)
82
82
 
83
83
  # Convert
84
84
  splits = {"VisDrone2019-DET-train": "train", "VisDrone2019-DET-val": "val", "VisDrone2019-DET-test-dev": "test"}
@@ -182,9 +182,8 @@ class Predictor(BasePredictor):
182
182
  **kwargs (Any): Additional keyword arguments.
183
183
 
184
184
  Returns:
185
- pred_masks (np.ndarray): The output masks in shape (C, H, W), where C is the number of generated masks.
186
- pred_scores (np.ndarray): An array of length C containing quality scores predicted by the model for each mask.
187
- pred_logits (np.ndarray): Low-resolution logits of shape (C, H, W) for subsequent inference, where H=W=256.
185
+ pred_masks (torch.Tensor): The output masks in shape (C, H, W), where C is the number of generated masks.
186
+ pred_scores (torch.Tensor): An array of length C containing quality scores predicted by the model for each mask.
188
187
 
189
188
  Examples:
190
189
  >>> predictor = Predictor()
@@ -219,8 +218,8 @@ class Predictor(BasePredictor):
219
218
  multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
220
219
 
221
220
  Returns:
222
- pred_masks (np.ndarray): Output masks with shape (C, H, W), where C is the number of generated masks.
223
- pred_scores (np.ndarray): Quality scores predicted by the model for each mask, with length C.
221
+ pred_masks (torch.Tensor): Output masks with shape (C, H, W), where C is the number of generated masks.
222
+ pred_scores (torch.Tensor): Quality scores predicted by the model for each mask, with length C.
224
223
 
225
224
  Examples:
226
225
  >>> predictor = Predictor()
@@ -230,7 +229,34 @@ class Predictor(BasePredictor):
230
229
  """
231
230
  features = self.get_im_features(im) if self.features is None else self.features
232
231
 
233
- bboxes, points, labels, masks = self._prepare_prompts(im.shape[2:], bboxes, points, labels, masks)
232
+ prompts = self._prepare_prompts(im.shape[2:], self.batch[1][0].shape[:2], bboxes, points, labels, masks)
233
+ return self._inference_features(features, *prompts, multimask_output)
234
+
235
+ def _inference_features(
236
+ self,
237
+ features,
238
+ bboxes=None,
239
+ points=None,
240
+ labels=None,
241
+ masks=None,
242
+ multimask_output=False,
243
+ ):
244
+ """
245
+ Perform inference on image features using the SAM model.
246
+
247
+ Args:
248
+ features (torch.Tensor): Extracted image features with shape (B, C, H, W) from the SAM model image encoder.
249
+ bboxes (np.ndarray | List[List[float]] | None): Bounding boxes in XYXY format with shape (N, 4).
250
+ points (np.ndarray | List[List[float]] | None): Object location points with shape (N, 2), in pixels.
251
+ labels (np.ndarray | List[int] | None): Point prompt labels with shape (N,). 1 = foreground, 0 = background.
252
+ masks (List[np.ndarray] | np.ndarray | None): Masks for the objects, where each mask is a 2D array.
253
+ multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
254
+ img_idx (int): Index of the image in the batch to process.
255
+
256
+ Returns:
257
+ pred_masks (torch.Tensor): Output masks with shape (C, H, W), where C is the number of generated masks.
258
+ pred_scores (torch.Tensor): Quality scores for each mask, with length C.
259
+ """
234
260
  points = (points, labels) if points is not None else None
235
261
  # Embed prompts
236
262
  sparse_embeddings, dense_embeddings = self.model.prompt_encoder(points=points, boxes=bboxes, masks=masks)
@@ -248,12 +274,13 @@ class Predictor(BasePredictor):
248
274
  # `d` could be 1 or 3 depends on `multimask_output`.
249
275
  return pred_masks.flatten(0, 1), pred_scores.flatten(0, 1)
250
276
 
251
- def _prepare_prompts(self, dst_shape, bboxes=None, points=None, labels=None, masks=None):
277
+ def _prepare_prompts(self, dst_shape, src_shape, bboxes=None, points=None, labels=None, masks=None):
252
278
  """
253
279
  Prepare and transform the input prompts for processing based on the destination shape.
254
280
 
255
281
  Args:
256
- dst_shape (tuple): The target shape (height, width) for the prompts.
282
+ dst_shape (Tuple[int, int]): The target shape (height, width) for the prompts.
283
+ src_shape (Tuple[int, int]): The source shape (height, width) of the input image.
257
284
  bboxes (np.ndarray | List | None): Bounding boxes in XYXY format with shape (N, 4).
258
285
  points (np.ndarray | List | None): Points indicating object locations with shape (N, 2) or (N, num_points, 2), in pixels.
259
286
  labels (np.ndarray | List | None): Point prompt labels with shape (N) or (N, num_points). 1 for foreground, 0 for background.
@@ -268,7 +295,6 @@ class Predictor(BasePredictor):
268
295
  Raises:
269
296
  AssertionError: If the number of points don't match the number of labels, in case labels were passed.
270
297
  """
271
- src_shape = self.batch[1][0].shape[:2]
272
298
  r = 1.0 if self.segment_all else min(dst_shape[0] / src_shape[0], dst_shape[1] / src_shape[1])
273
299
  # Transform input prompts
274
300
  if points is not None:
@@ -543,7 +569,7 @@ class Predictor(BasePredictor):
543
569
  - The extracted features are stored in the `self.features` attribute for later use.
544
570
  """
545
571
  if self.model is None:
546
- self.setup_model(model=None)
572
+ self.setup_model()
547
573
  self.setup_source(image)
548
574
  assert len(self.dataset) == 1, "`set_image` only supports setting one image!"
549
575
  for batch in self.dataset:
@@ -620,6 +646,53 @@ class Predictor(BasePredictor):
620
646
 
621
647
  return new_masks[keep].to(device=masks.device, dtype=masks.dtype), keep
622
648
 
649
+ @smart_inference_mode()
650
+ def inference_features(
651
+ self,
652
+ features,
653
+ src_shape,
654
+ dst_shape=None,
655
+ bboxes=None,
656
+ points=None,
657
+ labels=None,
658
+ masks=None,
659
+ multimask_output=False,
660
+ ):
661
+ """
662
+ Perform prompts preprocessing and inference on provided image features using the SAM model.
663
+
664
+ Args:
665
+ features (torch.Tensor | Dict[str, Any]): Extracted image features from the SAM/SAM2 model image encoder.
666
+ src_shape (Tuple[int, int]): The source shape (height, width) of the input image.
667
+ dst_shape (Tuple[int, int] | None): The target shape (height, width) for the prompts. If None, defaults to (imgsz, imgsz).
668
+ bboxes (np.ndarray | List[List[float]] | None): Bounding boxes in xyxy format with shape (N, 4).
669
+ points (np.ndarray | List[List[float]] | None): Points indicating object locations with shape (N, 2), in pixels.
670
+ labels (np.ndarray | List[int] | None): Point prompt labels with shape (N, ).
671
+ masks (List[np.ndarray] | np.ndarray | None): Masks for the objects, where each mask is a 2D array.
672
+ multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
673
+
674
+ Returns:
675
+ pred_masks (torch.Tensor): The output masks in shape (C, H, W), where C is the number of generated masks.
676
+ pred_bboxes (torch.Tensor): Bounding boxes for each mask with shape (N, 6), where N is the number of boxes.
677
+ Each box is in xyxy format with additional columns for score and class.
678
+
679
+ Notes:
680
+ - The input features is a torch.Tensor of shape (B, C, H, W) if performing on SAM, or a Dict[str, Any] if performing on SAM2.
681
+ """
682
+ dst_shape = dst_shape or (self.args.imgsz, self.args.imgsz)
683
+ prompts = self._prepare_prompts(dst_shape, src_shape, bboxes, points, labels, masks)
684
+ pred_masks, pred_scores = self._inference_features(features, *prompts, multimask_output)
685
+ if len(pred_masks) == 0:
686
+ pred_masks, pred_bboxes = None, torch.zeros((0, 6), device=pred_masks.device)
687
+ else:
688
+ pred_masks = ops.scale_masks(pred_masks[None].float(), src_shape, padding=False)[0]
689
+ pred_masks = pred_masks > self.model.mask_threshold # to bool
690
+ pred_bboxes = batched_mask_to_box(pred_masks)
691
+ # NOTE: SAM models do not return cls info. This `cls` here is just a placeholder for consistency.
692
+ cls = torch.arange(len(pred_masks), dtype=torch.int32, device=pred_masks.device)
693
+ pred_bboxes = torch.cat([pred_bboxes, pred_scores[:, None], cls[:, None]], dim=-1)
694
+ return pred_masks, pred_bboxes
695
+
623
696
 
624
697
  class SAM2Predictor(Predictor):
625
698
  """
@@ -663,80 +736,13 @@ class SAM2Predictor(Predictor):
663
736
 
664
737
  return build_sam(self.args.model)
665
738
 
666
- def prompt_inference(
667
- self,
668
- im,
669
- bboxes=None,
670
- points=None,
671
- labels=None,
672
- masks=None,
673
- multimask_output=False,
674
- img_idx=-1,
675
- ):
676
- """
677
- Perform image segmentation inference based on various prompts using SAM2 architecture.
678
-
679
- This method leverages the Segment Anything Model 2 (SAM2) to generate segmentation masks for input images
680
- based on provided prompts such as bounding boxes, points, or existing masks. It supports both single and
681
- multi-object prediction scenarios.
682
-
683
- Args:
684
- im (torch.Tensor): Preprocessed input image tensor with shape (N, C, H, W).
685
- bboxes (np.ndarray | List[List[float]] | None): Bounding boxes in XYXY format with shape (N, 4).
686
- points (np.ndarray | List[List[float]] | None): Object location points with shape (N, 2), in pixels.
687
- labels (np.ndarray | List[int] | None): Point prompt labels with shape (N,). 1 = foreground, 0 = background.
688
- masks (np.ndarray | None): Low-resolution masks from previous predictions with shape (N, H, W).
689
- multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
690
- img_idx (int): Index of the image in the batch to process.
691
-
692
- Returns:
693
- pred_masks (np.ndarray): Output masks with shape (C, H, W), where C is the number of generated masks.
694
- pred_scores (np.ndarray): Quality scores for each mask, with length C.
695
-
696
- Examples:
697
- >>> predictor = SAM2Predictor(cfg)
698
- >>> image = torch.rand(1, 3, 640, 640)
699
- >>> bboxes = [[100, 100, 200, 200]]
700
- >>> result = predictor(image, bboxes=bboxes)[0]
701
- >>> print(f"Generated {result.masks.shape[0]} masks with average score {result.boxes.conf.mean():.2f}")
702
-
703
- Notes:
704
- - The method supports batched inference for multiple objects when points or bboxes are provided.
705
- - Input prompts (bboxes, points) are automatically scaled to match the input image dimensions.
706
- - When both bboxes and points are provided, they are merged into a single 'points' input for the model.
707
- """
708
- features = self.get_im_features(im) if self.features is None else self.features
709
-
710
- points, labels, masks = self._prepare_prompts(im.shape[2:], bboxes, points, labels, masks)
711
- points = (points, labels) if points is not None else None
712
-
713
- sparse_embeddings, dense_embeddings = self.model.sam_prompt_encoder(
714
- points=points,
715
- boxes=None,
716
- masks=masks,
717
- )
718
- # Predict masks
719
- batched_mode = points is not None and points[0].shape[0] > 1 # multi object prediction
720
- high_res_features = [feat_level[img_idx].unsqueeze(0) for feat_level in features["high_res_feats"]]
721
- pred_masks, pred_scores, _, _ = self.model.sam_mask_decoder(
722
- image_embeddings=features["image_embed"][img_idx].unsqueeze(0),
723
- image_pe=self.model.sam_prompt_encoder.get_dense_pe(),
724
- sparse_prompt_embeddings=sparse_embeddings,
725
- dense_prompt_embeddings=dense_embeddings,
726
- multimask_output=multimask_output,
727
- repeat_image=batched_mode,
728
- high_res_features=high_res_features,
729
- )
730
- # (N, d, H, W) --> (N*d, H, W), (N, d) --> (N*d, )
731
- # `d` could be 1 or 3 depends on `multimask_output`.
732
- return pred_masks.flatten(0, 1), pred_scores.flatten(0, 1)
733
-
734
- def _prepare_prompts(self, dst_shape, bboxes=None, points=None, labels=None, masks=None):
739
+ def _prepare_prompts(self, dst_shape, src_shape, bboxes=None, points=None, labels=None, masks=None):
735
740
  """
736
741
  Prepare and transform the input prompts for processing based on the destination shape.
737
742
 
738
743
  Args:
739
- dst_shape (tuple): The target shape (height, width) for the prompts.
744
+ dst_shape (Tuple[int, int]): The target shape (height, width) for the prompts.
745
+ src_shape (Tuple[int, int]): The source shape (height, width) of the input image.
740
746
  bboxes (np.ndarray | List | None): Bounding boxes in XYXY format with shape (N, 4).
741
747
  points (np.ndarray | List | None): Points indicating object locations with shape (N, 2) or (N, num_points, 2), in pixels.
742
748
  labels (np.ndarray | List | None): Point prompt labels with shape (N,) or (N, num_points). 1 for foreground, 0 for background.
@@ -750,7 +756,7 @@ class SAM2Predictor(Predictor):
750
756
  Raises:
751
757
  AssertionError: If the number of points don't match the number of labels, in case labels were passed.
752
758
  """
753
- bboxes, points, labels, masks = super()._prepare_prompts(dst_shape, bboxes, points, labels, masks)
759
+ bboxes, points, labels, masks = super()._prepare_prompts(dst_shape, src_shape, bboxes, points, labels, masks)
754
760
  if bboxes is not None:
755
761
  bboxes = bboxes.view(-1, 2, 2)
756
762
  bbox_labels = torch.tensor([[2, 3]], dtype=torch.int32, device=bboxes.device).expand(len(bboxes), -1)
@@ -813,6 +819,54 @@ class SAM2Predictor(Predictor):
813
819
  ][::-1]
814
820
  return {"image_embed": feats[-1], "high_res_feats": feats[:-1]}
815
821
 
822
+ def _inference_features(
823
+ self,
824
+ features,
825
+ points=None,
826
+ labels=None,
827
+ masks=None,
828
+ multimask_output=False,
829
+ img_idx=-1,
830
+ ):
831
+ """
832
+ Perform inference on image features using the SAM2 model.
833
+
834
+ Args:
835
+ features (Dict[str, Any]): Extracted image information from the SAM2 model image encoder, it's a dictionary including:
836
+ image_embed (torch.Tensor): Image embedding with shape (B, C, H, W).
837
+ high_res_feats (List[torch.Tensor]): List of high-resolution feature maps from the backbone, each with shape (B, C, H, W).
838
+ points (np.ndarray | List[List[float]] | None): Object location points with shape (N, 2), in pixels.
839
+ labels (np.ndarray | List[int] | None): Point prompt labels with shape (N,). 1 = foreground, 0 = background.
840
+ masks (List[np.ndarray] | np.ndarray | None): Masks for the objects, where each mask is a 2D array.
841
+ multimask_output (bool): Flag to return multiple masks for ambiguous prompts.
842
+ img_idx (int): Index of the image in the batch to process.
843
+
844
+ Returns:
845
+ pred_masks (torch.Tensor): Output masks with shape (C, H, W), where C is the number of generated masks.
846
+ pred_scores (torch.Tensor): Quality scores for each mask, with length C.
847
+ """
848
+ points = (points, labels) if points is not None else None
849
+ sparse_embeddings, dense_embeddings = self.model.sam_prompt_encoder(
850
+ points=points,
851
+ boxes=None,
852
+ masks=masks,
853
+ )
854
+ # Predict masks
855
+ batched_mode = points is not None and points[0].shape[0] > 1 # multi object prediction
856
+ high_res_features = [feat_level[img_idx].unsqueeze(0) for feat_level in features["high_res_feats"]]
857
+ pred_masks, pred_scores, _, _ = self.model.sam_mask_decoder(
858
+ image_embeddings=features["image_embed"][img_idx].unsqueeze(0),
859
+ image_pe=self.model.sam_prompt_encoder.get_dense_pe(),
860
+ sparse_prompt_embeddings=sparse_embeddings,
861
+ dense_prompt_embeddings=dense_embeddings,
862
+ multimask_output=multimask_output,
863
+ repeat_image=batched_mode,
864
+ high_res_features=high_res_features,
865
+ )
866
+ # (N, d, H, W) --> (N*d, H, W), (N, d) --> (N*d, )
867
+ # `d` could be 1 or 3 depends on `multimask_output`.
868
+ return pred_masks.flatten(0, 1), pred_scores.flatten(0, 1)
869
+
816
870
 
817
871
  class SAM2VideoPredictor(SAM2Predictor):
818
872
  """
@@ -900,8 +954,8 @@ class SAM2VideoPredictor(SAM2Predictor):
900
954
  masks (np.ndarray, optional): Low-resolution masks from previous predictions shape (N,H,W). For SAM H=W=256.
901
955
 
902
956
  Returns:
903
- pred_masks (np.ndarray): The output masks in shape CxHxW, where C is the number of generated masks.
904
- pred_scores (np.ndarray): An array of length C containing quality scores predicted by the model for each mask.
957
+ pred_masks (torch.Tensor): The output masks in shape CxHxW, where C is the number of generated masks.
958
+ pred_scores (torch.Tensor): An array of length C containing quality scores predicted by the model for each mask.
905
959
  """
906
960
  # Override prompts if any stored in self.prompts
907
961
  bboxes = self.prompts.pop("bboxes", bboxes)
@@ -912,7 +966,9 @@ class SAM2VideoPredictor(SAM2Predictor):
912
966
  self.inference_state["im"] = im
913
967
  output_dict = self.inference_state["output_dict"]
914
968
  if len(output_dict["cond_frame_outputs"]) == 0: # initialize prompts
915
- points, labels, masks = self._prepare_prompts(im.shape[2:], bboxes, points, labels, masks)
969
+ points, labels, masks = self._prepare_prompts(
970
+ im.shape[2:], self.batch[1][0].shape[:2], bboxes, points, labels, masks
971
+ )
916
972
  if points is not None:
917
973
  for i in range(len(points)):
918
974
  self.add_new_prompts(obj_id=i, points=points[[i]], labels=labels[[i]], frame_idx=frame)
@@ -966,7 +1022,7 @@ class SAM2VideoPredictor(SAM2Predictor):
966
1022
  the masks do not overlap, which can be useful for certain applications.
967
1023
 
968
1024
  Args:
969
- preds (tuple): The predictions from the model.
1025
+ preds (Tuple[torch.Tensor, torch.Tensor]): The predicted masks and scores from the model.
970
1026
  img (torch.Tensor): The processed image tensor.
971
1027
  orig_imgs (List[np.ndarray]): The original images before processing.
972
1028
 
@@ -501,7 +501,9 @@ def download(
501
501
  """
502
502
  dir = Path(dir)
503
503
  dir.mkdir(parents=True, exist_ok=True) # make directory
504
+ urls = [url] if isinstance(url, (str, Path)) else url
504
505
  if threads > 1:
506
+ LOGGER.info(f"Downloading {len(urls)} file(s) with {threads} threads to {dir}...")
505
507
  with ThreadPool(threads) as pool:
506
508
  pool.map(
507
509
  lambda x: safe_download(
@@ -512,12 +514,12 @@ def download(
512
514
  curl=curl,
513
515
  retry=retry,
514
516
  exist_ok=exist_ok,
515
- progress=threads <= 1,
517
+ progress=True,
516
518
  ),
517
- zip(url, repeat(dir)),
519
+ zip(urls, repeat(dir)),
518
520
  )
519
521
  pool.close()
520
522
  pool.join()
521
523
  else:
522
- for u in [url] if isinstance(url, (str, Path)) else url:
524
+ for u in urls:
523
525
  safe_download(url=u, dir=dir, unzip=unzip, delete=delete, curl=curl, retry=retry, exist_ok=exist_ok)