ultralytics 8.1.32__tar.gz → 8.1.33__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.

Potentially problematic release.


This version of ultralytics might be problematic. Click here for more details.

Files changed (210) hide show
  1. {ultralytics-8.1.32/ultralytics.egg-info → ultralytics-8.1.33}/PKG-INFO +2 -2
  2. {ultralytics-8.1.32 → ultralytics-8.1.33}/pyproject.toml +7 -3
  3. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/__init__.py +1 -1
  4. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/__init__.py +1 -0
  5. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/default.yaml +1 -0
  6. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/augment.py +5 -1
  7. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/dataset.py +1 -0
  8. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/engine/model.py +13 -11
  9. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/engine/tuner.py +1 -0
  10. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/hub/__init__.py +1 -1
  11. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/nn/autobackend.py +2 -5
  12. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/checks.py +3 -3
  13. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/downloads.py +1 -1
  14. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/torch_utils.py +1 -0
  15. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/tuner.py +1 -0
  16. {ultralytics-8.1.32 → ultralytics-8.1.33/ultralytics.egg-info}/PKG-INFO +2 -2
  17. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics.egg-info/requires.txt +1 -1
  18. {ultralytics-8.1.32 → ultralytics-8.1.33}/LICENSE +0 -0
  19. {ultralytics-8.1.32 → ultralytics-8.1.33}/README.md +0 -0
  20. {ultralytics-8.1.32 → ultralytics-8.1.33}/setup.cfg +0 -0
  21. {ultralytics-8.1.32 → ultralytics-8.1.33}/tests/test_cli.py +0 -0
  22. {ultralytics-8.1.32 → ultralytics-8.1.33}/tests/test_cuda.py +0 -0
  23. {ultralytics-8.1.32 → ultralytics-8.1.33}/tests/test_engine.py +0 -0
  24. {ultralytics-8.1.32 → ultralytics-8.1.33}/tests/test_explorer.py +0 -0
  25. {ultralytics-8.1.32 → ultralytics-8.1.33}/tests/test_integrations.py +0 -0
  26. {ultralytics-8.1.32 → ultralytics-8.1.33}/tests/test_python.py +0 -0
  27. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/assets/bus.jpg +0 -0
  28. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/assets/zidane.jpg +0 -0
  29. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  30. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  31. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  32. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  33. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  34. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  35. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  36. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  37. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  38. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  39. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  40. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  41. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  42. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/coco.yaml +0 -0
  43. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  44. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  45. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  46. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  47. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  48. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  49. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  50. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  51. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  52. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  53. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/datasets/xView.yaml +0 -0
  54. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  55. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  56. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  57. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  58. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  59. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  60. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  61. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  62. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  63. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  64. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  65. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  66. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  67. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  68. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  69. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  70. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  71. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  72. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  73. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  74. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  75. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  76. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  77. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  78. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  79. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  80. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  81. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  82. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  83. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  84. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  85. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/__init__.py +0 -0
  86. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/annotator.py +0 -0
  87. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/base.py +0 -0
  88. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/build.py +0 -0
  89. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/converter.py +0 -0
  90. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/explorer/__init__.py +0 -0
  91. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/explorer/explorer.py +0 -0
  92. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/explorer/gui/__init__.py +0 -0
  93. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/explorer/gui/dash.py +0 -0
  94. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/explorer/utils.py +0 -0
  95. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/loaders.py +0 -0
  96. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/split_dota.py +0 -0
  97. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/data/utils.py +0 -0
  98. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/engine/__init__.py +0 -0
  99. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/engine/exporter.py +0 -0
  100. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/engine/predictor.py +0 -0
  101. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/engine/results.py +0 -0
  102. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/engine/trainer.py +0 -0
  103. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/engine/validator.py +0 -0
  104. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/hub/auth.py +0 -0
  105. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/hub/session.py +0 -0
  106. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/hub/utils.py +0 -0
  107. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/__init__.py +0 -0
  108. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/fastsam/__init__.py +0 -0
  109. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/fastsam/model.py +0 -0
  110. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/fastsam/predict.py +0 -0
  111. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/fastsam/prompt.py +0 -0
  112. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/fastsam/utils.py +0 -0
  113. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/fastsam/val.py +0 -0
  114. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/nas/__init__.py +0 -0
  115. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/nas/model.py +0 -0
  116. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/nas/predict.py +0 -0
  117. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/nas/val.py +0 -0
  118. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/rtdetr/__init__.py +0 -0
  119. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/rtdetr/model.py +0 -0
  120. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/rtdetr/predict.py +0 -0
  121. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/rtdetr/train.py +0 -0
  122. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/rtdetr/val.py +0 -0
  123. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/__init__.py +0 -0
  124. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/amg.py +0 -0
  125. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/build.py +0 -0
  126. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/model.py +0 -0
  127. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/modules/__init__.py +0 -0
  128. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/modules/decoders.py +0 -0
  129. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/modules/encoders.py +0 -0
  130. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/modules/sam.py +0 -0
  131. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  132. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/modules/transformer.py +0 -0
  133. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/sam/predict.py +0 -0
  134. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/utils/__init__.py +0 -0
  135. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/utils/loss.py +0 -0
  136. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/utils/ops.py +0 -0
  137. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/__init__.py +0 -0
  138. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/classify/__init__.py +0 -0
  139. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/classify/predict.py +0 -0
  140. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/classify/train.py +0 -0
  141. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/classify/val.py +0 -0
  142. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/detect/__init__.py +0 -0
  143. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/detect/predict.py +0 -0
  144. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/detect/train.py +0 -0
  145. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/detect/val.py +0 -0
  146. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/model.py +0 -0
  147. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/obb/__init__.py +0 -0
  148. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/obb/predict.py +0 -0
  149. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/obb/train.py +0 -0
  150. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/obb/val.py +0 -0
  151. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/pose/__init__.py +0 -0
  152. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/pose/predict.py +0 -0
  153. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/pose/train.py +0 -0
  154. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/pose/val.py +0 -0
  155. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/segment/__init__.py +0 -0
  156. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/segment/predict.py +0 -0
  157. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/segment/train.py +0 -0
  158. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/models/yolo/segment/val.py +0 -0
  159. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/nn/__init__.py +0 -0
  160. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/nn/modules/__init__.py +0 -0
  161. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/nn/modules/block.py +0 -0
  162. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/nn/modules/conv.py +0 -0
  163. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/nn/modules/head.py +0 -0
  164. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/nn/modules/transformer.py +0 -0
  165. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/nn/modules/utils.py +0 -0
  166. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/nn/tasks.py +0 -0
  167. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/solutions/__init__.py +0 -0
  168. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/solutions/ai_gym.py +0 -0
  169. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/solutions/distance_calculation.py +0 -0
  170. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/solutions/heatmap.py +0 -0
  171. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/solutions/object_counter.py +0 -0
  172. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/solutions/speed_estimation.py +0 -0
  173. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/trackers/__init__.py +0 -0
  174. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/trackers/basetrack.py +0 -0
  175. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/trackers/bot_sort.py +0 -0
  176. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/trackers/byte_tracker.py +0 -0
  177. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/trackers/track.py +0 -0
  178. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/trackers/utils/__init__.py +0 -0
  179. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/trackers/utils/gmc.py +0 -0
  180. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  181. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/trackers/utils/matching.py +0 -0
  182. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/__init__.py +0 -0
  183. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/autobatch.py +0 -0
  184. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/benchmarks.py +0 -0
  185. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/__init__.py +0 -0
  186. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/base.py +0 -0
  187. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/clearml.py +0 -0
  188. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/comet.py +0 -0
  189. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/dvc.py +0 -0
  190. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/hub.py +0 -0
  191. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/mlflow.py +0 -0
  192. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/neptune.py +0 -0
  193. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/raytune.py +0 -0
  194. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  195. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/callbacks/wb.py +0 -0
  196. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/dist.py +0 -0
  197. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/errors.py +0 -0
  198. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/files.py +0 -0
  199. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/instance.py +0 -0
  200. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/loss.py +0 -0
  201. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/metrics.py +0 -0
  202. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/ops.py +0 -0
  203. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/patches.py +0 -0
  204. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/plotting.py +0 -0
  205. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/tal.py +0 -0
  206. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics/utils/triton.py +0 -0
  207. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics.egg-info/SOURCES.txt +0 -0
  208. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics.egg-info/dependency_links.txt +0 -0
  209. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics.egg-info/entry_points.txt +0 -0
  210. {ultralytics-8.1.32 → ultralytics-8.1.33}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.32
3
+ Version: 8.1.33
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -71,7 +71,7 @@ Requires-Dist: comet; extra == "logging"
71
71
  Requires-Dist: tensorboard>=2.13.0; extra == "logging"
72
72
  Requires-Dist: dvclive>=2.12.0; extra == "logging"
73
73
  Provides-Extra: extra
74
- Requires-Dist: hub-sdk>=0.0.2; extra == "extra"
74
+ Requires-Dist: hub-sdk>=0.0.5; extra == "extra"
75
75
  Requires-Dist: ipython; extra == "extra"
76
76
  Requires-Dist: albumentations>=1.0.3; extra == "extra"
77
77
  Requires-Dist: pycocotools>=2.0.7; extra == "extra"
@@ -117,7 +117,7 @@ logging = [
117
117
  "dvclive>=2.12.0",
118
118
  ]
119
119
  extra = [
120
- "hub-sdk>=0.0.2", # Ultralytics HUB
120
+ "hub-sdk>=0.0.5", # Ultralytics HUB
121
121
  "ipython", # interactive notebook
122
122
  "albumentations>=1.0.3", # training augmentations
123
123
  "pycocotools>=2.0.7", # COCO mAP
@@ -140,9 +140,13 @@ package-data = { "ultralytics" = ["**/*.yaml"], "ultralytics.assets" = ["*.jpg"]
140
140
  [tool.setuptools.dynamic]
141
141
  version = { attr = "ultralytics.__version__" }
142
142
 
143
- [tool.pytest]
144
- norecursedirs = [".git", "dist", "build"]
143
+ [tool.pytest.ini_options]
145
144
  addopts = "--doctest-modules --durations=30 --color=yes"
145
+ markers = [
146
+ "slow: skip slow tests unless --slow is set",
147
+ ]
148
+ norecursedirs = [".git", "dist", "build"]
149
+
146
150
 
147
151
  [tool.coverage.run]
148
152
  source = ["ultralytics/"]
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.1.32"
3
+ __version__ = "8.1.33"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -112,6 +112,7 @@ CFG_FRACTION_KEYS = {
112
112
  "perspective",
113
113
  "flipud",
114
114
  "fliplr",
115
+ "bgr",
115
116
  "mosaic",
116
117
  "mixup",
117
118
  "copy_paste",
@@ -111,6 +111,7 @@ shear: 0.0 # (float) image shear (+/- deg)
111
111
  perspective: 0.0 # (float) image perspective (+/- fraction), range 0-0.001
112
112
  flipud: 0.0 # (float) image flip up-down (probability)
113
113
  fliplr: 0.5 # (float) image flip left-right (probability)
114
+ bgr: 0.0 # (float) image channel BGR (probability)
114
115
  mosaic: 1.0 # (float) image mosaic (probability)
115
116
  mixup: 0.0 # (float) image mixup (probability)
116
117
  copy_paste: 0.0 # (float) segment copy-paste (probability)
@@ -886,6 +886,7 @@ class Format:
886
886
  mask_ratio (int): Downsample ratio for masks. Default is 4.
887
887
  mask_overlap (bool): Whether to overlap masks. Default is True.
888
888
  batch_idx (bool): Keep batch indexes. Default is True.
889
+ bgr (float): The probability to return BGR images. Default is 0.0.
889
890
  """
890
891
 
891
892
  def __init__(
@@ -898,6 +899,7 @@ class Format:
898
899
  mask_ratio=4,
899
900
  mask_overlap=True,
900
901
  batch_idx=True,
902
+ bgr=0.0,
901
903
  ):
902
904
  """Initializes the Format class with given parameters."""
903
905
  self.bbox_format = bbox_format
@@ -908,6 +910,7 @@ class Format:
908
910
  self.mask_ratio = mask_ratio
909
911
  self.mask_overlap = mask_overlap
910
912
  self.batch_idx = batch_idx # keep the batch indexes
913
+ self.bgr = bgr
911
914
 
912
915
  def __call__(self, labels):
913
916
  """Return formatted image, classes, bounding boxes & keypoints to be used by 'collate_fn'."""
@@ -948,7 +951,8 @@ class Format:
948
951
  """Format the image for YOLO from Numpy array to PyTorch tensor."""
949
952
  if len(img.shape) < 3:
950
953
  img = np.expand_dims(img, -1)
951
- img = np.ascontiguousarray(img.transpose(2, 0, 1)[::-1])
954
+ img = img.transpose(2, 0, 1)
955
+ img = np.ascontiguousarray(img[::-1] if random.uniform(0, 1) > self.bgr else img)
952
956
  img = torch.from_numpy(img)
953
957
  return img
954
958
 
@@ -167,6 +167,7 @@ class YOLODataset(BaseDataset):
167
167
  batch_idx=True,
168
168
  mask_ratio=hyp.mask_ratio,
169
169
  mask_overlap=hyp.overlap_mask,
170
+ bgr=hyp.bgr if self.augment else 0.0, # only affect training.
170
171
  )
171
172
  )
172
173
  return transforms
@@ -119,30 +119,27 @@ class Model(nn.Module):
119
119
  self.metrics = None # validation/training metrics
120
120
  self.session = None # HUB session
121
121
  self.task = task # task type
122
- self.model_name = model = str(model).strip() # strip spaces
122
+ model = str(model).strip()
123
123
 
124
124
  # Check if Ultralytics HUB model from https://hub.ultralytics.com
125
125
  if self.is_hub_model(model):
126
126
  # Fetch model from HUB
127
- checks.check_requirements("hub-sdk>=0.0.5")
127
+ checks.check_requirements("hub-sdk>=0.0.6")
128
128
  self.session = self._get_hub_session(model)
129
129
  model = self.session.model_file
130
130
 
131
131
  # Check if Triton Server model
132
132
  elif self.is_triton_model(model):
133
- self.model = model
133
+ self.model_name = self.model = model
134
134
  self.task = task
135
135
  return
136
136
 
137
137
  # Load or create new YOLO model
138
- model = checks.check_model_file_from_stem(model) # add suffix, i.e. yolov8n -> yolov8n.pt
139
138
  if Path(model).suffix in (".yaml", ".yml"):
140
139
  self._new(model, task=task, verbose=verbose)
141
140
  else:
142
141
  self._load(model, task=task)
143
142
 
144
- self.model_name = model
145
-
146
143
  def __call__(
147
144
  self,
148
145
  source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
@@ -190,8 +187,8 @@ class Model(nn.Module):
190
187
  return any(
191
188
  (
192
189
  model.startswith(f"{HUB_WEB_ROOT}/models/"), # i.e. https://hub.ultralytics.com/models/MODEL_ID
193
- [len(x) for x in model.split("_")] == [42, 20], # APIKEY_MODELID
194
- len(model) == 20 and not Path(model).exists() and all(x not in model for x in "./\\"), # MODELID
190
+ [len(x) for x in model.split("_")] == [42, 20], # APIKEY_MODEL
191
+ len(model) == 20 and not Path(model).exists() and all(x not in model for x in "./\\"), # MODEL
195
192
  )
196
193
  )
197
194
 
@@ -215,6 +212,7 @@ class Model(nn.Module):
215
212
  # Below added to allow export from YAMLs
216
213
  self.model.args = {**DEFAULT_CFG_DICT, **self.overrides} # combine default and model args (prefer model args)
217
214
  self.model.task = self.task
215
+ self.model_name = cfg
218
216
 
219
217
  def _load(self, weights: str, task=None) -> None:
220
218
  """
@@ -224,19 +222,23 @@ class Model(nn.Module):
224
222
  weights (str): model checkpoint to be loaded
225
223
  task (str | None): model task
226
224
  """
227
- suffix = Path(weights).suffix
228
- if suffix == ".pt":
225
+ if weights.lower().startswith(("https://", "http://", "rtsp://", "rtmp://", "tcp://")):
226
+ weights = checks.check_file(weights) # automatically download and return local filename
227
+ weights = checks.check_model_file_from_stem(weights) # add suffix, i.e. yolov8n -> yolov8n.pt
228
+
229
+ if Path(weights).suffix == ".pt":
229
230
  self.model, self.ckpt = attempt_load_one_weight(weights)
230
231
  self.task = self.model.args["task"]
231
232
  self.overrides = self.model.args = self._reset_ckpt_args(self.model.args)
232
233
  self.ckpt_path = self.model.pt_path
233
234
  else:
234
- weights = checks.check_file(weights)
235
+ weights = checks.check_file(weights) # runs in all cases, not redundant with above call
235
236
  self.model, self.ckpt = weights, None
236
237
  self.task = task or guess_model_task(weights)
237
238
  self.ckpt_path = weights
238
239
  self.overrides["model"] = weights
239
240
  self.overrides["task"] = self.task
241
+ self.model_name = weights
240
242
 
241
243
  def _check_is_pytorch_model(self) -> None:
242
244
  """Raises TypeError is model is not a PyTorch model."""
@@ -95,6 +95,7 @@ class Tuner:
95
95
  "perspective": (0.0, 0.001), # image perspective (+/- fraction), range 0-0.001
96
96
  "flipud": (0.0, 1.0), # image flip up-down (probability)
97
97
  "fliplr": (0.0, 1.0), # image flip left-right (probability)
98
+ "bgr": (0.0, 1.0), # image channel bgr (probability)
98
99
  "mosaic": (0.0, 1.0), # image mixup (probability)
99
100
  "mixup": (0.0, 1.0), # image mixup (probability)
100
101
  "copy_paste": (0.0, 1.0), # segment copy-paste (probability)
@@ -23,7 +23,7 @@ def login(api_key: str = None, save=True) -> bool:
23
23
  Returns:
24
24
  (bool): True if authentication is successful, False otherwise.
25
25
  """
26
- checks.check_requirements("hub-sdk>=0.0.2")
26
+ checks.check_requirements("hub-sdk>=0.0.6")
27
27
  from hub_sdk import HUBClient
28
28
 
29
29
  api_key_url = f"{HUB_WEB_ROOT}/settings?tab=api+keys" # set the redirect URL
@@ -202,13 +202,10 @@ class AutoBackend(nn.Module):
202
202
  ov_model = core.read_model(model=str(w), weights=w.with_suffix(".bin"))
203
203
  if ov_model.get_parameters()[0].get_layout().empty:
204
204
  ov_model.get_parameters()[0].set_layout(ov.Layout("NCHW"))
205
- batch_dim = ov.get_batch(ov_model)
206
- if batch_dim.is_static:
207
- batch_size = batch_dim.get_length()
208
205
 
209
206
  # OpenVINO inference modes are 'LATENCY', 'THROUGHPUT' (not recommended), or 'CUMULATIVE_THROUGHPUT'
210
207
  inference_mode = "CUMULATIVE_THROUGHPUT" if batch > 1 else "LATENCY"
211
- LOGGER.info(f"Using OpenVINO {inference_mode} mode for batch-size={batch_size} inference...")
208
+ LOGGER.info(f"Using OpenVINO {inference_mode} mode for batch={batch} inference...")
212
209
  ov_compiled_model = core.compile_model(
213
210
  ov_model,
214
211
  device_name="AUTO", # AUTO selects best available device, do not modify
@@ -606,7 +603,7 @@ class AutoBackend(nn.Module):
606
603
  from ultralytics.engine.exporter import export_formats
607
604
 
608
605
  sf = list(export_formats().Suffix) # export suffixes
609
- if not is_url(p, check=False) and not isinstance(p, str):
606
+ if not is_url(p) and not isinstance(p, str):
610
607
  check_suffix(p, sf) # checks
611
608
  name = Path(p).name
612
609
  types = [s in name for s in sf]
@@ -315,7 +315,7 @@ def check_font(font="Arial.ttf"):
315
315
 
316
316
  # Download to USER_CONFIG_DIR if missing
317
317
  url = f"https://ultralytics.com/assets/{name}"
318
- if downloads.is_url(url):
318
+ if downloads.is_url(url, check=True):
319
319
  downloads.safe_download(url=url, file=file)
320
320
  return file
321
321
 
@@ -498,7 +498,7 @@ def check_file(file, suffix="", download=True, hard=True):
498
498
  raise FileNotFoundError(f"'{file}' does not exist")
499
499
  elif len(files) > 1 and hard:
500
500
  raise FileNotFoundError(f"Multiple files match '{file}', specify exact path: {files}")
501
- return files[0] if len(files) else [] # return file
501
+ return files[0] if len(files) else [] if hard else file # return file
502
502
 
503
503
 
504
504
  def check_yaml(file, suffix=(".yaml", ".yml"), hard=True):
@@ -726,4 +726,4 @@ def cuda_is_available() -> bool:
726
726
 
727
727
 
728
728
  # Define constants
729
- IS_PYTHON_3_12 = check_version(PYTHON_VERSION, "==3.12", name="Python ", hard=False)
729
+ IS_PYTHON_3_12 = PYTHON_VERSION.startswith("3.12")
@@ -33,7 +33,7 @@ GITHUB_ASSETS_NAMES = (
33
33
  GITHUB_ASSETS_STEMS = [Path(k).stem for k in GITHUB_ASSETS_NAMES]
34
34
 
35
35
 
36
- def is_url(url, check=True):
36
+ def is_url(url, check=False):
37
37
  """
38
38
  Validates if the given string is a URL and optionally checks if the URL exists online.
39
39
 
@@ -24,6 +24,7 @@ try:
24
24
  except ImportError:
25
25
  thop = None
26
26
 
27
+ # Version checks (all default to version>=min_version)
27
28
  TORCH_1_9 = check_version(torch.__version__, "1.9.0")
28
29
  TORCH_1_13 = check_version(torch.__version__, "1.13.0")
29
30
  TORCH_2_0 = check_version(torch.__version__, "2.0.0")
@@ -78,6 +78,7 @@ def run_ray_tune(
78
78
  "perspective": tune.uniform(0.0, 0.001), # image perspective (+/- fraction), range 0-0.001
79
79
  "flipud": tune.uniform(0.0, 1.0), # image flip up-down (probability)
80
80
  "fliplr": tune.uniform(0.0, 1.0), # image flip left-right (probability)
81
+ "bgr": tune.uniform(0.0, 1.0), # image channel BGR (probability)
81
82
  "mosaic": tune.uniform(0.0, 1.0), # image mixup (probability)
82
83
  "mixup": tune.uniform(0.0, 1.0), # image mixup (probability)
83
84
  "copy_paste": tune.uniform(0.0, 1.0), # segment copy-paste (probability)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.32
3
+ Version: 8.1.33
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -71,7 +71,7 @@ Requires-Dist: comet; extra == "logging"
71
71
  Requires-Dist: tensorboard>=2.13.0; extra == "logging"
72
72
  Requires-Dist: dvclive>=2.12.0; extra == "logging"
73
73
  Provides-Extra: extra
74
- Requires-Dist: hub-sdk>=0.0.2; extra == "extra"
74
+ Requires-Dist: hub-sdk>=0.0.5; extra == "extra"
75
75
  Requires-Dist: ipython; extra == "extra"
76
76
  Requires-Dist: albumentations>=1.0.3; extra == "extra"
77
77
  Requires-Dist: pycocotools>=2.0.7; extra == "extra"
@@ -43,7 +43,7 @@ tensorflow<=2.13.1
43
43
  tensorflowjs>=3.9.0
44
44
 
45
45
  [extra]
46
- hub-sdk>=0.0.2
46
+ hub-sdk>=0.0.5
47
47
  ipython
48
48
  albumentations>=1.0.3
49
49
  pycocotools>=2.0.7
File without changes
File without changes
File without changes