ultralytics 8.3.35__tar.gz → 8.3.37__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. {ultralytics-8.3.35/ultralytics.egg-info → ultralytics-8.3.37}/PKG-INFO +4 -4
  2. {ultralytics-8.3.35 → ultralytics-8.3.37}/README.md +3 -3
  3. {ultralytics-8.3.35 → ultralytics-8.3.37}/tests/test_solutions.py +1 -1
  4. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/__init__.py +1 -1
  5. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/__init__.py +2 -2
  6. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/default.yaml +1 -1
  7. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/solutions/default.yaml +1 -1
  8. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/augment.py +1 -1
  9. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/engine/exporter.py +6 -7
  10. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/engine/model.py +17 -0
  11. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/tasks.py +4 -14
  12. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/object_counter.py +21 -25
  13. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/solutions.py +1 -1
  14. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/torch_utils.py +1 -1
  15. {ultralytics-8.3.35 → ultralytics-8.3.37/ultralytics.egg-info}/PKG-INFO +4 -4
  16. {ultralytics-8.3.35 → ultralytics-8.3.37}/LICENSE +0 -0
  17. {ultralytics-8.3.35 → ultralytics-8.3.37}/pyproject.toml +0 -0
  18. {ultralytics-8.3.35 → ultralytics-8.3.37}/setup.cfg +0 -0
  19. {ultralytics-8.3.35 → ultralytics-8.3.37}/tests/__init__.py +0 -0
  20. {ultralytics-8.3.35 → ultralytics-8.3.37}/tests/conftest.py +0 -0
  21. {ultralytics-8.3.35 → ultralytics-8.3.37}/tests/test_cli.py +0 -0
  22. {ultralytics-8.3.35 → ultralytics-8.3.37}/tests/test_cuda.py +0 -0
  23. {ultralytics-8.3.35 → ultralytics-8.3.37}/tests/test_engine.py +0 -0
  24. {ultralytics-8.3.35 → ultralytics-8.3.37}/tests/test_exports.py +0 -0
  25. {ultralytics-8.3.35 → ultralytics-8.3.37}/tests/test_integrations.py +0 -0
  26. {ultralytics-8.3.35 → ultralytics-8.3.37}/tests/test_python.py +0 -0
  27. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/assets/bus.jpg +0 -0
  28. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/assets/zidane.jpg +0 -0
  29. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  30. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  31. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  32. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  33. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  34. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  35. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  36. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  37. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  38. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  39. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  40. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  41. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  42. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/coco.yaml +0 -0
  43. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  44. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  45. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  46. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  47. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  48. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  49. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  50. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  51. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  52. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  53. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  54. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  55. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/signature.yaml +0 -0
  56. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  57. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/datasets/xView.yaml +0 -0
  58. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  59. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  60. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  61. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  62. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  63. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  64. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  65. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  66. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  67. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  68. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  69. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  70. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  71. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  72. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  73. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  74. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  75. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  76. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  77. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  78. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  79. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  80. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  81. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  82. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  83. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  84. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  85. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  86. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  87. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  88. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  89. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  90. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  91. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  92. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  93. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  94. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  95. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  96. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  97. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  98. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  99. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  100. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  101. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  102. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  103. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  104. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  105. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/__init__.py +0 -0
  106. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/annotator.py +0 -0
  107. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/base.py +0 -0
  108. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/build.py +0 -0
  109. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/converter.py +0 -0
  110. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/dataset.py +0 -0
  111. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/loaders.py +0 -0
  112. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/split_dota.py +0 -0
  113. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/data/utils.py +0 -0
  114. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/engine/__init__.py +0 -0
  115. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/engine/predictor.py +0 -0
  116. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/engine/results.py +0 -0
  117. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/engine/trainer.py +0 -0
  118. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/engine/tuner.py +0 -0
  119. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/engine/validator.py +0 -0
  120. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/hub/__init__.py +0 -0
  121. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/hub/auth.py +0 -0
  122. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/hub/google/__init__.py +0 -0
  123. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/hub/session.py +0 -0
  124. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/hub/utils.py +0 -0
  125. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/__init__.py +0 -0
  126. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/fastsam/__init__.py +0 -0
  127. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/fastsam/model.py +0 -0
  128. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/fastsam/predict.py +0 -0
  129. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/fastsam/utils.py +0 -0
  130. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/fastsam/val.py +0 -0
  131. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/nas/__init__.py +0 -0
  132. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/nas/model.py +0 -0
  133. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/nas/predict.py +0 -0
  134. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/nas/val.py +0 -0
  135. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/rtdetr/__init__.py +0 -0
  136. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/rtdetr/model.py +0 -0
  137. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/rtdetr/predict.py +0 -0
  138. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/rtdetr/train.py +0 -0
  139. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/rtdetr/val.py +0 -0
  140. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/__init__.py +0 -0
  141. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/amg.py +0 -0
  142. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/build.py +0 -0
  143. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/model.py +0 -0
  144. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/modules/__init__.py +0 -0
  145. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/modules/blocks.py +0 -0
  146. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/modules/decoders.py +0 -0
  147. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/modules/encoders.py +0 -0
  148. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  149. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/modules/sam.py +0 -0
  150. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  151. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/modules/transformer.py +0 -0
  152. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/modules/utils.py +0 -0
  153. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/sam/predict.py +0 -0
  154. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/utils/__init__.py +0 -0
  155. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/utils/loss.py +0 -0
  156. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/utils/ops.py +0 -0
  157. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/__init__.py +0 -0
  158. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/classify/__init__.py +0 -0
  159. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/classify/predict.py +0 -0
  160. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/classify/train.py +0 -0
  161. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/classify/val.py +0 -0
  162. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/detect/__init__.py +0 -0
  163. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/detect/predict.py +0 -0
  164. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/detect/train.py +0 -0
  165. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/detect/val.py +0 -0
  166. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/model.py +0 -0
  167. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/obb/__init__.py +0 -0
  168. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/obb/predict.py +0 -0
  169. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/obb/train.py +0 -0
  170. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/obb/val.py +0 -0
  171. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/pose/__init__.py +0 -0
  172. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/pose/predict.py +0 -0
  173. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/pose/train.py +0 -0
  174. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/pose/val.py +0 -0
  175. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/segment/__init__.py +0 -0
  176. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/segment/predict.py +0 -0
  177. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/segment/train.py +0 -0
  178. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/segment/val.py +0 -0
  179. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/world/__init__.py +0 -0
  180. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/world/train.py +0 -0
  181. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/models/yolo/world/train_world.py +0 -0
  182. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/__init__.py +0 -0
  183. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/autobackend.py +0 -0
  184. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/modules/__init__.py +0 -0
  185. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/modules/activation.py +0 -0
  186. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/modules/block.py +0 -0
  187. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/modules/conv.py +0 -0
  188. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/modules/head.py +0 -0
  189. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/modules/transformer.py +0 -0
  190. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/nn/modules/utils.py +0 -0
  191. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/__init__.py +0 -0
  192. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/ai_gym.py +0 -0
  193. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/analytics.py +0 -0
  194. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/distance_calculation.py +0 -0
  195. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/heatmap.py +0 -0
  196. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/parking_management.py +0 -0
  197. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/queue_management.py +0 -0
  198. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/region_counter.py +0 -0
  199. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/speed_estimation.py +0 -0
  200. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/solutions/streamlit_inference.py +0 -0
  201. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/trackers/__init__.py +0 -0
  202. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/trackers/basetrack.py +0 -0
  203. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/trackers/bot_sort.py +0 -0
  204. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/trackers/byte_tracker.py +0 -0
  205. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/trackers/track.py +0 -0
  206. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/trackers/utils/__init__.py +0 -0
  207. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/trackers/utils/gmc.py +0 -0
  208. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  209. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/trackers/utils/matching.py +0 -0
  210. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/__init__.py +0 -0
  211. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/autobatch.py +0 -0
  212. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/benchmarks.py +0 -0
  213. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/__init__.py +0 -0
  214. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/base.py +0 -0
  215. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/clearml.py +0 -0
  216. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/comet.py +0 -0
  217. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/dvc.py +0 -0
  218. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/hub.py +0 -0
  219. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/mlflow.py +0 -0
  220. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/neptune.py +0 -0
  221. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/raytune.py +0 -0
  222. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  223. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/callbacks/wb.py +0 -0
  224. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/checks.py +0 -0
  225. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/dist.py +0 -0
  226. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/downloads.py +0 -0
  227. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/errors.py +0 -0
  228. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/files.py +0 -0
  229. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/instance.py +0 -0
  230. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/loss.py +0 -0
  231. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/metrics.py +0 -0
  232. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/ops.py +0 -0
  233. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/patches.py +0 -0
  234. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/plotting.py +0 -0
  235. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/tal.py +0 -0
  236. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/triton.py +0 -0
  237. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics/utils/tuner.py +0 -0
  238. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics.egg-info/SOURCES.txt +0 -0
  239. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics.egg-info/dependency_links.txt +0 -0
  240. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics.egg-info/entry_points.txt +0 -0
  241. {ultralytics-8.3.35 → ultralytics-8.3.37}/ultralytics.egg-info/requires.txt +0 -0
  242. {ultralytics-8.3.35 → ultralytics-8.3.37}/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.35
3
+ Version: 8.3.37
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>
@@ -96,7 +96,7 @@ Requires-Dist: pycocotools>=2.0.7; extra == "extra"
96
96
 
97
97
  <div>
98
98
  <a href="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml"><img src="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml/badge.svg" alt="Ultralytics CI"></a>
99
- <a href="https://www.pepy.tech/projects/ultralytics"><img src="https://static.pepy.tech/badge/ultralytics" alt="Ultralytics Downloads"></a>
99
+ <a href="https://pepy.tech/projects/ultralytics"><img src="https://static.pepy.tech/badge/ultralytics" alt="Ultralytics Downloads"></a>
100
100
  <a href="https://zenodo.org/badge/latestdoi/264818686"><img src="https://zenodo.org/badge/264818686.svg" alt="Ultralytics YOLO Citation"></a>
101
101
  <a href="https://discord.com/invite/ultralytics"><img alt="Ultralytics Discord" src="https://img.shields.io/discord/1089800235347353640?logo=discord&logoColor=white&label=Discord&color=blue"></a>
102
102
  <a href="https://community.ultralytics.com/"><img alt="Ultralytics Forums" src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fcommunity.ultralytics.com&logo=discourse&label=Forums&color=blue"></a>
@@ -238,8 +238,8 @@ See [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) for usage e
238
238
  | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
239
239
  | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
240
240
 
241
- - **mAP<sup>val</sup>** values are for single-model single-scale on [COCO val2017](https://cocodataset.org/) dataset. <br>Reproduce by `yolo val segment data=coco-seg.yaml device=0`
242
- - **Speed** averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val segment data=coco-seg.yaml batch=1 device=0|cpu`
241
+ - **mAP<sup>val</sup>** values are for single-model single-scale on [COCO val2017](https://cocodataset.org/) dataset. <br>Reproduce by `yolo val segment data=coco.yaml device=0`
242
+ - **Speed** averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val segment data=coco.yaml batch=1 device=0|cpu`
243
243
 
244
244
  </details>
245
245
 
@@ -8,7 +8,7 @@
8
8
 
9
9
  <div>
10
10
  <a href="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml"><img src="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml/badge.svg" alt="Ultralytics CI"></a>
11
- <a href="https://www.pepy.tech/projects/ultralytics"><img src="https://static.pepy.tech/badge/ultralytics" alt="Ultralytics Downloads"></a>
11
+ <a href="https://pepy.tech/projects/ultralytics"><img src="https://static.pepy.tech/badge/ultralytics" alt="Ultralytics Downloads"></a>
12
12
  <a href="https://zenodo.org/badge/latestdoi/264818686"><img src="https://zenodo.org/badge/264818686.svg" alt="Ultralytics YOLO Citation"></a>
13
13
  <a href="https://discord.com/invite/ultralytics"><img alt="Ultralytics Discord" src="https://img.shields.io/discord/1089800235347353640?logo=discord&logoColor=white&label=Discord&color=blue"></a>
14
14
  <a href="https://community.ultralytics.com/"><img alt="Ultralytics Forums" src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fcommunity.ultralytics.com&logo=discourse&label=Forums&color=blue"></a>
@@ -150,8 +150,8 @@ See [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) for usage e
150
150
  | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
151
151
  | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
152
152
 
153
- - **mAP<sup>val</sup>** values are for single-model single-scale on [COCO val2017](https://cocodataset.org/) dataset. <br>Reproduce by `yolo val segment data=coco-seg.yaml device=0`
154
- - **Speed** averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val segment data=coco-seg.yaml batch=1 device=0|cpu`
153
+ - **mAP<sup>val</sup>** values are for single-model single-scale on [COCO val2017](https://cocodataset.org/) dataset. <br>Reproduce by `yolo val segment data=coco.yaml device=0`
154
+ - **Speed** averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val segment data=coco.yaml batch=1 device=0|cpu`
155
155
 
156
156
  </details>
157
157
 
@@ -16,7 +16,7 @@ def test_major_solutions():
16
16
  safe_download(url=MAJOR_SOLUTIONS_DEMO)
17
17
  cap = cv2.VideoCapture("solutions_ci_demo.mp4")
18
18
  assert cap.isOpened(), "Error reading video file"
19
- region_points = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
19
+ region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
20
20
  counter = solutions.ObjectCounter(region=region_points, model="yolo11n.pt", show=False) # Test object counter
21
21
  heatmap = solutions.Heatmap(colormap=cv2.COLORMAP_PARULA, model="yolo11n.pt", show=False) # Test heatmaps
22
22
  speed = solutions.SpeedEstimator(region=region_points, model="yolo11n.pt", show=False) # Test queue manager
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.3.35"
3
+ __version__ = "8.3.37"
4
4
 
5
5
  import os
6
6
 
@@ -83,13 +83,13 @@ SOLUTIONS_HELP_MSG = f"""
83
83
  See all ARGS at https://docs.ultralytics.com/usage/cfg or with 'yolo cfg'
84
84
 
85
85
  1. Call object counting solution
86
- yolo solutions count source="path/to/video/file.mp4" region=[(20, 400), (1080, 404), (1080, 360), (20, 360)]
86
+ yolo solutions count source="path/to/video/file.mp4" region=[(20, 400), (1080, 400), (1080, 360), (20, 360)]
87
87
 
88
88
  2. Call heatmaps solution
89
89
  yolo solutions heatmap colormap=cv2.COLORMAP_PARAULA model=yolo11n.pt
90
90
 
91
91
  3. Call queue management solution
92
- yolo solutions queue region=[(20, 400), (1080, 404), (1080, 360), (20, 360)] model=yolo11n.pt
92
+ yolo solutions queue region=[(20, 400), (1080, 400), (1080, 360), (20, 360)] model=yolo11n.pt
93
93
 
94
94
  4. Call workouts monitoring solution for push-ups
95
95
  yolo solutions workout model=yolo11n-pose.pt kpts=[6, 8, 10]
@@ -83,7 +83,7 @@ int8: False # (bool) CoreML/TF INT8 quantization
83
83
  dynamic: False # (bool) ONNX/TF/TensorRT: dynamic axes
84
84
  simplify: True # (bool) ONNX: simplify model using `onnxslim`
85
85
  opset: # (int, optional) ONNX: opset version
86
- workspace: 4 # (int) TensorRT: workspace size (GB)
86
+ workspace: None # (float, optional) TensorRT: workspace size (GiB), `None` will let TensorRT auto-allocate memory
87
87
  nms: False # (bool) CoreML: add NMS
88
88
 
89
89
  # Hyperparameters ------------------------------------------------------------------------------------------------------
@@ -2,7 +2,7 @@
2
2
  # Configuration for Ultralytics Solutions
3
3
 
4
4
  # Object counting settings
5
- region: # Object counting, queue or speed estimation region points. Default region points are [(20, 400), (1080, 404), (1080, 360), (20, 360)]
5
+ region: # Object counting, queue or speed estimation region points. Default region points are [(20, 400), (1080, 400), (1080, 360), (20, 360)]
6
6
  show_in: True # Flag to display objects moving *into* the defined region
7
7
  show_out: True # Flag to display objects moving *out of* the defined region
8
8
 
@@ -1591,7 +1591,7 @@ class LetterBox:
1591
1591
  labels["ratio_pad"] = (labels["ratio_pad"], (left, top)) # for evaluation
1592
1592
 
1593
1593
  if len(labels):
1594
- labels = self._update_labels(labels, ratio, dw, dh)
1594
+ labels = self._update_labels(labels, ratio, left, top)
1595
1595
  labels["img"] = img
1596
1596
  labels["resized_shape"] = new_shape
1597
1597
  return labels
@@ -501,8 +501,7 @@ class Exporter:
501
501
  @try_export
502
502
  def export_openvino(self, prefix=colorstr("OpenVINO:")):
503
503
  """YOLO OpenVINO export."""
504
- # WARNING: numpy>=2.0.0 issue with OpenVINO on macOS https://github.com/ultralytics/ultralytics/pull/17221
505
- check_requirements(f'openvino{"<=2024.0.0" if ARM64 else ">=2024.0.0"}') # fix OpenVINO issue on ARM64
504
+ check_requirements("openvino>=2024.5.0")
506
505
  import openvino as ov
507
506
 
508
507
  LOGGER.info(f"\n{prefix} starting export with openvino {ov.__version__}...")
@@ -530,7 +529,7 @@ class Exporter:
530
529
  if self.args.int8:
531
530
  fq = str(self.file).replace(self.file.suffix, f"_int8_openvino_model{os.sep}")
532
531
  fq_ov = str(Path(fq) / self.file.with_suffix(".xml").name)
533
- check_requirements("nncf>=2.8.0")
532
+ check_requirements("nncf>=2.14.0")
534
533
  import nncf
535
534
 
536
535
  def transform_fn(data_item) -> np.ndarray:
@@ -782,10 +781,10 @@ class Exporter:
782
781
  # Engine builder
783
782
  builder = trt.Builder(logger)
784
783
  config = builder.create_builder_config()
785
- workspace = int(self.args.workspace * (1 << 30))
786
- if is_trt10:
784
+ workspace = int(self.args.workspace * (1 << 30)) if self.args.workspace is not None else 0
785
+ if is_trt10 and workspace > 0:
787
786
  config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, workspace)
788
- else: # TensorRT versions 7, 8
787
+ elif workspace > 0 and not is_trt10: # TensorRT versions 7, 8
789
788
  config.max_workspace_size = workspace
790
789
  flag = 1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)
791
790
  network = builder.create_network(flag)
@@ -824,7 +823,7 @@ class Exporter:
824
823
  LOGGER.warning(f"{prefix} WARNING ⚠️ 'dynamic=True' model requires max batch size, i.e. 'batch=16'")
825
824
  profile = builder.create_optimization_profile()
826
825
  min_shape = (1, shape[1], 32, 32) # minimum input shape
827
- max_shape = (*shape[:2], *(int(max(1, self.args.workspace) * d) for d in shape[2:])) # max input shape
826
+ max_shape = (*shape[:2], *(int(max(1, workspace) * d) for d in shape[2:])) # max input shape
828
827
  for inp in inputs:
829
828
  profile.set_shape(inp.name, min=min_shape, opt=shape, max=max_shape)
830
829
  config.add_optimization_profile(profile)
@@ -1126,3 +1126,20 @@ class Model(nn.Module):
1126
1126
  description of the expected behavior and structure.
1127
1127
  """
1128
1128
  raise NotImplementedError("Please provide task map for your model!")
1129
+
1130
+ def eval(self):
1131
+ """
1132
+ Sets the model to evaluation mode.
1133
+
1134
+ This method changes the model's mode to evaluation, which affects layers like dropout and batch normalization
1135
+ that behave differently during training and evaluation.
1136
+
1137
+ Returns:
1138
+ (Model): The model instance with evaluation mode set.
1139
+
1140
+ Examples:
1141
+ >> model = YOLO("yolo11n.pt")
1142
+ >> model.eval()
1143
+ """
1144
+ self.model.eval()
1145
+ return self
@@ -960,10 +960,8 @@ def parse_model(d, ch, verbose=True): # model_dict, input_channels(3)
960
960
  m = getattr(torch.nn, m[3:]) if "nn." in m else globals()[m] # get module
961
961
  for j, a in enumerate(args):
962
962
  if isinstance(a, str):
963
- try:
963
+ with contextlib.suppress(ValueError):
964
964
  args[j] = locals()[a] if a in locals() else ast.literal_eval(a)
965
- except ValueError:
966
- pass
967
965
  n = n_ = max(round(n * depth), 1) if n > 1 else n # depth gain
968
966
  if m in {
969
967
  Classify,
@@ -1141,24 +1139,16 @@ def guess_model_task(model):
1141
1139
 
1142
1140
  # Guess from model cfg
1143
1141
  if isinstance(model, dict):
1144
- try:
1142
+ with contextlib.suppress(Exception):
1145
1143
  return cfg2task(model)
1146
- except Exception:
1147
- pass
1148
-
1149
1144
  # Guess from PyTorch model
1150
1145
  if isinstance(model, nn.Module): # PyTorch model
1151
1146
  for x in "model.args", "model.model.args", "model.model.model.args":
1152
- try:
1147
+ with contextlib.suppress(Exception):
1153
1148
  return eval(x)["task"]
1154
- except Exception:
1155
- pass
1156
1149
  for x in "model.yaml", "model.model.yaml", "model.model.model.yaml":
1157
- try:
1150
+ with contextlib.suppress(Exception):
1158
1151
  return cfg2task(eval(x))
1159
- except Exception:
1160
- pass
1161
-
1162
1152
  for m in model.modules():
1163
1153
  if isinstance(m, Segment):
1164
1154
  return "segment"
@@ -80,37 +80,33 @@ class ObjectCounter(BaseSolution):
80
80
  else: # Moving left
81
81
  self.out_count += 1
82
82
  self.classwise_counts[self.names[cls]]["OUT"] += 1
83
- else:
84
- # Horizontal region: Compare y-coordinates to determine direction
85
- if current_centroid[1] > prev_position[1]: # Moving downward
86
- self.in_count += 1
87
- self.classwise_counts[self.names[cls]]["IN"] += 1
88
- else: # Moving upward
89
- self.out_count += 1
90
- self.classwise_counts[self.names[cls]]["OUT"] += 1
83
+ # Horizontal region: Compare y-coordinates to determine direction
84
+ elif current_centroid[1] > prev_position[1]: # Moving downward
85
+ self.in_count += 1
86
+ self.classwise_counts[self.names[cls]]["IN"] += 1
87
+ else: # Moving upward
88
+ self.out_count += 1
89
+ self.classwise_counts[self.names[cls]]["OUT"] += 1
91
90
  self.counted_ids.append(track_id)
92
91
 
93
92
  elif len(self.region) > 2: # Polygonal region
94
93
  polygon = self.Polygon(self.region)
95
94
  if polygon.contains(self.Point(current_centroid)):
96
95
  # Determine motion direction for vertical or horizontal polygons
97
- region_width = max([p[0] for p in self.region]) - min([p[0] for p in self.region])
98
- region_height = max([p[1] for p in self.region]) - min([p[1] for p in self.region])
99
-
100
- if region_width < region_height: # Vertical-oriented polygon
101
- if current_centroid[0] > prev_position[0]: # Moving right
102
- self.in_count += 1
103
- self.classwise_counts[self.names[cls]]["IN"] += 1
104
- else: # Moving left
105
- self.out_count += 1
106
- self.classwise_counts[self.names[cls]]["OUT"] += 1
107
- else: # Horizontal-oriented polygon
108
- if current_centroid[1] > prev_position[1]: # Moving downward
109
- self.in_count += 1
110
- self.classwise_counts[self.names[cls]]["IN"] += 1
111
- else: # Moving upward
112
- self.out_count += 1
113
- self.classwise_counts[self.names[cls]]["OUT"] += 1
96
+ region_width = max(p[0] for p in self.region) - min(p[0] for p in self.region)
97
+ region_height = max(p[1] for p in self.region) - min(p[1] for p in self.region)
98
+
99
+ if (
100
+ region_width < region_height
101
+ and current_centroid[0] > prev_position[0]
102
+ or region_width >= region_height
103
+ and current_centroid[1] > prev_position[1]
104
+ ): # Moving right
105
+ self.in_count += 1
106
+ self.classwise_counts[self.names[cls]]["IN"] += 1
107
+ else: # Moving left
108
+ self.out_count += 1
109
+ self.classwise_counts[self.names[cls]]["OUT"] += 1
114
110
  self.counted_ids.append(track_id)
115
111
 
116
112
  def store_classwise_counts(self, cls):
@@ -135,7 +135,7 @@ class BaseSolution:
135
135
  def initialize_region(self):
136
136
  """Initialize the counting region and line segment based on configuration settings."""
137
137
  if self.region is None:
138
- self.region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
138
+ self.region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
139
139
  self.r_s = (
140
140
  self.Polygon(self.region) if len(self.region) >= 3 else self.LineString(self.region)
141
141
  ) # region or line
@@ -675,7 +675,7 @@ def profile(input, ops, n=10, device=None, max_num_obj=0):
675
675
  torch.randn(
676
676
  x.shape[0],
677
677
  max_num_obj,
678
- int(sum([(x.shape[-1] / s) * (x.shape[-2] / s) for s in m.stride.tolist()])),
678
+ int(sum((x.shape[-1] / s) * (x.shape[-2] / s) for s in m.stride.tolist())),
679
679
  device=device,
680
680
  dtype=torch.float32,
681
681
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.35
3
+ Version: 8.3.37
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>
@@ -96,7 +96,7 @@ Requires-Dist: pycocotools>=2.0.7; extra == "extra"
96
96
 
97
97
  <div>
98
98
  <a href="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml"><img src="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yaml/badge.svg" alt="Ultralytics CI"></a>
99
- <a href="https://www.pepy.tech/projects/ultralytics"><img src="https://static.pepy.tech/badge/ultralytics" alt="Ultralytics Downloads"></a>
99
+ <a href="https://pepy.tech/projects/ultralytics"><img src="https://static.pepy.tech/badge/ultralytics" alt="Ultralytics Downloads"></a>
100
100
  <a href="https://zenodo.org/badge/latestdoi/264818686"><img src="https://zenodo.org/badge/264818686.svg" alt="Ultralytics YOLO Citation"></a>
101
101
  <a href="https://discord.com/invite/ultralytics"><img alt="Ultralytics Discord" src="https://img.shields.io/discord/1089800235347353640?logo=discord&logoColor=white&label=Discord&color=blue"></a>
102
102
  <a href="https://community.ultralytics.com/"><img alt="Ultralytics Forums" src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fcommunity.ultralytics.com&logo=discourse&label=Forums&color=blue"></a>
@@ -238,8 +238,8 @@ See [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) for usage e
238
238
  | [YOLO11l-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l-seg.pt) | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
239
239
  | [YOLO11x-seg](https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x-seg.pt) | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
240
240
 
241
- - **mAP<sup>val</sup>** values are for single-model single-scale on [COCO val2017](https://cocodataset.org/) dataset. <br>Reproduce by `yolo val segment data=coco-seg.yaml device=0`
242
- - **Speed** averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val segment data=coco-seg.yaml batch=1 device=0|cpu`
241
+ - **mAP<sup>val</sup>** values are for single-model single-scale on [COCO val2017](https://cocodataset.org/) dataset. <br>Reproduce by `yolo val segment data=coco.yaml device=0`
242
+ - **Speed** averaged over COCO val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val segment data=coco.yaml batch=1 device=0|cpu`
243
243
 
244
244
  </details>
245
245
 
File without changes
File without changes