ultralytics 8.2.93__tar.gz → 8.2.95__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 (238) hide show
  1. {ultralytics-8.2.93/ultralytics.egg-info → ultralytics-8.2.95}/PKG-INFO +29 -35
  2. {ultralytics-8.2.93 → ultralytics-8.2.95}/README.md +26 -32
  3. {ultralytics-8.2.93 → ultralytics-8.2.95}/pyproject.toml +2 -2
  4. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/__init__.py +3 -2
  5. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/test_cli.py +1 -1
  6. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/test_python.py +36 -6
  7. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/__init__.py +1 -1
  8. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/engine/trainer.py +34 -19
  9. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/predict.py +7 -5
  10. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/tasks.py +4 -0
  11. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/plotting.py +55 -1
  12. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/torch_utils.py +8 -5
  13. {ultralytics-8.2.93 → ultralytics-8.2.95/ultralytics.egg-info}/PKG-INFO +29 -35
  14. {ultralytics-8.2.93 → ultralytics-8.2.95}/LICENSE +0 -0
  15. {ultralytics-8.2.93 → ultralytics-8.2.95}/setup.cfg +0 -0
  16. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/conftest.py +0 -0
  17. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/test_cuda.py +0 -0
  18. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/test_engine.py +0 -0
  19. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/test_explorer.py +0 -0
  20. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/test_exports.py +0 -0
  21. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/test_integrations.py +0 -0
  22. {ultralytics-8.2.93 → ultralytics-8.2.95}/tests/test_solutions.py +0 -0
  23. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/assets/bus.jpg +0 -0
  24. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/assets/zidane.jpg +0 -0
  25. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/__init__.py +0 -0
  26. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  27. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  28. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  29. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  30. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  31. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  32. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  33. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  34. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  35. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  36. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  37. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  38. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  39. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco.yaml +0 -0
  40. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  41. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  42. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  43. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  44. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  45. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  46. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  47. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  48. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  49. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  50. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/signature.yaml +0 -0
  51. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  52. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/datasets/xView.yaml +0 -0
  53. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/default.yaml +0 -0
  54. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  55. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  56. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  57. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  58. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  59. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  60. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  61. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  62. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  63. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  64. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  65. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  66. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  67. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  68. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  69. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  70. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  71. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  72. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  73. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  74. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  75. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  76. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  77. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  78. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  79. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  80. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  81. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  82. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  83. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  84. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  85. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  86. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  87. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  88. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  89. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  90. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  91. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  92. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  93. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  94. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  95. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  96. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/__init__.py +0 -0
  97. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/annotator.py +0 -0
  98. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/augment.py +0 -0
  99. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/base.py +0 -0
  100. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/build.py +0 -0
  101. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/converter.py +0 -0
  102. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/dataset.py +0 -0
  103. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/explorer/__init__.py +0 -0
  104. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/explorer/explorer.py +0 -0
  105. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/explorer/gui/__init__.py +0 -0
  106. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/explorer/gui/dash.py +0 -0
  107. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/explorer/utils.py +0 -0
  108. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/loaders.py +0 -0
  109. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/split_dota.py +0 -0
  110. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/data/utils.py +0 -0
  111. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/engine/__init__.py +0 -0
  112. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/engine/exporter.py +0 -0
  113. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/engine/model.py +0 -0
  114. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/engine/predictor.py +0 -0
  115. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/engine/results.py +0 -0
  116. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/engine/tuner.py +0 -0
  117. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/engine/validator.py +0 -0
  118. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/hub/__init__.py +0 -0
  119. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/hub/auth.py +0 -0
  120. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/hub/google/__init__.py +0 -0
  121. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/hub/session.py +0 -0
  122. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/hub/utils.py +0 -0
  123. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/__init__.py +0 -0
  124. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/fastsam/__init__.py +0 -0
  125. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/fastsam/model.py +0 -0
  126. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/fastsam/predict.py +0 -0
  127. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/fastsam/utils.py +0 -0
  128. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/fastsam/val.py +0 -0
  129. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/nas/__init__.py +0 -0
  130. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/nas/model.py +0 -0
  131. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/nas/predict.py +0 -0
  132. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/nas/val.py +0 -0
  133. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/rtdetr/__init__.py +0 -0
  134. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/rtdetr/model.py +0 -0
  135. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/rtdetr/predict.py +0 -0
  136. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/rtdetr/train.py +0 -0
  137. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/rtdetr/val.py +0 -0
  138. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/__init__.py +0 -0
  139. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/amg.py +0 -0
  140. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/build.py +0 -0
  141. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/model.py +0 -0
  142. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/modules/__init__.py +0 -0
  143. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/modules/blocks.py +0 -0
  144. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/modules/decoders.py +0 -0
  145. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/modules/encoders.py +0 -0
  146. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  147. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/modules/sam.py +0 -0
  148. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  149. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/modules/transformer.py +0 -0
  150. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/sam/modules/utils.py +0 -0
  151. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/utils/__init__.py +0 -0
  152. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/utils/loss.py +0 -0
  153. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/utils/ops.py +0 -0
  154. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/__init__.py +0 -0
  155. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/classify/__init__.py +0 -0
  156. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/classify/predict.py +0 -0
  157. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/classify/train.py +0 -0
  158. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/classify/val.py +0 -0
  159. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/detect/__init__.py +0 -0
  160. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/detect/predict.py +0 -0
  161. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/detect/train.py +0 -0
  162. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/detect/val.py +0 -0
  163. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/model.py +0 -0
  164. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/obb/__init__.py +0 -0
  165. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/obb/predict.py +0 -0
  166. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/obb/train.py +0 -0
  167. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/obb/val.py +0 -0
  168. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/pose/__init__.py +0 -0
  169. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/pose/predict.py +0 -0
  170. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/pose/train.py +0 -0
  171. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/pose/val.py +0 -0
  172. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/segment/__init__.py +0 -0
  173. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/segment/predict.py +0 -0
  174. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/segment/train.py +0 -0
  175. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/segment/val.py +0 -0
  176. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/world/__init__.py +0 -0
  177. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/world/train.py +0 -0
  178. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/models/yolo/world/train_world.py +0 -0
  179. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/__init__.py +0 -0
  180. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/autobackend.py +0 -0
  181. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/modules/__init__.py +0 -0
  182. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/modules/activation.py +0 -0
  183. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/modules/block.py +0 -0
  184. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/modules/conv.py +0 -0
  185. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/modules/head.py +0 -0
  186. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/modules/transformer.py +0 -0
  187. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/nn/modules/utils.py +0 -0
  188. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/__init__.py +0 -0
  189. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/ai_gym.py +0 -0
  190. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/analytics.py +0 -0
  191. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/distance_calculation.py +0 -0
  192. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/heatmap.py +0 -0
  193. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/object_counter.py +0 -0
  194. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/parking_management.py +0 -0
  195. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/queue_management.py +0 -0
  196. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/speed_estimation.py +0 -0
  197. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/solutions/streamlit_inference.py +0 -0
  198. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/trackers/__init__.py +0 -0
  199. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/trackers/basetrack.py +0 -0
  200. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/trackers/bot_sort.py +0 -0
  201. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/trackers/byte_tracker.py +0 -0
  202. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/trackers/track.py +0 -0
  203. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/trackers/utils/__init__.py +0 -0
  204. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/trackers/utils/gmc.py +0 -0
  205. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  206. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/trackers/utils/matching.py +0 -0
  207. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/__init__.py +0 -0
  208. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/autobatch.py +0 -0
  209. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/benchmarks.py +0 -0
  210. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/__init__.py +0 -0
  211. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/base.py +0 -0
  212. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/clearml.py +0 -0
  213. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/comet.py +0 -0
  214. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/dvc.py +0 -0
  215. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/hub.py +0 -0
  216. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/mlflow.py +0 -0
  217. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/neptune.py +0 -0
  218. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/raytune.py +0 -0
  219. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  220. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/callbacks/wb.py +0 -0
  221. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/checks.py +0 -0
  222. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/dist.py +0 -0
  223. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/downloads.py +0 -0
  224. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/errors.py +0 -0
  225. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/files.py +0 -0
  226. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/instance.py +0 -0
  227. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/loss.py +0 -0
  228. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/metrics.py +0 -0
  229. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/ops.py +0 -0
  230. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/patches.py +0 -0
  231. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/tal.py +0 -0
  232. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/triton.py +0 -0
  233. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics/utils/tuner.py +0 -0
  234. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics.egg-info/SOURCES.txt +0 -0
  235. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics.egg-info/dependency_links.txt +0 -0
  236. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics.egg-info/entry_points.txt +0 -0
  237. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics.egg-info/requires.txt +0 -0
  238. {ultralytics-8.2.93 → ultralytics-8.2.95}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,14 +1,14 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.2.93
4
- Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
3
+ Version: 8.2.95
4
+ Summary: Ultralytics YOLO 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
7
7
  License: AGPL-3.0
8
8
  Project-URL: Bug Reports, https://github.com/ultralytics/ultralytics/issues
9
9
  Project-URL: Funding, https://ultralytics.com
10
10
  Project-URL: Source, https://github.com/ultralytics/ultralytics/
11
- Keywords: machine-learning,deep-learning,computer-vision,ML,DL,AI,YOLO,YOLOv3,YOLOv5,YOLOv8,HUB,Ultralytics
11
+ Keywords: machine-learning,deep-learning,computer-vision,ML,DL,AI,YOLO,YOLOv3,YOLOv5,YOLOv8,YOLOv9,YOLOv10,HUB,Ultralytics
12
12
  Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: Intended Audience :: Education
@@ -132,7 +132,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
132
132
 
133
133
  ## <div align="center">Documentation</div>
134
134
 
135
- See below for a quickstart installation and usage example, and see the [YOLOv8 Docs](https://docs.ultralytics.com) for full documentation on training, validation, prediction and deployment.
135
+ See below for a quickstart installation and usage example, and see the [YOLOv8 Docs](https://docs.ultralytics.com/) for full documentation on training, validation, prediction and deployment.
136
136
 
137
137
  <details open>
138
138
  <summary>Install</summary>
@@ -145,7 +145,7 @@ Pip install the ultralytics package including all [requirements](https://github.
145
145
  pip install ultralytics
146
146
  ```
147
147
 
148
- For alternative installation methods including [Conda](https://anaconda.org/conda-forge/ultralytics), [Docker](https://hub.docker.com/r/ultralytics/ultralytics), and Git, please refer to the [Quickstart Guide](https://docs.ultralytics.com/quickstart).
148
+ For alternative installation methods including [Conda](https://anaconda.org/conda-forge/ultralytics), [Docker](https://hub.docker.com/r/ultralytics/ultralytics), and Git, please refer to the [Quickstart Guide](https://docs.ultralytics.com/quickstart/).
149
149
 
150
150
  [![Conda Version](https://img.shields.io/conda/vn/conda-forge/ultralytics?logo=condaforge)](https://anaconda.org/conda-forge/ultralytics) [![Docker Image Version](https://img.shields.io/docker/v/ultralytics/ultralytics?sort=semver&logo=docker)](https://hub.docker.com/r/ultralytics/ultralytics)
151
151
 
@@ -162,7 +162,7 @@ YOLOv8 may be used directly in the Command Line Interface (CLI) with a `yolo` co
162
162
  yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
163
163
  ```
164
164
 
165
- `yolo` can be used for a variety of tasks and modes and accepts additional arguments, i.e. `imgsz=640`. See the YOLOv8 [CLI Docs](https://docs.ultralytics.com/usage/cli) for examples.
165
+ `yolo` can be used for a variety of tasks and modes and accepts additional arguments, i.e. `imgsz=640`. See the YOLOv8 [CLI Docs](https://docs.ultralytics.com/usage/cli/) for examples.
166
166
 
167
167
  ### Python
168
168
 
@@ -172,17 +172,28 @@ YOLOv8 may also be used directly in a Python environment, and accepts the same [
172
172
  from ultralytics import YOLO
173
173
 
174
174
  # Load a model
175
- model = YOLO("yolov8n.yaml") # build a new model from scratch
176
- model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
177
-
178
- # Use the model
179
- model.train(data="coco8.yaml", epochs=3) # train the model
180
- metrics = model.val() # evaluate model performance on the validation set
181
- results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
182
- path = model.export(format="onnx") # export the model to ONNX format
175
+ model = YOLO("yolov8n.pt")
176
+
177
+ # Train the model
178
+ train_results = model.train(
179
+ data="coco8.yaml", # path to dataset YAML
180
+ epochs=100, # number of training epochs
181
+ imgsz=640, # training image size
182
+ device="cpu", # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu
183
+ )
184
+
185
+ # Evaluate model performance on the validation set
186
+ metrics = model.val()
187
+
188
+ # Perform object detection on an image
189
+ results = model("path/to/image.jpg")
190
+ results[0].show()
191
+
192
+ # Export the model to ONNX format
193
+ path = model.export(format="onnx") # return path to exported model
183
194
  ```
184
195
 
185
- See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python) for more examples.
196
+ See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python/) for more examples.
186
197
 
187
198
  </details>
188
199
 
@@ -201,7 +212,7 @@ Ultralytics provides interactive notebooks for YOLOv8, covering training, valida
201
212
 
202
213
  ## <div align="center">Models</div>
203
214
 
204
- YOLOv8 [Detect](https://docs.ultralytics.com/tasks/detect), [Segment](https://docs.ultralytics.com/tasks/segment) and [Pose](https://docs.ultralytics.com/tasks/pose) models pretrained on the [COCO](https://docs.ultralytics.com/datasets/detect/coco) dataset are available here, as well as YOLOv8 [Classify](https://docs.ultralytics.com/tasks/classify) models pretrained on the [ImageNet](https://docs.ultralytics.com/datasets/classify/imagenet) dataset. [Track](https://docs.ultralytics.com/modes/track) mode is available for all Detect, Segment and Pose models.
215
+ YOLOv8 [Detect](https://docs.ultralytics.com/tasks/detect/), [Segment](https://docs.ultralytics.com/tasks/segment/) and [Pose](https://docs.ultralytics.com/tasks/pose/) models pretrained on the [COCO](https://docs.ultralytics.com/datasets/detect/coco/) dataset are available here, as well as YOLOv8 [Classify](https://docs.ultralytics.com/tasks/classify/) models pretrained on the [ImageNet](https://docs.ultralytics.com/datasets/classify/imagenet/) dataset. [Track](https://docs.ultralytics.com/modes/track/) mode is available for all Detect, Segment and Pose models.
205
216
 
206
217
  <img width="1024" src="https://raw.githubusercontent.com/ultralytics/assets/main/im/banner-tasks.png" alt="Ultralytics YOLO supported tasks">
207
218
 
@@ -224,23 +235,6 @@ See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examp
224
235
 
225
236
  </details>
226
237
 
227
- <details><summary>Detection (Open Image V7)</summary>
228
-
229
- See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examples with these models trained on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/), which include 600 pre-trained classes.
230
-
231
- | Model | size<br><sup>(pixels) | mAP<sup>val<br>50-95 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>A100 TensorRT<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
232
- | ----------------------------------------------------------------------------------------- | --------------------- | -------------------- | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
233
- | [YOLOv8n](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-oiv7.pt) | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
234
- | [YOLOv8s](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-oiv7.pt) | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
235
- | [YOLOv8m](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-oiv7.pt) | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
236
- | [YOLOv8l](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-oiv7.pt) | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
237
- | [YOLOv8x](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-oiv7.pt) | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
238
-
239
- - **mAP<sup>val</sup>** values are for single-model single-scale on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/) dataset. <br>Reproduce by `yolo val detect data=open-images-v7.yaml device=0`
240
- - **Speed** averaged over Open Image V7 val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val detect data=open-images-v7.yaml batch=1 device=0|cpu`
241
-
242
- </details>
243
-
244
238
  <details><summary>Segmentation (COCO)</summary>
245
239
 
246
240
  See [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) for usage examples with these models trained on [COCO-Seg](https://docs.ultralytics.com/datasets/segment/coco/), which include 80 pre-trained classes.
@@ -312,7 +306,7 @@ See [Classification Docs](https://docs.ultralytics.com/tasks/classify/) for usag
312
306
 
313
307
  ## <div align="center">Integrations</div>
314
308
 
315
- 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.
309
+ 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.
316
310
 
317
311
  <br>
318
312
  <a href="https://ultralytics.com/hub" target="_blank">
@@ -347,7 +341,7 @@ Experience seamless AI with [Ultralytics HUB](https://www.ultralytics.com/hub)
347
341
 
348
342
  ## <div align="center">Contribute</div>
349
343
 
350
- We love your input! YOLOv5 and YOLOv8 would not be possible without help from our community. Please see our [Contributing Guide](https://docs.ultralytics.com/help/contributing) to get started, and fill out our [Survey](https://www.ultralytics.com/survey?utm_source=github&utm_medium=social&utm_campaign=Survey) to send us feedback on your experience. Thank you 🙏 to all our contributors!
344
+ We love your input! YOLOv5 and YOLOv8 would not be possible without help from our community. Please see our [Contributing Guide](https://docs.ultralytics.com/help/contributing/) to get started, and fill out our [Survey](https://www.ultralytics.com/survey?utm_source=github&utm_medium=social&utm_campaign=Survey) to send us feedback on your experience. Thank you 🙏 to all our contributors!
351
345
 
352
346
  <!-- SVG image from https://opencollective.com/ultralytics/contributors.svg?width=990 -->
353
347
 
@@ -47,7 +47,7 @@ To request an Enterprise License please complete the form at [Ultralytics Licens
47
47
 
48
48
  ## <div align="center">Documentation</div>
49
49
 
50
- See below for a quickstart installation and usage example, and see the [YOLOv8 Docs](https://docs.ultralytics.com) for full documentation on training, validation, prediction and deployment.
50
+ See below for a quickstart installation and usage example, and see the [YOLOv8 Docs](https://docs.ultralytics.com/) for full documentation on training, validation, prediction and deployment.
51
51
 
52
52
  <details open>
53
53
  <summary>Install</summary>
@@ -60,7 +60,7 @@ Pip install the ultralytics package including all [requirements](https://github.
60
60
  pip install ultralytics
61
61
  ```
62
62
 
63
- For alternative installation methods including [Conda](https://anaconda.org/conda-forge/ultralytics), [Docker](https://hub.docker.com/r/ultralytics/ultralytics), and Git, please refer to the [Quickstart Guide](https://docs.ultralytics.com/quickstart).
63
+ For alternative installation methods including [Conda](https://anaconda.org/conda-forge/ultralytics), [Docker](https://hub.docker.com/r/ultralytics/ultralytics), and Git, please refer to the [Quickstart Guide](https://docs.ultralytics.com/quickstart/).
64
64
 
65
65
  [![Conda Version](https://img.shields.io/conda/vn/conda-forge/ultralytics?logo=condaforge)](https://anaconda.org/conda-forge/ultralytics) [![Docker Image Version](https://img.shields.io/docker/v/ultralytics/ultralytics?sort=semver&logo=docker)](https://hub.docker.com/r/ultralytics/ultralytics)
66
66
 
@@ -77,7 +77,7 @@ YOLOv8 may be used directly in the Command Line Interface (CLI) with a `yolo` co
77
77
  yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
78
78
  ```
79
79
 
80
- `yolo` can be used for a variety of tasks and modes and accepts additional arguments, i.e. `imgsz=640`. See the YOLOv8 [CLI Docs](https://docs.ultralytics.com/usage/cli) for examples.
80
+ `yolo` can be used for a variety of tasks and modes and accepts additional arguments, i.e. `imgsz=640`. See the YOLOv8 [CLI Docs](https://docs.ultralytics.com/usage/cli/) for examples.
81
81
 
82
82
  ### Python
83
83
 
@@ -87,17 +87,28 @@ YOLOv8 may also be used directly in a Python environment, and accepts the same [
87
87
  from ultralytics import YOLO
88
88
 
89
89
  # Load a model
90
- model = YOLO("yolov8n.yaml") # build a new model from scratch
91
- model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
92
-
93
- # Use the model
94
- model.train(data="coco8.yaml", epochs=3) # train the model
95
- metrics = model.val() # evaluate model performance on the validation set
96
- results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
97
- path = model.export(format="onnx") # export the model to ONNX format
90
+ model = YOLO("yolov8n.pt")
91
+
92
+ # Train the model
93
+ train_results = model.train(
94
+ data="coco8.yaml", # path to dataset YAML
95
+ epochs=100, # number of training epochs
96
+ imgsz=640, # training image size
97
+ device="cpu", # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu
98
+ )
99
+
100
+ # Evaluate model performance on the validation set
101
+ metrics = model.val()
102
+
103
+ # Perform object detection on an image
104
+ results = model("path/to/image.jpg")
105
+ results[0].show()
106
+
107
+ # Export the model to ONNX format
108
+ path = model.export(format="onnx") # return path to exported model
98
109
  ```
99
110
 
100
- See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python) for more examples.
111
+ See YOLOv8 [Python Docs](https://docs.ultralytics.com/usage/python/) for more examples.
101
112
 
102
113
  </details>
103
114
 
@@ -116,7 +127,7 @@ Ultralytics provides interactive notebooks for YOLOv8, covering training, valida
116
127
 
117
128
  ## <div align="center">Models</div>
118
129
 
119
- YOLOv8 [Detect](https://docs.ultralytics.com/tasks/detect), [Segment](https://docs.ultralytics.com/tasks/segment) and [Pose](https://docs.ultralytics.com/tasks/pose) models pretrained on the [COCO](https://docs.ultralytics.com/datasets/detect/coco) dataset are available here, as well as YOLOv8 [Classify](https://docs.ultralytics.com/tasks/classify) models pretrained on the [ImageNet](https://docs.ultralytics.com/datasets/classify/imagenet) dataset. [Track](https://docs.ultralytics.com/modes/track) mode is available for all Detect, Segment and Pose models.
130
+ YOLOv8 [Detect](https://docs.ultralytics.com/tasks/detect/), [Segment](https://docs.ultralytics.com/tasks/segment/) and [Pose](https://docs.ultralytics.com/tasks/pose/) models pretrained on the [COCO](https://docs.ultralytics.com/datasets/detect/coco/) dataset are available here, as well as YOLOv8 [Classify](https://docs.ultralytics.com/tasks/classify/) models pretrained on the [ImageNet](https://docs.ultralytics.com/datasets/classify/imagenet/) dataset. [Track](https://docs.ultralytics.com/modes/track/) mode is available for all Detect, Segment and Pose models.
120
131
 
121
132
  <img width="1024" src="https://raw.githubusercontent.com/ultralytics/assets/main/im/banner-tasks.png" alt="Ultralytics YOLO supported tasks">
122
133
 
@@ -139,23 +150,6 @@ See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examp
139
150
 
140
151
  </details>
141
152
 
142
- <details><summary>Detection (Open Image V7)</summary>
143
-
144
- See [Detection Docs](https://docs.ultralytics.com/tasks/detect/) for usage examples with these models trained on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/), which include 600 pre-trained classes.
145
-
146
- | Model | size<br><sup>(pixels) | mAP<sup>val<br>50-95 | Speed<br><sup>CPU ONNX<br>(ms) | Speed<br><sup>A100 TensorRT<br>(ms) | params<br><sup>(M) | FLOPs<br><sup>(B) |
147
- | ----------------------------------------------------------------------------------------- | --------------------- | -------------------- | ------------------------------ | ----------------------------------- | ------------------ | ----------------- |
148
- | [YOLOv8n](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n-oiv7.pt) | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
149
- | [YOLOv8s](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s-oiv7.pt) | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
150
- | [YOLOv8m](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8m-oiv7.pt) | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
151
- | [YOLOv8l](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8l-oiv7.pt) | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
152
- | [YOLOv8x](https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8x-oiv7.pt) | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
153
-
154
- - **mAP<sup>val</sup>** values are for single-model single-scale on [Open Image V7](https://docs.ultralytics.com/datasets/detect/open-images-v7/) dataset. <br>Reproduce by `yolo val detect data=open-images-v7.yaml device=0`
155
- - **Speed** averaged over Open Image V7 val images using an [Amazon EC2 P4d](https://aws.amazon.com/ec2/instance-types/p4/) instance. <br>Reproduce by `yolo val detect data=open-images-v7.yaml batch=1 device=0|cpu`
156
-
157
- </details>
158
-
159
153
  <details><summary>Segmentation (COCO)</summary>
160
154
 
161
155
  See [Segmentation Docs](https://docs.ultralytics.com/tasks/segment/) for usage examples with these models trained on [COCO-Seg](https://docs.ultralytics.com/datasets/segment/coco/), which include 80 pre-trained classes.
@@ -227,7 +221,7 @@ See [Classification Docs](https://docs.ultralytics.com/tasks/classify/) for usag
227
221
 
228
222
  ## <div align="center">Integrations</div>
229
223
 
230
- 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.
224
+ 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.
231
225
 
232
226
  <br>
233
227
  <a href="https://ultralytics.com/hub" target="_blank">
@@ -262,7 +256,7 @@ Experience seamless AI with [Ultralytics HUB](https://www.ultralytics.com/hub)
262
256
 
263
257
  ## <div align="center">Contribute</div>
264
258
 
265
- We love your input! YOLOv5 and YOLOv8 would not be possible without help from our community. Please see our [Contributing Guide](https://docs.ultralytics.com/help/contributing) to get started, and fill out our [Survey](https://www.ultralytics.com/survey?utm_source=github&utm_medium=social&utm_campaign=Survey) to send us feedback on your experience. Thank you 🙏 to all our contributors!
259
+ We love your input! YOLOv5 and YOLOv8 would not be possible without help from our community. Please see our [Contributing Guide](https://docs.ultralytics.com/help/contributing/) to get started, and fill out our [Survey](https://www.ultralytics.com/survey?utm_source=github&utm_medium=social&utm_campaign=Survey) to send us feedback on your experience. Thank you 🙏 to all our contributors!
266
260
 
267
261
  <!-- SVG image from https://opencollective.com/ultralytics/contributors.svg?width=990 -->
268
262
 
@@ -26,11 +26,11 @@ build-backend = "setuptools.build_meta"
26
26
  [project]
27
27
  name = "ultralytics"
28
28
  dynamic = ["version"]
29
- description = "Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification."
29
+ description = "Ultralytics YOLO for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification."
30
30
  readme = "README.md"
31
31
  requires-python = ">=3.8"
32
32
  license = { "text" = "AGPL-3.0" }
33
- keywords = ["machine-learning", "deep-learning", "computer-vision", "ML", "DL", "AI", "YOLO", "YOLOv3", "YOLOv5", "YOLOv8", "HUB", "Ultralytics"]
33
+ keywords = ["machine-learning", "deep-learning", "computer-vision", "ML", "DL", "AI", "YOLO", "YOLOv3", "YOLOv5", "YOLOv8", "YOLOv9", "YOLOv10", "HUB", "Ultralytics"]
34
34
  authors = [
35
35
  { name = "Glenn Jocher" },
36
36
  { name = "Ayush Chaurasia" },
@@ -1,13 +1,13 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- from ultralytics.utils import ASSETS, ROOT, WEIGHTS_DIR, checks, is_dir_writeable
3
+ from ultralytics.utils import ASSETS, ROOT, WEIGHTS_DIR, checks
4
4
 
5
5
  # Constants used in tests
6
6
  MODEL = WEIGHTS_DIR / "path with spaces" / "yolov8n.pt" # test spaces in path
7
7
  CFG = "yolov8n.yaml"
8
8
  SOURCE = ASSETS / "bus.jpg"
9
+ SOURCES_LIST = [ASSETS / "bus.jpg", ASSETS, ASSETS / "*", ASSETS / "**/*.jpg"]
9
10
  TMP = (ROOT / "../tests/tmp").resolve() # temp directory for test files
10
- IS_TMP_WRITEABLE = is_dir_writeable(TMP)
11
11
  CUDA_IS_AVAILABLE = checks.cuda_is_available()
12
12
  CUDA_DEVICE_COUNT = checks.cuda_device_count()
13
13
 
@@ -15,6 +15,7 @@ __all__ = (
15
15
  "MODEL",
16
16
  "CFG",
17
17
  "SOURCE",
18
+ "SOURCES_LIST",
18
19
  "TMP",
19
20
  "IS_TMP_WRITEABLE",
20
21
  "CUDA_IS_AVAILABLE",
@@ -101,7 +101,7 @@ def test_mobilesam():
101
101
  model.predict(source, points=[900, 370], labels=[1])
102
102
 
103
103
  # Predict a segment based on a box prompt
104
- model.predict(source, bboxes=[439, 437, 524, 709])
104
+ model.predict(source, bboxes=[439, 437, 524, 709], save=True)
105
105
 
106
106
  # Predict all
107
107
  # model(source)
@@ -1,6 +1,7 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
3
  import contextlib
4
+ import csv
4
5
  import urllib
5
6
  from copy import copy
6
7
  from pathlib import Path
@@ -12,7 +13,7 @@ import torch
12
13
  import yaml
13
14
  from PIL import Image
14
15
 
15
- from tests import CFG, IS_TMP_WRITEABLE, MODEL, SOURCE, TMP
16
+ from tests import CFG, MODEL, SOURCE, SOURCES_LIST, TMP
16
17
  from ultralytics import RTDETR, YOLO
17
18
  from ultralytics.cfg import MODELS, TASK2DATA, TASKS
18
19
  from ultralytics.data.build import load_inference_source
@@ -26,11 +27,14 @@ from ultralytics.utils import (
26
27
  WEIGHTS_DIR,
27
28
  WINDOWS,
28
29
  checks,
30
+ is_dir_writeable,
29
31
  is_github_action_running,
30
32
  )
31
33
  from ultralytics.utils.downloads import download
32
34
  from ultralytics.utils.torch_utils import TORCH_1_9
33
35
 
36
+ IS_TMP_WRITEABLE = is_dir_writeable(TMP) # WARNING: must be run once tests start as TMP does not exist on tests/init
37
+
34
38
 
35
39
  def test_model_forward():
36
40
  """Test the forward pass of the YOLO model."""
@@ -70,11 +74,37 @@ def test_model_profile():
70
74
  @pytest.mark.skipif(not IS_TMP_WRITEABLE, reason="directory is not writeable")
71
75
  def test_predict_txt():
72
76
  """Tests YOLO predictions with file, directory, and pattern sources listed in a text file."""
73
- txt_file = TMP / "sources.txt"
74
- with open(txt_file, "w") as f:
75
- for x in [ASSETS / "bus.jpg", ASSETS, ASSETS / "*", ASSETS / "**/*.jpg"]:
76
- f.write(f"{x}\n")
77
- _ = YOLO(MODEL)(source=txt_file, imgsz=32)
77
+ file = TMP / "sources_multi_row.txt"
78
+ with open(file, "w") as f:
79
+ for src in SOURCES_LIST:
80
+ f.write(f"{src}\n")
81
+ results = YOLO(MODEL)(source=file, imgsz=32)
82
+ assert len(results) == 7 # 1 + 2 + 2 + 2 = 7 images
83
+
84
+
85
+ @pytest.mark.skipif(True, reason="disabled for testing")
86
+ @pytest.mark.skipif(not IS_TMP_WRITEABLE, reason="directory is not writeable")
87
+ def test_predict_csv_multi_row():
88
+ """Tests YOLO predictions with sources listed in multiple rows of a CSV file."""
89
+ file = TMP / "sources_multi_row.csv"
90
+ with open(file, "w", newline="") as f:
91
+ writer = csv.writer(f)
92
+ writer.writerow(["source"])
93
+ writer.writerows([[src] for src in SOURCES_LIST])
94
+ results = YOLO(MODEL)(source=file, imgsz=32)
95
+ assert len(results) == 7 # 1 + 2 + 2 + 2 = 7 images
96
+
97
+
98
+ @pytest.mark.skipif(True, reason="disabled for testing")
99
+ @pytest.mark.skipif(not IS_TMP_WRITEABLE, reason="directory is not writeable")
100
+ def test_predict_csv_single_row():
101
+ """Tests YOLO predictions with sources listed in a single row of a CSV file."""
102
+ file = TMP / "sources_single_row.csv"
103
+ with open(file, "w", newline="") as f:
104
+ writer = csv.writer(f)
105
+ writer.writerow(SOURCES_LIST)
106
+ results = YOLO(MODEL)(source=file, imgsz=32)
107
+ assert len(results) == 7 # 1 + 2 + 2 + 2 = 7 images
78
108
 
79
109
 
80
110
  @pytest.mark.parametrize("model_name", MODELS)
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.2.93"
3
+ __version__ = "8.2.95"
4
4
 
5
5
 
6
6
  import os
@@ -28,7 +28,6 @@ from ultralytics.utils import (
28
28
  DEFAULT_CFG,
29
29
  LOCAL_RANK,
30
30
  LOGGER,
31
- MACOS,
32
31
  RANK,
33
32
  TQDM,
34
33
  __version__,
@@ -409,13 +408,17 @@ class BaseTrainer:
409
408
  break
410
409
 
411
410
  # Log
412
- mem = f"{torch.cuda.memory_reserved() / 1E9 if torch.cuda.is_available() else 0:.3g}G" # (GB)
413
- loss_len = self.tloss.shape[0] if len(self.tloss.shape) else 1
414
- losses = self.tloss if loss_len > 1 else torch.unsqueeze(self.tloss, 0)
415
411
  if RANK in {-1, 0}:
412
+ loss_length = self.tloss.shape[0] if len(self.tloss.shape) else 1
416
413
  pbar.set_description(
417
- ("%11s" * 2 + "%11.4g" * (2 + loss_len))
418
- % (f"{epoch + 1}/{self.epochs}", mem, *losses, batch["cls"].shape[0], batch["img"].shape[-1])
414
+ ("%11s" * 2 + "%11.4g" * (2 + loss_length))
415
+ % (
416
+ f"{epoch + 1}/{self.epochs}",
417
+ f"{self._get_memory():.3g}G", # (GB) GPU memory util
418
+ *(self.tloss if loss_length > 1 else torch.unsqueeze(self.tloss, 0)), # losses
419
+ batch["cls"].shape[0], # batch size, i.e. 8
420
+ batch["img"].shape[-1], # imgsz, i.e 640
421
+ )
419
422
  )
420
423
  self.run_callbacks("on_batch_end")
421
424
  if self.args.plots and ni in self.plot_idx:
@@ -453,11 +456,7 @@ class BaseTrainer:
453
456
  self.scheduler.last_epoch = self.epoch # do not move
454
457
  self.stop |= epoch >= self.epochs # stop if exceeded epochs
455
458
  self.run_callbacks("on_fit_epoch_end")
456
- gc.collect()
457
- if MACOS:
458
- torch.mps.empty_cache() # clear unified memory at end of epoch, may help MPS' management of 'unlimited' virtual memoy
459
- else:
460
- torch.cuda.empty_cache() # clear GPU memory at end of epoch, may help reduce CUDA out of memory errors
459
+ self._clear_memory()
461
460
 
462
461
  # Early Stopping
463
462
  if RANK != -1: # if DDP training
@@ -478,14 +477,29 @@ class BaseTrainer:
478
477
  if self.args.plots:
479
478
  self.plot_metrics()
480
479
  self.run_callbacks("on_train_end")
480
+ self._clear_memory()
481
+ self.run_callbacks("teardown")
482
+
483
+ def _get_memory(self):
484
+ """Get accelerator memory utilization in GB."""
485
+ if self.device.type == "mps":
486
+ memory = torch.mps.driver_allocated_memory()
487
+ elif self.device.type == "cpu":
488
+ memory = 0
489
+ else:
490
+ memory = torch.cuda.memory_reserved()
491
+ return memory / 1e9
492
+
493
+ def _clear_memory(self):
494
+ """Clear accelerator memory on different platforms."""
481
495
  gc.collect()
482
- if MACOS:
496
+ if self.device.type == "mps":
483
497
  torch.mps.empty_cache()
498
+ elif self.device.type == "cpu":
499
+ return
484
500
  else:
485
501
  torch.cuda.empty_cache()
486
502
 
487
- self.run_callbacks("teardown")
488
-
489
503
  def read_results_csv(self):
490
504
  """Read results.csv into a dict using pandas."""
491
505
  import pandas as pd # scope for faster 'import ultralytics'
@@ -654,13 +668,14 @@ class BaseTrainer:
654
668
 
655
669
  def final_eval(self):
656
670
  """Performs final evaluation and validation for object detection YOLO model."""
671
+ ckpt = {}
657
672
  for f in self.last, self.best:
658
673
  if f.exists():
659
- strip_optimizer(f) # strip optimizers
660
- if f is self.best:
661
- if self.last.is_file(): # update best.pt train_metrics from last.pt
662
- k = "train_results"
663
- torch.save({**torch.load(self.best), **{k: torch.load(self.last)[k]}}, self.best)
674
+ if f is self.last:
675
+ ckpt = strip_optimizer(f)
676
+ elif f is self.best:
677
+ k = "train_results" # update best.pt train_metrics from last.pt
678
+ strip_optimizer(f, updates={k: ckpt[k]} if k in ckpt else None)
664
679
  LOGGER.info(f"\nValidating {f}...")
665
680
  self.validator.args.plots = self.args.plots
666
681
  self.metrics = self.validator(model=f)
@@ -450,16 +450,18 @@ class Predictor(BasePredictor):
450
450
 
451
451
  results = []
452
452
  for masks, orig_img, img_path in zip([pred_masks], orig_imgs, self.batch[0]):
453
- if pred_bboxes is not None:
454
- pred_bboxes = ops.scale_boxes(img.shape[2:], pred_bboxes.float(), orig_img.shape, padding=False)
455
- cls = torch.arange(len(pred_masks), dtype=torch.int32, device=pred_masks.device)
456
- pred_bboxes = torch.cat([pred_bboxes, pred_scores[:, None], cls[:, None]], dim=-1)
457
-
458
453
  if len(masks) == 0:
459
454
  masks = None
460
455
  else:
461
456
  masks = ops.scale_masks(masks[None].float(), orig_img.shape[:2], padding=False)[0]
462
457
  masks = masks > self.model.mask_threshold # to bool
458
+ if pred_bboxes is not None:
459
+ pred_bboxes = ops.scale_boxes(img.shape[2:], pred_bboxes.float(), orig_img.shape, padding=False)
460
+ else:
461
+ pred_bboxes = batched_mask_to_box(masks)
462
+ # NOTE: SAM models do not return cls info. This `cls` here is just a placeholder for consistency.
463
+ cls = torch.arange(len(pred_masks), dtype=torch.int32, device=pred_masks.device)
464
+ pred_bboxes = torch.cat([pred_bboxes, pred_scores[:, None], cls[:, None]], dim=-1)
463
465
  results.append(Results(orig_img, path=img_path, names=names, masks=masks, boxes=pred_bboxes))
464
466
  # Reset segment-all mode.
465
467
  self.segment_all = False
@@ -759,6 +759,10 @@ class SafeClass:
759
759
  """Initialize SafeClass instance, ignoring all arguments."""
760
760
  pass
761
761
 
762
+ def __call__(self, *args, **kwargs):
763
+ """Run SafeClass instance, ignoring all arguments."""
764
+ pass
765
+
762
766
 
763
767
  class SafeUnpickler(pickle.Unpickler):
764
768
  """Custom Unpickler that replaces unknown classes with SafeClass."""
@@ -20,7 +20,7 @@ from ultralytics.utils.files import increment_path
20
20
 
21
21
  class Colors:
22
22
  """
23
- Ultralytics default color palette https://ultralytics.com/.
23
+ Ultralytics color palette https://docs.ultralytics.com/reference/utils/plotting/#ultralytics.utils.plotting.Colors.
24
24
 
25
25
  This class provides methods to work with the Ultralytics color palette, including converting hex color codes to
26
26
  RGB values.
@@ -29,6 +29,60 @@ class Colors:
29
29
  palette (list of tuple): List of RGB color values.
30
30
  n (int): The number of colors in the palette.
31
31
  pose_palette (np.ndarray): A specific color palette array with dtype np.uint8.
32
+
33
+ ## Ultralytics Color Palette
34
+
35
+ | Index | Color | HEX | RGB |
36
+ |-------|-------------------------------------------------------------------|-----------|-------------------|
37
+ | 0 | <i class="fa-solid fa-square fa-2xl" style="color: #042aff;"></i> | `#042aff` | (4, 42, 255) |
38
+ | 1 | <i class="fa-solid fa-square fa-2xl" style="color: #0bdbeb;"></i> | `#0bdbeb` | (11, 219, 235) |
39
+ | 2 | <i class="fa-solid fa-square fa-2xl" style="color: #f3f3f3;"></i> | `#f3f3f3` | (243, 243, 243) |
40
+ | 3 | <i class="fa-solid fa-square fa-2xl" style="color: #00dfb7;"></i> | `#00dfb7` | (0, 223, 183) |
41
+ | 4 | <i class="fa-solid fa-square fa-2xl" style="color: #111f68;"></i> | `#111f68` | (17, 31, 104) |
42
+ | 5 | <i class="fa-solid fa-square fa-2xl" style="color: #ff6fdd;"></i> | `#ff6fdd` | (255, 111, 221) |
43
+ | 6 | <i class="fa-solid fa-square fa-2xl" style="color: #ff444f;"></i> | `#ff444f` | (255, 68, 79) |
44
+ | 7 | <i class="fa-solid fa-square fa-2xl" style="color: #cced00;"></i> | `#cced00` | (204, 237, 0) |
45
+ | 8 | <i class="fa-solid fa-square fa-2xl" style="color: #00f344;"></i> | `#00f344` | (0, 243, 68) |
46
+ | 9 | <i class="fa-solid fa-square fa-2xl" style="color: #bd00ff;"></i> | `#bd00ff` | (189, 0, 255) |
47
+ | 10 | <i class="fa-solid fa-square fa-2xl" style="color: #00b4ff;"></i> | `#00b4ff` | (0, 180, 255) |
48
+ | 11 | <i class="fa-solid fa-square fa-2xl" style="color: #dd00ba;"></i> | `#dd00ba` | (221, 0, 186) |
49
+ | 12 | <i class="fa-solid fa-square fa-2xl" style="color: #00ffff;"></i> | `#00ffff` | (0, 255, 255) |
50
+ | 13 | <i class="fa-solid fa-square fa-2xl" style="color: #26c000;"></i> | `#26c000` | (38, 192, 0) |
51
+ | 14 | <i class="fa-solid fa-square fa-2xl" style="color: #01ffb3;"></i> | `#01ffb3` | (1, 255, 179) |
52
+ | 15 | <i class="fa-solid fa-square fa-2xl" style="color: #7d24ff;"></i> | `#7d24ff` | (125, 36, 255) |
53
+ | 16 | <i class="fa-solid fa-square fa-2xl" style="color: #7b0068;"></i> | `#7b0068` | (123, 0, 104) |
54
+ | 17 | <i class="fa-solid fa-square fa-2xl" style="color: #ff1b6c;"></i> | `#ff1b6c` | (255, 27, 108) |
55
+ | 18 | <i class="fa-solid fa-square fa-2xl" style="color: #fc6d2f;"></i> | `#fc6d2f` | (252, 109, 47) |
56
+ | 19 | <i class="fa-solid fa-square fa-2xl" style="color: #a2ff0b;"></i> | `#a2ff0b` | (162, 255, 11) |
57
+
58
+ ## Pose Color Palette
59
+
60
+ | Index | Color | HEX | RGB |
61
+ |-------|-------------------------------------------------------------------|-----------|-------------------|
62
+ | 0 | <i class="fa-solid fa-square fa-2xl" style="color: #ff8000;"></i> | `#ff8000` | (255, 128, 0) |
63
+ | 1 | <i class="fa-solid fa-square fa-2xl" style="color: #ff9933;"></i> | `#ff9933` | (255, 153, 51) |
64
+ | 2 | <i class="fa-solid fa-square fa-2xl" style="color: #ffb266;"></i> | `#ffb266` | (255, 178, 102) |
65
+ | 3 | <i class="fa-solid fa-square fa-2xl" style="color: #e6e600;"></i> | `#e6e600` | (230, 230, 0) |
66
+ | 4 | <i class="fa-solid fa-square fa-2xl" style="color: #ff99ff;"></i> | `#ff99ff` | (255, 153, 255) |
67
+ | 5 | <i class="fa-solid fa-square fa-2xl" style="color: #99ccff;"></i> | `#99ccff` | (153, 204, 255) |
68
+ | 6 | <i class="fa-solid fa-square fa-2xl" style="color: #ff66ff;"></i> | `#ff66ff` | (255, 102, 255) |
69
+ | 7 | <i class="fa-solid fa-square fa-2xl" style="color: #ff33ff;"></i> | `#ff33ff` | (255, 51, 255) |
70
+ | 8 | <i class="fa-solid fa-square fa-2xl" style="color: #66b2ff;"></i> | `#66b2ff` | (102, 178, 255) |
71
+ | 9 | <i class="fa-solid fa-square fa-2xl" style="color: #3399ff;"></i> | `#3399ff` | (51, 153, 255) |
72
+ | 10 | <i class="fa-solid fa-square fa-2xl" style="color: #ff9999;"></i> | `#ff9999` | (255, 153, 153) |
73
+ | 11 | <i class="fa-solid fa-square fa-2xl" style="color: #ff6666;"></i> | `#ff6666` | (255, 102, 102) |
74
+ | 12 | <i class="fa-solid fa-square fa-2xl" style="color: #ff3333;"></i> | `#ff3333` | (255, 51, 51) |
75
+ | 13 | <i class="fa-solid fa-square fa-2xl" style="color: #99ff99;"></i> | `#99ff99` | (153, 255, 153) |
76
+ | 14 | <i class="fa-solid fa-square fa-2xl" style="color: #66ff66;"></i> | `#66ff66` | (102, 255, 102) |
77
+ | 15 | <i class="fa-solid fa-square fa-2xl" style="color: #33ff33;"></i> | `#33ff33` | (51, 255, 51) |
78
+ | 16 | <i class="fa-solid fa-square fa-2xl" style="color: #00ff00;"></i> | `#00ff00` | (0, 255, 0) |
79
+ | 17 | <i class="fa-solid fa-square fa-2xl" style="color: #0000ff;"></i> | `#0000ff` | (0, 0, 255) |
80
+ | 18 | <i class="fa-solid fa-square fa-2xl" style="color: #ff0000;"></i> | `#ff0000` | (255, 0, 0) |
81
+ | 19 | <i class="fa-solid fa-square fa-2xl" style="color: #ffffff;"></i> | `#ffffff` | (255, 255, 255) |
82
+
83
+ !!! note "Ultralytics Brand Colors"
84
+
85
+ For Ultralytics brand colors see [https://www.ultralytics.com/brand](https://www.ultralytics.com/brand). Please use the official Ultralytics colors for all marketing materials.
32
86
  """
33
87
 
34
88
  def __init__(self):