ultralytics 8.3.31__tar.gz → 8.3.33__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.
Files changed (242) hide show
  1. {ultralytics-8.3.31/ultralytics.egg-info → ultralytics-8.3.33}/PKG-INFO +1 -1
  2. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/__init__.py +1 -1
  3. ultralytics-8.3.33/ultralytics/cfg/datasets/dog-pose.yaml +23 -0
  4. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/engine/exporter.py +0 -3
  5. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/object_counter.py +48 -28
  6. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/benchmarks.py +0 -2
  7. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/wb.py +1 -1
  8. {ultralytics-8.3.31 → ultralytics-8.3.33/ultralytics.egg-info}/PKG-INFO +1 -1
  9. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics.egg-info/SOURCES.txt +1 -0
  10. {ultralytics-8.3.31 → ultralytics-8.3.33}/LICENSE +0 -0
  11. {ultralytics-8.3.31 → ultralytics-8.3.33}/README.md +0 -0
  12. {ultralytics-8.3.31 → ultralytics-8.3.33}/pyproject.toml +0 -0
  13. {ultralytics-8.3.31 → ultralytics-8.3.33}/setup.cfg +0 -0
  14. {ultralytics-8.3.31 → ultralytics-8.3.33}/tests/__init__.py +0 -0
  15. {ultralytics-8.3.31 → ultralytics-8.3.33}/tests/conftest.py +0 -0
  16. {ultralytics-8.3.31 → ultralytics-8.3.33}/tests/test_cli.py +0 -0
  17. {ultralytics-8.3.31 → ultralytics-8.3.33}/tests/test_cuda.py +0 -0
  18. {ultralytics-8.3.31 → ultralytics-8.3.33}/tests/test_engine.py +0 -0
  19. {ultralytics-8.3.31 → ultralytics-8.3.33}/tests/test_exports.py +0 -0
  20. {ultralytics-8.3.31 → ultralytics-8.3.33}/tests/test_integrations.py +0 -0
  21. {ultralytics-8.3.31 → ultralytics-8.3.33}/tests/test_python.py +0 -0
  22. {ultralytics-8.3.31 → ultralytics-8.3.33}/tests/test_solutions.py +0 -0
  23. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/assets/bus.jpg +0 -0
  24. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/assets/zidane.jpg +0 -0
  25. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/__init__.py +0 -0
  26. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  27. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  28. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  29. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  30. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  31. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  32. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  33. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  34. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  35. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  36. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  37. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  38. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  39. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/coco.yaml +0 -0
  40. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  41. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  42. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  43. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  44. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  45. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  46. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  47. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  48. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  49. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  50. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  51. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/signature.yaml +0 -0
  52. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  53. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/datasets/xView.yaml +0 -0
  54. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/default.yaml +0 -0
  55. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  56. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  57. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  58. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  59. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  60. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  61. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  62. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  63. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  64. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  65. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  66. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  67. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  68. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  69. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  70. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  71. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  72. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  73. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  74. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  75. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  76. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  77. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  78. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  79. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  80. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  81. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  82. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  83. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  84. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  85. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  86. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  87. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  88. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  89. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  90. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  91. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  92. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  93. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  94. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  95. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  96. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  97. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  98. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  99. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  100. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/solutions/default.yaml +0 -0
  101. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  102. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  103. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/__init__.py +0 -0
  104. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/annotator.py +0 -0
  105. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/augment.py +0 -0
  106. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/base.py +0 -0
  107. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/build.py +0 -0
  108. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/converter.py +0 -0
  109. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/dataset.py +0 -0
  110. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/loaders.py +0 -0
  111. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/split_dota.py +0 -0
  112. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/data/utils.py +0 -0
  113. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/engine/__init__.py +0 -0
  114. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/engine/model.py +0 -0
  115. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/engine/predictor.py +0 -0
  116. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/engine/results.py +0 -0
  117. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/engine/trainer.py +0 -0
  118. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/engine/tuner.py +0 -0
  119. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/engine/validator.py +0 -0
  120. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/hub/__init__.py +0 -0
  121. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/hub/auth.py +0 -0
  122. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/hub/google/__init__.py +0 -0
  123. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/hub/session.py +0 -0
  124. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/hub/utils.py +0 -0
  125. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/__init__.py +0 -0
  126. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/fastsam/__init__.py +0 -0
  127. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/fastsam/model.py +0 -0
  128. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/fastsam/predict.py +0 -0
  129. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/fastsam/utils.py +0 -0
  130. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/fastsam/val.py +0 -0
  131. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/nas/__init__.py +0 -0
  132. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/nas/model.py +0 -0
  133. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/nas/predict.py +0 -0
  134. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/nas/val.py +0 -0
  135. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/rtdetr/__init__.py +0 -0
  136. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/rtdetr/model.py +0 -0
  137. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/rtdetr/predict.py +0 -0
  138. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/rtdetr/train.py +0 -0
  139. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/rtdetr/val.py +0 -0
  140. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/__init__.py +0 -0
  141. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/amg.py +0 -0
  142. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/build.py +0 -0
  143. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/model.py +0 -0
  144. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/modules/__init__.py +0 -0
  145. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/modules/blocks.py +0 -0
  146. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/modules/decoders.py +0 -0
  147. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/modules/encoders.py +0 -0
  148. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  149. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/modules/sam.py +0 -0
  150. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  151. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/modules/transformer.py +0 -0
  152. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/modules/utils.py +0 -0
  153. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/sam/predict.py +0 -0
  154. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/utils/__init__.py +0 -0
  155. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/utils/loss.py +0 -0
  156. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/utils/ops.py +0 -0
  157. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/__init__.py +0 -0
  158. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/classify/__init__.py +0 -0
  159. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/classify/predict.py +0 -0
  160. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/classify/train.py +0 -0
  161. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/classify/val.py +0 -0
  162. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/detect/__init__.py +0 -0
  163. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/detect/predict.py +0 -0
  164. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/detect/train.py +0 -0
  165. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/detect/val.py +0 -0
  166. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/model.py +0 -0
  167. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/obb/__init__.py +0 -0
  168. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/obb/predict.py +0 -0
  169. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/obb/train.py +0 -0
  170. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/obb/val.py +0 -0
  171. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/pose/__init__.py +0 -0
  172. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/pose/predict.py +0 -0
  173. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/pose/train.py +0 -0
  174. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/pose/val.py +0 -0
  175. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/segment/__init__.py +0 -0
  176. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/segment/predict.py +0 -0
  177. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/segment/train.py +0 -0
  178. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/segment/val.py +0 -0
  179. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/world/__init__.py +0 -0
  180. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/world/train.py +0 -0
  181. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/models/yolo/world/train_world.py +0 -0
  182. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/__init__.py +0 -0
  183. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/autobackend.py +0 -0
  184. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/modules/__init__.py +0 -0
  185. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/modules/activation.py +0 -0
  186. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/modules/block.py +0 -0
  187. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/modules/conv.py +0 -0
  188. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/modules/head.py +0 -0
  189. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/modules/transformer.py +0 -0
  190. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/modules/utils.py +0 -0
  191. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/nn/tasks.py +0 -0
  192. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/__init__.py +0 -0
  193. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/ai_gym.py +0 -0
  194. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/analytics.py +0 -0
  195. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/distance_calculation.py +0 -0
  196. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/heatmap.py +0 -0
  197. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/parking_management.py +0 -0
  198. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/queue_management.py +0 -0
  199. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/region_counter.py +0 -0
  200. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/solutions.py +0 -0
  201. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/speed_estimation.py +0 -0
  202. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/solutions/streamlit_inference.py +0 -0
  203. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/trackers/__init__.py +0 -0
  204. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/trackers/basetrack.py +0 -0
  205. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/trackers/bot_sort.py +0 -0
  206. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/trackers/byte_tracker.py +0 -0
  207. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/trackers/track.py +0 -0
  208. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/trackers/utils/__init__.py +0 -0
  209. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/trackers/utils/gmc.py +0 -0
  210. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  211. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/trackers/utils/matching.py +0 -0
  212. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/__init__.py +0 -0
  213. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/autobatch.py +0 -0
  214. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/__init__.py +0 -0
  215. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/base.py +0 -0
  216. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/clearml.py +0 -0
  217. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/comet.py +0 -0
  218. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/dvc.py +0 -0
  219. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/hub.py +0 -0
  220. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/mlflow.py +0 -0
  221. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/neptune.py +0 -0
  222. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/raytune.py +0 -0
  223. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  224. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/checks.py +0 -0
  225. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/dist.py +0 -0
  226. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/downloads.py +0 -0
  227. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/errors.py +0 -0
  228. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/files.py +0 -0
  229. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/instance.py +0 -0
  230. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/loss.py +0 -0
  231. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/metrics.py +0 -0
  232. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/ops.py +0 -0
  233. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/patches.py +0 -0
  234. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/plotting.py +0 -0
  235. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/tal.py +0 -0
  236. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/torch_utils.py +0 -0
  237. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/triton.py +0 -0
  238. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics/utils/tuner.py +0 -0
  239. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics.egg-info/dependency_links.txt +0 -0
  240. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics.egg-info/entry_points.txt +0 -0
  241. {ultralytics-8.3.31 → ultralytics-8.3.33}/ultralytics.egg-info/requires.txt +0 -0
  242. {ultralytics-8.3.31 → ultralytics-8.3.33}/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.3.31
3
+ Version: 8.3.33
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.3.31"
3
+ __version__ = "8.3.33"
4
4
 
5
5
  import os
6
6
 
@@ -0,0 +1,23 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ # Dogs dataset http://vision.stanford.edu/aditya86/ImageNetDogs/ by Stanford
3
+ # Documentation: https://docs.ultralytics.com/datasets/pose/dog-pose/
4
+ # Example usage: yolo train data=dog-pose.yaml
5
+ # parent
6
+ # ├── ultralytics
7
+ # └── datasets
8
+ # └── dog-pose ← downloads here (337 MB)
9
+
10
+ # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
11
+ path: ../datasets/dog-pose # dataset root dir
12
+ train: train # train images (relative to 'path') 6773 images
13
+ val: val # val images (relative to 'path') 1703 images
14
+
15
+ # Keypoints
16
+ kpt_shape: [24, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
17
+
18
+ # Classes
19
+ names:
20
+ 0: dog
21
+
22
+ # Download script/URL (optional)
23
+ download: https://github.com/ultralytics/assets/releases/download/v0.0.0/dog-pose.zip
@@ -79,7 +79,6 @@ from ultralytics.utils import (
79
79
  ARM64,
80
80
  DEFAULT_CFG,
81
81
  IS_JETSON,
82
- IS_RASPBERRYPI,
83
82
  LINUX,
84
83
  LOGGER,
85
84
  MACOS,
@@ -265,8 +264,6 @@ class Exporter:
265
264
  "WARNING ⚠️ INT8 export requires a missing 'data' arg for calibration. "
266
265
  f"Using default 'data={self.args.data}'."
267
266
  )
268
- if mnn and (IS_RASPBERRYPI or IS_JETSON):
269
- raise SystemError("MNN export not supported on Raspberry Pi and NVIDIA Jetson")
270
267
 
271
268
  # Input
272
269
  im = torch.zeros(self.args.batch, 3, *self.imgsz).to(self.device)
@@ -46,13 +46,12 @@ class ObjectCounter(BaseSolution):
46
46
  self.show_in = self.CFG["show_in"]
47
47
  self.show_out = self.CFG["show_out"]
48
48
 
49
- def count_objects(self, track_line, box, track_id, prev_position, cls):
49
+ def count_objects(self, current_centroid, track_id, prev_position, cls):
50
50
  """
51
51
  Counts objects within a polygonal or linear region based on their tracks.
52
52
 
53
53
  Args:
54
- track_line (Dict): Last 30 frame track record for the object.
55
- box (List[float]): Bounding box coordinates [x1, y1, x2, y2] for the specific track in the current frame.
54
+ current_centroid (Tuple[float, float]): Current centroid values in the current frame.
56
55
  track_id (int): Unique identifier for the tracked object.
57
56
  prev_position (Tuple[float, float]): Last frame position coordinates (x, y) of the track.
58
57
  cls (int): Class index for classwise count updates.
@@ -69,29 +68,50 @@ class ObjectCounter(BaseSolution):
69
68
  if prev_position is None or track_id in self.counted_ids:
70
69
  return
71
70
 
72
- centroid = self.r_s.centroid
73
- dx = (box[0] - prev_position[0]) * (centroid.x - prev_position[0])
74
- dy = (box[1] - prev_position[1]) * (centroid.y - prev_position[1])
75
-
76
- if len(self.region) >= 3 and self.r_s.contains(self.Point(track_line[-1])):
77
- self.counted_ids.append(track_id)
78
- # For polygon region
79
- if dx > 0:
80
- self.in_count += 1
81
- self.classwise_counts[self.names[cls]]["IN"] += 1
82
- else:
83
- self.out_count += 1
84
- self.classwise_counts[self.names[cls]]["OUT"] += 1
85
-
86
- elif len(self.region) < 3 and self.LineString([prev_position, box[:2]]).intersects(self.r_s):
87
- self.counted_ids.append(track_id)
88
- # For linear region
89
- if dx > 0 and dy > 0:
90
- self.in_count += 1
91
- self.classwise_counts[self.names[cls]]["IN"] += 1
92
- else:
93
- self.out_count += 1
94
- self.classwise_counts[self.names[cls]]["OUT"] += 1
71
+ if len(self.region) == 2: # Linear region (defined as a line segment)
72
+ line = self.LineString(self.region) # Check if the line intersects the trajectory of the object
73
+ if line.intersects(self.LineString([prev_position, current_centroid])):
74
+ # Determine orientation of the region (vertical or horizontal)
75
+ if abs(self.region[0][0] - self.region[1][0]) < abs(self.region[0][1] - self.region[1][1]):
76
+ # Vertical region: Compare x-coordinates to determine direction
77
+ if current_centroid[0] > prev_position[0]: # Moving right
78
+ self.in_count += 1
79
+ self.classwise_counts[self.names[cls]]["IN"] += 1
80
+ else: # Moving left
81
+ self.out_count += 1
82
+ self.classwise_counts[self.names[cls]]["OUT"] += 1
83
+ else:
84
+ # Horizontal region: Compare y-coordinates to determine direction
85
+ if current_centroid[1] > prev_position[1]: # Moving downward
86
+ self.in_count += 1
87
+ self.classwise_counts[self.names[cls]]["IN"] += 1
88
+ else: # Moving upward
89
+ self.out_count += 1
90
+ self.classwise_counts[self.names[cls]]["OUT"] += 1
91
+ self.counted_ids.append(track_id)
92
+
93
+ elif len(self.region) > 2: # Polygonal region
94
+ polygon = self.Polygon(self.region)
95
+ if polygon.contains(self.Point(current_centroid)):
96
+ # Determine motion direction for vertical or horizontal polygons
97
+ region_width = max([p[0] for p in self.region]) - min([p[0] for p in self.region])
98
+ region_height = max([p[1] for p in self.region]) - min([p[1] for p in self.region])
99
+
100
+ if region_width < region_height: # Vertical-oriented polygon
101
+ if current_centroid[0] > prev_position[0]: # Moving right
102
+ self.in_count += 1
103
+ self.classwise_counts[self.names[cls]]["IN"] += 1
104
+ else: # Moving left
105
+ self.out_count += 1
106
+ self.classwise_counts[self.names[cls]]["OUT"] += 1
107
+ else: # Horizontal-oriented polygon
108
+ if current_centroid[1] > prev_position[1]: # Moving downward
109
+ self.in_count += 1
110
+ self.classwise_counts[self.names[cls]]["IN"] += 1
111
+ else: # Moving upward
112
+ self.out_count += 1
113
+ self.classwise_counts[self.names[cls]]["OUT"] += 1
114
+ self.counted_ids.append(track_id)
95
115
 
96
116
  def store_classwise_counts(self, cls):
97
117
  """
@@ -174,12 +194,12 @@ class ObjectCounter(BaseSolution):
174
194
  self.annotator.draw_centroid_and_tracks(
175
195
  self.track_line, color=colors(int(cls), True), track_thickness=self.line_width
176
196
  )
177
-
197
+ current_centroid = ((box[0] + box[2]) / 2, (box[1] + box[3]) / 2)
178
198
  # store previous position of track for object counting
179
199
  prev_position = None
180
200
  if len(self.track_history[track_id]) > 1:
181
201
  prev_position = self.track_history[track_id][-2]
182
- self.count_objects(self.track_line, box, track_id, prev_position, cls) # Perform object counting
202
+ self.count_objects(current_centroid, track_id, prev_position, cls) # Perform object counting
183
203
 
184
204
  self.display_counts(im0) # Display the counts on the frame
185
205
  self.display_output(im0) # display output with base class function
@@ -114,8 +114,6 @@ def benchmark(
114
114
  assert LINUX or MACOS, "Windows Paddle exports not supported yet"
115
115
  if i == 12: # MNN
116
116
  assert not isinstance(model, YOLOWorld), "YOLOWorldv2 MNN exports not supported yet"
117
- assert not IS_RASPBERRYPI, "MNN export not supported on Raspberry Pi"
118
- assert not IS_JETSON, "MNN export not supported on NVIDIA Jetson"
119
117
  if i == 13: # NCNN
120
118
  assert not isinstance(model, YOLOWorld), "YOLOWorldv2 NCNN exports not supported yet"
121
119
  if i == 14: # IMX
@@ -138,7 +138,7 @@ def on_train_end(trainer):
138
138
  art.add_file(trainer.best)
139
139
  wb.run.log_artifact(art, aliases=["best"])
140
140
  # Check if we actually have plots to save
141
- if trainer.args.plots:
141
+ if trainer.args.plots and hasattr(trainer.validator.metrics, "curves_results"):
142
142
  for curve_name, curve_values in zip(trainer.validator.metrics.curves, trainer.validator.metrics.curves_results):
143
143
  x, y, x_title, y_title = curve_values
144
144
  _plot_curve(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.31
3
+ Version: 8.3.33
4
4
  Summary: Ultralytics YOLO 🚀 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -48,6 +48,7 @@ ultralytics/cfg/datasets/coco8-pose.yaml
48
48
  ultralytics/cfg/datasets/coco8-seg.yaml
49
49
  ultralytics/cfg/datasets/coco8.yaml
50
50
  ultralytics/cfg/datasets/crack-seg.yaml
51
+ ultralytics/cfg/datasets/dog-pose.yaml
51
52
  ultralytics/cfg/datasets/dota8.yaml
52
53
  ultralytics/cfg/datasets/hand-keypoints.yaml
53
54
  ultralytics/cfg/datasets/lvis.yaml
File without changes
File without changes
File without changes