ultralytics 8.2.37__tar.gz → 8.2.39__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 (232) hide show
  1. {ultralytics-8.2.37 → ultralytics-8.2.39}/PKG-INFO +6 -6
  2. {ultralytics-8.2.37 → ultralytics-8.2.39}/README.md +5 -5
  3. {ultralytics-8.2.37 → ultralytics-8.2.39}/tests/test_python.py +9 -0
  4. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/__init__.py +1 -1
  5. ultralytics-8.2.39/ultralytics/cfg/models/v10/yolov10b.yaml +42 -0
  6. ultralytics-8.2.39/ultralytics/cfg/models/v10/yolov10l.yaml +42 -0
  7. ultralytics-8.2.39/ultralytics/cfg/models/v10/yolov10m.yaml +42 -0
  8. ultralytics-8.2.39/ultralytics/cfg/models/v10/yolov10n.yaml +42 -0
  9. ultralytics-8.2.39/ultralytics/cfg/models/v10/yolov10s.yaml +42 -0
  10. ultralytics-8.2.39/ultralytics/cfg/models/v10/yolov10x.yaml +42 -0
  11. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-p6.yaml +5 -5
  12. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/augment.py +13 -16
  13. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/converter.py +10 -11
  14. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/split_dota.py +4 -4
  15. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/engine/exporter.py +3 -2
  16. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/engine/model.py +0 -1
  17. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/modules/tiny_encoder.py +6 -7
  18. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/nn/modules/__init__.py +14 -1
  19. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/nn/modules/block.py +256 -1
  20. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/nn/modules/head.py +114 -4
  21. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/nn/tasks.py +40 -18
  22. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/solutions/__init__.py +1 -0
  23. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/__init__.py +1 -1
  24. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/benchmarks.py +5 -0
  25. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/downloads.py +1 -0
  26. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/loss.py +20 -2
  27. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/metrics.py +2 -1
  28. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/ops.py +3 -0
  29. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics.egg-info/PKG-INFO +6 -6
  30. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics.egg-info/SOURCES.txt +6 -0
  31. {ultralytics-8.2.37 → ultralytics-8.2.39}/LICENSE +0 -0
  32. {ultralytics-8.2.37 → ultralytics-8.2.39}/pyproject.toml +0 -0
  33. {ultralytics-8.2.37 → ultralytics-8.2.39}/setup.cfg +0 -0
  34. {ultralytics-8.2.37 → ultralytics-8.2.39}/tests/__init__.py +0 -0
  35. {ultralytics-8.2.37 → ultralytics-8.2.39}/tests/conftest.py +0 -0
  36. {ultralytics-8.2.37 → ultralytics-8.2.39}/tests/test_cli.py +0 -0
  37. {ultralytics-8.2.37 → ultralytics-8.2.39}/tests/test_cuda.py +0 -0
  38. {ultralytics-8.2.37 → ultralytics-8.2.39}/tests/test_engine.py +0 -0
  39. {ultralytics-8.2.37 → ultralytics-8.2.39}/tests/test_explorer.py +0 -0
  40. {ultralytics-8.2.37 → ultralytics-8.2.39}/tests/test_exports.py +0 -0
  41. {ultralytics-8.2.37 → ultralytics-8.2.39}/tests/test_integrations.py +0 -0
  42. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/assets/bus.jpg +0 -0
  43. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/assets/zidane.jpg +0 -0
  44. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/__init__.py +0 -0
  45. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  46. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  47. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  48. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  49. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  50. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  51. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  52. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  53. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  54. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  55. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  56. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  57. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  58. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/coco.yaml +0 -0
  59. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  60. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  61. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  62. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  63. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  64. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  65. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  66. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  67. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  68. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  69. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/signature.yaml +0 -0
  70. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  71. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/datasets/xView.yaml +0 -0
  72. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/default.yaml +0 -0
  73. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  74. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  75. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  76. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  77. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  78. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  79. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  80. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  81. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  82. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  83. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  84. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  85. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  86. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  87. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  88. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  89. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  90. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  91. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  92. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  93. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  94. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  95. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  96. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  97. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  98. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  99. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  100. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  101. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  102. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  103. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  104. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  105. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  106. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  107. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  108. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/__init__.py +0 -0
  109. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/annotator.py +0 -0
  110. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/base.py +0 -0
  111. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/build.py +0 -0
  112. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/dataset.py +0 -0
  113. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/explorer/__init__.py +0 -0
  114. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/explorer/explorer.py +0 -0
  115. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/explorer/gui/__init__.py +0 -0
  116. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/explorer/gui/dash.py +0 -0
  117. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/explorer/utils.py +0 -0
  118. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/loaders.py +0 -0
  119. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/data/utils.py +0 -0
  120. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/engine/__init__.py +0 -0
  121. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/engine/predictor.py +0 -0
  122. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/engine/results.py +0 -0
  123. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/engine/trainer.py +0 -0
  124. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/engine/tuner.py +0 -0
  125. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/engine/validator.py +0 -0
  126. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/hub/__init__.py +0 -0
  127. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/hub/auth.py +0 -0
  128. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/hub/session.py +0 -0
  129. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/hub/utils.py +0 -0
  130. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/__init__.py +0 -0
  131. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/fastsam/__init__.py +0 -0
  132. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/fastsam/model.py +0 -0
  133. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/fastsam/predict.py +0 -0
  134. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/fastsam/prompt.py +0 -0
  135. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/fastsam/utils.py +0 -0
  136. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/fastsam/val.py +0 -0
  137. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/nas/__init__.py +0 -0
  138. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/nas/model.py +0 -0
  139. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/nas/predict.py +0 -0
  140. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/nas/val.py +0 -0
  141. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/rtdetr/__init__.py +0 -0
  142. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/rtdetr/model.py +0 -0
  143. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/rtdetr/predict.py +0 -0
  144. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/rtdetr/train.py +0 -0
  145. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/rtdetr/val.py +0 -0
  146. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/__init__.py +0 -0
  147. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/amg.py +0 -0
  148. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/build.py +0 -0
  149. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/model.py +0 -0
  150. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/modules/__init__.py +0 -0
  151. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/modules/decoders.py +0 -0
  152. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/modules/encoders.py +0 -0
  153. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/modules/sam.py +0 -0
  154. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/modules/transformer.py +0 -0
  155. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/sam/predict.py +0 -0
  156. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/utils/__init__.py +0 -0
  157. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/utils/loss.py +0 -0
  158. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/utils/ops.py +0 -0
  159. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/__init__.py +0 -0
  160. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/classify/__init__.py +0 -0
  161. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/classify/predict.py +0 -0
  162. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/classify/train.py +0 -0
  163. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/classify/val.py +0 -0
  164. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/detect/__init__.py +0 -0
  165. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/detect/predict.py +0 -0
  166. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/detect/train.py +0 -0
  167. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/detect/val.py +0 -0
  168. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/model.py +0 -0
  169. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/obb/__init__.py +0 -0
  170. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/obb/predict.py +0 -0
  171. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/obb/train.py +0 -0
  172. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/obb/val.py +0 -0
  173. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/pose/__init__.py +0 -0
  174. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/pose/predict.py +0 -0
  175. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/pose/train.py +0 -0
  176. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/pose/val.py +0 -0
  177. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/segment/__init__.py +0 -0
  178. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/segment/predict.py +0 -0
  179. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/segment/train.py +0 -0
  180. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/segment/val.py +0 -0
  181. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/world/__init__.py +0 -0
  182. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/world/train.py +0 -0
  183. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/models/yolo/world/train_world.py +0 -0
  184. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/nn/__init__.py +0 -0
  185. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/nn/autobackend.py +0 -0
  186. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/nn/modules/conv.py +0 -0
  187. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/nn/modules/transformer.py +0 -0
  188. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/nn/modules/utils.py +0 -0
  189. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/solutions/ai_gym.py +0 -0
  190. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/solutions/analytics.py +0 -0
  191. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/solutions/distance_calculation.py +0 -0
  192. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/solutions/heatmap.py +0 -0
  193. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/solutions/object_counter.py +0 -0
  194. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/solutions/parking_management.py +0 -0
  195. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/solutions/queue_management.py +0 -0
  196. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/solutions/speed_estimation.py +0 -0
  197. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/trackers/__init__.py +0 -0
  198. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/trackers/basetrack.py +0 -0
  199. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/trackers/bot_sort.py +0 -0
  200. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/trackers/byte_tracker.py +0 -0
  201. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/trackers/track.py +0 -0
  202. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/trackers/utils/__init__.py +0 -0
  203. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/trackers/utils/gmc.py +0 -0
  204. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  205. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/trackers/utils/matching.py +0 -0
  206. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/autobatch.py +0 -0
  207. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/__init__.py +0 -0
  208. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/base.py +0 -0
  209. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/clearml.py +0 -0
  210. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/comet.py +0 -0
  211. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/dvc.py +0 -0
  212. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/hub.py +0 -0
  213. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/mlflow.py +0 -0
  214. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/neptune.py +0 -0
  215. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/raytune.py +0 -0
  216. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  217. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/callbacks/wb.py +0 -0
  218. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/checks.py +0 -0
  219. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/dist.py +0 -0
  220. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/errors.py +0 -0
  221. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/files.py +0 -0
  222. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/instance.py +0 -0
  223. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/patches.py +0 -0
  224. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/plotting.py +0 -0
  225. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/tal.py +0 -0
  226. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/torch_utils.py +0 -0
  227. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/triton.py +0 -0
  228. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics/utils/tuner.py +0 -0
  229. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics.egg-info/dependency_links.txt +0 -0
  230. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics.egg-info/entry_points.txt +0 -0
  231. {ultralytics-8.2.37 → ultralytics-8.2.39}/ultralytics.egg-info/requires.txt +0 -0
  232. {ultralytics-8.2.37 → ultralytics-8.2.39}/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.2.37
3
+ Version: 8.2.39
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
@@ -122,7 +122,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
122
122
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
123
123
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="2%" alt="Ultralytics TikTok"></a>
124
124
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
125
- <a href="https://www.instagram.com/ultralytics/"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-instagram.png" width="2%" alt="Ultralytics Instagram"></a>
125
+ <a href="https://ultralytics.com/bilibili"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-bilibili.png" width="2%" alt="Ultralytics BiliBili"></a>
126
126
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
127
127
  <a href="https://ultralytics.com/discord"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png" width="2%" alt="Ultralytics Discord"></a>
128
128
  </div>
@@ -313,7 +313,7 @@ See [Classification Docs](https://docs.ultralytics.com/tasks/classify/) for usag
313
313
  Our key integrations with leading AI platforms extend the functionality of Ultralytics' offerings, enhancing tasks like dataset labeling, training, visualization, and model management. Discover how Ultralytics, in collaboration with [Roboflow](https://roboflow.com/?ref=ultralytics), ClearML, [Comet](https://bit.ly/yolov8-readme-comet), Neural Magic and [OpenVINO](https://docs.ultralytics.com/integrations/openvino), can optimize your AI workflow.
314
314
 
315
315
  <br>
316
- <a href="https://bit.ly/ultralytics_hub" target="_blank">
316
+ <a href="https://ultralytics.com/hub" target="_blank">
317
317
  <img width="100%" src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png" alt="Ultralytics active learning integrations"></a>
318
318
  <br>
319
319
  <br>
@@ -338,9 +338,9 @@ Our key integrations with leading AI platforms extend the functionality of Ultra
338
338
 
339
339
  ## <div align="center">Ultralytics HUB</div>
340
340
 
341
- Experience seamless AI with [Ultralytics HUB](https://bit.ly/ultralytics_hub) ⭐, the all-in-one solution for data visualization, YOLOv5 and YOLOv8 🚀 model training and deployment, without any coding. Transform images into actionable insights and bring your AI visions to life with ease using our cutting-edge platform and user-friendly [Ultralytics App](https://ultralytics.com/app_install). Start your journey for **Free** now!
341
+ Experience seamless AI with [Ultralytics HUB](https://ultralytics.com/hub) ⭐, the all-in-one solution for data visualization, YOLOv5 and YOLOv8 🚀 model training and deployment, without any coding. Transform images into actionable insights and bring your AI visions to life with ease using our cutting-edge platform and user-friendly [Ultralytics App](https://ultralytics.com/app_install). Start your journey for **Free** now!
342
342
 
343
- <a href="https://bit.ly/ultralytics_hub" target="_blank">
343
+ <a href="https://ultralytics.com/hub" target="_blank">
344
344
  <img width="100%" src="https://github.com/ultralytics/assets/raw/main/im/ultralytics-hub.png" alt="Ultralytics HUB preview image"></a>
345
345
 
346
346
  ## <div align="center">Contribute</div>
@@ -375,7 +375,7 @@ For Ultralytics bug reports and feature requests please visit [GitHub Issues](ht
375
375
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
376
376
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="3%" alt="Ultralytics TikTok"></a>
377
377
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
378
- <a href="https://www.instagram.com/ultralytics/"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-instagram.png" width="3%" alt="Ultralytics Instagram"></a>
378
+ <a href="https://ultralytics.com/bilibili"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-bilibili.png" width="3%" alt="Ultralytics BiliBili"></a>
379
379
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
380
380
  <a href="https://ultralytics.com/discord"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png" width="3%" alt="Ultralytics Discord"></a>
381
381
  </div>
@@ -38,7 +38,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
38
38
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
39
39
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="2%" alt="Ultralytics TikTok"></a>
40
40
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
41
- <a href="https://www.instagram.com/ultralytics/"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-instagram.png" width="2%" alt="Ultralytics Instagram"></a>
41
+ <a href="https://ultralytics.com/bilibili"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-bilibili.png" width="2%" alt="Ultralytics BiliBili"></a>
42
42
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space">
43
43
  <a href="https://ultralytics.com/discord"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png" width="2%" alt="Ultralytics Discord"></a>
44
44
  </div>
@@ -229,7 +229,7 @@ See [Classification Docs](https://docs.ultralytics.com/tasks/classify/) for usag
229
229
  Our key integrations with leading AI platforms extend the functionality of Ultralytics' offerings, enhancing tasks like dataset labeling, training, visualization, and model management. Discover how Ultralytics, in collaboration with [Roboflow](https://roboflow.com/?ref=ultralytics), ClearML, [Comet](https://bit.ly/yolov8-readme-comet), Neural Magic and [OpenVINO](https://docs.ultralytics.com/integrations/openvino), can optimize your AI workflow.
230
230
 
231
231
  <br>
232
- <a href="https://bit.ly/ultralytics_hub" target="_blank">
232
+ <a href="https://ultralytics.com/hub" target="_blank">
233
233
  <img width="100%" src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png" alt="Ultralytics active learning integrations"></a>
234
234
  <br>
235
235
  <br>
@@ -254,9 +254,9 @@ Our key integrations with leading AI platforms extend the functionality of Ultra
254
254
 
255
255
  ## <div align="center">Ultralytics HUB</div>
256
256
 
257
- Experience seamless AI with [Ultralytics HUB](https://bit.ly/ultralytics_hub) ⭐, the all-in-one solution for data visualization, YOLOv5 and YOLOv8 🚀 model training and deployment, without any coding. Transform images into actionable insights and bring your AI visions to life with ease using our cutting-edge platform and user-friendly [Ultralytics App](https://ultralytics.com/app_install). Start your journey for **Free** now!
257
+ Experience seamless AI with [Ultralytics HUB](https://ultralytics.com/hub) ⭐, the all-in-one solution for data visualization, YOLOv5 and YOLOv8 🚀 model training and deployment, without any coding. Transform images into actionable insights and bring your AI visions to life with ease using our cutting-edge platform and user-friendly [Ultralytics App](https://ultralytics.com/app_install). Start your journey for **Free** now!
258
258
 
259
- <a href="https://bit.ly/ultralytics_hub" target="_blank">
259
+ <a href="https://ultralytics.com/hub" target="_blank">
260
260
  <img width="100%" src="https://github.com/ultralytics/assets/raw/main/im/ultralytics-hub.png" alt="Ultralytics HUB preview image"></a>
261
261
 
262
262
  ## <div align="center">Contribute</div>
@@ -291,7 +291,7 @@ For Ultralytics bug reports and feature requests please visit [GitHub Issues](ht
291
291
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
292
292
  <a href="https://www.tiktok.com/@ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-tiktok.png" width="3%" alt="Ultralytics TikTok"></a>
293
293
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
294
- <a href="https://www.instagram.com/ultralytics/"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-instagram.png" width="3%" alt="Ultralytics Instagram"></a>
294
+ <a href="https://ultralytics.com/bilibili"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-bilibili.png" width="3%" alt="Ultralytics BiliBili"></a>
295
295
  <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="3%" alt="space">
296
296
  <a href="https://ultralytics.com/discord"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-discord.png" width="3%" alt="Ultralytics Discord"></a>
297
297
  </div>
@@ -577,3 +577,12 @@ def test_yolo_world():
577
577
  close_mosaic=1,
578
578
  trainer=WorldTrainerFromScratch,
579
579
  )
580
+
581
+
582
+ def test_yolov10():
583
+ """A simple test for yolov10 for now."""
584
+ model = YOLO("yolov10n.yaml")
585
+ # train/val/predict
586
+ model.train(data="coco8.yaml", epochs=1, imgsz=32, close_mosaic=1, cache="disk")
587
+ model.val(data="coco8.yaml", imgsz=32)
588
+ model(SOURCE)
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.37"
3
+ __version__ = "8.2.39"
4
4
 
5
5
  import os
6
6
 
@@ -0,0 +1,42 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ # YOLOv10 object detection model. For Usage examples see https://docs.ultralytics.com/tasks/detect
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ b: [0.67, 1.00, 512]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
13
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
14
+ - [-1, 3, C2f, [128, True]]
15
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
16
+ - [-1, 6, C2f, [256, True]]
17
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
18
+ - [-1, 6, C2f, [512, True]]
19
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
20
+ - [-1, 3, C2fCIB, [1024, True]]
21
+ - [-1, 1, SPPF, [1024, 5]] # 9
22
+ - [-1, 1, PSA, [1024]] # 10
23
+
24
+ # YOLOv8.0n head
25
+ head:
26
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
27
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
28
+ - [-1, 3, C2fCIB, [512, True]] # 13
29
+
30
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
31
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
32
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
33
+
34
+ - [-1, 1, Conv, [256, 3, 2]]
35
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
36
+ - [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)
37
+
38
+ - [-1, 1, SCDown, [512, 3, 2]]
39
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
40
+ - [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)
41
+
42
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
@@ -0,0 +1,42 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ # YOLOv10 object detection model. For Usage examples see https://docs.ultralytics.com/tasks/detect
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ l: [1.00, 1.00, 512]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
13
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
14
+ - [-1, 3, C2f, [128, True]]
15
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
16
+ - [-1, 6, C2f, [256, True]]
17
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
18
+ - [-1, 6, C2f, [512, True]]
19
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
20
+ - [-1, 3, C2fCIB, [1024, True]]
21
+ - [-1, 1, SPPF, [1024, 5]] # 9
22
+ - [-1, 1, PSA, [1024]] # 10
23
+
24
+ # YOLOv8.0n head
25
+ head:
26
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
27
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
28
+ - [-1, 3, C2fCIB, [512, True]] # 13
29
+
30
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
31
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
32
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
33
+
34
+ - [-1, 1, Conv, [256, 3, 2]]
35
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
36
+ - [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)
37
+
38
+ - [-1, 1, SCDown, [512, 3, 2]]
39
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
40
+ - [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)
41
+
42
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
@@ -0,0 +1,42 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ # YOLOv10 object detection model. For Usage examples see https://docs.ultralytics.com/tasks/detect
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ m: [0.67, 0.75, 768]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
13
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
14
+ - [-1, 3, C2f, [128, True]]
15
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
16
+ - [-1, 6, C2f, [256, True]]
17
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
18
+ - [-1, 6, C2f, [512, True]]
19
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
20
+ - [-1, 3, C2fCIB, [1024, True]]
21
+ - [-1, 1, SPPF, [1024, 5]] # 9
22
+ - [-1, 1, PSA, [1024]] # 10
23
+
24
+ # YOLOv8.0n head
25
+ head:
26
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
27
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
28
+ - [-1, 3, C2f, [512]] # 13
29
+
30
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
31
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
32
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
33
+
34
+ - [-1, 1, Conv, [256, 3, 2]]
35
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
36
+ - [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)
37
+
38
+ - [-1, 1, SCDown, [512, 3, 2]]
39
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
40
+ - [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)
41
+
42
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
@@ -0,0 +1,42 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ # YOLOv10 object detection model. For Usage examples see https://docs.ultralytics.com/tasks/detect
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ n: [0.33, 0.25, 1024]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
13
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
14
+ - [-1, 3, C2f, [128, True]]
15
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
16
+ - [-1, 6, C2f, [256, True]]
17
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
18
+ - [-1, 6, C2f, [512, True]]
19
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
20
+ - [-1, 3, C2f, [1024, True]]
21
+ - [-1, 1, SPPF, [1024, 5]] # 9
22
+ - [-1, 1, PSA, [1024]] # 10
23
+
24
+ # YOLOv8.0n head
25
+ head:
26
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
27
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
28
+ - [-1, 3, C2f, [512]] # 13
29
+
30
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
31
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
32
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
33
+
34
+ - [-1, 1, Conv, [256, 3, 2]]
35
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
36
+ - [-1, 3, C2f, [512]] # 19 (P4/16-medium)
37
+
38
+ - [-1, 1, SCDown, [512, 3, 2]]
39
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
40
+ - [-1, 3, C2fCIB, [1024, True, True]] # 22 (P5/32-large)
41
+
42
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
@@ -0,0 +1,42 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ # YOLOv10 object detection model. For Usage examples see https://docs.ultralytics.com/tasks/detect
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ s: [0.33, 0.50, 1024]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
13
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
14
+ - [-1, 3, C2f, [128, True]]
15
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
16
+ - [-1, 6, C2f, [256, True]]
17
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
18
+ - [-1, 6, C2f, [512, True]]
19
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
20
+ - [-1, 3, C2fCIB, [1024, True, True]]
21
+ - [-1, 1, SPPF, [1024, 5]] # 9
22
+ - [-1, 1, PSA, [1024]] # 10
23
+
24
+ # YOLOv8.0n head
25
+ head:
26
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
27
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
28
+ - [-1, 3, C2f, [512]] # 13
29
+
30
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
31
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
32
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
33
+
34
+ - [-1, 1, Conv, [256, 3, 2]]
35
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
36
+ - [-1, 3, C2f, [512]] # 19 (P4/16-medium)
37
+
38
+ - [-1, 1, SCDown, [512, 3, 2]]
39
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
40
+ - [-1, 3, C2fCIB, [1024, True, True]] # 22 (P5/32-large)
41
+
42
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
@@ -0,0 +1,42 @@
1
+ # Ultralytics YOLO 🚀, AGPL-3.0 license
2
+ # YOLOv10 object detection model. For Usage examples see https://docs.ultralytics.com/tasks/detect
3
+
4
+ # Parameters
5
+ nc: 80 # number of classes
6
+ scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
7
+ # [depth, width, max_channels]
8
+ x: [1.00, 1.25, 512]
9
+
10
+ backbone:
11
+ # [from, repeats, module, args]
12
+ - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
13
+ - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
14
+ - [-1, 3, C2f, [128, True]]
15
+ - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
16
+ - [-1, 6, C2f, [256, True]]
17
+ - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
18
+ - [-1, 6, C2fCIB, [512, True]]
19
+ - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
20
+ - [-1, 3, C2fCIB, [1024, True]]
21
+ - [-1, 1, SPPF, [1024, 5]] # 9
22
+ - [-1, 1, PSA, [1024]] # 10
23
+
24
+ # YOLOv8.0n head
25
+ head:
26
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
27
+ - [[-1, 6], 1, Concat, [1]] # cat backbone P4
28
+ - [-1, 3, C2fCIB, [512, True]] # 13
29
+
30
+ - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
31
+ - [[-1, 4], 1, Concat, [1]] # cat backbone P3
32
+ - [-1, 3, C2f, [256]] # 16 (P3/8-small)
33
+
34
+ - [-1, 1, Conv, [256, 3, 2]]
35
+ - [[-1, 13], 1, Concat, [1]] # cat head P4
36
+ - [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)
37
+
38
+ - [-1, 1, SCDown, [512, 3, 2]]
39
+ - [[-1, 10], 1, Concat, [1]] # cat head P5
40
+ - [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)
41
+
42
+ - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)
@@ -5,11 +5,11 @@
5
5
  nc: 80 # number of classes
6
6
  scales: # model compound scaling constants, i.e. 'model=yolov8n-p6.yaml' will call yolov8-p6.yaml with scale 'n'
7
7
  # [depth, width, max_channels]
8
- n: [0.33, 0.25, 1024]
9
- s: [0.33, 0.50, 1024]
10
- m: [0.67, 0.75, 768]
11
- l: [1.00, 1.00, 512]
12
- x: [1.00, 1.25, 512]
8
+ n: [0.33, 0.25, 1024] # YOLOv8n-p6 summary (fused): 220 layers, 4976656 parameters, 42560 gradients, 8.7 GFLOPs
9
+ s: [0.33, 0.50, 1024] # YOLOv8s-p6 summary (fused): 220 layers, 17897168 parameters, 57920 gradients, 28.5 GFLOPs
10
+ m: [0.67, 0.75, 768] # YOLOv8m-p6 summary (fused): 285 layers, 44862352 parameters, 78400 gradients, 83.1 GFLOPs
11
+ l: [1.00, 1.00, 512] # YOLOv8l-p6 summary (fused): 350 layers, 62351440 parameters, 98880 gradients, 167.3 GFLOPs
12
+ x: [1.00, 1.25, 512] # YOLOv8x-p6 summary (fused): 350 layers, 97382352 parameters, 123456 gradients, 261.1 GFLOPs
13
13
 
14
14
  # YOLOv8.0x6 backbone
15
15
  backbone:
@@ -1223,16 +1223,13 @@ def classify_transforms(
1223
1223
  else:
1224
1224
  # Resize the shortest edge to matching target dim for non-square target
1225
1225
  tfl = [T.Resize(scale_size)]
1226
- tfl += [T.CenterCrop(size)]
1227
-
1228
- tfl += [
1229
- T.ToTensor(),
1230
- T.Normalize(
1231
- mean=torch.tensor(mean),
1232
- std=torch.tensor(std),
1233
- ),
1234
- ]
1235
-
1226
+ tfl.extend(
1227
+ [
1228
+ T.CenterCrop(size),
1229
+ T.ToTensor(),
1230
+ T.Normalize(mean=torch.tensor(mean), std=torch.tensor(std)),
1231
+ ]
1232
+ )
1236
1233
  return T.Compose(tfl)
1237
1234
 
1238
1235
 
@@ -1284,9 +1281,9 @@ def classify_augmentations(
1284
1281
  ratio = tuple(ratio or (3.0 / 4.0, 4.0 / 3.0)) # default imagenet ratio range
1285
1282
  primary_tfl = [T.RandomResizedCrop(size, scale=scale, ratio=ratio, interpolation=interpolation)]
1286
1283
  if hflip > 0.0:
1287
- primary_tfl += [T.RandomHorizontalFlip(p=hflip)]
1284
+ primary_tfl.append(T.RandomHorizontalFlip(p=hflip))
1288
1285
  if vflip > 0.0:
1289
- primary_tfl += [T.RandomVerticalFlip(p=vflip)]
1286
+ primary_tfl.append(T.RandomVerticalFlip(p=vflip))
1290
1287
 
1291
1288
  secondary_tfl = []
1292
1289
  disable_color_jitter = False
@@ -1298,19 +1295,19 @@ def classify_augmentations(
1298
1295
 
1299
1296
  if auto_augment == "randaugment":
1300
1297
  if TORCHVISION_0_11:
1301
- secondary_tfl += [T.RandAugment(interpolation=interpolation)]
1298
+ secondary_tfl.append(T.RandAugment(interpolation=interpolation))
1302
1299
  else:
1303
1300
  LOGGER.warning('"auto_augment=randaugment" requires torchvision >= 0.11.0. Disabling it.')
1304
1301
 
1305
1302
  elif auto_augment == "augmix":
1306
1303
  if TORCHVISION_0_13:
1307
- secondary_tfl += [T.AugMix(interpolation=interpolation)]
1304
+ secondary_tfl.append(T.AugMix(interpolation=interpolation))
1308
1305
  else:
1309
1306
  LOGGER.warning('"auto_augment=augmix" requires torchvision >= 0.13.0. Disabling it.')
1310
1307
 
1311
1308
  elif auto_augment == "autoaugment":
1312
1309
  if TORCHVISION_0_10:
1313
- secondary_tfl += [T.AutoAugment(interpolation=interpolation)]
1310
+ secondary_tfl.append(T.AutoAugment(interpolation=interpolation))
1314
1311
  else:
1315
1312
  LOGGER.warning('"auto_augment=autoaugment" requires torchvision >= 0.10.0. Disabling it.')
1316
1313
 
@@ -1321,7 +1318,7 @@ def classify_augmentations(
1321
1318
  )
1322
1319
 
1323
1320
  if not disable_color_jitter:
1324
- secondary_tfl += [T.ColorJitter(brightness=hsv_v, contrast=hsv_v, saturation=hsv_s, hue=hsv_h)]
1321
+ secondary_tfl.append(T.ColorJitter(brightness=hsv_v, contrast=hsv_v, saturation=hsv_s, hue=hsv_h))
1325
1322
 
1326
1323
  final_tfl = [
1327
1324
  T.ToTensor(),
@@ -329,8 +329,7 @@ def convert_coco(
329
329
 
330
330
  if lvis:
331
331
  with open((Path(save_dir) / json_file.name.replace("lvis_v1_", "").replace(".json", ".txt")), "a") as f:
332
- for l in image_txt:
333
- f.write(f"{l}\n")
332
+ f.writelines(f"{line}\n" for line in image_txt)
334
333
 
335
334
  LOGGER.info(f"{'LVIS' if lvis else 'COCO'} data converted successfully.\nResults saved to {save_dir.resolve()}")
336
335
 
@@ -534,25 +533,25 @@ def yolo_bbox2segment(im_dir, save_dir=None, sam_model="sam_b.pt"):
534
533
 
535
534
  LOGGER.info("Detection labels detected, generating segment labels by SAM model!")
536
535
  sam_model = SAM(sam_model)
537
- for l in tqdm(dataset.labels, total=len(dataset.labels), desc="Generating segment labels"):
538
- h, w = l["shape"]
539
- boxes = l["bboxes"]
536
+ for label in tqdm(dataset.labels, total=len(dataset.labels), desc="Generating segment labels"):
537
+ h, w = label["shape"]
538
+ boxes = label["bboxes"]
540
539
  if len(boxes) == 0: # skip empty labels
541
540
  continue
542
541
  boxes[:, [0, 2]] *= w
543
542
  boxes[:, [1, 3]] *= h
544
- im = cv2.imread(l["im_file"])
543
+ im = cv2.imread(label["im_file"])
545
544
  sam_results = sam_model(im, bboxes=xywh2xyxy(boxes), verbose=False, save=False)
546
- l["segments"] = sam_results[0].masks.xyn
545
+ label["segments"] = sam_results[0].masks.xyn
547
546
 
548
547
  save_dir = Path(save_dir) if save_dir else Path(im_dir).parent / "labels-segment"
549
548
  save_dir.mkdir(parents=True, exist_ok=True)
550
- for l in dataset.labels:
549
+ for label in dataset.labels:
551
550
  texts = []
552
- lb_name = Path(l["im_file"]).with_suffix(".txt").name
551
+ lb_name = Path(label["im_file"]).with_suffix(".txt").name
553
552
  txt_file = save_dir / lb_name
554
- cls = l["cls"]
555
- for i, s in enumerate(l["segments"]):
553
+ cls = label["cls"]
554
+ for i, s in enumerate(label["segments"]):
556
555
  line = (int(cls[i]), *s.reshape(-1))
557
556
  texts.append(("%g " * len(line)).rstrip() % line)
558
557
  if texts:
@@ -26,8 +26,8 @@ def bbox_iof(polygon1, bbox2, eps=1e-6):
26
26
  bbox2 (np.ndarray): Bounding boxes, (n ,4).
27
27
  """
28
28
  polygon1 = polygon1.reshape(-1, 4, 2)
29
- lt_point = np.min(polygon1, axis=-2)
30
- rb_point = np.max(polygon1, axis=-2)
29
+ lt_point = np.min(polygon1, axis=-2) # left-top
30
+ rb_point = np.max(polygon1, axis=-2) # right-bottom
31
31
  bbox1 = np.concatenate([lt_point, rb_point], axis=-1)
32
32
 
33
33
  lt = np.maximum(bbox1[:, None, :2], bbox2[..., :2])
@@ -35,8 +35,8 @@ def bbox_iof(polygon1, bbox2, eps=1e-6):
35
35
  wh = np.clip(rb - lt, 0, np.inf)
36
36
  h_overlaps = wh[..., 0] * wh[..., 1]
37
37
 
38
- l, t, r, b = (bbox2[..., i] for i in range(4))
39
- polygon2 = np.stack([l, t, r, t, r, b, l, b], axis=-1).reshape(-1, 4, 2)
38
+ left, top, right, bottom = (bbox2[..., i] for i in range(4))
39
+ polygon2 = np.stack([left, top, right, top, right, bottom, left, bottom], axis=-1).reshape(-1, 4, 2)
40
40
 
41
41
  sg_polys1 = [Polygon(p) for p in polygon1]
42
42
  sg_polys2 = [Polygon(p) for p in polygon2]
@@ -388,7 +388,7 @@ class Exporter:
388
388
  """YOLOv8 ONNX export."""
389
389
  requirements = ["onnx>=1.12.0"]
390
390
  if self.args.simplify:
391
- requirements += ["onnxslim==0.1.28", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
391
+ requirements += ["onnxslim>=0.1.31", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
392
392
  check_requirements(requirements)
393
393
  import onnx # noqa
394
394
 
@@ -827,7 +827,7 @@ class Exporter:
827
827
  "onnx>=1.12.0",
828
828
  "onnx2tf>1.17.5,<=1.22.3",
829
829
  "sng4onnx>=1.0.1",
830
- "onnxslim==0.1.28",
830
+ "onnxslim>=0.1.31",
831
831
  "onnx_graphsurgeon>=0.3.26",
832
832
  "tflite_support<=0.4.3" if IS_JETSON else "tflite_support", # fix ImportError 'GLIBCXX_3.4.29'
833
833
  "flatbuffers>=23.5.26,<100", # update old 'flatbuffers' included inside tensorflow package
@@ -920,6 +920,7 @@ class Exporter:
920
920
  @try_export
921
921
  def export_tflite(self, keras_model, nms, agnostic_nms, prefix=colorstr("TensorFlow Lite:")):
922
922
  """YOLOv8 TensorFlow Lite export."""
923
+ # BUG https://github.com/ultralytics/ultralytics/issues/13436
923
924
  import tensorflow as tf # noqa
924
925
 
925
926
  LOGGER.info(f"\n{prefix} starting export with tensorflow {tf.__version__}...")
@@ -142,7 +142,6 @@ class Model(nn.Module):
142
142
  # Check if Triton Server model
143
143
  elif self.is_triton_model(model):
144
144
  self.model_name = self.model = model
145
- self.task = task
146
145
  return
147
146
 
148
147
  # Load or create new YOLO model
@@ -384,8 +384,8 @@ class TinyViTBlock(nn.Module):
384
384
  convolution.
385
385
  """
386
386
  h, w = self.input_resolution
387
- b, l, c = x.shape
388
- assert l == h * w, "input feature has wrong size"
387
+ b, hw, c = x.shape # batch, height*width, channels
388
+ assert hw == h * w, "input feature has wrong size"
389
389
  res_x = x
390
390
  if h == self.window_size and w == self.window_size:
391
391
  x = self.attn(x)
@@ -394,13 +394,13 @@ class TinyViTBlock(nn.Module):
394
394
  pad_b = (self.window_size - h % self.window_size) % self.window_size
395
395
  pad_r = (self.window_size - w % self.window_size) % self.window_size
396
396
  padding = pad_b > 0 or pad_r > 0
397
-
398
397
  if padding:
399
398
  x = F.pad(x, (0, 0, 0, pad_r, 0, pad_b))
400
399
 
401
400
  pH, pW = h + pad_b, w + pad_r
402
401
  nH = pH // self.window_size
403
402
  nW = pW // self.window_size
403
+
404
404
  # Window partition
405
405
  x = (
406
406
  x.view(b, nH, self.window_size, nW, self.window_size, c)
@@ -408,19 +408,18 @@ class TinyViTBlock(nn.Module):
408
408
  .reshape(b * nH * nW, self.window_size * self.window_size, c)
409
409
  )
410
410
  x = self.attn(x)
411
+
411
412
  # Window reverse
412
413
  x = x.view(b, nH, nW, self.window_size, self.window_size, c).transpose(2, 3).reshape(b, pH, pW, c)
413
-
414
414
  if padding:
415
415
  x = x[:, :h, :w].contiguous()
416
416
 
417
- x = x.view(b, l, c)
417
+ x = x.view(b, hw, c)
418
418
 
419
419
  x = res_x + self.drop_path(x)
420
-
421
420
  x = x.transpose(1, 2).reshape(b, c, h, w)
422
421
  x = self.local_conv(x)
423
- x = x.view(b, c, l).transpose(1, 2)
422
+ x = x.view(b, c, hw).transpose(1, 2)
424
423
 
425
424
  return x + self.drop_path(self.mlp(x))
426
425