ultralytics 8.1.43__tar.gz → 8.1.44__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 (217) hide show
  1. {ultralytics-8.1.43/ultralytics.egg-info → ultralytics-8.1.44}/PKG-INFO +1 -1
  2. {ultralytics-8.1.43 → ultralytics-8.1.44}/tests/test_engine.py +2 -1
  3. {ultralytics-8.1.43 → ultralytics-8.1.44}/tests/test_integrations.py +1 -0
  4. {ultralytics-8.1.43 → ultralytics-8.1.44}/tests/test_python.py +3 -3
  5. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/__init__.py +3 -2
  6. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +1 -1
  7. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v9/yolov9c.yaml +1 -1
  8. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +2 -3
  9. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v9/yolov9e.yaml +2 -3
  10. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/__init__.py +3 -8
  11. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/augment.py +2 -2
  12. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/base.py +1 -1
  13. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/build.py +1 -1
  14. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/converter.py +4 -3
  15. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/explorer/explorer.py +6 -5
  16. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/loaders.py +3 -3
  17. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/engine/model.py +2 -1
  18. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/engine/trainer.py +1 -0
  19. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/hub/auth.py +3 -3
  20. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/hub/session.py +3 -3
  21. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/hub/utils.py +6 -6
  22. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/rtdetr/val.py +1 -1
  23. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/modules/tiny_encoder.py +2 -2
  24. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/modules/transformer.py +1 -1
  25. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/predict.py +12 -12
  26. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/detect/val.py +1 -1
  27. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/model.py +1 -1
  28. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/obb/val.py +1 -1
  29. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/world/train_world.py +2 -2
  30. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/nn/modules/head.py +1 -1
  31. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/solutions/object_counter.py +1 -0
  32. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/trackers/utils/kalman_filter.py +4 -4
  33. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/trackers/utils/matching.py +1 -1
  34. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/__init__.py +53 -41
  35. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/hub.py +1 -4
  36. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/mlflow.py +1 -1
  37. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/tensorboard.py +1 -0
  38. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/checks.py +12 -12
  39. {ultralytics-8.1.43 → ultralytics-8.1.44/ultralytics.egg-info}/PKG-INFO +1 -1
  40. {ultralytics-8.1.43 → ultralytics-8.1.44}/LICENSE +0 -0
  41. {ultralytics-8.1.43 → ultralytics-8.1.44}/README.md +0 -0
  42. {ultralytics-8.1.43 → ultralytics-8.1.44}/pyproject.toml +0 -0
  43. {ultralytics-8.1.43 → ultralytics-8.1.44}/setup.cfg +0 -0
  44. {ultralytics-8.1.43 → ultralytics-8.1.44}/tests/test_cli.py +0 -0
  45. {ultralytics-8.1.43 → ultralytics-8.1.44}/tests/test_cuda.py +0 -0
  46. {ultralytics-8.1.43 → ultralytics-8.1.44}/tests/test_explorer.py +0 -0
  47. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/assets/bus.jpg +0 -0
  48. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/assets/zidane.jpg +0 -0
  49. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/__init__.py +0 -0
  50. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  51. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  52. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  53. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  54. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  55. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  56. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  57. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  58. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  59. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  60. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  61. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  62. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  63. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco.yaml +0 -0
  64. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  65. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  66. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  67. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  68. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  69. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  70. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  71. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  72. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  73. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  74. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  75. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/datasets/xView.yaml +0 -0
  76. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/default.yaml +0 -0
  77. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  78. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  79. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  80. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  81. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  82. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  83. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  84. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  85. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  86. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  87. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  88. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  89. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  90. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  91. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  92. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  93. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  94. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  95. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  96. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  97. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  98. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  99. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  100. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  101. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  102. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  103. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  104. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  105. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  106. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/annotator.py +0 -0
  107. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/dataset.py +2 -2
  108. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/explorer/__init__.py +0 -0
  109. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/explorer/gui/__init__.py +0 -0
  110. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/explorer/gui/dash.py +0 -0
  111. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/explorer/utils.py +0 -0
  112. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/split_dota.py +0 -0
  113. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/data/utils.py +1 -1
  114. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/engine/__init__.py +0 -0
  115. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/engine/exporter.py +0 -0
  116. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/engine/predictor.py +0 -0
  117. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/engine/results.py +0 -0
  118. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/engine/tuner.py +0 -0
  119. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/engine/validator.py +0 -0
  120. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/hub/__init__.py +0 -0
  121. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/__init__.py +0 -0
  122. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/fastsam/__init__.py +0 -0
  123. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/fastsam/model.py +0 -0
  124. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/fastsam/predict.py +0 -0
  125. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/fastsam/prompt.py +0 -0
  126. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/fastsam/utils.py +0 -0
  127. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/fastsam/val.py +0 -0
  128. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/nas/__init__.py +0 -0
  129. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/nas/model.py +0 -0
  130. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/nas/predict.py +0 -0
  131. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/nas/val.py +0 -0
  132. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/rtdetr/__init__.py +0 -0
  133. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/rtdetr/model.py +0 -0
  134. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/rtdetr/predict.py +0 -0
  135. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/rtdetr/train.py +0 -0
  136. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/__init__.py +0 -0
  137. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/amg.py +0 -0
  138. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/build.py +0 -0
  139. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/model.py +0 -0
  140. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/modules/__init__.py +0 -0
  141. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/modules/decoders.py +0 -0
  142. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/modules/encoders.py +0 -0
  143. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/sam/modules/sam.py +0 -0
  144. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/utils/__init__.py +0 -0
  145. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/utils/loss.py +0 -0
  146. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/utils/ops.py +0 -0
  147. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/__init__.py +0 -0
  148. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/classify/__init__.py +0 -0
  149. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/classify/predict.py +0 -0
  150. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/classify/train.py +0 -0
  151. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/classify/val.py +0 -0
  152. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/detect/__init__.py +0 -0
  153. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/detect/predict.py +0 -0
  154. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/detect/train.py +0 -0
  155. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/obb/__init__.py +0 -0
  156. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/obb/predict.py +0 -0
  157. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/obb/train.py +0 -0
  158. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/pose/__init__.py +0 -0
  159. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/pose/predict.py +0 -0
  160. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/pose/train.py +0 -0
  161. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/pose/val.py +0 -0
  162. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/segment/__init__.py +0 -0
  163. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/segment/predict.py +0 -0
  164. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/segment/train.py +0 -0
  165. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/segment/val.py +0 -0
  166. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/world/__init__.py +0 -0
  167. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/models/yolo/world/train.py +0 -0
  168. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/nn/__init__.py +0 -0
  169. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/nn/autobackend.py +0 -0
  170. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/nn/modules/__init__.py +8 -8
  171. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/nn/modules/block.py +0 -0
  172. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/nn/modules/conv.py +0 -0
  173. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/nn/modules/transformer.py +0 -0
  174. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/nn/modules/utils.py +0 -0
  175. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/nn/tasks.py +7 -7
  176. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/solutions/__init__.py +0 -0
  177. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/solutions/ai_gym.py +0 -0
  178. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/solutions/distance_calculation.py +0 -0
  179. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/solutions/heatmap.py +0 -0
  180. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/solutions/queue_management.py +0 -0
  181. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/solutions/speed_estimation.py +0 -0
  182. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/trackers/__init__.py +0 -0
  183. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/trackers/basetrack.py +0 -0
  184. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/trackers/bot_sort.py +0 -0
  185. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/trackers/byte_tracker.py +1 -1
  186. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/trackers/track.py +0 -0
  187. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/trackers/utils/__init__.py +0 -0
  188. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/trackers/utils/gmc.py +0 -0
  189. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/autobatch.py +0 -0
  190. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/benchmarks.py +0 -0
  191. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/__init__.py +0 -0
  192. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/base.py +0 -0
  193. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/clearml.py +0 -0
  194. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/comet.py +0 -0
  195. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/dvc.py +0 -0
  196. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/neptune.py +0 -0
  197. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/raytune.py +0 -0
  198. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/callbacks/wb.py +0 -0
  199. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/dist.py +0 -0
  200. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/downloads.py +0 -0
  201. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/errors.py +0 -0
  202. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/files.py +0 -0
  203. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/instance.py +0 -0
  204. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/loss.py +0 -0
  205. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/metrics.py +0 -0
  206. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/ops.py +0 -0
  207. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/patches.py +0 -0
  208. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/plotting.py +0 -0
  209. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/tal.py +0 -0
  210. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/torch_utils.py +1 -1
  211. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/triton.py +0 -0
  212. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics/utils/tuner.py +0 -0
  213. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics.egg-info/SOURCES.txt +0 -0
  214. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics.egg-info/dependency_links.txt +0 -0
  215. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics.egg-info/entry_points.txt +0 -0
  216. {ultralytics-8.1.43 → ultralytics-8.1.44}/ultralytics.egg-info/requires.txt +0 -0
  217. {ultralytics-8.1.43 → ultralytics-8.1.44}/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.43
3
+ Version: 8.1.44
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
@@ -2,6 +2,7 @@
2
2
 
3
3
  import sys
4
4
  from unittest import mock
5
+
5
6
  from ultralytics import YOLO
6
7
  from ultralytics.cfg import get_cfg
7
8
  from ultralytics.engine.exporter import Exporter
@@ -52,7 +53,7 @@ def test_detect():
52
53
  pred.add_callback("on_predict_start", test_func)
53
54
  assert test_func in pred.callbacks["on_predict_start"], "callback test failed"
54
55
  # Confirm there is no issue with sys.argv being empty.
55
- with mock.patch.object(sys, 'argv', []):
56
+ with mock.patch.object(sys, "argv", []):
56
57
  result = pred(source=ASSETS, model=f"{MODEL}.pt")
57
58
  assert len(result), "predictor test failed"
58
59
 
@@ -34,6 +34,7 @@ def test_mlflow():
34
34
  @pytest.mark.skipif(not check_requirements("mlflow", install=False), reason="mlflow not installed")
35
35
  def test_mlflow_keep_run_active():
36
36
  import os
37
+
37
38
  import mlflow
38
39
 
39
40
  """Test training with MLflow tracking enabled."""
@@ -514,7 +514,8 @@ def test_utils_files():
514
514
  @pytest.mark.slow
515
515
  def test_utils_patches_torch_save():
516
516
  """Test torch_save backoff when _torch_save throws RuntimeError."""
517
- from unittest.mock import patch, MagicMock
517
+ from unittest.mock import MagicMock, patch
518
+
518
519
  from ultralytics.utils.patches import torch_save
519
520
 
520
521
  mock = MagicMock(side_effect=RuntimeError)
@@ -651,9 +652,8 @@ def test_yolo_world():
651
652
  from ultralytics.models.yolo.world.train_world import WorldTrainerFromScratch
652
653
 
653
654
  model = YOLO("yolov8s-worldv2.yaml") # no YOLOv8n-world model yet
654
- data = dict(train=dict(yolo_data=["coco8.yaml"]), val=dict(yolo_data=["coco8.yaml"]))
655
655
  model.train(
656
- data=data,
656
+ data={"train": {"yolo_data": ["coco8.yaml"]}, "val": {"yolo_data": ["coco8.yaml"]}},
657
657
  epochs=2,
658
658
  imgsz=32,
659
659
  cache="disk",
@@ -1,15 +1,16 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.1.43"
3
+ __version__ = "8.1.44"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
7
7
  from ultralytics.models.fastsam import FastSAM
8
8
  from ultralytics.models.nas import NAS
9
- from ultralytics.utils import ASSETS, SETTINGS as settings
9
+ from ultralytics.utils import ASSETS, SETTINGS
10
10
  from ultralytics.utils.checks import check_yolo as checks
11
11
  from ultralytics.utils.downloads import download
12
12
 
13
+ settings = SETTINGS
13
14
  __all__ = (
14
15
  "__version__",
15
16
  "ASSETS",
@@ -35,4 +35,4 @@ head:
35
35
  - [[-1, 9], 1, Concat, [1]] # cat head P5
36
36
  - [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 21 (P5/32-large)
37
37
 
38
- - [[15, 18, 21], 1, Segment, [nc, 32, 256]] # Segment(P3, P4, P5)
38
+ - [[15, 18, 21], 1, Segment, [nc, 32, 256]] # Segment(P3, P4, P5)
@@ -35,4 +35,4 @@ head:
35
35
  - [[-1, 9], 1, Concat, [1]] # cat head P5
36
36
  - [-1, 1, RepNCSPELAN4, [512, 512, 256, 1]] # 21 (P5/32-large)
37
37
 
38
- - [[15, 18, 21], 1, Detect, [nc]] # DDetect(P3, P4, P5)
38
+ - [[15, 18, 21], 1, Detect, [nc]] # Detect(P3, P4, P5)
@@ -17,13 +17,13 @@ backbone:
17
17
  - [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
18
18
  - [-1, 1, ADown, [1024]] # 8-P5/32
19
19
  - [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
20
-
20
+
21
21
  - [1, 1, CBLinear, [[64]]] # 10
22
22
  - [3, 1, CBLinear, [[64, 128]]] # 11
23
23
  - [5, 1, CBLinear, [[64, 128, 256]]] # 12
24
24
  - [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
25
25
  - [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
26
-
26
+
27
27
  - [0, 1, Conv, [64, 3, 2]] # 15-P1/2
28
28
  - [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
29
29
  - [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
@@ -58,5 +58,4 @@ head:
58
58
  - [[-1, 29], 1, Concat, [1]] # cat head P5
59
59
  - [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
60
60
 
61
- # segment
62
61
  - [[35, 38, 41], 1, Segment, [nc, 32, 256]] # Segment (P3, P4, P5)
@@ -17,13 +17,13 @@ backbone:
17
17
  - [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 7
18
18
  - [-1, 1, ADown, [1024]] # 8-P5/32
19
19
  - [-1, 1, RepNCSPELAN4, [1024, 512, 256, 2]] # 9
20
-
20
+
21
21
  - [1, 1, CBLinear, [[64]]] # 10
22
22
  - [3, 1, CBLinear, [[64, 128]]] # 11
23
23
  - [5, 1, CBLinear, [[64, 128, 256]]] # 12
24
24
  - [7, 1, CBLinear, [[64, 128, 256, 512]]] # 13
25
25
  - [9, 1, CBLinear, [[64, 128, 256, 512, 1024]]] # 14
26
-
26
+
27
27
  - [0, 1, Conv, [64, 3, 2]] # 15-P1/2
28
28
  - [[10, 11, 12, 13, 14, -1], 1, CBFuse, [[0, 0, 0, 0, 0]]] # 16
29
29
  - [-1, 1, Conv, [128, 3, 2]] # 17-P2/4
@@ -58,5 +58,4 @@ head:
58
58
  - [[-1, 29], 1, Concat, [1]] # cat head P5
59
59
  - [-1, 1, RepNCSPELAN4, [512, 1024, 512, 2]] # 41 (P5/32-large)
60
60
 
61
- # detect
62
61
  - [[35, 38, 41], 1, Detect, [nc]] # Detect(P3, P4, P5)
@@ -1,19 +1,14 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
3
  from .base import BaseDataset
4
- from .build import (
5
- build_dataloader,
6
- build_yolo_dataset,
7
- build_grounding,
8
- load_inference_source,
9
- )
4
+ from .build import build_dataloader, build_grounding, build_yolo_dataset, load_inference_source
10
5
  from .dataset import (
11
6
  ClassificationDataset,
7
+ GroundingDataset,
12
8
  SemanticDataset,
9
+ YOLOConcatDataset,
13
10
  YOLODataset,
14
11
  YOLOMultiModalDataset,
15
- GroundingDataset,
16
- YOLOConcatDataset,
17
12
  )
18
13
 
19
14
  __all__ = (
@@ -20,7 +20,7 @@ from .utils import polygons2masks, polygons2masks_overlap
20
20
 
21
21
  DEFAULT_MEAN = (0.0, 0.0, 0.0)
22
22
  DEFAULT_STD = (1.0, 1.0, 1.0)
23
- DEFAULT_CROP_FTACTION = 1.0
23
+ DEFAULT_CROP_FRACTION = 1.0
24
24
 
25
25
 
26
26
  # TODO: we might need a BaseTransform to make all these augments be compatible with both classification and semantic
@@ -1134,7 +1134,7 @@ def classify_transforms(
1134
1134
  mean=DEFAULT_MEAN,
1135
1135
  std=DEFAULT_STD,
1136
1136
  interpolation=Image.BILINEAR,
1137
- crop_fraction: float = DEFAULT_CROP_FTACTION,
1137
+ crop_fraction: float = DEFAULT_CROP_FRACTION,
1138
1138
  ):
1139
1139
  """
1140
1140
  Classification transforms for evaluation/inference. Inspired by timm/data/transforms_factory.py.
@@ -15,7 +15,7 @@ import psutil
15
15
  from torch.utils.data import Dataset
16
16
 
17
17
  from ultralytics.utils import DEFAULT_CFG, LOCAL_RANK, LOGGER, NUM_THREADS, TQDM
18
- from .utils import HELP_URL, FORMATS_HELP_MSG, IMG_FORMATS
18
+ from .utils import FORMATS_HELP_MSG, HELP_URL, IMG_FORMATS
19
19
 
20
20
 
21
21
  class BaseDataset(Dataset):
@@ -22,7 +22,7 @@ from ultralytics.data.loaders import (
22
22
  from ultralytics.data.utils import IMG_FORMATS, VID_FORMATS
23
23
  from ultralytics.utils import RANK, colorstr
24
24
  from ultralytics.utils.checks import check_file
25
- from .dataset import YOLODataset, YOLOMultiModalDataset, GroundingDataset
25
+ from .dataset import GroundingDataset, YOLODataset, YOLOMultiModalDataset
26
26
  from .utils import PIN_MEMORY
27
27
 
28
28
 
@@ -519,11 +519,12 @@ def yolo_bbox2segment(im_dir, save_dir=None, sam_model="sam_b.pt"):
519
519
  ├─ ..
520
520
  └─ NNN.txt
521
521
  """
522
+ from tqdm import tqdm
523
+
524
+ from ultralytics import SAM
522
525
  from ultralytics.data import YOLODataset
523
- from ultralytics.utils.ops import xywh2xyxy
524
526
  from ultralytics.utils import LOGGER
525
- from ultralytics import SAM
526
- from tqdm import tqdm
527
+ from ultralytics.utils.ops import xywh2xyxy
527
528
 
528
529
  # NOTE: add placeholder to pass class index check
529
530
  dataset = YOLODataset(im_dir, data=dict(names=list(range(1000))))
@@ -15,7 +15,7 @@ from ultralytics.data.augment import Format
15
15
  from ultralytics.data.dataset import YOLODataset
16
16
  from ultralytics.data.utils import check_det_dataset
17
17
  from ultralytics.models.yolo.model import YOLO
18
- from ultralytics.utils import LOGGER, IterableSimpleNamespace, checks, USER_CONFIG_DIR
18
+ from ultralytics.utils import LOGGER, USER_CONFIG_DIR, IterableSimpleNamespace, checks
19
19
  from .utils import get_sim_index_schema, get_table_schema, plot_query_result, prompt_sql_query, sanitize_batch
20
20
 
21
21
 
@@ -203,7 +203,8 @@ class Explorer:
203
203
  table = self.table.to_arrow() # noqa NOTE: Don't comment this. This line is used by DuckDB
204
204
  if not query.startswith("SELECT") and not query.startswith("WHERE"):
205
205
  raise ValueError(
206
- f"Query must start with SELECT or WHERE. You can either pass the entire query or just the WHERE clause. found {query}"
206
+ f"Query must start with SELECT or WHERE. You can either pass the entire query or just the WHERE "
207
+ f"clause. found {query}"
207
208
  )
208
209
  if query.startswith("WHERE"):
209
210
  query = f"SELECT * FROM 'table' {query}"
@@ -318,13 +319,13 @@ class Explorer:
318
319
 
319
320
  Args:
320
321
  max_dist (float): maximum L2 distance between the embeddings to consider. Defaults to 0.2.
321
- top_k (float): Percentage of the closest data points to consider when counting. Used to apply limit when running
322
+ top_k (float): Percentage of the closest data points to consider when counting. Used to apply limit.
322
323
  vector search. Defaults: None.
323
324
  force (bool): Whether to overwrite the existing similarity index or not. Defaults to True.
324
325
 
325
326
  Returns:
326
- (pandas.DataFrame): A dataframe containing the similarity index. Each row corresponds to an image, and columns
327
- include indices of similar images and their respective distances.
327
+ (pandas.DataFrame): A dataframe containing the similarity index. Each row corresponds to an image,
328
+ and columns include indices of similar images and their respective distances.
328
329
 
329
330
  Example:
330
331
  ```python
@@ -15,8 +15,8 @@ import requests
15
15
  import torch
16
16
  from PIL import Image
17
17
 
18
- from ultralytics.data.utils import IMG_FORMATS, VID_FORMATS, FORMATS_HELP_MSG
19
- from ultralytics.utils import LOGGER, is_colab, is_kaggle, ops
18
+ from ultralytics.data.utils import FORMATS_HELP_MSG, IMG_FORMATS, VID_FORMATS
19
+ from ultralytics.utils import IS_COLAB, IS_KAGGLE, LOGGER, ops
20
20
  from ultralytics.utils.checks import check_requirements
21
21
 
22
22
 
@@ -87,7 +87,7 @@ class LoadStreams:
87
87
  # YouTube format i.e. 'https://www.youtube.com/watch?v=Zgi9g1ksQHc' or 'https://youtu.be/LNwODJXcvt4'
88
88
  s = get_best_youtube_url(s)
89
89
  s = eval(s) if s.isnumeric() else s # i.e. s = '0' local webcam
90
- if s == 0 and (is_colab() or is_kaggle()):
90
+ if s == 0 and (IS_COLAB or IS_KAGGLE):
91
91
  raise NotImplementedError(
92
92
  "'source=0' webcam not supported in Colab and Kaggle notebooks. "
93
93
  "Try running 'source=0' in a local environment."
@@ -321,9 +321,10 @@ class Model(nn.Module):
321
321
  AssertionError: If the model is not a PyTorch model.
322
322
  """
323
323
  self._check_is_pytorch_model()
324
- from ultralytics import __version__
325
324
  from datetime import datetime
326
325
 
326
+ from ultralytics import __version__
327
+
327
328
  updates = {
328
329
  "date": datetime.now().isoformat(),
329
330
  "version": __version__,
@@ -464,6 +464,7 @@ class BaseTrainer:
464
464
  def save_model(self):
465
465
  """Save model training checkpoints with additional metadata."""
466
466
  import io
467
+
467
468
  import pandas as pd # scope for faster 'import ultralytics'
468
469
 
469
470
  # Serialize ckpt to a byte buffer once (faster than repeated torch.save() calls)
@@ -3,7 +3,7 @@
3
3
  import requests
4
4
 
5
5
  from ultralytics.hub.utils import HUB_API_ROOT, HUB_WEB_ROOT, PREFIX, request_with_credentials
6
- from ultralytics.utils import LOGGER, SETTINGS, emojis, is_colab
6
+ from ultralytics.utils import IS_COLAB, LOGGER, SETTINGS, emojis
7
7
 
8
8
  API_KEY_URL = f"{HUB_WEB_ROOT}/settings?tab=api+keys"
9
9
 
@@ -50,7 +50,7 @@ class Auth:
50
50
  # Attempt to authenticate with the provided API key
51
51
  success = self.authenticate()
52
52
  # If the API key is not provided and the environment is a Google Colab notebook
53
- elif is_colab():
53
+ elif IS_COLAB:
54
54
  # Attempt to authenticate using browser cookies
55
55
  success = self.auth_with_cookies()
56
56
  else:
@@ -109,7 +109,7 @@ class Auth:
109
109
  Returns:
110
110
  (bool): True if authentication is successful, False otherwise.
111
111
  """
112
- if not is_colab():
112
+ if not IS_COLAB:
113
113
  return False # Currently only works with Colab
114
114
  try:
115
115
  authn = request_with_credentials(f"{HUB_API_ROOT}/v1/auth/auto")
@@ -7,11 +7,11 @@ from pathlib import Path
7
7
 
8
8
  import requests
9
9
 
10
- from ultralytics.hub.utils import HUB_WEB_ROOT, HELP_MSG, PREFIX, TQDM
11
- from ultralytics.utils import LOGGER, SETTINGS, __version__, checks, emojis, is_colab
10
+ from ultralytics.hub.utils import HELP_MSG, HUB_WEB_ROOT, PREFIX, TQDM
11
+ from ultralytics.utils import IS_COLAB, LOGGER, SETTINGS, __version__, checks, emojis
12
12
  from ultralytics.utils.errors import HUBModelError
13
13
 
14
- AGENT_NAME = f"python-{__version__}-colab" if is_colab() else f"python-{__version__}-local"
14
+ AGENT_NAME = f"python-{__version__}-colab" if IS_COLAB else f"python-{__version__}-local"
15
15
 
16
16
 
17
17
  class HUBTrainingSession:
@@ -12,6 +12,9 @@ import requests
12
12
  from ultralytics.utils import (
13
13
  ARGV,
14
14
  ENVIRONMENT,
15
+ IS_COLAB,
16
+ IS_GIT_DIR,
17
+ IS_PIP_PACKAGE,
15
18
  LOGGER,
16
19
  ONLINE,
17
20
  RANK,
@@ -22,9 +25,6 @@ from ultralytics.utils import (
22
25
  __version__,
23
26
  colorstr,
24
27
  get_git_origin_url,
25
- is_colab,
26
- is_git_dir,
27
- is_pip_package,
28
28
  )
29
29
  from ultralytics.utils.downloads import GITHUB_ASSETS_NAMES
30
30
 
@@ -48,7 +48,7 @@ def request_with_credentials(url: str) -> any:
48
48
  Raises:
49
49
  OSError: If the function is not run in a Google Colab environment.
50
50
  """
51
- if not is_colab():
51
+ if not IS_COLAB:
52
52
  raise OSError("request_with_credentials() must run in a Colab environment")
53
53
  from google.colab import output # noqa
54
54
  from IPython import display # noqa
@@ -189,7 +189,7 @@ class Events:
189
189
  self.t = 0.0 # rate limit timer (seconds)
190
190
  self.metadata = {
191
191
  "cli": Path(ARGV[0]).name == "yolo",
192
- "install": "git" if is_git_dir() else "pip" if is_pip_package() else "other",
192
+ "install": "git" if IS_GIT_DIR else "pip" if IS_PIP_PACKAGE else "other",
193
193
  "python": ".".join(platform.python_version_tuple()[:2]), # i.e. 3.10
194
194
  "version": __version__,
195
195
  "env": ENVIRONMENT,
@@ -201,7 +201,7 @@ class Events:
201
201
  and RANK in {-1, 0}
202
202
  and not TESTS_RUNNING
203
203
  and ONLINE
204
- and (is_pip_package() or get_git_origin_url() == "https://github.com/ultralytics/ultralytics.git")
204
+ and (IS_PIP_PACKAGE or get_git_origin_url() == "https://github.com/ultralytics/ultralytics.git")
205
205
  )
206
206
 
207
207
  def __call__(self, cfg):
@@ -125,7 +125,7 @@ class RTDETRValidator(DetectionValidator):
125
125
  bbox = ops.xywh2xyxy(bbox) # target boxes
126
126
  bbox[..., [0, 2]] *= ori_shape[1] # native-space pred
127
127
  bbox[..., [1, 3]] *= ori_shape[0] # native-space pred
128
- return dict(cls=cls, bbox=bbox, ori_shape=ori_shape, imgsz=imgsz, ratio_pad=ratio_pad)
128
+ return {"cls": cls, "bbox": bbox, "ori_shape": ori_shape, "imgsz": imgsz, "ratio_pad": ratio_pad}
129
129
 
130
130
  def _prepare_pred(self, pred, pbatch):
131
131
  """Prepares and returns a batch with transformed bounding boxes and class labels."""
@@ -584,9 +584,9 @@ class TinyViT(nn.Module):
584
584
  img_size (int, optional): The input image size. Defaults to 224.
585
585
  in_chans (int, optional): Number of input channels. Defaults to 3.
586
586
  num_classes (int, optional): Number of classification classes. Defaults to 1000.
587
- embed_dims (List[int], optional): List of embedding dimensions for each layer. Defaults to [96, 192, 384, 768].
587
+ embed_dims (List[int], optional): List of embedding dimensions per layer. Defaults to [96, 192, 384, 768].
588
588
  depths (List[int], optional): List of depths for each layer. Defaults to [2, 2, 6, 2].
589
- num_heads (List[int], optional): List of number of attention heads for each layer. Defaults to [3, 6, 12, 24].
589
+ num_heads (List[int], optional): List of number of attention heads per layer. Defaults to [3, 6, 12, 24].
590
590
  window_sizes (List[int], optional): List of window sizes for each layer. Defaults to [7, 7, 14, 7].
591
591
  mlp_ratio (float, optional): Ratio of MLP hidden dimension to embedding dimension. Defaults to 4.
592
592
  drop_rate (float, optional): Dropout rate. Defaults to 0.
@@ -222,7 +222,7 @@ class Attention(nn.Module):
222
222
  downsample_rate (int, optional): The factor by which the internal dimensions are downsampled. Defaults to 1.
223
223
 
224
224
  Raises:
225
- AssertionError: If 'num_heads' does not evenly divide the internal dimension (embedding_dim / downsample_rate).
225
+ AssertionError: If 'num_heads' does not evenly divide the internal dim (embedding_dim / downsample_rate).
226
226
  """
227
227
  super().__init__()
228
228
  self.embedding_dim = embedding_dim
@@ -127,10 +127,10 @@ class Predictor(BasePredictor):
127
127
  Args:
128
128
  im (torch.Tensor): The preprocessed input image in tensor format, with shape (N, C, H, W).
129
129
  bboxes (np.ndarray | List, optional): Bounding boxes with shape (N, 4), in XYXY format.
130
- points (np.ndarray | List, optional): Points indicating object locations with shape (N, 2), in pixel coordinates.
131
- labels (np.ndarray | List, optional): Labels for point prompts, shape (N, ). 1 for foreground and 0 for background.
132
- masks (np.ndarray, optional): Low-resolution masks from previous predictions. Shape should be (N, H, W). For SAM, H=W=256.
133
- multimask_output (bool, optional): Flag to return multiple masks. Helpful for ambiguous prompts. Defaults to False.
130
+ points (np.ndarray | List, optional): Points indicating object locations with shape (N, 2), in pixels.
131
+ labels (np.ndarray | List, optional): Labels for point prompts, shape (N, ). 1 = foreground, 0 = background.
132
+ masks (np.ndarray, optional): Low-resolution masks from previous predictions shape (N,H,W). For SAM H=W=256.
133
+ multimask_output (bool, optional): Flag to return multiple masks. Helpful for ambiguous prompts.
134
134
 
135
135
  Returns:
136
136
  (tuple): Contains the following three elements.
@@ -156,10 +156,10 @@ class Predictor(BasePredictor):
156
156
  Args:
157
157
  im (torch.Tensor): The preprocessed input image in tensor format, with shape (N, C, H, W).
158
158
  bboxes (np.ndarray | List, optional): Bounding boxes with shape (N, 4), in XYXY format.
159
- points (np.ndarray | List, optional): Points indicating object locations with shape (N, 2), in pixel coordinates.
160
- labels (np.ndarray | List, optional): Labels for point prompts, shape (N, ). 1 for foreground and 0 for background.
161
- masks (np.ndarray, optional): Low-resolution masks from previous predictions. Shape should be (N, H, W). For SAM, H=W=256.
162
- multimask_output (bool, optional): Flag to return multiple masks. Helpful for ambiguous prompts. Defaults to False.
159
+ points (np.ndarray | List, optional): Points indicating object locations with shape (N, 2), in pixels.
160
+ labels (np.ndarray | List, optional): Labels for point prompts, shape (N, ). 1 = foreground, 0 = background.
161
+ masks (np.ndarray, optional): Low-resolution masks from previous predictions shape (N,H,W). For SAM H=W=256.
162
+ multimask_output (bool, optional): Flag to return multiple masks. Helpful for ambiguous prompts.
163
163
 
164
164
  Returns:
165
165
  (tuple): Contains the following three elements.
@@ -230,7 +230,7 @@ class Predictor(BasePredictor):
230
230
  im (torch.Tensor): Input tensor representing the preprocessed image with dimensions (N, C, H, W).
231
231
  crop_n_layers (int): Specifies the number of layers for additional mask predictions on image crops.
232
232
  Each layer produces 2**i_layer number of image crops.
233
- crop_overlap_ratio (float): Determines the extent of overlap between crops. Scaled down in subsequent layers.
233
+ crop_overlap_ratio (float): Determines the overlap between crops. Scaled down in subsequent layers.
234
234
  crop_downscale_factor (int): Scaling factor for the number of sampled points-per-side in each layer.
235
235
  point_grids (list[np.ndarray], optional): Custom grids for point sampling normalized to [0,1].
236
236
  Used in the nth crop layer.
@@ -240,7 +240,7 @@ class Predictor(BasePredictor):
240
240
  conf_thres (float): Confidence threshold [0,1] for filtering based on the model's mask quality prediction.
241
241
  stability_score_thresh (float): Stability threshold [0,1] for mask filtering based on mask stability.
242
242
  stability_score_offset (float): Offset value for calculating stability score.
243
- crop_nms_thresh (float): IoU cutoff for Non-Maximum Suppression (NMS) to remove duplicate masks between crops.
243
+ crop_nms_thresh (float): IoU cutoff for NMS to remove duplicate masks between crops.
244
244
 
245
245
  Returns:
246
246
  (tuple): A tuple containing segmented masks, confidence scores, and bounding boxes.
@@ -351,8 +351,8 @@ class Predictor(BasePredictor):
351
351
  """
352
352
  Post-processes SAM's inference outputs to generate object detection masks and bounding boxes.
353
353
 
354
- The method scales masks and boxes to the original image size and applies a threshold to the mask predictions. The
355
- SAM model uses advanced architecture and promptable segmentation tasks to achieve real-time performance.
354
+ The method scales masks and boxes to the original image size and applies a threshold to the mask predictions.
355
+ The SAM model uses advanced architecture and promptable segmentation tasks to achieve real-time performance.
356
356
 
357
357
  Args:
358
358
  preds (tuple): The output from SAM model inference, containing masks, scores, and optional bounding boxes.
@@ -106,7 +106,7 @@ class DetectionValidator(BaseValidator):
106
106
  if len(cls):
107
107
  bbox = ops.xywh2xyxy(bbox) * torch.tensor(imgsz, device=self.device)[[1, 0, 1, 0]] # target boxes
108
108
  ops.scale_boxes(imgsz, bbox, ori_shape, ratio_pad=ratio_pad) # native-space labels
109
- return dict(cls=cls, bbox=bbox, ori_shape=ori_shape, imgsz=imgsz, ratio_pad=ratio_pad)
109
+ return {"cls": cls, "bbox": bbox, "ori_shape": ori_shape, "imgsz": imgsz, "ratio_pad": ratio_pad}
110
110
 
111
111
  def _prepare_pred(self, pred, pbatch):
112
112
  """Prepares a batch of images and annotations for validation."""
@@ -5,7 +5,7 @@ from pathlib import Path
5
5
  from ultralytics.engine.model import Model
6
6
  from ultralytics.models import yolo
7
7
  from ultralytics.nn.tasks import ClassificationModel, DetectionModel, OBBModel, PoseModel, SegmentationModel, WorldModel
8
- from ultralytics.utils import yaml_load, ROOT
8
+ from ultralytics.utils import ROOT, yaml_load
9
9
 
10
10
 
11
11
  class YOLO(Model):
@@ -78,7 +78,7 @@ class OBBValidator(DetectionValidator):
78
78
  if len(cls):
79
79
  bbox[..., :4].mul_(torch.tensor(imgsz, device=self.device)[[1, 0, 1, 0]]) # target boxes
80
80
  ops.scale_boxes(imgsz, bbox, ori_shape, ratio_pad=ratio_pad, xywh=True) # native-space labels
81
- return dict(cls=cls, bbox=bbox, ori_shape=ori_shape, imgsz=imgsz, ratio_pad=ratio_pad)
81
+ return {"cls": cls, "bbox": bbox, "ori_shape": ori_shape, "imgsz": imgsz, "ratio_pad": ratio_pad}
82
82
 
83
83
  def _prepare_pred(self, pred, pbatch):
84
84
  """Prepares and returns a batch for OBB validation with scaled and padded bounding boxes."""
@@ -1,8 +1,8 @@
1
- from ultralytics.data import build_yolo_dataset, build_grounding, YOLOConcatDataset
1
+ from ultralytics.data import YOLOConcatDataset, build_grounding, build_yolo_dataset
2
2
  from ultralytics.data.utils import check_det_dataset
3
3
  from ultralytics.models.yolo.world import WorldTrainer
4
- from ultralytics.utils.torch_utils import de_parallel
5
4
  from ultralytics.utils import DEFAULT_CFG
5
+ from ultralytics.utils.torch_utils import de_parallel
6
6
 
7
7
 
8
8
  class WorldTrainerFromScratch(WorldTrainer):
@@ -8,7 +8,7 @@ import torch.nn as nn
8
8
  from torch.nn.init import constant_, xavier_uniform_
9
9
 
10
10
  from ultralytics.utils.tal import TORCH_1_10, dist2bbox, dist2rbox, make_anchors
11
- from .block import DFL, Proto, ContrastiveHead, BNContrastiveHead
11
+ from .block import DFL, BNContrastiveHead, ContrastiveHead, Proto
12
12
  from .conv import Conv
13
13
  from .transformer import MLP, DeformableTransformerDecoder, DeformableTransformerDecoderLayer
14
14
  from .utils import bias_init_with_prob, linear_init
@@ -1,6 +1,7 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
3
  from collections import defaultdict
4
+
4
5
  import cv2
5
6
 
6
7
  from ultralytics.utils.checks import check_imshow, check_requirements
@@ -39,8 +39,8 @@ class KalmanFilterXYAH:
39
39
  and height h.
40
40
 
41
41
  Returns:
42
- (tuple[ndarray, ndarray]): Returns the mean vector (8 dimensional) and covariance matrix (8x8 dimensional) of
43
- the new track. Unobserved velocities are initialized to 0 mean.
42
+ (tuple[ndarray, ndarray]): Returns the mean vector (8 dimensional) and covariance matrix (8x8 dimensional)
43
+ of the new track. Unobserved velocities are initialized to 0 mean.
44
44
  """
45
45
  mean_pos = measurement
46
46
  mean_vel = np.zeros_like(mean_pos)
@@ -235,8 +235,8 @@ class KalmanFilterXYWH(KalmanFilterXYAH):
235
235
  measurement (ndarray): Bounding box coordinates (x, y, w, h) with center position (x, y), width, and height.
236
236
 
237
237
  Returns:
238
- (tuple[ndarray, ndarray]): Returns the mean vector (8 dimensional) and covariance matrix (8x8 dimensional) of
239
- the new track. Unobserved velocities are initialized to 0 mean.
238
+ (tuple[ndarray, ndarray]): Returns the mean vector (8 dimensional) and covariance matrix (8x8 dimensional)
239
+ of the new track. Unobserved velocities are initialized to 0 mean.
240
240
  """
241
241
  mean_pos = measurement
242
242
  mean_vel = np.zeros_like(mean_pos)
@@ -4,7 +4,7 @@ import numpy as np
4
4
  import scipy
5
5
  from scipy.spatial.distance import cdist
6
6
 
7
- from ultralytics.utils.metrics import bbox_ioa, batch_probiou
7
+ from ultralytics.utils.metrics import batch_probiou, bbox_ioa
8
8
 
9
9
  try:
10
10
  import lap # for linear_assignment