ultralytics 8.3.39__tar.gz → 8.3.43__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 (243) hide show
  1. {ultralytics-8.3.39/ultralytics.egg-info → ultralytics-8.3.43}/PKG-INFO +2 -2
  2. {ultralytics-8.3.39 → ultralytics-8.3.43}/README.md +1 -1
  3. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/__init__.py +1 -1
  4. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/__init__.py +10 -7
  5. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/autobackend.py +1 -2
  6. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/__init__.py +2 -0
  7. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/ai_gym.py +1 -1
  8. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/heatmap.py +2 -6
  9. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/queue_management.py +7 -4
  10. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/solutions.py +5 -1
  11. ultralytics-8.3.43/ultralytics/solutions/trackzone.py +68 -0
  12. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/ops.py +1 -1
  13. {ultralytics-8.3.39 → ultralytics-8.3.43/ultralytics.egg-info}/PKG-INFO +2 -2
  14. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics.egg-info/SOURCES.txt +1 -0
  15. {ultralytics-8.3.39 → ultralytics-8.3.43}/LICENSE +0 -0
  16. {ultralytics-8.3.39 → ultralytics-8.3.43}/pyproject.toml +0 -0
  17. {ultralytics-8.3.39 → ultralytics-8.3.43}/setup.cfg +0 -0
  18. {ultralytics-8.3.39 → ultralytics-8.3.43}/tests/__init__.py +0 -0
  19. {ultralytics-8.3.39 → ultralytics-8.3.43}/tests/conftest.py +0 -0
  20. {ultralytics-8.3.39 → ultralytics-8.3.43}/tests/test_cli.py +0 -0
  21. {ultralytics-8.3.39 → ultralytics-8.3.43}/tests/test_cuda.py +0 -0
  22. {ultralytics-8.3.39 → ultralytics-8.3.43}/tests/test_engine.py +0 -0
  23. {ultralytics-8.3.39 → ultralytics-8.3.43}/tests/test_exports.py +0 -0
  24. {ultralytics-8.3.39 → ultralytics-8.3.43}/tests/test_integrations.py +0 -0
  25. {ultralytics-8.3.39 → ultralytics-8.3.43}/tests/test_python.py +0 -0
  26. {ultralytics-8.3.39 → ultralytics-8.3.43}/tests/test_solutions.py +0 -0
  27. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/assets/bus.jpg +0 -0
  28. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/assets/zidane.jpg +0 -0
  29. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  30. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  31. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  32. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  33. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  34. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  35. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  36. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  37. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  38. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  39. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  40. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  41. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  42. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/coco.yaml +0 -0
  43. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  44. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  45. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  46. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  47. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  48. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  49. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  50. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  51. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  52. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  53. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  54. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  55. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/signature.yaml +0 -0
  56. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  57. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/datasets/xView.yaml +0 -0
  58. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/default.yaml +0 -0
  59. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  60. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  61. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  62. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  63. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  64. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  65. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  66. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  67. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  68. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  69. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  70. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  71. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  72. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  73. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  74. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  75. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  76. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  77. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  78. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  79. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  80. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  81. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  82. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  83. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  84. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  85. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  86. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  87. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  88. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  89. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  90. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  91. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  92. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  93. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  94. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  95. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  96. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  97. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  98. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  99. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  100. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  101. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  102. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  103. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  104. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/solutions/default.yaml +0 -0
  105. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  106. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  107. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/__init__.py +0 -0
  108. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/annotator.py +0 -0
  109. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/augment.py +0 -0
  110. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/base.py +0 -0
  111. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/build.py +0 -0
  112. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/converter.py +0 -0
  113. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/dataset.py +0 -0
  114. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/loaders.py +0 -0
  115. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/split_dota.py +0 -0
  116. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/data/utils.py +0 -0
  117. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/engine/__init__.py +0 -0
  118. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/engine/exporter.py +0 -0
  119. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/engine/model.py +0 -0
  120. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/engine/predictor.py +0 -0
  121. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/engine/results.py +0 -0
  122. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/engine/trainer.py +0 -0
  123. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/engine/tuner.py +0 -0
  124. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/engine/validator.py +0 -0
  125. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/hub/__init__.py +0 -0
  126. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/hub/auth.py +0 -0
  127. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/hub/google/__init__.py +0 -0
  128. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/hub/session.py +0 -0
  129. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/hub/utils.py +0 -0
  130. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/__init__.py +0 -0
  131. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/fastsam/__init__.py +0 -0
  132. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/fastsam/model.py +0 -0
  133. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/fastsam/predict.py +0 -0
  134. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/fastsam/utils.py +0 -0
  135. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/fastsam/val.py +0 -0
  136. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/nas/__init__.py +0 -0
  137. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/nas/model.py +0 -0
  138. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/nas/predict.py +0 -0
  139. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/nas/val.py +0 -0
  140. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/rtdetr/__init__.py +0 -0
  141. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/rtdetr/model.py +0 -0
  142. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/rtdetr/predict.py +0 -0
  143. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/rtdetr/train.py +0 -0
  144. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/rtdetr/val.py +0 -0
  145. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/__init__.py +0 -0
  146. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/amg.py +0 -0
  147. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/build.py +0 -0
  148. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/model.py +0 -0
  149. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/modules/__init__.py +0 -0
  150. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/modules/blocks.py +0 -0
  151. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/modules/decoders.py +0 -0
  152. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/modules/encoders.py +0 -0
  153. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  154. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/modules/sam.py +0 -0
  155. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  156. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/modules/transformer.py +0 -0
  157. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/modules/utils.py +0 -0
  158. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/sam/predict.py +0 -0
  159. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/utils/__init__.py +0 -0
  160. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/utils/loss.py +0 -0
  161. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/utils/ops.py +0 -0
  162. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/__init__.py +0 -0
  163. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/classify/__init__.py +0 -0
  164. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/classify/predict.py +0 -0
  165. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/classify/train.py +0 -0
  166. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/classify/val.py +0 -0
  167. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/detect/__init__.py +0 -0
  168. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/detect/predict.py +0 -0
  169. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/detect/train.py +0 -0
  170. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/detect/val.py +0 -0
  171. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/model.py +0 -0
  172. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/obb/__init__.py +0 -0
  173. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/obb/predict.py +0 -0
  174. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/obb/train.py +0 -0
  175. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/obb/val.py +0 -0
  176. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/pose/__init__.py +0 -0
  177. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/pose/predict.py +0 -0
  178. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/pose/train.py +0 -0
  179. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/pose/val.py +0 -0
  180. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/segment/__init__.py +0 -0
  181. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/segment/predict.py +0 -0
  182. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/segment/train.py +0 -0
  183. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/segment/val.py +0 -0
  184. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/world/__init__.py +0 -0
  185. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/world/train.py +0 -0
  186. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/models/yolo/world/train_world.py +0 -0
  187. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/__init__.py +0 -0
  188. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/modules/__init__.py +0 -0
  189. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/modules/activation.py +0 -0
  190. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/modules/block.py +0 -0
  191. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/modules/conv.py +0 -0
  192. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/modules/head.py +0 -0
  193. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/modules/transformer.py +0 -0
  194. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/modules/utils.py +0 -0
  195. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/nn/tasks.py +0 -0
  196. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/analytics.py +0 -0
  197. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/distance_calculation.py +0 -0
  198. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/object_counter.py +0 -0
  199. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/parking_management.py +0 -0
  200. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/region_counter.py +0 -0
  201. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/speed_estimation.py +0 -0
  202. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/solutions/streamlit_inference.py +0 -0
  203. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/trackers/__init__.py +0 -0
  204. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/trackers/basetrack.py +0 -0
  205. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/trackers/bot_sort.py +0 -0
  206. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/trackers/byte_tracker.py +0 -0
  207. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/trackers/track.py +0 -0
  208. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/trackers/utils/__init__.py +0 -0
  209. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/trackers/utils/gmc.py +0 -0
  210. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  211. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/trackers/utils/matching.py +0 -0
  212. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/__init__.py +0 -0
  213. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/autobatch.py +0 -0
  214. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/benchmarks.py +0 -0
  215. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/__init__.py +0 -0
  216. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/base.py +0 -0
  217. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/clearml.py +0 -0
  218. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/comet.py +0 -0
  219. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/dvc.py +0 -0
  220. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/hub.py +0 -0
  221. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/mlflow.py +0 -0
  222. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/neptune.py +0 -0
  223. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/raytune.py +0 -0
  224. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  225. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/callbacks/wb.py +0 -0
  226. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/checks.py +0 -0
  227. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/dist.py +0 -0
  228. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/downloads.py +0 -0
  229. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/errors.py +0 -0
  230. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/files.py +0 -0
  231. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/instance.py +0 -0
  232. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/loss.py +0 -0
  233. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/metrics.py +0 -0
  234. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/patches.py +0 -0
  235. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/plotting.py +0 -0
  236. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/tal.py +0 -0
  237. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/torch_utils.py +0 -0
  238. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/triton.py +0 -0
  239. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics/utils/tuner.py +0 -0
  240. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics.egg-info/dependency_links.txt +0 -0
  241. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics.egg-info/entry_points.txt +0 -0
  242. {ultralytics-8.3.39 → ultralytics-8.3.43}/ultralytics.egg-info/requires.txt +0 -0
  243. {ultralytics-8.3.39 → ultralytics-8.3.43}/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.39
3
+ Version: 8.3.43
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>
@@ -168,7 +168,7 @@ YOLO may be used directly in the Command Line Interface (CLI) with a `yolo` comm
168
168
  yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'
169
169
  ```
170
170
 
171
- `yolo` can be used for a variety of tasks and modes and accepts additional arguments, i.e. `imgsz=640`. See the YOLO [CLI Docs](https://docs.ultralytics.com/usage/cli/) for examples.
171
+ `yolo` can be used for a variety of tasks and modes and accepts additional arguments, e.g. `imgsz=640`. See the YOLO [CLI Docs](https://docs.ultralytics.com/usage/cli/) for examples.
172
172
 
173
173
  ### Python
174
174
 
@@ -80,7 +80,7 @@ YOLO may be used directly in the Command Line Interface (CLI) with a `yolo` comm
80
80
  yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'
81
81
  ```
82
82
 
83
- `yolo` can be used for a variety of tasks and modes and accepts additional arguments, i.e. `imgsz=640`. See the YOLO [CLI Docs](https://docs.ultralytics.com/usage/cli/) for examples.
83
+ `yolo` can be used for a variety of tasks and modes and accepts additional arguments, e.g. `imgsz=640`. See the YOLO [CLI Docs](https://docs.ultralytics.com/usage/cli/) for examples.
84
84
 
85
85
  ### Python
86
86
 
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.3.39"
3
+ __version__ = "8.3.43"
4
4
 
5
5
  import os
6
6
 
@@ -41,6 +41,7 @@ SOLUTION_MAP = {
41
41
  "speed": ("SpeedEstimator", "estimate_speed"),
42
42
  "workout": ("AIGym", "monitor"),
43
43
  "analytics": ("Analytics", "process_data"),
44
+ "trackzone": ("TrackZone", "trackzone"),
44
45
  "help": None,
45
46
  }
46
47
 
@@ -74,13 +75,12 @@ ARGV = sys.argv or ["", ""] # sometimes sys.argv = []
74
75
  SOLUTIONS_HELP_MSG = f"""
75
76
  Arguments received: {str(['yolo'] + ARGV[1:])}. Ultralytics 'yolo solutions' usage overview:
76
77
 
77
- yolo SOLUTIONS SOLUTION ARGS
78
-
79
- Where SOLUTIONS (required) is a keyword
80
- SOLUTION (optional) is one of {list(SOLUTION_MAP.keys())}
81
- ARGS (optional) are any number of custom 'arg=value' pairs like 'show_in=True' that override defaults.
82
- See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg'
78
+ yolo solutions SOLUTION ARGS
83
79
 
80
+ Where SOLUTION (optional) is one of {list(SOLUTION_MAP.keys())[:-1]}
81
+ ARGS (optional) are any number of custom 'arg=value' pairs like 'show_in=True' that override defaults
82
+ at https://docs.ultralytics.com/usage/cfg
83
+
84
84
  1. Call object counting solution
85
85
  yolo solutions count source="path/to/video/file.mp4" region=[(20, 400), (1080, 400), (1080, 360), (20, 360)]
86
86
 
@@ -95,6 +95,9 @@ SOLUTIONS_HELP_MSG = f"""
95
95
 
96
96
  5. Generate analytical graphs
97
97
  yolo solutions analytics analytics_type="pie"
98
+
99
+ 6. Track objects within specific zones
100
+ yolo solutions trackzone source="path/to/video/file.mp4" region=[(150, 150), (1130, 150), (1130, 570), (150, 570)]
98
101
  """
99
102
  CLI_HELP_MSG = f"""
100
103
  Arguments received: {str(['yolo'] + ARGV[1:])}. Ultralytics 'yolo' commands use the following syntax:
@@ -122,7 +125,7 @@ CLI_HELP_MSG = f"""
122
125
  yolo streamlit-predict
123
126
 
124
127
  6. Ultralytics solutions usage
125
- yolo solutions count or in {list(SOLUTION_MAP.keys())} source="path/to/video/file.mp4"
128
+ yolo solutions count or in {list(SOLUTION_MAP.keys())[1:-1]} source="path/to/video/file.mp4"
126
129
 
127
130
  7. Run special commands:
128
131
  yolo help
@@ -700,8 +700,7 @@ class AutoBackend(nn.Module):
700
700
  # print(type(x), len(x)) if isinstance(x, (list, tuple)) else print(type(x), x.shape) # debug shapes
701
701
  if isinstance(y, (list, tuple)):
702
702
  if len(self.names) == 999 and (self.task == "segment" or len(y) == 2): # segments and names not defined
703
- ip, ib = (0, 1) if len(y[0].shape) == 4 else (1, 0) # index of protos, boxes
704
- nc = y[ib].shape[1] - y[ip].shape[3] - 4 # y = (1, 160, 160, 32), (1, 116, 8400)
703
+ nc = y[0].shape[1] - y[1].shape[1] - 4 # y = (1, 32, 160, 160), (1, 116, 8400)
705
704
  self.names = {i: f"class{i}" for i in range(nc)}
706
705
  return self.from_numpy(y[0]) if len(y) == 1 else [self.from_numpy(x) for x in y]
707
706
  else:
@@ -10,6 +10,7 @@ from .queue_management import QueueManager
10
10
  from .region_counter import RegionCounter
11
11
  from .speed_estimation import SpeedEstimator
12
12
  from .streamlit_inference import inference
13
+ from .trackzone import TrackZone
13
14
 
14
15
  __all__ = (
15
16
  "AIGym",
@@ -23,4 +24,5 @@ __all__ = (
23
24
  "Analytics",
24
25
  "inference",
25
26
  "RegionCounter",
27
+ "TrackZone",
26
28
  )
@@ -71,7 +71,7 @@ class AIGym(BaseSolution):
71
71
  >>> processed_image = gym.monitor(image)
72
72
  """
73
73
  # Extract tracks
74
- tracks = self.model.track(source=im0, persist=True, classes=self.CFG["classes"])[0]
74
+ tracks = self.model.track(source=im0, persist=True, classes=self.CFG["classes"], **self.track_add_args)[0]
75
75
 
76
76
  if tracks.boxes.id is not None:
77
77
  # Extract and check keypoints
@@ -27,12 +27,8 @@ class Heatmap(ObjectCounter):
27
27
  Examples:
28
28
  >>> from ultralytics.solutions import Heatmap
29
29
  >>> heatmap = Heatmap(model="yolov8n.pt", colormap=cv2.COLORMAP_JET)
30
- >>> results = heatmap("path/to/video.mp4")
31
- >>> for result in results:
32
- ... print(result.speed) # Print inference speed
33
- ... cv2.imshow("Heatmap", result.plot())
34
- ... if cv2.waitKey(1) & 0xFF == ord("q"):
35
- ... break
30
+ >>> frame = cv2.imread("frame.jpg")
31
+ >>> processed_frame = heatmap.generate_heatmap(frame)
36
32
  """
37
33
 
38
34
  def __init__(self, **kwargs):
@@ -27,10 +27,13 @@ class QueueManager(BaseSolution):
27
27
  display_output: Displays the processed output.
28
28
 
29
29
  Examples:
30
- >>> queue_manager = QueueManager(source="video.mp4", region=[100, 100, 200, 200, 300, 300])
31
- >>> for frame in video_stream:
32
- ... processed_frame = queue_manager.process_queue(frame)
33
- ... cv2.imshow("Queue Management", processed_frame)
30
+ >>> cap = cv2.VideoCapture("Path/to/video/file.mp4")
31
+ >>> queue_manager = QueueManager(region=[100, 100, 200, 200, 300, 300])
32
+ >>> while cap.isOpened():
33
+ >>> success, im0 = cap.read()
34
+ >>> if not success:
35
+ >>> break
36
+ >>> out = queue.process_queue(im0)
34
37
  """
35
38
 
36
39
  def __init__(self, **kwargs):
@@ -74,6 +74,10 @@ class BaseSolution:
74
74
  self.model = YOLO(self.CFG["model"])
75
75
  self.names = self.model.names
76
76
 
77
+ self.track_add_args = { # Tracker additional arguments for advance configuration
78
+ k: self.CFG[k] for k in ["verbose", "iou", "conf", "device", "max_det", "half", "tracker"]
79
+ }
80
+
77
81
  if IS_CLI and self.CFG["source"] is None:
78
82
  d_s = "solutions_ci_demo.mp4" if "-pose" not in self.CFG["model"] else "solution_ci_pose_demo.mp4"
79
83
  LOGGER.warning(f"⚠️ WARNING: source not provided. using default source {ASSETS_URL}/{d_s}")
@@ -98,7 +102,7 @@ class BaseSolution:
98
102
  >>> frame = cv2.imread("path/to/image.jpg")
99
103
  >>> solution.extract_tracks(frame)
100
104
  """
101
- self.tracks = self.model.track(source=im0, persist=True, classes=self.CFG["classes"])
105
+ self.tracks = self.model.track(source=im0, persist=True, classes=self.CFG["classes"], **self.track_add_args)
102
106
 
103
107
  # Extract tracks for OBB or object detection
104
108
  self.track_data = self.tracks[0].obb or self.tracks[0].boxes
@@ -0,0 +1,68 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+
3
+ import cv2
4
+ import numpy as np
5
+
6
+ from ultralytics.solutions.solutions import BaseSolution
7
+ from ultralytics.utils.plotting import Annotator, colors
8
+
9
+
10
+ class TrackZone(BaseSolution):
11
+ """
12
+ A class to manage region-based object tracking in a video stream.
13
+
14
+ This class extends the BaseSolution class and provides functionality for tracking objects within a specific region
15
+ defined by a polygonal area. Objects outside the region are excluded from tracking. It supports dynamic initialization
16
+ of the region, allowing either a default region or a user-specified polygon.
17
+
18
+ Attributes:
19
+ region (ndarray): The polygonal region for tracking, represented as a convex hull.
20
+
21
+ Methods:
22
+ trackzone: Processes each frame of the video, applying region-based tracking.
23
+
24
+ Examples:
25
+ >>> tracker = TrackZone()
26
+ >>> frame = cv2.imread("frame.jpg")
27
+ >>> processed_frame = tracker.trackzone(frame)
28
+ >>> cv2.imshow("Tracked Frame", processed_frame)
29
+ """
30
+
31
+ def __init__(self, **kwargs):
32
+ """Initializes the TrackZone class for tracking objects within a defined region in video streams."""
33
+ super().__init__(**kwargs)
34
+ default_region = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
35
+ self.region = cv2.convexHull(np.array(self.region or default_region, dtype=np.int32))
36
+
37
+ def trackzone(self, im0):
38
+ """
39
+ Processes the input frame to track objects within a defined region.
40
+
41
+ This method initializes the annotator, creates a mask for the specified region, extracts tracks
42
+ only from the masked area, and updates tracking information. Objects outside the region are ignored.
43
+
44
+ Args:
45
+ im0 (numpy.ndarray): The input image or frame to be processed.
46
+
47
+ Returns:
48
+ (numpy.ndarray): The processed image with tracking id and bounding boxes annotations.
49
+
50
+ Examples:
51
+ >>> tracker = TrackZone()
52
+ >>> frame = cv2.imread("path/to/image.jpg")
53
+ >>> tracker.trackzone(frame)
54
+ """
55
+ self.annotator = Annotator(im0, line_width=self.line_width) # Initialize annotator
56
+ # Create a mask for the region and extract tracks from the masked image
57
+ masked_frame = cv2.bitwise_and(im0, im0, mask=cv2.fillPoly(np.zeros_like(im0[:, :, 0]), [self.region], 255))
58
+ self.extract_tracks(masked_frame)
59
+
60
+ cv2.polylines(im0, [self.region], isClosed=True, color=(255, 255, 255), thickness=self.line_width * 2)
61
+
62
+ # Iterate over boxes, track ids, classes indexes list and draw bounding boxes
63
+ for box, track_id, cls in zip(self.boxes, self.track_ids, self.clss):
64
+ self.annotator.box_label(box, label=f"{self.names[cls]}:{track_id}", color=colors(track_id, True))
65
+
66
+ self.display_output(im0) # display output with base class function
67
+
68
+ return im0 # return output image for more usage
@@ -469,7 +469,7 @@ def xyxy2xywhn(x, w=640, h=640, clip=False, eps=0.0):
469
469
  if clip:
470
470
  x = clip_boxes(x, (h - eps, w - eps))
471
471
  assert x.shape[-1] == 4, f"input shape last dimension expected 4 but input shape is {x.shape}"
472
- y = torch.empty_like(x) if isinstance(x, torch.Tensor) else np.empty_like(x) # faster than clone/copy
472
+ y = torch.empty_like(x) if isinstance(x, torch.Tensor) else np.empty_like(x, dtype=float) # faster than clone/copy
473
473
  y[..., 0] = ((x[..., 0] + x[..., 2]) / 2) / w # x center
474
474
  y[..., 1] = ((x[..., 1] + x[..., 3]) / 2) / h # y center
475
475
  y[..., 2] = (x[..., 2] - x[..., 0]) / w # width
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.39
3
+ Version: 8.3.43
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>
@@ -168,7 +168,7 @@ YOLO may be used directly in the Command Line Interface (CLI) with a `yolo` comm
168
168
  yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'
169
169
  ```
170
170
 
171
- `yolo` can be used for a variety of tasks and modes and accepts additional arguments, i.e. `imgsz=640`. See the YOLO [CLI Docs](https://docs.ultralytics.com/usage/cli/) for examples.
171
+ `yolo` can be used for a variety of tasks and modes and accepts additional arguments, e.g. `imgsz=640`. See the YOLO [CLI Docs](https://docs.ultralytics.com/usage/cli/) for examples.
172
172
 
173
173
  ### Python
174
174
 
@@ -207,6 +207,7 @@ ultralytics/solutions/region_counter.py
207
207
  ultralytics/solutions/solutions.py
208
208
  ultralytics/solutions/speed_estimation.py
209
209
  ultralytics/solutions/streamlit_inference.py
210
+ ultralytics/solutions/trackzone.py
210
211
  ultralytics/trackers/__init__.py
211
212
  ultralytics/trackers/basetrack.py
212
213
  ultralytics/trackers/bot_sort.py
File without changes
File without changes