ultralytics 8.2.58__tar.gz → 8.2.59__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 (234) hide show
  1. {ultralytics-8.2.58/ultralytics.egg-info → ultralytics-8.2.59}/PKG-INFO +1 -1
  2. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/detect/val.py +23 -16
  4. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/obb/val.py +13 -7
  5. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/pose/val.py +20 -2
  6. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/segment/val.py +29 -9
  7. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/block.py +1 -1
  8. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/streamlit_inference.py +7 -5
  9. {ultralytics-8.2.58 → ultralytics-8.2.59/ultralytics.egg-info}/PKG-INFO +1 -1
  10. {ultralytics-8.2.58 → ultralytics-8.2.59}/LICENSE +0 -0
  11. {ultralytics-8.2.58 → ultralytics-8.2.59}/README.md +0 -0
  12. {ultralytics-8.2.58 → ultralytics-8.2.59}/pyproject.toml +0 -0
  13. {ultralytics-8.2.58 → ultralytics-8.2.59}/setup.cfg +0 -0
  14. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/__init__.py +0 -0
  15. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/conftest.py +0 -0
  16. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_cli.py +0 -0
  17. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_cuda.py +0 -0
  18. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_engine.py +0 -0
  19. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_explorer.py +0 -0
  20. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_exports.py +0 -0
  21. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_integrations.py +0 -0
  22. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_python.py +0 -0
  23. {ultralytics-8.2.58 → ultralytics-8.2.59}/tests/test_solutions.py +0 -0
  24. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/assets/bus.jpg +0 -0
  25. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/assets/zidane.jpg +0 -0
  26. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/__init__.py +0 -0
  27. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  28. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  29. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  30. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  31. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  32. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  33. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  34. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  35. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  36. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  37. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  38. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  39. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  40. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco.yaml +0 -0
  41. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  42. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  43. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  44. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  45. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  46. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  47. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  48. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  49. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  50. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  51. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/signature.yaml +0 -0
  52. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  53. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/datasets/xView.yaml +0 -0
  54. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/default.yaml +0 -0
  55. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  56. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  57. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  58. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  59. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  60. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  61. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  62. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  63. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  64. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  65. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  66. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  67. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  68. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  69. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  70. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  71. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  72. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  73. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  74. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  75. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  76. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  77. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  78. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  79. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  80. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  81. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  82. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  83. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  84. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  85. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  86. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  87. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  88. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  89. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  90. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  91. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  92. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  93. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  94. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  95. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  96. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  97. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/__init__.py +0 -0
  98. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/annotator.py +0 -0
  99. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/augment.py +0 -0
  100. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/base.py +0 -0
  101. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/build.py +0 -0
  102. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/converter.py +0 -0
  103. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/dataset.py +0 -0
  104. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/__init__.py +0 -0
  105. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/explorer.py +0 -0
  106. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/gui/__init__.py +0 -0
  107. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/gui/dash.py +0 -0
  108. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/explorer/utils.py +0 -0
  109. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/loaders.py +0 -0
  110. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/split_dota.py +0 -0
  111. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/data/utils.py +0 -0
  112. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/__init__.py +0 -0
  113. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/exporter.py +0 -0
  114. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/model.py +0 -0
  115. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/predictor.py +0 -0
  116. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/results.py +0 -0
  117. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/trainer.py +0 -0
  118. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/tuner.py +0 -0
  119. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/engine/validator.py +0 -0
  120. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/hub/__init__.py +0 -0
  121. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/hub/auth.py +0 -0
  122. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/hub/session.py +0 -0
  123. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/hub/utils.py +0 -0
  124. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/__init__.py +0 -0
  125. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/__init__.py +0 -0
  126. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/model.py +0 -0
  127. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/predict.py +0 -0
  128. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/prompt.py +0 -0
  129. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/utils.py +0 -0
  130. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/fastsam/val.py +0 -0
  131. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/nas/__init__.py +0 -0
  132. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/nas/model.py +0 -0
  133. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/nas/predict.py +0 -0
  134. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/nas/val.py +0 -0
  135. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/__init__.py +0 -0
  136. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/model.py +0 -0
  137. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/predict.py +0 -0
  138. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/train.py +0 -0
  139. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/rtdetr/val.py +0 -0
  140. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/__init__.py +0 -0
  141. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/amg.py +0 -0
  142. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/build.py +0 -0
  143. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/model.py +0 -0
  144. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/__init__.py +0 -0
  145. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/decoders.py +0 -0
  146. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/encoders.py +0 -0
  147. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/sam.py +0 -0
  148. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  149. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/modules/transformer.py +0 -0
  150. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/sam/predict.py +0 -0
  151. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/utils/__init__.py +0 -0
  152. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/utils/loss.py +0 -0
  153. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/utils/ops.py +0 -0
  154. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/__init__.py +0 -0
  155. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/classify/__init__.py +0 -0
  156. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/classify/predict.py +0 -0
  157. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/classify/train.py +0 -0
  158. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/classify/val.py +0 -0
  159. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/detect/__init__.py +0 -0
  160. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/detect/predict.py +0 -0
  161. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/detect/train.py +0 -0
  162. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/model.py +0 -0
  163. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/obb/__init__.py +0 -0
  164. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/obb/predict.py +0 -0
  165. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/obb/train.py +0 -0
  166. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/pose/__init__.py +0 -0
  167. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/pose/predict.py +0 -0
  168. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/pose/train.py +0 -0
  169. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/segment/__init__.py +0 -0
  170. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/segment/predict.py +0 -0
  171. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/segment/train.py +0 -0
  172. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/world/__init__.py +0 -0
  173. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/world/train.py +0 -0
  174. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/models/yolo/world/train_world.py +0 -0
  175. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/__init__.py +0 -0
  176. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/autobackend.py +0 -0
  177. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/__init__.py +0 -0
  178. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/conv.py +0 -0
  179. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/head.py +0 -0
  180. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/transformer.py +0 -0
  181. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/modules/utils.py +0 -0
  182. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/nn/tasks.py +0 -0
  183. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/__init__.py +0 -0
  184. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/ai_gym.py +0 -0
  185. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/analytics.py +0 -0
  186. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/distance_calculation.py +0 -0
  187. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/heatmap.py +0 -0
  188. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/object_counter.py +0 -0
  189. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/parking_management.py +0 -0
  190. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/queue_management.py +0 -0
  191. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/solutions/speed_estimation.py +0 -0
  192. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/__init__.py +0 -0
  193. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/basetrack.py +0 -0
  194. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/bot_sort.py +0 -0
  195. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/byte_tracker.py +0 -0
  196. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/track.py +0 -0
  197. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/utils/__init__.py +0 -0
  198. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/utils/gmc.py +0 -0
  199. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  200. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/trackers/utils/matching.py +0 -0
  201. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/__init__.py +0 -0
  202. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/autobatch.py +0 -0
  203. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/benchmarks.py +0 -0
  204. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/__init__.py +0 -0
  205. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/base.py +0 -0
  206. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/clearml.py +0 -0
  207. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/comet.py +0 -0
  208. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/dvc.py +0 -0
  209. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/hub.py +0 -0
  210. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/mlflow.py +0 -0
  211. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/neptune.py +0 -0
  212. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/raytune.py +0 -0
  213. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  214. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/callbacks/wb.py +0 -0
  215. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/checks.py +0 -0
  216. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/dist.py +0 -0
  217. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/downloads.py +0 -0
  218. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/errors.py +0 -0
  219. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/files.py +0 -0
  220. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/instance.py +0 -0
  221. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/loss.py +0 -0
  222. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/metrics.py +0 -0
  223. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/ops.py +0 -0
  224. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/patches.py +0 -0
  225. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/plotting.py +0 -0
  226. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/tal.py +0 -0
  227. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/torch_utils.py +0 -0
  228. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/triton.py +0 -0
  229. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics/utils/tuner.py +0 -0
  230. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics.egg-info/SOURCES.txt +0 -0
  231. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics.egg-info/dependency_links.txt +0 -0
  232. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics.egg-info/entry_points.txt +0 -0
  233. {ultralytics-8.2.58 → ultralytics-8.2.59}/ultralytics.egg-info/requires.txt +0 -0
  234. {ultralytics-8.2.58 → ultralytics-8.2.59}/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.58
3
+ Version: 8.2.59
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.58"
3
+ __version__ = "8.2.59"
4
4
 
5
5
  import os
6
6
 
@@ -41,6 +41,11 @@ class DetectionValidator(BaseValidator):
41
41
  self.iouv = torch.linspace(0.5, 0.95, 10) # IoU vector for mAP@0.5:0.95
42
42
  self.niou = self.iouv.numel()
43
43
  self.lb = [] # for autolabelling
44
+ if self.args.save_hybrid:
45
+ LOGGER.warning(
46
+ "WARNING ⚠️ 'save_hybrid=True' will append ground truth to predictions for autolabelling.\n"
47
+ "WARNING ⚠️ 'save_hybrid=True' will cause incorrect mAP.\n"
48
+ )
44
49
 
45
50
  def preprocess(self, batch):
46
51
  """Preprocesses batch of images for YOLO training."""
@@ -53,14 +58,10 @@ class DetectionValidator(BaseValidator):
53
58
  height, width = batch["img"].shape[2:]
54
59
  nb = len(batch["img"])
55
60
  bboxes = batch["bboxes"] * torch.tensor((width, height, width, height), device=self.device)
56
- self.lb = (
57
- [
58
- torch.cat([batch["cls"][batch["batch_idx"] == i], bboxes[batch["batch_idx"] == i]], dim=-1)
59
- for i in range(nb)
60
- ]
61
- if self.args.save_hybrid
62
- else []
63
- ) # for autolabelling
61
+ self.lb = [
62
+ torch.cat([batch["cls"][batch["batch_idx"] == i], bboxes[batch["batch_idx"] == i]], dim=-1)
63
+ for i in range(nb)
64
+ ]
64
65
 
65
66
  return batch
66
67
 
@@ -159,8 +160,12 @@ class DetectionValidator(BaseValidator):
159
160
  if self.args.save_json:
160
161
  self.pred_to_json(predn, batch["im_file"][si])
161
162
  if self.args.save_txt:
162
- file = self.save_dir / "labels" / f'{Path(batch["im_file"][si]).stem}.txt'
163
- self.save_one_txt(predn, self.args.save_conf, pbatch["ori_shape"], file)
163
+ self.save_one_txt(
164
+ predn,
165
+ self.args.save_conf,
166
+ pbatch["ori_shape"],
167
+ self.save_dir / "labels" / f'{Path(batch["im_file"][si]).stem}.txt',
168
+ )
164
169
 
165
170
  def finalize_metrics(self, *args, **kwargs):
166
171
  """Set final values for metrics speed and confusion matrix."""
@@ -260,12 +265,14 @@ class DetectionValidator(BaseValidator):
260
265
 
261
266
  def save_one_txt(self, predn, save_conf, shape, file):
262
267
  """Save YOLO detections to a txt file in normalized coordinates in a specific format."""
263
- gn = torch.tensor(shape)[[1, 0, 1, 0]] # normalization gain whwh
264
- for *xyxy, conf, cls in predn.tolist():
265
- xywh = (ops.xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist() # normalized xywh
266
- line = (cls, *xywh, conf) if save_conf else (cls, *xywh) # label format
267
- with open(file, "a") as f:
268
- f.write(("%g " * len(line)).rstrip() % line + "\n")
268
+ from ultralytics.engine.results import Results
269
+
270
+ Results(
271
+ np.zeros((shape[0], shape[1]), dtype=np.uint8),
272
+ path=None,
273
+ names=self.names,
274
+ boxes=predn[:, :6],
275
+ ).save_txt(file, save_conf=save_conf)
269
276
 
270
277
  def pred_to_json(self, predn, filename):
271
278
  """Serialize YOLO predictions to COCO json format."""
@@ -130,13 +130,19 @@ class OBBValidator(DetectionValidator):
130
130
 
131
131
  def save_one_txt(self, predn, save_conf, shape, file):
132
132
  """Save YOLO detections to a txt file in normalized coordinates in a specific format."""
133
- gn = torch.tensor(shape)[[1, 0]] # normalization gain whwh
134
- for *xywh, conf, cls, angle in predn.tolist():
135
- xywha = torch.tensor([*xywh, angle]).view(1, 5)
136
- xyxyxyxy = (ops.xywhr2xyxyxyxy(xywha) / gn).view(-1).tolist() # normalized xywh
137
- line = (cls, *xyxyxyxy, conf) if save_conf else (cls, *xyxyxyxy) # label format
138
- with open(file, "a") as f:
139
- f.write(("%g " * len(line)).rstrip() % line + "\n")
133
+ import numpy as np
134
+
135
+ from ultralytics.engine.results import Results
136
+
137
+ rboxes = torch.cat([predn[:, :4], predn[:, -1:]], dim=-1)
138
+ # xywh, r, conf, cls
139
+ obb = torch.cat([rboxes, predn[:, 4:6]], dim=-1)
140
+ Results(
141
+ np.zeros((shape[0], shape[1]), dtype=np.uint8),
142
+ path=None,
143
+ names=self.names,
144
+ obb=obb,
145
+ ).save_txt(file, save_conf=save_conf)
140
146
 
141
147
  def eval_json(self, stats):
142
148
  """Evaluates YOLO output in JSON format and returns performance statistics."""
@@ -147,8 +147,14 @@ class PoseValidator(DetectionValidator):
147
147
  # Save
148
148
  if self.args.save_json:
149
149
  self.pred_to_json(predn, batch["im_file"][si])
150
- # if self.args.save_txt:
151
- # save_one_txt(predn, save_conf, shape, file=save_dir / 'labels' / f'{path.stem}.txt')
150
+ if self.args.save_txt:
151
+ self.save_one_txt(
152
+ predn,
153
+ pred_kpts,
154
+ self.args.save_conf,
155
+ pbatch["ori_shape"],
156
+ self.save_dir / "labels" / f'{Path(batch["im_file"][si]).stem}.txt',
157
+ )
152
158
 
153
159
  def _process_batch(self, detections, gt_bboxes, gt_cls, pred_kpts=None, gt_kpts=None):
154
160
  """
@@ -217,6 +223,18 @@ class PoseValidator(DetectionValidator):
217
223
  on_plot=self.on_plot,
218
224
  ) # pred
219
225
 
226
+ def save_one_txt(self, predn, pred_kpts, save_conf, shape, file):
227
+ """Save YOLO detections to a txt file in normalized coordinates in a specific format."""
228
+ from ultralytics.engine.results import Results
229
+
230
+ Results(
231
+ np.zeros((shape[0], shape[1]), dtype=np.uint8),
232
+ path=None,
233
+ names=self.names,
234
+ boxes=predn[:, :6],
235
+ keypoints=pred_kpts,
236
+ ).save_txt(file, save_conf=save_conf)
237
+
220
238
  def pred_to_json(self, predn, filename):
221
239
  """Converts YOLO predictions to COCO JSON format."""
222
240
  stem = Path(filename).stem
@@ -48,9 +48,8 @@ class SegmentationValidator(DetectionValidator):
48
48
  self.plot_masks = []
49
49
  if self.args.save_json:
50
50
  check_requirements("pycocotools>=2.0.6")
51
- self.process = ops.process_mask_upsample # more accurate
52
- else:
53
- self.process = ops.process_mask # faster
51
+ # more accurate vs faster
52
+ self.process = ops.process_mask_upsample if self.args.save_json or self.args.save_txt else ops.process_mask
54
53
  self.stats = dict(tp_m=[], tp=[], conf=[], pred_cls=[], target_cls=[], target_img=[])
55
54
 
56
55
  def get_desc(self):
@@ -148,14 +147,23 @@ class SegmentationValidator(DetectionValidator):
148
147
 
149
148
  # Save
150
149
  if self.args.save_json:
151
- pred_masks = ops.scale_image(
152
- pred_masks.permute(1, 2, 0).contiguous().cpu().numpy(),
150
+ self.pred_to_json(
151
+ predn,
152
+ batch["im_file"][si],
153
+ ops.scale_image(
154
+ pred_masks.permute(1, 2, 0).contiguous().cpu().numpy(),
155
+ pbatch["ori_shape"],
156
+ ratio_pad=batch["ratio_pad"][si],
157
+ ),
158
+ )
159
+ if self.args.save_txt:
160
+ self.save_one_txt(
161
+ predn,
162
+ pred_masks,
163
+ self.args.save_conf,
153
164
  pbatch["ori_shape"],
154
- ratio_pad=batch["ratio_pad"][si],
165
+ self.save_dir / "labels" / f'{Path(batch["im_file"][si]).stem}.txt',
155
166
  )
156
- self.pred_to_json(predn, batch["im_file"][si], pred_masks)
157
- # if self.args.save_txt:
158
- # save_one_txt(predn, save_conf, shape, file=save_dir / 'labels' / f'{path.stem}.txt')
159
167
 
160
168
  def finalize_metrics(self, *args, **kwargs):
161
169
  """Sets speed and confusion matrix for evaluation metrics."""
@@ -235,6 +243,18 @@ class SegmentationValidator(DetectionValidator):
235
243
  ) # pred
236
244
  self.plot_masks.clear()
237
245
 
246
+ def save_one_txt(self, predn, pred_masks, save_conf, shape, file):
247
+ """Save YOLO detections to a txt file in normalized coordinates in a specific format."""
248
+ from ultralytics.engine.results import Results
249
+
250
+ Results(
251
+ np.zeros((shape[0], shape[1]), dtype=np.uint8),
252
+ path=None,
253
+ names=self.names,
254
+ boxes=predn[:, :6],
255
+ masks=pred_masks,
256
+ ).save_txt(file, save_conf=save_conf)
257
+
238
258
  def pred_to_json(self, predn, filename, pred_masks):
239
259
  """
240
260
  Save one JSON result.
@@ -855,7 +855,7 @@ class Attention(nn.Module):
855
855
  self.head_dim = dim // num_heads
856
856
  self.key_dim = int(self.head_dim * attn_ratio)
857
857
  self.scale = self.key_dim**-0.5
858
- nh_kd = nh_kd = self.key_dim * num_heads
858
+ nh_kd = self.key_dim * num_heads
859
859
  h = dim + nh_kd * 2
860
860
  self.qkv = Conv(dim, h, 1, act=False)
861
861
  self.proj = Conv(dim, dim, 1, act=False)
@@ -99,24 +99,26 @@ def inference():
99
99
 
100
100
  stop_button = st.button("Stop") # Button to stop the inference
101
101
 
102
- prev_time = 0
103
102
  while videocapture.isOpened():
104
103
  success, frame = videocapture.read()
105
104
  if not success:
106
105
  st.warning("Failed to read frame from webcam. Please make sure the webcam is connected properly.")
107
106
  break
108
107
 
109
- curr_time = time.time()
110
- fps = 1 / (curr_time - prev_time)
111
- prev_time = curr_time
108
+ prev_time = time.time()
112
109
 
113
110
  # Store model predictions
114
- if enable_trk:
111
+ if enable_trk == "Yes":
115
112
  results = model.track(frame, conf=conf, iou=iou, classes=selected_ind, persist=True)
116
113
  else:
117
114
  results = model(frame, conf=conf, iou=iou, classes=selected_ind)
118
115
  annotated_frame = results[0].plot() # Add annotations on frame
119
116
 
117
+ # Calculate model FPS
118
+ curr_time = time.time()
119
+ fps = 1 / (curr_time - prev_time)
120
+ prev_time = curr_time
121
+
120
122
  # display frame
121
123
  org_frame.image(frame, channels="BGR")
122
124
  ann_frame.image(annotated_frame, channels="BGR")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.58
3
+ Version: 8.2.59
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
File without changes
File without changes
File without changes