ultralytics-opencv-headless 8.3.248__tar.gz → 8.3.249__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 (303) hide show
  1. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/PKG-INFO +1 -1
  2. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/__init__.py +1 -1
  3. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/object_counter.py +1 -1
  4. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/platform.py +79 -0
  5. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/checks.py +13 -1
  6. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics_opencv_headless.egg-info/PKG-INFO +1 -1
  7. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/LICENSE +0 -0
  8. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/README.md +0 -0
  9. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/pyproject.toml +0 -0
  10. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/setup.cfg +0 -0
  11. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/tests/__init__.py +0 -0
  12. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/tests/conftest.py +0 -0
  13. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/tests/test_cli.py +0 -0
  14. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/tests/test_cuda.py +0 -0
  15. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/tests/test_engine.py +0 -0
  16. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/tests/test_exports.py +0 -0
  17. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/tests/test_integrations.py +0 -0
  18. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/tests/test_python.py +0 -0
  19. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/tests/test_solutions.py +0 -0
  20. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/assets/bus.jpg +0 -0
  21. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/assets/zidane.jpg +0 -0
  22. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/__init__.py +0 -0
  23. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  24. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  25. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  26. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  27. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  28. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  29. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  30. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  31. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  32. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  33. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  34. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  35. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  36. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  37. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/coco.yaml +0 -0
  38. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  39. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  40. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  41. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  42. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  43. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  44. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  45. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
  46. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  47. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  48. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  49. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  50. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  51. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/kitti.yaml +0 -0
  52. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  53. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  54. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  55. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  56. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/signature.yaml +0 -0
  57. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  58. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/datasets/xView.yaml +0 -0
  59. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/default.yaml +0 -0
  60. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  61. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  62. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  63. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  64. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  65. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  66. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  67. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  68. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  69. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  70. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  71. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  72. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  73. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  74. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  75. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  76. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  77. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  78. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  79. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  80. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  81. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  82. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  83. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  84. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  85. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  86. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  87. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  88. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  89. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  90. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  91. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  92. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  93. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  94. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  95. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  96. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  97. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  98. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  99. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  100. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  101. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  102. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  103. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  104. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  105. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  106. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  107. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  108. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  109. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  110. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  111. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  112. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  113. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  114. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  115. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  116. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  117. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/__init__.py +0 -0
  118. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/annotator.py +0 -0
  119. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/augment.py +0 -0
  120. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/base.py +0 -0
  121. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/build.py +0 -0
  122. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/converter.py +0 -0
  123. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/dataset.py +0 -0
  124. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/loaders.py +0 -0
  125. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/scripts/download_weights.sh +0 -0
  126. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/scripts/get_coco.sh +0 -0
  127. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/scripts/get_coco128.sh +0 -0
  128. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  129. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/split.py +0 -0
  130. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/split_dota.py +0 -0
  131. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/data/utils.py +0 -0
  132. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/engine/__init__.py +0 -0
  133. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/engine/exporter.py +0 -0
  134. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/engine/model.py +0 -0
  135. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/engine/predictor.py +0 -0
  136. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/engine/results.py +0 -0
  137. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/engine/trainer.py +0 -0
  138. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/engine/tuner.py +0 -0
  139. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/engine/validator.py +0 -0
  140. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/hub/__init__.py +0 -0
  141. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/hub/auth.py +0 -0
  142. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/hub/google/__init__.py +0 -0
  143. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/hub/session.py +0 -0
  144. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/hub/utils.py +0 -0
  145. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/__init__.py +0 -0
  146. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/fastsam/__init__.py +0 -0
  147. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/fastsam/model.py +0 -0
  148. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/fastsam/predict.py +0 -0
  149. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/fastsam/utils.py +0 -0
  150. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/fastsam/val.py +0 -0
  151. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/nas/__init__.py +0 -0
  152. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/nas/model.py +0 -0
  153. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/nas/predict.py +0 -0
  154. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/nas/val.py +0 -0
  155. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/rtdetr/__init__.py +0 -0
  156. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/rtdetr/model.py +0 -0
  157. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/rtdetr/predict.py +0 -0
  158. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/rtdetr/train.py +0 -0
  159. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/rtdetr/val.py +0 -0
  160. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/__init__.py +0 -0
  161. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/amg.py +0 -0
  162. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/build.py +0 -0
  163. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/build_sam3.py +0 -0
  164. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/model.py +0 -0
  165. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/modules/__init__.py +0 -0
  166. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/modules/blocks.py +0 -0
  167. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/modules/decoders.py +0 -0
  168. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/modules/encoders.py +0 -0
  169. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  170. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/modules/sam.py +0 -0
  171. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  172. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/modules/transformer.py +0 -0
  173. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/modules/utils.py +0 -0
  174. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/predict.py +0 -0
  175. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/__init__.py +0 -0
  176. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/decoder.py +0 -0
  177. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/encoder.py +0 -0
  178. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/geometry_encoders.py +0 -0
  179. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/maskformer_segmentation.py +0 -0
  180. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/model_misc.py +0 -0
  181. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/necks.py +0 -0
  182. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/sam3_image.py +0 -0
  183. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/text_encoder_ve.py +0 -0
  184. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/vitdet.py +0 -0
  185. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/sam/sam3/vl_combiner.py +0 -0
  186. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/utils/__init__.py +0 -0
  187. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/utils/loss.py +0 -0
  188. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/utils/ops.py +0 -0
  189. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/__init__.py +0 -0
  190. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/classify/__init__.py +0 -0
  191. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/classify/predict.py +0 -0
  192. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/classify/train.py +0 -0
  193. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/classify/val.py +0 -0
  194. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/detect/__init__.py +0 -0
  195. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/detect/predict.py +0 -0
  196. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/detect/train.py +0 -0
  197. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/detect/val.py +0 -0
  198. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/model.py +0 -0
  199. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/obb/__init__.py +0 -0
  200. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/obb/predict.py +0 -0
  201. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/obb/train.py +0 -0
  202. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/obb/val.py +0 -0
  203. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/pose/__init__.py +0 -0
  204. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/pose/predict.py +0 -0
  205. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/pose/train.py +0 -0
  206. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/pose/val.py +0 -0
  207. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/segment/__init__.py +0 -0
  208. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/segment/predict.py +0 -0
  209. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/segment/train.py +0 -0
  210. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/segment/val.py +0 -0
  211. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/world/__init__.py +0 -0
  212. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/world/train.py +0 -0
  213. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/world/train_world.py +0 -0
  214. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  215. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  216. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/yoloe/train.py +0 -0
  217. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  218. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/models/yolo/yoloe/val.py +0 -0
  219. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/__init__.py +0 -0
  220. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/autobackend.py +0 -0
  221. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/modules/__init__.py +0 -0
  222. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/modules/activation.py +0 -0
  223. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/modules/block.py +0 -0
  224. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/modules/conv.py +0 -0
  225. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/modules/head.py +0 -0
  226. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/modules/transformer.py +0 -0
  227. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/modules/utils.py +0 -0
  228. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/tasks.py +0 -0
  229. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/nn/text_model.py +0 -0
  230. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/py.typed +0 -0
  231. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/__init__.py +0 -0
  232. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/ai_gym.py +0 -0
  233. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/analytics.py +0 -0
  234. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/config.py +0 -0
  235. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/distance_calculation.py +0 -0
  236. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/heatmap.py +0 -0
  237. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/instance_segmentation.py +0 -0
  238. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/object_blurrer.py +0 -0
  239. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/object_cropper.py +0 -0
  240. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/parking_management.py +0 -0
  241. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/queue_management.py +0 -0
  242. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/region_counter.py +0 -0
  243. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/security_alarm.py +0 -0
  244. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/similarity_search.py +0 -0
  245. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/solutions.py +0 -0
  246. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/speed_estimation.py +0 -0
  247. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/streamlit_inference.py +0 -0
  248. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/templates/similarity-search.html +0 -0
  249. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/trackzone.py +0 -0
  250. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/solutions/vision_eye.py +0 -0
  251. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/trackers/__init__.py +0 -0
  252. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/trackers/basetrack.py +0 -0
  253. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/trackers/bot_sort.py +0 -0
  254. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/trackers/byte_tracker.py +0 -0
  255. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/trackers/track.py +0 -0
  256. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/trackers/utils/__init__.py +0 -0
  257. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/trackers/utils/gmc.py +0 -0
  258. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  259. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/trackers/utils/matching.py +0 -0
  260. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/__init__.py +0 -0
  261. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/autobatch.py +0 -0
  262. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/autodevice.py +0 -0
  263. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/benchmarks.py +0 -0
  264. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/__init__.py +0 -0
  265. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/base.py +0 -0
  266. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/clearml.py +0 -0
  267. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/comet.py +0 -0
  268. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/dvc.py +0 -0
  269. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/hub.py +0 -0
  270. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/mlflow.py +0 -0
  271. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/neptune.py +0 -0
  272. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/raytune.py +0 -0
  273. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  274. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/callbacks/wb.py +0 -0
  275. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/cpu.py +0 -0
  276. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/dist.py +0 -0
  277. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/downloads.py +0 -0
  278. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/errors.py +0 -0
  279. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/events.py +0 -0
  280. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/export/__init__.py +0 -0
  281. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/export/engine.py +0 -0
  282. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/export/imx.py +0 -0
  283. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/export/tensorflow.py +0 -0
  284. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/files.py +0 -0
  285. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/git.py +0 -0
  286. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/instance.py +0 -0
  287. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/logger.py +0 -0
  288. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/loss.py +0 -0
  289. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/metrics.py +0 -0
  290. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/nms.py +0 -0
  291. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/ops.py +0 -0
  292. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/patches.py +0 -0
  293. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/plotting.py +0 -0
  294. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/tal.py +0 -0
  295. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/torch_utils.py +0 -0
  296. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/tqdm.py +0 -0
  297. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/triton.py +0 -0
  298. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics/utils/tuner.py +0 -0
  299. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics_opencv_headless.egg-info/SOURCES.txt +0 -0
  300. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics_opencv_headless.egg-info/dependency_links.txt +0 -0
  301. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics_opencv_headless.egg-info/entry_points.txt +0 -0
  302. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics_opencv_headless.egg-info/requires.txt +0 -0
  303. {ultralytics_opencv_headless-8.3.248 → ultralytics_opencv_headless-8.3.249}/ultralytics_opencv_headless.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics-opencv-headless
3
- Version: 8.3.248
3
+ Version: 8.3.249
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
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.248"
3
+ __version__ = "8.3.249"
4
4
 
5
5
  import importlib
6
6
  import os
@@ -129,7 +129,7 @@ class ObjectCounter(BaseSolution):
129
129
  str.capitalize(key): f"{'IN ' + str(value['IN']) if self.show_in else ''} "
130
130
  f"{'OUT ' + str(value['OUT']) if self.show_out else ''}".strip()
131
131
  for key, value in self.classwise_count.items()
132
- if value["IN"] != 0 or (value["OUT"] != 0 and (self.show_in or self.show_out))
132
+ if (value["IN"] != 0 and self.show_in) or (value["OUT"] != 0 and self.show_out)
133
133
  }
134
134
  if labels_dict:
135
135
  self.annotator.display_analytics(plot_im, labels_dict, (104, 31, 17), (255, 255, 255), self.margin)
@@ -32,6 +32,85 @@ except (AssertionError, ImportError):
32
32
  _api_key = None
33
33
 
34
34
 
35
+ def resolve_platform_uri(uri, hard=True):
36
+ """Resolve ul:// URIs to signed URLs by authenticating with Ultralytics Platform.
37
+
38
+ Formats:
39
+ ul://username/datasets/slug -> Returns signed URL to NDJSON file
40
+ ul://username/project/model -> Returns signed URL to .pt file
41
+
42
+ Args:
43
+ uri (str): Platform URI starting with "ul://".
44
+ hard (bool): Whether to raise an error if resolution fails (FileNotFoundError only).
45
+
46
+ Returns:
47
+ (str | None): Signed URL on success, None if not found and hard=False.
48
+
49
+ Raises:
50
+ ValueError: If API key is missing/invalid or URI format is wrong.
51
+ PermissionError: If access is denied.
52
+ RuntimeError: If resource is not ready (e.g., dataset still processing).
53
+ FileNotFoundError: If resource not found and hard=True.
54
+ ConnectionError: If network request fails and hard=True.
55
+ """
56
+ import requests
57
+
58
+ path = uri[5:] # Remove "ul://"
59
+ parts = path.split("/")
60
+
61
+ api_key = os.getenv("ULTRALYTICS_API_KEY") or SETTINGS.get("api_key")
62
+ if not api_key:
63
+ raise ValueError(f"ULTRALYTICS_API_KEY required for '{uri}'. Get key at https://alpha.ultralytics.com/settings")
64
+
65
+ base = "https://alpha.ultralytics.com/api/v1"
66
+ headers = {"Authorization": f"Bearer {api_key}"}
67
+
68
+ # ul://username/datasets/slug
69
+ if len(parts) == 3 and parts[1] == "datasets":
70
+ username, _, slug = parts
71
+ url = f"{base}/datasets/{username}/{slug}/export"
72
+
73
+ # ul://username/project/model
74
+ elif len(parts) == 3:
75
+ username, project, model = parts
76
+ url = f"{base}/models/{username}/{project}/{model}/download"
77
+
78
+ else:
79
+ raise ValueError(f"Invalid platform URI: {uri}. Use ul://user/datasets/name or ul://user/project/model")
80
+
81
+ LOGGER.info(f"Resolving {uri} from Ultralytics Platform...")
82
+
83
+ try:
84
+ r = requests.head(url, headers=headers, allow_redirects=False, timeout=30)
85
+
86
+ # Handle redirect responses (301, 302, 303, 307, 308)
87
+ if 300 <= r.status_code < 400 and "location" in r.headers:
88
+ return r.headers["location"] # Return signed URL
89
+
90
+ # Handle error responses
91
+ if r.status_code == 401:
92
+ raise ValueError(f"Invalid ULTRALYTICS_API_KEY for '{uri}'")
93
+ if r.status_code == 403:
94
+ raise PermissionError(f"Access denied for '{uri}'. Check dataset/model visibility settings.")
95
+ if r.status_code == 404:
96
+ if hard:
97
+ raise FileNotFoundError(f"Not found on platform: {uri}")
98
+ LOGGER.warning(f"Not found on platform: {uri}")
99
+ return None
100
+ if r.status_code == 409:
101
+ raise RuntimeError(f"Resource not ready: {uri}. Dataset may still be processing.")
102
+
103
+ # Unexpected response
104
+ r.raise_for_status()
105
+ raise RuntimeError(f"Unexpected response from platform for '{uri}': {r.status_code}")
106
+
107
+ except requests.exceptions.RequestException as e:
108
+ if hard:
109
+ raise ConnectionError(f"Failed to resolve {uri}: {e}") from e
110
+ LOGGER.warning(f"Failed to resolve {uri}: {e}")
111
+ return None
112
+
113
+
35
114
  def _interp_plot(plot, n=101):
36
115
  """Interpolate plot curve data from 1000 to n points to reduce storage size."""
37
116
  import numpy as np
@@ -592,7 +592,7 @@ def check_file(file, suffix="", download=True, download_dir=".", hard=True):
592
592
  """Search/download file (if necessary), check suffix (if provided), and return path.
593
593
 
594
594
  Args:
595
- file (str): File name or path.
595
+ file (str): File name or path, or platform URI (ul://username/datasets/name).
596
596
  suffix (str | tuple): Acceptable suffix or tuple of suffixes to validate against the file.
597
597
  download (bool): Whether to download the file if it doesn't exist locally.
598
598
  download_dir (str): Directory to download the file to.
@@ -610,6 +610,18 @@ def check_file(file, suffix="", download=True, download_dir=".", hard=True):
610
610
  or file.lower().startswith("grpc://")
611
611
  ): # file exists or gRPC Triton images
612
612
  return file
613
+ elif download and file.lower().startswith("ul://"): # Ultralytics Platform URI
614
+ from ultralytics.utils.callbacks.platform import resolve_platform_uri
615
+
616
+ url = resolve_platform_uri(file, hard=hard) # Convert to signed HTTPS URL
617
+ if url is None:
618
+ return [] # Not found, soft fail (consistent with file search behavior)
619
+ local_file = Path(download_dir) / url2file(url)
620
+ if local_file.exists():
621
+ LOGGER.info(f"Found {clean_url(url)} locally at {local_file}")
622
+ else:
623
+ downloads.safe_download(url=url, file=local_file, unzip=False)
624
+ return str(local_file)
613
625
  elif download and file.lower().startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://")): # download
614
626
  url = file # warning: Pathlib turns :// -> :/
615
627
  file = Path(download_dir) / url2file(file) # '%2F' to '/', split https://url.com/file.txt?auth
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics-opencv-headless
3
- Version: 8.3.248
3
+ Version: 8.3.249
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>