ultralytics 8.2.62__tar.gz → 8.2.63__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 (236) hide show
  1. {ultralytics-8.2.62/ultralytics.egg-info → ultralytics-8.2.63}/PKG-INFO +1 -1
  2. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/__init__.py +1 -1
  3. ultralytics-8.2.63/ultralytics/models/fastsam/predict.py +31 -0
  4. ultralytics-8.2.63/ultralytics/models/fastsam/utils.py +25 -0
  5. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/classify/predict.py +1 -3
  6. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/detect/predict.py +1 -3
  7. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/pose/predict.py +1 -3
  8. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/segment/predict.py +1 -3
  9. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/downloads.py +1 -1
  10. {ultralytics-8.2.62 → ultralytics-8.2.63/ultralytics.egg-info}/PKG-INFO +1 -1
  11. ultralytics-8.2.62/ultralytics/models/fastsam/predict.py +0 -84
  12. ultralytics-8.2.62/ultralytics/models/fastsam/utils.py +0 -67
  13. {ultralytics-8.2.62 → ultralytics-8.2.63}/LICENSE +0 -0
  14. {ultralytics-8.2.62 → ultralytics-8.2.63}/README.md +0 -0
  15. {ultralytics-8.2.62 → ultralytics-8.2.63}/pyproject.toml +0 -0
  16. {ultralytics-8.2.62 → ultralytics-8.2.63}/setup.cfg +0 -0
  17. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/__init__.py +0 -0
  18. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/conftest.py +0 -0
  19. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/test_cli.py +0 -0
  20. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/test_cuda.py +0 -0
  21. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/test_engine.py +0 -0
  22. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/test_explorer.py +0 -0
  23. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/test_exports.py +0 -0
  24. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/test_integrations.py +0 -0
  25. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/test_python.py +0 -0
  26. {ultralytics-8.2.62 → ultralytics-8.2.63}/tests/test_solutions.py +0 -0
  27. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/assets/bus.jpg +0 -0
  28. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/assets/zidane.jpg +0 -0
  29. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/__init__.py +0 -0
  30. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  31. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  32. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  33. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  34. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  35. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  36. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  37. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  38. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  39. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  40. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  41. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  42. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  43. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/coco.yaml +0 -0
  44. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  45. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  46. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  47. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  48. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  49. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  50. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  51. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  52. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  53. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  54. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/signature.yaml +0 -0
  55. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  56. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/datasets/xView.yaml +0 -0
  57. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/default.yaml +0 -0
  58. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  59. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  60. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  61. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  62. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  63. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  64. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  65. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  66. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  67. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  68. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  69. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  70. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  71. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  72. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  73. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  74. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  75. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  76. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  77. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  78. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  79. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  80. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  81. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  82. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  83. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  84. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  85. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  86. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  87. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  88. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  89. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  90. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  91. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  92. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  93. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  94. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  95. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  96. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  97. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  98. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  99. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  100. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/__init__.py +0 -0
  101. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/annotator.py +0 -0
  102. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/augment.py +0 -0
  103. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/base.py +0 -0
  104. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/build.py +0 -0
  105. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/converter.py +0 -0
  106. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/dataset.py +0 -0
  107. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/explorer/__init__.py +0 -0
  108. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/explorer/explorer.py +0 -0
  109. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/explorer/gui/__init__.py +0 -0
  110. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/explorer/gui/dash.py +0 -0
  111. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/explorer/utils.py +0 -0
  112. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/loaders.py +0 -0
  113. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/split_dota.py +0 -0
  114. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/data/utils.py +0 -0
  115. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/engine/__init__.py +0 -0
  116. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/engine/exporter.py +0 -0
  117. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/engine/model.py +0 -0
  118. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/engine/predictor.py +0 -0
  119. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/engine/results.py +0 -0
  120. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/engine/trainer.py +0 -0
  121. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/engine/tuner.py +0 -0
  122. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/engine/validator.py +0 -0
  123. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/hub/__init__.py +0 -0
  124. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/hub/auth.py +0 -0
  125. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/hub/session.py +0 -0
  126. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/hub/utils.py +0 -0
  127. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/__init__.py +0 -0
  128. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/fastsam/__init__.py +0 -0
  129. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/fastsam/model.py +0 -0
  130. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/fastsam/prompt.py +0 -0
  131. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/fastsam/val.py +0 -0
  132. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/nas/__init__.py +0 -0
  133. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/nas/model.py +0 -0
  134. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/nas/predict.py +0 -0
  135. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/nas/val.py +0 -0
  136. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/rtdetr/__init__.py +0 -0
  137. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/rtdetr/model.py +0 -0
  138. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/rtdetr/predict.py +0 -0
  139. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/rtdetr/train.py +0 -0
  140. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/rtdetr/val.py +0 -0
  141. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/__init__.py +0 -0
  142. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/amg.py +0 -0
  143. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/build.py +0 -0
  144. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/model.py +0 -0
  145. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/modules/__init__.py +0 -0
  146. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/modules/decoders.py +0 -0
  147. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/modules/encoders.py +0 -0
  148. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/modules/sam.py +0 -0
  149. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  150. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/modules/transformer.py +0 -0
  151. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/sam/predict.py +0 -0
  152. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/utils/__init__.py +0 -0
  153. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/utils/loss.py +0 -0
  154. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/utils/ops.py +0 -0
  155. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/__init__.py +0 -0
  156. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/classify/__init__.py +0 -0
  157. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/classify/train.py +0 -0
  158. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/classify/val.py +0 -0
  159. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/detect/__init__.py +0 -0
  160. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/detect/train.py +0 -0
  161. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/detect/val.py +0 -0
  162. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/model.py +0 -0
  163. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/obb/__init__.py +0 -0
  164. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/obb/predict.py +0 -0
  165. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/obb/train.py +0 -0
  166. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/obb/val.py +0 -0
  167. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/pose/__init__.py +0 -0
  168. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/pose/train.py +0 -0
  169. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/pose/val.py +0 -0
  170. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/segment/__init__.py +0 -0
  171. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/segment/train.py +0 -0
  172. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/segment/val.py +0 -0
  173. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/world/__init__.py +0 -0
  174. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/world/train.py +0 -0
  175. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/models/yolo/world/train_world.py +0 -0
  176. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/nn/__init__.py +0 -0
  177. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/nn/autobackend.py +0 -0
  178. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/nn/modules/__init__.py +0 -0
  179. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/nn/modules/block.py +0 -0
  180. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/nn/modules/conv.py +0 -0
  181. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/nn/modules/head.py +0 -0
  182. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/nn/modules/transformer.py +0 -0
  183. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/nn/modules/utils.py +0 -0
  184. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/nn/tasks.py +0 -0
  185. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/__init__.py +0 -0
  186. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/ai_gym.py +0 -0
  187. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/analytics.py +0 -0
  188. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/distance_calculation.py +0 -0
  189. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/heatmap.py +0 -0
  190. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/object_counter.py +0 -0
  191. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/parking_management.py +0 -0
  192. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/queue_management.py +0 -0
  193. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/speed_estimation.py +0 -0
  194. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/solutions/streamlit_inference.py +0 -0
  195. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/trackers/__init__.py +0 -0
  196. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/trackers/basetrack.py +0 -0
  197. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/trackers/bot_sort.py +0 -0
  198. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/trackers/byte_tracker.py +0 -0
  199. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/trackers/track.py +0 -0
  200. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/trackers/utils/__init__.py +0 -0
  201. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/trackers/utils/gmc.py +0 -0
  202. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  203. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/trackers/utils/matching.py +0 -0
  204. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/__init__.py +0 -0
  205. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/autobatch.py +0 -0
  206. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/benchmarks.py +0 -0
  207. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/__init__.py +0 -0
  208. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/base.py +0 -0
  209. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/clearml.py +0 -0
  210. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/comet.py +0 -0
  211. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/dvc.py +0 -0
  212. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/hub.py +0 -0
  213. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/mlflow.py +0 -0
  214. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/neptune.py +0 -0
  215. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/raytune.py +0 -0
  216. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  217. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/callbacks/wb.py +0 -0
  218. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/checks.py +0 -0
  219. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/dist.py +0 -0
  220. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/errors.py +0 -0
  221. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/files.py +0 -0
  222. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/instance.py +0 -0
  223. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/loss.py +0 -0
  224. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/metrics.py +0 -0
  225. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/ops.py +0 -0
  226. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/patches.py +0 -0
  227. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/plotting.py +0 -0
  228. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/tal.py +0 -0
  229. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/torch_utils.py +0 -0
  230. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/triton.py +0 -0
  231. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics/utils/tuner.py +0 -0
  232. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics.egg-info/SOURCES.txt +0 -0
  233. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics.egg-info/dependency_links.txt +0 -0
  234. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics.egg-info/entry_points.txt +0 -0
  235. {ultralytics-8.2.62 → ultralytics-8.2.63}/ultralytics.egg-info/requires.txt +0 -0
  236. {ultralytics-8.2.62 → ultralytics-8.2.63}/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.2.62
3
+ Version: 8.2.63
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
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.62"
3
+ __version__ = "8.2.63"
4
4
 
5
5
  import os
6
6
 
@@ -0,0 +1,31 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ import torch
3
+
4
+ from ultralytics.models.yolo.segment import SegmentationPredictor
5
+ from ultralytics.utils.metrics import box_iou
6
+
7
+ from .utils import adjust_bboxes_to_image_border
8
+
9
+
10
+ class FastSAMPredictor(SegmentationPredictor):
11
+ """
12
+ FastSAMPredictor is specialized for fast SAM (Segment Anything Model) segmentation prediction tasks in Ultralytics
13
+ YOLO framework.
14
+
15
+ This class extends the SegmentationPredictor, customizing the prediction pipeline specifically for fast SAM. It
16
+ adjusts post-processing steps to incorporate mask prediction and non-max suppression while optimizing for single-
17
+ class segmentation.
18
+ """
19
+
20
+ def postprocess(self, preds, img, orig_imgs):
21
+ """Applies box postprocess for FastSAM predictions."""
22
+ results = super().postprocess(preds, img, orig_imgs)
23
+ for result in results:
24
+ full_box = torch.tensor(
25
+ [0, 0, result.orig_shape[1], result.orig_shape[0]], device=preds[0].device, dtype=torch.float32
26
+ )
27
+ boxes = adjust_bboxes_to_image_border(result.boxes.xyxy, result.orig_shape)
28
+ idx = torch.nonzero(box_iou(full_box[None], boxes) > 0.9).flatten()
29
+ if idx.numel() != 0:
30
+ result.boxes.xyxy[idx] = full_box
31
+ return results
@@ -0,0 +1,25 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+
3
+
4
+ def adjust_bboxes_to_image_border(boxes, image_shape, threshold=20):
5
+ """
6
+ Adjust bounding boxes to stick to image border if they are within a certain threshold.
7
+
8
+ Args:
9
+ boxes (torch.Tensor): (n, 4)
10
+ image_shape (tuple): (height, width)
11
+ threshold (int): pixel threshold
12
+
13
+ Returns:
14
+ adjusted_boxes (torch.Tensor): adjusted bounding boxes
15
+ """
16
+
17
+ # Image dimensions
18
+ h, w = image_shape
19
+
20
+ # Adjust boxes
21
+ boxes[boxes[:, 0] < threshold, 0] = 0 # x1
22
+ boxes[boxes[:, 1] < threshold, 1] = 0 # y1
23
+ boxes[boxes[:, 2] > w - threshold, 2] = w # x2
24
+ boxes[boxes[:, 3] > h - threshold, 3] = h # y2
25
+ return boxes
@@ -54,8 +54,6 @@ class ClassificationPredictor(BasePredictor):
54
54
  orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)
55
55
 
56
56
  results = []
57
- for i, pred in enumerate(preds):
58
- orig_img = orig_imgs[i]
59
- img_path = self.batch[0][i]
57
+ for pred, orig_img, img_path in zip(preds, orig_imgs, self.batch[0]):
60
58
  results.append(Results(orig_img, path=img_path, names=self.model.names, probs=pred))
61
59
  return results
@@ -35,9 +35,7 @@ class DetectionPredictor(BasePredictor):
35
35
  orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)
36
36
 
37
37
  results = []
38
- for i, pred in enumerate(preds):
39
- orig_img = orig_imgs[i]
38
+ for pred, orig_img, img_path in zip(preds, orig_imgs, self.batch[0]):
40
39
  pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
41
- img_path = self.batch[0][i]
42
40
  results.append(Results(orig_img, path=img_path, names=self.model.names, boxes=pred))
43
41
  return results
@@ -46,12 +46,10 @@ class PosePredictor(DetectionPredictor):
46
46
  orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)
47
47
 
48
48
  results = []
49
- for i, pred in enumerate(preds):
50
- orig_img = orig_imgs[i]
49
+ for pred, orig_img, img_path in zip(preds, orig_imgs, self.batch[0]):
51
50
  pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape).round()
52
51
  pred_kpts = pred[:, 6:].view(len(pred), *self.model.kpt_shape) if len(pred) else pred[:, 6:]
53
52
  pred_kpts = ops.scale_coords(img.shape[2:], pred_kpts, orig_img.shape)
54
- img_path = self.batch[0][i]
55
53
  results.append(
56
54
  Results(orig_img, path=img_path, names=self.model.names, boxes=pred[:, :6], keypoints=pred_kpts)
57
55
  )
@@ -42,9 +42,7 @@ class SegmentationPredictor(DetectionPredictor):
42
42
 
43
43
  results = []
44
44
  proto = preds[1][-1] if isinstance(preds[1], tuple) else preds[1] # tuple if PyTorch model or array if exported
45
- for i, pred in enumerate(p):
46
- orig_img = orig_imgs[i]
47
- img_path = self.batch[0][i]
45
+ for i, (pred, orig_img, img_path) in enumerate(zip(p, orig_imgs, self.batch[0])):
48
46
  if not len(pred): # save empty boxes
49
47
  masks = None
50
48
  elif self.args.retina_masks:
@@ -199,7 +199,7 @@ def check_disk_space(url="https://ultralytics.com/assets/coco8.zip", path=Path.c
199
199
  Check if there is sufficient disk space to download and store a file.
200
200
 
201
201
  Args:
202
- url (str, optional): The URL to the file. Defaults to 'https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip'.
202
+ url (str, optional): The URL to the file. Defaults to 'https://ultralytics.com/assets/coco8.zip'.
203
203
  path (str | Path, optional): The path or drive to check the available free space on.
204
204
  sf (float, optional): Safety factor, the multiplier for the required free space. Defaults to 2.0.
205
205
  hard (bool, optional): Whether to throw an error or not on insufficient disk space. Defaults to True.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.62
3
+ Version: 8.2.63
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
@@ -1,84 +0,0 @@
1
- # Ultralytics YOLO 🚀, AGPL-3.0 license
2
-
3
- import torch
4
-
5
- from ultralytics.engine.results import Results
6
- from ultralytics.models.fastsam.utils import bbox_iou
7
- from ultralytics.models.yolo.detect.predict import DetectionPredictor
8
- from ultralytics.utils import DEFAULT_CFG, ops
9
-
10
-
11
- class FastSAMPredictor(DetectionPredictor):
12
- """
13
- FastSAMPredictor is specialized for fast SAM (Segment Anything Model) segmentation prediction tasks in Ultralytics
14
- YOLO framework.
15
-
16
- This class extends the DetectionPredictor, customizing the prediction pipeline specifically for fast SAM.
17
- It adjusts post-processing steps to incorporate mask prediction and non-max suppression while optimizing
18
- for single-class segmentation.
19
-
20
- Attributes:
21
- cfg (dict): Configuration parameters for prediction.
22
- overrides (dict, optional): Optional parameter overrides for custom behavior.
23
- _callbacks (dict, optional): Optional list of callback functions to be invoked during prediction.
24
- """
25
-
26
- def __init__(self, cfg=DEFAULT_CFG, overrides=None, _callbacks=None):
27
- """
28
- Initializes the FastSAMPredictor class, inheriting from DetectionPredictor and setting the task to 'segment'.
29
-
30
- Args:
31
- cfg (dict): Configuration parameters for prediction.
32
- overrides (dict, optional): Optional parameter overrides for custom behavior.
33
- _callbacks (dict, optional): Optional list of callback functions to be invoked during prediction.
34
- """
35
- super().__init__(cfg, overrides, _callbacks)
36
- self.args.task = "segment"
37
-
38
- def postprocess(self, preds, img, orig_imgs):
39
- """
40
- Perform post-processing steps on predictions, including non-max suppression and scaling boxes to original image
41
- size, and returns the final results.
42
-
43
- Args:
44
- preds (list): The raw output predictions from the model.
45
- img (torch.Tensor): The processed image tensor.
46
- orig_imgs (list | torch.Tensor): The original image or list of images.
47
-
48
- Returns:
49
- (list): A list of Results objects, each containing processed boxes, masks, and other metadata.
50
- """
51
- p = ops.non_max_suppression(
52
- preds[0],
53
- self.args.conf,
54
- self.args.iou,
55
- agnostic=self.args.agnostic_nms,
56
- max_det=self.args.max_det,
57
- nc=1, # set to 1 class since SAM has no class predictions
58
- classes=self.args.classes,
59
- )
60
- full_box = torch.zeros(p[0].shape[1], device=p[0].device)
61
- full_box[2], full_box[3], full_box[4], full_box[6:] = img.shape[3], img.shape[2], 1.0, 1.0
62
- full_box = full_box.view(1, -1)
63
- critical_iou_index = bbox_iou(full_box[0][:4], p[0][:, :4], iou_thres=0.9, image_shape=img.shape[2:])
64
- if critical_iou_index.numel() != 0:
65
- full_box[0][4] = p[0][critical_iou_index][:, 4]
66
- full_box[0][6:] = p[0][critical_iou_index][:, 6:]
67
- p[0][critical_iou_index] = full_box
68
-
69
- if not isinstance(orig_imgs, list): # input images are a torch.Tensor, not a list
70
- orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)
71
-
72
- results = []
73
- proto = preds[1][-1] if len(preds[1]) == 3 else preds[1] # second output is len 3 if pt, but only 1 if exported
74
- for i, (pred, orig_img, img_path) in enumerate(zip(p, orig_imgs, self.batch[0])):
75
- if not len(pred): # save empty boxes
76
- masks = None
77
- elif self.args.retina_masks:
78
- pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
79
- masks = ops.process_mask_native(proto[i], pred[:, 6:], pred[:, :4], orig_img.shape[:2]) # HWC
80
- else:
81
- masks = ops.process_mask(proto[i], pred[:, 6:], pred[:, :4], img.shape[2:], upsample=True) # HWC
82
- pred[:, :4] = ops.scale_boxes(img.shape[2:], pred[:, :4], orig_img.shape)
83
- results.append(Results(orig_img, path=img_path, names=self.model.names, boxes=pred[:, :6], masks=masks))
84
- return results
@@ -1,67 +0,0 @@
1
- # Ultralytics YOLO 🚀, AGPL-3.0 license
2
-
3
- import torch
4
-
5
-
6
- def adjust_bboxes_to_image_border(boxes, image_shape, threshold=20):
7
- """
8
- Adjust bounding boxes to stick to image border if they are within a certain threshold.
9
-
10
- Args:
11
- boxes (torch.Tensor): (n, 4)
12
- image_shape (tuple): (height, width)
13
- threshold (int): pixel threshold
14
-
15
- Returns:
16
- adjusted_boxes (torch.Tensor): adjusted bounding boxes
17
- """
18
-
19
- # Image dimensions
20
- h, w = image_shape
21
-
22
- # Adjust boxes
23
- boxes[boxes[:, 0] < threshold, 0] = 0 # x1
24
- boxes[boxes[:, 1] < threshold, 1] = 0 # y1
25
- boxes[boxes[:, 2] > w - threshold, 2] = w # x2
26
- boxes[boxes[:, 3] > h - threshold, 3] = h # y2
27
- return boxes
28
-
29
-
30
- def bbox_iou(box1, boxes, iou_thres=0.9, image_shape=(640, 640), raw_output=False):
31
- """
32
- Compute the Intersection-Over-Union of a bounding box with respect to an array of other bounding boxes.
33
-
34
- Args:
35
- box1 (torch.Tensor): (4, )
36
- boxes (torch.Tensor): (n, 4)
37
- iou_thres (float): IoU threshold
38
- image_shape (tuple): (height, width)
39
- raw_output (bool): If True, return the raw IoU values instead of the indices
40
-
41
- Returns:
42
- high_iou_indices (torch.Tensor): Indices of boxes with IoU > thres
43
- """
44
- boxes = adjust_bboxes_to_image_border(boxes, image_shape)
45
- # Obtain coordinates for intersections
46
- x1 = torch.max(box1[0], boxes[:, 0])
47
- y1 = torch.max(box1[1], boxes[:, 1])
48
- x2 = torch.min(box1[2], boxes[:, 2])
49
- y2 = torch.min(box1[3], boxes[:, 3])
50
-
51
- # Compute the area of intersection
52
- intersection = (x2 - x1).clamp(0) * (y2 - y1).clamp(0)
53
-
54
- # Compute the area of both individual boxes
55
- box1_area = (box1[2] - box1[0]) * (box1[3] - box1[1])
56
- box2_area = (boxes[:, 2] - boxes[:, 0]) * (boxes[:, 3] - boxes[:, 1])
57
-
58
- # Compute the area of union
59
- union = box1_area + box2_area - intersection
60
-
61
- # Compute the IoU
62
- iou = intersection / union # Should be shape (n, )
63
- if raw_output:
64
- return 0 if iou.numel() == 0 else iou
65
-
66
- # return indices of boxes with IoU > thres
67
- return torch.nonzero(iou > iou_thres).flatten()
File without changes
File without changes
File without changes