ultralytics 8.3.147__tar.gz → 8.3.149__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. {ultralytics-8.3.147/ultralytics.egg-info → ultralytics-8.3.149}/PKG-INFO +1 -1
  2. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/dataset.py +1 -1
  4. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/loaders.py +1 -2
  5. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/engine/exporter.py +3 -3
  6. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/engine/predictor.py +17 -10
  7. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/tasks.py +6 -0
  8. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/metrics.py +19 -3
  9. {ultralytics-8.3.147 → ultralytics-8.3.149/ultralytics.egg-info}/PKG-INFO +1 -1
  10. {ultralytics-8.3.147 → ultralytics-8.3.149}/LICENSE +0 -0
  11. {ultralytics-8.3.147 → ultralytics-8.3.149}/README.md +0 -0
  12. {ultralytics-8.3.147 → ultralytics-8.3.149}/pyproject.toml +0 -0
  13. {ultralytics-8.3.147 → ultralytics-8.3.149}/setup.cfg +0 -0
  14. {ultralytics-8.3.147 → ultralytics-8.3.149}/tests/__init__.py +0 -0
  15. {ultralytics-8.3.147 → ultralytics-8.3.149}/tests/conftest.py +0 -0
  16. {ultralytics-8.3.147 → ultralytics-8.3.149}/tests/test_cli.py +0 -0
  17. {ultralytics-8.3.147 → ultralytics-8.3.149}/tests/test_cuda.py +0 -0
  18. {ultralytics-8.3.147 → ultralytics-8.3.149}/tests/test_engine.py +0 -0
  19. {ultralytics-8.3.147 → ultralytics-8.3.149}/tests/test_exports.py +0 -0
  20. {ultralytics-8.3.147 → ultralytics-8.3.149}/tests/test_integrations.py +0 -0
  21. {ultralytics-8.3.147 → ultralytics-8.3.149}/tests/test_python.py +0 -0
  22. {ultralytics-8.3.147 → ultralytics-8.3.149}/tests/test_solutions.py +0 -0
  23. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/assets/bus.jpg +0 -0
  24. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/assets/zidane.jpg +0 -0
  25. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/__init__.py +0 -0
  26. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  27. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  28. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  29. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  30. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  31. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  32. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  33. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  34. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  35. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  36. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  37. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  38. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  39. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  40. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/coco.yaml +0 -0
  41. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  42. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  43. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  44. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  45. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  46. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  47. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  48. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  49. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  50. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  51. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  52. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  53. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  54. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  55. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  56. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  57. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/signature.yaml +0 -0
  58. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  59. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/datasets/xView.yaml +0 -0
  60. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/default.yaml +0 -0
  61. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  62. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  63. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  64. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  65. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  66. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  67. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  68. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  69. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  70. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  71. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  72. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  73. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  74. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  75. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  76. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  77. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  78. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  79. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  80. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  81. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  82. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  83. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  84. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  85. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  86. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  87. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  88. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  89. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  90. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  91. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  92. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  93. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  94. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  95. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  96. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  97. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  98. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  99. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  100. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  101. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  102. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  103. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  104. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  105. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  106. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  107. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  108. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  109. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  110. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  111. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  112. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  113. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  114. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  115. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  116. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  117. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  118. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/__init__.py +0 -0
  119. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/annotator.py +0 -0
  120. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/augment.py +0 -0
  121. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/base.py +0 -0
  122. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/build.py +0 -0
  123. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/converter.py +0 -0
  124. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/scripts/download_weights.sh +0 -0
  125. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/scripts/get_coco.sh +0 -0
  126. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/scripts/get_coco128.sh +0 -0
  127. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  128. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/split.py +0 -0
  129. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/split_dota.py +0 -0
  130. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/data/utils.py +0 -0
  131. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/engine/__init__.py +0 -0
  132. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/engine/model.py +0 -0
  133. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/engine/results.py +0 -0
  134. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/engine/trainer.py +0 -0
  135. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/engine/tuner.py +0 -0
  136. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/engine/validator.py +0 -0
  137. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/hub/__init__.py +0 -0
  138. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/hub/auth.py +0 -0
  139. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/hub/google/__init__.py +0 -0
  140. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/hub/session.py +0 -0
  141. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/hub/utils.py +0 -0
  142. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/__init__.py +0 -0
  143. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/fastsam/__init__.py +0 -0
  144. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/fastsam/model.py +0 -0
  145. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/fastsam/predict.py +0 -0
  146. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/fastsam/utils.py +0 -0
  147. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/fastsam/val.py +0 -0
  148. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/nas/__init__.py +0 -0
  149. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/nas/model.py +0 -0
  150. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/nas/predict.py +0 -0
  151. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/nas/val.py +0 -0
  152. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/rtdetr/__init__.py +0 -0
  153. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/rtdetr/model.py +0 -0
  154. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/rtdetr/predict.py +0 -0
  155. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/rtdetr/train.py +0 -0
  156. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/rtdetr/val.py +0 -0
  157. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/__init__.py +0 -0
  158. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/amg.py +0 -0
  159. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/build.py +0 -0
  160. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/model.py +0 -0
  161. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/modules/__init__.py +0 -0
  162. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/modules/blocks.py +0 -0
  163. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/modules/decoders.py +0 -0
  164. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/modules/encoders.py +0 -0
  165. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  166. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/modules/sam.py +0 -0
  167. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  168. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/modules/transformer.py +0 -0
  169. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/modules/utils.py +0 -0
  170. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/sam/predict.py +0 -0
  171. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/utils/__init__.py +0 -0
  172. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/utils/loss.py +0 -0
  173. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/utils/ops.py +0 -0
  174. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/__init__.py +0 -0
  175. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/classify/__init__.py +0 -0
  176. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/classify/predict.py +0 -0
  177. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/classify/train.py +0 -0
  178. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/classify/val.py +0 -0
  179. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/detect/__init__.py +0 -0
  180. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/detect/predict.py +0 -0
  181. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/detect/train.py +0 -0
  182. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/detect/val.py +0 -0
  183. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/model.py +0 -0
  184. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/obb/__init__.py +0 -0
  185. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/obb/predict.py +0 -0
  186. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/obb/train.py +0 -0
  187. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/obb/val.py +0 -0
  188. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/pose/__init__.py +0 -0
  189. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/pose/predict.py +0 -0
  190. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/pose/train.py +0 -0
  191. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/pose/val.py +0 -0
  192. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/segment/__init__.py +0 -0
  193. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/segment/predict.py +0 -0
  194. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/segment/train.py +0 -0
  195. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/segment/val.py +0 -0
  196. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/world/__init__.py +0 -0
  197. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/world/train.py +0 -0
  198. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/world/train_world.py +0 -0
  199. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  200. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  201. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/yoloe/train.py +0 -0
  202. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  203. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/models/yolo/yoloe/val.py +0 -0
  204. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/__init__.py +0 -0
  205. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/autobackend.py +0 -0
  206. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/modules/__init__.py +0 -0
  207. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/modules/activation.py +0 -0
  208. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/modules/block.py +0 -0
  209. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/modules/conv.py +0 -0
  210. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/modules/head.py +0 -0
  211. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/modules/transformer.py +0 -0
  212. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/modules/utils.py +0 -0
  213. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/nn/text_model.py +0 -0
  214. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/__init__.py +0 -0
  215. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/ai_gym.py +0 -0
  216. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/analytics.py +0 -0
  217. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/config.py +0 -0
  218. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/distance_calculation.py +0 -0
  219. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/heatmap.py +0 -0
  220. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/instance_segmentation.py +0 -0
  221. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/object_blurrer.py +0 -0
  222. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/object_counter.py +0 -0
  223. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/object_cropper.py +0 -0
  224. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/parking_management.py +0 -0
  225. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/queue_management.py +0 -0
  226. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/region_counter.py +0 -0
  227. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/security_alarm.py +0 -0
  228. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/similarity_search.py +0 -0
  229. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/solutions.py +0 -0
  230. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/speed_estimation.py +0 -0
  231. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/streamlit_inference.py +0 -0
  232. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/templates/similarity-search.html +0 -0
  233. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/trackzone.py +0 -0
  234. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/solutions/vision_eye.py +0 -0
  235. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/trackers/__init__.py +0 -0
  236. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/trackers/basetrack.py +0 -0
  237. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/trackers/bot_sort.py +0 -0
  238. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/trackers/byte_tracker.py +0 -0
  239. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/trackers/track.py +0 -0
  240. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/trackers/utils/__init__.py +0 -0
  241. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/trackers/utils/gmc.py +0 -0
  242. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  243. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/trackers/utils/matching.py +0 -0
  244. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/__init__.py +0 -0
  245. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/autobatch.py +0 -0
  246. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/autodevice.py +0 -0
  247. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/benchmarks.py +0 -0
  248. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/__init__.py +0 -0
  249. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/base.py +0 -0
  250. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/clearml.py +0 -0
  251. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/comet.py +0 -0
  252. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/dvc.py +0 -0
  253. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/hub.py +0 -0
  254. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/mlflow.py +0 -0
  255. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/neptune.py +0 -0
  256. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/raytune.py +0 -0
  257. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  258. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/callbacks/wb.py +0 -0
  259. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/checks.py +0 -0
  260. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/dist.py +0 -0
  261. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/downloads.py +0 -0
  262. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/errors.py +0 -0
  263. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/export.py +0 -0
  264. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/files.py +0 -0
  265. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/instance.py +0 -0
  266. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/loss.py +0 -0
  267. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/ops.py +0 -0
  268. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/patches.py +0 -0
  269. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/plotting.py +0 -0
  270. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/tal.py +0 -0
  271. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/torch_utils.py +0 -0
  272. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/triton.py +0 -0
  273. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics/utils/tuner.py +0 -0
  274. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics.egg-info/SOURCES.txt +0 -0
  275. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics.egg-info/dependency_links.txt +0 -0
  276. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics.egg-info/entry_points.txt +0 -0
  277. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics.egg-info/requires.txt +0 -0
  278. {ultralytics-8.3.147 → ultralytics-8.3.149}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.147
3
+ Version: 8.3.149
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.147"
3
+ __version__ = "8.3.149"
4
4
 
5
5
  import os
6
6
 
@@ -577,7 +577,7 @@ class GroundingDataset(YOLODataset):
577
577
  cache, _ = load_dataset_cache_file(cache_path), True # attempt to load a *.cache file
578
578
  assert cache["version"] == DATASET_CACHE_VERSION # matches current version
579
579
  assert cache["hash"] == get_hash(self.json_file) # identical hash
580
- except (FileNotFoundError, AssertionError, AttributeError):
580
+ except (FileNotFoundError, AssertionError, AttributeError, ModuleNotFoundError):
581
581
  cache, _ = self.cache_labels(cache_path), False # run cache ops
582
582
  [cache.pop(k) for k in ("hash", "version")] # remove items
583
583
  labels = cache["labels"]
@@ -186,7 +186,6 @@ class LoadStreams:
186
186
  cap.release() # release video capture
187
187
  except Exception as e:
188
188
  LOGGER.warning(f"Could not release VideoCapture object: {e}")
189
- cv2.destroyAllWindows()
190
189
 
191
190
  def __iter__(self):
192
191
  """Iterate through YOLO image feed and re-open unresponsive streams."""
@@ -201,7 +200,7 @@ class LoadStreams:
201
200
  for i, x in enumerate(self.imgs):
202
201
  # Wait until a frame is available in each buffer
203
202
  while not x:
204
- if not self.threads[i].is_alive() or cv2.waitKey(1) == ord("q"): # q to quit
203
+ if not self.threads[i].is_alive():
205
204
  self.close()
206
205
  raise StopIteration
207
206
  time.sleep(1 / min(self.fps))
@@ -598,7 +598,7 @@ class Exporter:
598
598
  """Export YOLO model to ONNX format."""
599
599
  requirements = ["onnx>=1.12.0,<1.18.0"]
600
600
  if self.args.simplify:
601
- requirements += ["onnxslim>=0.1.53", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
601
+ requirements += ["onnxslim>=0.1.56", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
602
602
  check_requirements(requirements)
603
603
  import onnx # noqa
604
604
 
@@ -969,7 +969,7 @@ class Exporter:
969
969
  "ai-edge-litert>=1.2.0", # required by 'onnx2tf' package
970
970
  "onnx>=1.12.0,<1.18.0",
971
971
  "onnx2tf>=1.26.3",
972
- "onnxslim>=0.1.53",
972
+ "onnxslim>=0.1.56",
973
973
  "onnxruntime-gpu" if cuda else "onnxruntime",
974
974
  "protobuf>=5",
975
975
  ),
@@ -1023,7 +1023,7 @@ class Exporter:
1023
1023
  custom_input_op_name_np_data_path=np_data,
1024
1024
  enable_batchmatmul_unfold=True, # fix lower no. of detected objects on GPU delegate
1025
1025
  output_signaturedefs=True, # fix error with Attention block group convolution
1026
- disable_group_convolution=self.args.format == "tfjs", # fix TF.js error with group convolution
1026
+ disable_group_convolution=self.args.format in {"tfjs", "edgetpu"}, # fix error with group convolution
1027
1027
  optimization_for_gpu_delegate=True,
1028
1028
  )
1029
1029
  YAML.save(f / "metadata.yaml", self.metadata) # add metadata.yaml
@@ -339,15 +339,18 @@ class BasePredictor:
339
339
 
340
340
  # Visualize, save, write results
341
341
  n = len(im0s)
342
- for i in range(n):
343
- self.seen += 1
344
- self.results[i].speed = {
345
- "preprocess": profilers[0].dt * 1e3 / n,
346
- "inference": profilers[1].dt * 1e3 / n,
347
- "postprocess": profilers[2].dt * 1e3 / n,
348
- }
349
- if self.args.verbose or self.args.save or self.args.save_txt or self.args.show:
350
- s[i] += self.write_results(i, Path(paths[i]), im, s)
342
+ try:
343
+ for i in range(n):
344
+ self.seen += 1
345
+ self.results[i].speed = {
346
+ "preprocess": profilers[0].dt * 1e3 / n,
347
+ "inference": profilers[1].dt * 1e3 / n,
348
+ "postprocess": profilers[2].dt * 1e3 / n,
349
+ }
350
+ if self.args.verbose or self.args.save or self.args.save_txt or self.args.show:
351
+ s[i] += self.write_results(i, Path(paths[i]), im, s)
352
+ except StopIteration:
353
+ break
351
354
 
352
355
  # Print batch results
353
356
  if self.args.verbose:
@@ -361,6 +364,9 @@ class BasePredictor:
361
364
  if isinstance(v, cv2.VideoWriter):
362
365
  v.release()
363
366
 
367
+ if self.args.show:
368
+ cv2.destroyAllWindows() # close any open windows
369
+
364
370
  # Print final results
365
371
  if self.args.verbose and self.seen:
366
372
  t = tuple(x.t / self.seen * 1e3 for x in profilers) # speeds per image
@@ -492,7 +498,8 @@ class BasePredictor:
492
498
  cv2.namedWindow(p, cv2.WINDOW_NORMAL | cv2.WINDOW_KEEPRATIO) # allow window resize (Linux)
493
499
  cv2.resizeWindow(p, im.shape[1], im.shape[0]) # (width, height)
494
500
  cv2.imshow(p, im)
495
- cv2.waitKey(300 if self.dataset.mode == "image" else 1) # 1 millisecond
501
+ if cv2.waitKey(300 if self.dataset.mode == "image" else 1) & 0xFF == ord("q"): # 300ms if image; else 1ms
502
+ raise StopIteration
496
503
 
497
504
  def run_callbacks(self, event: str):
498
505
  """Run all registered callbacks for a specific event."""
@@ -1457,6 +1457,12 @@ def torch_safe_load(weight, safe_only=False):
1457
1457
  f"run a command with an official Ultralytics model, i.e. 'yolo predict model=yolo11n.pt'"
1458
1458
  )
1459
1459
  ) from e
1460
+ elif e.name == "numpy._core":
1461
+ raise ModuleNotFoundError(
1462
+ emojis(
1463
+ f"ERROR ❌️ {weight} requires numpy>=1.26.1, however numpy=={__import__('numpy').__version__} is installed."
1464
+ )
1465
+ ) from e
1460
1466
  LOGGER.warning(
1461
1467
  f"{weight} appears to require '{e.name}', which is not in Ultralytics requirements."
1462
1468
  f"\nAutoInstall will run now for '{e.name}' but this feature will be removed in the future."
@@ -505,8 +505,23 @@ class ConfusionMatrix(DataExportMixin):
505
505
  for i in range(self.matrix.shape[0]):
506
506
  LOGGER.info(" ".join(map(str, self.matrix[i])))
507
507
 
508
- def summary(self, **kwargs):
509
- """Returns summary of the confusion matrix for export in different formats CSV, XML, HTML."""
508
+ def summary(self, normalize: bool = False, decimals: int = 5) -> List[Dict[str, float]]:
509
+ """
510
+ Generate a summarized representation of the confusion matrix as a list of dictionaries, with optional
511
+ normalization. This is useful for exporting the matrix to various formats such as CSV, XML, HTML, JSON, or SQL.
512
+
513
+ Args:
514
+ normalize (bool): Whether to normalize the confusion matrix values.
515
+ decimals (int): Number of decimal places to round the output values to.
516
+
517
+ Returns:
518
+ List[Dict[str, float]]: A list of dictionaries, each representing one predicted class with corresponding values for all actual classes.
519
+
520
+ Examples:
521
+ >>> results = model.val(data="coco8.yaml", plots=True)
522
+ >>> cm_dict = results.confusion_matrix.summary(normalize=True, decimals=5)
523
+ >>> print(cm_dict)
524
+ """
510
525
  import re
511
526
 
512
527
  names = self.names if self.task == "classify" else self.names + ["background"]
@@ -520,8 +535,9 @@ class ConfusionMatrix(DataExportMixin):
520
535
  counter += 1
521
536
  seen.add(clean_name.lower())
522
537
  clean_names.append(clean_name)
538
+ array = (self.matrix / ((self.matrix.sum(0).reshape(1, -1) + 1e-9) if normalize else 1)).round(decimals)
523
539
  return [
524
- dict({"Predicted": clean_names[i]}, **{clean_names[j]: self.matrix[i, j] for j in range(len(clean_names))})
540
+ dict({"Predicted": clean_names[i]}, **{clean_names[j]: array[i, j] for j in range(len(clean_names))})
525
541
  for i in range(len(clean_names))
526
542
  ]
527
543
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.147
3
+ Version: 8.3.149
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>
File without changes
File without changes
File without changes