ultralytics 8.3.162__tar.gz → 8.3.163__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 (278) hide show
  1. {ultralytics-8.3.162/ultralytics.egg-info → ultralytics-8.3.163}/PKG-INFO +1 -1
  2. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/utils.py +3 -2
  4. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/engine/exporter.py +2 -2
  5. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/engine/predictor.py +6 -6
  6. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/tasks.py +2 -0
  7. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/region_counter.py +29 -32
  8. {ultralytics-8.3.162 → ultralytics-8.3.163/ultralytics.egg-info}/PKG-INFO +1 -1
  9. {ultralytics-8.3.162 → ultralytics-8.3.163}/LICENSE +0 -0
  10. {ultralytics-8.3.162 → ultralytics-8.3.163}/README.md +0 -0
  11. {ultralytics-8.3.162 → ultralytics-8.3.163}/pyproject.toml +0 -0
  12. {ultralytics-8.3.162 → ultralytics-8.3.163}/setup.cfg +0 -0
  13. {ultralytics-8.3.162 → ultralytics-8.3.163}/tests/__init__.py +0 -0
  14. {ultralytics-8.3.162 → ultralytics-8.3.163}/tests/conftest.py +0 -0
  15. {ultralytics-8.3.162 → ultralytics-8.3.163}/tests/test_cli.py +0 -0
  16. {ultralytics-8.3.162 → ultralytics-8.3.163}/tests/test_cuda.py +0 -0
  17. {ultralytics-8.3.162 → ultralytics-8.3.163}/tests/test_engine.py +0 -0
  18. {ultralytics-8.3.162 → ultralytics-8.3.163}/tests/test_exports.py +0 -0
  19. {ultralytics-8.3.162 → ultralytics-8.3.163}/tests/test_integrations.py +0 -0
  20. {ultralytics-8.3.162 → ultralytics-8.3.163}/tests/test_python.py +0 -0
  21. {ultralytics-8.3.162 → ultralytics-8.3.163}/tests/test_solutions.py +0 -0
  22. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/assets/bus.jpg +0 -0
  23. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/assets/zidane.jpg +0 -0
  24. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/__init__.py +0 -0
  25. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  26. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  27. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  28. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  29. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  30. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  31. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  32. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  33. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  34. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  35. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  36. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  37. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  38. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  39. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/coco.yaml +0 -0
  40. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  41. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  42. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  43. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  44. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  45. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  46. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  47. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  48. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  49. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  50. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  51. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  52. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  53. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  54. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  55. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  56. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/signature.yaml +0 -0
  57. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  58. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/datasets/xView.yaml +0 -0
  59. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/default.yaml +0 -0
  60. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  61. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  62. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  63. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  64. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  65. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  66. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  67. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  68. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  69. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  70. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  71. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  72. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  73. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  74. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  75. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  76. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  77. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  78. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  79. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  80. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  81. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  82. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  83. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  84. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  85. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  86. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  87. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  88. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  89. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  90. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  91. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  92. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  93. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  94. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  95. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  96. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  97. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  98. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  99. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  100. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  101. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  102. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  103. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  104. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  105. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  106. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  107. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  108. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  109. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  110. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  111. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  112. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  113. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  114. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  115. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  116. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  117. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/__init__.py +0 -0
  118. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/annotator.py +0 -0
  119. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/augment.py +0 -0
  120. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/base.py +0 -0
  121. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/build.py +0 -0
  122. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/converter.py +0 -0
  123. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/dataset.py +0 -0
  124. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/loaders.py +0 -0
  125. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/scripts/download_weights.sh +0 -0
  126. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/scripts/get_coco.sh +0 -0
  127. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/scripts/get_coco128.sh +0 -0
  128. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  129. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/split.py +0 -0
  130. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/data/split_dota.py +0 -0
  131. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/engine/__init__.py +0 -0
  132. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/engine/model.py +0 -0
  133. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/engine/results.py +0 -0
  134. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/engine/trainer.py +0 -0
  135. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/engine/tuner.py +0 -0
  136. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/engine/validator.py +0 -0
  137. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/hub/__init__.py +0 -0
  138. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/hub/auth.py +0 -0
  139. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/hub/google/__init__.py +0 -0
  140. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/hub/session.py +0 -0
  141. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/hub/utils.py +0 -0
  142. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/__init__.py +0 -0
  143. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/fastsam/__init__.py +0 -0
  144. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/fastsam/model.py +0 -0
  145. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/fastsam/predict.py +0 -0
  146. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/fastsam/utils.py +0 -0
  147. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/fastsam/val.py +0 -0
  148. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/nas/__init__.py +0 -0
  149. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/nas/model.py +0 -0
  150. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/nas/predict.py +0 -0
  151. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/nas/val.py +0 -0
  152. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/rtdetr/__init__.py +0 -0
  153. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/rtdetr/model.py +0 -0
  154. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/rtdetr/predict.py +0 -0
  155. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/rtdetr/train.py +0 -0
  156. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/rtdetr/val.py +0 -0
  157. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/__init__.py +0 -0
  158. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/amg.py +0 -0
  159. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/build.py +0 -0
  160. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/model.py +0 -0
  161. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/modules/__init__.py +0 -0
  162. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/modules/blocks.py +0 -0
  163. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/modules/decoders.py +0 -0
  164. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/modules/encoders.py +0 -0
  165. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  166. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/modules/sam.py +0 -0
  167. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  168. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/modules/transformer.py +0 -0
  169. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/modules/utils.py +0 -0
  170. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/sam/predict.py +0 -0
  171. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/utils/__init__.py +0 -0
  172. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/utils/loss.py +0 -0
  173. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/utils/ops.py +0 -0
  174. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/__init__.py +0 -0
  175. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/classify/__init__.py +0 -0
  176. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/classify/predict.py +0 -0
  177. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/classify/train.py +0 -0
  178. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/classify/val.py +0 -0
  179. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/detect/__init__.py +0 -0
  180. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/detect/predict.py +0 -0
  181. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/detect/train.py +0 -0
  182. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/detect/val.py +0 -0
  183. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/model.py +0 -0
  184. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/obb/__init__.py +0 -0
  185. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/obb/predict.py +0 -0
  186. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/obb/train.py +0 -0
  187. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/obb/val.py +0 -0
  188. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/pose/__init__.py +0 -0
  189. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/pose/predict.py +0 -0
  190. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/pose/train.py +0 -0
  191. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/pose/val.py +0 -0
  192. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/segment/__init__.py +0 -0
  193. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/segment/predict.py +0 -0
  194. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/segment/train.py +0 -0
  195. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/segment/val.py +0 -0
  196. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/world/__init__.py +0 -0
  197. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/world/train.py +0 -0
  198. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/world/train_world.py +0 -0
  199. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  200. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  201. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/yoloe/train.py +0 -0
  202. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  203. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/models/yolo/yoloe/val.py +0 -0
  204. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/__init__.py +0 -0
  205. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/autobackend.py +0 -0
  206. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/modules/__init__.py +0 -0
  207. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/modules/activation.py +0 -0
  208. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/modules/block.py +0 -0
  209. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/modules/conv.py +0 -0
  210. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/modules/head.py +0 -0
  211. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/modules/transformer.py +0 -0
  212. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/modules/utils.py +0 -0
  213. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/nn/text_model.py +0 -0
  214. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/__init__.py +0 -0
  215. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/ai_gym.py +0 -0
  216. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/analytics.py +0 -0
  217. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/config.py +0 -0
  218. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/distance_calculation.py +0 -0
  219. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/heatmap.py +0 -0
  220. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/instance_segmentation.py +0 -0
  221. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/object_blurrer.py +0 -0
  222. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/object_counter.py +0 -0
  223. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/object_cropper.py +0 -0
  224. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/parking_management.py +0 -0
  225. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/queue_management.py +0 -0
  226. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/security_alarm.py +0 -0
  227. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/similarity_search.py +0 -0
  228. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/solutions.py +0 -0
  229. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/speed_estimation.py +0 -0
  230. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/streamlit_inference.py +0 -0
  231. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/templates/similarity-search.html +0 -0
  232. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/trackzone.py +0 -0
  233. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/solutions/vision_eye.py +0 -0
  234. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/trackers/__init__.py +0 -0
  235. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/trackers/basetrack.py +0 -0
  236. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/trackers/bot_sort.py +0 -0
  237. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/trackers/byte_tracker.py +0 -0
  238. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/trackers/track.py +0 -0
  239. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/trackers/utils/__init__.py +0 -0
  240. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/trackers/utils/gmc.py +0 -0
  241. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  242. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/trackers/utils/matching.py +0 -0
  243. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/__init__.py +0 -0
  244. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/autobatch.py +0 -0
  245. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/autodevice.py +0 -0
  246. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/benchmarks.py +0 -0
  247. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/__init__.py +0 -0
  248. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/base.py +0 -0
  249. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/clearml.py +0 -0
  250. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/comet.py +0 -0
  251. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/dvc.py +0 -0
  252. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/hub.py +0 -0
  253. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/mlflow.py +0 -0
  254. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/neptune.py +0 -0
  255. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/raytune.py +0 -0
  256. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  257. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/callbacks/wb.py +0 -0
  258. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/checks.py +0 -0
  259. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/dist.py +0 -0
  260. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/downloads.py +0 -0
  261. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/errors.py +0 -0
  262. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/export.py +0 -0
  263. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/files.py +0 -0
  264. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/instance.py +0 -0
  265. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/loss.py +0 -0
  266. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/metrics.py +0 -0
  267. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/ops.py +0 -0
  268. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/patches.py +0 -0
  269. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/plotting.py +0 -0
  270. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/tal.py +0 -0
  271. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/torch_utils.py +0 -0
  272. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/triton.py +0 -0
  273. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics/utils/tuner.py +0 -0
  274. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics.egg-info/SOURCES.txt +0 -0
  275. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics.egg-info/dependency_links.txt +0 -0
  276. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics.egg-info/entry_points.txt +0 -0
  277. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics.egg-info/requires.txt +0 -0
  278. {ultralytics-8.3.162 → ultralytics-8.3.163}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.162
3
+ Version: 8.3.163
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 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.162"
3
+ __version__ = "8.3.163"
4
4
 
5
5
  import os
6
6
 
@@ -214,8 +214,9 @@ def verify_image_label(args: Tuple) -> List:
214
214
  else:
215
215
  assert lb.shape[1] == 5, f"labels require 5 columns, {lb.shape[1]} columns detected"
216
216
  points = lb[:, 1:]
217
- assert points.max() <= 1, f"non-normalized or out of bounds coordinates {points[points > 1]}"
218
- assert lb.min() >= 0, f"negative label values {lb[lb < 0]}"
217
+ # Coordinate points check with 1% tolerance
218
+ assert points.max() <= 1.01, f"non-normalized or out of bounds coordinates {points[points > 1.01]}"
219
+ assert lb.min() >= -0.01, f"negative class labels {lb[lb < -0.01]}"
219
220
 
220
221
  # All labels
221
222
  if single_cls:
@@ -574,7 +574,7 @@ class Exporter:
574
574
  """Export YOLO model to ONNX format."""
575
575
  requirements = ["onnx>=1.12.0,<1.18.0"]
576
576
  if self.args.simplify:
577
- requirements += ["onnxslim>=0.1.56", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
577
+ requirements += ["onnxslim>=0.1.59", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
578
578
  check_requirements(requirements)
579
579
  import onnx # noqa
580
580
 
@@ -952,7 +952,7 @@ class Exporter:
952
952
  "ai-edge-litert>=1.2.0,<1.4.0", # required by 'onnx2tf' package
953
953
  "onnx>=1.12.0,<1.18.0",
954
954
  "onnx2tf>=1.26.3",
955
- "onnxslim>=0.1.56",
955
+ "onnxslim>=0.1.59",
956
956
  "onnxruntime-gpu" if cuda else "onnxruntime",
957
957
  "protobuf>=5",
958
958
  ),
@@ -452,16 +452,16 @@ class BasePredictor:
452
452
  if self.args.show:
453
453
  self.show(str(p))
454
454
  if self.args.save:
455
- self.save_predicted_images(str(self.save_dir / p.name), frame)
455
+ self.save_predicted_images(self.save_dir / p.name, frame)
456
456
 
457
457
  return string
458
458
 
459
- def save_predicted_images(self, save_path: str = "", frame: int = 0):
459
+ def save_predicted_images(self, save_path: Path, frame: int = 0):
460
460
  """
461
461
  Save video predictions as mp4 or images as jpg at specified path.
462
462
 
463
463
  Args:
464
- save_path (str): Path to save the results.
464
+ save_path (Path): Path to save the results.
465
465
  frame (int): Frame number for video mode.
466
466
  """
467
467
  im = self.plotted_img
@@ -469,7 +469,7 @@ class BasePredictor:
469
469
  # Save videos and streams
470
470
  if self.dataset.mode in {"stream", "video"}:
471
471
  fps = self.dataset.fps if self.dataset.mode == "video" else 30
472
- frames_path = f"{save_path.split('.', 1)[0]}_frames/"
472
+ frames_path = self.save_dir / f"{save_path.stem}_frames" # save frames to a separate directory
473
473
  if save_path not in self.vid_writer: # new video
474
474
  if self.args.save_frames:
475
475
  Path(frames_path).mkdir(parents=True, exist_ok=True)
@@ -484,11 +484,11 @@ class BasePredictor:
484
484
  # Save video
485
485
  self.vid_writer[save_path].write(im)
486
486
  if self.args.save_frames:
487
- cv2.imwrite(f"{frames_path}{frame}.jpg", im)
487
+ cv2.imwrite(f"{frames_path}/{save_path.stem}_{frame}.jpg", im)
488
488
 
489
489
  # Save images
490
490
  else:
491
- cv2.imwrite(str(Path(save_path).with_suffix(".jpg")), im) # save to JPG for best support
491
+ cv2.imwrite(str(save_path.with_suffix(".jpg")), im) # save to JPG for best support
492
492
 
493
493
  def show(self, p: str = ""):
494
494
  """Display an image in a window."""
@@ -249,6 +249,8 @@ class BaseModel(torch.nn.Module):
249
249
  m.forward = m.forward_fuse
250
250
  if isinstance(m, v10Detect):
251
251
  m.fuse() # remove one2many head
252
+ if isinstance(m, YOLOEDetect) and hasattr(self, "pe"):
253
+ m.fuse(self.pe.to(next(self.model.parameters()).device))
252
254
  self.info(verbose=verbose)
253
255
 
254
256
  return self
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- from typing import Any, List, Tuple
3
+ from typing import Any, Dict, List, Tuple
4
4
 
5
5
  import numpy as np
6
6
 
@@ -26,6 +26,7 @@ class RegionCounter(BaseSolution):
26
26
  Methods:
27
27
  add_region: Add a new counting region with specified attributes.
28
28
  process: Process video frames to count objects in each region.
29
+ initialize_regions: Initialize zones to count the objects in each one. Zones could be multiple as well.
29
30
 
30
31
  Examples:
31
32
  Initialize a RegionCounter and add a counting region
@@ -42,12 +43,12 @@ class RegionCounter(BaseSolution):
42
43
  "name": "Default Region",
43
44
  "polygon": None,
44
45
  "counts": 0,
45
- "dragging": False,
46
46
  "region_color": (255, 255, 255),
47
47
  "text_color": (0, 0, 0),
48
48
  }
49
49
  self.region_counts = {}
50
50
  self.counting_regions = []
51
+ self.initialize_regions()
51
52
 
52
53
  def add_region(
53
54
  self,
@@ -55,7 +56,7 @@ class RegionCounter(BaseSolution):
55
56
  polygon_points: List[Tuple],
56
57
  region_color: Tuple[int, int, int],
57
58
  text_color: Tuple[int, int, int],
58
- ) -> None:
59
+ ) -> Dict[str, Any]:
59
60
  """
60
61
  Add a new region to the counting list based on the provided template with specific attributes.
61
62
 
@@ -64,6 +65,9 @@ class RegionCounter(BaseSolution):
64
65
  polygon_points (List[Tuple]): List of (x, y) coordinates defining the region's polygon.
65
66
  region_color (Tuple[int, int, int]): BGR color for region visualization.
66
67
  text_color (Tuple[int, int, int]): BGR color for the text within the region.
68
+
69
+ Returns:
70
+ (Dict[str, any]): Returns a dictionary including the region information i.e. name, region_color etc.
67
71
  """
68
72
  region = self.region_template.copy()
69
73
  region.update(
@@ -75,6 +79,17 @@ class RegionCounter(BaseSolution):
75
79
  }
76
80
  )
77
81
  self.counting_regions.append(region)
82
+ return region
83
+
84
+ def initialize_regions(self):
85
+ """Initialize regions only once."""
86
+ if self.region is None:
87
+ self.initialize_region()
88
+ if not isinstance(self.region, dict): # Ensure self.region is initialized and structured as a dictionary
89
+ self.region = {"Region#01": self.region}
90
+ for i, (name, pts) in enumerate(self.region.items()):
91
+ region = self.add_region(name, pts, colors(i, True), (255, 255, 255))
92
+ region["prepared_polygon"] = self.prep(region["polygon"])
78
93
 
79
94
  def process(self, im0: np.ndarray) -> SolutionResults:
80
95
  """
@@ -90,39 +105,21 @@ class RegionCounter(BaseSolution):
90
105
  self.extract_tracks(im0)
91
106
  annotator = SolutionAnnotator(im0, line_width=self.line_width)
92
107
 
93
- # Ensure self.region is initialized and structured as a dictionary
94
- if not isinstance(self.region, dict):
95
- self.region = {"Region#01": self.region or self.initialize_region()}
96
-
97
- # Draw only valid regions
98
- for idx, (region_name, reg_pts) in enumerate(self.region.items(), start=1):
99
- color = colors(idx, True)
100
- annotator.draw_region(reg_pts, color, self.line_width * 2)
101
- self.add_region(region_name, reg_pts, color, annotator.get_txt_color())
102
-
103
- # Prepare regions for containment check (only process valid ones)
104
- for region in self.counting_regions:
105
- if "prepared_polygon" not in region:
106
- region["prepared_polygon"] = self.prep(region["polygon"])
107
-
108
- # Convert bounding boxes to NumPy array for center points
109
- boxes_np = np.array([((box[0] + box[2]) / 2, (box[1] + box[3]) / 2) for box in self.boxes], dtype=np.float32)
110
- points = [self.Point(pt) for pt in boxes_np] # Convert centers to Point objects
111
-
112
- # Process bounding boxes & check containment
113
- if points:
114
- for point, cls, track_id, box, conf in zip(points, self.clss, self.track_ids, self.boxes, self.confs):
115
- annotator.box_label(box, label=self.adjust_box_label(cls, conf, track_id), color=colors(track_id, True))
116
-
117
- for region in self.counting_regions:
118
- if region["prepared_polygon"].contains(point):
119
- region["counts"] += 1
120
- self.region_counts[region["name"]] = region["counts"]
108
+ for box, cls, track_id, conf in zip(self.boxes, self.clss, self.track_ids, self.confs):
109
+ annotator.box_label(box, label=self.adjust_box_label(cls, conf, track_id), color=colors(track_id, True))
110
+ center = self.Point(((box[0] + box[2]) / 2, (box[1] + box[3]) / 2))
111
+ for region in self.counting_regions:
112
+ if region["prepared_polygon"].contains(center):
113
+ region["counts"] += 1
114
+ self.region_counts[region["name"]] = region["counts"]
121
115
 
122
116
  # Display region counts
123
117
  for region in self.counting_regions:
118
+ x1, y1, x2, y2 = map(int, region["polygon"].bounds)
119
+ pts = [(x1, y1), (x2, y1), (x2, y2), (x1, y2)]
120
+ annotator.draw_region(pts, region["region_color"], self.line_width * 2)
124
121
  annotator.text_label(
125
- region["polygon"].bounds,
122
+ [x1, y1, x2, y2],
126
123
  label=str(region["counts"]),
127
124
  color=region["region_color"],
128
125
  txt_color=region["text_color"],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.162
3
+ Version: 8.3.163
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>
File without changes
File without changes
File without changes