ultralytics 8.1.46__tar.gz → 8.2.0__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.

Potentially problematic release.


This version of ultralytics might be problematic. Click here for more details.

Files changed (217) hide show
  1. {ultralytics-8.1.46/ultralytics.egg-info → ultralytics-8.2.0}/PKG-INFO +2 -1
  2. {ultralytics-8.1.46 → ultralytics-8.2.0}/pyproject.toml +3 -1
  3. {ultralytics-8.1.46 → ultralytics-8.2.0}/tests/test_python.py +8 -6
  4. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/__init__.py +1 -1
  5. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/augment.py +1 -0
  6. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/base.py +1 -0
  7. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/build.py +1 -0
  8. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/dataset.py +1 -0
  9. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/explorer/explorer.py +2 -1
  10. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/engine/exporter.py +7 -10
  11. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/engine/model.py +6 -1
  12. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/hub/session.py +17 -0
  13. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/fastsam/model.py +1 -0
  14. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/nas/model.py +1 -0
  15. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/rtdetr/train.py +1 -0
  16. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/build.py +1 -0
  17. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/model.py +1 -0
  18. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/predict.py +1 -0
  19. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/utils/loss.py +1 -0
  20. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/nn/autobackend.py +6 -2
  21. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/nn/modules/head.py +1 -0
  22. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/solutions/object_counter.py +1 -1
  23. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/trackers/track.py +1 -0
  24. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/__init__.py +3 -2
  25. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/benchmarks.py +4 -2
  26. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/base.py +0 -1
  27. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/loss.py +1 -0
  28. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/plotting.py +8 -8
  29. {ultralytics-8.1.46 → ultralytics-8.2.0/ultralytics.egg-info}/PKG-INFO +2 -1
  30. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics.egg-info/requires.txt +1 -0
  31. {ultralytics-8.1.46 → ultralytics-8.2.0}/LICENSE +0 -0
  32. {ultralytics-8.1.46 → ultralytics-8.2.0}/README.md +0 -0
  33. {ultralytics-8.1.46 → ultralytics-8.2.0}/setup.cfg +0 -0
  34. {ultralytics-8.1.46 → ultralytics-8.2.0}/tests/test_cli.py +0 -0
  35. {ultralytics-8.1.46 → ultralytics-8.2.0}/tests/test_cuda.py +0 -0
  36. {ultralytics-8.1.46 → ultralytics-8.2.0}/tests/test_engine.py +0 -0
  37. {ultralytics-8.1.46 → ultralytics-8.2.0}/tests/test_explorer.py +0 -0
  38. {ultralytics-8.1.46 → ultralytics-8.2.0}/tests/test_integrations.py +0 -0
  39. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/assets/bus.jpg +0 -0
  40. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/assets/zidane.jpg +0 -0
  41. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/__init__.py +0 -0
  42. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  43. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  44. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  45. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  46. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  47. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  48. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  49. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  50. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  51. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  52. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  53. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  54. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  55. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/coco.yaml +0 -0
  56. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  57. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  58. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  59. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  60. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  61. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  62. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  63. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  64. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  65. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  66. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  67. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/datasets/xView.yaml +0 -0
  68. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/default.yaml +0 -0
  69. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  70. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  71. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  72. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  73. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  74. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  75. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  76. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  77. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  78. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  79. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  80. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  81. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  82. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  83. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  84. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  85. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  86. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  87. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  88. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  89. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  90. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  91. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  92. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  93. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  94. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  95. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  96. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  97. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  98. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  99. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  100. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  101. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  102. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/__init__.py +0 -0
  103. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/annotator.py +0 -0
  104. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/converter.py +0 -0
  105. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/explorer/__init__.py +0 -0
  106. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/explorer/gui/__init__.py +0 -0
  107. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/explorer/gui/dash.py +0 -0
  108. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/explorer/utils.py +0 -0
  109. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/loaders.py +0 -0
  110. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/split_dota.py +0 -0
  111. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/data/utils.py +0 -0
  112. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/engine/__init__.py +0 -0
  113. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/engine/predictor.py +0 -0
  114. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/engine/results.py +0 -0
  115. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/engine/trainer.py +0 -0
  116. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/engine/tuner.py +0 -0
  117. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/engine/validator.py +0 -0
  118. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/hub/__init__.py +0 -0
  119. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/hub/auth.py +0 -0
  120. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/hub/utils.py +0 -0
  121. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/__init__.py +0 -0
  122. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/fastsam/__init__.py +0 -0
  123. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/fastsam/predict.py +0 -0
  124. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/fastsam/prompt.py +0 -0
  125. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/fastsam/utils.py +0 -0
  126. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/fastsam/val.py +0 -0
  127. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/nas/__init__.py +0 -0
  128. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/nas/predict.py +0 -0
  129. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/nas/val.py +0 -0
  130. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/rtdetr/__init__.py +0 -0
  131. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/rtdetr/model.py +0 -0
  132. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/rtdetr/predict.py +0 -0
  133. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/rtdetr/val.py +0 -0
  134. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/__init__.py +0 -0
  135. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/amg.py +0 -0
  136. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/modules/__init__.py +0 -0
  137. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/modules/decoders.py +0 -0
  138. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/modules/encoders.py +0 -0
  139. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/modules/sam.py +0 -0
  140. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  141. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/sam/modules/transformer.py +0 -0
  142. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/utils/__init__.py +0 -0
  143. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/utils/ops.py +0 -0
  144. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/__init__.py +0 -0
  145. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/classify/__init__.py +0 -0
  146. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/classify/predict.py +0 -0
  147. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/classify/train.py +0 -0
  148. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/classify/val.py +0 -0
  149. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/detect/__init__.py +0 -0
  150. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/detect/predict.py +0 -0
  151. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/detect/train.py +0 -0
  152. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/detect/val.py +0 -0
  153. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/model.py +0 -0
  154. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/obb/__init__.py +0 -0
  155. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/obb/predict.py +0 -0
  156. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/obb/train.py +0 -0
  157. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/obb/val.py +0 -0
  158. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/pose/__init__.py +0 -0
  159. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/pose/predict.py +0 -0
  160. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/pose/train.py +0 -0
  161. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/pose/val.py +0 -0
  162. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/segment/__init__.py +0 -0
  163. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/segment/predict.py +0 -0
  164. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/segment/train.py +0 -0
  165. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/segment/val.py +0 -0
  166. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/world/__init__.py +0 -0
  167. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/world/train.py +0 -0
  168. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/models/yolo/world/train_world.py +0 -0
  169. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/nn/__init__.py +0 -0
  170. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/nn/modules/__init__.py +0 -0
  171. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/nn/modules/block.py +0 -0
  172. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/nn/modules/conv.py +0 -0
  173. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/nn/modules/transformer.py +0 -0
  174. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/nn/modules/utils.py +0 -0
  175. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/nn/tasks.py +0 -0
  176. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/solutions/__init__.py +0 -0
  177. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/solutions/ai_gym.py +0 -0
  178. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/solutions/distance_calculation.py +0 -0
  179. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/solutions/heatmap.py +0 -0
  180. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/solutions/queue_management.py +0 -0
  181. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/solutions/speed_estimation.py +0 -0
  182. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/trackers/__init__.py +0 -0
  183. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/trackers/basetrack.py +0 -0
  184. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/trackers/bot_sort.py +0 -0
  185. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/trackers/byte_tracker.py +2 -2
  186. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/trackers/utils/__init__.py +0 -0
  187. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/trackers/utils/gmc.py +0 -0
  188. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  189. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/trackers/utils/matching.py +0 -0
  190. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/autobatch.py +0 -0
  191. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/__init__.py +0 -0
  192. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/clearml.py +0 -0
  193. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/comet.py +0 -0
  194. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/dvc.py +0 -0
  195. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/hub.py +0 -0
  196. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/mlflow.py +0 -0
  197. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/neptune.py +0 -0
  198. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/raytune.py +0 -0
  199. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  200. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/callbacks/wb.py +0 -0
  201. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/checks.py +0 -0
  202. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/dist.py +0 -0
  203. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/downloads.py +0 -0
  204. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/errors.py +0 -0
  205. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/files.py +0 -0
  206. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/instance.py +0 -0
  207. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/metrics.py +0 -0
  208. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/ops.py +0 -0
  209. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/patches.py +0 -0
  210. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/tal.py +0 -0
  211. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/torch_utils.py +0 -0
  212. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/triton.py +0 -0
  213. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics/utils/tuner.py +0 -0
  214. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics.egg-info/SOURCES.txt +0 -0
  215. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics.egg-info/dependency_links.txt +0 -0
  216. {ultralytics-8.1.46 → ultralytics-8.2.0}/ultralytics.egg-info/entry_points.txt +0 -0
  217. {ultralytics-8.1.46 → ultralytics-8.2.0}/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.1.46
3
+ Version: 8.2.0
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -63,6 +63,7 @@ Requires-Dist: openvino>=2024.0.0; extra == "export"
63
63
  Requires-Dist: tensorflow<=2.13.1; python_version <= "3.11" and extra == "export"
64
64
  Requires-Dist: tensorflowjs>=3.9.0; python_version <= "3.11" and extra == "export"
65
65
  Requires-Dist: numpy==1.23.5; platform_machine == "aarch64" and extra == "export"
66
+ Requires-Dist: h5py!=3.11.0; platform_machine == "aarch64" and extra == "export"
66
67
  Provides-Extra: explorer
67
68
  Requires-Dist: lancedb; extra == "explorer"
68
69
  Requires-Dist: duckdb<=0.9.2; extra == "explorer"
@@ -101,7 +101,9 @@ export = [
101
101
  "openvino>=2024.0.0", # OpenVINO export
102
102
  "tensorflow<=2.13.1; python_version <= '3.11'", # TF bug https://github.com/ultralytics/ultralytics/issues/5161
103
103
  "tensorflowjs>=3.9.0; python_version <= '3.11'", # TF.js export, automatically installs tensorflow
104
- "numpy==1.23.5; platform_machine == 'aarch64'", # Fix error: `np.bool` was a deprecated alias for the builtin `bool` when using TensorRT models on NVIDIA Jetson
104
+ # "flatbuffers>=23.5.26,<100", # update old 'flatbuffers' included inside tensorflow package: WARNING Dockerfile error https://github.com/ultralytics/ultralytics/actions/runs/8715942435/job/23908971614
105
+ "numpy==1.23.5; platform_machine == 'aarch64'", # fix error: `np.bool` was a deprecated alias for the builtin `bool` when using TensorRT models on NVIDIA Jetson
106
+ "h5py!=3.11.0; platform_machine == 'aarch64'", # fix h5py build issues due to missing aarch64 wheels in 3.11 release
105
107
  ]
106
108
  explorer = [
107
109
  "lancedb", # vector search
@@ -27,6 +27,7 @@ from ultralytics.utils import (
27
27
  Retry,
28
28
  checks,
29
29
  is_dir_writeable,
30
+ IS_RASPBERRYPI,
30
31
  )
31
32
  from ultralytics.utils.downloads import download
32
33
  from ultralytics.utils.torch_utils import TORCH_1_9, TORCH_1_13
@@ -221,15 +222,16 @@ def test_export_openvino():
221
222
  YOLO(f)(SOURCE) # exported model inference
222
223
 
223
224
 
225
+ @pytest.mark.skipif(WINDOWS, reason="CoreML not supported on Windows") # RuntimeError: BlobWriter not loaded
226
+ @pytest.mark.skipif(IS_RASPBERRYPI, reason="CoreML not supported on Raspberry Pi")
224
227
  @pytest.mark.skipif(checks.IS_PYTHON_3_12, reason="CoreML not supported in Python 3.12")
225
228
  def test_export_coreml():
226
229
  """Test exporting the YOLO model to CoreML format."""
227
- if not WINDOWS: # RuntimeError: BlobWriter not loaded with coremltools 7.0 on windows
228
- if MACOS:
229
- f = YOLO(MODEL).export(format="coreml")
230
- YOLO(f)(SOURCE) # model prediction only supported on macOS for nms=False models
231
- else:
232
- YOLO(MODEL).export(format="coreml", nms=True)
230
+ if MACOS:
231
+ f = YOLO(MODEL).export(format="coreml")
232
+ YOLO(f)(SOURCE) # model prediction only supported on macOS for nms=False models
233
+ else:
234
+ YOLO(MODEL).export(format="coreml", nms=True)
233
235
 
234
236
 
235
237
  def test_export_tflite(enabled=False):
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.1.46"
3
+ __version__ = "8.2.0"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -16,6 +16,7 @@ from ultralytics.utils.instance import Instances
16
16
  from ultralytics.utils.metrics import bbox_ioa
17
17
  from ultralytics.utils.ops import segment2box, xyxyxyxy2xywhr
18
18
  from ultralytics.utils.torch_utils import TORCHVISION_0_10, TORCHVISION_0_11, TORCHVISION_0_13
19
+
19
20
  from .utils import polygons2masks, polygons2masks_overlap
20
21
 
21
22
  DEFAULT_MEAN = (0.0, 0.0, 0.0)
@@ -15,6 +15,7 @@ import psutil
15
15
  from torch.utils.data import Dataset
16
16
 
17
17
  from ultralytics.utils import DEFAULT_CFG, LOCAL_RANK, LOGGER, NUM_THREADS, TQDM
18
+
18
19
  from .utils import FORMATS_HELP_MSG, HELP_URL, IMG_FORMATS
19
20
 
20
21
 
@@ -22,6 +22,7 @@ from ultralytics.data.loaders import (
22
22
  from ultralytics.data.utils import IMG_FORMATS, VID_FORMATS
23
23
  from ultralytics.utils import RANK, colorstr
24
24
  from ultralytics.utils.checks import check_file
25
+
25
26
  from .dataset import GroundingDataset, YOLODataset, YOLOMultiModalDataset
26
27
  from .utils import PIN_MEMORY
27
28
 
@@ -15,6 +15,7 @@ from torch.utils.data import ConcatDataset
15
15
 
16
16
  from ultralytics.utils import LOCAL_RANK, NUM_THREADS, TQDM, colorstr
17
17
  from ultralytics.utils.ops import resample_segments
18
+
18
19
  from .augment import (
19
20
  Compose,
20
21
  Format,
@@ -7,8 +7,8 @@ from typing import Any, List, Tuple, Union
7
7
  import cv2
8
8
  import numpy as np
9
9
  import torch
10
- from PIL import Image
11
10
  from matplotlib import pyplot as plt
11
+ from PIL import Image
12
12
  from tqdm import tqdm
13
13
 
14
14
  from ultralytics.data.augment import Format
@@ -16,6 +16,7 @@ from ultralytics.data.dataset import YOLODataset
16
16
  from ultralytics.data.utils import check_det_dataset
17
17
  from ultralytics.models.yolo.model import YOLO
18
18
  from ultralytics.utils import LOGGER, USER_CONFIG_DIR, IterableSimpleNamespace, checks
19
+
19
20
  from .utils import get_sim_index_schema, get_table_schema, plot_query_result, prompt_sql_query, sanitize_batch
20
21
 
21
22
 
@@ -529,16 +529,13 @@ class Exporter:
529
529
  f"or in {ROOT}. See PNNX repo for full installation instructions."
530
530
  )
531
531
  system = "macos" if MACOS else "windows" if WINDOWS else "linux-aarch64" if ARM64 else "linux"
532
-
533
- # PNNX link fixed at 20240226 due to bug in 20240410
534
- # try:
535
- # _, assets = get_github_assets(repo="pnnx/pnnx", retry=True)
536
- # url = [x for x in assets if f"{system}.zip" in x][0]
537
- # except Exception as e:
538
- # url = f"https://github.com/pnnx/pnnx/releases/download/20240226/pnnx-20240226-{system}.zip"
539
- # LOGGER.warning(f"{prefix} WARNING ⚠️ PNNX GitHub assets not found: {e}, using default {url}")
540
-
541
- url = f"https://github.com/pnnx/pnnx/releases/download/20240226/pnnx-20240226-{system}.zip"
532
+ try:
533
+ _, assets = get_github_assets(repo="pnnx/pnnx")
534
+ url = [x for x in assets if f"{system}.zip" in x][0]
535
+ assert url, "Unable to retrieve PNNX repo assets"
536
+ except Exception as e:
537
+ url = f"https://github.com/pnnx/pnnx/releases/download/20240410/pnnx-20240410-{system}.zip"
538
+ LOGGER.warning(f"{prefix} WARNING ⚠️ PNNX GitHub assets not found: {e}, using default {url}")
542
539
  asset = attempt_download_asset(url, repo="pnnx/pnnx", release="latest")
543
540
  if check_is_path_safe(Path.cwd(), asset): # avoid path traversal security vulnerability
544
541
  unzip_dir = Path(asset).with_suffix("")
@@ -641,7 +641,12 @@ class Model(nn.Module):
641
641
  checks.check_pip_update_available()
642
642
 
643
643
  overrides = yaml_load(checks.check_yaml(kwargs["cfg"])) if kwargs.get("cfg") else self.overrides
644
- custom = {"data": DEFAULT_CFG_DICT["data"] or TASK2DATA[self.task]} # method defaults
644
+ custom = {
645
+ # NOTE: handle the case when 'cfg' includes 'data'.
646
+ "data": overrides.get("data") or DEFAULT_CFG_DICT["data"] or TASK2DATA[self.task],
647
+ "model": self.overrides["model"],
648
+ "task": self.task,
649
+ } # method defaults
645
650
  args = {**overrides, **custom, **kwargs, "mode": "train"} # highest priority args on the right
646
651
  if args.get("resume"):
647
652
  args["resume"] = self.ckpt_path
@@ -213,6 +213,7 @@ class HUBTrainingSession:
213
213
  thread=True,
214
214
  verbose=True,
215
215
  progress_total=None,
216
+ stream_reponse=None,
216
217
  *args,
217
218
  **kwargs,
218
219
  ):
@@ -232,6 +233,8 @@ class HUBTrainingSession:
232
233
 
233
234
  if progress_total:
234
235
  self._show_upload_progress(progress_total, response)
236
+ elif stream_reponse:
237
+ self._iterate_content(response)
235
238
 
236
239
  if HTTPStatus.OK <= response.status_code < HTTPStatus.MULTIPLE_CHOICES:
237
240
  # if request related to metrics upload
@@ -335,6 +338,7 @@ class HUBTrainingSession:
335
338
  timeout=3600,
336
339
  thread=not final,
337
340
  progress_total=progress_total,
341
+ stream_reponse=True,
338
342
  )
339
343
  else:
340
344
  LOGGER.warning(f"{PREFIX}WARNING ⚠️ Model upload issue. Missing model {weights}.")
@@ -353,3 +357,16 @@ class HUBTrainingSession:
353
357
  with TQDM(total=content_length, unit="B", unit_scale=True, unit_divisor=1024) as pbar:
354
358
  for data in response.iter_content(chunk_size=1024):
355
359
  pbar.update(len(data))
360
+
361
+ def _iterate_content(self, response: requests.Response) -> None:
362
+ """
363
+ Process the streamed HTTP response data.
364
+
365
+ Args:
366
+ response (requests.Response): The response object from the file download request.
367
+
368
+ Returns:
369
+ None
370
+ """
371
+ for data in response.iter_content(chunk_size=1024):
372
+ pass # Do nothing with data chunks
@@ -3,6 +3,7 @@
3
3
  from pathlib import Path
4
4
 
5
5
  from ultralytics.engine.model import Model
6
+
6
7
  from .predict import FastSAMPredictor
7
8
  from .val import FastSAMValidator
8
9
 
@@ -17,6 +17,7 @@ import torch
17
17
 
18
18
  from ultralytics.engine.model import Model
19
19
  from ultralytics.utils.torch_utils import model_info, smart_inference_mode
20
+
20
21
  from .predict import NASPredictor
21
22
  from .val import NASValidator
22
23
 
@@ -7,6 +7,7 @@ import torch
7
7
  from ultralytics.models.yolo.detect import DetectionTrainer
8
8
  from ultralytics.nn.tasks import RTDETRDetectionModel
9
9
  from ultralytics.utils import RANK, colorstr
10
+
10
11
  from .val import RTDETRDataset, RTDETRValidator
11
12
 
12
13
 
@@ -11,6 +11,7 @@ from functools import partial
11
11
  import torch
12
12
 
13
13
  from ultralytics.utils.downloads import attempt_download_asset
14
+
14
15
  from .modules.decoders import MaskDecoder
15
16
  from .modules.encoders import ImageEncoderViT, PromptEncoder
16
17
  from .modules.sam import Sam
@@ -18,6 +18,7 @@ from pathlib import Path
18
18
 
19
19
  from ultralytics.engine.model import Model
20
20
  from ultralytics.utils.torch_utils import model_info
21
+
21
22
  from .build import build_sam
22
23
  from .predict import Predictor
23
24
 
@@ -17,6 +17,7 @@ from ultralytics.engine.predictor import BasePredictor
17
17
  from ultralytics.engine.results import Results
18
18
  from ultralytics.utils import DEFAULT_CFG, ops
19
19
  from ultralytics.utils.torch_utils import select_device
20
+
20
21
  from .amg import (
21
22
  batch_iterator,
22
23
  batched_mask_to_box,
@@ -6,6 +6,7 @@ import torch.nn.functional as F
6
6
 
7
7
  from ultralytics.utils.loss import FocalLoss, VarifocalLoss
8
8
  from ultralytics.utils.metrics import bbox_iou
9
+
9
10
  from .ops import HungarianMatcher
10
11
 
11
12
 
@@ -14,7 +14,7 @@ import torch
14
14
  import torch.nn as nn
15
15
  from PIL import Image
16
16
 
17
- from ultralytics.utils import ARM64, LINUX, LOGGER, ROOT, yaml_load
17
+ from ultralytics.utils import ARM64, IS_JETSON, IS_RASPBERRYPI, LINUX, LOGGER, ROOT, yaml_load
18
18
  from ultralytics.utils.checks import check_requirements, check_suffix, check_version, check_yaml
19
19
  from ultralytics.utils.downloads import attempt_download_asset, is_url
20
20
 
@@ -183,6 +183,9 @@ class AutoBackend(nn.Module):
183
183
  elif onnx:
184
184
  LOGGER.info(f"Loading {w} for ONNX Runtime inference...")
185
185
  check_requirements(("onnx", "onnxruntime-gpu" if cuda else "onnxruntime"))
186
+ if IS_RASPBERRYPI or IS_JETSON:
187
+ # Fix error: module 'numpy.linalg._umath_linalg' has no attribute '_ilp64' when exporting to Tensorflow SavedModel on RPi and Jetson
188
+ check_requirements("numpy==1.23.5")
186
189
  import onnxruntime
187
190
 
188
191
  providers = ["CUDAExecutionProvider", "CPUExecutionProvider"] if cuda else ["CPUExecutionProvider"]
@@ -540,7 +543,8 @@ class AutoBackend(nn.Module):
540
543
  mat_in = self.pyncnn.Mat(im[0].cpu().numpy())
541
544
  with self.net.create_extractor() as ex:
542
545
  ex.input(self.net.input_names()[0], mat_in)
543
- y = [np.array(ex.extract(x)[1])[None] for x in self.net.output_names()]
546
+ # WARNING: 'output_names' sorted as a temporary fix for https://github.com/pnnx/pnnx/issues/130
547
+ y = [np.array(ex.extract(x)[1])[None] for x in sorted(self.net.output_names())]
544
548
 
545
549
  # NVIDIA Triton Inference Server
546
550
  elif self.triton:
@@ -8,6 +8,7 @@ import torch.nn as nn
8
8
  from torch.nn.init import constant_, xavier_uniform_
9
9
 
10
10
  from ultralytics.utils.tal import TORCH_1_10, dist2bbox, dist2rbox, make_anchors
11
+
11
12
  from .block import DFL, BNContrastiveHead, ContrastiveHead, Proto
12
13
  from .conv import Conv
13
14
  from .transformer import MLP, DeformableTransformerDecoder, DeformableTransformerDecoderLayer
@@ -224,7 +224,7 @@ class ObjectCounter:
224
224
 
225
225
  if (box[0] - prev_position[0]) * (self.counting_region.centroid.x - prev_position[0]) > 0:
226
226
  self.in_counts += 1
227
- self.class_wise_count[self.names[cls]]["in"] += 2
227
+ self.class_wise_count[self.names[cls]]["in"] += 1
228
228
  else:
229
229
  self.out_counts += 1
230
230
  self.class_wise_count[self.names[cls]]["out"] += 1
@@ -7,6 +7,7 @@ import torch
7
7
 
8
8
  from ultralytics.utils import IterableSimpleNamespace, yaml_load
9
9
  from ultralytics.utils.checks import check_yaml
10
+
10
11
  from .bot_sort import BOTSORT
11
12
  from .byte_tracker import BYTETracker
12
13
 
@@ -512,8 +512,9 @@ def is_online() -> bool:
512
512
  assert str(os.getenv("YOLO_OFFLINE", "")).lower() != "true" # check if ENV var YOLO_OFFLINE="True"
513
513
  import socket
514
514
 
515
- socket.create_connection(address=("1.1.1.1", 80), timeout=1.0).close() # check Cloudflare DNS
516
- return True
515
+ for dns in ("1.1.1.1", "8.8.8.8"): # check Cloudflare and Google DNS
516
+ socket.create_connection(address=(dns, 80), timeout=1.0).close()
517
+ return True
517
518
  return False
518
519
 
519
520
 
@@ -35,7 +35,7 @@ import torch.cuda
35
35
  from ultralytics import YOLO, YOLOWorld
36
36
  from ultralytics.cfg import TASK2DATA, TASK2METRIC
37
37
  from ultralytics.engine.exporter import export_formats
38
- from ultralytics.utils import ASSETS, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR
38
+ from ultralytics.utils import ARM64, ASSETS, IS_JETSON, IS_RASPBERRYPI, LINUX, LOGGER, MACOS, TQDM, WEIGHTS_DIR
39
39
  from ultralytics.utils.checks import IS_PYTHON_3_12, check_requirements, check_yolo
40
40
  from ultralytics.utils.files import file_size
41
41
  from ultralytics.utils.torch_utils import select_device
@@ -83,8 +83,10 @@ def benchmark(
83
83
  emoji, filename = "❌", None # export defaults
84
84
  try:
85
85
  # Checks
86
+ if i == 5: # CoreML
87
+ assert not (IS_RASPBERRYPI or IS_JETSON), "CoreML export not supported on Raspberry Pi or NVIDIA Jetson"
86
88
  if i == 9: # Edge TPU
87
- assert LINUX, "Edge TPU export only supported on Linux"
89
+ assert LINUX and not ARM64, "Edge TPU export only supported on non-aarch64 Linux"
88
90
  elif i == 7: # TF GraphDef
89
91
  assert model.task != "obb", "TensorFlow GraphDef not supported for OBB task"
90
92
  elif i in {5, 10}: # CoreML and TF.js
@@ -4,7 +4,6 @@
4
4
  from collections import defaultdict
5
5
  from copy import deepcopy
6
6
 
7
-
8
7
  # Trainer callbacks ----------------------------------------------------------------------------------------------------
9
8
 
10
9
 
@@ -7,6 +7,7 @@ import torch.nn.functional as F
7
7
  from ultralytics.utils.metrics import OKS_SIGMA
8
8
  from ultralytics.utils.ops import crop_mask, xywh2xyxy, xyxy2xywh
9
9
  from ultralytics.utils.tal import RotatedTaskAlignedAssigner, TaskAlignedAssigner, dist2bbox, dist2rbox, make_anchors
10
+
10
11
  from .metrics import bbox_iou, probiou
11
12
  from .tal import bbox2dist
12
13
 
@@ -13,8 +13,8 @@ from PIL import Image, ImageDraw, ImageFont
13
13
  from PIL import __version__ as pil_version
14
14
 
15
15
  from ultralytics.utils import LOGGER, TryExcept, ops, plt_settings, threaded
16
- from .checks import check_font, check_version, is_ascii
17
- from .files import increment_path
16
+ from ultralytics.utils.checks import check_font, check_version, is_ascii
17
+ from ultralytics.utils.files import increment_path
18
18
 
19
19
 
20
20
  class Colors:
@@ -240,7 +240,7 @@ class Annotator:
240
240
  # Convert im back to PIL and update draw
241
241
  self.fromarray(self.im)
242
242
 
243
- def kpts(self, kpts, shape=(640, 640), radius=5, kpt_line=True):
243
+ def kpts(self, kpts, shape=(640, 640), radius=5, kpt_line=True, conf_thres=0.25):
244
244
  """
245
245
  Plot keypoints on the image.
246
246
 
@@ -266,7 +266,7 @@ class Annotator:
266
266
  if x_coord % shape[1] != 0 and y_coord % shape[0] != 0:
267
267
  if len(k) == 3:
268
268
  conf = k[2]
269
- if conf < 0.5:
269
+ if conf < conf_thres:
270
270
  continue
271
271
  cv2.circle(self.im, (int(x_coord), int(y_coord)), radius, color_k, -1, lineType=cv2.LINE_AA)
272
272
 
@@ -278,7 +278,7 @@ class Annotator:
278
278
  if ndim == 3:
279
279
  conf1 = kpts[(sk[0] - 1), 2]
280
280
  conf2 = kpts[(sk[1] - 1), 2]
281
- if conf1 < 0.5 or conf2 < 0.5:
281
+ if conf1 < conf_thres or conf2 < conf_thres:
282
282
  continue
283
283
  if pos1[0] % shape[1] == 0 or pos1[1] % shape[0] == 0 or pos1[0] < 0 or pos1[1] < 0:
284
284
  continue
@@ -490,7 +490,7 @@ class Annotator:
490
490
  angle = 360 - angle
491
491
  return angle
492
492
 
493
- def draw_specific_points(self, keypoints, indices=[2, 5, 7], shape=(640, 640), radius=2):
493
+ def draw_specific_points(self, keypoints, indices=[2, 5, 7], shape=(640, 640), radius=2, conf_thres=0.25):
494
494
  """
495
495
  Draw specific keypoints for gym steps counting.
496
496
 
@@ -506,7 +506,7 @@ class Annotator:
506
506
  if x_coord % shape[1] != 0 and y_coord % shape[0] != 0:
507
507
  if len(k) == 3:
508
508
  conf = k[2]
509
- if conf < 0.5:
509
+ if conf < conf_thres:
510
510
  continue
511
511
  cv2.circle(self.im, (int(x_coord), int(y_coord)), radius, (0, 255, 0), -1, lineType=cv2.LINE_AA)
512
512
  return self.im
@@ -875,7 +875,7 @@ def plot_images(
875
875
  kpts_[..., 1] += y
876
876
  for j in range(len(kpts_)):
877
877
  if labels or conf[j] > conf_thres:
878
- annotator.kpts(kpts_[j])
878
+ annotator.kpts(kpts_[j], conf_thres=conf_thres)
879
879
 
880
880
  # Plot masks
881
881
  if len(masks):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.46
3
+ Version: 8.2.0
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -63,6 +63,7 @@ Requires-Dist: openvino>=2024.0.0; extra == "export"
63
63
  Requires-Dist: tensorflow<=2.13.1; python_version <= "3.11" and extra == "export"
64
64
  Requires-Dist: tensorflowjs>=3.9.0; python_version <= "3.11" and extra == "export"
65
65
  Requires-Dist: numpy==1.23.5; platform_machine == "aarch64" and extra == "export"
66
+ Requires-Dist: h5py!=3.11.0; platform_machine == "aarch64" and extra == "export"
66
67
  Provides-Extra: explorer
67
68
  Requires-Dist: lancedb; extra == "explorer"
68
69
  Requires-Dist: duckdb<=0.9.2; extra == "explorer"
@@ -37,6 +37,7 @@ openvino>=2024.0.0
37
37
 
38
38
  [export:platform_machine == "aarch64"]
39
39
  numpy==1.23.5
40
+ h5py!=3.11.0
40
41
 
41
42
  [export:platform_system != "Windows" and python_version <= "3.11"]
42
43
  coremltools>=7.0
File without changes
File without changes
File without changes