ultralytics 8.1.8__tar.gz → 8.1.10__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 (204) hide show
  1. {ultralytics-8.1.8/ultralytics.egg-info → ultralytics-8.1.10}/PKG-INFO +2 -2
  2. {ultralytics-8.1.8 → ultralytics-8.1.10}/pyproject.toml +1 -1
  3. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/__init__.py +1 -1
  4. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/engine/trainer.py +1 -1
  5. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/modules/decoders.py +1 -1
  6. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/modules/tiny_encoder.py +1 -1
  7. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/segment/predict.py +1 -1
  8. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/nn/modules/head.py +11 -10
  9. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/solutions/heatmap.py +2 -1
  10. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/solutions/object_counter.py +1 -1
  11. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/solutions/speed_estimation.py +1 -1
  12. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/trackers/utils/gmc.py +10 -10
  13. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/mlflow.py +6 -2
  14. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/metrics.py +3 -3
  15. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/tal.py +2 -2
  16. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/torch_utils.py +2 -2
  17. {ultralytics-8.1.8 → ultralytics-8.1.10/ultralytics.egg-info}/PKG-INFO +2 -2
  18. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics.egg-info/requires.txt +1 -1
  19. {ultralytics-8.1.8 → ultralytics-8.1.10}/LICENSE +0 -0
  20. {ultralytics-8.1.8 → ultralytics-8.1.10}/README.md +0 -0
  21. {ultralytics-8.1.8 → ultralytics-8.1.10}/setup.cfg +0 -0
  22. {ultralytics-8.1.8 → ultralytics-8.1.10}/tests/test_cli.py +0 -0
  23. {ultralytics-8.1.8 → ultralytics-8.1.10}/tests/test_cuda.py +0 -0
  24. {ultralytics-8.1.8 → ultralytics-8.1.10}/tests/test_engine.py +0 -0
  25. {ultralytics-8.1.8 → ultralytics-8.1.10}/tests/test_explorer.py +0 -0
  26. {ultralytics-8.1.8 → ultralytics-8.1.10}/tests/test_integrations.py +0 -0
  27. {ultralytics-8.1.8 → ultralytics-8.1.10}/tests/test_python.py +0 -0
  28. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/assets/bus.jpg +0 -0
  29. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/assets/zidane.jpg +0 -0
  30. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/__init__.py +0 -0
  31. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  32. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  33. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  34. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  35. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  36. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  37. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  38. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  39. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  40. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  41. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  42. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/coco.yaml +0 -0
  43. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  44. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  45. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  46. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  47. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  48. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  49. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  50. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  51. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  52. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  53. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/datasets/xView.yaml +0 -0
  54. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/default.yaml +0 -0
  55. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  56. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  57. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  58. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  59. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  60. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  61. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  62. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  63. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  64. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  65. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  66. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  67. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  68. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  69. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  70. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  71. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  72. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  73. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  74. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  75. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  76. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  77. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  78. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  79. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  80. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  81. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  82. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/__init__.py +0 -0
  83. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/annotator.py +0 -0
  84. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/augment.py +0 -0
  85. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/base.py +0 -0
  86. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/build.py +0 -0
  87. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/converter.py +0 -0
  88. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/dataset.py +0 -0
  89. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/explorer/__init__.py +0 -0
  90. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/explorer/explorer.py +0 -0
  91. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/explorer/gui/__init__.py +0 -0
  92. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/explorer/gui/dash.py +0 -0
  93. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/explorer/utils.py +0 -0
  94. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/loaders.py +0 -0
  95. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/split_dota.py +0 -0
  96. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/data/utils.py +0 -0
  97. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/engine/__init__.py +0 -0
  98. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/engine/exporter.py +0 -0
  99. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/engine/model.py +0 -0
  100. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/engine/predictor.py +0 -0
  101. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/engine/results.py +0 -0
  102. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/engine/tuner.py +0 -0
  103. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/engine/validator.py +0 -0
  104. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/hub/__init__.py +0 -0
  105. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/hub/auth.py +0 -0
  106. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/hub/session.py +0 -0
  107. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/hub/utils.py +0 -0
  108. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/__init__.py +0 -0
  109. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/fastsam/__init__.py +0 -0
  110. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/fastsam/model.py +0 -0
  111. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/fastsam/predict.py +0 -0
  112. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/fastsam/prompt.py +0 -0
  113. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/fastsam/utils.py +0 -0
  114. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/fastsam/val.py +0 -0
  115. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/nas/__init__.py +0 -0
  116. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/nas/model.py +0 -0
  117. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/nas/predict.py +0 -0
  118. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/nas/val.py +0 -0
  119. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/rtdetr/__init__.py +0 -0
  120. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/rtdetr/model.py +0 -0
  121. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/rtdetr/predict.py +0 -0
  122. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/rtdetr/train.py +0 -0
  123. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/rtdetr/val.py +0 -0
  124. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/__init__.py +0 -0
  125. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/amg.py +0 -0
  126. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/build.py +0 -0
  127. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/model.py +0 -0
  128. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/modules/__init__.py +0 -0
  129. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/modules/encoders.py +0 -0
  130. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/modules/sam.py +0 -0
  131. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/modules/transformer.py +0 -0
  132. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/sam/predict.py +0 -0
  133. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/utils/__init__.py +0 -0
  134. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/utils/loss.py +0 -0
  135. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/utils/ops.py +0 -0
  136. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/__init__.py +0 -0
  137. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/classify/__init__.py +0 -0
  138. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/classify/predict.py +0 -0
  139. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/classify/train.py +0 -0
  140. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/classify/val.py +0 -0
  141. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/detect/__init__.py +0 -0
  142. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/detect/predict.py +0 -0
  143. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/detect/train.py +0 -0
  144. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/detect/val.py +0 -0
  145. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/model.py +0 -0
  146. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/obb/__init__.py +0 -0
  147. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/obb/predict.py +0 -0
  148. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/obb/train.py +0 -0
  149. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/obb/val.py +0 -0
  150. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/pose/__init__.py +0 -0
  151. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/pose/predict.py +0 -0
  152. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/pose/train.py +0 -0
  153. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/pose/val.py +0 -0
  154. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/segment/__init__.py +0 -0
  155. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/segment/train.py +0 -0
  156. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/models/yolo/segment/val.py +0 -0
  157. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/nn/__init__.py +0 -0
  158. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/nn/autobackend.py +0 -0
  159. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/nn/modules/__init__.py +0 -0
  160. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/nn/modules/block.py +0 -0
  161. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/nn/modules/conv.py +0 -0
  162. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/nn/modules/transformer.py +0 -0
  163. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/nn/modules/utils.py +0 -0
  164. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/nn/tasks.py +0 -0
  165. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/solutions/__init__.py +0 -0
  166. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/solutions/ai_gym.py +0 -0
  167. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/solutions/distance_calculation.py +0 -0
  168. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/trackers/__init__.py +0 -0
  169. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/trackers/basetrack.py +0 -0
  170. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/trackers/bot_sort.py +0 -0
  171. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/trackers/byte_tracker.py +0 -0
  172. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/trackers/track.py +0 -0
  173. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/trackers/utils/__init__.py +0 -0
  174. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  175. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/trackers/utils/matching.py +0 -0
  176. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/__init__.py +0 -0
  177. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/autobatch.py +0 -0
  178. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/benchmarks.py +0 -0
  179. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/__init__.py +0 -0
  180. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/base.py +0 -0
  181. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/clearml.py +0 -0
  182. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/comet.py +0 -0
  183. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/dvc.py +0 -0
  184. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/hub.py +0 -0
  185. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/neptune.py +0 -0
  186. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/raytune.py +0 -0
  187. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  188. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/callbacks/wb.py +0 -0
  189. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/checks.py +0 -0
  190. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/dist.py +0 -0
  191. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/downloads.py +0 -0
  192. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/errors.py +0 -0
  193. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/files.py +0 -0
  194. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/instance.py +0 -0
  195. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/loss.py +0 -0
  196. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/ops.py +0 -0
  197. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/patches.py +0 -0
  198. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/plotting.py +0 -0
  199. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/triton.py +0 -0
  200. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics/utils/tuner.py +0 -0
  201. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics.egg-info/SOURCES.txt +0 -0
  202. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics.egg-info/dependency_links.txt +0 -0
  203. {ultralytics-8.1.8 → ultralytics-8.1.10}/ultralytics.egg-info/entry_points.txt +0 -0
  204. {ultralytics-8.1.8 → ultralytics-8.1.10}/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.8
3
+ Version: 8.1.10
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
@@ -55,7 +55,7 @@ Requires-Dist: mkdocs-material; extra == "dev"
55
55
  Requires-Dist: mkdocstrings[python]; extra == "dev"
56
56
  Requires-Dist: mkdocs-jupyter; extra == "dev"
57
57
  Requires-Dist: mkdocs-redirects; extra == "dev"
58
- Requires-Dist: mkdocs-ultralytics-plugin>=0.0.42; extra == "dev"
58
+ Requires-Dist: mkdocs-ultralytics-plugin>=0.0.43; extra == "dev"
59
59
  Provides-Extra: export
60
60
  Requires-Dist: onnx>=1.12.0; extra == "export"
61
61
  Requires-Dist: coremltools>=7.0; platform_system != "Windows" and extra == "export"
@@ -93,7 +93,7 @@ dev = [
93
93
  "mkdocstrings[python]",
94
94
  "mkdocs-jupyter", # for notebooks
95
95
  "mkdocs-redirects", # for 301 redirects
96
- "mkdocs-ultralytics-plugin>=0.0.42", # for meta descriptions and images, dates and authors
96
+ "mkdocs-ultralytics-plugin>=0.0.43", # for meta descriptions and images, dates and authors
97
97
  ]
98
98
  export = [
99
99
  "onnx>=1.12.0", # ONNX export
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.1.8"
3
+ __version__ = "8.1.10"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO
@@ -400,7 +400,7 @@ class BaseTrainer:
400
400
 
401
401
  # Log
402
402
  mem = f"{torch.cuda.memory_reserved() / 1E9 if torch.cuda.is_available() else 0:.3g}G" # (GB)
403
- loss_len = self.tloss.shape[0] if len(self.tloss.size()) else 1
403
+ loss_len = self.tloss.shape[0] if len(self.tloss.shape) else 1
404
404
  losses = self.tloss if loss_len > 1 else torch.unsqueeze(self.tloss, 0)
405
405
  if RANK in (-1, 0):
406
406
  pbar.set_description(
@@ -121,7 +121,7 @@ class MaskDecoder(nn.Module):
121
121
  """
122
122
  # Concatenate output tokens
123
123
  output_tokens = torch.cat([self.iou_token.weight, self.mask_tokens.weight], dim=0)
124
- output_tokens = output_tokens.unsqueeze(0).expand(sparse_prompt_embeddings.size(0), -1, -1)
124
+ output_tokens = output_tokens.unsqueeze(0).expand(sparse_prompt_embeddings.shape[0], -1, -1)
125
125
  tokens = torch.cat((output_tokens, sparse_prompt_embeddings), dim=1)
126
126
 
127
127
  # Expand per-image data in batch direction to be per-mask
@@ -732,7 +732,7 @@ class TinyViT(nn.Module):
732
732
  for i in range(start_i, len(self.layers)):
733
733
  layer = self.layers[i]
734
734
  x = layer(x)
735
- B, _, C = x.size()
735
+ B, _, C = x.shape
736
736
  x = x.view(B, 64, 64, C)
737
737
  x = x.permute(0, 3, 1, 2)
738
738
  return self.neck(x)
@@ -41,7 +41,7 @@ class SegmentationPredictor(DetectionPredictor):
41
41
  orig_imgs = ops.convert_torch2numpy_batch(orig_imgs)
42
42
 
43
43
  results = []
44
- proto = preds[1][-1] if len(preds[1]) == 3 else preds[1] # second output is len 3 if pt, but only 1 if exported
44
+ proto = preds[1][-1] if isinstance(preds[1], tuple) else preds[1] # tuple if PyTorch model or array if exported
45
45
  for i, pred in enumerate(p):
46
46
  orig_img = orig_imgs[i]
47
47
  img_path = self.batch[0][i]
@@ -59,16 +59,17 @@ class Detect(nn.Module):
59
59
  cls = x_cat[:, self.reg_max * 4 :]
60
60
  else:
61
61
  box, cls = x_cat.split((self.reg_max * 4, self.nc), 1)
62
- dbox = self.decode_bboxes(box)
63
62
 
64
63
  if self.export and self.format in ("tflite", "edgetpu"):
65
64
  # Precompute normalization factor to increase numerical stability
66
65
  # See https://github.com/ultralytics/ultralytics/issues/7371
67
- img_h = shape[2]
68
- img_w = shape[3]
69
- img_size = torch.tensor([img_w, img_h, img_w, img_h], device=box.device).reshape(1, 4, 1)
70
- norm = self.strides / (self.stride[0] * img_size)
71
- dbox = dist2bbox(self.dfl(box) * norm, self.anchors.unsqueeze(0) * norm[:, :2], xywh=True, dim=1)
66
+ grid_h = shape[2]
67
+ grid_w = shape[3]
68
+ grid_size = torch.tensor([grid_w, grid_h, grid_w, grid_h], device=box.device).reshape(1, 4, 1)
69
+ norm = self.strides / (self.stride[0] * grid_size)
70
+ dbox = self.decode_bboxes(self.dfl(box) * norm, self.anchors.unsqueeze(0) * norm[:, :2])
71
+ else:
72
+ dbox = self.decode_bboxes(self.dfl(box), self.anchors.unsqueeze(0)) * self.strides
72
73
 
73
74
  y = torch.cat((dbox, cls.sigmoid()), 1)
74
75
  return y if self.export else (y, x)
@@ -82,9 +83,9 @@ class Detect(nn.Module):
82
83
  a[-1].bias.data[:] = 1.0 # box
83
84
  b[-1].bias.data[: m.nc] = math.log(5 / m.nc / (640 / s) ** 2) # cls (.01 objects, 80 classes, 640 img)
84
85
 
85
- def decode_bboxes(self, bboxes):
86
+ def decode_bboxes(self, bboxes, anchors):
86
87
  """Decode bounding boxes."""
87
- return dist2bbox(self.dfl(bboxes), self.anchors.unsqueeze(0), xywh=True, dim=1) * self.strides
88
+ return dist2bbox(bboxes, anchors, xywh=True, dim=1)
88
89
 
89
90
 
90
91
  class Segment(Detect):
@@ -139,9 +140,9 @@ class OBB(Detect):
139
140
  return x, angle
140
141
  return torch.cat([x, angle], 1) if self.export else (torch.cat([x[0], angle], 1), (x[1], angle))
141
142
 
142
- def decode_bboxes(self, bboxes):
143
+ def decode_bboxes(self, bboxes, anchors):
143
144
  """Decode rotated bounding boxes."""
144
- return dist2rbox(self.dfl(bboxes), self.angle, self.anchors.unsqueeze(0), dim=1) * self.strides
145
+ return dist2rbox(bboxes, self.angle, anchors, dim=1)
145
146
 
146
147
 
147
148
  class Pose(Detect):
@@ -167,9 +167,10 @@ class Heatmap:
167
167
  """
168
168
  self.im0 = im0
169
169
  if tracks[0].boxes.id is None:
170
+ self.heatmap = np.zeros((int(self.imh), int(self.imw)), dtype=np.float32)
170
171
  if self.view_img and self.env_check:
171
172
  self.display_frames()
172
- return
173
+ return im0
173
174
  self.heatmap *= self.decay_factor # decay factor
174
175
  self.extract_results(tracks)
175
176
  self.annotator = Annotator(self.im0, self.count_txt_thickness, None)
@@ -256,7 +256,7 @@ class ObjectCounter:
256
256
  if tracks[0].boxes.id is None:
257
257
  if self.view_img:
258
258
  self.display_frames()
259
- return
259
+ return im0
260
260
  self.extract_and_process_tracks(tracks)
261
261
 
262
262
  if self.view_img:
@@ -164,7 +164,7 @@ class SpeedEstimator:
164
164
  if tracks[0].boxes.id is None:
165
165
  if self.view_img and self.env_check:
166
166
  self.display_frames()
167
- return
167
+ return im0
168
168
  self.extract_tracks(tracks)
169
169
 
170
170
  self.annotator = Annotator(self.im0, line_width=2)
@@ -97,13 +97,13 @@ class GMC:
97
97
  if self.method in ["orb", "sift"]:
98
98
  return self.applyFeatures(raw_frame, detections)
99
99
  elif self.method == "ecc":
100
- return self.applyEcc(raw_frame, detections)
100
+ return self.applyEcc(raw_frame)
101
101
  elif self.method == "sparseOptFlow":
102
- return self.applySparseOptFlow(raw_frame, detections)
102
+ return self.applySparseOptFlow(raw_frame)
103
103
  else:
104
104
  return np.eye(2, 3)
105
105
 
106
- def applyEcc(self, raw_frame: np.array, detections: list = None) -> np.array:
106
+ def applyEcc(self, raw_frame: np.array) -> np.array:
107
107
  """
108
108
  Apply ECC algorithm to a raw frame.
109
109
 
@@ -144,7 +144,7 @@ class GMC:
144
144
  # Run the ECC algorithm. The results are stored in warp_matrix.
145
145
  # (cc, H) = cv2.findTransformECC(self.prevFrame, frame, H, self.warp_mode, self.criteria)
146
146
  try:
147
- (cc, H) = cv2.findTransformECC(self.prevFrame, frame, H, self.warp_mode, self.criteria, None, 1)
147
+ (_, H) = cv2.findTransformECC(self.prevFrame, frame, H, self.warp_mode, self.criteria, None, 1)
148
148
  except Exception as e:
149
149
  LOGGER.warning(f"WARNING: find transform failed. Set warp as identity {e}")
150
150
 
@@ -258,7 +258,7 @@ class GMC:
258
258
  # import matplotlib.pyplot as plt
259
259
  # matches_img = np.hstack((self.prevFrame, frame))
260
260
  # matches_img = cv2.cvtColor(matches_img, cv2.COLOR_GRAY2BGR)
261
- # W = np.size(self.prevFrame, 1)
261
+ # W = self.prevFrame.shape[1]
262
262
  # for m in goodMatches:
263
263
  # prev_pt = np.array(self.prevKeyPoints[m.queryIdx].pt, dtype=np.int_)
264
264
  # curr_pt = np.array(keypoints[m.trainIdx].pt, dtype=np.int_)
@@ -275,7 +275,7 @@ class GMC:
275
275
  # plt.show()
276
276
 
277
277
  # Find rigid matrix
278
- if (np.size(prevPoints, 0) > 4) and (np.size(prevPoints, 0) == np.size(prevPoints, 0)):
278
+ if prevPoints.shape[0] > 4:
279
279
  H, inliers = cv2.estimateAffinePartial2D(prevPoints, currPoints, cv2.RANSAC)
280
280
 
281
281
  # Handle downscale
@@ -292,7 +292,7 @@ class GMC:
292
292
 
293
293
  return H
294
294
 
295
- def applySparseOptFlow(self, raw_frame: np.array, detections: list = None) -> np.array:
295
+ def applySparseOptFlow(self, raw_frame: np.array) -> np.array:
296
296
  """
297
297
  Apply Sparse Optical Flow method to a raw frame.
298
298
 
@@ -328,7 +328,7 @@ class GMC:
328
328
  return H
329
329
 
330
330
  # Find correspondences
331
- matchedKeypoints, status, err = cv2.calcOpticalFlowPyrLK(self.prevFrame, frame, self.prevKeyPoints, None)
331
+ matchedKeypoints, status, _ = cv2.calcOpticalFlowPyrLK(self.prevFrame, frame, self.prevKeyPoints, None)
332
332
 
333
333
  # Leave good correspondences only
334
334
  prevPoints = []
@@ -343,8 +343,8 @@ class GMC:
343
343
  currPoints = np.array(currPoints)
344
344
 
345
345
  # Find rigid matrix
346
- if np.size(prevPoints, 0) > 4 and np.size(prevPoints, 0) == np.size(prevPoints, 0):
347
- H, inliers = cv2.estimateAffinePartial2D(prevPoints, currPoints, cv2.RANSAC)
346
+ if (prevPoints.shape[0] > 4) and (prevPoints.shape[0] == prevPoints.shape[0]):
347
+ H, _ = cv2.estimateAffinePartial2D(prevPoints, currPoints, cv2.RANSAC)
348
348
 
349
349
  if self.downscale > 1.0:
350
350
  H[0, 2] *= self.downscale
@@ -86,9 +86,12 @@ def on_train_epoch_end(trainer):
86
86
  """Log training metrics at the end of each train epoch to MLflow."""
87
87
  if mlflow:
88
88
  mlflow.log_metrics(
89
- metrics=SANITIZE(trainer.label_loss_items(trainer.tloss, prefix="train")), step=trainer.epoch
89
+ metrics={
90
+ **SANITIZE(trainer.lr),
91
+ **SANITIZE(trainer.label_loss_items(trainer.tloss, prefix="train")),
92
+ },
93
+ step=trainer.epoch,
90
94
  )
91
- mlflow.log_metrics(metrics=SANITIZE(trainer.lr), step=trainer.epoch)
92
95
 
93
96
 
94
97
  def on_fit_epoch_end(trainer):
@@ -115,6 +118,7 @@ def on_train_end(trainer):
115
118
  callbacks = (
116
119
  {
117
120
  "on_pretrain_routine_end": on_pretrain_routine_end,
121
+ "on_train_epoch_end": on_train_epoch_end,
118
122
  "on_fit_epoch_end": on_fit_epoch_end,
119
123
  "on_train_end": on_train_end,
120
124
  }
@@ -331,7 +331,7 @@ class ConfusionMatrix:
331
331
  gt_bboxes (Array[M, 4]): Ground truth bounding boxes with xyxy format.
332
332
  gt_cls (Array[M]): The class labels.
333
333
  """
334
- if gt_cls.size(0) == 0: # Check if labels is empty
334
+ if gt_cls.shape[0] == 0: # Check if labels is empty
335
335
  if detections is not None:
336
336
  detections = detections[detections[:, 4] > self.conf]
337
337
  detection_classes = detections[:, 5].int()
@@ -701,7 +701,7 @@ class Metric(SimpleClass):
701
701
  Returns the mean Average Precision (mAP) at an IoU threshold of 0.5.
702
702
 
703
703
  Returns:
704
- (float): The mAP50 at an IoU threshold of 0.5.
704
+ (float): The mAP at an IoU threshold of 0.5.
705
705
  """
706
706
  return self.all_ap[:, 0].mean() if len(self.all_ap) else 0.0
707
707
 
@@ -711,7 +711,7 @@ class Metric(SimpleClass):
711
711
  Returns the mean Average Precision (mAP) at an IoU threshold of 0.75.
712
712
 
713
713
  Returns:
714
- (float): The mAP50 at an IoU threshold of 0.75.
714
+ (float): The mAP at an IoU threshold of 0.75.
715
715
  """
716
716
  return self.all_ap[:, 5].mean() if len(self.all_ap) else 0.0
717
717
 
@@ -56,8 +56,8 @@ class TaskAlignedAssigner(nn.Module):
56
56
  fg_mask (Tensor): shape(bs, num_total_anchors)
57
57
  target_gt_idx (Tensor): shape(bs, num_total_anchors)
58
58
  """
59
- self.bs = pd_scores.size(0)
60
- self.n_max_boxes = gt_bboxes.size(1)
59
+ self.bs = pd_scores.shape[0]
60
+ self.n_max_boxes = gt_bboxes.shape[1]
61
61
 
62
62
  if self.n_max_boxes == 0:
63
63
  device = gt_bboxes.device
@@ -190,7 +190,7 @@ def fuse_conv_and_bn(conv, bn):
190
190
  fusedconv.weight.copy_(torch.mm(w_bn, w_conv).view(fusedconv.weight.shape))
191
191
 
192
192
  # Prepare spatial bias
193
- b_conv = torch.zeros(conv.weight.size(0), device=conv.weight.device) if conv.bias is None else conv.bias
193
+ b_conv = torch.zeros(conv.weight.shape[0], device=conv.weight.device) if conv.bias is None else conv.bias
194
194
  b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps))
195
195
  fusedconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn)
196
196
 
@@ -221,7 +221,7 @@ def fuse_deconv_and_bn(deconv, bn):
221
221
  fuseddconv.weight.copy_(torch.mm(w_bn, w_deconv).view(fuseddconv.weight.shape))
222
222
 
223
223
  # Prepare spatial bias
224
- b_conv = torch.zeros(deconv.weight.size(1), device=deconv.weight.device) if deconv.bias is None else deconv.bias
224
+ b_conv = torch.zeros(deconv.weight.shape[1], device=deconv.weight.device) if deconv.bias is None else deconv.bias
225
225
  b_bn = bn.bias - bn.weight.mul(bn.running_mean).div(torch.sqrt(bn.running_var + bn.eps))
226
226
  fuseddconv.bias.copy_(torch.mm(w_bn, b_conv.reshape(-1, 1)).reshape(-1) + b_bn)
227
227
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.8
3
+ Version: 8.1.10
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
@@ -55,7 +55,7 @@ Requires-Dist: mkdocs-material; extra == "dev"
55
55
  Requires-Dist: mkdocstrings[python]; extra == "dev"
56
56
  Requires-Dist: mkdocs-jupyter; extra == "dev"
57
57
  Requires-Dist: mkdocs-redirects; extra == "dev"
58
- Requires-Dist: mkdocs-ultralytics-plugin>=0.0.42; extra == "dev"
58
+ Requires-Dist: mkdocs-ultralytics-plugin>=0.0.43; extra == "dev"
59
59
  Provides-Extra: export
60
60
  Requires-Dist: onnx>=1.12.0; extra == "export"
61
61
  Requires-Dist: coremltools>=7.0; platform_system != "Windows" and extra == "export"
@@ -25,7 +25,7 @@ mkdocs-material
25
25
  mkdocstrings[python]
26
26
  mkdocs-jupyter
27
27
  mkdocs-redirects
28
- mkdocs-ultralytics-plugin>=0.0.42
28
+ mkdocs-ultralytics-plugin>=0.0.43
29
29
 
30
30
  [explorer]
31
31
  lancedb
File without changes
File without changes
File without changes