ultralytics 8.1.33__tar.gz → 8.1.35__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 (210) hide show
  1. {ultralytics-8.1.33/ultralytics.egg-info → ultralytics-8.1.35}/PKG-INFO +1 -1
  2. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/engine/exporter.py +1 -1
  4. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/engine/results.py +21 -11
  5. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/nn/modules/block.py +7 -21
  6. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/solutions/ai_gym.py +0 -8
  7. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/solutions/object_counter.py +1 -1
  8. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/checks.py +2 -0
  9. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/metrics.py +2 -2
  10. {ultralytics-8.1.33 → ultralytics-8.1.35/ultralytics.egg-info}/PKG-INFO +1 -1
  11. {ultralytics-8.1.33 → ultralytics-8.1.35}/LICENSE +0 -0
  12. {ultralytics-8.1.33 → ultralytics-8.1.35}/README.md +0 -0
  13. {ultralytics-8.1.33 → ultralytics-8.1.35}/pyproject.toml +0 -0
  14. {ultralytics-8.1.33 → ultralytics-8.1.35}/setup.cfg +0 -0
  15. {ultralytics-8.1.33 → ultralytics-8.1.35}/tests/test_cli.py +0 -0
  16. {ultralytics-8.1.33 → ultralytics-8.1.35}/tests/test_cuda.py +0 -0
  17. {ultralytics-8.1.33 → ultralytics-8.1.35}/tests/test_engine.py +0 -0
  18. {ultralytics-8.1.33 → ultralytics-8.1.35}/tests/test_explorer.py +0 -0
  19. {ultralytics-8.1.33 → ultralytics-8.1.35}/tests/test_integrations.py +0 -0
  20. {ultralytics-8.1.33 → ultralytics-8.1.35}/tests/test_python.py +0 -0
  21. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/assets/bus.jpg +0 -0
  22. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/assets/zidane.jpg +0 -0
  23. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/__init__.py +0 -0
  24. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  25. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  26. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  27. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  28. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  29. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  30. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  31. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  32. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  33. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  34. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  35. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  36. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  37. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/coco.yaml +0 -0
  38. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  39. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  40. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  41. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  42. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  43. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  44. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  45. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  46. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  47. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  48. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/datasets/xView.yaml +0 -0
  49. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/default.yaml +0 -0
  50. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  51. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  52. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  53. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  54. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  55. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  56. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  57. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  58. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  59. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  60. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  61. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  62. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  63. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  64. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  65. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  66. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  67. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  68. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  69. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  70. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  71. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  72. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  73. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  74. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  75. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  76. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  77. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  78. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  79. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  80. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  81. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/__init__.py +0 -0
  82. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/annotator.py +0 -0
  83. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/augment.py +0 -0
  84. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/base.py +0 -0
  85. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/build.py +0 -0
  86. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/converter.py +0 -0
  87. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/dataset.py +0 -0
  88. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/explorer/__init__.py +0 -0
  89. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/explorer/explorer.py +0 -0
  90. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/explorer/gui/__init__.py +0 -0
  91. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/explorer/gui/dash.py +0 -0
  92. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/explorer/utils.py +0 -0
  93. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/loaders.py +0 -0
  94. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/split_dota.py +0 -0
  95. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/data/utils.py +0 -0
  96. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/engine/__init__.py +0 -0
  97. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/engine/model.py +0 -0
  98. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/engine/predictor.py +0 -0
  99. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/engine/trainer.py +0 -0
  100. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/engine/tuner.py +0 -0
  101. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/engine/validator.py +0 -0
  102. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/hub/__init__.py +0 -0
  103. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/hub/auth.py +0 -0
  104. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/hub/session.py +0 -0
  105. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/hub/utils.py +0 -0
  106. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/__init__.py +0 -0
  107. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/fastsam/__init__.py +0 -0
  108. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/fastsam/model.py +0 -0
  109. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/fastsam/predict.py +0 -0
  110. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/fastsam/prompt.py +0 -0
  111. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/fastsam/utils.py +0 -0
  112. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/fastsam/val.py +0 -0
  113. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/nas/__init__.py +0 -0
  114. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/nas/model.py +0 -0
  115. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/nas/predict.py +0 -0
  116. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/nas/val.py +0 -0
  117. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/rtdetr/__init__.py +0 -0
  118. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/rtdetr/model.py +0 -0
  119. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/rtdetr/predict.py +0 -0
  120. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/rtdetr/train.py +0 -0
  121. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/rtdetr/val.py +0 -0
  122. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/__init__.py +0 -0
  123. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/amg.py +0 -0
  124. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/build.py +0 -0
  125. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/model.py +0 -0
  126. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/modules/__init__.py +0 -0
  127. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/modules/decoders.py +0 -0
  128. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/modules/encoders.py +0 -0
  129. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/modules/sam.py +0 -0
  130. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  131. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/modules/transformer.py +0 -0
  132. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/sam/predict.py +0 -0
  133. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/utils/__init__.py +0 -0
  134. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/utils/loss.py +0 -0
  135. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/utils/ops.py +0 -0
  136. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/__init__.py +0 -0
  137. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/classify/__init__.py +0 -0
  138. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/classify/predict.py +0 -0
  139. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/classify/train.py +0 -0
  140. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/classify/val.py +0 -0
  141. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/detect/__init__.py +0 -0
  142. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/detect/predict.py +0 -0
  143. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/detect/train.py +0 -0
  144. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/detect/val.py +0 -0
  145. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/model.py +0 -0
  146. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/obb/__init__.py +0 -0
  147. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/obb/predict.py +0 -0
  148. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/obb/train.py +0 -0
  149. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/obb/val.py +0 -0
  150. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/pose/__init__.py +0 -0
  151. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/pose/predict.py +0 -0
  152. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/pose/train.py +0 -0
  153. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/pose/val.py +0 -0
  154. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/segment/__init__.py +0 -0
  155. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/segment/predict.py +0 -0
  156. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/segment/train.py +0 -0
  157. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/models/yolo/segment/val.py +0 -0
  158. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/nn/__init__.py +0 -0
  159. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/nn/autobackend.py +0 -0
  160. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/nn/modules/__init__.py +0 -0
  161. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/nn/modules/conv.py +0 -0
  162. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/nn/modules/head.py +0 -0
  163. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/nn/modules/transformer.py +0 -0
  164. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/nn/modules/utils.py +0 -0
  165. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/nn/tasks.py +0 -0
  166. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/solutions/__init__.py +0 -0
  167. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/solutions/distance_calculation.py +0 -0
  168. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/solutions/heatmap.py +0 -0
  169. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/solutions/speed_estimation.py +0 -0
  170. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/trackers/__init__.py +0 -0
  171. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/trackers/basetrack.py +0 -0
  172. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/trackers/bot_sort.py +0 -0
  173. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/trackers/byte_tracker.py +0 -0
  174. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/trackers/track.py +0 -0
  175. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/trackers/utils/__init__.py +0 -0
  176. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/trackers/utils/gmc.py +0 -0
  177. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  178. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/trackers/utils/matching.py +0 -0
  179. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/__init__.py +0 -0
  180. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/autobatch.py +0 -0
  181. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/benchmarks.py +0 -0
  182. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/__init__.py +0 -0
  183. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/base.py +0 -0
  184. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/clearml.py +0 -0
  185. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/comet.py +0 -0
  186. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/dvc.py +0 -0
  187. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/hub.py +0 -0
  188. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/mlflow.py +0 -0
  189. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/neptune.py +0 -0
  190. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/raytune.py +0 -0
  191. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  192. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/callbacks/wb.py +0 -0
  193. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/dist.py +0 -0
  194. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/downloads.py +0 -0
  195. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/errors.py +0 -0
  196. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/files.py +0 -0
  197. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/instance.py +0 -0
  198. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/loss.py +0 -0
  199. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/ops.py +0 -0
  200. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/patches.py +0 -0
  201. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/plotting.py +0 -0
  202. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/tal.py +0 -0
  203. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/torch_utils.py +0 -0
  204. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/triton.py +0 -0
  205. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics/utils/tuner.py +0 -0
  206. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics.egg-info/SOURCES.txt +0 -0
  207. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics.egg-info/dependency_links.txt +0 -0
  208. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics.egg-info/entry_points.txt +0 -0
  209. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics.egg-info/requires.txt +0 -0
  210. {ultralytics-8.1.33 → ultralytics-8.1.35}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.33
3
+ Version: 8.1.35
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.1.33"
3
+ __version__ = "8.1.35"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -459,7 +459,7 @@ class Exporter:
459
459
  # Generate calibration data for integer quantization
460
460
  LOGGER.info(f"{prefix} collecting INT8 calibration images from 'data={self.args.data}'")
461
461
  data = check_det_dataset(self.args.data)
462
- dataset = YOLODataset(data["val"], data=data, imgsz=self.imgsz[0], augment=False)
462
+ dataset = YOLODataset(data["val"], data=data, task=self.model.task, imgsz=self.imgsz[0], augment=False)
463
463
  n = len(dataset)
464
464
  if n < 300:
465
465
  LOGGER.warning(f"{prefix} WARNING ⚠️ >300 images recommended for INT8 calibration, found {n} images.")
@@ -385,10 +385,10 @@ class Results(SimpleClass):
385
385
  BGR=True,
386
386
  )
387
387
 
388
- def summary(self, normalize=False):
388
+ def summary(self, normalize=False, decimals=5):
389
389
  """Convert the results to a summarized format."""
390
390
  if self.probs is not None:
391
- LOGGER.warning("Warning: Classify task do not support `summary` and `tojson` yet.")
391
+ LOGGER.warning("Warning: Classify results do not support the `summary()` method yet.")
392
392
  return
393
393
 
394
394
  # Create list of detection dictionaries
@@ -396,28 +396,38 @@ class Results(SimpleClass):
396
396
  data = self.boxes.data.cpu().tolist()
397
397
  h, w = self.orig_shape if normalize else (1, 1)
398
398
  for i, row in enumerate(data): # xyxy, track_id if tracking, conf, class_id
399
- box = {"x1": row[0] / w, "y1": row[1] / h, "x2": row[2] / w, "y2": row[3] / h}
400
- conf = row[-2]
399
+ box = {
400
+ "x1": round(row[0] / w, decimals),
401
+ "y1": round(row[1] / h, decimals),
402
+ "x2": round(row[2] / w, decimals),
403
+ "y2": round(row[3] / h, decimals),
404
+ }
405
+ conf = round(row[-2], decimals)
401
406
  class_id = int(row[-1])
402
- name = self.names[class_id]
403
- result = {"name": name, "class": class_id, "confidence": conf, "box": box}
407
+ result = {"name": self.names[class_id], "class": class_id, "confidence": conf, "box": box}
404
408
  if self.boxes.is_track:
405
409
  result["track_id"] = int(row[-3]) # track ID
406
410
  if self.masks:
407
- x, y = self.masks.xy[i][:, 0], self.masks.xy[i][:, 1] # numpy array
408
- result["segments"] = {"x": (x / w).tolist(), "y": (y / h).tolist()}
411
+ result["segments"] = {
412
+ "x": (self.masks.xy[i][:, 0] / w).round(decimals).tolist(),
413
+ "y": (self.masks.xy[i][:, 1] / h).round(decimals).tolist(),
414
+ }
409
415
  if self.keypoints is not None:
410
416
  x, y, visible = self.keypoints[i].data[0].cpu().unbind(dim=1) # torch Tensor
411
- result["keypoints"] = {"x": (x / w).tolist(), "y": (y / h).tolist(), "visible": visible.tolist()}
417
+ result["keypoints"] = {
418
+ "x": (x / w).numpy().round(decimals).tolist(), # decimals named argument required
419
+ "y": (y / h).numpy().round(decimals).tolist(),
420
+ "visible": visible.numpy().round(decimals).tolist(),
421
+ }
412
422
  results.append(result)
413
423
 
414
424
  return results
415
425
 
416
- def tojson(self, normalize=False):
426
+ def tojson(self, normalize=False, decimals=5):
417
427
  """Convert the results to JSON format."""
418
428
  import json
419
429
 
420
- return json.dumps(self.summary(normalize=normalize), indent=2)
430
+ return json.dumps(self.summary(normalize=normalize, decimals=decimals), indent=2)
421
431
 
422
432
 
423
433
  class Boxes(BaseTensor):
@@ -171,10 +171,9 @@ class SPPF(nn.Module):
171
171
 
172
172
  def forward(self, x):
173
173
  """Forward pass through Ghost Convolution block."""
174
- x = self.cv1(x)
175
- y1 = self.m(x)
176
- y2 = self.m(y1)
177
- return self.cv2(torch.cat((x, y1, y2, self.m(y2)), 1))
174
+ y = [self.cv1(x)]
175
+ y.extend(self.m(y[-1]) for _ in range(3))
176
+ return self.cv2(torch.cat(y, 1))
178
177
 
179
178
 
180
179
  class C1(nn.Module):
@@ -555,40 +554,27 @@ class BNContrastiveHead(nn.Module):
555
554
  return x * self.logit_scale.exp() + self.bias
556
555
 
557
556
 
558
- class RepBottleneck(nn.Module):
557
+ class RepBottleneck(Bottleneck):
559
558
  """Rep bottleneck."""
560
559
 
561
560
  def __init__(self, c1, c2, shortcut=True, g=1, k=(3, 3), e=0.5):
562
561
  """Initializes a RepBottleneck module with customizable in/out channels, shortcut option, groups and expansion
563
562
  ratio.
564
563
  """
565
- super().__init__()
564
+ super().__init__(c1, c2, shortcut, g, k, e)
566
565
  c_ = int(c2 * e) # hidden channels
567
566
  self.cv1 = RepConv(c1, c_, k[0], 1)
568
- self.cv2 = Conv(c_, c2, k[1], 1, g=g)
569
- self.add = shortcut and c1 == c2
570
-
571
- def forward(self, x):
572
- """Forward pass through RepBottleneck layer."""
573
- return x + self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))
574
567
 
575
568
 
576
- class RepCSP(nn.Module):
569
+ class RepCSP(C3):
577
570
  """Rep CSP Bottleneck with 3 convolutions."""
578
571
 
579
572
  def __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5):
580
573
  """Initializes RepCSP layer with given channels, repetitions, shortcut, groups and expansion ratio."""
581
- super().__init__()
574
+ super().__init__(c1, c2, n, shortcut, g, e)
582
575
  c_ = int(c2 * e) # hidden channels
583
- self.cv1 = Conv(c1, c_, 1, 1)
584
- self.cv2 = Conv(c1, c_, 1, 1)
585
- self.cv3 = Conv(2 * c_, c2, 1) # optional act=FReLU(c2)
586
576
  self.m = nn.Sequential(*(RepBottleneck(c_, c_, shortcut, g, e=1.0) for _ in range(n)))
587
577
 
588
- def forward(self, x):
589
- """Forward pass through RepCSP layer."""
590
- return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), 1))
591
-
592
578
 
593
579
  class RepNCSPELAN4(nn.Module):
594
580
  """CSP-ELAN."""
@@ -80,14 +80,6 @@ class AIGym:
80
80
  self.keypoints = results[0].keypoints.data
81
81
  self.annotator = Annotator(im0, line_width=2)
82
82
 
83
- num_keypoints = len(results[0])
84
-
85
- # Resize self.angle, self.count, and self.stage if the number of keypoints has changed
86
- if len(self.angle) != num_keypoints:
87
- self.angle = [0] * num_keypoints
88
- self.count = [0] * num_keypoints
89
- self.stage = ["-" for _ in range(num_keypoints)]
90
-
91
83
  for ind, k in enumerate(reversed(self.keypoints)):
92
84
  if self.pose_type in ["pushup", "pullup"]:
93
85
  self.angle[ind] = self.annotator.estimate_pose_angle(
@@ -171,7 +171,7 @@ class ObjectCounter:
171
171
  # Extract tracks
172
172
  for box, track_id, cls in zip(boxes, track_ids, clss):
173
173
  # Draw bounding box
174
- self.annotator.box_label(box, label=f"{track_id}:{self.names[cls]}", color=colors(int(cls), True))
174
+ self.annotator.box_label(box, label=f"{track_id}:{self.names[cls]}", color=colors(int(track_id), True))
175
175
 
176
176
  # Draw Tracks
177
177
  track_line = self.track_history[track_id]
@@ -142,6 +142,8 @@ def check_imgsz(imgsz, stride=32, min_dim=1, max_dim=2, floor=0):
142
142
  imgsz = [imgsz]
143
143
  elif isinstance(imgsz, (list, tuple)):
144
144
  imgsz = list(imgsz)
145
+ elif isinstance(imgsz, str): # i.e. '640' or '[640,640]'
146
+ imgsz = [int(imgsz)] if imgsz.isnumeric() else eval(imgsz)
145
147
  else:
146
148
  raise TypeError(
147
149
  f"'imgsz={imgsz}' is of invalid type {type(imgsz).__name__}. "
@@ -167,7 +167,7 @@ def kpt_iou(kpt1, kpt2, area, sigma, eps=1e-7):
167
167
  d = (kpt1[:, None, :, 0] - kpt2[..., 0]).pow(2) + (kpt1[:, None, :, 1] - kpt2[..., 1]).pow(2) # (N, M, 17)
168
168
  sigma = torch.tensor(sigma, device=kpt1.device, dtype=kpt1.dtype) # (17, )
169
169
  kpt_mask = kpt1[..., 2] != 0 # (N, 17)
170
- e = d / (2 * sigma).pow(2) / (area[:, None, None] + eps) / 2 # from cocoeval
170
+ e = d / ((2 * sigma).pow(2) * (area[:, None, None] + eps) * 2) # from cocoeval
171
171
  # e = d / ((area[None, :, None] + eps) * sigma) ** 2 / 2 # from formula
172
172
  return ((-e).exp() * kpt_mask[:, None]).sum(-1) / (kpt_mask.sum(-1)[:, None] + eps)
173
173
 
@@ -402,7 +402,7 @@ class ConfusionMatrix:
402
402
 
403
403
  fig, ax = plt.subplots(1, 1, figsize=(12, 9), tight_layout=True)
404
404
  nc, nn = self.nc, len(names) # number of classes, names
405
- sn.set(font_scale=1.0 if nc < 50 else 0.8) # for label size
405
+ sn.set_theme(font_scale=1.0 if nc < 50 else 0.8) # for label size
406
406
  labels = (0 < nn < 99) and (nn == nc) # apply names to ticklabels
407
407
  ticklabels = (list(names) + ["background"]) if labels else "auto"
408
408
  with warnings.catch_warnings():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.33
3
+ Version: 8.1.35
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