ultralytics 8.3.109__tar.gz → 8.3.110__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 (268) hide show
  1. {ultralytics-8.3.109/ultralytics.egg-info → ultralytics-8.3.110}/PKG-INFO +1 -1
  2. {ultralytics-8.3.109 → ultralytics-8.3.110}/pyproject.toml +1 -1
  3. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/__init__.py +1 -1
  4. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/base.py +2 -1
  5. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/dataset.py +2 -0
  6. ultralytics-8.3.110/ultralytics/data/scripts/download_weights.sh +18 -0
  7. ultralytics-8.3.110/ultralytics/data/scripts/get_coco.sh +61 -0
  8. ultralytics-8.3.110/ultralytics/data/scripts/get_coco128.sh +18 -0
  9. ultralytics-8.3.110/ultralytics/data/scripts/get_imagenet.sh +52 -0
  10. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/utils.py +81 -1
  11. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/exporter.py +2 -2
  12. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/autobackend.py +1 -1
  13. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/block.py +1 -1
  14. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/conv.py +1 -1
  15. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/parking_management.py +1 -1
  16. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/dist.py +1 -1
  17. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/metrics.py +1 -1
  18. {ultralytics-8.3.109 → ultralytics-8.3.110/ultralytics.egg-info}/PKG-INFO +1 -1
  19. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics.egg-info/SOURCES.txt +4 -0
  20. {ultralytics-8.3.109 → ultralytics-8.3.110}/LICENSE +0 -0
  21. {ultralytics-8.3.109 → ultralytics-8.3.110}/README.md +0 -0
  22. {ultralytics-8.3.109 → ultralytics-8.3.110}/setup.cfg +0 -0
  23. {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_cli.py +0 -0
  24. {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_cuda.py +0 -0
  25. {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_engine.py +0 -0
  26. {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_exports.py +0 -0
  27. {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_integrations.py +0 -0
  28. {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_python.py +0 -0
  29. {ultralytics-8.3.109 → ultralytics-8.3.110}/tests/test_solutions.py +0 -0
  30. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/assets/bus.jpg +0 -0
  31. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/assets/zidane.jpg +0 -0
  32. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/__init__.py +0 -0
  33. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  34. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  35. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  36. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  37. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  38. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  39. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  40. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  41. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  42. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  43. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  44. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  45. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  46. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco.yaml +0 -0
  47. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  48. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  49. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  50. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  51. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  52. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  53. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  54. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  55. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  56. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  57. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  58. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  59. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  60. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/signature.yaml +0 -0
  61. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  62. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/datasets/xView.yaml +0 -0
  63. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/default.yaml +0 -0
  64. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  65. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  66. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  67. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  68. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  69. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  70. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  71. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  72. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  73. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  74. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  75. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  76. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  77. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  78. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  79. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  80. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  81. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  82. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  83. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  84. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  85. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  86. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  87. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  88. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  89. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  90. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  91. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  92. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  93. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  94. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  95. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  96. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  97. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  98. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  99. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  100. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  101. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  102. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  103. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  104. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  105. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  106. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  107. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  108. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  109. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  110. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  111. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  112. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  113. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  114. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  115. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  116. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  117. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  118. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  119. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/solutions/default.yaml +0 -0
  120. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  121. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  122. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/__init__.py +0 -0
  123. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/annotator.py +0 -0
  124. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/augment.py +0 -0
  125. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/build.py +0 -0
  126. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/converter.py +0 -0
  127. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/loaders.py +0 -0
  128. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/data/split_dota.py +0 -0
  129. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/__init__.py +0 -0
  130. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/model.py +0 -0
  131. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/predictor.py +0 -0
  132. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/results.py +0 -0
  133. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/trainer.py +0 -0
  134. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/tuner.py +0 -0
  135. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/engine/validator.py +0 -0
  136. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/__init__.py +0 -0
  137. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/auth.py +0 -0
  138. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/google/__init__.py +0 -0
  139. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/session.py +0 -0
  140. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/hub/utils.py +0 -0
  141. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/__init__.py +0 -0
  142. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/__init__.py +0 -0
  143. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/model.py +0 -0
  144. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/predict.py +0 -0
  145. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/utils.py +0 -0
  146. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/fastsam/val.py +0 -0
  147. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/nas/__init__.py +0 -0
  148. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/nas/model.py +0 -0
  149. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/nas/predict.py +0 -0
  150. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/nas/val.py +0 -0
  151. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/__init__.py +0 -0
  152. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/model.py +0 -0
  153. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/predict.py +0 -0
  154. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/train.py +0 -0
  155. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/rtdetr/val.py +0 -0
  156. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/__init__.py +0 -0
  157. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/amg.py +0 -0
  158. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/build.py +0 -0
  159. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/model.py +0 -0
  160. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/__init__.py +0 -0
  161. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/blocks.py +0 -0
  162. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/decoders.py +0 -0
  163. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/encoders.py +0 -0
  164. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  165. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/sam.py +0 -0
  166. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  167. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/transformer.py +0 -0
  168. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/modules/utils.py +0 -0
  169. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/sam/predict.py +0 -0
  170. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/utils/__init__.py +0 -0
  171. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/utils/loss.py +0 -0
  172. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/utils/ops.py +0 -0
  173. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/__init__.py +0 -0
  174. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/classify/__init__.py +0 -0
  175. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/classify/predict.py +0 -0
  176. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/classify/train.py +0 -0
  177. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/classify/val.py +0 -0
  178. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/detect/__init__.py +0 -0
  179. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/detect/predict.py +0 -0
  180. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/detect/train.py +0 -0
  181. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/detect/val.py +0 -0
  182. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/model.py +0 -0
  183. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/obb/__init__.py +0 -0
  184. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/obb/predict.py +0 -0
  185. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/obb/train.py +0 -0
  186. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/obb/val.py +0 -0
  187. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/pose/__init__.py +0 -0
  188. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/pose/predict.py +0 -0
  189. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/pose/train.py +0 -0
  190. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/pose/val.py +0 -0
  191. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/segment/__init__.py +0 -0
  192. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/segment/predict.py +0 -0
  193. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/segment/train.py +0 -0
  194. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/segment/val.py +0 -0
  195. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/world/__init__.py +0 -0
  196. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/world/train.py +0 -0
  197. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/world/train_world.py +0 -0
  198. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  199. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  200. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/train.py +0 -0
  201. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  202. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/models/yolo/yoloe/val.py +0 -0
  203. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/__init__.py +0 -0
  204. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/__init__.py +0 -0
  205. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/activation.py +0 -0
  206. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/head.py +0 -0
  207. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/transformer.py +0 -0
  208. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/modules/utils.py +0 -0
  209. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/tasks.py +0 -0
  210. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/nn/text_model.py +0 -0
  211. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/__init__.py +0 -0
  212. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/ai_gym.py +0 -0
  213. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/analytics.py +0 -0
  214. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/distance_calculation.py +0 -0
  215. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/heatmap.py +0 -0
  216. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/instance_segmentation.py +0 -0
  217. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/object_blurrer.py +0 -0
  218. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/object_counter.py +0 -0
  219. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/object_cropper.py +0 -0
  220. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/queue_management.py +0 -0
  221. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/region_counter.py +0 -0
  222. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/security_alarm.py +0 -0
  223. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/solutions.py +0 -0
  224. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/speed_estimation.py +0 -0
  225. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/streamlit_inference.py +0 -0
  226. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/trackzone.py +0 -0
  227. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/solutions/vision_eye.py +0 -0
  228. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/__init__.py +0 -0
  229. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/basetrack.py +0 -0
  230. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/bot_sort.py +0 -0
  231. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/byte_tracker.py +0 -0
  232. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/track.py +0 -0
  233. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/utils/__init__.py +0 -0
  234. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/utils/gmc.py +0 -0
  235. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  236. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/trackers/utils/matching.py +0 -0
  237. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/__init__.py +0 -0
  238. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/autobatch.py +0 -0
  239. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/benchmarks.py +0 -0
  240. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/__init__.py +0 -0
  241. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/base.py +0 -0
  242. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/clearml.py +0 -0
  243. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/comet.py +0 -0
  244. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/dvc.py +0 -0
  245. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/hub.py +0 -0
  246. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/mlflow.py +0 -0
  247. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/neptune.py +0 -0
  248. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/raytune.py +0 -0
  249. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  250. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/callbacks/wb.py +0 -0
  251. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/checks.py +0 -0
  252. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/downloads.py +0 -0
  253. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/errors.py +0 -0
  254. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/export.py +0 -0
  255. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/files.py +0 -0
  256. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/instance.py +0 -0
  257. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/loss.py +0 -0
  258. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/ops.py +0 -0
  259. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/patches.py +0 -0
  260. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/plotting.py +0 -0
  261. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/tal.py +0 -0
  262. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/torch_utils.py +0 -0
  263. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/triton.py +0 -0
  264. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics/utils/tuner.py +0 -0
  265. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics.egg-info/dependency_links.txt +0 -0
  266. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics.egg-info/entry_points.txt +0 -0
  267. {ultralytics-8.3.109 → ultralytics-8.3.110}/ultralytics.egg-info/requires.txt +0 -0
  268. {ultralytics-8.3.109 → ultralytics-8.3.110}/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.109
3
+ Version: 8.3.110
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>
@@ -134,7 +134,7 @@ ultralytics = "ultralytics.cfg:entrypoint"
134
134
  # Tools settings -------------------------------------------------------------------------------------------------------
135
135
  [tool.setuptools] # configuration specific to the `setuptools` build backend.
136
136
  packages = { find = { where = ["."], include = ["ultralytics", "ultralytics.*"] } }
137
- package-data = { "ultralytics" = ["**/*.yaml"], "ultralytics.assets" = ["*.jpg"] }
137
+ package-data = { "ultralytics" = ["**/*.yaml", "**/*.sh"], "ultralytics.assets" = ["*.jpg"] }
138
138
 
139
139
  [tool.setuptools.dynamic]
140
140
  version = { attr = "ultralytics.__version__" }
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.109"
3
+ __version__ = "8.3.110"
4
4
 
5
5
  import os
6
6
 
@@ -14,7 +14,7 @@ import numpy as np
14
14
  import psutil
15
15
  from torch.utils.data import Dataset
16
16
 
17
- from ultralytics.data.utils import FORMATS_HELP_MSG, HELP_URL, IMG_FORMATS
17
+ from ultralytics.data.utils import FORMATS_HELP_MSG, HELP_URL, IMG_FORMATS, check_file_speeds
18
18
  from ultralytics.utils import DEFAULT_CFG, LOCAL_RANK, LOGGER, NUM_THREADS, TQDM
19
19
 
20
20
 
@@ -172,6 +172,7 @@ class BaseDataset(Dataset):
172
172
  raise FileNotFoundError(f"{self.prefix}Error loading data from {img_path}\n{HELP_URL}") from e
173
173
  if self.fraction < 1:
174
174
  im_files = im_files[: round(len(im_files) * self.fraction)] # retain a fraction of the dataset
175
+ check_file_speeds(im_files, prefix=self.prefix) # check image read speeds
175
176
  return im_files
176
177
 
177
178
  def update_labels(self, include_class: Optional[list]):
@@ -31,6 +31,7 @@ from .converter import merge_multi_segment
31
31
  from .utils import (
32
32
  HELP_URL,
33
33
  LOGGER,
34
+ check_file_speeds,
34
35
  get_hash,
35
36
  img2label_paths,
36
37
  load_dataset_cache_file,
@@ -794,6 +795,7 @@ class ClassificationDataset:
794
795
  path = Path(self.root).with_suffix(".cache") # *.cache file path
795
796
 
796
797
  try:
798
+ check_file_speeds([file for (file, _) in self.samples[:5]], prefix=self.prefix) # check image read speeds
797
799
  cache = load_dataset_cache_file(path) # attempt to load a *.cache file
798
800
  assert cache["version"] == DATASET_CACHE_VERSION # matches current version
799
801
  assert cache["hash"] == get_hash([x[0] for x in self.samples]) # identical hash
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
3
+
4
+ # Download latest models from https://github.com/ultralytics/assets/releases
5
+ # Example usage: bash ultralytics/data/scripts/download_weights.sh
6
+ # parent
7
+ # └── weights
8
+ # ├── yolov8n.pt ← downloads here
9
+ # ├── yolov8s.pt
10
+ # └── ...
11
+
12
+ python << EOF
13
+ from ultralytics.utils.downloads import attempt_download_asset
14
+
15
+ assets = [f"yolov8{size}{suffix}.pt" for size in "nsmlx" for suffix in ("", "-cls", "-seg", "-pose")]
16
+ for x in assets:
17
+ attempt_download_asset(f"weights/{x}")
18
+ EOF
@@ -0,0 +1,61 @@
1
+ #!/bin/bash
2
+ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
3
+
4
+ # Download COCO 2017 dataset https://cocodataset.org
5
+ # Example usage: bash data/scripts/get_coco.sh
6
+ # parent
7
+ # ├── ultralytics
8
+ # └── datasets
9
+ # └── coco ← downloads here
10
+
11
+ # Arguments (optional) Usage: bash data/scripts/get_coco.sh --train --val --test --segments
12
+ if [ "$#" -gt 0 ]; then
13
+ for opt in "$@"; do
14
+ case "${opt}" in
15
+ --train) train=true ;;
16
+ --val) val=true ;;
17
+ --test) test=true ;;
18
+ --segments) segments=true ;;
19
+ --sama) sama=true ;;
20
+ esac
21
+ done
22
+ else
23
+ train=true
24
+ val=true
25
+ test=false
26
+ segments=false
27
+ sama=false
28
+ fi
29
+
30
+ # Download/unzip labels
31
+ d='../datasets' # unzip directory
32
+ url=https://github.com/ultralytics/assets/releases/download/v0.0.0/
33
+ if [ "$segments" == "true" ]; then
34
+ f='coco2017labels-segments.zip' # 169 MB
35
+ elif [ "$sama" == "true" ]; then
36
+ f='coco2017labels-segments-sama.zip' # 199 MB https://www.sama.com/sama-coco-dataset/
37
+ else
38
+ f='coco2017labels.zip' # 46 MB
39
+ fi
40
+ echo 'Downloading' $url$f ' ...'
41
+ curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
42
+
43
+ # Download/unzip images
44
+ d='../datasets/coco/images' # unzip directory
45
+ url=http://images.cocodataset.org/zips/
46
+ if [ "$train" == "true" ]; then
47
+ f='train2017.zip' # 19G, 118k images
48
+ echo 'Downloading' $url$f '...'
49
+ curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
50
+ fi
51
+ if [ "$val" == "true" ]; then
52
+ f='val2017.zip' # 1G, 5k images
53
+ echo 'Downloading' $url$f '...'
54
+ curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
55
+ fi
56
+ if [ "$test" == "true" ]; then
57
+ f='test2017.zip' # 7G, 41k images (optional)
58
+ echo 'Downloading' $url$f '...'
59
+ curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
60
+ fi
61
+ wait # finish background tasks
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
3
+
4
+ # Download COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017)
5
+ # Example usage: bash data/scripts/get_coco128.sh
6
+ # parent
7
+ # ├── ultralytics
8
+ # └── datasets
9
+ # └── coco128 ← downloads here
10
+
11
+ # Download/unzip images and labels
12
+ d='../datasets' # unzip directory
13
+ url=https://github.com/ultralytics/assets/releases/download/v0.0.0/
14
+ f='coco128.zip' # or 'coco128-segments.zip', 68 MB
15
+ echo 'Downloading' $url$f ' ...'
16
+ curl -L $url$f -o $f -# && unzip -q $f -d $d && rm $f &
17
+
18
+ wait # finish background tasks
@@ -0,0 +1,52 @@
1
+ #!/bin/bash
2
+ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
3
+
4
+ # Download ILSVRC2012 ImageNet dataset https://image-net.org
5
+ # Example usage: bash data/scripts/get_imagenet.sh
6
+ # parent
7
+ # ├── ultralytics
8
+ # └── datasets
9
+ # └── imagenet ← downloads here
10
+
11
+ # Arguments (optional) Usage: bash data/scripts/get_imagenet.sh --train --val
12
+ if [ "$#" -gt 0 ]; then
13
+ for opt in "$@"; do
14
+ case "${opt}" in
15
+ --train) train=true ;;
16
+ --val) val=true ;;
17
+ esac
18
+ done
19
+ else
20
+ train=true
21
+ val=true
22
+ fi
23
+
24
+ # Make dir
25
+ d='../datasets/imagenet' # unzip directory
26
+ mkdir -p $d && cd $d
27
+
28
+ # Download/unzip train
29
+ if [ "$train" == "true" ]; then
30
+ wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_train.tar # download 138G, 1281167 images
31
+ mkdir train && mv ILSVRC2012_img_train.tar train/ && cd train
32
+ tar -xf ILSVRC2012_img_train.tar && rm -f ILSVRC2012_img_train.tar
33
+ find . -name "*.tar" | while read NAME; do
34
+ mkdir -p "${NAME%.tar}"
35
+ tar -xf "${NAME}" -C "${NAME%.tar}"
36
+ rm -f "${NAME}"
37
+ done
38
+ cd ..
39
+ fi
40
+
41
+ # Download/unzip val
42
+ if [ "$val" == "true" ]; then
43
+ wget https://image-net.org/data/ILSVRC/2012/ILSVRC2012_img_val.tar # download 6.3G, 50000 images
44
+ mkdir val && mv ILSVRC2012_img_val.tar val/ && cd val && tar -xf ILSVRC2012_img_val.tar
45
+ wget -qO- https://raw.githubusercontent.com/soumith/imagenetloader.torch/master/valprep.sh | bash # move into subdirs
46
+ fi
47
+
48
+ # Delete corrupted image (optional: PNG under JPEG name that may cause dataloaders to fail)
49
+ # rm train/n04266014/n04266014_10835.JPEG
50
+
51
+ # TFRecords (optional)
52
+ # wget https://raw.githubusercontent.com/tensorflow/models/master/research/slim/datasets/imagenet_lsvrc_2015_synsets.txt
@@ -47,9 +47,89 @@ def img2label_paths(img_paths):
47
47
  return [sb.join(x.rsplit(sa, 1)).rsplit(".", 1)[0] + ".txt" for x in img_paths]
48
48
 
49
49
 
50
+ def check_file_speeds(files, threshold_ms=10, max_files=5, prefix=""):
51
+ """
52
+ Check dataset file access speed and provide performance feedback.
53
+
54
+ This function tests the access speed of dataset files by measuring ping (stat call) time and read speed.
55
+ It samples up to 5 files from the provided list and warns if access times exceed the threshold.
56
+
57
+ Args:
58
+ files (list): List of file paths to check for access speed.
59
+ threshold_ms (float, optional): Threshold in milliseconds for ping time warnings.
60
+ max_files (int, optional): The maximum number of files to check.
61
+ prefix (str, optional): Prefix string to add to log messages.
62
+
63
+ Examples:
64
+ >>> from pathlib import Path
65
+ >>> image_files = list(Path("dataset/images").glob("*.jpg"))
66
+ >>> check_file_speeds(image_files, threshold_ms=15)
67
+ """
68
+ if not files or len(files) == 0:
69
+ LOGGER.warning(f"{prefix}WARNING ⚠️ Image speed checks: No files to check")
70
+ return
71
+
72
+ # Sample files (max 5)
73
+ files = random.sample(files, min(max_files, len(files)))
74
+
75
+ # Test ping (stat time)
76
+ ping_times = []
77
+ file_sizes = []
78
+ read_speeds = []
79
+
80
+ for f in files:
81
+ try:
82
+ # Measure ping (stat call)
83
+ start = time.perf_counter()
84
+ file_size = os.stat(f).st_size
85
+ ping_times.append((time.perf_counter() - start) * 1000) # ms
86
+ file_sizes.append(file_size)
87
+
88
+ # Measure read speed
89
+ start = time.perf_counter()
90
+ with open(f, "rb") as file_obj:
91
+ _ = file_obj.read()
92
+ read_time = time.perf_counter() - start
93
+ if read_time > 0: # Avoid division by zero
94
+ read_speeds.append(file_size / (1 << 20) / read_time) # MB/s
95
+ except Exception:
96
+ pass
97
+
98
+ if not ping_times:
99
+ LOGGER.warning(f"{prefix}WARNING ⚠️ Image speed checks: failed to access files")
100
+ return
101
+
102
+ # Calculate stats with uncertainties
103
+ avg_ping = np.mean(ping_times)
104
+ std_ping = np.std(ping_times, ddof=1) if len(ping_times) > 1 else 0
105
+ size_msg = f", size: {np.mean(file_sizes) / (1 << 10):.1f} KB"
106
+ ping_msg = f"ping: {avg_ping:.1f}±{std_ping:.1f} ms"
107
+
108
+ if read_speeds:
109
+ avg_speed = np.mean(read_speeds)
110
+ std_speed = np.std(read_speeds, ddof=1) if len(read_speeds) > 1 else 0
111
+ speed_msg = f", read: {avg_speed:.1f}±{std_speed:.1f} MB/s"
112
+ else:
113
+ speed_msg = ""
114
+
115
+ if avg_ping < threshold_ms:
116
+ LOGGER.info(f"{prefix}Fast image access ✅ ({ping_msg}{speed_msg}{size_msg})")
117
+ else:
118
+ LOGGER.warning(
119
+ f"{prefix}WARNING ⚠️ Slow image access detected ({ping_msg}{speed_msg}{size_msg}). "
120
+ f"Use local storage instead of remote/mounted storage for better performance. "
121
+ f"See https://docs.ultralytics.com/guides/model-training-tips/"
122
+ )
123
+
124
+
50
125
  def get_hash(paths):
51
126
  """Returns a single hash value of a list of paths (files or dirs)."""
52
- size = sum(os.path.getsize(p) for p in paths if os.path.exists(p)) # sizes
127
+ size = 0
128
+ for p in paths:
129
+ try:
130
+ size += os.stat(p).st_size
131
+ except OSError:
132
+ continue
53
133
  h = hashlib.sha256(str(size).encode()) # hash sizes
54
134
  h.update("".join(paths).encode()) # hash paths
55
135
  return h.hexdigest() # return hash
@@ -1000,7 +1000,7 @@ class Exporter:
1000
1000
 
1001
1001
  @try_export
1002
1002
  def export_pb(self, keras_model, prefix=colorstr("TensorFlow GraphDef:")):
1003
- """YOLO TensorFlow GraphDef *.pb export https://github.com/leimao/Frozen_Graph_TensorFlow."""
1003
+ """YOLO TensorFlow GraphDef *.pb export https://github.com/leimao/Frozen-Graph-TensorFlow."""
1004
1004
  import tensorflow as tf # noqa
1005
1005
  from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2 # noqa
1006
1006
 
@@ -1281,7 +1281,7 @@ class Exporter:
1281
1281
  return f, None
1282
1282
 
1283
1283
  def _add_tflite_metadata(self, file):
1284
- """Add metadata to *.tflite models per https://www.tensorflow.org/lite/models/convert/metadata."""
1284
+ """Add metadata to *.tflite models per https://ai.google.dev/edge/litert/models/metadata."""
1285
1285
  import flatbuffers
1286
1286
 
1287
1287
  try:
@@ -397,7 +397,7 @@ class AutoBackend(nn.Module):
397
397
  pass
398
398
 
399
399
  # TFLite or TFLite Edge TPU
400
- elif tflite or edgetpu: # https://www.tensorflow.org/lite/guide/python#install_tensorflow_lite_for_python
400
+ elif tflite or edgetpu: # https://ai.google.dev/edge/litert/microcontrollers/python
401
401
  try: # https://coral.ai/docs/edgetpu/tflite-python/#update-existing-tf-lite-code-for-the-edge-tpu
402
402
  from tflite_runtime.interpreter import Interpreter, load_delegate
403
403
  except ImportError:
@@ -422,7 +422,7 @@ class C3Ghost(C3):
422
422
 
423
423
 
424
424
  class GhostBottleneck(nn.Module):
425
- """Ghost Bottleneck https://github.com/huawei-noah/ghostnet."""
425
+ """Ghost Bottleneck https://github.com/huawei-noah/Efficient-AI-Backbones."""
426
426
 
427
427
  def __init__(self, c1, c2, k=3, s=1):
428
428
  """
@@ -337,7 +337,7 @@ class GhostConv(nn.Module):
337
337
  cv2 (Conv): Cheap operation convolution.
338
338
 
339
339
  References:
340
- https://github.com/huawei-noah/ghostnet
340
+ https://github.com/huawei-noah/Efficient-AI-Backbones
341
341
  """
342
342
 
343
343
  def __init__(self, c1, c2, k=1, s=1, g=1, act=True):
@@ -58,7 +58,7 @@ class ParkingPtsSelection:
58
58
  "Linux": "sudo apt install python3-tk (Debian/Ubuntu) | sudo dnf install python3-tkinter (Fedora) | "
59
59
  "sudo pacman -S tk (Arch)",
60
60
  "Windows": "reinstall Python and enable the checkbox `tcl/tk and IDLE` on **Optional Features** during installation",
61
- "Darwin": "reinstall Python from https://www.python.org/downloads/mac-osx/ or `brew install python-tk`",
61
+ "Darwin": "reinstall Python from https://www.python.org/downloads/macos/ or `brew install python-tk`",
62
62
  }.get(platform.system(), "Unknown OS. Check your Python installation.")
63
63
 
64
64
  LOGGER.warning(f"WARNING ⚠️ Tkinter is not configured or supported. Potential fix: {install_cmd}")
@@ -87,7 +87,7 @@ def generate_ddp_command(world_size, trainer):
87
87
  cmd (List[str]): The command to execute for distributed training.
88
88
  file (str): Path to the temporary file created for DDP training.
89
89
  """
90
- import __main__ # noqa local import to avoid https://github.com/Lightning-AI/lightning/issues/15218
90
+ import __main__ # noqa local import to avoid https://github.com/Lightning-AI/pytorch-lightning/issues/15218
91
91
 
92
92
  if not trainer.resume:
93
93
  shutil.rmtree(trainer.save_dir) # remove the save_dir
@@ -52,7 +52,7 @@ def bbox_ioa(box1, box2, iou=False, eps=1e-7):
52
52
  def box_iou(box1, box2, eps=1e-7):
53
53
  """
54
54
  Calculate intersection-over-union (IoU) of boxes. Both sets of boxes are expected to be in (x1, y1, x2, y2) format.
55
- Based on https://github.com/pytorch/vision/blob/master/torchvision/ops/boxes.py.
55
+ Based on https://github.com/pytorch/vision/blob/main/torchvision/ops/boxes.py.
56
56
 
57
57
  Args:
58
58
  box1 (torch.Tensor): A tensor of shape (N, 4) representing N bounding boxes.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.109
3
+ Version: 8.3.110
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>
@@ -117,6 +117,10 @@ ultralytics/data/dataset.py
117
117
  ultralytics/data/loaders.py
118
118
  ultralytics/data/split_dota.py
119
119
  ultralytics/data/utils.py
120
+ ultralytics/data/scripts/download_weights.sh
121
+ ultralytics/data/scripts/get_coco.sh
122
+ ultralytics/data/scripts/get_coco128.sh
123
+ ultralytics/data/scripts/get_imagenet.sh
120
124
  ultralytics/engine/__init__.py
121
125
  ultralytics/engine/exporter.py
122
126
  ultralytics/engine/model.py
File without changes
File without changes
File without changes