ultralytics-opencv-headless 8.3.249__tar.gz → 8.3.251__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 (304) hide show
  1. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/PKG-INFO +1 -1
  2. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/__init__.py +1 -1
  3. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/__init__.py +6 -4
  4. ultralytics_opencv_headless-8.3.251/ultralytics/cfg/datasets/TT100K.yaml +346 -0
  5. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/engine/model.py +4 -3
  6. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/engine/trainer.py +28 -25
  7. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/engine/tuner.py +1 -0
  8. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/benchmarks.py +1 -1
  9. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/platform.py +66 -58
  10. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/checks.py +11 -4
  11. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/metrics.py +1 -1
  12. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/plotting.py +3 -0
  13. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/tuner.py +0 -3
  14. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics_opencv_headless.egg-info/PKG-INFO +1 -1
  15. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics_opencv_headless.egg-info/SOURCES.txt +1 -0
  16. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/LICENSE +0 -0
  17. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/README.md +0 -0
  18. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/pyproject.toml +0 -0
  19. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/setup.cfg +0 -0
  20. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/tests/__init__.py +0 -0
  21. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/tests/conftest.py +0 -0
  22. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/tests/test_cli.py +0 -0
  23. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/tests/test_cuda.py +0 -0
  24. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/tests/test_engine.py +0 -0
  25. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/tests/test_exports.py +0 -0
  26. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/tests/test_integrations.py +0 -0
  27. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/tests/test_python.py +0 -0
  28. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/tests/test_solutions.py +0 -0
  29. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/assets/bus.jpg +0 -0
  30. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/assets/zidane.jpg +0 -0
  31. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  32. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  33. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  34. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  35. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  36. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  37. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  38. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  39. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  40. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  41. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  42. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  43. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  44. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  45. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/coco.yaml +0 -0
  46. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  47. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  48. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  49. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  50. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  51. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  52. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  53. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
  54. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  55. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  56. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  57. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  58. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  59. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/kitti.yaml +0 -0
  60. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  61. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  62. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  63. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  64. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/signature.yaml +0 -0
  65. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  66. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/datasets/xView.yaml +0 -0
  67. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/default.yaml +0 -0
  68. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  69. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  70. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  71. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  72. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  73. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  74. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  75. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  76. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  77. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  78. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  79. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  80. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  81. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  82. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  83. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  84. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  85. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  86. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  87. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  88. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  89. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  90. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  91. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  92. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  93. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  94. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  95. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  96. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  97. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  98. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  99. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  100. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  101. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  102. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  103. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  104. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  105. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  106. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  107. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  108. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  109. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  110. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  111. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  112. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  113. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  114. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  115. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  116. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  117. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  118. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  119. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  120. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  121. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  122. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  123. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  124. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  125. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/__init__.py +0 -0
  126. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/annotator.py +0 -0
  127. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/augment.py +0 -0
  128. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/base.py +0 -0
  129. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/build.py +0 -0
  130. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/converter.py +0 -0
  131. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/dataset.py +0 -0
  132. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/loaders.py +0 -0
  133. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/scripts/download_weights.sh +0 -0
  134. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/scripts/get_coco.sh +0 -0
  135. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/scripts/get_coco128.sh +0 -0
  136. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  137. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/split.py +0 -0
  138. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/split_dota.py +0 -0
  139. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/data/utils.py +0 -0
  140. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/engine/__init__.py +0 -0
  141. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/engine/exporter.py +0 -0
  142. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/engine/predictor.py +0 -0
  143. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/engine/results.py +0 -0
  144. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/engine/validator.py +0 -0
  145. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/hub/__init__.py +0 -0
  146. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/hub/auth.py +0 -0
  147. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/hub/google/__init__.py +0 -0
  148. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/hub/session.py +0 -0
  149. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/hub/utils.py +0 -0
  150. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/__init__.py +0 -0
  151. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/fastsam/__init__.py +0 -0
  152. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/fastsam/model.py +0 -0
  153. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/fastsam/predict.py +0 -0
  154. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/fastsam/utils.py +0 -0
  155. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/fastsam/val.py +0 -0
  156. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/nas/__init__.py +0 -0
  157. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/nas/model.py +0 -0
  158. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/nas/predict.py +0 -0
  159. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/nas/val.py +0 -0
  160. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/rtdetr/__init__.py +0 -0
  161. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/rtdetr/model.py +0 -0
  162. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/rtdetr/predict.py +0 -0
  163. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/rtdetr/train.py +0 -0
  164. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/rtdetr/val.py +0 -0
  165. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/__init__.py +0 -0
  166. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/amg.py +0 -0
  167. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/build.py +0 -0
  168. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/build_sam3.py +0 -0
  169. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/model.py +0 -0
  170. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/modules/__init__.py +0 -0
  171. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/modules/blocks.py +0 -0
  172. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/modules/decoders.py +0 -0
  173. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/modules/encoders.py +0 -0
  174. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  175. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/modules/sam.py +0 -0
  176. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  177. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/modules/transformer.py +0 -0
  178. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/modules/utils.py +0 -0
  179. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/predict.py +0 -0
  180. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/__init__.py +0 -0
  181. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/decoder.py +0 -0
  182. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/encoder.py +0 -0
  183. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/geometry_encoders.py +0 -0
  184. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/maskformer_segmentation.py +0 -0
  185. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/model_misc.py +0 -0
  186. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/necks.py +0 -0
  187. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/sam3_image.py +0 -0
  188. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/text_encoder_ve.py +0 -0
  189. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/vitdet.py +0 -0
  190. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/sam/sam3/vl_combiner.py +0 -0
  191. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/utils/__init__.py +0 -0
  192. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/utils/loss.py +0 -0
  193. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/utils/ops.py +0 -0
  194. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/__init__.py +0 -0
  195. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/classify/__init__.py +0 -0
  196. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/classify/predict.py +0 -0
  197. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/classify/train.py +0 -0
  198. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/classify/val.py +0 -0
  199. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/detect/__init__.py +0 -0
  200. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/detect/predict.py +0 -0
  201. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/detect/train.py +0 -0
  202. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/detect/val.py +0 -0
  203. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/model.py +0 -0
  204. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/obb/__init__.py +0 -0
  205. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/obb/predict.py +0 -0
  206. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/obb/train.py +0 -0
  207. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/obb/val.py +0 -0
  208. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/pose/__init__.py +0 -0
  209. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/pose/predict.py +0 -0
  210. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/pose/train.py +0 -0
  211. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/pose/val.py +0 -0
  212. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/segment/__init__.py +0 -0
  213. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/segment/predict.py +0 -0
  214. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/segment/train.py +0 -0
  215. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/segment/val.py +0 -0
  216. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/world/__init__.py +0 -0
  217. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/world/train.py +0 -0
  218. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/world/train_world.py +0 -0
  219. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  220. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  221. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/yoloe/train.py +0 -0
  222. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  223. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/models/yolo/yoloe/val.py +0 -0
  224. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/__init__.py +0 -0
  225. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/autobackend.py +0 -0
  226. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/modules/__init__.py +0 -0
  227. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/modules/activation.py +0 -0
  228. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/modules/block.py +0 -0
  229. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/modules/conv.py +0 -0
  230. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/modules/head.py +0 -0
  231. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/modules/transformer.py +0 -0
  232. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/modules/utils.py +0 -0
  233. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/tasks.py +0 -0
  234. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/nn/text_model.py +0 -0
  235. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/py.typed +0 -0
  236. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/__init__.py +0 -0
  237. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/ai_gym.py +0 -0
  238. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/analytics.py +0 -0
  239. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/config.py +0 -0
  240. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/distance_calculation.py +0 -0
  241. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/heatmap.py +0 -0
  242. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/instance_segmentation.py +0 -0
  243. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/object_blurrer.py +0 -0
  244. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/object_counter.py +0 -0
  245. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/object_cropper.py +0 -0
  246. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/parking_management.py +0 -0
  247. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/queue_management.py +0 -0
  248. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/region_counter.py +0 -0
  249. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/security_alarm.py +0 -0
  250. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/similarity_search.py +0 -0
  251. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/solutions.py +0 -0
  252. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/speed_estimation.py +0 -0
  253. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/streamlit_inference.py +0 -0
  254. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/templates/similarity-search.html +0 -0
  255. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/trackzone.py +0 -0
  256. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/solutions/vision_eye.py +0 -0
  257. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/trackers/__init__.py +0 -0
  258. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/trackers/basetrack.py +0 -0
  259. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/trackers/bot_sort.py +0 -0
  260. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/trackers/byte_tracker.py +0 -0
  261. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/trackers/track.py +0 -0
  262. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/trackers/utils/__init__.py +0 -0
  263. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/trackers/utils/gmc.py +0 -0
  264. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  265. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/trackers/utils/matching.py +0 -0
  266. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/__init__.py +0 -0
  267. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/autobatch.py +0 -0
  268. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/autodevice.py +0 -0
  269. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/__init__.py +0 -0
  270. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/base.py +0 -0
  271. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/clearml.py +0 -0
  272. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/comet.py +0 -0
  273. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/dvc.py +0 -0
  274. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/hub.py +0 -0
  275. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/mlflow.py +0 -0
  276. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/neptune.py +0 -0
  277. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/raytune.py +0 -0
  278. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  279. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/callbacks/wb.py +0 -0
  280. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/cpu.py +0 -0
  281. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/dist.py +0 -0
  282. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/downloads.py +0 -0
  283. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/errors.py +0 -0
  284. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/events.py +0 -0
  285. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/export/__init__.py +0 -0
  286. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/export/engine.py +0 -0
  287. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/export/imx.py +0 -0
  288. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/export/tensorflow.py +0 -0
  289. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/files.py +0 -0
  290. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/git.py +0 -0
  291. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/instance.py +0 -0
  292. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/logger.py +0 -0
  293. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/loss.py +0 -0
  294. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/nms.py +0 -0
  295. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/ops.py +0 -0
  296. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/patches.py +0 -0
  297. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/tal.py +0 -0
  298. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/torch_utils.py +0 -0
  299. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/tqdm.py +0 -0
  300. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics/utils/triton.py +0 -0
  301. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics_opencv_headless.egg-info/dependency_links.txt +0 -0
  302. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics_opencv_headless.egg-info/entry_points.txt +0 -0
  303. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/ultralytics_opencv_headless.egg-info/requires.txt +0 -0
  304. {ultralytics_opencv_headless-8.3.249 → ultralytics_opencv_headless-8.3.251}/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.249
3
+ Version: 8.3.251
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.249"
3
+ __version__ = "8.3.251"
4
4
 
5
5
  import importlib
6
6
  import os
@@ -410,9 +410,11 @@ def get_save_dir(args: SimpleNamespace, name: str | None = None) -> Path:
410
410
  else:
411
411
  from ultralytics.utils.files import increment_path
412
412
 
413
- project = args.project or (ROOT.parent / "tests/tmp/runs" if TESTS_RUNNING else RUNS_DIR) / args.task
413
+ runs = (ROOT.parent / "tests/tmp/runs" if TESTS_RUNNING else RUNS_DIR) / args.task
414
+ nested = args.project and len(Path(args.project).parts) > 1 # e.g. "user/project" or "org\repo"
415
+ project = runs / args.project if nested else args.project or runs
414
416
  name = name or args.name or f"{args.mode}"
415
- save_dir = increment_path(Path(project) / name, exist_ok=args.exist_ok if RANK in {-1, 0} else True)
417
+ save_dir = increment_path(Path(project) / name, exist_ok=args.exist_ok if RANK in {-1, 0} else True, mkdir=True)
416
418
 
417
419
  return Path(save_dir).resolve() # resolve to display full path in console
418
420
 
@@ -725,8 +727,8 @@ def handle_yolo_solutions(args: list[str]) -> None:
725
727
  )
726
728
  if solution_name == "analytics": # analytical graphs follow fixed shape for output i.e w=1920, h=1080
727
729
  w, h = 1280, 720
728
- save_dir = get_save_dir(SimpleNamespace(project="runs/solutions", name="exp", exist_ok=False))
729
- save_dir.mkdir(parents=True) # create the output directory i.e. runs/solutions/exp
730
+ save_dir = get_save_dir(SimpleNamespace(task="solutions", name="exp", exist_ok=False, project=None))
731
+ save_dir.mkdir(parents=True, exist_ok=True) # create the output directory i.e. runs/solutions/exp
730
732
  vw = cv2.VideoWriter(str(save_dir / f"{solution_name}.avi"), cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
731
733
 
732
734
  try: # Process video frames
@@ -0,0 +1,346 @@
1
+ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
+
3
+ # Tsinghua-Tencent 100K (TT100K) dataset https://cg.cs.tsinghua.edu.cn/traffic-sign/ by Tsinghua University
4
+ # Documentation: https://cg.cs.tsinghua.edu.cn/traffic-sign/tutorial.html
5
+ # Paper: Traffic-Sign Detection and Classification in the Wild (CVPR 2016)
6
+ # License: CC BY-NC 2.0 license for non-commercial use only
7
+ # Example usage: yolo train data=TT100K.yaml
8
+ # parent
9
+ # ├── ultralytics
10
+ # └── datasets
11
+ # └── TT100K ← downloads here (~18 GB)
12
+
13
+ # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
14
+ path: TT100K # dataset root dir
15
+ train: images/train # train images (relative to 'path') 6105 images
16
+ val: images/val # val images (relative to 'path') 7641 images (original 'other' split)
17
+ test: images/test # test images (relative to 'path') 3071 images
18
+
19
+ # Classes (221 traffic sign categories, 45 with sufficient training instances)
20
+ names:
21
+ 0: pl5
22
+ 1: pl10
23
+ 2: pl15
24
+ 3: pl20
25
+ 4: pl25
26
+ 5: pl30
27
+ 6: pl40
28
+ 7: pl50
29
+ 8: pl60
30
+ 9: pl70
31
+ 10: pl80
32
+ 11: pl90
33
+ 12: pl100
34
+ 13: pl110
35
+ 14: pl120
36
+ 15: pm5
37
+ 16: pm10
38
+ 17: pm13
39
+ 18: pm15
40
+ 19: pm20
41
+ 20: pm25
42
+ 21: pm30
43
+ 22: pm35
44
+ 23: pm40
45
+ 24: pm46
46
+ 25: pm50
47
+ 26: pm55
48
+ 27: pm8
49
+ 28: pn
50
+ 29: pne
51
+ 30: ph4
52
+ 31: ph4.5
53
+ 32: ph5
54
+ 33: ps
55
+ 34: pg
56
+ 35: ph1.5
57
+ 36: ph2
58
+ 37: ph2.1
59
+ 38: ph2.2
60
+ 39: ph2.4
61
+ 40: ph2.5
62
+ 41: ph2.8
63
+ 42: ph2.9
64
+ 43: ph3
65
+ 44: ph3.2
66
+ 45: ph3.5
67
+ 46: ph3.8
68
+ 47: ph4.2
69
+ 48: ph4.3
70
+ 49: ph4.8
71
+ 50: ph5.3
72
+ 51: ph5.5
73
+ 52: pb
74
+ 53: pr10
75
+ 54: pr100
76
+ 55: pr20
77
+ 56: pr30
78
+ 57: pr40
79
+ 58: pr45
80
+ 59: pr50
81
+ 60: pr60
82
+ 61: pr70
83
+ 62: pr80
84
+ 63: pr90
85
+ 64: p1
86
+ 65: p2
87
+ 66: p3
88
+ 67: p4
89
+ 68: p5
90
+ 69: p6
91
+ 70: p7
92
+ 71: p8
93
+ 72: p9
94
+ 73: p10
95
+ 74: p11
96
+ 75: p12
97
+ 76: p13
98
+ 77: p14
99
+ 78: p15
100
+ 79: p16
101
+ 80: p17
102
+ 81: p18
103
+ 82: p19
104
+ 83: p20
105
+ 84: p21
106
+ 85: p22
107
+ 86: p23
108
+ 87: p24
109
+ 88: p25
110
+ 89: p26
111
+ 90: p27
112
+ 91: p28
113
+ 92: pa8
114
+ 93: pa10
115
+ 94: pa12
116
+ 95: pa13
117
+ 96: pa14
118
+ 97: pb5
119
+ 98: pc
120
+ 99: pg
121
+ 100: ph1
122
+ 101: ph1.3
123
+ 102: ph1.5
124
+ 103: ph2
125
+ 104: ph3
126
+ 105: ph4
127
+ 106: ph5
128
+ 107: pi
129
+ 108: pl0
130
+ 109: pl4
131
+ 110: pl5
132
+ 111: pl8
133
+ 112: pl10
134
+ 113: pl15
135
+ 114: pl20
136
+ 115: pl25
137
+ 116: pl30
138
+ 117: pl35
139
+ 118: pl40
140
+ 119: pl50
141
+ 120: pl60
142
+ 121: pl65
143
+ 122: pl70
144
+ 123: pl80
145
+ 124: pl90
146
+ 125: pl100
147
+ 126: pl110
148
+ 127: pl120
149
+ 128: pm2
150
+ 129: pm8
151
+ 130: pm10
152
+ 131: pm13
153
+ 132: pm15
154
+ 133: pm20
155
+ 134: pm25
156
+ 135: pm30
157
+ 136: pm35
158
+ 137: pm40
159
+ 138: pm46
160
+ 139: pm50
161
+ 140: pm55
162
+ 141: pn
163
+ 142: pne
164
+ 143: po
165
+ 144: pr10
166
+ 145: pr100
167
+ 146: pr20
168
+ 147: pr30
169
+ 148: pr40
170
+ 149: pr45
171
+ 150: pr50
172
+ 151: pr60
173
+ 152: pr70
174
+ 153: pr80
175
+ 154: ps
176
+ 155: w1
177
+ 156: w2
178
+ 157: w3
179
+ 158: w5
180
+ 159: w8
181
+ 160: w10
182
+ 161: w12
183
+ 162: w13
184
+ 163: w16
185
+ 164: w18
186
+ 165: w20
187
+ 166: w21
188
+ 167: w22
189
+ 168: w24
190
+ 169: w28
191
+ 170: w30
192
+ 171: w31
193
+ 172: w32
194
+ 173: w34
195
+ 174: w35
196
+ 175: w37
197
+ 176: w38
198
+ 177: w41
199
+ 178: w42
200
+ 179: w43
201
+ 180: w44
202
+ 181: w45
203
+ 182: w46
204
+ 183: w47
205
+ 184: w48
206
+ 185: w49
207
+ 186: w50
208
+ 187: w51
209
+ 188: w52
210
+ 189: w53
211
+ 190: w54
212
+ 191: w55
213
+ 192: w56
214
+ 193: w57
215
+ 194: w58
216
+ 195: w59
217
+ 196: w60
218
+ 197: w62
219
+ 198: w63
220
+ 199: w66
221
+ 200: i1
222
+ 201: i2
223
+ 202: i3
224
+ 203: i4
225
+ 204: i5
226
+ 205: i6
227
+ 206: i7
228
+ 207: i8
229
+ 208: i9
230
+ 209: i10
231
+ 210: i11
232
+ 211: i12
233
+ 212: i13
234
+ 213: i14
235
+ 214: i15
236
+ 215: il60
237
+ 216: il80
238
+ 217: il100
239
+ 218: il110
240
+ 219: io
241
+ 220: ip
242
+
243
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
244
+ download: |
245
+ import json
246
+ import shutil
247
+ from pathlib import Path
248
+
249
+ from PIL import Image
250
+
251
+ from ultralytics.utils import TQDM
252
+ from ultralytics.utils.downloads import download
253
+
254
+
255
+ def tt100k2yolo(dir):
256
+ """Convert TT100K annotations to YOLO format with images/{split} and labels/{split} structure."""
257
+ data_dir = dir / "data"
258
+ anno_file = data_dir / "annotations.json"
259
+
260
+ print("Loading annotations...")
261
+ with open(anno_file, encoding="utf-8") as f:
262
+ data = json.load(f)
263
+
264
+ # Build class name to index mapping from yaml
265
+ names = yaml["names"]
266
+ class_to_idx = {v: k for k, v in names.items()}
267
+
268
+ # Create directories
269
+ for split in ["train", "val", "test"]:
270
+ (dir / "images" / split).mkdir(parents=True, exist_ok=True)
271
+ (dir / "labels" / split).mkdir(parents=True, exist_ok=True)
272
+
273
+ print("Converting annotations to YOLO format...")
274
+ skipped = 0
275
+ for img_id, img_data in TQDM(data["imgs"].items(), desc="Processing"):
276
+ img_path_str = img_data["path"]
277
+ if "train" in img_path_str:
278
+ split = "train"
279
+ elif "test" in img_path_str:
280
+ split = "test"
281
+ else:
282
+ split = "val"
283
+
284
+ # Source and destination paths
285
+ src_img = data_dir / img_path_str
286
+ if not src_img.exists():
287
+ continue
288
+
289
+ dst_img = dir / "images" / split / src_img.name
290
+
291
+ # Get image dimensions
292
+ try:
293
+ with Image.open(src_img) as img:
294
+ img_width, img_height = img.size
295
+ except Exception as e:
296
+ print(f"Error reading {src_img}: {e}")
297
+ continue
298
+
299
+ # Copy image to destination
300
+ shutil.copy2(src_img, dst_img)
301
+
302
+ # Convert annotations
303
+ label_file = dir / "labels" / split / f"{src_img.stem}.txt"
304
+ lines = []
305
+
306
+ for obj in img_data.get("objects", []):
307
+ category = obj["category"]
308
+ if category not in class_to_idx:
309
+ skipped += 1
310
+ continue
311
+
312
+ bbox = obj["bbox"]
313
+ xmin, ymin = bbox["xmin"], bbox["ymin"]
314
+ xmax, ymax = bbox["xmax"], bbox["ymax"]
315
+
316
+ # Convert to YOLO format (normalized center coordinates and dimensions)
317
+ x_center = ((xmin + xmax) / 2.0) / img_width
318
+ y_center = ((ymin + ymax) / 2.0) / img_height
319
+ width = (xmax - xmin) / img_width
320
+ height = (ymax - ymin) / img_height
321
+
322
+ # Clip to valid range
323
+ x_center = max(0, min(1, x_center))
324
+ y_center = max(0, min(1, y_center))
325
+ width = max(0, min(1, width))
326
+ height = max(0, min(1, height))
327
+
328
+ cls_idx = class_to_idx[category]
329
+ lines.append(f"{cls_idx} {x_center:.6f} {y_center:.6f} {width:.6f} {height:.6f}\n")
330
+
331
+ # Write label file
332
+ if lines:
333
+ label_file.write_text("".join(lines), encoding="utf-8")
334
+
335
+ if skipped:
336
+ print(f"Skipped {skipped} annotations with unknown categories")
337
+ print("Conversion complete!")
338
+
339
+
340
+ # Download
341
+ dir = Path(yaml["path"]) # dataset root dir
342
+ urls = ["https://cg.cs.tsinghua.edu.cn/traffic-sign/data_model_code/data.zip"]
343
+ download(urls, dir=dir, curl=True, threads=1)
344
+
345
+ # Convert
346
+ tt100k2yolo(dir)
@@ -275,7 +275,7 @@ class Model(torch.nn.Module):
275
275
  >>> model._load("yolo11n.pt")
276
276
  >>> model._load("path/to/weights.pth", task="detect")
277
277
  """
278
- if weights.lower().startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://")):
278
+ if weights.lower().startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://", "ul://")):
279
279
  weights = checks.check_file(weights, download_dir=SETTINGS["weights_dir"]) # download and return local file
280
280
  weights = checks.check_model_file_from_stem(weights) # add suffix, i.e. yolo11n -> yolo11n.pt
281
281
 
@@ -403,7 +403,7 @@ class Model(torch.nn.Module):
403
403
  }
404
404
  torch.save({**self.ckpt, **updates}, filename)
405
405
 
406
- def info(self, detailed: bool = False, verbose: bool = True):
406
+ def info(self, detailed: bool = False, verbose: bool = True, imgsz: int | list[int, int] = 640):
407
407
  """Display model information.
408
408
 
409
409
  This method provides an overview or detailed information about the model, depending on the arguments
@@ -412,6 +412,7 @@ class Model(torch.nn.Module):
412
412
  Args:
413
413
  detailed (bool): If True, shows detailed information about the model layers and parameters.
414
414
  verbose (bool): If True, prints the information. If False, returns the information as a list.
415
+ imgsz (int | list[int, int]): Input image size used for FLOPs calculation.
415
416
 
416
417
  Returns:
417
418
  (list[str]): A list of strings containing various types of information about the model, including model
@@ -423,7 +424,7 @@ class Model(torch.nn.Module):
423
424
  >>> info_list = model.info(detailed=True, verbose=False) # Returns detailed info as a list
424
425
  """
425
426
  self._check_is_pytorch_model()
426
- return self.model.info(detailed=detailed, verbose=verbose)
427
+ return self.model.info(detailed=detailed, verbose=verbose, imgsz=imgsz)
427
428
 
428
429
  def fuse(self) -> None:
429
430
  """Fuse Conv2d and BatchNorm2d layers in the model for optimized inference.
@@ -157,6 +157,27 @@ class BaseTrainer:
157
157
  if self.device.type in {"cpu", "mps"}:
158
158
  self.args.workers = 0 # faster CPU training as time dominated by inference, not dataloading
159
159
 
160
+ # Callbacks - initialize early so on_pretrain_routine_start can capture original args.data
161
+ self.callbacks = _callbacks or callbacks.get_default_callbacks()
162
+
163
+ if isinstance(self.args.device, str) and len(self.args.device): # i.e. device='0' or device='0,1,2,3'
164
+ world_size = len(self.args.device.split(","))
165
+ elif isinstance(self.args.device, (tuple, list)): # i.e. device=[0, 1, 2, 3] (multi-GPU from CLI is list)
166
+ world_size = len(self.args.device)
167
+ elif self.args.device in {"cpu", "mps"}: # i.e. device='cpu' or 'mps'
168
+ world_size = 0
169
+ elif torch.cuda.is_available(): # i.e. device=None or device='' or device=number
170
+ world_size = 1 # default to device 0
171
+ else: # i.e. device=None or device=''
172
+ world_size = 0
173
+
174
+ self.ddp = world_size > 1 and "LOCAL_RANK" not in os.environ
175
+ self.world_size = world_size
176
+ # Run on_pretrain_routine_start before get_dataset() to capture original args.data (e.g., ul:// URIs)
177
+ if RANK in {-1, 0} and not self.ddp:
178
+ callbacks.add_integration_callbacks(self)
179
+ self.run_callbacks("on_pretrain_routine_start")
180
+
160
181
  # Model and Dataset
161
182
  self.model = check_model_file_from_stem(self.args.model) # add suffix, i.e. yolo11n -> yolo11n.pt
162
183
  with torch_distributed_zero_first(LOCAL_RANK): # avoid auto-downloading dataset multiple times
@@ -180,28 +201,6 @@ class BaseTrainer:
180
201
  self.plot_idx = [0, 1, 2]
181
202
  self.nan_recovery_attempts = 0
182
203
 
183
- # Callbacks
184
- self.callbacks = _callbacks or callbacks.get_default_callbacks()
185
-
186
- if isinstance(self.args.device, str) and len(self.args.device): # i.e. device='0' or device='0,1,2,3'
187
- world_size = len(self.args.device.split(","))
188
- elif isinstance(self.args.device, (tuple, list)): # i.e. device=[0, 1, 2, 3] (multi-GPU from CLI is list)
189
- world_size = len(self.args.device)
190
- elif self.args.device in {"cpu", "mps"}: # i.e. device='cpu' or 'mps'
191
- world_size = 0
192
- elif torch.cuda.is_available(): # i.e. device=None or device='' or device=number
193
- world_size = 1 # default to device 0
194
- else: # i.e. device=None or device=''
195
- world_size = 0
196
-
197
- self.ddp = world_size > 1 and "LOCAL_RANK" not in os.environ
198
- self.world_size = world_size
199
- # Run subprocess if DDP training, else train normally
200
- if RANK in {-1, 0} and not self.ddp:
201
- callbacks.add_integration_callbacks(self)
202
- # Start console logging immediately at trainer initialization
203
- self.run_callbacks("on_pretrain_routine_start")
204
-
205
204
  def add_callback(self, event: str, callback):
206
205
  """Append the given callback to the event's callback list."""
207
206
  self.callbacks[event].append(callback)
@@ -631,13 +630,17 @@ class BaseTrainer:
631
630
  try:
632
631
  if self.args.task == "classify":
633
632
  data = check_cls_dataset(self.args.data)
634
- elif str(self.args.data).rsplit(".", 1)[-1] == "ndjson":
635
- # Convert NDJSON to YOLO format
633
+ elif str(self.args.data).rsplit(".", 1)[-1] == "ndjson" or (
634
+ str(self.args.data).startswith("ul://") and "/datasets/" in str(self.args.data)
635
+ ):
636
+ # Convert NDJSON to YOLO format (including ul:// platform dataset URIs)
636
637
  import asyncio
637
638
 
638
639
  from ultralytics.data.converter import convert_ndjson_to_yolo
640
+ from ultralytics.utils.checks import check_file
639
641
 
640
- yaml_path = asyncio.run(convert_ndjson_to_yolo(self.args.data))
642
+ ndjson_file = check_file(self.args.data) # Resolve ul:// or URL to local .ndjson file
643
+ yaml_path = asyncio.run(convert_ndjson_to_yolo(ndjson_file))
641
644
  self.args.data = str(yaml_path)
642
645
  data = check_det_dataset(self.args.data)
643
646
  elif str(self.args.data).rsplit(".", 1)[-1] in {"yaml", "yml"} or self.args.task in {
@@ -378,6 +378,7 @@ class Tuner:
378
378
  metrics = {}
379
379
  train_args = {**vars(self.args), **mutated_hyp}
380
380
  save_dir = get_save_dir(get_cfg(train_args))
381
+ train_args["save_dir"] = str(save_dir) # pass save_dir to subprocess to ensure same path is used
381
382
  weights_dir = save_dir / "weights"
382
383
  try:
383
384
  # Train YOLO model with mutated hyperparameters (run in subprocess to avoid dataloader hang)
@@ -460,7 +460,7 @@ class ProfileModels:
460
460
  if file.suffix in {".pt", ".yaml", ".yml"}:
461
461
  model = YOLO(str(file))
462
462
  model.fuse() # to report correct params and GFLOPs in model.info()
463
- model_info = model.info()
463
+ model_info = model.info(imgsz=self.imgsz)
464
464
  if self.trt and self.device.type != "cpu" and not engine_file.is_file():
465
465
  engine_file = model.export(
466
466
  format="engine",