ultralytics 8.3.65__tar.gz → 8.3.66__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. {ultralytics-8.3.65/ultralytics.egg-info → ultralytics-8.3.66}/PKG-INFO +1 -1
  2. {ultralytics-8.3.65 → ultralytics-8.3.66}/tests/test_exports.py +2 -1
  3. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/__init__.py +1 -1
  4. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/__init__.py +1 -6
  5. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +1 -8
  6. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/augment.py +1 -1
  7. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/split_dota.py +3 -3
  8. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/utils.py +1 -1
  9. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/engine/exporter.py +9 -9
  10. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/engine/trainer.py +1 -2
  11. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/autobackend.py +1 -1
  12. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/modules/block.py +1 -3
  13. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/modules/conv.py +1 -1
  14. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/tasks.py +5 -1
  15. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/trackers/track.py +3 -0
  16. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/__init__.py +2 -2
  17. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/benchmarks.py +4 -4
  18. {ultralytics-8.3.65 → ultralytics-8.3.66/ultralytics.egg-info}/PKG-INFO +1 -1
  19. {ultralytics-8.3.65 → ultralytics-8.3.66}/LICENSE +0 -0
  20. {ultralytics-8.3.65 → ultralytics-8.3.66}/README.md +0 -0
  21. {ultralytics-8.3.65 → ultralytics-8.3.66}/pyproject.toml +0 -0
  22. {ultralytics-8.3.65 → ultralytics-8.3.66}/setup.cfg +0 -0
  23. {ultralytics-8.3.65 → ultralytics-8.3.66}/tests/__init__.py +0 -0
  24. {ultralytics-8.3.65 → ultralytics-8.3.66}/tests/conftest.py +0 -0
  25. {ultralytics-8.3.65 → ultralytics-8.3.66}/tests/test_cli.py +0 -0
  26. {ultralytics-8.3.65 → ultralytics-8.3.66}/tests/test_cuda.py +0 -0
  27. {ultralytics-8.3.65 → ultralytics-8.3.66}/tests/test_engine.py +0 -0
  28. {ultralytics-8.3.65 → ultralytics-8.3.66}/tests/test_integrations.py +0 -0
  29. {ultralytics-8.3.65 → ultralytics-8.3.66}/tests/test_python.py +0 -0
  30. {ultralytics-8.3.65 → ultralytics-8.3.66}/tests/test_solutions.py +0 -0
  31. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/assets/bus.jpg +0 -0
  32. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/assets/zidane.jpg +0 -0
  33. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  34. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  35. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  36. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  37. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  38. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  39. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  40. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  41. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  42. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  43. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  44. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  45. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  46. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/coco.yaml +0 -0
  47. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  48. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  49. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  50. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  51. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  52. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  53. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  54. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  55. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  56. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  57. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  58. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  59. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  60. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/signature.yaml +0 -0
  61. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  62. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/datasets/xView.yaml +0 -0
  63. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/default.yaml +0 -0
  64. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  65. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  66. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  67. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  68. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  69. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  70. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  71. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  72. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  73. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  74. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  75. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  76. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  77. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  78. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  79. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  80. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  81. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  82. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  83. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  84. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  85. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  86. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  87. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  88. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  89. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  90. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  91. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  92. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  93. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  94. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  95. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  96. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  97. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  98. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  99. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  100. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  101. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  102. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  103. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  104. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  105. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  106. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  107. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  108. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  109. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/solutions/default.yaml +0 -0
  110. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  111. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  112. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/__init__.py +0 -0
  113. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/annotator.py +0 -0
  114. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/base.py +0 -0
  115. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/build.py +0 -0
  116. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/converter.py +0 -0
  117. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/dataset.py +0 -0
  118. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/data/loaders.py +0 -0
  119. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/engine/__init__.py +0 -0
  120. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/engine/model.py +0 -0
  121. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/engine/predictor.py +0 -0
  122. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/engine/results.py +0 -0
  123. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/engine/tuner.py +0 -0
  124. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/engine/validator.py +0 -0
  125. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/hub/__init__.py +0 -0
  126. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/hub/auth.py +0 -0
  127. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/hub/google/__init__.py +0 -0
  128. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/hub/session.py +0 -0
  129. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/hub/utils.py +0 -0
  130. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/__init__.py +0 -0
  131. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/fastsam/__init__.py +0 -0
  132. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/fastsam/model.py +0 -0
  133. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/fastsam/predict.py +0 -0
  134. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/fastsam/utils.py +0 -0
  135. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/fastsam/val.py +0 -0
  136. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/nas/__init__.py +0 -0
  137. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/nas/model.py +0 -0
  138. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/nas/predict.py +0 -0
  139. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/nas/val.py +0 -0
  140. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/rtdetr/__init__.py +0 -0
  141. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/rtdetr/model.py +0 -0
  142. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/rtdetr/predict.py +0 -0
  143. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/rtdetr/train.py +0 -0
  144. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/rtdetr/val.py +0 -0
  145. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/__init__.py +0 -0
  146. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/amg.py +0 -0
  147. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/build.py +0 -0
  148. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/model.py +0 -0
  149. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/modules/__init__.py +0 -0
  150. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/modules/blocks.py +0 -0
  151. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/modules/decoders.py +0 -0
  152. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/modules/encoders.py +0 -0
  153. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  154. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/modules/sam.py +0 -0
  155. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  156. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/modules/transformer.py +0 -0
  157. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/modules/utils.py +0 -0
  158. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/sam/predict.py +0 -0
  159. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/utils/__init__.py +0 -0
  160. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/utils/loss.py +0 -0
  161. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/utils/ops.py +0 -0
  162. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/__init__.py +0 -0
  163. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/classify/__init__.py +0 -0
  164. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/classify/predict.py +0 -0
  165. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/classify/train.py +0 -0
  166. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/classify/val.py +0 -0
  167. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/detect/__init__.py +0 -0
  168. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/detect/predict.py +0 -0
  169. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/detect/train.py +0 -0
  170. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/detect/val.py +0 -0
  171. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/model.py +0 -0
  172. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/obb/__init__.py +0 -0
  173. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/obb/predict.py +0 -0
  174. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/obb/train.py +0 -0
  175. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/obb/val.py +0 -0
  176. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/pose/__init__.py +0 -0
  177. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/pose/predict.py +0 -0
  178. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/pose/train.py +0 -0
  179. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/pose/val.py +0 -0
  180. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/segment/__init__.py +0 -0
  181. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/segment/predict.py +0 -0
  182. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/segment/train.py +0 -0
  183. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/segment/val.py +0 -0
  184. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/world/__init__.py +0 -0
  185. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/world/train.py +0 -0
  186. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/models/yolo/world/train_world.py +0 -0
  187. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/__init__.py +0 -0
  188. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/modules/__init__.py +0 -0
  189. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/modules/activation.py +0 -0
  190. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/modules/head.py +0 -0
  191. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/modules/transformer.py +0 -0
  192. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/nn/modules/utils.py +0 -0
  193. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/__init__.py +0 -0
  194. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/ai_gym.py +0 -0
  195. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/analytics.py +0 -0
  196. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/distance_calculation.py +0 -0
  197. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/heatmap.py +0 -0
  198. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/object_counter.py +0 -0
  199. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/parking_management.py +0 -0
  200. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/queue_management.py +0 -0
  201. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/region_counter.py +0 -0
  202. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/security_alarm.py +0 -0
  203. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/solutions.py +0 -0
  204. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/speed_estimation.py +0 -0
  205. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/streamlit_inference.py +0 -0
  206. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/solutions/trackzone.py +0 -0
  207. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/trackers/__init__.py +0 -0
  208. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/trackers/basetrack.py +0 -0
  209. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/trackers/bot_sort.py +0 -0
  210. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/trackers/byte_tracker.py +0 -0
  211. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/trackers/utils/__init__.py +0 -0
  212. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/trackers/utils/gmc.py +0 -0
  213. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  214. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/trackers/utils/matching.py +0 -0
  215. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/autobatch.py +0 -0
  216. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/__init__.py +0 -0
  217. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/base.py +0 -0
  218. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/clearml.py +0 -0
  219. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/comet.py +0 -0
  220. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/dvc.py +0 -0
  221. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/hub.py +0 -0
  222. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/mlflow.py +0 -0
  223. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/neptune.py +0 -0
  224. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/raytune.py +0 -0
  225. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  226. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/callbacks/wb.py +0 -0
  227. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/checks.py +0 -0
  228. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/dist.py +0 -0
  229. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/downloads.py +0 -0
  230. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/errors.py +0 -0
  231. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/files.py +0 -0
  232. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/instance.py +0 -0
  233. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/loss.py +0 -0
  234. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/metrics.py +0 -0
  235. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/ops.py +0 -0
  236. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/patches.py +0 -0
  237. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/plotting.py +0 -0
  238. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/tal.py +0 -0
  239. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/torch_utils.py +0 -0
  240. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/triton.py +0 -0
  241. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics/utils/tuner.py +0 -0
  242. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics.egg-info/SOURCES.txt +0 -0
  243. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics.egg-info/dependency_links.txt +0 -0
  244. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics.egg-info/entry_points.txt +0 -0
  245. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics.egg-info/requires.txt +0 -0
  246. {ultralytics-8.3.65 → ultralytics-8.3.66}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.65
3
+ Version: 8.3.66
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>
@@ -11,6 +11,7 @@ from tests import MODEL, SOURCE
11
11
  from ultralytics import YOLO
12
12
  from ultralytics.cfg import TASK2DATA, TASK2MODEL, TASKS
13
13
  from ultralytics.utils import (
14
+ ARM64,
14
15
  IS_RASPBERRYPI,
15
16
  LINUX,
16
17
  MACOS,
@@ -157,7 +158,7 @@ def test_export_tflite_matrix(task, dynamic, int8, half, batch):
157
158
 
158
159
  @pytest.mark.skipif(not TORCH_1_9, reason="CoreML>=7.2 not supported with PyTorch<=1.8")
159
160
  @pytest.mark.skipif(WINDOWS, reason="CoreML not supported on Windows") # RuntimeError: BlobWriter not loaded
160
- @pytest.mark.skipif(IS_RASPBERRYPI, reason="CoreML not supported on Raspberry Pi")
161
+ @pytest.mark.skipif(LINUX and ARM64, reason="CoreML not supported on aarch64 Linux")
161
162
  @pytest.mark.skipif(checks.IS_PYTHON_3_12, reason="CoreML not supported in Python 3.12")
162
163
  def test_export_coreml():
163
164
  """Test YOLO exports to CoreML format, optimized for macOS only."""
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.65"
3
+ __version__ = "8.3.66"
4
4
 
5
5
  import os
6
6
 
@@ -921,12 +921,7 @@ def entrypoint(debug=""):
921
921
  # Task
922
922
  task = overrides.pop("task", None)
923
923
  if task:
924
- if task == "classify" and mode == "track":
925
- raise ValueError(
926
- f"❌ Classification doesn't support 'mode=track'. Valid modes for classification are"
927
- f" {MODES - {'track'}}.\n{CLI_HELP_MSG}"
928
- )
929
- elif task not in TASKS:
924
+ if task not in TASKS:
930
925
  if task == "track":
931
926
  LOGGER.warning(
932
927
  "WARNING ⚠️ invalid 'task=track', setting 'task=detect' and 'mode=track'. Valid tasks are {TASKS}.\n{CLI_HELP_MSG}."
@@ -6,18 +6,11 @@
6
6
 
7
7
  # Parameters
8
8
  nc: 10 # number of classes
9
- scales: # model compound scaling constants, i.e. 'model=yolo11n-cls.yaml' will call yolo11-cls.yaml with scale 'n'
10
- # [depth, width, max_channels]
11
- n: [0.33, 0.25, 1024]
12
- s: [0.33, 0.50, 1024]
13
- m: [0.67, 0.75, 1024]
14
- l: [1.00, 1.00, 1024]
15
- x: [1.00, 1.25, 1024]
16
9
 
17
10
  # ResNet18 backbone
18
11
  backbone:
19
12
  # [from, repeats, module, args]
20
- - [-1, 1, TorchVision, [512, "resnet18", "DEFAULT", True, 2]] # truncate two layers from the end
13
+ - [-1, 1, TorchVision, [512, resnet18, DEFAULT, True, 2]] # truncate two layers from the end
21
14
 
22
15
  # YOLO11n head
23
16
  head:
@@ -1850,7 +1850,7 @@ class Albumentations:
1850
1850
  A.CLAHE(p=0.01),
1851
1851
  A.RandomBrightnessContrast(p=0.0),
1852
1852
  A.RandomGamma(p=0.0),
1853
- A.ImageCompression(quality_lower=75, p=0.0),
1853
+ A.ImageCompression(quality_range=(75, 100), p=0.0),
1854
1854
  ]
1855
1855
 
1856
1856
  # Compose transforms
@@ -8,9 +8,9 @@ from pathlib import Path
8
8
  import cv2
9
9
  import numpy as np
10
10
  from PIL import Image
11
- from tqdm import tqdm
12
11
 
13
12
  from ultralytics.data.utils import exif_size, img2label_paths
13
+ from ultralytics.utils import TQDM
14
14
  from ultralytics.utils.checks import check_requirements
15
15
 
16
16
 
@@ -221,7 +221,7 @@ def split_images_and_labels(data_root, save_dir, split="train", crop_sizes=(1024
221
221
  lb_dir.mkdir(parents=True, exist_ok=True)
222
222
 
223
223
  annos = load_yolo_dota(data_root, split=split)
224
- for anno in tqdm(annos, total=len(annos), desc=split):
224
+ for anno in TQDM(annos, total=len(annos), desc=split):
225
225
  windows = get_windows(anno["ori_size"], crop_sizes, gaps)
226
226
  window_objs = get_window_obj(anno, windows)
227
227
  crop_and_save(anno, windows, window_objs, str(im_dir), str(lb_dir))
@@ -281,7 +281,7 @@ def split_test(data_root, save_dir, crop_size=1024, gap=200, rates=(1.0,)):
281
281
  im_dir = Path(data_root) / "images" / "test"
282
282
  assert im_dir.exists(), f"Can't find {im_dir}, please check your data root."
283
283
  im_files = glob(str(im_dir / "*"))
284
- for im_file in tqdm(im_files, total=len(im_files), desc="test"):
284
+ for im_file in TQDM(im_files, total=len(im_files), desc="test"):
285
285
  w, h = exif_size(Image.open(im_file))
286
286
  windows = get_windows((h, w), crop_sizes=crop_sizes, gaps=gaps)
287
287
  im = cv2.imread(im_file)
@@ -136,7 +136,7 @@ def verify_image_label(args):
136
136
 
137
137
  # All labels
138
138
  max_cls = lb[:, 0].max() # max label count
139
- assert max_cls <= num_cls, (
139
+ assert max_cls < num_cls, (
140
140
  f"Label class {int(max_cls)} exceeds dataset class count {num_cls}. "
141
141
  f"Possible class labels are 0-{num_cls - 1}"
142
142
  )
@@ -1159,21 +1159,19 @@ class Exporter:
1159
1159
  from rknn.api import RKNN
1160
1160
 
1161
1161
  f, _ = self.export_onnx()
1162
-
1163
- platform = self.args.name
1164
-
1165
1162
  export_path = Path(f"{Path(f).stem}_rknn_model")
1166
1163
  export_path.mkdir(exist_ok=True)
1167
1164
 
1168
1165
  rknn = RKNN(verbose=False)
1169
- rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]], target_platform=platform)
1170
- _ = rknn.load_onnx(model=f)
1171
- _ = rknn.build(do_quantization=False) # TODO: Add quantization support
1172
- f = f.replace(".onnx", f"-{platform}.rknn")
1173
- _ = rknn.export_rknn(f"{export_path / f}")
1166
+ rknn.config(mean_values=[[0, 0, 0]], std_values=[[255, 255, 255]], target_platform=self.args.name)
1167
+ rknn.load_onnx(model=f)
1168
+ rknn.build(do_quantization=False) # TODO: Add quantization support
1169
+ f = f.replace(".onnx", f"-{self.args.name}.rknn")
1170
+ rknn.export_rknn(f"{export_path / f}")
1174
1171
  yaml_save(export_path / "metadata.yaml", self.metadata)
1175
1172
  return export_path, None
1176
1173
 
1174
+ @try_export
1177
1175
  def export_imx(self, prefix=colorstr("IMX:")):
1178
1176
  """YOLO IMX export."""
1179
1177
  gptq = False
@@ -1191,6 +1189,8 @@ class Exporter:
1191
1189
  import onnx
1192
1190
  from sony_custom_layers.pytorch.object_detection.nms import multiclass_nms
1193
1191
 
1192
+ LOGGER.info(f"\n{prefix} starting export with model_compression_toolkit {mct.__version__}...")
1193
+
1194
1194
  try:
1195
1195
  out = subprocess.run(
1196
1196
  ["java", "--version"], check=True, capture_output=True
@@ -1286,7 +1286,7 @@ class Exporter:
1286
1286
 
1287
1287
  f = Path(str(self.file).replace(self.file.suffix, "_imx_model"))
1288
1288
  f.mkdir(exist_ok=True)
1289
- onnx_model = f / Path(str(self.file).replace(self.file.suffix, "_imx.onnx")) # js dir
1289
+ onnx_model = f / Path(str(self.file.name).replace(self.file.suffix, "_imx.onnx")) # js dir
1290
1290
  mct.exporter.pytorch_export_model(
1291
1291
  model=quant_model, save_model_path=onnx_model, repr_dataset=representative_dataset_gen
1292
1292
  )
@@ -271,7 +271,6 @@ class BaseTrainer:
271
271
  )
272
272
  if world_size > 1:
273
273
  self.model = nn.parallel.DistributedDataParallel(self.model, device_ids=[RANK], find_unused_parameters=True)
274
- self.set_model_attributes() # set again after DDP wrapper
275
274
 
276
275
  # Check imgsz
277
276
  gs = max(int(self.model.stride.max() if hasattr(self.model, "stride") else 32), 32) # grid size (max stride)
@@ -782,7 +781,7 @@ class BaseTrainer:
782
781
  f"ignoring 'lr0={self.args.lr0}' and 'momentum={self.args.momentum}' and "
783
782
  f"determining best 'optimizer', 'lr0' and 'momentum' automatically... "
784
783
  )
785
- nc = getattr(model, "nc", 10) # number of classes
784
+ nc = self.data.get("nc", 10) # number of classes
786
785
  lr_fit = round(0.002 * 5 / (4 + nc), 6) # lr0 fit equation to 6 decimal places
787
786
  name, lr, momentum = ("SGD", 0.01, 0.9) if iterations > 10000 else ("AdamW", lr_fit, 0.9)
788
787
  self.args.warmup_bias_lr = 0.0 # no higher than 0.01 for Adam
@@ -482,7 +482,7 @@ class AutoBackend(nn.Module):
482
482
  w = next(w.rglob("*.rknn")) # get *.rknn file from *_rknn_model dir
483
483
  rknn_model = RKNNLite()
484
484
  rknn_model.load_rknn(w)
485
- ret = rknn_model.init_runtime()
485
+ rknn_model.init_runtime()
486
486
  metadata = Path(w).parent / "metadata.yaml"
487
487
 
488
488
  # Any other format (unsupported)
@@ -1120,8 +1120,6 @@ class TorchVision(nn.Module):
1120
1120
  m (nn.Module): The loaded torchvision model, possibly truncated and unwrapped.
1121
1121
 
1122
1122
  Args:
1123
- c1 (int): Input channels.
1124
- c2 (): Output channels.
1125
1123
  model (str): Name of the torchvision model to load.
1126
1124
  weights (str, optional): Pre-trained weights to load. Default is "DEFAULT".
1127
1125
  unwrap (bool, optional): If True, unwraps the model to a sequential containing all but the last `truncate` layers. Default is True.
@@ -1129,7 +1127,7 @@ class TorchVision(nn.Module):
1129
1127
  split (bool, optional): Returns output from intermediate child modules as list. Default is False.
1130
1128
  """
1131
1129
 
1132
- def __init__(self, c1, c2, model, weights="DEFAULT", unwrap=True, truncate=2, split=False):
1130
+ def __init__(self, model, weights="DEFAULT", unwrap=True, truncate=2, split=False):
1133
1131
  """Load the model and weights from torchvision."""
1134
1132
  import torchvision # scope for faster 'import ultralytics'
1135
1133
 
@@ -336,7 +336,7 @@ class Concat(nn.Module):
336
336
  class Index(nn.Module):
337
337
  """Returns a particular index of the input."""
338
338
 
339
- def __init__(self, c1, c2, index=0):
339
+ def __init__(self, index=0):
340
340
  """Returns a particular index of the input."""
341
341
  super().__init__()
342
342
  self.index = index
@@ -1060,12 +1060,16 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
1060
1060
  m.legacy = legacy
1061
1061
  elif m is RTDETRDecoder: # special case, channels arg must be passed in index 1
1062
1062
  args.insert(1, [ch[x] for x in f])
1063
- elif m in frozenset({CBLinear, TorchVision, Index}):
1063
+ elif m is CBLinear:
1064
1064
  c2 = args[0]
1065
1065
  c1 = ch[f]
1066
1066
  args = [c1, c2, *args[1:]]
1067
1067
  elif m is CBFuse:
1068
1068
  c2 = ch[f[-1]]
1069
+ elif m in frozenset({TorchVision, Index}):
1070
+ c2 = args[0]
1071
+ c1 = ch[f]
1072
+ args = [*args[1:]]
1069
1073
  else:
1070
1074
  c2 = ch[f]
1071
1075
 
@@ -31,6 +31,9 @@ def on_predict_start(predictor: object, persist: bool = False) -> None:
31
31
  >>> predictor = SomePredictorClass()
32
32
  >>> on_predict_start(predictor, persist=True)
33
33
  """
34
+ if predictor.args.task == "classify":
35
+ raise ValueError("❌ Classification doesn't support 'mode=track'")
36
+
34
37
  if hasattr(predictor, "trackers") and persist:
35
38
  return
36
39
 
@@ -23,8 +23,8 @@ import cv2
23
23
  import matplotlib.pyplot as plt
24
24
  import numpy as np
25
25
  import torch
26
+ import tqdm
26
27
  import yaml
27
- from tqdm import tqdm as tqdm_original
28
28
 
29
29
  from ultralytics import __version__
30
30
 
@@ -133,7 +133,7 @@ os.environ["TORCH_CPP_LOG_LEVEL"] = "ERROR" # suppress "NNPACK.cpp could not in
133
133
  os.environ["KINETO_LOG_LEVEL"] = "5" # suppress verbose PyTorch profiler output when computing FLOPs
134
134
 
135
135
 
136
- class TQDM(tqdm_original):
136
+ class TQDM(tqdm.tqdm):
137
137
  """
138
138
  A custom TQDM progress bar class that extends the original tqdm functionality.
139
139
 
@@ -41,7 +41,7 @@ import yaml
41
41
  from ultralytics import YOLO, YOLOWorld
42
42
  from ultralytics.cfg import TASK2DATA, TASK2METRIC
43
43
  from ultralytics.engine.exporter import export_formats
44
- from ultralytics.utils import ARM64, ASSETS, IS_JETSON, IS_RASPBERRYPI, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR
44
+ from ultralytics.utils import ARM64, ASSETS, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR
45
45
  from ultralytics.utils.checks import IS_PYTHON_3_12, check_requirements, check_yolo, is_rockchip
46
46
  from ultralytics.utils.downloads import safe_download
47
47
  from ultralytics.utils.files import file_size
@@ -100,9 +100,9 @@ def benchmark(
100
100
  elif i == 9: # Edge TPU
101
101
  assert LINUX and not ARM64, "Edge TPU export only supported on non-aarch64 Linux"
102
102
  elif i in {5, 10}: # CoreML and TF.js
103
- assert MACOS or LINUX, "CoreML and TF.js export only supported on macOS and Linux"
104
- assert not IS_RASPBERRYPI, "CoreML and TF.js export not supported on Raspberry Pi"
105
- assert not IS_JETSON, "CoreML and TF.js export not supported on NVIDIA Jetson"
103
+ assert MACOS or (LINUX and not ARM64), (
104
+ "CoreML and TF.js export only supported on macOS and non-aarch64 Linux"
105
+ )
106
106
  if i in {5}: # CoreML
107
107
  assert not IS_PYTHON_3_12, "CoreML not supported on Python 3.12"
108
108
  if i in {6, 7, 8}: # TF SavedModel, TF GraphDef, and TFLite
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ultralytics
3
- Version: 8.3.65
3
+ Version: 8.3.66
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