ultralytics 8.2.6__tar.gz → 8.2.8__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 (218) hide show
  1. {ultralytics-8.2.6/ultralytics.egg-info → ultralytics-8.2.8}/PKG-INFO +3 -2
  2. {ultralytics-8.2.6 → ultralytics-8.2.8}/pyproject.toml +2 -2
  3. {ultralytics-8.2.6 → ultralytics-8.2.8}/tests/test_cuda.py +1 -0
  4. {ultralytics-8.2.6 → ultralytics-8.2.8}/tests/test_python.py +5 -5
  5. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/__init__.py +1 -1
  6. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/augment.py +0 -1
  7. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/build.py +3 -1
  8. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/engine/exporter.py +1 -1
  9. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/engine/trainer.py +1 -1
  10. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/nn/modules/head.py +3 -6
  11. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/solutions/parking_management.py +2 -1
  12. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/__init__.py +1 -1
  13. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/checks.py +8 -1
  14. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/instance.py +6 -7
  15. {ultralytics-8.2.6 → ultralytics-8.2.8/ultralytics.egg-info}/PKG-INFO +3 -2
  16. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics.egg-info/requires.txt +2 -1
  17. {ultralytics-8.2.6 → ultralytics-8.2.8}/LICENSE +0 -0
  18. {ultralytics-8.2.6 → ultralytics-8.2.8}/README.md +0 -0
  19. {ultralytics-8.2.6 → ultralytics-8.2.8}/setup.cfg +0 -0
  20. {ultralytics-8.2.6 → ultralytics-8.2.8}/tests/test_cli.py +0 -0
  21. {ultralytics-8.2.6 → ultralytics-8.2.8}/tests/test_engine.py +0 -0
  22. {ultralytics-8.2.6 → ultralytics-8.2.8}/tests/test_explorer.py +0 -0
  23. {ultralytics-8.2.6 → ultralytics-8.2.8}/tests/test_integrations.py +0 -0
  24. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/assets/bus.jpg +0 -0
  25. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/assets/zidane.jpg +0 -0
  26. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/__init__.py +0 -0
  27. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  28. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  29. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  30. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  31. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  32. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  33. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  34. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  35. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  36. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  37. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  38. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  39. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  40. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/coco.yaml +0 -0
  41. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  42. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  43. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  44. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  45. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  46. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  47. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  48. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  49. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  50. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  51. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  52. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/datasets/xView.yaml +0 -0
  53. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/default.yaml +0 -0
  54. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  55. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  56. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  57. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  58. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  59. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  60. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  61. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  62. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  63. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  64. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  65. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  66. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  67. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  68. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  69. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  70. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  71. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  72. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  73. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  74. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  75. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  76. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  77. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  78. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  79. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  80. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  81. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  82. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  83. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  84. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  85. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  86. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  87. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/__init__.py +0 -0
  88. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/annotator.py +0 -0
  89. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/base.py +0 -0
  90. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/converter.py +0 -0
  91. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/dataset.py +0 -0
  92. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/explorer/__init__.py +0 -0
  93. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/explorer/explorer.py +0 -0
  94. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/explorer/gui/__init__.py +0 -0
  95. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/explorer/gui/dash.py +0 -0
  96. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/explorer/utils.py +0 -0
  97. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/loaders.py +0 -0
  98. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/split_dota.py +0 -0
  99. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/data/utils.py +0 -0
  100. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/engine/__init__.py +0 -0
  101. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/engine/model.py +0 -0
  102. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/engine/predictor.py +0 -0
  103. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/engine/results.py +0 -0
  104. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/engine/tuner.py +0 -0
  105. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/engine/validator.py +0 -0
  106. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/hub/__init__.py +0 -0
  107. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/hub/auth.py +0 -0
  108. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/hub/session.py +0 -0
  109. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/hub/utils.py +0 -0
  110. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/__init__.py +0 -0
  111. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/fastsam/__init__.py +0 -0
  112. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/fastsam/model.py +0 -0
  113. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/fastsam/predict.py +0 -0
  114. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/fastsam/prompt.py +0 -0
  115. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/fastsam/utils.py +0 -0
  116. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/fastsam/val.py +0 -0
  117. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/nas/__init__.py +0 -0
  118. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/nas/model.py +0 -0
  119. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/nas/predict.py +0 -0
  120. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/nas/val.py +0 -0
  121. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/rtdetr/__init__.py +0 -0
  122. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/rtdetr/model.py +0 -0
  123. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/rtdetr/predict.py +0 -0
  124. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/rtdetr/train.py +0 -0
  125. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/rtdetr/val.py +0 -0
  126. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/__init__.py +0 -0
  127. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/amg.py +0 -0
  128. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/build.py +0 -0
  129. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/model.py +0 -0
  130. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/modules/__init__.py +0 -0
  131. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/modules/decoders.py +0 -0
  132. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/modules/encoders.py +0 -0
  133. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/modules/sam.py +0 -0
  134. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  135. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/modules/transformer.py +0 -0
  136. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/sam/predict.py +0 -0
  137. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/utils/__init__.py +0 -0
  138. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/utils/loss.py +0 -0
  139. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/utils/ops.py +0 -0
  140. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/__init__.py +0 -0
  141. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/classify/__init__.py +0 -0
  142. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/classify/predict.py +0 -0
  143. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/classify/train.py +0 -0
  144. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/classify/val.py +0 -0
  145. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/detect/__init__.py +0 -0
  146. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/detect/predict.py +0 -0
  147. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/detect/train.py +0 -0
  148. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/detect/val.py +0 -0
  149. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/model.py +0 -0
  150. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/obb/__init__.py +0 -0
  151. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/obb/predict.py +0 -0
  152. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/obb/train.py +0 -0
  153. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/obb/val.py +0 -0
  154. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/pose/__init__.py +0 -0
  155. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/pose/predict.py +0 -0
  156. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/pose/train.py +0 -0
  157. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/pose/val.py +0 -0
  158. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/segment/__init__.py +0 -0
  159. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/segment/predict.py +0 -0
  160. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/segment/train.py +0 -0
  161. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/segment/val.py +0 -0
  162. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/world/__init__.py +0 -0
  163. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/world/train.py +0 -0
  164. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/models/yolo/world/train_world.py +0 -0
  165. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/nn/__init__.py +0 -0
  166. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/nn/autobackend.py +0 -0
  167. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/nn/modules/__init__.py +0 -0
  168. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/nn/modules/block.py +0 -0
  169. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/nn/modules/conv.py +0 -0
  170. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/nn/modules/transformer.py +0 -0
  171. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/nn/modules/utils.py +0 -0
  172. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/nn/tasks.py +0 -0
  173. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/solutions/__init__.py +0 -0
  174. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/solutions/ai_gym.py +0 -0
  175. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/solutions/distance_calculation.py +0 -0
  176. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/solutions/heatmap.py +0 -0
  177. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/solutions/object_counter.py +0 -0
  178. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/solutions/queue_management.py +0 -0
  179. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/solutions/speed_estimation.py +0 -0
  180. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/trackers/__init__.py +0 -0
  181. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/trackers/basetrack.py +0 -0
  182. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/trackers/bot_sort.py +0 -0
  183. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/trackers/byte_tracker.py +0 -0
  184. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/trackers/track.py +0 -0
  185. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/trackers/utils/__init__.py +0 -0
  186. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/trackers/utils/gmc.py +0 -0
  187. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  188. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/trackers/utils/matching.py +0 -0
  189. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/autobatch.py +0 -0
  190. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/benchmarks.py +0 -0
  191. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/__init__.py +0 -0
  192. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/base.py +0 -0
  193. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/clearml.py +0 -0
  194. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/comet.py +0 -0
  195. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/dvc.py +0 -0
  196. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/hub.py +0 -0
  197. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/mlflow.py +0 -0
  198. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/neptune.py +0 -0
  199. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/raytune.py +0 -0
  200. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  201. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/callbacks/wb.py +0 -0
  202. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/dist.py +0 -0
  203. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/downloads.py +0 -0
  204. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/errors.py +0 -0
  205. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/files.py +0 -0
  206. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/loss.py +0 -0
  207. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/metrics.py +0 -0
  208. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/ops.py +0 -0
  209. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/patches.py +0 -0
  210. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/plotting.py +0 -0
  211. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/tal.py +0 -0
  212. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/torch_utils.py +0 -0
  213. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/triton.py +0 -0
  214. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics/utils/tuner.py +0 -0
  215. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics.egg-info/SOURCES.txt +0 -0
  216. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics.egg-info/dependency_links.txt +0 -0
  217. {ultralytics-8.2.6 → ultralytics-8.2.8}/ultralytics.egg-info/entry_points.txt +0 -0
  218. {ultralytics-8.2.6 → ultralytics-8.2.8}/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.6
3
+ Version: 8.2.8
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
@@ -63,6 +63,7 @@ Requires-Dist: coremltools>=7.0; (platform_system != "Windows" and python_versio
63
63
  Requires-Dist: openvino>=2024.0.0; extra == "export"
64
64
  Requires-Dist: tensorflow<=2.13.1; python_version <= "3.11" and extra == "export"
65
65
  Requires-Dist: tensorflowjs>=3.9.0; python_version <= "3.11" and extra == "export"
66
+ Requires-Dist: flatbuffers<100,>=23.5.26; platform_machine == "aarch64" and extra == "export"
66
67
  Requires-Dist: numpy==1.23.5; platform_machine == "aarch64" and extra == "export"
67
68
  Requires-Dist: h5py!=3.11.0; platform_machine == "aarch64" and extra == "export"
68
69
  Provides-Extra: explorer
@@ -76,7 +77,7 @@ Requires-Dist: dvclive>=2.12.0; extra == "logging"
76
77
  Provides-Extra: extra
77
78
  Requires-Dist: hub-sdk>=0.0.5; extra == "extra"
78
79
  Requires-Dist: ipython; extra == "extra"
79
- Requires-Dist: albumentations>=1.0.3; extra == "extra"
80
+ Requires-Dist: albumentations<=1.4.4,>=1.0.3; extra == "extra"
80
81
  Requires-Dist: pycocotools>=2.0.7; extra == "extra"
81
82
 
82
83
  <div align="center">
@@ -102,7 +102,7 @@ export = [
102
102
  "openvino>=2024.0.0", # OpenVINO export
103
103
  "tensorflow<=2.13.1; python_version <= '3.11'", # TF bug https://github.com/ultralytics/ultralytics/issues/5161
104
104
  "tensorflowjs>=3.9.0; python_version <= '3.11'", # TF.js export, automatically installs tensorflow
105
- # "flatbuffers>=23.5.26,<100", # update old 'flatbuffers' included inside tensorflow package: WARNING Dockerfile error https://github.com/ultralytics/ultralytics/actions/runs/8715942435/job/23908971614
105
+ "flatbuffers>=23.5.26,<100; platform_machine == 'aarch64'", # update old 'flatbuffers' included inside tensorflow package
106
106
  "numpy==1.23.5; platform_machine == 'aarch64'", # fix error: `np.bool` was a deprecated alias for the builtin `bool` when using TensorRT models on NVIDIA Jetson
107
107
  "h5py!=3.11.0; platform_machine == 'aarch64'", # fix h5py build issues due to missing aarch64 wheels in 3.11 release
108
108
  ]
@@ -123,7 +123,7 @@ logging = [
123
123
  extra = [
124
124
  "hub-sdk>=0.0.5", # Ultralytics HUB
125
125
  "ipython", # interactive notebook
126
- "albumentations>=1.0.3", # training augmentations
126
+ "albumentations>=1.0.3,<=1.4.4", # training augmentations
127
127
  "pycocotools>=2.0.7", # COCO mAP
128
128
  ]
129
129
 
@@ -19,6 +19,7 @@ def test_checks():
19
19
  assert torch.cuda.is_available() == CUDA_IS_AVAILABLE
20
20
  assert torch.cuda.device_count() == CUDA_DEVICE_COUNT
21
21
 
22
+
22
23
  @pytest.mark.slow
23
24
  @pytest.mark.skipif(not CUDA_IS_AVAILABLE, reason="CUDA is not available")
24
25
  def test_export_engine():
@@ -345,12 +345,12 @@ def test_labels_and_crops():
345
345
  labels = save_path / f"labels/{im_name}.txt"
346
346
  assert labels.exists()
347
347
  # Check detections match label count
348
- assert len(r.boxes.data) == len([l for l in labels.read_text().splitlines() if l])
348
+ assert len(r.boxes.data) == len([line for line in labels.read_text().splitlines() if line])
349
349
  # Check crops path and files
350
- crop_dirs = [p for p in (save_path / "crops").iterdir()]
350
+ crop_dirs = list((save_path / "crops").iterdir())
351
351
  crop_files = [f for p in crop_dirs for f in p.glob("*")]
352
352
  # Crop directories match detections
353
- assert all([r.names.get(c) in {d.name for d in crop_dirs} for c in cls_idxs])
353
+ assert all(r.names.get(c) in {d.name for d in crop_dirs} for c in cls_idxs)
354
354
  # Same number of crops as detections
355
355
  assert len([f for f in crop_files if im_name in f.name]) == len(r.boxes.data)
356
356
 
@@ -643,8 +643,8 @@ def test_yolo_world():
643
643
  model(ASSETS / "bus.jpg", conf=0.01)
644
644
 
645
645
  model = YOLO("yolov8s-worldv2.pt") # no YOLOv8n-world model yet
646
- # Training from pretrain, evaluation process is included at the final stage of training.
647
- # Use dota8.yaml which has less categories to reduce the inference time of CLIP model
646
+ # Training from a pretrained model. Eval is included at the final stage of training.
647
+ # Use dota8.yaml which has fewer categories to reduce the inference time of CLIP model
648
648
  model.train(
649
649
  data="dota8.yaml",
650
650
  epochs=1,
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.6"
3
+ __version__ = "8.2.8"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -917,7 +917,6 @@ class Albumentations:
917
917
  return labels
918
918
 
919
919
 
920
- # TODO: technically this is not an augmentation, maybe we should put this to another files
921
920
  class Format:
922
921
  """
923
922
  Formats image annotations for object detection, instance segmentation, and pose estimation tasks. The class
@@ -20,7 +20,7 @@ from ultralytics.data.loaders import (
20
20
  autocast_list,
21
21
  )
22
22
  from ultralytics.data.utils import IMG_FORMATS, VID_FORMATS
23
- from ultralytics.utils import RANK, colorstr
23
+ from ultralytics.utils import LINUX, NUM_THREADS, RANK, colorstr
24
24
  from ultralytics.utils.checks import check_file
25
25
 
26
26
  from .dataset import GroundingDataset, YOLODataset, YOLOMultiModalDataset
@@ -81,6 +81,8 @@ def seed_worker(worker_id): # noqa
81
81
  worker_seed = torch.initial_seed() % 2**32
82
82
  np.random.seed(worker_seed)
83
83
  random.seed(worker_seed)
84
+ if LINUX and hasattr(os, "sched_setaffinity"): # unsupported on macOS and Windows
85
+ os.sched_setaffinity(0, range(NUM_THREADS)) # fix https://github.com/ultralytics/ultralytics/pull/11195
84
86
 
85
87
 
86
88
  def build_yolo_dataset(cfg, img_path, batch, data, mode="train", rect=False, stride=32, multi_modal=False):
@@ -414,7 +414,7 @@ class Exporter:
414
414
  @try_export
415
415
  def export_openvino(self, prefix=colorstr("OpenVINO:")):
416
416
  """YOLOv8 OpenVINO export."""
417
- check_requirements("openvino>=2024.0.0") # requires openvino: https://pypi.org/project/openvino/
417
+ check_requirements(f'openvino{"<=2024.0.0" if ARM64 else ">=2024.0.0"}') # fix OpenVINO issue on ARM64
418
418
  import openvino as ov
419
419
 
420
420
  LOGGER.info(f"\n{prefix} starting export with openvino {ov.__version__}...")
@@ -329,6 +329,7 @@ class BaseTrainer:
329
329
  base_idx = (self.epochs - self.args.close_mosaic) * nb
330
330
  self.plot_idx.extend([base_idx, base_idx + 1, base_idx + 2])
331
331
  epoch = self.start_epoch
332
+ self.optimizer.zero_grad() # zero any resumed gradients to ensure stability on train start
332
333
  while True:
333
334
  self.epoch = epoch
334
335
  self.run_callbacks("on_train_epoch_start")
@@ -349,7 +350,6 @@ class BaseTrainer:
349
350
  LOGGER.info(self.progress_string())
350
351
  pbar = TQDM(enumerate(self.train_loader), total=nb)
351
352
  self.tloss = None
352
- self.optimizer.zero_grad()
353
353
  for i, batch in pbar:
354
354
  self.run_callbacks("on_train_batch_start")
355
355
  # Warmup
@@ -98,7 +98,6 @@ class Segment(Detect):
98
98
  self.nm = nm # number of masks
99
99
  self.npr = npr # number of protos
100
100
  self.proto = Proto(ch[0], self.npr, self.nm) # protos
101
- self.detect = Detect.forward
102
101
 
103
102
  c4 = max(ch[0] // 4, self.nm)
104
103
  self.cv4 = nn.ModuleList(nn.Sequential(Conv(x, c4, 3), Conv(c4, c4, 3), nn.Conv2d(c4, self.nm, 1)) for x in ch)
@@ -109,7 +108,7 @@ class Segment(Detect):
109
108
  bs = p.shape[0] # batch size
110
109
 
111
110
  mc = torch.cat([self.cv4[i](x[i]).view(bs, self.nm, -1) for i in range(self.nl)], 2) # mask coefficients
112
- x = self.detect(self, x)
111
+ x = Detect.forward(self, x)
113
112
  if self.training:
114
113
  return x, mc, p
115
114
  return (torch.cat([x, mc], 1), p) if self.export else (torch.cat([x[0], mc], 1), (x[1], mc, p))
@@ -122,7 +121,6 @@ class OBB(Detect):
122
121
  """Initialize OBB with number of classes `nc` and layer channels `ch`."""
123
122
  super().__init__(nc, ch)
124
123
  self.ne = ne # number of extra parameters
125
- self.detect = Detect.forward
126
124
 
127
125
  c4 = max(ch[0] // 4, self.ne)
128
126
  self.cv4 = nn.ModuleList(nn.Sequential(Conv(x, c4, 3), Conv(c4, c4, 3), nn.Conv2d(c4, self.ne, 1)) for x in ch)
@@ -136,7 +134,7 @@ class OBB(Detect):
136
134
  # angle = angle.sigmoid() * math.pi / 2 # [0, pi/2]
137
135
  if not self.training:
138
136
  self.angle = angle
139
- x = self.detect(self, x)
137
+ x = Detect.forward(self, x)
140
138
  if self.training:
141
139
  return x, angle
142
140
  return torch.cat([x, angle], 1) if self.export else (torch.cat([x[0], angle], 1), (x[1], angle))
@@ -154,7 +152,6 @@ class Pose(Detect):
154
152
  super().__init__(nc, ch)
155
153
  self.kpt_shape = kpt_shape # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
156
154
  self.nk = kpt_shape[0] * kpt_shape[1] # number of keypoints total
157
- self.detect = Detect.forward
158
155
 
159
156
  c4 = max(ch[0] // 4, self.nk)
160
157
  self.cv4 = nn.ModuleList(nn.Sequential(Conv(x, c4, 3), Conv(c4, c4, 3), nn.Conv2d(c4, self.nk, 1)) for x in ch)
@@ -163,7 +160,7 @@ class Pose(Detect):
163
160
  """Perform forward pass through YOLO model and return predictions."""
164
161
  bs = x[0].shape[0] # batch size
165
162
  kpt = torch.cat([self.cv4[i](x[i]).view(bs, self.nk, -1) for i in range(self.nl)], -1) # (bs, 17*3, h*w)
166
- x = self.detect(self, x)
163
+ x = Detect.forward(self, x)
167
164
  if self.training:
168
165
  return x, kpt
169
166
  pred_kpt = self.kpts_decode(bs, kpt)
@@ -14,7 +14,7 @@ import tkinter as tk
14
14
 
15
15
  class ParkingPtsSelection:
16
16
  def __init__(self, master):
17
- # Initialize window and widgets.
17
+ """Initializes the UI for selecting parking zone points in a tkinter window."""
18
18
  self.master = master
19
19
  master.title("Ultralytics Parking Zones Points Selector")
20
20
  self.initialize_ui()
@@ -109,6 +109,7 @@ class ParkingPtsSelection:
109
109
  messagebox.showwarning("Warning", "No bounding boxes to remove.")
110
110
 
111
111
  def save_to_json(self):
112
+ """Saves rescaled bounding boxes to 'bounding_boxes.json' based on image-to-canvas size ratio."""
112
113
  canvas_width, canvas_height = self.canvas.winfo_width(), self.canvas.winfo_height()
113
114
  width_scaling_factor = self.img_width / canvas_width
114
115
  height_scaling_factor = self.img_height / canvas_height
@@ -36,7 +36,7 @@ FILE = Path(__file__).resolve()
36
36
  ROOT = FILE.parents[1] # YOLO
37
37
  ASSETS = ROOT / "assets" # default images
38
38
  DEFAULT_CFG_PATH = ROOT / "cfg/default.yaml"
39
- NUM_THREADS = min(8, max(1, os.cpu_count() - 1)) # number of YOLOv5 multiprocessing threads
39
+ NUM_THREADS = min(8, max(1, os.cpu_count() - 1)) # number of YOLO multiprocessing threads
40
40
  AUTOINSTALL = str(os.getenv("YOLO_AUTOINSTALL", True)).lower() == "true" # global auto-install mode
41
41
  VERBOSE = str(os.getenv("YOLO_VERBOSE", True)).lower() == "true" # global verbose mode
42
42
  TQDM_BAR_FORMAT = "{l_bar}{bar:10}{r_bar}" if VERBOSE else None # tqdm bar format
@@ -419,7 +419,14 @@ def check_torchvision():
419
419
  """
420
420
 
421
421
  # Compatibility table
422
- compatibility_table = {"2.0": ["0.15"], "1.13": ["0.14"], "1.12": ["0.13"]}
422
+ compatibility_table = {
423
+ "2.3": ["0.18"],
424
+ "2.2": ["0.17"],
425
+ "2.1": ["0.16"],
426
+ "2.0": ["0.15"],
427
+ "1.13": ["0.14"],
428
+ "1.12": ["0.13"],
429
+ }
423
430
 
424
431
  # Extract only the major and minor versions
425
432
  v_torch = ".".join(torch.__version__.split("+")[0].split(".")[:2])
@@ -72,8 +72,11 @@ class Bboxes:
72
72
 
73
73
  def areas(self):
74
74
  """Return box areas."""
75
- self.convert("xyxy")
76
- return (self.bboxes[:, 2] - self.bboxes[:, 0]) * (self.bboxes[:, 3] - self.bboxes[:, 1])
75
+ return (
76
+ (self.bboxes[:, 2] - self.bboxes[:, 0]) * (self.bboxes[:, 3] - self.bboxes[:, 1]) # format xyxy
77
+ if self.format == "xyxy"
78
+ else self.bboxes[:, 3] * self.bboxes[:, 2] # format xywh or ltwh
79
+ )
77
80
 
78
81
  # def denormalize(self, w, h):
79
82
  # if not self.normalized:
@@ -340,11 +343,7 @@ class Instances:
340
343
  self.keypoints[..., 1] = self.keypoints[..., 1].clip(0, h)
341
344
 
342
345
  def remove_zero_area_boxes(self):
343
- """
344
- Remove zero-area boxes, i.e. after clipping some boxes may have zero width or height.
345
-
346
- This removes them.
347
- """
346
+ """Remove zero-area boxes, i.e. after clipping some boxes may have zero width or height."""
348
347
  good = self.bbox_areas > 0
349
348
  if not all(good):
350
349
  self._bboxes = self._bboxes[good]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.6
3
+ Version: 8.2.8
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
@@ -63,6 +63,7 @@ Requires-Dist: coremltools>=7.0; (platform_system != "Windows" and python_versio
63
63
  Requires-Dist: openvino>=2024.0.0; extra == "export"
64
64
  Requires-Dist: tensorflow<=2.13.1; python_version <= "3.11" and extra == "export"
65
65
  Requires-Dist: tensorflowjs>=3.9.0; python_version <= "3.11" and extra == "export"
66
+ Requires-Dist: flatbuffers<100,>=23.5.26; platform_machine == "aarch64" and extra == "export"
66
67
  Requires-Dist: numpy==1.23.5; platform_machine == "aarch64" and extra == "export"
67
68
  Requires-Dist: h5py!=3.11.0; platform_machine == "aarch64" and extra == "export"
68
69
  Provides-Extra: explorer
@@ -76,7 +77,7 @@ Requires-Dist: dvclive>=2.12.0; extra == "logging"
76
77
  Provides-Extra: extra
77
78
  Requires-Dist: hub-sdk>=0.0.5; extra == "extra"
78
79
  Requires-Dist: ipython; extra == "extra"
79
- Requires-Dist: albumentations>=1.0.3; extra == "extra"
80
+ Requires-Dist: albumentations<=1.4.4,>=1.0.3; extra == "extra"
80
81
  Requires-Dist: pycocotools>=2.0.7; extra == "extra"
81
82
 
82
83
  <div align="center">
@@ -37,6 +37,7 @@ onnx>=1.12.0
37
37
  openvino>=2024.0.0
38
38
 
39
39
  [export:platform_machine == "aarch64"]
40
+ flatbuffers<100,>=23.5.26
40
41
  numpy==1.23.5
41
42
  h5py!=3.11.0
42
43
 
@@ -50,7 +51,7 @@ tensorflowjs>=3.9.0
50
51
  [extra]
51
52
  hub-sdk>=0.0.5
52
53
  ipython
53
- albumentations>=1.0.3
54
+ albumentations<=1.4.4,>=1.0.3
54
55
  pycocotools>=2.0.7
55
56
 
56
57
  [logging]
File without changes
File without changes
File without changes