ultralytics 8.2.1__tar.gz → 8.2.3__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.2.1/ultralytics.egg-info → ultralytics-8.2.3}/PKG-INFO +2 -2
  2. {ultralytics-8.2.1 → ultralytics-8.2.3}/README.md +1 -1
  3. {ultralytics-8.2.1 → ultralytics-8.2.3}/tests/test_explorer.py +9 -9
  4. {ultralytics-8.2.1 → ultralytics-8.2.3}/tests/test_python.py +17 -11
  5. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/__init__.py +1 -1
  6. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/__init__.py +2 -2
  7. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/default.yaml +1 -1
  8. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/engine/trainer.py +1 -1
  9. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/engine/validator.py +1 -1
  10. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/nn/autobackend.py +5 -2
  11. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/__init__.py +3 -3
  12. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/benchmarks.py +132 -0
  13. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/plotting.py +1 -6
  14. {ultralytics-8.2.1 → ultralytics-8.2.3/ultralytics.egg-info}/PKG-INFO +2 -2
  15. {ultralytics-8.2.1 → ultralytics-8.2.3}/LICENSE +0 -0
  16. {ultralytics-8.2.1 → ultralytics-8.2.3}/pyproject.toml +0 -0
  17. {ultralytics-8.2.1 → ultralytics-8.2.3}/setup.cfg +0 -0
  18. {ultralytics-8.2.1 → ultralytics-8.2.3}/tests/test_cli.py +0 -0
  19. {ultralytics-8.2.1 → ultralytics-8.2.3}/tests/test_cuda.py +0 -0
  20. {ultralytics-8.2.1 → ultralytics-8.2.3}/tests/test_engine.py +0 -0
  21. {ultralytics-8.2.1 → ultralytics-8.2.3}/tests/test_integrations.py +0 -0
  22. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/assets/bus.jpg +0 -0
  23. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/assets/zidane.jpg +0 -0
  24. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  25. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  26. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  27. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  28. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  29. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  30. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  31. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  32. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  33. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  34. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  35. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  36. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  37. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/coco.yaml +0 -0
  38. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  39. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  40. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  41. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  42. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  43. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  44. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  45. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  46. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  47. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  48. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  49. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/datasets/xView.yaml +0 -0
  50. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  51. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  52. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  53. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  54. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  55. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  56. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  57. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  58. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  59. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  60. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  61. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  62. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  63. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  64. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  65. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  66. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  67. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  68. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  69. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  70. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  71. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  72. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  73. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  74. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  75. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  76. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  77. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  78. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  79. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  80. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  81. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  82. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  83. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/__init__.py +0 -0
  84. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/annotator.py +0 -0
  85. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/augment.py +0 -0
  86. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/base.py +0 -0
  87. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/build.py +0 -0
  88. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/converter.py +0 -0
  89. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/dataset.py +0 -0
  90. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/explorer/__init__.py +0 -0
  91. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/explorer/explorer.py +0 -0
  92. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/explorer/gui/__init__.py +0 -0
  93. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/explorer/gui/dash.py +0 -0
  94. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/explorer/utils.py +0 -0
  95. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/loaders.py +0 -0
  96. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/split_dota.py +0 -0
  97. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/data/utils.py +0 -0
  98. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/engine/__init__.py +0 -0
  99. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/engine/exporter.py +0 -0
  100. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/engine/model.py +0 -0
  101. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/engine/predictor.py +0 -0
  102. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/engine/results.py +0 -0
  103. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/engine/tuner.py +0 -0
  104. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/hub/__init__.py +0 -0
  105. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/hub/auth.py +0 -0
  106. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/hub/session.py +0 -0
  107. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/hub/utils.py +0 -0
  108. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/__init__.py +0 -0
  109. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/fastsam/__init__.py +0 -0
  110. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/fastsam/model.py +0 -0
  111. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/fastsam/predict.py +0 -0
  112. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/fastsam/prompt.py +0 -0
  113. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/fastsam/utils.py +0 -0
  114. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/fastsam/val.py +0 -0
  115. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/nas/__init__.py +0 -0
  116. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/nas/model.py +0 -0
  117. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/nas/predict.py +0 -0
  118. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/nas/val.py +0 -0
  119. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/rtdetr/__init__.py +0 -0
  120. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/rtdetr/model.py +0 -0
  121. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/rtdetr/predict.py +0 -0
  122. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/rtdetr/train.py +0 -0
  123. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/rtdetr/val.py +0 -0
  124. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/__init__.py +0 -0
  125. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/amg.py +0 -0
  126. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/build.py +0 -0
  127. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/model.py +0 -0
  128. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/modules/__init__.py +0 -0
  129. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/modules/decoders.py +0 -0
  130. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/modules/encoders.py +0 -0
  131. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/modules/sam.py +0 -0
  132. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  133. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/modules/transformer.py +0 -0
  134. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/sam/predict.py +0 -0
  135. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/utils/__init__.py +0 -0
  136. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/utils/loss.py +0 -0
  137. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/utils/ops.py +0 -0
  138. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/__init__.py +0 -0
  139. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/classify/__init__.py +0 -0
  140. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/classify/predict.py +0 -0
  141. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/classify/train.py +0 -0
  142. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/classify/val.py +0 -0
  143. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/detect/__init__.py +0 -0
  144. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/detect/predict.py +0 -0
  145. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/detect/train.py +0 -0
  146. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/detect/val.py +0 -0
  147. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/model.py +0 -0
  148. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/obb/__init__.py +0 -0
  149. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/obb/predict.py +0 -0
  150. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/obb/train.py +0 -0
  151. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/obb/val.py +0 -0
  152. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/pose/__init__.py +0 -0
  153. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/pose/predict.py +0 -0
  154. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/pose/train.py +0 -0
  155. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/pose/val.py +0 -0
  156. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/segment/__init__.py +0 -0
  157. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/segment/predict.py +0 -0
  158. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/segment/train.py +0 -0
  159. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/segment/val.py +0 -0
  160. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/world/__init__.py +0 -0
  161. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/world/train.py +0 -0
  162. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/models/yolo/world/train_world.py +0 -0
  163. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/nn/__init__.py +0 -0
  164. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/nn/modules/__init__.py +0 -0
  165. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/nn/modules/block.py +0 -0
  166. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/nn/modules/conv.py +0 -0
  167. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/nn/modules/head.py +0 -0
  168. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/nn/modules/transformer.py +0 -0
  169. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/nn/modules/utils.py +0 -0
  170. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/nn/tasks.py +0 -0
  171. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/solutions/__init__.py +0 -0
  172. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/solutions/ai_gym.py +0 -0
  173. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/solutions/distance_calculation.py +0 -0
  174. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/solutions/heatmap.py +0 -0
  175. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/solutions/object_counter.py +0 -0
  176. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/solutions/queue_management.py +0 -0
  177. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/solutions/speed_estimation.py +0 -0
  178. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/trackers/__init__.py +0 -0
  179. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/trackers/basetrack.py +0 -0
  180. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/trackers/bot_sort.py +0 -0
  181. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/trackers/byte_tracker.py +0 -0
  182. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/trackers/track.py +0 -0
  183. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/trackers/utils/__init__.py +0 -0
  184. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/trackers/utils/gmc.py +0 -0
  185. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  186. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/trackers/utils/matching.py +0 -0
  187. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/autobatch.py +0 -0
  188. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/__init__.py +0 -0
  189. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/base.py +0 -0
  190. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/clearml.py +0 -0
  191. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/comet.py +0 -0
  192. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/dvc.py +0 -0
  193. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/hub.py +0 -0
  194. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/mlflow.py +0 -0
  195. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/neptune.py +0 -0
  196. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/raytune.py +0 -0
  197. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  198. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/callbacks/wb.py +0 -0
  199. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/checks.py +0 -0
  200. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/dist.py +0 -0
  201. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/downloads.py +0 -0
  202. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/errors.py +0 -0
  203. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/files.py +0 -0
  204. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/instance.py +0 -0
  205. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/loss.py +0 -0
  206. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/metrics.py +0 -0
  207. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/ops.py +0 -0
  208. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/patches.py +0 -0
  209. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/tal.py +0 -0
  210. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/torch_utils.py +0 -0
  211. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/triton.py +0 -0
  212. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics/utils/tuner.py +0 -0
  213. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics.egg-info/SOURCES.txt +0 -0
  214. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics.egg-info/dependency_links.txt +0 -0
  215. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics.egg-info/entry_points.txt +0 -0
  216. {ultralytics-8.2.1 → ultralytics-8.2.3}/ultralytics.egg-info/requires.txt +0 -0
  217. {ultralytics-8.2.1 → ultralytics-8.2.3}/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.1
3
+ Version: 8.2.3
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
@@ -168,7 +168,7 @@ model = YOLO("yolov8n.yaml") # build a new model from scratch
168
168
  model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
169
169
 
170
170
  # Use the model
171
- model.train(data="coco128.yaml", epochs=3) # train the model
171
+ model.train(data="coco8.yaml", epochs=3) # train the model
172
172
  metrics = model.val() # evaluate model performance on the validation set
173
173
  results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
174
174
  path = model.export(format="onnx") # export the model to ONNX format
@@ -88,7 +88,7 @@ model = YOLO("yolov8n.yaml") # build a new model from scratch
88
88
  model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
89
89
 
90
90
  # Use the model
91
- model.train(data="coco128.yaml", epochs=3) # train the model
91
+ model.train(data="coco8.yaml", epochs=3) # train the model
92
92
  metrics = model.val() # evaluate model performance on the validation set
93
93
  results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
94
94
  path = model.export(format="onnx") # export the model to ONNX format
@@ -10,18 +10,18 @@ from ultralytics.utils import ASSETS
10
10
  @pytest.mark.slow
11
11
  def test_similarity():
12
12
  """Test similarity calculations and SQL queries for correctness and response length."""
13
- exp = Explorer()
13
+ exp = Explorer(data="coco8.yaml")
14
14
  exp.create_embeddings_table()
15
15
  similar = exp.get_similar(idx=1)
16
- assert len(similar) == 25
17
- similar = exp.get_similar(img=ASSETS / "zidane.jpg")
18
- assert len(similar) == 25
19
- similar = exp.get_similar(idx=[1, 2], limit=10)
20
- assert len(similar) == 10
16
+ assert len(similar) == 4
17
+ similar = exp.get_similar(img=ASSETS / "bus.jpg")
18
+ assert len(similar) == 4
19
+ similar = exp.get_similar(idx=[1, 2], limit=2)
20
+ assert len(similar) == 2
21
21
  sim_idx = exp.similarity_index()
22
- assert len(sim_idx) > 0
23
- sql = exp.sql_query("WHERE labels LIKE '%person%'")
24
- assert len(sql) > 0
22
+ assert len(sim_idx) == 4
23
+ sql = exp.sql_query("WHERE labels LIKE '%zebra%'")
24
+ assert len(sql) == 1
25
25
 
26
26
 
27
27
  @pytest.mark.slow
@@ -222,6 +222,7 @@ def test_export_openvino():
222
222
  YOLO(f)(SOURCE) # exported model inference
223
223
 
224
224
 
225
+ @pytest.mark.skipif(not TORCH_1_9, reason="CoreML>=7.2 not supported with PyTorch<=1.8")
225
226
  @pytest.mark.skipif(WINDOWS, reason="CoreML not supported on Windows") # RuntimeError: BlobWriter not loaded
226
227
  @pytest.mark.skipif(IS_RASPBERRYPI, reason="CoreML not supported on Raspberry Pi")
227
228
  @pytest.mark.skipif(checks.IS_PYTHON_3_12, reason="CoreML not supported in Python 3.12")
@@ -640,26 +641,31 @@ def test_yolo_world():
640
641
  model.set_classes(["tree", "window"])
641
642
  model(ASSETS / "bus.jpg", conf=0.01)
642
643
 
643
- # Training from yaml
644
- model = YOLO("yolov8s-worldv2.yaml") # no YOLOv8n-world model yet
645
- model.train(data="coco8.yaml", epochs=2, imgsz=32, cache="disk", batch=-1, close_mosaic=1, name="yolo-world")
646
-
647
644
  model = YOLO("yolov8s-worldv2.pt") # no YOLOv8n-world model yet
648
- # val
649
- model.val(data="coco8.yaml", imgsz=32, save_txt=True, save_json=True)
650
- # Training from pretrain
651
- model.train(data="coco8.yaml", epochs=2, imgsz=32, cache="disk", batch=-1, close_mosaic=1, name="yolo-world")
645
+ # Training from pretrain, evaluation process is included at the final stage of training.
646
+ # Use dota8.yaml which has less categories to reduce the inference time of CLIP model
647
+ model.train(
648
+ data="dota8.yaml",
649
+ epochs=1,
650
+ imgsz=32,
651
+ cache="disk",
652
+ batch=4,
653
+ close_mosaic=1,
654
+ name="yolo-world",
655
+ save_txt=True,
656
+ save_json=True,
657
+ )
652
658
 
653
659
  # test WorWorldTrainerFromScratch
654
660
  from ultralytics.models.yolo.world.train_world import WorldTrainerFromScratch
655
661
 
656
662
  model = YOLO("yolov8s-worldv2.yaml") # no YOLOv8n-world model yet
657
663
  model.train(
658
- data={"train": {"yolo_data": ["coco8.yaml"]}, "val": {"yolo_data": ["coco8.yaml"]}},
659
- epochs=2,
664
+ data={"train": {"yolo_data": ["dota8.yaml"]}, "val": {"yolo_data": ["dota8.yaml"]}},
665
+ epochs=1,
660
666
  imgsz=32,
661
667
  cache="disk",
662
- batch=-1,
668
+ batch=4,
663
669
  close_mosaic=1,
664
670
  name="yolo-world",
665
671
  trainer=WorldTrainerFromScratch,
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.1"
3
+ __version__ = "8.2.3"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -66,13 +66,13 @@ CLI_HELP_MSG = f"""
66
66
  See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg'
67
67
 
68
68
  1. Train a detection model for 10 epochs with an initial learning_rate of 0.01
69
- yolo train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01
69
+ yolo train data=coco8.yaml model=yolov8n.pt epochs=10 lr0=0.01
70
70
 
71
71
  2. Predict a YouTube video using a pretrained segmentation model at image size 320:
72
72
  yolo predict model=yolov8n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320
73
73
 
74
74
  3. Val a pretrained detection model at batch-size 1 and image size 640:
75
- yolo val model=yolov8n.pt data=coco128.yaml batch=1 imgsz=640
75
+ yolo val model=yolov8n.pt data=coco8.yaml batch=1 imgsz=640
76
76
 
77
77
  4. Export a YOLOv8n classification model to ONNX format at image size 224 by 128 (no TASK required)
78
78
  yolo export model=yolov8n-cls.pt format=onnx imgsz=224,128
@@ -6,7 +6,7 @@ mode: train # (str) YOLO mode, i.e. train, val, predict, export, track, benchmar
6
6
 
7
7
  # Train settings -------------------------------------------------------------------------------------------------------
8
8
  model: # (str, optional) path to model file, i.e. yolov8n.pt, yolov8n.yaml
9
- data: # (str, optional) path to data file, i.e. coco128.yaml
9
+ data: # (str, optional) path to data file, i.e. coco8.yaml
10
10
  epochs: 100 # (int) number of epochs to train for
11
11
  time: # (float, optional) number of hours to train for, overrides epochs if supplied
12
12
  patience: 100 # (int) epochs to wait for no observable improvement for early stopping of training
@@ -3,7 +3,7 @@
3
3
  Train a model on a dataset.
4
4
 
5
5
  Usage:
6
- $ yolo mode=train model=yolov8n.pt data=coco128.yaml imgsz=640 epochs=100 batch=16
6
+ $ yolo mode=train model=yolov8n.pt data=coco8.yaml imgsz=640 epochs=100 batch=16
7
7
  """
8
8
 
9
9
  import gc
@@ -3,7 +3,7 @@
3
3
  Check a model's accuracy on a test or val split of a dataset.
4
4
 
5
5
  Usage:
6
- $ yolo mode=val model=yolov8n.pt data=coco128.yaml imgsz=640
6
+ $ yolo mode=val model=yolov8n.pt data=coco8.yaml imgsz=640
7
7
 
8
8
  Usage - formats:
9
9
  $ yolo mode=val model=yolov8n.pt # PyTorch
@@ -234,8 +234,11 @@ class AutoBackend(nn.Module):
234
234
  logger = trt.Logger(trt.Logger.INFO)
235
235
  # Read file
236
236
  with open(w, "rb") as f, trt.Runtime(logger) as runtime:
237
- meta_len = int.from_bytes(f.read(4), byteorder="little") # read metadata length
238
- metadata = json.loads(f.read(meta_len).decode("utf-8")) # read metadata
237
+ try:
238
+ meta_len = int.from_bytes(f.read(4), byteorder="little") # read metadata length
239
+ metadata = json.loads(f.read(meta_len).decode("utf-8")) # read metadata
240
+ except UnicodeDecodeError:
241
+ f.seek(0) # engine file may lack embedded Ultralytics metadata
239
242
  model = runtime.deserialize_cuda_engine(f.read()) # read engine
240
243
 
241
244
  # Model context
@@ -61,7 +61,7 @@ HELP_MSG = """
61
61
  model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
62
62
 
63
63
  # Use the model
64
- results = model.train(data="coco128.yaml", epochs=3) # train the model
64
+ results = model.train(data="coco8.yaml", epochs=3) # train the model
65
65
  results = model.val() # evaluate model performance on the validation set
66
66
  results = model('https://ultralytics.com/images/bus.jpg') # predict on an image
67
67
  success = model.export(format='onnx') # export the model to ONNX format
@@ -78,13 +78,13 @@ HELP_MSG = """
78
78
  See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg'
79
79
 
80
80
  - Train a detection model for 10 epochs with an initial learning_rate of 0.01
81
- yolo detect train data=coco128.yaml model=yolov8n.pt epochs=10 lr0=0.01
81
+ yolo detect train data=coco8.yaml model=yolov8n.pt epochs=10 lr0=0.01
82
82
 
83
83
  - Predict a YouTube video using a pretrained segmentation model at image size 320:
84
84
  yolo segment predict model=yolov8n-seg.pt source='https://youtu.be/LNwODJXcvt4' imgsz=320
85
85
 
86
86
  - Val a pretrained detection model at batch-size 1 and image size 640:
87
- yolo detect val model=yolov8n.pt data=coco128.yaml batch=1 imgsz=640
87
+ yolo detect val model=yolov8n.pt data=coco8.yaml batch=1 imgsz=640
88
88
 
89
89
  - Export a YOLOv8n classification model to ONNX format at image size 224 by 128 (no TASK required)
90
90
  yolo export model=yolov8n-cls.pt format=onnx imgsz=224,128
@@ -25,18 +25,23 @@ NCNN | `ncnn` | yolov8n_ncnn_model/
25
25
  """
26
26
 
27
27
  import glob
28
+ import os
28
29
  import platform
30
+ import re
31
+ import shutil
29
32
  import time
30
33
  from pathlib import Path
31
34
 
32
35
  import numpy as np
33
36
  import torch.cuda
37
+ import yaml
34
38
 
35
39
  from ultralytics import YOLO, YOLOWorld
36
40
  from ultralytics.cfg import TASK2DATA, TASK2METRIC
37
41
  from ultralytics.engine.exporter import export_formats
38
42
  from ultralytics.utils import ARM64, ASSETS, IS_JETSON, IS_RASPBERRYPI, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR
39
43
  from ultralytics.utils.checks import IS_PYTHON_3_12, check_requirements, check_yolo
44
+ from ultralytics.utils.downloads import safe_download
40
45
  from ultralytics.utils.files import file_size
41
46
  from ultralytics.utils.torch_utils import select_device
42
47
 
@@ -152,6 +157,133 @@ def benchmark(
152
157
  return df
153
158
 
154
159
 
160
+ class RF100Benchmark:
161
+ def __init__(self):
162
+ """Function for initialization of RF100Benchmark."""
163
+ self.ds_names = []
164
+ self.ds_cfg_list = []
165
+ self.rf = None
166
+ self.val_metrics = ["class", "images", "targets", "precision", "recall", "map50", "map95"]
167
+
168
+ def set_key(self, api_key):
169
+ """
170
+ Set Roboflow API key for processing.
171
+
172
+ Args:
173
+ api_key (str): The API key.
174
+ """
175
+
176
+ check_requirements("roboflow")
177
+ from roboflow import Roboflow
178
+
179
+ self.rf = Roboflow(api_key=api_key)
180
+
181
+ def parse_dataset(self, ds_link_txt="datasets_links.txt"):
182
+ """
183
+ Parse dataset links and downloads datasets.
184
+
185
+ Args:
186
+ ds_link_txt (str): Path to dataset_links file.
187
+ """
188
+
189
+ (shutil.rmtree("rf-100"), os.mkdir("rf-100")) if os.path.exists("rf-100") else os.mkdir("rf-100")
190
+ os.chdir("rf-100")
191
+ os.mkdir("ultralytics-benchmarks")
192
+ safe_download("https://ultralytics.com/assets/datasets_links.txt")
193
+
194
+ with open(ds_link_txt, "r") as file:
195
+ for line in file:
196
+ try:
197
+ _, url, workspace, project, version = re.split("/+", line.strip())
198
+ self.ds_names.append(project)
199
+ proj_version = f"{project}-{version}"
200
+ if not Path(proj_version).exists():
201
+ self.rf.workspace(workspace).project(project).version(version).download("yolov8")
202
+ else:
203
+ print("Dataset already downloaded.")
204
+ self.ds_cfg_list.append(Path.cwd() / proj_version / "data.yaml")
205
+ except Exception:
206
+ continue
207
+
208
+ return self.ds_names, self.ds_cfg_list
209
+
210
+ def fix_yaml(self, path):
211
+ """
212
+ Function to fix yaml train and val path.
213
+
214
+ Args:
215
+ path (str): YAML file path.
216
+ """
217
+
218
+ with open(path, "r") as file:
219
+ yaml_data = yaml.safe_load(file)
220
+ yaml_data["train"] = "train/images"
221
+ yaml_data["val"] = "valid/images"
222
+ with open(path, "w") as file:
223
+ yaml.safe_dump(yaml_data, file)
224
+
225
+ def evaluate(self, yaml_path, val_log_file, eval_log_file, list_ind):
226
+ """
227
+ Model evaluation on validation results.
228
+
229
+ Args:
230
+ yaml_path (str): YAML file path.
231
+ val_log_file (str): val_log_file path.
232
+ eval_log_file (str): eval_log_file path.
233
+ list_ind (int): Index for current dataset.
234
+ """
235
+ skip_symbols = ["🚀", "⚠️", "💡", "❌"]
236
+ with open(yaml_path) as stream:
237
+ class_names = yaml.safe_load(stream)["names"]
238
+ with open(val_log_file, "r", encoding="utf-8") as f:
239
+ lines = f.readlines()
240
+ eval_lines = []
241
+ for line in lines:
242
+ if any(symbol in line for symbol in skip_symbols):
243
+ continue
244
+ entries = line.split(" ")
245
+ entries = list(filter(lambda val: val != "", entries))
246
+ entries = [e.strip("\n") for e in entries]
247
+ start_class = False
248
+ for e in entries:
249
+ if e == "all":
250
+ if "(AP)" not in entries:
251
+ if "(AR)" not in entries:
252
+ # parse all
253
+ eval = {}
254
+ eval["class"] = entries[0]
255
+ eval["images"] = entries[1]
256
+ eval["targets"] = entries[2]
257
+ eval["precision"] = entries[3]
258
+ eval["recall"] = entries[4]
259
+ eval["map50"] = entries[5]
260
+ eval["map95"] = entries[6]
261
+ eval_lines.append(eval)
262
+
263
+ if e in class_names:
264
+ eval = {}
265
+ eval["class"] = entries[0]
266
+ eval["images"] = entries[1]
267
+ eval["targets"] = entries[2]
268
+ eval["precision"] = entries[3]
269
+ eval["recall"] = entries[4]
270
+ eval["map50"] = entries[5]
271
+ eval["map95"] = entries[6]
272
+ eval_lines.append(eval)
273
+ map_val = 0.0
274
+ if len(eval_lines) > 1:
275
+ print("There's more dicts")
276
+ for lst in eval_lines:
277
+ if lst["class"] == "all":
278
+ map_val = lst["map50"]
279
+ else:
280
+ print("There's only one dict res")
281
+ map_val = [res["map50"] for res in eval_lines][0]
282
+
283
+ with open(eval_log_file, "a") as f:
284
+ f.write(f"{self.ds_names[list_ind]}: {map_val}\n")
285
+
286
+
155
287
  class ProfileModels:
156
288
  """
157
289
  ProfileModels class for profiling different models on ONNX and TensorRT.
@@ -440,12 +440,9 @@ class Annotator:
440
440
  text_x = self.im.shape[1] - int(self.im.shape[1] * 0.025 + max_text_width)
441
441
  text_y = int(self.im.shape[0] * 0.025)
442
442
 
443
- # Calculate dynamic gap between each count value based on the width of the image
444
- dynamic_gap = max(1, self.im.shape[1] // 100) * tf
445
-
446
443
  for i, count in enumerate(counts):
447
444
  text_x_pos = text_x
448
- text_y_pos = text_y + i * dynamic_gap # Adjust vertical position with dynamic gap
445
+ text_y_pos = text_y + i * (max_text_height + 25 * tf)
449
446
 
450
447
  # Draw the border
451
448
  cv2.rectangle(
@@ -468,8 +465,6 @@ class Annotator:
468
465
  lineType=cv2.LINE_AA,
469
466
  )
470
467
 
471
- text_y_pos += tf * max_text_height
472
-
473
468
  @staticmethod
474
469
  def estimate_pose_angle(a, b, c):
475
470
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.1
3
+ Version: 8.2.3
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
@@ -168,7 +168,7 @@ model = YOLO("yolov8n.yaml") # build a new model from scratch
168
168
  model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
169
169
 
170
170
  # Use the model
171
- model.train(data="coco128.yaml", epochs=3) # train the model
171
+ model.train(data="coco8.yaml", epochs=3) # train the model
172
172
  metrics = model.val() # evaluate model performance on the validation set
173
173
  results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
174
174
  path = model.export(format="onnx") # export the model to ONNX format
File without changes
File without changes
File without changes