ultralytics-opencv-headless 8.3.245__tar.gz → 8.3.246__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.245 → ultralytics_opencv_headless-8.3.246}/PKG-INFO +2 -2
  2. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/pyproject.toml +1 -1
  3. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/tests/test_exports.py +2 -2
  4. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/__init__.py +1 -1
  5. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/engine/exporter.py +2 -0
  6. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/segment/predict.py +2 -2
  7. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/platform.py +17 -6
  8. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/checks.py +4 -1
  9. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/logger.py +3 -2
  10. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/metrics.py +6 -3
  11. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/ops.py +6 -6
  12. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/plotting.py +1 -1
  13. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics_opencv_headless.egg-info/PKG-INFO +2 -2
  14. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics_opencv_headless.egg-info/requires.txt +1 -1
  15. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/LICENSE +0 -0
  16. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/README.md +0 -0
  17. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/setup.cfg +0 -0
  18. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/tests/__init__.py +0 -0
  19. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/tests/conftest.py +0 -0
  20. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/tests/test_cli.py +0 -0
  21. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/tests/test_cuda.py +0 -0
  22. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/tests/test_engine.py +0 -0
  23. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/tests/test_integrations.py +0 -0
  24. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/tests/test_python.py +0 -0
  25. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/tests/test_solutions.py +0 -0
  26. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/assets/bus.jpg +0 -0
  27. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/assets/zidane.jpg +0 -0
  28. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/__init__.py +0 -0
  29. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  30. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  31. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  32. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  33. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  34. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  35. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  36. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  37. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  38. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  39. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  40. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  41. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  42. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  43. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/coco.yaml +0 -0
  44. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  45. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  46. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  47. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  48. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  49. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  50. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  51. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
  52. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  53. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  54. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  55. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  56. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  57. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/kitti.yaml +0 -0
  58. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  59. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  60. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  61. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  62. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/signature.yaml +0 -0
  63. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  64. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/datasets/xView.yaml +0 -0
  65. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/default.yaml +0 -0
  66. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  67. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  68. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  69. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  70. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  71. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  72. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  73. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  74. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  75. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  76. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  77. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  78. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  79. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  80. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  81. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  82. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  83. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  84. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  85. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  86. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  87. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  88. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  89. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  90. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  91. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  92. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  93. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  94. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  95. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  96. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  97. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  98. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  99. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  100. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  101. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  102. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  103. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  104. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  105. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  106. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  107. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  108. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  109. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  110. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  111. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  112. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  113. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  114. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  115. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  116. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  117. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  118. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  119. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  120. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  121. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  122. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  123. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/__init__.py +0 -0
  124. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/annotator.py +0 -0
  125. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/augment.py +0 -0
  126. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/base.py +0 -0
  127. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/build.py +0 -0
  128. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/converter.py +0 -0
  129. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/dataset.py +0 -0
  130. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/loaders.py +0 -0
  131. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/scripts/download_weights.sh +0 -0
  132. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/scripts/get_coco.sh +0 -0
  133. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/scripts/get_coco128.sh +0 -0
  134. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  135. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/split.py +0 -0
  136. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/split_dota.py +0 -0
  137. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/data/utils.py +0 -0
  138. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/engine/__init__.py +0 -0
  139. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/engine/model.py +0 -0
  140. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/engine/predictor.py +0 -0
  141. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/engine/results.py +0 -0
  142. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/engine/trainer.py +0 -0
  143. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/engine/tuner.py +0 -0
  144. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/engine/validator.py +0 -0
  145. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/hub/__init__.py +0 -0
  146. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/hub/auth.py +0 -0
  147. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/hub/google/__init__.py +0 -0
  148. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/hub/session.py +0 -0
  149. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/hub/utils.py +0 -0
  150. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/__init__.py +0 -0
  151. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/fastsam/__init__.py +0 -0
  152. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/fastsam/model.py +0 -0
  153. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/fastsam/predict.py +0 -0
  154. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/fastsam/utils.py +0 -0
  155. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/fastsam/val.py +0 -0
  156. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/nas/__init__.py +0 -0
  157. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/nas/model.py +0 -0
  158. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/nas/predict.py +0 -0
  159. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/nas/val.py +0 -0
  160. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/rtdetr/__init__.py +0 -0
  161. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/rtdetr/model.py +0 -0
  162. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/rtdetr/predict.py +0 -0
  163. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/rtdetr/train.py +0 -0
  164. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/rtdetr/val.py +0 -0
  165. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/__init__.py +0 -0
  166. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/amg.py +0 -0
  167. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/build.py +0 -0
  168. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/build_sam3.py +0 -0
  169. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/model.py +0 -0
  170. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/modules/__init__.py +0 -0
  171. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/modules/blocks.py +0 -0
  172. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/modules/decoders.py +0 -0
  173. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/modules/encoders.py +0 -0
  174. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  175. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/modules/sam.py +0 -0
  176. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  177. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/modules/transformer.py +0 -0
  178. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/modules/utils.py +0 -0
  179. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/predict.py +0 -0
  180. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/__init__.py +0 -0
  181. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/decoder.py +0 -0
  182. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/encoder.py +0 -0
  183. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/geometry_encoders.py +0 -0
  184. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/maskformer_segmentation.py +0 -0
  185. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/model_misc.py +0 -0
  186. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/necks.py +0 -0
  187. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/sam3_image.py +0 -0
  188. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/text_encoder_ve.py +0 -0
  189. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/vitdet.py +0 -0
  190. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/sam/sam3/vl_combiner.py +0 -0
  191. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/utils/__init__.py +0 -0
  192. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/utils/loss.py +0 -0
  193. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/utils/ops.py +0 -0
  194. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/__init__.py +0 -0
  195. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/classify/__init__.py +0 -0
  196. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/classify/predict.py +0 -0
  197. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/classify/train.py +0 -0
  198. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/classify/val.py +0 -0
  199. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/detect/__init__.py +0 -0
  200. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/detect/predict.py +0 -0
  201. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/detect/train.py +0 -0
  202. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/detect/val.py +0 -0
  203. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/model.py +0 -0
  204. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/obb/__init__.py +0 -0
  205. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/obb/predict.py +0 -0
  206. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/obb/train.py +0 -0
  207. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/obb/val.py +0 -0
  208. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/pose/__init__.py +0 -0
  209. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/pose/predict.py +0 -0
  210. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/pose/train.py +0 -0
  211. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/pose/val.py +0 -0
  212. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/segment/__init__.py +0 -0
  213. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/segment/train.py +0 -0
  214. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/segment/val.py +0 -0
  215. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/world/__init__.py +0 -0
  216. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/world/train.py +0 -0
  217. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/world/train_world.py +0 -0
  218. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  219. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  220. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/yoloe/train.py +0 -0
  221. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  222. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/models/yolo/yoloe/val.py +0 -0
  223. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/__init__.py +0 -0
  224. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/autobackend.py +0 -0
  225. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/modules/__init__.py +0 -0
  226. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/modules/activation.py +0 -0
  227. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/modules/block.py +0 -0
  228. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/modules/conv.py +0 -0
  229. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/modules/head.py +0 -0
  230. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/modules/transformer.py +0 -0
  231. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/modules/utils.py +0 -0
  232. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/tasks.py +0 -0
  233. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/nn/text_model.py +0 -0
  234. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/py.typed +0 -0
  235. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/__init__.py +0 -0
  236. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/ai_gym.py +0 -0
  237. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/analytics.py +0 -0
  238. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/config.py +0 -0
  239. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/distance_calculation.py +0 -0
  240. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/heatmap.py +0 -0
  241. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/instance_segmentation.py +0 -0
  242. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/object_blurrer.py +0 -0
  243. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/object_counter.py +0 -0
  244. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/object_cropper.py +0 -0
  245. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/parking_management.py +0 -0
  246. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/queue_management.py +0 -0
  247. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/region_counter.py +0 -0
  248. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/security_alarm.py +0 -0
  249. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/similarity_search.py +0 -0
  250. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/solutions.py +0 -0
  251. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/speed_estimation.py +0 -0
  252. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/streamlit_inference.py +0 -0
  253. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/templates/similarity-search.html +0 -0
  254. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/trackzone.py +0 -0
  255. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/solutions/vision_eye.py +0 -0
  256. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/trackers/__init__.py +0 -0
  257. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/trackers/basetrack.py +0 -0
  258. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/trackers/bot_sort.py +0 -0
  259. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/trackers/byte_tracker.py +0 -0
  260. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/trackers/track.py +0 -0
  261. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/trackers/utils/__init__.py +0 -0
  262. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/trackers/utils/gmc.py +0 -0
  263. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  264. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/trackers/utils/matching.py +0 -0
  265. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/__init__.py +0 -0
  266. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/autobatch.py +0 -0
  267. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/autodevice.py +0 -0
  268. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/benchmarks.py +0 -0
  269. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/__init__.py +0 -0
  270. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/base.py +0 -0
  271. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/clearml.py +0 -0
  272. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/comet.py +0 -0
  273. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/dvc.py +0 -0
  274. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/hub.py +0 -0
  275. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/mlflow.py +0 -0
  276. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/neptune.py +0 -0
  277. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/raytune.py +0 -0
  278. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  279. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/callbacks/wb.py +0 -0
  280. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/cpu.py +0 -0
  281. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/dist.py +0 -0
  282. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/downloads.py +0 -0
  283. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/errors.py +0 -0
  284. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/events.py +0 -0
  285. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/export/__init__.py +0 -0
  286. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/export/engine.py +0 -0
  287. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/export/imx.py +0 -0
  288. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/export/tensorflow.py +0 -0
  289. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/files.py +0 -0
  290. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/git.py +0 -0
  291. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/instance.py +0 -0
  292. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/loss.py +0 -0
  293. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/nms.py +0 -0
  294. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/patches.py +0 -0
  295. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/tal.py +0 -0
  296. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/torch_utils.py +0 -0
  297. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/tqdm.py +0 -0
  298. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/triton.py +0 -0
  299. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics/utils/tuner.py +0 -0
  300. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics_opencv_headless.egg-info/SOURCES.txt +0 -0
  301. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics_opencv_headless.egg-info/dependency_links.txt +0 -0
  302. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/ultralytics_opencv_headless.egg-info/entry_points.txt +0 -0
  303. {ultralytics_opencv_headless-8.3.245 → ultralytics_opencv_headless-8.3.246}/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.245
3
+ Version: 8.3.246
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>
@@ -57,7 +57,7 @@ Provides-Extra: export
57
57
  Requires-Dist: numpy<2.0.0; extra == "export"
58
58
  Requires-Dist: onnx>=1.12.0; platform_system != "Darwin" and extra == "export"
59
59
  Requires-Dist: onnx<1.18.0,>=1.12.0; platform_system == "Darwin" and extra == "export"
60
- Requires-Dist: onnxslim>=0.1.80; extra == "export"
60
+ Requires-Dist: onnxslim>=0.1.82; extra == "export"
61
61
  Requires-Dist: coremltools>=9.0; (platform_system != "Windows" and python_version <= "3.13") and extra == "export"
62
62
  Requires-Dist: scikit-learn>=1.3.2; (platform_system != "Windows" and python_version <= "3.13") and extra == "export"
63
63
  Requires-Dist: openvino>=2024.0.0; extra == "export"
@@ -91,7 +91,7 @@ export = [
91
91
  "numpy<2.0.0", # TF 2.20 compatibility
92
92
  "onnx>=1.12.0; platform_system != 'Darwin'", # ONNX export
93
93
  "onnx>=1.12.0,<1.18.0; platform_system == 'Darwin'", # TF inference hanging on MacOS (tested up to onnx==1.20.0)
94
- "onnxslim>=0.1.80",
94
+ "onnxslim>=0.1.82",
95
95
  "coremltools>=9.0; platform_system != 'Windows' and python_version <= '3.13'", # CoreML supported on macOS and Linux
96
96
  "scikit-learn>=1.3.2; platform_system != 'Windows' and python_version <= '3.13'", # CoreML k-means quantization
97
97
  "openvino>=2024.0.0", # OpenVINO export
@@ -267,13 +267,13 @@ def test_export_imx():
267
267
  @pytest.mark.skipif(not checks.IS_PYTHON_3_10, reason="Axelera export requires Python 3.10")
268
268
  def test_export_axelera():
269
269
  """Test YOLO export to Axelera format."""
270
- # For faster testing, use a smaller calibration dataset
271
- # 32 image size crashes axelera export, so use 64
270
+ # For faster testing, use a smaller calibration dataset (32 image size crashes axelera export, so 64 is used)
272
271
  file = YOLO(MODEL).export(format="axelera", imgsz=64, data="coco8.yaml")
273
272
  assert Path(file).exists(), f"Axelera export failed, directory not found: {file}"
274
273
  shutil.rmtree(file, ignore_errors=True) # cleanup
275
274
 
276
275
 
276
+ # @pytest.mark.skipif(True, reason="Disabled for debugging ruamel.yaml installation required by executorch")
277
277
  @pytest.mark.skipif(not checks.IS_PYTHON_MINIMUM_3_10 or not TORCH_2_9, reason="Requires Python>=3.10 and Torch>=2.9.0")
278
278
  @pytest.mark.skipif(WINDOWS, reason="Skipping test on Windows")
279
279
  def test_export_executorch():
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.245"
3
+ __version__ = "8.3.246"
4
4
 
5
5
  import importlib
6
6
  import os
@@ -1192,6 +1192,8 @@ class Exporter:
1192
1192
  # BUG executorch build on arm64 Docker requires packaging>=22.0 https://github.com/pypa/setuptools/issues/4483
1193
1193
  if LINUX and ARM64 and IS_DOCKER:
1194
1194
  check_requirements("packaging>=22.0")
1195
+
1196
+ check_requirements("ruamel.yaml<0.19.0")
1195
1197
  check_requirements("executorch==1.0.1", "flatbuffers")
1196
1198
  # Pin numpy to avoid coremltools errors with numpy>=2.4.0, must be separate
1197
1199
  check_requirements("numpy<=2.3.5")
@@ -98,9 +98,9 @@ class SegmentationPredictor(DetectionPredictor):
98
98
  masks = None
99
99
  elif self.args.retina_masks:
100
100
  pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
101
- masks = ops.process_mask_native(proto, pred[:, 6:], pred[:, :4], orig_img.shape[:2]) # HWC
101
+ masks = ops.process_mask_native(proto, pred[:, 6:], pred[:, :4], orig_img.shape[:2]) # NHW
102
102
  else:
103
- masks = ops.process_mask(proto, pred[:, 6:], pred[:, :4], img.shape[2:], upsample=True) # HWC
103
+ masks = ops.process_mask(proto, pred[:, 6:], pred[:, :4], img.shape[2:], upsample=True) # NHW
104
104
  pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
105
105
  if masks is not None:
106
106
  keep = masks.amax((-2, -1)) > 0 # only keep predictions with masks
@@ -252,7 +252,7 @@ def on_model_save(trainer):
252
252
 
253
253
 
254
254
  def on_train_end(trainer):
255
- """Log final results and upload best model."""
255
+ """Log final results, upload best model, and send validation plot data."""
256
256
  global _console_logger
257
257
 
258
258
  if RANK not in {-1, 0} or not trainer.args.project:
@@ -260,7 +260,7 @@ def on_train_end(trainer):
260
260
 
261
261
  project, name = str(trainer.args.project), str(trainer.args.name or "train")
262
262
 
263
- # Stop console capture and flush remaining output
263
+ # Stop console capture
264
264
  if _console_logger:
265
265
  _console_logger.stop_capture()
266
266
  _console_logger = None
@@ -272,7 +272,16 @@ def on_train_end(trainer):
272
272
  model_size = Path(trainer.best).stat().st_size
273
273
  model_path = _upload_model(trainer.best, project, name)
274
274
 
275
- # Send training complete
275
+ # Collect plots from trainer and validator
276
+ plots = [info["data"] for info in getattr(trainer, "plots", {}).values() if info.get("data")]
277
+ plots += [
278
+ info["data"] for info in getattr(getattr(trainer, "validator", None), "plots", {}).values() if info.get("data")
279
+ ]
280
+
281
+ # Get class names
282
+ names = getattr(getattr(trainer, "validator", None), "names", None) or (trainer.data or {}).get("names")
283
+ class_names = list(names.values()) if isinstance(names, dict) else list(names) if names else None
284
+
276
285
  _send(
277
286
  "training_complete",
278
287
  {
@@ -280,14 +289,16 @@ def on_train_end(trainer):
280
289
  "metrics": {**trainer.metrics, "fitness": trainer.fitness},
281
290
  "bestEpoch": getattr(trainer, "best_epoch", trainer.epoch),
282
291
  "bestFitness": trainer.best_fitness,
283
- "modelPath": model_path or str(trainer.best) if trainer.best else None,
292
+ "modelPath": model_path or (str(trainer.best) if trainer.best else None),
284
293
  "modelSize": model_size,
285
- }
294
+ },
295
+ "classNames": class_names,
296
+ "plots": plots,
286
297
  },
287
298
  project,
288
299
  name,
289
300
  )
290
- LOGGER.info(f"Platform: Training complete, results uploaded to '{project}'")
301
+ LOGGER.info(f"Platform: Training complete, results uploaded to '{project}' ({len(plots)} plots)")
291
302
 
292
303
 
293
304
  callbacks = (
@@ -489,7 +489,10 @@ def check_requirements(requirements=ROOT.parent / "requirements.txt", exclude=()
489
489
  f"{prefix} {colorstr('bold', 'Restart runtime or rerun command for updates to take effect')}\n"
490
490
  )
491
491
  except Exception as e:
492
- LOGGER.warning(f"{prefix} ❌ {e}")
492
+ msg = f"{prefix} ❌ {e}"
493
+ if hasattr(e, "output") and e.output:
494
+ msg += f"\n{e.output}"
495
+ LOGGER.warning(msg)
493
496
  return False
494
497
  else:
495
498
  return False
@@ -8,7 +8,7 @@ import time
8
8
  from datetime import datetime
9
9
  from pathlib import Path
10
10
 
11
- from ultralytics.utils import MACOS, RANK
11
+ from ultralytics.utils import LOGGER, MACOS, RANK
12
12
  from ultralytics.utils.checks import check_requirements
13
13
 
14
14
 
@@ -336,7 +336,8 @@ class SystemLogger:
336
336
  self.pynvml = __import__("pynvml")
337
337
  self.pynvml.nvmlInit()
338
338
  return True
339
- except Exception:
339
+ except Exception as e:
340
+ LOGGER.warning(f"SystemLogger NVML init failed: {e}")
340
341
  return False
341
342
 
342
343
  def get_metrics(self, rates=False):
@@ -568,7 +568,8 @@ class ConfusionMatrix(DataExportMixin):
568
568
  fig.savefig(plot_fname, dpi=250)
569
569
  plt.close(fig)
570
570
  if on_plot:
571
- on_plot(plot_fname)
571
+ # Pass confusion matrix data for interactive plotting (raw counts only, normalization done on frontend)
572
+ on_plot(plot_fname, {"type": "confusion_matrix", "matrix": self.matrix.tolist()})
572
573
 
573
574
  def print(self):
574
575
  """Print the confusion matrix to the console."""
@@ -661,7 +662,8 @@ def plot_pr_curve(
661
662
  fig.savefig(save_dir, dpi=250)
662
663
  plt.close(fig)
663
664
  if on_plot:
664
- on_plot(save_dir)
665
+ # Pass PR curve data for interactive plotting (class names stored at model level)
666
+ on_plot(save_dir, {"type": "pr_curve", "x": px.tolist(), "y": py.tolist(), "ap": ap.tolist()})
665
667
 
666
668
 
667
669
  @plt_settings()
@@ -706,7 +708,8 @@ def plot_mc_curve(
706
708
  fig.savefig(save_dir, dpi=250)
707
709
  plt.close(fig)
708
710
  if on_plot:
709
- on_plot(save_dir)
711
+ # Pass metric-confidence curve data for interactive plotting (class names stored at model level)
712
+ on_plot(save_dir, {"type": f"{ylabel.lower()}_curve", "x": px.tolist(), "y": py.tolist()})
710
713
 
711
714
 
712
715
  def compute_ap(recall: list[float], precision: list[float]) -> tuple[float, np.ndarray, np.ndarray]:
@@ -484,15 +484,15 @@ def process_mask(protos, masks_in, bboxes, shape, upsample: bool = False):
484
484
  are the height and width of the input image. The mask is applied to the bounding boxes.
485
485
  """
486
486
  c, mh, mw = protos.shape # CHW
487
- masks = (masks_in @ protos.float().view(c, -1)).view(-1, mh, mw) # CHW
487
+ masks = (masks_in @ protos.float().view(c, -1)).view(-1, mh, mw) # NHW
488
488
 
489
489
  width_ratio = mw / shape[1]
490
490
  height_ratio = mh / shape[0]
491
491
  ratios = torch.tensor([[width_ratio, height_ratio, width_ratio, height_ratio]], device=bboxes.device)
492
492
 
493
- masks = crop_mask(masks, boxes=bboxes * ratios) # CHW
493
+ masks = crop_mask(masks, boxes=bboxes * ratios) # NHW
494
494
  if upsample:
495
- masks = F.interpolate(masks[None], shape, mode="bilinear")[0] # CHW
495
+ masks = F.interpolate(masks[None], shape, mode="bilinear")[0] # NHW
496
496
  return masks.gt_(0.0).byte()
497
497
 
498
498
 
@@ -506,12 +506,12 @@ def process_mask_native(protos, masks_in, bboxes, shape):
506
506
  shape (tuple): Input image size as (height, width).
507
507
 
508
508
  Returns:
509
- (torch.Tensor): Binary mask tensor with shape (H, W, N).
509
+ (torch.Tensor): Binary mask tensor with shape (N, H, W).
510
510
  """
511
511
  c, mh, mw = protos.shape # CHW
512
512
  masks = (masks_in @ protos.float().view(c, -1)).view(-1, mh, mw)
513
- masks = scale_masks(masks[None], shape)[0] # CHW
514
- masks = crop_mask(masks, bboxes) # CHW
513
+ masks = scale_masks(masks[None], shape)[0] # NHW
514
+ masks = crop_mask(masks, bboxes) # NHW
515
515
  return masks.gt_(0.0).byte()
516
516
 
517
517
 
@@ -401,7 +401,7 @@ class Annotator:
401
401
  masks = masks.unsqueeze(3) # shape(n,h,w,1)
402
402
  masks_color = masks * (colors * alpha) # shape(n,h,w,3)
403
403
  inv_alpha_masks = (1 - masks * alpha).cumprod(0) # shape(n,h,w,1)
404
- mcs = masks_color.max(dim=0).values # shape(n,h,w,3)
404
+ mcs = masks_color.max(dim=0).values # shape(h,w,3)
405
405
 
406
406
  im_gpu = im_gpu.flip(dims=[0]).permute(1, 2, 0).contiguous() # shape(h,w,3)
407
407
  im_gpu = im_gpu * inv_alpha_masks[-1] + mcs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics-opencv-headless
3
- Version: 8.3.245
3
+ Version: 8.3.246
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>
@@ -57,7 +57,7 @@ Provides-Extra: export
57
57
  Requires-Dist: numpy<2.0.0; extra == "export"
58
58
  Requires-Dist: onnx>=1.12.0; platform_system != "Darwin" and extra == "export"
59
59
  Requires-Dist: onnx<1.18.0,>=1.12.0; platform_system == "Darwin" and extra == "export"
60
- Requires-Dist: onnxslim>=0.1.80; extra == "export"
60
+ Requires-Dist: onnxslim>=0.1.82; extra == "export"
61
61
  Requires-Dist: coremltools>=9.0; (platform_system != "Windows" and python_version <= "3.13") and extra == "export"
62
62
  Requires-Dist: scikit-learn>=1.3.2; (platform_system != "Windows" and python_version <= "3.13") and extra == "export"
63
63
  Requires-Dist: openvino>=2024.0.0; extra == "export"
@@ -27,7 +27,7 @@ zensical>=0.0.15
27
27
 
28
28
  [export]
29
29
  numpy<2.0.0
30
- onnxslim>=0.1.80
30
+ onnxslim>=0.1.82
31
31
  openvino>=2024.0.0
32
32
  tensorflow<=2.19.0,>=2.0.0
33
33
  tensorflowjs>=2.0.0