ultralytics 8.3.202__tar.gz → 8.3.204__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 (288) hide show
  1. {ultralytics-8.3.202 → ultralytics-8.3.204}/PKG-INFO +21 -21
  2. {ultralytics-8.3.202 → ultralytics-8.3.204}/README.md +20 -20
  3. {ultralytics-8.3.202 → ultralytics-8.3.204}/tests/test_cli.py +7 -9
  4. {ultralytics-8.3.202 → ultralytics-8.3.204}/tests/test_cuda.py +4 -1
  5. {ultralytics-8.3.202 → ultralytics-8.3.204}/tests/test_exports.py +7 -7
  6. {ultralytics-8.3.202 → ultralytics-8.3.204}/tests/test_python.py +18 -10
  7. {ultralytics-8.3.202 → ultralytics-8.3.204}/tests/test_solutions.py +13 -11
  8. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/__init__.py +1 -1
  9. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/build.py +4 -1
  10. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/utils.py +5 -0
  11. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/engine/exporter.py +45 -6
  12. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/engine/trainer.py +14 -12
  13. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/engine/tuner.py +1 -1
  14. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/engine/validator.py +1 -1
  15. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/fastsam/predict.py +2 -1
  16. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/rtdetr/model.py +2 -0
  17. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/modules/sam.py +1 -1
  18. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/predict.py +9 -5
  19. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/classify/train.py +2 -2
  20. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/classify/val.py +2 -2
  21. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/detect/train.py +1 -1
  22. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/detect/val.py +1 -1
  23. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/model.py +1 -0
  24. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/world/train.py +4 -2
  25. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/train.py +1 -13
  26. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/autobackend.py +1 -1
  27. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/modules/head.py +3 -3
  28. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/modules/transformer.py +3 -1
  29. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/similarity_search.py +3 -2
  30. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/streamlit_inference.py +2 -3
  31. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/checks.py +27 -0
  32. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/metrics.py +3 -3
  33. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/tal.py +3 -5
  34. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/torch_utils.py +5 -34
  35. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics.egg-info/PKG-INFO +21 -21
  36. {ultralytics-8.3.202 → ultralytics-8.3.204}/LICENSE +0 -0
  37. {ultralytics-8.3.202 → ultralytics-8.3.204}/pyproject.toml +0 -0
  38. {ultralytics-8.3.202 → ultralytics-8.3.204}/setup.cfg +0 -0
  39. {ultralytics-8.3.202 → ultralytics-8.3.204}/tests/__init__.py +0 -0
  40. {ultralytics-8.3.202 → ultralytics-8.3.204}/tests/conftest.py +0 -0
  41. {ultralytics-8.3.202 → ultralytics-8.3.204}/tests/test_engine.py +0 -0
  42. {ultralytics-8.3.202 → ultralytics-8.3.204}/tests/test_integrations.py +0 -0
  43. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/assets/bus.jpg +0 -0
  44. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/assets/zidane.jpg +0 -0
  45. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/__init__.py +0 -0
  46. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  47. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  48. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  49. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  50. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  51. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  52. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  53. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  54. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  55. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  56. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  57. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  58. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  59. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  60. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco.yaml +0 -0
  61. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  62. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  63. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  64. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  65. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  66. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  67. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  68. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
  69. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  70. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  71. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  72. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  73. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  74. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  75. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  76. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  77. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  78. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/signature.yaml +0 -0
  79. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  80. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/datasets/xView.yaml +0 -0
  81. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/default.yaml +0 -0
  82. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  83. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  84. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  85. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  86. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  87. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  88. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  89. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  90. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  91. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  92. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  93. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  94. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  95. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  96. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  97. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  98. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  99. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  100. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  101. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  102. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  103. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  104. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  105. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  106. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  107. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  108. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  109. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  110. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  111. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  112. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  113. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  114. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  115. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  116. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  117. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  118. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  119. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  120. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  121. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  122. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  123. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  124. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  125. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  126. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  127. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  128. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  129. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  130. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  131. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  132. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  133. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  134. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  135. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  136. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  137. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  138. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  139. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/__init__.py +0 -0
  140. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/annotator.py +0 -0
  141. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/augment.py +0 -0
  142. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/base.py +0 -0
  143. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/converter.py +0 -0
  144. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/dataset.py +0 -0
  145. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/loaders.py +0 -0
  146. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/scripts/download_weights.sh +0 -0
  147. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/scripts/get_coco.sh +0 -0
  148. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/scripts/get_coco128.sh +0 -0
  149. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  150. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/split.py +0 -0
  151. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/data/split_dota.py +0 -0
  152. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/engine/__init__.py +0 -0
  153. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/engine/model.py +0 -0
  154. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/engine/predictor.py +0 -0
  155. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/engine/results.py +0 -0
  156. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/hub/__init__.py +0 -0
  157. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/hub/auth.py +0 -0
  158. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/hub/google/__init__.py +0 -0
  159. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/hub/session.py +0 -0
  160. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/hub/utils.py +0 -0
  161. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/__init__.py +0 -0
  162. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/fastsam/__init__.py +0 -0
  163. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/fastsam/model.py +0 -0
  164. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/fastsam/utils.py +0 -0
  165. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/fastsam/val.py +0 -0
  166. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/nas/__init__.py +0 -0
  167. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/nas/model.py +0 -0
  168. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/nas/predict.py +0 -0
  169. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/nas/val.py +0 -0
  170. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/rtdetr/__init__.py +0 -0
  171. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/rtdetr/predict.py +0 -0
  172. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/rtdetr/train.py +0 -0
  173. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/rtdetr/val.py +0 -0
  174. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/__init__.py +0 -0
  175. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/amg.py +0 -0
  176. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/build.py +0 -0
  177. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/model.py +0 -0
  178. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/modules/__init__.py +0 -0
  179. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/modules/blocks.py +0 -0
  180. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/modules/decoders.py +0 -0
  181. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/modules/encoders.py +0 -0
  182. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  183. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  184. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/modules/transformer.py +0 -0
  185. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/sam/modules/utils.py +0 -0
  186. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/utils/__init__.py +0 -0
  187. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/utils/loss.py +0 -0
  188. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/utils/ops.py +0 -0
  189. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/__init__.py +0 -0
  190. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/classify/__init__.py +0 -0
  191. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/classify/predict.py +0 -0
  192. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/detect/__init__.py +0 -0
  193. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/detect/predict.py +0 -0
  194. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/obb/__init__.py +0 -0
  195. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/obb/predict.py +0 -0
  196. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/obb/train.py +0 -0
  197. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/obb/val.py +0 -0
  198. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/pose/__init__.py +0 -0
  199. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/pose/predict.py +0 -0
  200. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/pose/train.py +0 -0
  201. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/pose/val.py +0 -0
  202. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/segment/__init__.py +0 -0
  203. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/segment/predict.py +0 -0
  204. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/segment/train.py +0 -0
  205. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/segment/val.py +0 -0
  206. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/world/__init__.py +0 -0
  207. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/world/train_world.py +0 -0
  208. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  209. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  210. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  211. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/models/yolo/yoloe/val.py +0 -0
  212. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/__init__.py +0 -0
  213. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/modules/__init__.py +0 -0
  214. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/modules/activation.py +0 -0
  215. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/modules/block.py +0 -0
  216. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/modules/conv.py +0 -0
  217. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/modules/utils.py +0 -0
  218. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/tasks.py +0 -0
  219. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/nn/text_model.py +0 -0
  220. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/py.typed +0 -0
  221. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/__init__.py +0 -0
  222. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/ai_gym.py +0 -0
  223. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/analytics.py +0 -0
  224. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/config.py +0 -0
  225. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/distance_calculation.py +0 -0
  226. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/heatmap.py +0 -0
  227. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/instance_segmentation.py +0 -0
  228. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/object_blurrer.py +0 -0
  229. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/object_counter.py +0 -0
  230. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/object_cropper.py +0 -0
  231. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/parking_management.py +0 -0
  232. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/queue_management.py +0 -0
  233. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/region_counter.py +0 -0
  234. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/security_alarm.py +0 -0
  235. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/solutions.py +0 -0
  236. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/speed_estimation.py +0 -0
  237. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/templates/similarity-search.html +0 -0
  238. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/trackzone.py +0 -0
  239. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/solutions/vision_eye.py +0 -0
  240. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/trackers/__init__.py +0 -0
  241. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/trackers/basetrack.py +0 -0
  242. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/trackers/bot_sort.py +0 -0
  243. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/trackers/byte_tracker.py +0 -0
  244. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/trackers/track.py +0 -0
  245. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/trackers/utils/__init__.py +0 -0
  246. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/trackers/utils/gmc.py +0 -0
  247. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  248. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/trackers/utils/matching.py +0 -0
  249. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/__init__.py +0 -0
  250. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/autobatch.py +0 -0
  251. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/autodevice.py +0 -0
  252. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/benchmarks.py +0 -0
  253. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/__init__.py +0 -0
  254. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/base.py +0 -0
  255. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/clearml.py +0 -0
  256. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/comet.py +0 -0
  257. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/dvc.py +0 -0
  258. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/hub.py +0 -0
  259. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/mlflow.py +0 -0
  260. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/neptune.py +0 -0
  261. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/platform.py +0 -0
  262. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/raytune.py +0 -0
  263. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  264. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/callbacks/wb.py +0 -0
  265. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/cpu.py +0 -0
  266. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/dist.py +0 -0
  267. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/downloads.py +0 -0
  268. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/errors.py +0 -0
  269. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/events.py +0 -0
  270. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/export/__init__.py +0 -0
  271. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/export/imx.py +0 -0
  272. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/files.py +0 -0
  273. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/git.py +0 -0
  274. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/instance.py +0 -0
  275. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/logger.py +0 -0
  276. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/loss.py +0 -0
  277. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/nms.py +0 -0
  278. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/ops.py +0 -0
  279. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/patches.py +0 -0
  280. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/plotting.py +0 -0
  281. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/tqdm.py +0 -0
  282. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/triton.py +0 -0
  283. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics/utils/tuner.py +0 -0
  284. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics.egg-info/SOURCES.txt +0 -0
  285. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics.egg-info/dependency_links.txt +0 -0
  286. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics.egg-info/entry_points.txt +0 -0
  287. {ultralytics-8.3.202 → ultralytics-8.3.204}/ultralytics.egg-info/requires.txt +0 -0
  288. {ultralytics-8.3.202 → ultralytics-8.3.204}/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.202
3
+ Version: 8.3.204
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>
@@ -239,11 +239,11 @@ Refer to the [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) fo
239
239
 
240
240
  | Model | size<br><sup>(pixels) | mAP<sup>box<br>50-95 | mAP<sup>mask<br>50-95 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
241
241
  | -------------------------------------------------------------------------------------------- | --------------------- | -------------------- | --------------------- | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
242
- | [YOLO11n-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-seg.pt) | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 10.4 |
243
- | [YOLO11s-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-seg.pt) | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 35.5 |
244
- | [YOLO11m-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-seg.pt) | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 123.3 |
245
- | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
246
- | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
242
+ | [YOLO11n-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-seg.pt) | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 9.7 |
243
+ | [YOLO11s-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-seg.pt) | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 33.0 |
244
+ | [YOLO11m-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-seg.pt) | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 113.2 |
245
+ | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 132.2 |
246
+ | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 296.4 |
247
247
 
248
248
  - **mAP<sup>val</sup>** values are for single-model single-scale on the [COCO val2017](https://cocodataset.org/) dataset. See [YOLO Performance Metrics](https://docs.ultralytics.com/guides/yolo-performance-metrics/) for details. <br>Reproduce with `yolo val segment data=coco.yaml device=0`
249
249
  - **Speed** metrics are averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val segment data=coco.yaml batch=1 device=0|cpu`
@@ -256,11 +256,11 @@ Consult the [Classification Docs](https://docs.ultralytics.com/tasks/classify/)
256
256
 
257
257
  | Model | size<br><sup>(pixels) | acc<br><sup>top1 | acc<br><sup>top5 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) at 224 |
258
258
  | -------------------------------------------------------------------------------------------- | --------------------- | ---------------- | ---------------- | ------------------------------ | ----------------------------------- | ------------------ | ------------------------ |
259
- | [YOLO11n-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-cls.pt) | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 1.6 | 0.5 |
260
- | [YOLO11s-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-cls.pt) | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 5.5 | 1.6 |
261
- | [YOLO11m-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-cls.pt) | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 10.4 | 5.0 |
262
- | [YOLO11l-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-cls.pt) | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 12.9 | 6.2 |
263
- | [YOLO11x-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-cls.pt) | 224 | 79.5 | 94.9 | 41.4 ± 0.9 | 3.8 ± 0.0 | 28.4 | 13.7 |
259
+ | [YOLO11n-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-cls.pt) | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 2.8 | 0.5 |
260
+ | [YOLO11s-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-cls.pt) | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 6.7 | 1.6 |
261
+ | [YOLO11m-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-cls.pt) | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 11.6 | 4.9 |
262
+ | [YOLO11l-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-cls.pt) | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 14.1 | 6.2 |
263
+ | [YOLO11x-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-cls.pt) | 224 | 79.5 | 94.9 | 41.4 ± 0.9 | 3.8 ± 0.0 | 29.6 | 13.6 |
264
264
 
265
265
  - **acc** values represent model accuracy on the [ImageNet](https://www.image-net.org/) dataset validation set. <br>Reproduce with `yolo val classify data=path/to/ImageNet device=0`
266
266
  - **Speed** metrics are averaged over ImageNet val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val classify data=path/to/ImageNet batch=1 device=0|cpu`
@@ -273,11 +273,11 @@ See the [Pose Estimation Docs](https://docs.ultralytics.com/tasks/pose/) for usa
273
273
 
274
274
  | Model | size<br><sup>(pixels) | mAP<sup>pose<br>50-95 | mAP<sup>pose<br>50 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
275
275
  | ---------------------------------------------------------------------------------------------- | --------------------- | --------------------- | ------------------ | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
276
- | [YOLO11n-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-pose.pt) | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.6 |
277
- | [YOLO11s-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-pose.pt) | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.2 |
278
- | [YOLO11m-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-pose.pt) | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.7 |
279
- | [YOLO11l-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-pose.pt) | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.2 | 90.7 |
280
- | [YOLO11x-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-pose.pt) | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 203.3 |
276
+ | [YOLO11n-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-pose.pt) | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.4 |
277
+ | [YOLO11s-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-pose.pt) | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.1 |
278
+ | [YOLO11m-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-pose.pt) | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.4 |
279
+ | [YOLO11l-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-pose.pt) | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.1 | 90.3 |
280
+ | [YOLO11x-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-pose.pt) | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 202.8 |
281
281
 
282
282
  - **mAP<sup>val</sup>** values are for single-model single-scale on the [COCO Keypoints val2017](https://docs.ultralytics.com/datasets/pose/coco/) dataset. See [YOLO Performance Metrics](https://docs.ultralytics.com/guides/yolo-performance-metrics/) for details. <br>Reproduce with `yolo val pose data=coco-pose.yaml device=0`
283
283
  - **Speed** metrics are averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val pose data=coco-pose.yaml batch=1 device=0|cpu`
@@ -290,11 +290,11 @@ Check the [OBB Docs](https://docs.ultralytics.com/tasks/obb/) for usage examples
290
290
 
291
291
  | Model | size<br><sup>(pixels) | mAP<sup>test<br>50 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
292
292
  | -------------------------------------------------------------------------------------------- | --------------------- | ------------------ | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
293
- | [YOLO11n-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-obb.pt) | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 17.2 |
294
- | [YOLO11s-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-obb.pt) | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.5 |
295
- | [YOLO11m-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-obb.pt) | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 183.5 |
296
- | [YOLO11l-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-obb.pt) | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.2 | 232.0 |
297
- | [YOLO11x-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-obb.pt) | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 520.2 |
293
+ | [YOLO11n-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-obb.pt) | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 16.8 |
294
+ | [YOLO11s-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-obb.pt) | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.1 |
295
+ | [YOLO11m-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-obb.pt) | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 182.8 |
296
+ | [YOLO11l-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-obb.pt) | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.1 | 231.2 |
297
+ | [YOLO11x-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-obb.pt) | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 519.1 |
298
298
 
299
299
  - **mAP<sup>test</sup>** values are for single-model multiscale performance on the [DOTAv1 test set](https://captain-whu.github.io/DOTA/dataset.html). <br>Reproduce by `yolo val obb data=DOTAv1.yaml device=0 split=test` and submit merged results to the [DOTA evaluation server](https://captain-whu.github.io/DOTA/evaluation.html).
300
300
  - **Speed** metrics are averaged over [DOTAv1 val images](https://docs.ultralytics.com/datasets/obb/dota-v2/#dota-v10) using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce by `yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu`
@@ -149,11 +149,11 @@ Refer to the [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) fo
149
149
 
150
150
  | Model | size<br><sup>(pixels) | mAP<sup>box<br>50-95 | mAP<sup>mask<br>50-95 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
151
151
  | -------------------------------------------------------------------------------------------- | --------------------- | -------------------- | --------------------- | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
152
- | [YOLO11n-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-seg.pt) | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 10.4 |
153
- | [YOLO11s-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-seg.pt) | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 35.5 |
154
- | [YOLO11m-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-seg.pt) | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 123.3 |
155
- | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
156
- | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
152
+ | [YOLO11n-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-seg.pt) | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 9.7 |
153
+ | [YOLO11s-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-seg.pt) | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 33.0 |
154
+ | [YOLO11m-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-seg.pt) | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 113.2 |
155
+ | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 132.2 |
156
+ | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 296.4 |
157
157
 
158
158
  - **mAP<sup>val</sup>** values are for single-model single-scale on the [COCO val2017](https://cocodataset.org/) dataset. See [YOLO Performance Metrics](https://docs.ultralytics.com/guides/yolo-performance-metrics/) for details. <br>Reproduce with `yolo val segment data=coco.yaml device=0`
159
159
  - **Speed** metrics are averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val segment data=coco.yaml batch=1 device=0|cpu`
@@ -166,11 +166,11 @@ Consult the [Classification Docs](https://docs.ultralytics.com/tasks/classify/)
166
166
 
167
167
  | Model | size<br><sup>(pixels) | acc<br><sup>top1 | acc<br><sup>top5 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) at 224 |
168
168
  | -------------------------------------------------------------------------------------------- | --------------------- | ---------------- | ---------------- | ------------------------------ | ----------------------------------- | ------------------ | ------------------------ |
169
- | [YOLO11n-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-cls.pt) | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 1.6 | 0.5 |
170
- | [YOLO11s-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-cls.pt) | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 5.5 | 1.6 |
171
- | [YOLO11m-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-cls.pt) | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 10.4 | 5.0 |
172
- | [YOLO11l-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-cls.pt) | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 12.9 | 6.2 |
173
- | [YOLO11x-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-cls.pt) | 224 | 79.5 | 94.9 | 41.4 ± 0.9 | 3.8 ± 0.0 | 28.4 | 13.7 |
169
+ | [YOLO11n-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-cls.pt) | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 | 2.8 | 0.5 |
170
+ | [YOLO11s-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-cls.pt) | 224 | 75.4 | 92.7 | 7.9 ± 0.2 | 1.3 ± 0.0 | 6.7 | 1.6 |
171
+ | [YOLO11m-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-cls.pt) | 224 | 77.3 | 93.9 | 17.2 ± 0.4 | 2.0 ± 0.0 | 11.6 | 4.9 |
172
+ | [YOLO11l-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-cls.pt) | 224 | 78.3 | 94.3 | 23.2 ± 0.3 | 2.8 ± 0.0 | 14.1 | 6.2 |
173
+ | [YOLO11x-cls](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-cls.pt) | 224 | 79.5 | 94.9 | 41.4 ± 0.9 | 3.8 ± 0.0 | 29.6 | 13.6 |
174
174
 
175
175
  - **acc** values represent model accuracy on the [ImageNet](https://www.image-net.org/) dataset validation set. <br>Reproduce with `yolo val classify data=path/to/ImageNet device=0`
176
176
  - **Speed** metrics are averaged over ImageNet val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val classify data=path/to/ImageNet batch=1 device=0|cpu`
@@ -183,11 +183,11 @@ See the [Pose Estimation Docs](https://docs.ultralytics.com/tasks/pose/) for usa
183
183
 
184
184
  | Model | size<br><sup>(pixels) | mAP<sup>pose<br>50-95 | mAP<sup>pose<br>50 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
185
185
  | ---------------------------------------------------------------------------------------------- | --------------------- | --------------------- | ------------------ | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
186
- | [YOLO11n-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-pose.pt) | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.6 |
187
- | [YOLO11s-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-pose.pt) | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.2 |
188
- | [YOLO11m-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-pose.pt) | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.7 |
189
- | [YOLO11l-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-pose.pt) | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.2 | 90.7 |
190
- | [YOLO11x-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-pose.pt) | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 203.3 |
186
+ | [YOLO11n-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-pose.pt) | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.4 |
187
+ | [YOLO11s-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-pose.pt) | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.1 |
188
+ | [YOLO11m-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-pose.pt) | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.4 |
189
+ | [YOLO11l-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-pose.pt) | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.1 | 90.3 |
190
+ | [YOLO11x-pose](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-pose.pt) | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 202.8 |
191
191
 
192
192
  - **mAP<sup>val</sup>** values are for single-model single-scale on the [COCO Keypoints val2017](https://docs.ultralytics.com/datasets/pose/coco/) dataset. See [YOLO Performance Metrics](https://docs.ultralytics.com/guides/yolo-performance-metrics/) for details. <br>Reproduce with `yolo val pose data=coco-pose.yaml device=0`
193
193
  - **Speed** metrics are averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce with `yolo val pose data=coco-pose.yaml batch=1 device=0|cpu`
@@ -200,11 +200,11 @@ Check the [OBB Docs](https://docs.ultralytics.com/tasks/obb/) for usage examples
200
200
 
201
201
  | Model | size<br><sup>(pixels) | mAP<sup>test<br>50 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>T4 TensorRT10<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
202
202
  | -------------------------------------------------------------------------------------------- | --------------------- | ------------------ | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
203
- | [YOLO11n-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-obb.pt) | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 17.2 |
204
- | [YOLO11s-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-obb.pt) | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.5 |
205
- | [YOLO11m-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-obb.pt) | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 183.5 |
206
- | [YOLO11l-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-obb.pt) | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.2 | 232.0 |
207
- | [YOLO11x-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-obb.pt) | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 520.2 |
203
+ | [YOLO11n-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n-obb.pt) | 1024 | 78.4 | 117.6 ± 0.8 | 4.4 ± 0.0 | 2.7 | 16.8 |
204
+ | [YOLO11s-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s-obb.pt) | 1024 | 79.5 | 219.4 ± 4.0 | 5.1 ± 0.0 | 9.7 | 57.1 |
205
+ | [YOLO11m-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m-obb.pt) | 1024 | 80.9 | 562.8 ± 2.9 | 10.1 ± 0.4 | 20.9 | 182.8 |
206
+ | [YOLO11l-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-obb.pt) | 1024 | 81.0 | 712.5 ± 5.0 | 13.5 ± 0.6 | 26.1 | 231.2 |
207
+ | [YOLO11x-obb](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-obb.pt) | 1024 | 81.3 | 1408.6 ± 7.7 | 28.6 ± 1.0 | 58.8 | 519.1 |
208
208
 
209
209
  - **mAP<sup>test</sup>** values are for single-model multiscale performance on the [DOTAv1 test set](https://captain-whu.github.io/DOTA/dataset.html). <br>Reproduce by `yolo val obb data=DOTAv1.yaml device=0 split=test` and submit merged results to the [DOTA evaluation server](https://captain-whu.github.io/DOTA/evaluation.html).
210
210
  - **Speed** metrics are averaged over [DOTAv1 val images](https://docs.ultralytics.com/datasets/obb/dota-v2/#dota-v10) using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. CPU speeds measured with [ONNX](https://onnx.ai/) export. GPU speeds measured with [TensorRT](https://developer.nvidia.com/tensorrt) export. <br>Reproduce by `yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu`
@@ -1,13 +1,14 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
3
  import subprocess
4
+ from pathlib import Path
4
5
 
5
6
  import pytest
6
7
  from PIL import Image
7
8
 
8
9
  from tests import CUDA_DEVICE_COUNT, CUDA_IS_AVAILABLE, MODELS, TASK_MODEL_DATA
9
10
  from ultralytics.utils import ARM64, ASSETS, LINUX, WEIGHTS_DIR, checks
10
- from ultralytics.utils.torch_utils import TORCH_1_9
11
+ from ultralytics.utils.torch_utils import TORCH_1_11
11
12
 
12
13
 
13
14
  def run(cmd: str) -> None:
@@ -33,7 +34,7 @@ def test_train(task: str, model: str, data: str) -> None:
33
34
  @pytest.mark.parametrize("task,model,data", TASK_MODEL_DATA)
34
35
  def test_val(task: str, model: str, data: str) -> None:
35
36
  """Test YOLO validation process for specified task, model, and data using a shell command."""
36
- run(f"yolo val {task} model={model} data={data} imgsz=32 save_txt save_json")
37
+ run(f"yolo val {task} model={model} data={data} imgsz=32 save_txt save_json visualize")
37
38
 
38
39
 
39
40
  @pytest.mark.parametrize("task,model,data", TASK_MODEL_DATA)
@@ -48,15 +49,12 @@ def test_export(model: str) -> None:
48
49
  run(f"yolo export model={model} format=torchscript imgsz=32")
49
50
 
50
51
 
51
- def test_rtdetr(task: str = "detect", model: str = "yolov8n-rtdetr.yaml", data: str = "coco8.yaml") -> None:
52
+ @pytest.mark.skipif(not TORCH_1_11, reason="RTDETR requires torch>=1.11")
53
+ def test_rtdetr(task: str = "detect", model: Path = WEIGHTS_DIR / "rtdetr-l.pt", data: str = "coco8.yaml") -> None:
52
54
  """Test the RTDETR functionality within Ultralytics for detection tasks using specified model and data."""
53
- # Warning: must use imgsz=640 (note also add comma, spaces, fraction=0.25 args to test single-image training)
54
- run(f"yolo train {task} model={model} data={data} --imgsz= 160 epochs =1, cache = disk fraction=0.25") # spaces
55
+ # Add comma, spaces, fraction=0.25 args to test single-image training
55
56
  run(f"yolo predict {task} model={model} source={ASSETS / 'bus.jpg'} imgsz=160 save save_crop save_txt")
56
- if TORCH_1_9:
57
- weights = WEIGHTS_DIR / "rtdetr-l.pt"
58
- run(f"yolo predict {task} model={weights} source={ASSETS / 'bus.jpg'} imgsz=160 save save_crop save_txt")
59
- run(f"yolo train {task} model={weights} epochs=1 imgsz=160 cache=disk data=coco8.yaml")
57
+ run(f"yolo train {task} model={model} data={data} --imgsz= 160 epochs =1, cache = disk fraction=0.25")
60
58
 
61
59
 
62
60
  @pytest.mark.skipif(checks.IS_PYTHON_3_12, reason="MobileSAM with CLIP is not supported in Python 3.12")
@@ -70,6 +70,7 @@ def test_export_onnx_matrix(task, dynamic, int8, half, batch, simplify, nms):
70
70
  simplify=simplify,
71
71
  nms=nms,
72
72
  device=DEVICES[0],
73
+ # opset=20 if nms else None, # fix ONNX Runtime errors with NMS
73
74
  )
74
75
  YOLO(file)([SOURCE] * batch, imgsz=64 if dynamic else 32, device=DEVICES[0]) # exported model inference
75
76
  Path(file).unlink() # cleanup
@@ -114,7 +115,9 @@ def test_train():
114
115
  device = tuple(DEVICES) if len(DEVICES) > 1 else DEVICES[0]
115
116
  # NVIDIA Jetson only has one GPU and therefore skipping checks
116
117
  if not IS_JETSON:
117
- results = YOLO(MODEL).train(data="coco8.yaml", imgsz=64, epochs=1, device=device) # requires imgsz>=64
118
+ results = YOLO(MODEL).train(
119
+ data="coco8.yaml", imgsz=64, epochs=1, device=device, batch=15
120
+ ) # requires imgsz>=64
118
121
  visible = eval(os.environ["CUDA_VISIBLE_DEVICES"])
119
122
  assert visible == device, f"Passed GPUs '{device}', but used GPUs '{visible}'"
120
123
  assert (
@@ -20,7 +20,7 @@ from ultralytics.utils import (
20
20
  WINDOWS,
21
21
  checks,
22
22
  )
23
- from ultralytics.utils.torch_utils import TORCH_1_9, TORCH_1_13
23
+ from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_1_13, TORCH_2_1
24
24
 
25
25
 
26
26
  def test_export_torchscript():
@@ -35,7 +35,7 @@ def test_export_onnx():
35
35
  YOLO(file)(SOURCE, imgsz=32) # exported model inference
36
36
 
37
37
 
38
- @pytest.mark.skipif(not TORCH_1_13, reason="OpenVINO requires torch>=1.13")
38
+ @pytest.mark.skipif(not TORCH_2_1, reason="OpenVINO requires torch>=2.1")
39
39
  def test_export_openvino():
40
40
  """Test YOLO export to OpenVINO format for model inference compatibility."""
41
41
  file = YOLO(MODEL).export(format="openvino", imgsz=32)
@@ -43,7 +43,7 @@ def test_export_openvino():
43
43
 
44
44
 
45
45
  @pytest.mark.slow
46
- @pytest.mark.skipif(not TORCH_1_13, reason="OpenVINO requires torch>=1.13")
46
+ @pytest.mark.skipif(not TORCH_2_1, reason="OpenVINO requires torch>=2.1")
47
47
  @pytest.mark.parametrize(
48
48
  "task, dynamic, int8, half, batch, nms",
49
49
  [ # generate all combinations except for exclusion cases
@@ -83,7 +83,7 @@ def test_export_openvino_matrix(task, dynamic, int8, half, batch, nms):
83
83
  for task, dynamic, int8, half, batch, simplify, nms in product(
84
84
  TASKS, [True, False], [False], [False], [1, 2], [True, False], [True, False]
85
85
  )
86
- if not ((int8 and half) or (task == "classify" and nms) or (task == "obb" and nms and not TORCH_1_13))
86
+ if not ((int8 and half) or (task == "classify" and nms) or (nms and not TORCH_1_13))
87
87
  ],
88
88
  )
89
89
  def test_export_onnx_matrix(task, dynamic, int8, half, batch, simplify, nms):
@@ -117,7 +117,7 @@ def test_export_torchscript_matrix(task, dynamic, int8, half, batch, nms):
117
117
 
118
118
  @pytest.mark.slow
119
119
  @pytest.mark.skipif(not MACOS, reason="CoreML inference only supported on macOS")
120
- @pytest.mark.skipif(not TORCH_1_9, reason="CoreML>=7.2 not supported with PyTorch<=1.8")
120
+ @pytest.mark.skipif(not TORCH_1_11, reason="CoreML export requires torch>=1.11")
121
121
  @pytest.mark.skipif(checks.IS_PYTHON_3_13, reason="CoreML not supported in Python 3.13")
122
122
  @pytest.mark.parametrize(
123
123
  "task, dynamic, int8, half, nms, batch",
@@ -157,7 +157,7 @@ def test_export_coreml_matrix(task, dynamic, int8, half, nms, batch):
157
157
  for task, dynamic, int8, half, batch, nms in product(
158
158
  TASKS, [False], [True, False], [True, False], [1], [True, False]
159
159
  )
160
- if not ((int8 and half) or (task == "classify" and nms) or (ARM64 and nms))
160
+ if not ((int8 and half) or (task == "classify" and nms) or (ARM64 and nms) or (nms and not TORCH_1_13))
161
161
  ],
162
162
  )
163
163
  def test_export_tflite_matrix(task, dynamic, int8, half, batch, nms):
@@ -169,7 +169,7 @@ def test_export_tflite_matrix(task, dynamic, int8, half, batch, nms):
169
169
  Path(file).unlink() # cleanup
170
170
 
171
171
 
172
- @pytest.mark.skipif(not TORCH_1_9, reason="CoreML>=7.2 not supported with PyTorch<=1.8")
172
+ @pytest.mark.skipif(not TORCH_1_11, reason="CoreML export requires torch>=1.11")
173
173
  @pytest.mark.skipif(WINDOWS, reason="CoreML not supported on Windows") # RuntimeError: BlobWriter not loaded
174
174
  @pytest.mark.skipif(LINUX and ARM64, reason="CoreML not supported on aarch64 Linux")
175
175
  @pytest.mark.skipif(checks.IS_PYTHON_3_13, reason="CoreML not supported in Python 3.13")
@@ -34,7 +34,7 @@ from ultralytics.utils import (
34
34
  is_github_action_running,
35
35
  )
36
36
  from ultralytics.utils.downloads import download
37
- from ultralytics.utils.torch_utils import TORCH_1_9
37
+ from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_1_13
38
38
 
39
39
  IS_TMP_WRITEABLE = is_dir_writeable(TMP) # WARNING: must be run once tests start as TMP does not exist on tests/init
40
40
 
@@ -125,7 +125,9 @@ def test_predict_img(model_name):
125
125
  batch = [
126
126
  str(SOURCE), # filename
127
127
  Path(SOURCE), # Path
128
- "https://github.com/ultralytics/assets/releases/download/v0.0.0/zidane.jpg" if ONLINE else SOURCE, # URI
128
+ "https://github.com/ultralytics/assets/releases/download/v0.0.0/zidane.jpg?token=123"
129
+ if ONLINE
130
+ else SOURCE, # URI
129
131
  im, # OpenCV
130
132
  Image.open(SOURCE), # PIL
131
133
  np.zeros((320, 640, channels), dtype=np.uint8), # numpy
@@ -246,7 +248,7 @@ def test_all_model_yamls():
246
248
  """Test YOLO model creation for all available YAML configurations in the `cfg/models` directory."""
247
249
  for m in (ROOT / "cfg" / "models").rglob("*.yaml"):
248
250
  if "rtdetr" in m.name:
249
- if TORCH_1_9: # torch<=1.8 issue - TypeError: __init__() got an unexpected keyword argument 'batch_first'
251
+ if TORCH_1_11:
250
252
  _ = RTDETR(m.name)(SOURCE, imgsz=640) # must be 640
251
253
  else:
252
254
  YOLO(m.name)
@@ -634,7 +636,8 @@ def test_yolo_world():
634
636
  )
635
637
 
636
638
 
637
- @pytest.mark.skipif(checks.IS_PYTHON_3_12 or not TORCH_1_9, reason="YOLOE with CLIP is not supported in Python 3.12")
639
+ @pytest.mark.skipif(not TORCH_1_13, reason="YOLOE with CLIP requires torch>=1.13")
640
+ @pytest.mark.skipif(checks.IS_PYTHON_3_12, reason="YOLOE with CLIP is not supported in Python 3.12")
638
641
  @pytest.mark.skipif(
639
642
  checks.IS_PYTHON_3_8 and LINUX and ARM64,
640
643
  reason="YOLOE with CLIP is not supported in Python 3.8 and aarch64 Linux",
@@ -648,16 +651,12 @@ def test_yoloe():
648
651
  model.set_classes(names, model.get_text_pe(names))
649
652
  model(SOURCE, conf=0.01)
650
653
 
651
- import numpy as np
652
-
653
654
  from ultralytics import YOLOE
654
655
  from ultralytics.models.yolo.yoloe import YOLOEVPSegPredictor
655
656
 
656
657
  # visual-prompts
657
658
  visuals = dict(
658
- bboxes=np.array(
659
- [[221.52, 405.8, 344.98, 857.54], [120, 425, 160, 445]],
660
- ),
659
+ bboxes=np.array([[221.52, 405.8, 344.98, 857.54], [120, 425, 160, 445]]),
661
660
  cls=np.array([0, 1]),
662
661
  )
663
662
  model.predict(
@@ -674,7 +673,7 @@ def test_yoloe():
674
673
  model.val(data="coco128-seg.yaml", load_vp=True, imgsz=32)
675
674
 
676
675
  # Train, fine-tune
677
- from ultralytics.models.yolo.yoloe import YOLOEPESegTrainer
676
+ from ultralytics.models.yolo.yoloe import YOLOEPESegTrainer, YOLOESegTrainerFromScratch
678
677
 
679
678
  model = YOLOE("yoloe-11s-seg.pt")
680
679
  model.train(
@@ -684,6 +683,15 @@ def test_yoloe():
684
683
  trainer=YOLOEPESegTrainer,
685
684
  imgsz=32,
686
685
  )
686
+ # Train, from scratch
687
+ model = YOLOE("yoloe-11s-seg.yaml")
688
+ model.train(
689
+ data=dict(train=dict(yolo_data=["coco128-seg.yaml"]), val=dict(yolo_data=["coco128-seg.yaml"])),
690
+ epochs=1,
691
+ close_mosaic=1,
692
+ trainer=YOLOESegTrainerFromScratch,
693
+ imgsz=32,
694
+ )
687
695
 
688
696
  # prompt-free
689
697
  # predict
@@ -12,8 +12,9 @@ import pytest
12
12
 
13
13
  from tests import MODEL, TMP
14
14
  from ultralytics import solutions
15
- from ultralytics.utils import ASSETS_URL, IS_RASPBERRYPI, checks
15
+ from ultralytics.utils import ASSETS_URL, IS_RASPBERRYPI, TORCH_VERSION, checks
16
16
  from ultralytics.utils.downloads import safe_download
17
+ from ultralytics.utils.torch_utils import TORCH_2_4
17
18
 
18
19
  # Pre-defined arguments values
19
20
  SHOW = False
@@ -205,15 +206,6 @@ def test_solution(name, solution_class, needs_frame_count, video, kwargs):
205
206
  )
206
207
 
207
208
 
208
- @pytest.mark.skipif(checks.IS_PYTHON_3_8, reason="Disabled due to unsupported CLIP dependencies.")
209
- @pytest.mark.skipif(IS_RASPBERRYPI, reason="Disabled due to slow performance on Raspberry Pi.")
210
- def test_similarity_search():
211
- """Test similarity search solution with sample images and text query."""
212
- safe_download(f"{ASSETS_URL}/4-imgs-similaritysearch.zip", dir=TMP) # 4 dog images for testing in a zip file
213
- searcher = solutions.VisualAISearch(data=str(TMP / "4-imgs-similaritysearch"))
214
- _ = searcher("a dog sitting on a bench") # Returns the results in format "- img name | similarity score"
215
-
216
-
217
209
  def test_left_click_selection():
218
210
  """Test distance calculation left click selection functionality."""
219
211
  dc = solutions.DistanceCalculation()
@@ -297,7 +289,16 @@ def test_streamlit_handle_video_upload_creates_file():
297
289
  os.remove("ultralytics.mp4")
298
290
 
299
291
 
300
- @pytest.mark.skipif(checks.IS_PYTHON_3_8, reason="Disabled due to unsupported CLIP dependencies.")
292
+ @pytest.mark.skipif(not TORCH_2_4, reason=f"VisualAISearch requires torch>=2.4 (found torch=={TORCH_VERSION})")
293
+ @pytest.mark.skipif(IS_RASPBERRYPI, reason="Disabled due to slow performance on Raspberry Pi.")
294
+ def test_similarity_search():
295
+ """Test similarity search solution with sample images and text query."""
296
+ safe_download(f"{ASSETS_URL}/4-imgs-similaritysearch.zip", dir=TMP) # 4 dog images for testing in a zip file
297
+ searcher = solutions.VisualAISearch(data=str(TMP / "4-imgs-similaritysearch"))
298
+ _ = searcher("a dog sitting on a bench") # Returns the results in format "- img name | similarity score"
299
+
300
+
301
+ @pytest.mark.skipif(not TORCH_2_4, reason=f"VisualAISearch requires torch>=2.4 (found torch=={TORCH_VERSION})")
301
302
  @pytest.mark.skipif(IS_RASPBERRYPI, reason="Disabled due to slow performance on Raspberry Pi.")
302
303
  def test_similarity_search_app_init():
303
304
  """Test SearchApp initializes with required attributes."""
@@ -306,6 +307,7 @@ def test_similarity_search_app_init():
306
307
  assert hasattr(app, "run")
307
308
 
308
309
 
310
+ @pytest.mark.skipif(not TORCH_2_4, reason=f"VisualAISearch requires torch>=2.4 (found torch=={TORCH_VERSION})")
309
311
  @pytest.mark.skipif(IS_RASPBERRYPI, reason="Disabled due to slow performance on Raspberry Pi.")
310
312
  def test_similarity_search_complete(tmp_path):
311
313
  """Test VisualAISearch end-to-end with sample image and query."""
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.202"
3
+ __version__ = "8.3.204"
4
4
 
5
5
  import importlib
6
6
  import os
@@ -7,6 +7,7 @@ import random
7
7
  from collections.abc import Iterator
8
8
  from pathlib import Path
9
9
  from typing import Any
10
+ from urllib.parse import urlsplit
10
11
 
11
12
  import numpy as np
12
13
  import torch
@@ -247,8 +248,10 @@ def check_source(source):
247
248
  if isinstance(source, (str, int, Path)): # int for local usb camera
248
249
  source = str(source)
249
250
  source_lower = source.lower()
250
- is_file = source_lower.rpartition(".")[-1] in (IMG_FORMATS | VID_FORMATS)
251
251
  is_url = source_lower.startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://"))
252
+ is_file = (urlsplit(source_lower).path if is_url else source_lower).rpartition(".")[-1] in (
253
+ IMG_FORMATS | VID_FORMATS
254
+ )
252
255
  webcam = source.isnumeric() or source.endswith(".streams") or (is_url and not is_file)
253
256
  screenshot = source_lower == "screen"
254
257
  if is_url and is_file:
@@ -512,6 +512,11 @@ def check_cls_dataset(dataset: str | Path, split: str = "") -> dict[str, Any]:
512
512
  dataset = Path(dataset)
513
513
  data_dir = (dataset if dataset.is_dir() else (DATASETS_DIR / dataset)).resolve()
514
514
  if not data_dir.is_dir():
515
+ if data_dir.suffix != "":
516
+ raise ValueError(
517
+ f'Classification datasets must be a directory (data="path/to/dir") not a file (data="{dataset}"), '
518
+ "See https://docs.ultralytics.com/datasets/classify/"
519
+ )
515
520
  LOGGER.info("")
516
521
  LOGGER.warning(f"Dataset not found, missing path {data_dir}, attempting download...")
517
522
  t = time.time()
@@ -112,7 +112,7 @@ from ultralytics.utils.metrics import batch_probiou
112
112
  from ultralytics.utils.nms import TorchNMS
113
113
  from ultralytics.utils.ops import Profile
114
114
  from ultralytics.utils.patches import arange_patch
115
- from ultralytics.utils.torch_utils import TORCH_1_13, get_latest_opset, select_device
115
+ from ultralytics.utils.torch_utils import TORCH_1_11, TORCH_1_13, TORCH_2_1, TORCH_2_4, select_device
116
116
 
117
117
 
118
118
  def export_formats():
@@ -152,6 +152,34 @@ def export_formats():
152
152
  return dict(zip(["Format", "Argument", "Suffix", "CPU", "GPU", "Arguments"], zip(*x)))
153
153
 
154
154
 
155
+ def best_onnx_opset(onnx, cuda=False) -> int:
156
+ """Return max ONNX opset for this torch version with ONNX fallback."""
157
+ version = ".".join(TORCH_VERSION.split(".")[:2])
158
+ if TORCH_2_4: # _constants.ONNX_MAX_OPSET first defined in torch 1.13
159
+ opset = torch.onnx.utils._constants.ONNX_MAX_OPSET - 1 # use second-latest version for safety
160
+ if cuda:
161
+ opset -= 2 # fix CUDA ONNXRuntime NMS squeeze op errors
162
+ else:
163
+ opset = {
164
+ "1.8": 12,
165
+ "1.9": 12,
166
+ "1.10": 13,
167
+ "1.11": 14,
168
+ "1.12": 15,
169
+ "1.13": 17,
170
+ "2.0": 17, # reduced from 18 to fix ONNX errors
171
+ "2.1": 17, # reduced from 19
172
+ "2.2": 17, # reduced from 19
173
+ "2.3": 17, # reduced from 19
174
+ "2.4": 20,
175
+ "2.5": 20,
176
+ "2.6": 20,
177
+ "2.7": 20,
178
+ "2.8": 23,
179
+ }.get(version, 12)
180
+ return min(opset, onnx.defs.onnx_opset_version())
181
+
182
+
155
183
  def validate_args(format, passed_args, valid_args):
156
184
  """
157
185
  Validate arguments based on the export format.
@@ -355,6 +383,8 @@ class Exporter:
355
383
  if self.args.nms:
356
384
  assert not isinstance(model, ClassificationModel), "'nms=True' is not valid for classification models."
357
385
  assert not tflite or not ARM64 or not LINUX, "TFLite export with NMS unsupported on ARM64 Linux"
386
+ assert not is_tf_format or TORCH_1_13, "TensorFlow exports with NMS require torch>=1.13"
387
+ assert not onnx or TORCH_1_13, "ONNX export with NMS requires torch>=1.13"
358
388
  if getattr(model, "end2end", False):
359
389
  LOGGER.warning("'nms=True' is not available for end2end models. Forcing 'nms=False'.")
360
390
  self.args.nms = False
@@ -586,8 +616,11 @@ class Exporter:
586
616
  check_requirements(requirements)
587
617
  import onnx # noqa
588
618
 
589
- opset_version = self.args.opset or get_latest_opset()
590
- LOGGER.info(f"\n{prefix} starting export with onnx {onnx.__version__} opset {opset_version}...")
619
+ opset = self.args.opset or best_onnx_opset(onnx, cuda="cuda" in self.device.type)
620
+ LOGGER.info(f"\n{prefix} starting export with onnx {onnx.__version__} opset {opset}...")
621
+ if self.args.nms:
622
+ assert TORCH_1_13, f"'nms=True' ONNX export requires torch>=1.13 (found torch=={TORCH_VERSION})"
623
+
591
624
  f = str(self.file.with_suffix(".onnx"))
592
625
  output_names = ["output0", "output1"] if isinstance(self.model, SegmentationModel) else ["output0"]
593
626
  dynamic = self.args.dynamic
@@ -601,14 +634,14 @@ class Exporter:
601
634
  if self.args.nms: # only batch size is dynamic with NMS
602
635
  dynamic["output0"].pop(2)
603
636
  if self.args.nms and self.model.task == "obb":
604
- self.args.opset = opset_version # for NMSModel
637
+ self.args.opset = opset # for NMSModel
605
638
 
606
639
  with arange_patch(self.args):
607
640
  torch2onnx(
608
641
  NMSModel(self.model, self.args) if self.args.nms else self.model,
609
642
  self.im,
610
643
  f,
611
- opset=opset_version,
644
+ opset=opset,
612
645
  input_names=["images"],
613
646
  output_names=output_names,
614
647
  dynamic=dynamic or None,
@@ -633,6 +666,11 @@ class Exporter:
633
666
  meta = model_onnx.metadata_props.add()
634
667
  meta.key, meta.value = k, str(v)
635
668
 
669
+ # IR version
670
+ if getattr(model_onnx, "ir_version", 0) > 10:
671
+ LOGGER.info(f"{prefix} limiting IR version {model_onnx.ir_version} to 10 for ONNXRuntime compatibility...")
672
+ model_onnx.ir_version = 10
673
+
636
674
  onnx.save(model_onnx, f)
637
675
  return f
638
676
 
@@ -644,7 +682,7 @@ class Exporter:
644
682
  import openvino as ov
645
683
 
646
684
  LOGGER.info(f"\n{prefix} starting export with openvino {ov.__version__}...")
647
- assert TORCH_1_13, f"OpenVINO export requires torch>=1.13.0 but torch=={TORCH_VERSION} is installed"
685
+ assert TORCH_2_1, f"OpenVINO export requires torch>=2.1 but torch=={TORCH_VERSION} is installed"
648
686
  ov_model = ov.convert_model(
649
687
  NMSModel(self.model, self.args) if self.args.nms else self.model,
650
688
  input=None if self.args.dynamic else [self.im.shape],
@@ -837,6 +875,7 @@ class Exporter:
837
875
 
838
876
  LOGGER.info(f"\n{prefix} starting export with coremltools {ct.__version__}...")
839
877
  assert not WINDOWS, "CoreML export is not supported on Windows, please run on macOS or Linux."
878
+ assert TORCH_1_11, "CoreML export requires torch>=1.11"
840
879
  assert self.args.batch == 1, "CoreML batch sizes > 1 are not supported. Please retry at 'batch=1'."
841
880
  f = self.file.with_suffix(".mlmodel" if mlmodel else ".mlpackage")
842
881
  if f.is_dir():