ultralytics 8.3.39__tar.gz → 8.3.40__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.40}/PKG-INFO +2 -2
  2. {ultralytics-8.3.39 → ultralytics-8.3.40}/README.md +1 -1
  3. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/__init__.py +1 -1
  4. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/__init__.py +9 -6
  5. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/__init__.py +2 -0
  6. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/ai_gym.py +1 -1
  7. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/solutions.py +5 -1
  8. ultralytics-8.3.40/ultralytics/solutions/trackzone.py +68 -0
  9. {ultralytics-8.3.39 → ultralytics-8.3.40/ultralytics.egg-info}/PKG-INFO +2 -2
  10. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics.egg-info/SOURCES.txt +1 -0
  11. {ultralytics-8.3.39 → ultralytics-8.3.40}/LICENSE +0 -0
  12. {ultralytics-8.3.39 → ultralytics-8.3.40}/pyproject.toml +0 -0
  13. {ultralytics-8.3.39 → ultralytics-8.3.40}/setup.cfg +0 -0
  14. {ultralytics-8.3.39 → ultralytics-8.3.40}/tests/__init__.py +0 -0
  15. {ultralytics-8.3.39 → ultralytics-8.3.40}/tests/conftest.py +0 -0
  16. {ultralytics-8.3.39 → ultralytics-8.3.40}/tests/test_cli.py +0 -0
  17. {ultralytics-8.3.39 → ultralytics-8.3.40}/tests/test_cuda.py +0 -0
  18. {ultralytics-8.3.39 → ultralytics-8.3.40}/tests/test_engine.py +0 -0
  19. {ultralytics-8.3.39 → ultralytics-8.3.40}/tests/test_exports.py +0 -0
  20. {ultralytics-8.3.39 → ultralytics-8.3.40}/tests/test_integrations.py +0 -0
  21. {ultralytics-8.3.39 → ultralytics-8.3.40}/tests/test_python.py +0 -0
  22. {ultralytics-8.3.39 → ultralytics-8.3.40}/tests/test_solutions.py +0 -0
  23. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/assets/bus.jpg +0 -0
  24. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/assets/zidane.jpg +0 -0
  25. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  26. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  27. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  28. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  29. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  30. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  31. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  32. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  33. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  34. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  35. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  36. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  37. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  38. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/coco.yaml +0 -0
  39. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  40. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  41. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  42. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  43. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  44. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  45. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  46. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  47. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  48. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  49. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  50. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  51. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/signature.yaml +0 -0
  52. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  53. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/datasets/xView.yaml +0 -0
  54. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/default.yaml +0 -0
  55. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  56. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  57. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  58. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  59. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  60. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  61. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  62. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  63. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  64. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  65. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  66. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  67. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  68. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  69. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  70. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  71. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  72. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  73. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  74. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  75. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  76. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  77. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  78. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  79. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  80. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  81. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  82. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  83. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  84. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  85. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  86. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  87. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  88. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  89. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  90. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  91. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  92. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  93. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  94. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  95. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  96. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  97. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  98. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  99. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  100. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/solutions/default.yaml +0 -0
  101. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  102. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  103. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/__init__.py +0 -0
  104. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/annotator.py +0 -0
  105. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/augment.py +0 -0
  106. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/base.py +0 -0
  107. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/build.py +0 -0
  108. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/converter.py +0 -0
  109. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/dataset.py +0 -0
  110. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/loaders.py +0 -0
  111. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/split_dota.py +0 -0
  112. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/data/utils.py +0 -0
  113. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/engine/__init__.py +0 -0
  114. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/engine/exporter.py +0 -0
  115. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/engine/model.py +0 -0
  116. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/engine/predictor.py +0 -0
  117. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/engine/results.py +0 -0
  118. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/engine/trainer.py +0 -0
  119. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/engine/tuner.py +0 -0
  120. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/engine/validator.py +0 -0
  121. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/hub/__init__.py +0 -0
  122. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/hub/auth.py +0 -0
  123. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/hub/google/__init__.py +0 -0
  124. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/hub/session.py +0 -0
  125. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/hub/utils.py +0 -0
  126. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/__init__.py +0 -0
  127. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/fastsam/__init__.py +0 -0
  128. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/fastsam/model.py +0 -0
  129. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/fastsam/predict.py +0 -0
  130. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/fastsam/utils.py +0 -0
  131. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/fastsam/val.py +0 -0
  132. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/nas/__init__.py +0 -0
  133. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/nas/model.py +0 -0
  134. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/nas/predict.py +0 -0
  135. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/nas/val.py +0 -0
  136. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/rtdetr/__init__.py +0 -0
  137. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/rtdetr/model.py +0 -0
  138. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/rtdetr/predict.py +0 -0
  139. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/rtdetr/train.py +0 -0
  140. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/rtdetr/val.py +0 -0
  141. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/__init__.py +0 -0
  142. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/amg.py +0 -0
  143. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/build.py +0 -0
  144. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/model.py +0 -0
  145. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/modules/__init__.py +0 -0
  146. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/modules/blocks.py +0 -0
  147. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/modules/decoders.py +0 -0
  148. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/modules/encoders.py +0 -0
  149. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  150. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/modules/sam.py +0 -0
  151. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  152. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/modules/transformer.py +0 -0
  153. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/modules/utils.py +0 -0
  154. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/sam/predict.py +0 -0
  155. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/utils/__init__.py +0 -0
  156. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/utils/loss.py +0 -0
  157. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/utils/ops.py +0 -0
  158. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/__init__.py +0 -0
  159. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/classify/__init__.py +0 -0
  160. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/classify/predict.py +0 -0
  161. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/classify/train.py +0 -0
  162. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/classify/val.py +0 -0
  163. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/detect/__init__.py +0 -0
  164. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/detect/predict.py +0 -0
  165. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/detect/train.py +0 -0
  166. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/detect/val.py +0 -0
  167. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/model.py +0 -0
  168. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/obb/__init__.py +0 -0
  169. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/obb/predict.py +0 -0
  170. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/obb/train.py +0 -0
  171. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/obb/val.py +0 -0
  172. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/pose/__init__.py +0 -0
  173. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/pose/predict.py +0 -0
  174. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/pose/train.py +0 -0
  175. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/pose/val.py +0 -0
  176. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/segment/__init__.py +0 -0
  177. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/segment/predict.py +0 -0
  178. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/segment/train.py +0 -0
  179. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/segment/val.py +0 -0
  180. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/world/__init__.py +0 -0
  181. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/world/train.py +0 -0
  182. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/models/yolo/world/train_world.py +0 -0
  183. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/__init__.py +0 -0
  184. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/autobackend.py +0 -0
  185. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/modules/__init__.py +0 -0
  186. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/modules/activation.py +0 -0
  187. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/modules/block.py +0 -0
  188. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/modules/conv.py +0 -0
  189. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/modules/head.py +0 -0
  190. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/modules/transformer.py +0 -0
  191. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/modules/utils.py +0 -0
  192. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/nn/tasks.py +0 -0
  193. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/analytics.py +0 -0
  194. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/distance_calculation.py +0 -0
  195. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/heatmap.py +0 -0
  196. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/object_counter.py +0 -0
  197. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/parking_management.py +0 -0
  198. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/queue_management.py +0 -0
  199. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/region_counter.py +0 -0
  200. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/speed_estimation.py +0 -0
  201. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/solutions/streamlit_inference.py +0 -0
  202. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/trackers/__init__.py +0 -0
  203. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/trackers/basetrack.py +0 -0
  204. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/trackers/bot_sort.py +0 -0
  205. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/trackers/byte_tracker.py +0 -0
  206. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/trackers/track.py +0 -0
  207. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/trackers/utils/__init__.py +0 -0
  208. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/trackers/utils/gmc.py +0 -0
  209. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  210. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/trackers/utils/matching.py +0 -0
  211. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/__init__.py +0 -0
  212. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/autobatch.py +0 -0
  213. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/benchmarks.py +0 -0
  214. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/__init__.py +0 -0
  215. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/base.py +0 -0
  216. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/clearml.py +0 -0
  217. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/comet.py +0 -0
  218. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/dvc.py +0 -0
  219. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/hub.py +0 -0
  220. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/mlflow.py +0 -0
  221. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/neptune.py +0 -0
  222. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/raytune.py +0 -0
  223. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  224. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/callbacks/wb.py +0 -0
  225. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/checks.py +0 -0
  226. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/dist.py +0 -0
  227. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/downloads.py +0 -0
  228. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/errors.py +0 -0
  229. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/files.py +0 -0
  230. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/instance.py +0 -0
  231. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/loss.py +0 -0
  232. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/metrics.py +0 -0
  233. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/ops.py +0 -0
  234. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/patches.py +0 -0
  235. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/plotting.py +0 -0
  236. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/tal.py +0 -0
  237. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/torch_utils.py +0 -0
  238. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/triton.py +0 -0
  239. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics/utils/tuner.py +0 -0
  240. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics.egg-info/dependency_links.txt +0 -0
  241. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics.egg-info/entry_points.txt +0 -0
  242. {ultralytics-8.3.39 → ultralytics-8.3.40}/ultralytics.egg-info/requires.txt +0 -0
  243. {ultralytics-8.3.39 → ultralytics-8.3.40}/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.40
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.40"
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())}
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:
@@ -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
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.39
3
+ Version: 8.3.40
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