ultralytics 8.3.205__tar.gz → 8.3.206__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.205 → ultralytics-8.3.206}/PKG-INFO +1 -1
  2. {ultralytics-8.3.205 → ultralytics-8.3.206}/tests/test_exports.py +5 -2
  3. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/__init__.py +6 -1
  4. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/engine/exporter.py +26 -7
  5. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/autobackend.py +7 -3
  6. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/plotting.py +13 -1
  7. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics.egg-info/PKG-INFO +1 -1
  8. {ultralytics-8.3.205 → ultralytics-8.3.206}/LICENSE +0 -0
  9. {ultralytics-8.3.205 → ultralytics-8.3.206}/README.md +0 -0
  10. {ultralytics-8.3.205 → ultralytics-8.3.206}/pyproject.toml +0 -0
  11. {ultralytics-8.3.205 → ultralytics-8.3.206}/setup.cfg +0 -0
  12. {ultralytics-8.3.205 → ultralytics-8.3.206}/tests/__init__.py +0 -0
  13. {ultralytics-8.3.205 → ultralytics-8.3.206}/tests/conftest.py +0 -0
  14. {ultralytics-8.3.205 → ultralytics-8.3.206}/tests/test_cli.py +0 -0
  15. {ultralytics-8.3.205 → ultralytics-8.3.206}/tests/test_cuda.py +0 -0
  16. {ultralytics-8.3.205 → ultralytics-8.3.206}/tests/test_engine.py +0 -0
  17. {ultralytics-8.3.205 → ultralytics-8.3.206}/tests/test_integrations.py +0 -0
  18. {ultralytics-8.3.205 → ultralytics-8.3.206}/tests/test_python.py +0 -0
  19. {ultralytics-8.3.205 → ultralytics-8.3.206}/tests/test_solutions.py +0 -0
  20. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/assets/bus.jpg +0 -0
  21. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/assets/zidane.jpg +0 -0
  22. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/__init__.py +0 -0
  23. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  24. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  25. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  26. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  27. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  28. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  29. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  30. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  31. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  32. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  33. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  34. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  35. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  36. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  37. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/coco.yaml +0 -0
  38. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  39. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  40. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  41. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  42. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  43. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  44. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  45. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/construction-ppe.yaml +0 -0
  46. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  47. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  48. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  49. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  50. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  51. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  52. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  53. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  54. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  55. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/signature.yaml +0 -0
  56. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  57. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/datasets/xView.yaml +0 -0
  58. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/default.yaml +0 -0
  59. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  60. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  61. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  62. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  63. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  64. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  65. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  66. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  67. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  68. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  69. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  70. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  71. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  72. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  73. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  74. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  75. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  76. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  77. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  78. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  79. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  80. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  81. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  82. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  83. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  84. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  85. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  86. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  87. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  88. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  89. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  90. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  91. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  92. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  93. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  94. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  95. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  96. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  97. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  98. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  99. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  100. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  101. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  102. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  103. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  104. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  105. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  106. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  107. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  108. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  109. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  110. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  111. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  112. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  113. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  114. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  115. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  116. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/__init__.py +0 -0
  117. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/annotator.py +0 -0
  118. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/augment.py +0 -0
  119. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/base.py +0 -0
  120. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/build.py +0 -0
  121. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/converter.py +0 -0
  122. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/dataset.py +0 -0
  123. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/loaders.py +0 -0
  124. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/scripts/download_weights.sh +0 -0
  125. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/scripts/get_coco.sh +0 -0
  126. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/scripts/get_coco128.sh +0 -0
  127. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  128. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/split.py +0 -0
  129. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/split_dota.py +0 -0
  130. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/data/utils.py +0 -0
  131. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/engine/__init__.py +0 -0
  132. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/engine/model.py +0 -0
  133. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/engine/predictor.py +0 -0
  134. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/engine/results.py +0 -0
  135. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/engine/trainer.py +0 -0
  136. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/engine/tuner.py +0 -0
  137. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/engine/validator.py +0 -0
  138. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/hub/__init__.py +0 -0
  139. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/hub/auth.py +0 -0
  140. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/hub/google/__init__.py +0 -0
  141. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/hub/session.py +0 -0
  142. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/hub/utils.py +0 -0
  143. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/__init__.py +0 -0
  144. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/fastsam/__init__.py +0 -0
  145. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/fastsam/model.py +0 -0
  146. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/fastsam/predict.py +0 -0
  147. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/fastsam/utils.py +0 -0
  148. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/fastsam/val.py +0 -0
  149. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/nas/__init__.py +0 -0
  150. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/nas/model.py +0 -0
  151. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/nas/predict.py +0 -0
  152. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/nas/val.py +0 -0
  153. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/rtdetr/__init__.py +0 -0
  154. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/rtdetr/model.py +0 -0
  155. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/rtdetr/predict.py +0 -0
  156. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/rtdetr/train.py +0 -0
  157. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/rtdetr/val.py +0 -0
  158. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/__init__.py +0 -0
  159. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/amg.py +0 -0
  160. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/build.py +0 -0
  161. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/model.py +0 -0
  162. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/modules/__init__.py +0 -0
  163. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/modules/blocks.py +0 -0
  164. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/modules/decoders.py +0 -0
  165. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/modules/encoders.py +0 -0
  166. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  167. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/modules/sam.py +0 -0
  168. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  169. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/modules/transformer.py +0 -0
  170. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/modules/utils.py +0 -0
  171. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/sam/predict.py +0 -0
  172. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/utils/__init__.py +0 -0
  173. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/utils/loss.py +0 -0
  174. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/utils/ops.py +0 -0
  175. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/__init__.py +0 -0
  176. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/classify/__init__.py +0 -0
  177. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/classify/predict.py +0 -0
  178. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/classify/train.py +0 -0
  179. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/classify/val.py +0 -0
  180. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/detect/__init__.py +0 -0
  181. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/detect/predict.py +0 -0
  182. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/detect/train.py +0 -0
  183. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/detect/val.py +0 -0
  184. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/model.py +0 -0
  185. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/obb/__init__.py +0 -0
  186. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/obb/predict.py +0 -0
  187. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/obb/train.py +0 -0
  188. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/obb/val.py +0 -0
  189. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/pose/__init__.py +0 -0
  190. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/pose/predict.py +0 -0
  191. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/pose/train.py +0 -0
  192. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/pose/val.py +0 -0
  193. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/segment/__init__.py +0 -0
  194. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/segment/predict.py +0 -0
  195. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/segment/train.py +0 -0
  196. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/segment/val.py +0 -0
  197. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/world/__init__.py +0 -0
  198. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/world/train.py +0 -0
  199. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/world/train_world.py +0 -0
  200. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  201. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  202. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/yoloe/train.py +0 -0
  203. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  204. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/models/yolo/yoloe/val.py +0 -0
  205. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/__init__.py +0 -0
  206. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/modules/__init__.py +0 -0
  207. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/modules/activation.py +0 -0
  208. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/modules/block.py +0 -0
  209. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/modules/conv.py +0 -0
  210. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/modules/head.py +0 -0
  211. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/modules/transformer.py +0 -0
  212. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/modules/utils.py +0 -0
  213. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/tasks.py +0 -0
  214. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/nn/text_model.py +0 -0
  215. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/py.typed +0 -0
  216. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/__init__.py +0 -0
  217. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/ai_gym.py +0 -0
  218. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/analytics.py +0 -0
  219. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/config.py +0 -0
  220. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/distance_calculation.py +0 -0
  221. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/heatmap.py +0 -0
  222. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/instance_segmentation.py +0 -0
  223. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/object_blurrer.py +0 -0
  224. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/object_counter.py +0 -0
  225. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/object_cropper.py +0 -0
  226. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/parking_management.py +0 -0
  227. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/queue_management.py +0 -0
  228. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/region_counter.py +0 -0
  229. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/security_alarm.py +0 -0
  230. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/similarity_search.py +0 -0
  231. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/solutions.py +0 -0
  232. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/speed_estimation.py +0 -0
  233. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/streamlit_inference.py +0 -0
  234. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/templates/similarity-search.html +0 -0
  235. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/trackzone.py +0 -0
  236. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/solutions/vision_eye.py +0 -0
  237. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/trackers/__init__.py +0 -0
  238. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/trackers/basetrack.py +0 -0
  239. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/trackers/bot_sort.py +0 -0
  240. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/trackers/byte_tracker.py +0 -0
  241. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/trackers/track.py +0 -0
  242. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/trackers/utils/__init__.py +0 -0
  243. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/trackers/utils/gmc.py +0 -0
  244. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  245. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/trackers/utils/matching.py +0 -0
  246. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/__init__.py +0 -0
  247. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/autobatch.py +0 -0
  248. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/autodevice.py +0 -0
  249. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/benchmarks.py +0 -0
  250. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/__init__.py +0 -0
  251. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/base.py +0 -0
  252. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/clearml.py +0 -0
  253. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/comet.py +0 -0
  254. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/dvc.py +0 -0
  255. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/hub.py +0 -0
  256. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/mlflow.py +0 -0
  257. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/neptune.py +0 -0
  258. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/platform.py +0 -0
  259. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/raytune.py +0 -0
  260. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  261. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/callbacks/wb.py +0 -0
  262. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/checks.py +0 -0
  263. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/cpu.py +0 -0
  264. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/dist.py +0 -0
  265. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/downloads.py +0 -0
  266. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/errors.py +0 -0
  267. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/events.py +0 -0
  268. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/export/__init__.py +0 -0
  269. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/export/imx.py +0 -0
  270. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/files.py +0 -0
  271. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/git.py +0 -0
  272. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/instance.py +0 -0
  273. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/logger.py +0 -0
  274. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/loss.py +0 -0
  275. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/metrics.py +0 -0
  276. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/nms.py +0 -0
  277. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/ops.py +0 -0
  278. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/patches.py +0 -0
  279. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/tal.py +0 -0
  280. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/torch_utils.py +0 -0
  281. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/tqdm.py +0 -0
  282. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/triton.py +0 -0
  283. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics/utils/tuner.py +0 -0
  284. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics.egg-info/SOURCES.txt +0 -0
  285. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics.egg-info/dependency_links.txt +0 -0
  286. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics.egg-info/entry_points.txt +0 -0
  287. {ultralytics-8.3.205 → ultralytics-8.3.206}/ultralytics.egg-info/requires.txt +0 -0
  288. {ultralytics-8.3.205 → ultralytics-8.3.206}/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.205
3
+ Version: 8.3.206
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>
@@ -124,9 +124,12 @@ def test_export_torchscript_matrix(task, dynamic, int8, half, batch, nms):
124
124
  [ # generate all combinations except for exclusion cases
125
125
  (task, dynamic, int8, half, nms, batch)
126
126
  for task, dynamic, int8, half, nms, batch in product(
127
- TASKS, [False], [True, False], [True, False], [True, False], [1]
127
+ TASKS, [True, False], [True, False], [True, False], [True, False], [1]
128
128
  )
129
- if not (int8 and half) and not (task != "detect" and nms)
129
+ if not (int8 and half)
130
+ and not (task != "detect" and nms)
131
+ and not (dynamic and nms)
132
+ and not (task == "classify" and dynamic)
130
133
  ],
131
134
  )
132
135
  def test_export_coreml_matrix(task, dynamic, int8, half, nms, batch):
@@ -1,9 +1,10 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.205"
3
+ __version__ = "8.3.206"
4
4
 
5
5
  import importlib
6
6
  import os
7
+ from typing import TYPE_CHECKING
7
8
 
8
9
  # Set ENV variables (place before imports)
9
10
  if not os.environ.get("OMP_NUM_THREADS"):
@@ -26,6 +27,10 @@ __all__ = (
26
27
  "settings",
27
28
  )
28
29
 
30
+ if TYPE_CHECKING:
31
+ # Enable hints for type checkers
32
+ from ultralytics.models import YOLO, YOLOWorld, YOLOE, NAS, SAM, FastSAM, RTDETR # noqa
33
+
29
34
 
30
35
  def __getattr__(name: str):
31
36
  """Lazy-import model classes on first access."""
@@ -137,7 +137,7 @@ def export_formats():
137
137
  True,
138
138
  ["batch", "dynamic", "half", "int8", "simplify", "nms", "fraction"],
139
139
  ],
140
- ["CoreML", "coreml", ".mlpackage", True, False, ["batch", "half", "int8", "nms"]],
140
+ ["CoreML", "coreml", ".mlpackage", True, False, ["batch", "dynamic", "half", "int8", "nms"]],
141
141
  ["TensorFlow SavedModel", "saved_model", "_saved_model", True, True, ["batch", "int8", "keras", "nms"]],
142
142
  ["TensorFlow GraphDef", "pb", ".pb", True, True, ["batch"]],
143
143
  ["TensorFlow Lite", "tflite", ".tflite", True, False, ["batch", "half", "int8", "nms", "fraction"]],
@@ -389,9 +389,9 @@ class Exporter:
389
389
  LOGGER.warning("'nms=True' is not available for end2end models. Forcing 'nms=False'.")
390
390
  self.args.nms = False
391
391
  self.args.conf = self.args.conf or 0.25 # set conf default value for nms export
392
- if (engine or self.args.nms) and self.args.dynamic and self.args.batch == 1:
392
+ if (engine or coreml or self.args.nms) and self.args.dynamic and self.args.batch == 1:
393
393
  LOGGER.warning(
394
- f"'dynamic=True' model with '{'nms=True' if self.args.nms else 'format=engine'}' requires max batch size, i.e. 'batch=16'"
394
+ f"'dynamic=True' model with '{'nms=True' if self.args.nms else f'format={self.args.format}'}' requires max batch size, i.e. 'batch=16'"
395
395
  )
396
396
  if edgetpu:
397
397
  if not LINUX or ARM64:
@@ -876,13 +876,19 @@ class Exporter:
876
876
  LOGGER.info(f"\n{prefix} starting export with coremltools {ct.__version__}...")
877
877
  assert not WINDOWS, "CoreML export is not supported on Windows, please run on macOS or Linux."
878
878
  assert TORCH_1_11, "CoreML export requires torch>=1.11"
879
- assert self.args.batch == 1, "CoreML batch sizes > 1 are not supported. Please retry at 'batch=1'."
879
+ if self.args.batch > 1:
880
+ assert self.args.dynamic, (
881
+ "batch sizes > 1 are not supported without 'dynamic=True' for CoreML export. Please retry at 'dynamic=True'."
882
+ )
883
+ if self.args.dynamic:
884
+ assert not self.args.nms, (
885
+ "'nms=True' cannot be used together with 'dynamic=True' for CoreML export. Please disable one of them."
886
+ )
887
+ assert self.model.task != "classify", "'dynamic=True' is not supported for CoreML classification models."
880
888
  f = self.file.with_suffix(".mlmodel" if mlmodel else ".mlpackage")
881
889
  if f.is_dir():
882
890
  shutil.rmtree(f)
883
891
 
884
- bias = [0.0, 0.0, 0.0]
885
- scale = 1 / 255
886
892
  classifier_config = None
887
893
  if self.model.task == "classify":
888
894
  classifier_config = ct.ClassifierConfig(list(self.model.names.values()))
@@ -896,13 +902,26 @@ class Exporter:
896
902
  model = self.model
897
903
  ts = torch.jit.trace(model.eval(), self.im, strict=False) # TorchScript model
898
904
 
905
+ if self.args.dynamic:
906
+ input_shape = ct.Shape(
907
+ shape=(
908
+ ct.RangeDim(lower_bound=1, upper_bound=self.args.batch, default=1),
909
+ self.im.shape[1],
910
+ ct.RangeDim(lower_bound=32, upper_bound=self.imgsz[0] * 2, default=self.imgsz[0]),
911
+ ct.RangeDim(lower_bound=32, upper_bound=self.imgsz[1] * 2, default=self.imgsz[1]),
912
+ )
913
+ )
914
+ inputs = [ct.TensorType("image", shape=input_shape)]
915
+ else:
916
+ inputs = [ct.ImageType("image", shape=self.im.shape, scale=1 / 255, bias=[0.0, 0.0, 0.0])]
917
+
899
918
  # Based on apple's documentation it is better to leave out the minimum_deployment target and let that get set
900
919
  # Internally based on the model conversion and output type.
901
920
  # Setting minimum_depoloyment_target >= iOS16 will require setting compute_precision=ct.precision.FLOAT32.
902
921
  # iOS16 adds in better support for FP16, but none of the CoreML NMS specifications handle FP16 as input.
903
922
  ct_model = ct.convert(
904
923
  ts,
905
- inputs=[ct.ImageType("image", shape=self.im.shape, scale=scale, bias=bias)], # expects ct.TensorType
924
+ inputs=inputs,
906
925
  classifier_config=classifier_config,
907
926
  convert_to="neuralnetwork" if mlmodel else "mlprogram",
908
927
  )
@@ -406,6 +406,7 @@ class AutoBackend(nn.Module):
406
406
  import coremltools as ct
407
407
 
408
408
  model = ct.models.MLModel(w)
409
+ dynamic = model.get_spec().description.input[0].type.HasField("multiArrayType")
409
410
  metadata = dict(model.user_defined_metadata)
410
411
 
411
412
  # TF SavedModel
@@ -720,10 +721,13 @@ class AutoBackend(nn.Module):
720
721
 
721
722
  # CoreML
722
723
  elif self.coreml:
723
- im = im[0].cpu().numpy()
724
- im_pil = Image.fromarray((im * 255).astype("uint8"))
724
+ im = im.cpu().numpy()
725
+ if self.dynamic:
726
+ im = im.transpose(0, 3, 1, 2)
727
+ else:
728
+ im = Image.fromarray((im[0] * 255).astype("uint8"))
725
729
  # im = im.resize((192, 320), Image.BILINEAR)
726
- y = self.model.predict({"image": im_pil}) # coordinates are xywh normalized
730
+ y = self.model.predict({"image": im}) # coordinates are xywh normalized
727
731
  if "confidence" in y: # NMS included
728
732
  from ultralytics.utils.ops import xywh2xyxy
729
733
 
@@ -712,6 +712,12 @@ def plot_images(
712
712
  Note:
713
713
  This function supports both tensor and numpy array inputs. It will automatically
714
714
  convert tensor inputs to numpy arrays for processing.
715
+
716
+ Channel Support:
717
+ - 1 channel: Greyscale
718
+ - 2 channels: Third channel added as zeros
719
+ - 3 channels: Used as-is (standard RGB)
720
+ - 4+ channels: Cropped to first 3 channels
715
721
  """
716
722
  for k in {"cls", "bboxes", "conf", "masks", "keypoints", "batch_idx", "images"}:
717
723
  if k not in labels:
@@ -731,7 +737,13 @@ def plot_images(
731
737
 
732
738
  if len(images) and isinstance(images, torch.Tensor):
733
739
  images = images.cpu().float().numpy()
734
- if images.shape[1] > 3:
740
+
741
+ # Handle 2-ch and n-ch images
742
+ c = images.shape[1]
743
+ if c == 2:
744
+ zero = np.zeros_like(images[:, :1])
745
+ images = np.concatenate((images, zero), axis=1) # pad 2-ch with a black channel
746
+ elif c > 3:
735
747
  images = images[:, :3] # crop multispectral images to first 3 channels
736
748
 
737
749
  bs, _, h, w = images.shape # batch size, _, height, width
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.205
3
+ Version: 8.3.206
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
File without changes
File without changes
File without changes