ultralytics 8.3.68__tar.gz → 8.3.70__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 (246) hide show
  1. {ultralytics-8.3.68/ultralytics.egg-info → ultralytics-8.3.70}/PKG-INFO +3 -4
  2. {ultralytics-8.3.68 → ultralytics-8.3.70}/pyproject.toml +2 -3
  3. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/__init__.py +1 -1
  4. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/engine/model.py +3 -1
  5. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/engine/results.py +69 -0
  6. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/utils/ops.py +1 -1
  7. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/autobackend.py +6 -0
  8. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/benchmarks.py +19 -4
  9. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/checks.py +2 -2
  10. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/torch_utils.py +1 -1
  11. {ultralytics-8.3.68 → ultralytics-8.3.70/ultralytics.egg-info}/PKG-INFO +3 -4
  12. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics.egg-info/requires.txt +2 -5
  13. {ultralytics-8.3.68 → ultralytics-8.3.70}/LICENSE +0 -0
  14. {ultralytics-8.3.68 → ultralytics-8.3.70}/README.md +0 -0
  15. {ultralytics-8.3.68 → ultralytics-8.3.70}/setup.cfg +0 -0
  16. {ultralytics-8.3.68 → ultralytics-8.3.70}/tests/__init__.py +0 -0
  17. {ultralytics-8.3.68 → ultralytics-8.3.70}/tests/conftest.py +0 -0
  18. {ultralytics-8.3.68 → ultralytics-8.3.70}/tests/test_cli.py +0 -0
  19. {ultralytics-8.3.68 → ultralytics-8.3.70}/tests/test_cuda.py +0 -0
  20. {ultralytics-8.3.68 → ultralytics-8.3.70}/tests/test_engine.py +0 -0
  21. {ultralytics-8.3.68 → ultralytics-8.3.70}/tests/test_exports.py +0 -0
  22. {ultralytics-8.3.68 → ultralytics-8.3.70}/tests/test_integrations.py +0 -0
  23. {ultralytics-8.3.68 → ultralytics-8.3.70}/tests/test_python.py +0 -0
  24. {ultralytics-8.3.68 → ultralytics-8.3.70}/tests/test_solutions.py +0 -0
  25. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/assets/bus.jpg +0 -0
  26. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/assets/zidane.jpg +0 -0
  27. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/__init__.py +0 -0
  28. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  29. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  30. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  31. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  32. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  33. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  34. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  35. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  36. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  37. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  38. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  39. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  40. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  41. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/coco.yaml +0 -0
  42. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  43. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  44. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  45. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  46. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  47. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  48. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  49. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  50. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  51. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  52. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  53. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  54. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  55. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/signature.yaml +0 -0
  56. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  57. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/datasets/xView.yaml +0 -0
  58. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/default.yaml +0 -0
  59. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  60. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  61. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  62. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  63. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  64. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  65. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  66. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  67. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  68. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  69. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  70. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  71. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  72. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  73. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  74. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  75. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  76. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  77. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  78. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  79. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  80. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  81. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  82. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  83. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  84. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  85. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  86. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  87. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  88. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  89. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  90. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  91. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  92. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  93. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  94. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  95. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  96. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  97. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  98. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  99. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  100. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  101. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  102. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  103. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  104. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  105. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/solutions/default.yaml +0 -0
  106. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  107. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  108. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/__init__.py +0 -0
  109. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/annotator.py +0 -0
  110. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/augment.py +0 -0
  111. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/base.py +0 -0
  112. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/build.py +0 -0
  113. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/converter.py +0 -0
  114. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/dataset.py +0 -0
  115. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/loaders.py +0 -0
  116. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/split_dota.py +0 -0
  117. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/data/utils.py +0 -0
  118. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/engine/__init__.py +0 -0
  119. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/engine/exporter.py +0 -0
  120. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/engine/predictor.py +0 -0
  121. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/engine/trainer.py +0 -0
  122. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/engine/tuner.py +0 -0
  123. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/engine/validator.py +0 -0
  124. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/hub/__init__.py +0 -0
  125. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/hub/auth.py +0 -0
  126. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/hub/google/__init__.py +0 -0
  127. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/hub/session.py +0 -0
  128. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/hub/utils.py +0 -0
  129. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/__init__.py +0 -0
  130. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/fastsam/__init__.py +0 -0
  131. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/fastsam/model.py +0 -0
  132. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/fastsam/predict.py +0 -0
  133. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/fastsam/utils.py +0 -0
  134. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/fastsam/val.py +0 -0
  135. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/nas/__init__.py +0 -0
  136. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/nas/model.py +0 -0
  137. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/nas/predict.py +0 -0
  138. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/nas/val.py +0 -0
  139. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/rtdetr/__init__.py +0 -0
  140. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/rtdetr/model.py +0 -0
  141. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/rtdetr/predict.py +0 -0
  142. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/rtdetr/train.py +0 -0
  143. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/rtdetr/val.py +0 -0
  144. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/__init__.py +0 -0
  145. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/amg.py +0 -0
  146. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/build.py +0 -0
  147. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/model.py +0 -0
  148. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/modules/__init__.py +0 -0
  149. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/modules/blocks.py +0 -0
  150. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/modules/decoders.py +0 -0
  151. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/modules/encoders.py +0 -0
  152. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  153. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/modules/sam.py +0 -0
  154. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  155. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/modules/transformer.py +0 -0
  156. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/modules/utils.py +0 -0
  157. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/sam/predict.py +0 -0
  158. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/utils/__init__.py +0 -0
  159. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/utils/loss.py +0 -0
  160. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/__init__.py +0 -0
  161. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/classify/__init__.py +0 -0
  162. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/classify/predict.py +0 -0
  163. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/classify/train.py +0 -0
  164. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/classify/val.py +0 -0
  165. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/detect/__init__.py +0 -0
  166. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/detect/predict.py +0 -0
  167. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/detect/train.py +0 -0
  168. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/detect/val.py +0 -0
  169. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/model.py +0 -0
  170. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/obb/__init__.py +0 -0
  171. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/obb/predict.py +0 -0
  172. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/obb/train.py +0 -0
  173. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/obb/val.py +0 -0
  174. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/pose/__init__.py +0 -0
  175. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/pose/predict.py +0 -0
  176. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/pose/train.py +0 -0
  177. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/pose/val.py +0 -0
  178. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/segment/__init__.py +0 -0
  179. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/segment/predict.py +0 -0
  180. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/segment/train.py +0 -0
  181. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/segment/val.py +0 -0
  182. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/world/__init__.py +0 -0
  183. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/world/train.py +0 -0
  184. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/models/yolo/world/train_world.py +0 -0
  185. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/__init__.py +0 -0
  186. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/modules/__init__.py +0 -0
  187. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/modules/activation.py +0 -0
  188. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/modules/block.py +0 -0
  189. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/modules/conv.py +0 -0
  190. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/modules/head.py +0 -0
  191. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/modules/transformer.py +0 -0
  192. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/modules/utils.py +0 -0
  193. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/nn/tasks.py +0 -0
  194. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/__init__.py +0 -0
  195. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/ai_gym.py +0 -0
  196. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/analytics.py +0 -0
  197. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/distance_calculation.py +0 -0
  198. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/heatmap.py +0 -0
  199. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/object_counter.py +0 -0
  200. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/parking_management.py +0 -0
  201. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/queue_management.py +0 -0
  202. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/region_counter.py +0 -0
  203. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/security_alarm.py +0 -0
  204. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/solutions.py +0 -0
  205. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/speed_estimation.py +0 -0
  206. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/streamlit_inference.py +0 -0
  207. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/solutions/trackzone.py +0 -0
  208. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/trackers/__init__.py +0 -0
  209. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/trackers/basetrack.py +0 -0
  210. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/trackers/bot_sort.py +0 -0
  211. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/trackers/byte_tracker.py +0 -0
  212. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/trackers/track.py +0 -0
  213. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/trackers/utils/__init__.py +0 -0
  214. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/trackers/utils/gmc.py +0 -0
  215. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  216. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/trackers/utils/matching.py +0 -0
  217. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/__init__.py +0 -0
  218. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/autobatch.py +0 -0
  219. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/__init__.py +0 -0
  220. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/base.py +0 -0
  221. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/clearml.py +0 -0
  222. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/comet.py +0 -0
  223. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/dvc.py +0 -0
  224. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/hub.py +0 -0
  225. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/mlflow.py +0 -0
  226. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/neptune.py +0 -0
  227. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/raytune.py +0 -0
  228. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  229. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/callbacks/wb.py +0 -0
  230. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/dist.py +0 -0
  231. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/downloads.py +0 -0
  232. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/errors.py +0 -0
  233. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/files.py +0 -0
  234. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/instance.py +0 -0
  235. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/loss.py +0 -0
  236. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/metrics.py +0 -0
  237. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/ops.py +0 -0
  238. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/patches.py +0 -0
  239. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/plotting.py +0 -0
  240. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/tal.py +0 -0
  241. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/triton.py +0 -0
  242. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics/utils/tuner.py +0 -0
  243. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics.egg-info/SOURCES.txt +0 -0
  244. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics.egg-info/dependency_links.txt +0 -0
  245. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics.egg-info/entry_points.txt +0 -0
  246. {ultralytics-8.3.68 → ultralytics-8.3.70}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.68
3
+ Version: 8.3.70
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>
@@ -32,8 +32,7 @@ Classifier: Operating System :: Microsoft :: Windows
32
32
  Requires-Python: >=3.8
33
33
  Description-Content-Type: text/markdown
34
34
  License-File: LICENSE
35
- Requires-Dist: numpy>=1.23.0
36
- Requires-Dist: numpy<2.0.0; sys_platform == "darwin"
35
+ Requires-Dist: numpy<=2.1.1,>=1.23.0
37
36
  Requires-Dist: matplotlib>=3.3.0
38
37
  Requires-Dist: opencv-python>=4.6.0
39
38
  Requires-Dist: pillow>=7.1.2
@@ -58,7 +57,7 @@ Requires-Dist: mkdocs>=1.6.0; extra == "dev"
58
57
  Requires-Dist: mkdocs-material>=9.5.9; extra == "dev"
59
58
  Requires-Dist: mkdocstrings[python]; extra == "dev"
60
59
  Requires-Dist: mkdocs-redirects; extra == "dev"
61
- Requires-Dist: mkdocs-ultralytics-plugin>=0.1.8; extra == "dev"
60
+ Requires-Dist: mkdocs-ultralytics-plugin>=0.1.16; extra == "dev"
62
61
  Requires-Dist: mkdocs-macros-plugin>=1.0.5; extra == "dev"
63
62
  Provides-Extra: export
64
63
  Requires-Dist: onnx>=1.12.0; extra == "export"
@@ -61,8 +61,7 @@ classifiers = [
61
61
 
62
62
  # Required dependencies ------------------------------------------------------------------------------------------------
63
63
  dependencies = [
64
- "numpy>=1.23.0",
65
- "numpy<2.0.0; sys_platform == 'darwin'", # macOS OpenVINO errors https://github.com/ultralytics/ultralytics/pull/17221
64
+ "numpy>=1.23.0,<=2.1.1", # OpenVINO and TFLite errors on '--slow' CI Tests https://github.com/ultralytics/ultralytics/pull/18943
66
65
  "matplotlib>=3.3.0",
67
66
  "opencv-python>=4.6.0",
68
67
  "pillow>=7.1.2",
@@ -91,7 +90,7 @@ dev = [
91
90
  "mkdocs-material>=9.5.9",
92
91
  "mkdocstrings[python]",
93
92
  "mkdocs-redirects", # 301 redirects
94
- "mkdocs-ultralytics-plugin>=0.1.8", # for meta descriptions and images, dates and authors
93
+ "mkdocs-ultralytics-plugin>=0.1.16", # for meta descriptions and images, dates and authors
95
94
  "mkdocs-macros-plugin>=1.0.5" # duplicating content (i.e. export tables) in multiple places
96
95
  ]
97
96
  export = [
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.68"
3
+ __version__ = "8.3.70"
4
4
 
5
5
  import os
6
6
 
@@ -661,6 +661,7 @@ class Model(nn.Module):
661
661
  - int8 (bool): Whether to use int8 precision mode.
662
662
  - device (str): Device to run the benchmark on (e.g., 'cpu', 'cuda').
663
663
  - verbose (bool): Whether to print detailed benchmark information.
664
+ - format (str): Export format name for specific benchmarking
664
665
 
665
666
  Returns:
666
667
  (Dict): A dictionary containing the results of the benchmarking process, including metrics for
@@ -686,7 +687,8 @@ class Model(nn.Module):
686
687
  half=args["half"],
687
688
  int8=args["int8"],
688
689
  device=args["device"],
689
- verbose=kwargs.get("verbose"),
690
+ verbose=kwargs.get("verbose", False),
691
+ format=kwargs.get("format", ""),
690
692
  )
691
693
 
692
694
  def export(
@@ -937,6 +937,75 @@ class Results(SimpleClass):
937
937
 
938
938
  return json.dumps(self.summary(normalize=normalize, decimals=decimals), indent=2)
939
939
 
940
+ def to_sql(self, table_name="results", normalize=False, decimals=5, db_path="results.db"):
941
+ """
942
+ Converts detection results to an SQL-compatible format.
943
+
944
+ This method serializes the detection results into a format compatible with SQL databases.
945
+ It includes information about detected objects such as bounding boxes, class names, confidence scores,
946
+ and optionally segmentation masks, keypoints or oriented bounding boxes.
947
+
948
+ Args:
949
+ table_name (str): Name of the SQL table where the data will be inserted. Defaults to "detection_results".
950
+ normalize (bool): Whether to normalize the bounding box coordinates by the image dimensions.
951
+ If True, coordinates will be returned as float values between 0 and 1. Defaults to False.
952
+ decimals (int): Number of decimal places to round the bounding boxes values to. Defaults to 5.
953
+ db_path (str): Path to the SQLite database file. Defaults to "results.db".
954
+
955
+ Examples:
956
+ >>> results = model("path/to/image.jpg")
957
+ >>> results[0].to_sql()
958
+ >>> print("SQL data written successfully.")
959
+ """
960
+ import json
961
+ import sqlite3
962
+
963
+ # Convert results to a list of dictionaries
964
+ data = self.summary(normalize=normalize, decimals=decimals)
965
+ if not data:
966
+ LOGGER.warning("⚠️ No results to save to SQL. Results dict is empty")
967
+ return
968
+
969
+ # Connect to the SQLite database
970
+ conn = sqlite3.connect(db_path)
971
+ cursor = conn.cursor()
972
+
973
+ # Create table if it doesn't exist
974
+ columns = (
975
+ "id INTEGER PRIMARY KEY AUTOINCREMENT, class_name TEXT, confidence REAL, "
976
+ "box TEXT, masks TEXT, kpts TEXT, obb TEXT"
977
+ )
978
+ cursor.execute(f"CREATE TABLE IF NOT EXISTS {table_name} ({columns})")
979
+
980
+ # Insert data into the table
981
+ for i, item in enumerate(data):
982
+ detect, obb = None, None # necessary to reinit these variables inside for loop to avoid duplication
983
+ class_name = item.get("name")
984
+ box = item.get("box", {})
985
+ # Serialize the box as JSON for 'detect' and 'obb' based on key presence
986
+ if all(key in box for key in ["x1", "y1", "x2", "y2"]) and not any(key in box for key in ["x3", "x4"]):
987
+ detect = json.dumps(box)
988
+ if all(key in box for key in ["x1", "y1", "x2", "y2", "x3", "x4"]):
989
+ obb = json.dumps(box)
990
+
991
+ cursor.execute(
992
+ f"INSERT INTO {table_name} (class_name, confidence, box, masks, kpts, obb) VALUES (?, ?, ?, ?, ?, ?)",
993
+ (
994
+ class_name,
995
+ item.get("confidence"),
996
+ detect,
997
+ json.dumps(item.get("segments", {}).get("x", [])),
998
+ json.dumps(item.get("keypoints", {}).get("x", [])),
999
+ obb,
1000
+ ),
1001
+ )
1002
+
1003
+ # Commit and close the connection
1004
+ conn.commit()
1005
+ conn.close()
1006
+
1007
+ LOGGER.info(f"✅ Detection results successfully written to SQL table '{table_name}' in database '{db_path}'.")
1008
+
940
1009
 
941
1010
  class Boxes(BaseTensor):
942
1011
  """
@@ -172,7 +172,7 @@ def get_cdn_group(
172
172
  bounding boxes, attention mask and meta information for denoising. If not in training mode or 'num_dn'
173
173
  is less than or equal to 0, the function returns None for all elements in the tuple.
174
174
  """
175
- if (not training) or num_dn <= 0:
175
+ if (not training) or num_dn <= 0 or batch is None:
176
176
  return None, None, None, None
177
177
  gt_groups = batch["gt_groups"]
178
178
  total_num = sum(gt_groups)
@@ -293,6 +293,12 @@ class AutoBackend(nn.Module):
293
293
  except UnicodeDecodeError:
294
294
  f.seek(0) # engine file may lack embedded Ultralytics metadata
295
295
  model = runtime.deserialize_cuda_engine(f.read()) # read engine
296
+ if "dla" in str(device.type):
297
+ dla_core = int(device.type.split(":")[1])
298
+ assert dla_core in {0, 1}, (
299
+ "Expected device type for inference in DLA is 'dla:0' or 'dla:1', but received '{device.type}'"
300
+ )
301
+ runtime.DLA_core = dla_core
296
302
 
297
303
  # Model context
298
304
  try:
@@ -42,7 +42,7 @@ from ultralytics import YOLO, YOLOWorld
42
42
  from ultralytics.cfg import TASK2DATA, TASK2METRIC
43
43
  from ultralytics.engine.exporter import export_formats
44
44
  from ultralytics.utils import ARM64, ASSETS, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR
45
- from ultralytics.utils.checks import IS_PYTHON_3_12, check_requirements, check_yolo, is_rockchip
45
+ from ultralytics.utils.checks import IS_PYTHON_3_12, check_imgsz, check_requirements, check_yolo, is_rockchip
46
46
  from ultralytics.utils.downloads import safe_download
47
47
  from ultralytics.utils.files import file_size
48
48
  from ultralytics.utils.torch_utils import get_cpu_info, select_device
@@ -57,6 +57,7 @@ def benchmark(
57
57
  device="cpu",
58
58
  verbose=False,
59
59
  eps=1e-3,
60
+ format="",
60
61
  ):
61
62
  """
62
63
  Benchmark a YOLO model across different formats for speed and accuracy.
@@ -70,6 +71,7 @@ def benchmark(
70
71
  device (str): Device to run the benchmark on, either 'cpu' or 'cuda'.
71
72
  verbose (bool | float): If True or a float, assert benchmarks pass with given metric.
72
73
  eps (float): Epsilon value for divide by zero prevention.
74
+ format (str): Export format for benchmarking. If not supplied all formats are benchmarked.
73
75
 
74
76
  Returns:
75
77
  (pandas.DataFrame): A pandas DataFrame with benchmark results for each format, including file size, metric,
@@ -80,6 +82,9 @@ def benchmark(
80
82
  >>> from ultralytics.utils.benchmarks import benchmark
81
83
  >>> benchmark(model="yolo11n.pt", imgsz=640)
82
84
  """
85
+ imgsz = check_imgsz(imgsz)
86
+ assert imgsz[0] == imgsz[1] if isinstance(imgsz, list) else True, "benchmark() only supports square imgsz."
87
+
83
88
  import pandas as pd # scope for faster 'import ultralytics'
84
89
 
85
90
  pd.options.display.max_columns = 10
@@ -91,9 +96,17 @@ def benchmark(
91
96
 
92
97
  y = []
93
98
  t0 = time.time()
99
+
100
+ format_arg = format.lower()
101
+ if format_arg:
102
+ formats = frozenset(export_formats()["Argument"])
103
+ assert format in formats, f"Expected format to be one of {formats}, but got '{format_arg}'."
94
104
  for i, (name, format, suffix, cpu, gpu, _) in enumerate(zip(*export_formats().values())):
95
105
  emoji, filename = "❌", None # export defaults
96
106
  try:
107
+ if format_arg and format_arg != format:
108
+ continue
109
+
97
110
  # Checks
98
111
  if i == 7: # TF GraphDef
99
112
  assert model.task != "obb", "TensorFlow GraphDef not supported for OBB task"
@@ -148,14 +161,14 @@ def benchmark(
148
161
  assert i != 5 or platform.system() == "Darwin", "inference only supported on macOS>=10.13" # CoreML
149
162
  if i in {13}:
150
163
  assert not is_end2end, "End-to-end torch.topk operation is not supported for NCNN prediction yet"
151
- exported_model.predict(ASSETS / "bus.jpg", imgsz=imgsz, device=device, half=half)
164
+ exported_model.predict(ASSETS / "bus.jpg", imgsz=imgsz, device=device, half=half, verbose=False)
152
165
 
153
166
  # Validate
154
167
  data = data or TASK2DATA[model.task] # task to dataset, i.e. coco8.yaml for task=detect
155
- key = TASK2METRIC[model.task] # task to metric, i.e. metrics/mAP50-95(B) for task=detect
156
168
  results = exported_model.val(
157
169
  data=data, batch=1, imgsz=imgsz, plots=False, device=device, half=half, int8=int8, verbose=False
158
170
  )
171
+ key = TASK2METRIC[model.task] # task to metric, i.e. metrics/mAP50-95(B) for task=detect
159
172
  metric, speed = results.results_dict[key], results.speed["inference"]
160
173
  fps = round(1000 / (speed + eps), 2) # frames per second
161
174
  y.append([name, "✅", round(file_size(filename), 1), round(metric, 4), round(speed, 2), fps])
@@ -170,7 +183,9 @@ def benchmark(
170
183
  df = pd.DataFrame(y, columns=["Format", "Status❔", "Size (MB)", key, "Inference time (ms/im)", "FPS"])
171
184
 
172
185
  name = model.model_name
173
- s = f"\nBenchmarks complete for {name} on {data} at imgsz={imgsz} ({time.time() - t0:.2f}s)\n{df}\n"
186
+ dt = time.time() - t0
187
+ legend = "Benchmarks legend: - ✅ Success - ❎ Export passed but validation failed - ❌️ Export failed"
188
+ s = f"\nBenchmarks complete for {name} on {data} at imgsz={imgsz} ({dt:.2f}s)\n{legend}\n{df.fillna('-')}\n"
174
189
  LOGGER.info(s)
175
190
  with open("benchmarks.log", "a", errors="ignore", encoding="utf-8") as f:
176
191
  f.write(s)
@@ -433,8 +433,8 @@ def check_torchvision():
433
433
  The compatibility table is a dictionary where the keys are PyTorch versions and the values are lists of compatible
434
434
  Torchvision versions.
435
435
  """
436
- # Compatibility table
437
436
  compatibility_table = {
437
+ "2.6": ["0.21"],
438
438
  "2.5": ["0.20"],
439
439
  "2.4": ["0.19"],
440
440
  "2.3": ["0.18"],
@@ -445,7 +445,7 @@ def check_torchvision():
445
445
  "1.12": ["0.13"],
446
446
  }
447
447
 
448
- # Extract only the major and minor versions
448
+ # Check major and minor versions
449
449
  v_torch = ".".join(torch.__version__.split("+")[0].split(".")[:2])
450
450
  if v_torch in compatibility_table:
451
451
  compatible_versions = compatibility_table[v_torch]
@@ -667,7 +667,7 @@ def profile(input, ops, n=10, device=None, max_num_obj=0):
667
667
  m = m.half() if hasattr(m, "half") and isinstance(x, torch.Tensor) and x.dtype is torch.float16 else m
668
668
  tf, tb, t = 0, 0, [0, 0, 0] # dt forward, backward
669
669
  try:
670
- flops = thop.profile(m, inputs=[x], verbose=False)[0] / 1e9 * 2 # GFLOPs
670
+ flops = thop.profile(deepcopy(m), inputs=[x], verbose=False)[0] / 1e9 * 2 # GFLOPs
671
671
  except Exception:
672
672
  flops = 0
673
673
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.68
3
+ Version: 8.3.70
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>
@@ -32,8 +32,7 @@ Classifier: Operating System :: Microsoft :: Windows
32
32
  Requires-Python: >=3.8
33
33
  Description-Content-Type: text/markdown
34
34
  License-File: LICENSE
35
- Requires-Dist: numpy>=1.23.0
36
- Requires-Dist: numpy<2.0.0; sys_platform == "darwin"
35
+ Requires-Dist: numpy<=2.1.1,>=1.23.0
37
36
  Requires-Dist: matplotlib>=3.3.0
38
37
  Requires-Dist: opencv-python>=4.6.0
39
38
  Requires-Dist: pillow>=7.1.2
@@ -58,7 +57,7 @@ Requires-Dist: mkdocs>=1.6.0; extra == "dev"
58
57
  Requires-Dist: mkdocs-material>=9.5.9; extra == "dev"
59
58
  Requires-Dist: mkdocstrings[python]; extra == "dev"
60
59
  Requires-Dist: mkdocs-redirects; extra == "dev"
61
- Requires-Dist: mkdocs-ultralytics-plugin>=0.1.8; extra == "dev"
60
+ Requires-Dist: mkdocs-ultralytics-plugin>=0.1.16; extra == "dev"
62
61
  Requires-Dist: mkdocs-macros-plugin>=1.0.5; extra == "dev"
63
62
  Provides-Extra: export
64
63
  Requires-Dist: onnx>=1.12.0; extra == "export"
@@ -1,4 +1,4 @@
1
- numpy>=1.23.0
1
+ numpy<=2.1.1,>=1.23.0
2
2
  matplotlib>=3.3.0
3
3
  opencv-python>=4.6.0
4
4
  pillow>=7.1.2
@@ -14,9 +14,6 @@ pandas>=1.1.4
14
14
  seaborn>=0.11.0
15
15
  ultralytics-thop>=2.0.0
16
16
 
17
- [:sys_platform == "darwin"]
18
- numpy<2.0.0
19
-
20
17
  [:sys_platform == "win32"]
21
18
  torch!=2.4.0,>=1.8.0
22
19
 
@@ -29,7 +26,7 @@ mkdocs>=1.6.0
29
26
  mkdocs-material>=9.5.9
30
27
  mkdocstrings[python]
31
28
  mkdocs-redirects
32
- mkdocs-ultralytics-plugin>=0.1.8
29
+ mkdocs-ultralytics-plugin>=0.1.16
33
30
  mkdocs-macros-plugin>=1.0.5
34
31
 
35
32
  [export]
File without changes
File without changes
File without changes