ultralytics 8.3.10__tar.gz → 8.3.12__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 (246) hide show
  1. {ultralytics-8.3.10/ultralytics.egg-info → ultralytics-8.3.12}/PKG-INFO +4 -5
  2. {ultralytics-8.3.10 → ultralytics-8.3.12}/pyproject.toml +3 -4
  3. {ultralytics-8.3.10 → ultralytics-8.3.12}/tests/test_cli.py +4 -1
  4. {ultralytics-8.3.10 → ultralytics-8.3.12}/tests/test_cuda.py +13 -1
  5. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/__init__.py +1 -3
  6. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/__init__.py +2 -35
  7. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/solutions/default.yaml +1 -0
  8. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/annotator.py +1 -1
  9. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/engine/exporter.py +56 -51
  10. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/engine/model.py +33 -33
  11. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/engine/results.py +1 -1
  12. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/engine/tuner.py +3 -3
  13. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/predict.py +12 -5
  14. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/detect/predict.py +1 -1
  15. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/detect/train.py +1 -1
  16. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/detect/val.py +1 -1
  17. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/model.py +1 -1
  18. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/autobackend.py +1 -1
  19. ultralytics-8.3.12/ultralytics/solutions/analytics.py +194 -0
  20. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/benchmarks.py +2 -2
  21. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/checks.py +1 -1
  22. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/downloads.py +1 -1
  23. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/files.py +2 -2
  24. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/tuner.py +1 -1
  25. {ultralytics-8.3.10 → ultralytics-8.3.12/ultralytics.egg-info}/PKG-INFO +4 -5
  26. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics.egg-info/SOURCES.txt +0 -5
  27. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics.egg-info/requires.txt +4 -5
  28. ultralytics-8.3.10/ultralytics/data/explorer/__init__.py +0 -5
  29. ultralytics-8.3.10/ultralytics/data/explorer/explorer.py +0 -460
  30. ultralytics-8.3.10/ultralytics/data/explorer/gui/dash.py +0 -269
  31. ultralytics-8.3.10/ultralytics/data/explorer/utils.py +0 -167
  32. ultralytics-8.3.10/ultralytics/solutions/analytics.py +0 -307
  33. ultralytics-8.3.10/ultralytics/trackers/utils/__init__.py +0 -1
  34. {ultralytics-8.3.10 → ultralytics-8.3.12}/LICENSE +0 -0
  35. {ultralytics-8.3.10 → ultralytics-8.3.12}/README.md +0 -0
  36. {ultralytics-8.3.10 → ultralytics-8.3.12}/setup.cfg +0 -0
  37. {ultralytics-8.3.10 → ultralytics-8.3.12}/tests/__init__.py +0 -0
  38. {ultralytics-8.3.10 → ultralytics-8.3.12}/tests/conftest.py +0 -0
  39. {ultralytics-8.3.10 → ultralytics-8.3.12}/tests/test_engine.py +0 -0
  40. {ultralytics-8.3.10 → ultralytics-8.3.12}/tests/test_exports.py +0 -0
  41. {ultralytics-8.3.10 → ultralytics-8.3.12}/tests/test_integrations.py +0 -0
  42. {ultralytics-8.3.10 → ultralytics-8.3.12}/tests/test_python.py +0 -0
  43. {ultralytics-8.3.10 → ultralytics-8.3.12}/tests/test_solutions.py +0 -0
  44. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/assets/bus.jpg +0 -0
  45. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/assets/zidane.jpg +0 -0
  46. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  47. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  48. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  49. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  50. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  51. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  52. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  53. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  54. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  55. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  56. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  57. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  58. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  59. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/coco.yaml +0 -0
  60. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  61. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  62. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  63. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  64. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  65. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  66. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  67. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  68. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  69. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  70. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  71. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/signature.yaml +0 -0
  72. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  73. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/datasets/xView.yaml +0 -0
  74. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/default.yaml +0 -0
  75. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  76. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  77. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  78. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  79. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  80. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  81. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  82. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  83. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  84. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  85. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  86. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  87. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  88. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  89. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  90. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  91. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  92. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  93. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  94. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  95. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  96. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  97. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  98. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  99. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  100. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  101. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  102. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  103. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  104. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  105. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  106. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  107. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  108. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  109. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  110. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  111. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  112. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  113. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  114. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  115. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  116. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  117. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  118. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  119. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  120. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  121. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  122. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/__init__.py +0 -0
  123. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/augment.py +0 -0
  124. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/base.py +0 -0
  125. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/build.py +0 -0
  126. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/converter.py +0 -0
  127. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/dataset.py +0 -0
  128. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/loaders.py +0 -0
  129. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/split_dota.py +0 -0
  130. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/data/utils.py +0 -0
  131. {ultralytics-8.3.10/ultralytics/data/explorer/gui → ultralytics-8.3.12/ultralytics/engine}/__init__.py +0 -0
  132. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/engine/predictor.py +0 -0
  133. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/engine/trainer.py +0 -0
  134. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/engine/validator.py +0 -0
  135. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/hub/__init__.py +0 -0
  136. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/hub/auth.py +0 -0
  137. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/hub/google/__init__.py +0 -0
  138. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/hub/session.py +0 -0
  139. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/hub/utils.py +0 -0
  140. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/__init__.py +0 -0
  141. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/fastsam/__init__.py +0 -0
  142. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/fastsam/model.py +0 -0
  143. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/fastsam/predict.py +0 -0
  144. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/fastsam/utils.py +0 -0
  145. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/fastsam/val.py +0 -0
  146. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/nas/__init__.py +0 -0
  147. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/nas/model.py +0 -0
  148. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/nas/predict.py +0 -0
  149. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/nas/val.py +0 -0
  150. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/rtdetr/__init__.py +0 -0
  151. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/rtdetr/model.py +0 -0
  152. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/rtdetr/predict.py +0 -0
  153. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/rtdetr/train.py +0 -0
  154. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/rtdetr/val.py +0 -0
  155. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/__init__.py +0 -0
  156. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/amg.py +0 -0
  157. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/build.py +0 -0
  158. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/model.py +0 -0
  159. {ultralytics-8.3.10/ultralytics/engine → ultralytics-8.3.12/ultralytics/models/sam/modules}/__init__.py +0 -0
  160. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/modules/blocks.py +0 -0
  161. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/modules/decoders.py +0 -0
  162. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/modules/encoders.py +0 -0
  163. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  164. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/modules/sam.py +0 -0
  165. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  166. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/modules/transformer.py +0 -0
  167. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/sam/modules/utils.py +0 -0
  168. {ultralytics-8.3.10/ultralytics/models/sam/modules → ultralytics-8.3.12/ultralytics/models/utils}/__init__.py +0 -0
  169. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/utils/loss.py +0 -0
  170. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/utils/ops.py +0 -0
  171. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/__init__.py +0 -0
  172. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/classify/__init__.py +0 -0
  173. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/classify/predict.py +0 -0
  174. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/classify/train.py +0 -0
  175. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/classify/val.py +0 -0
  176. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/detect/__init__.py +0 -0
  177. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/obb/__init__.py +0 -0
  178. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/obb/predict.py +0 -0
  179. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/obb/train.py +0 -0
  180. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/obb/val.py +0 -0
  181. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/pose/__init__.py +0 -0
  182. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/pose/predict.py +0 -0
  183. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/pose/train.py +0 -0
  184. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/pose/val.py +0 -0
  185. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/segment/__init__.py +0 -0
  186. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/segment/predict.py +0 -0
  187. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/segment/train.py +0 -0
  188. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/segment/val.py +0 -0
  189. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/world/__init__.py +0 -0
  190. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/world/train.py +0 -0
  191. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/models/yolo/world/train_world.py +0 -0
  192. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/__init__.py +0 -0
  193. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/modules/__init__.py +0 -0
  194. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/modules/activation.py +0 -0
  195. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/modules/block.py +0 -0
  196. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/modules/conv.py +0 -0
  197. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/modules/head.py +0 -0
  198. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/modules/transformer.py +0 -0
  199. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/modules/utils.py +0 -0
  200. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/nn/tasks.py +0 -0
  201. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/__init__.py +0 -0
  202. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/ai_gym.py +0 -0
  203. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/distance_calculation.py +0 -0
  204. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/heatmap.py +0 -0
  205. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/object_counter.py +0 -0
  206. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/parking_management.py +0 -0
  207. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/queue_management.py +0 -0
  208. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/solutions.py +0 -0
  209. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/speed_estimation.py +0 -0
  210. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/solutions/streamlit_inference.py +0 -0
  211. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/trackers/__init__.py +0 -0
  212. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/trackers/basetrack.py +0 -0
  213. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/trackers/bot_sort.py +0 -0
  214. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/trackers/byte_tracker.py +0 -0
  215. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/trackers/track.py +0 -0
  216. {ultralytics-8.3.10/ultralytics/models → ultralytics-8.3.12/ultralytics/trackers}/utils/__init__.py +0 -0
  217. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/trackers/utils/gmc.py +0 -0
  218. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  219. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/trackers/utils/matching.py +0 -0
  220. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/__init__.py +0 -0
  221. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/autobatch.py +0 -0
  222. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/__init__.py +0 -0
  223. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/base.py +0 -0
  224. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/clearml.py +0 -0
  225. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/comet.py +0 -0
  226. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/dvc.py +0 -0
  227. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/hub.py +0 -0
  228. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/mlflow.py +0 -0
  229. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/neptune.py +0 -0
  230. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/raytune.py +0 -0
  231. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  232. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/callbacks/wb.py +0 -0
  233. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/dist.py +0 -0
  234. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/errors.py +0 -0
  235. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/instance.py +0 -0
  236. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/loss.py +0 -0
  237. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/metrics.py +0 -0
  238. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/ops.py +0 -0
  239. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/patches.py +0 -0
  240. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/plotting.py +0 -0
  241. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/tal.py +0 -0
  242. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/torch_utils.py +0 -0
  243. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics/utils/triton.py +0 -0
  244. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics.egg-info/dependency_links.txt +0 -0
  245. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics.egg-info/entry_points.txt +0 -0
  246. {ultralytics-8.3.10 → ultralytics-8.3.12}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.3.10
3
+ Version: 8.3.12
4
4
  Summary: Ultralytics YOLO for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -72,10 +72,9 @@ Requires-Dist: keras; extra == "export"
72
72
  Requires-Dist: flatbuffers<100,>=23.5.26; platform_machine == "aarch64" and extra == "export"
73
73
  Requires-Dist: numpy==1.23.5; platform_machine == "aarch64" and extra == "export"
74
74
  Requires-Dist: h5py!=3.11.0; platform_machine == "aarch64" and extra == "export"
75
- Provides-Extra: explorer
76
- Requires-Dist: lancedb; extra == "explorer"
77
- Requires-Dist: duckdb<=0.9.2; extra == "explorer"
78
- Requires-Dist: streamlit; extra == "explorer"
75
+ Provides-Extra: solutions
76
+ Requires-Dist: shapely>=2.0.0; extra == "solutions"
77
+ Requires-Dist: streamlit; extra == "solutions"
79
78
  Provides-Extra: logging
80
79
  Requires-Dist: comet; extra == "logging"
81
80
  Requires-Dist: tensorboard>=2.13.0; extra == "logging"
@@ -107,10 +107,9 @@ export = [
107
107
  "numpy==1.23.5; platform_machine == 'aarch64'", # fix error: `np.bool` was a deprecated alias for the builtin `bool` when using TensorRT models on NVIDIA Jetson
108
108
  "h5py!=3.11.0; platform_machine == 'aarch64'", # fix h5py build issues due to missing aarch64 wheels in 3.11 release
109
109
  ]
110
- explorer = [
111
- "lancedb", # vector search
112
- "duckdb<=0.9.2", # SQL queries, duckdb==0.10.0 bug https://github.com/ultralytics/ultralytics/pull/8181
113
- "streamlit", # visualizing with GUI
110
+ solutions = [
111
+ "shapely>=2.0.0", # shapely for point and polygon data matching
112
+ "streamlit", # for live inference on web browser i.e `yolo streamlit-predict`
114
113
  ]
115
114
  logging = [
116
115
  "comet", # https://docs.ultralytics.com/integrations/comet/
@@ -97,9 +97,12 @@ def test_mobilesam():
97
97
  # Source
98
98
  source = ASSETS / "zidane.jpg"
99
99
 
100
- # Predict a segment based on a point prompt
100
+ # Predict a segment based on a 1D point prompt and 1D labels.
101
101
  model.predict(source, points=[900, 370], labels=[1])
102
102
 
103
+ # Predict a segment based on 3D points and 2D labels (multiple points per object).
104
+ model.predict(source, points=[[[900, 370], [1000, 100]]], labels=[[1, 1]])
105
+
103
106
  # Predict a segment based on a box prompt
104
107
  model.predict(source, bboxes=[439, 437, 524, 709], save=True)
105
108
 
@@ -127,9 +127,21 @@ def test_predict_sam():
127
127
  # Run inference with bboxes prompt
128
128
  model(SOURCE, bboxes=[439, 437, 524, 709], device=0)
129
129
 
130
- # Run inference with points prompt
130
+ # Run inference with no labels
131
+ model(ASSETS / "zidane.jpg", points=[900, 370], device=0)
132
+
133
+ # Run inference with 1D points and 1D labels
131
134
  model(ASSETS / "zidane.jpg", points=[900, 370], labels=[1], device=0)
132
135
 
136
+ # Run inference with 2D points and 1D labels
137
+ model(ASSETS / "zidane.jpg", points=[[900, 370]], labels=[1], device=0)
138
+
139
+ # Run inference with multiple 2D points and 1D labels
140
+ model(ASSETS / "zidane.jpg", points=[[400, 370], [900, 370]], labels=[1, 1], device=0)
141
+
142
+ # Run inference with 3D points and 2D labels (multiple points per object)
143
+ model(ASSETS / "zidane.jpg", points=[[[900, 370], [1000, 100]]], labels=[[1, 1]], device=0)
144
+
133
145
  # Create SAMPredictor
134
146
  overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=1024, model=WEIGHTS_DIR / "mobile_sam.pt")
135
147
  predictor = SAMPredictor(overrides=overrides)
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.3.10"
3
+ __version__ = "8.3.12"
4
4
 
5
5
  import os
6
6
 
@@ -8,7 +8,6 @@ import os
8
8
  if not os.environ.get("OMP_NUM_THREADS"):
9
9
  os.environ["OMP_NUM_THREADS"] = "1" # default for reduced CPU utilization during training
10
10
 
11
- from ultralytics.data.explorer.explorer import Explorer
12
11
  from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
13
12
  from ultralytics.utils import ASSETS, SETTINGS
14
13
  from ultralytics.utils.checks import check_yolo as checks
@@ -27,5 +26,4 @@ __all__ = (
27
26
  "checks",
28
27
  "download",
29
28
  "settings",
30
- "Explorer",
31
29
  )
@@ -79,14 +79,11 @@ CLI_HELP_MSG = f"""
79
79
 
80
80
  4. Export a YOLO11n classification model to ONNX format at image size 224 by 128 (no TASK required)
81
81
  yolo export model=yolo11n-cls.pt format=onnx imgsz=224,128
82
-
83
- 5. Explore your datasets using semantic search and SQL with a simple GUI powered by Ultralytics Explorer API
84
- yolo explorer data=data.yaml model=yolo11n.pt
85
82
 
86
- 6. Streamlit real-time webcam inference GUI
83
+ 5. Streamlit real-time webcam inference GUI
87
84
  yolo streamlit-predict
88
85
 
89
- 7. Run special commands:
86
+ 6. Run special commands:
90
87
  yolo help
91
88
  yolo checks
92
89
  yolo version
@@ -546,35 +543,6 @@ def handle_yolo_settings(args: List[str]) -> None:
546
543
  LOGGER.warning(f"WARNING ⚠️ settings error: '{e}'. Please see {url} for help.")
547
544
 
548
545
 
549
- def handle_explorer(args: List[str]):
550
- """
551
- Launches a graphical user interface that provides tools for interacting with and analyzing datasets using the
552
- Ultralytics Explorer API. It checks for the required 'streamlit' package and informs the user that the Explorer
553
- dashboard is loading.
554
-
555
- Args:
556
- args (List[str]): A list of optional command line arguments.
557
-
558
- Examples:
559
- ```bash
560
- yolo explorer data=data.yaml model=yolo11n.pt
561
- ```
562
-
563
- Notes:
564
- - Requires 'streamlit' package version 1.29.0 or higher.
565
- - The function does not take any arguments or return any values.
566
- - It is typically called from the command line interface using the 'yolo explorer' command.
567
- """
568
- checks.check_requirements("streamlit>=1.29.0")
569
- LOGGER.info("💡 Loading Explorer dashboard...")
570
- cmd = ["streamlit", "run", ROOT / "data/explorer/gui/dash.py", "--server.maxMessageSize", "2048"]
571
- new = dict(parse_key_value_pair(a) for a in args)
572
- check_dict_alignment(base={k: DEFAULT_CFG_DICT[k] for k in ["model", "data"]}, custom=new)
573
- for k, v in new.items():
574
- cmd += [k, v]
575
- subprocess.run(cmd)
576
-
577
-
578
546
  def handle_streamlit_inference():
579
547
  """
580
548
  Open the Ultralytics Live Inference Streamlit app for real-time object detection.
@@ -715,7 +683,6 @@ def entrypoint(debug=""):
715
683
  "login": lambda: handle_yolo_hub(args),
716
684
  "logout": lambda: handle_yolo_hub(args),
717
685
  "copy-cfg": copy_default_cfg,
718
- "explorer": lambda: handle_explorer(args[1:]),
719
686
  "streamlit-predict": lambda: handle_streamlit_inference(),
720
687
  }
721
688
  full_args_dict = {**DEFAULT_CFG_DICT, **{k: None for k in TASKS}, **{k: None for k in MODES}, **special}
@@ -14,3 +14,4 @@ up_angle: 145.0 # Workouts up_angle for counts, 145.0 is default value. You can
14
14
  down_angle: 90 # Workouts down_angle for counts, 90 is default value. You can change it for different workouts, based on position of keypoints.
15
15
  kpts: [6, 8, 10] # Keypoints for workouts monitoring, i.e. If you want to consider keypoints for pushups that have mostly values of [6, 8, 10].
16
16
  colormap: # Colormap for heatmap, Only OPENCV supported colormaps can be used. By default COLORMAP_PARULA will be used for visualization.
17
+ analytics_type: "line" # Analytics type i.e "line", "pie", "bar" or "area" charts. By default, "line" analytics will be used for processing.
@@ -21,7 +21,7 @@ def auto_annotate(data, det_model="yolov8x.pt", sam_model="sam_b.pt", device="",
21
21
 
22
22
  Examples:
23
23
  >>> from ultralytics.data.annotator import auto_annotate
24
- >>> auto_annotate(data="ultralytics/assets", det_model="yolov8n.pt", sam_model="mobile_sam.pt")
24
+ >>> auto_annotate(data="ultralytics/assets", det_model="yolo11n.pt", sam_model="mobile_sam.pt")
25
25
 
26
26
  Notes:
27
27
  - The function creates a new directory for output if not specified.
@@ -1,52 +1,52 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
  """
3
- Export a YOLOv8 PyTorch model to other formats. TensorFlow exports authored by https://github.com/zldrobit.
3
+ Export a YOLO PyTorch model to other formats. TensorFlow exports authored by https://github.com/zldrobit.
4
4
 
5
5
  Format | `format=argument` | Model
6
6
  --- | --- | ---
7
- PyTorch | - | yolov8n.pt
8
- TorchScript | `torchscript` | yolov8n.torchscript
9
- ONNX | `onnx` | yolov8n.onnx
10
- OpenVINO | `openvino` | yolov8n_openvino_model/
11
- TensorRT | `engine` | yolov8n.engine
12
- CoreML | `coreml` | yolov8n.mlpackage
13
- TensorFlow SavedModel | `saved_model` | yolov8n_saved_model/
14
- TensorFlow GraphDef | `pb` | yolov8n.pb
15
- TensorFlow Lite | `tflite` | yolov8n.tflite
16
- TensorFlow Edge TPU | `edgetpu` | yolov8n_edgetpu.tflite
17
- TensorFlow.js | `tfjs` | yolov8n_web_model/
18
- PaddlePaddle | `paddle` | yolov8n_paddle_model/
19
- NCNN | `ncnn` | yolov8n_ncnn_model/
7
+ PyTorch | - | yolo11n.pt
8
+ TorchScript | `torchscript` | yolo11n.torchscript
9
+ ONNX | `onnx` | yolo11n.onnx
10
+ OpenVINO | `openvino` | yolo11n_openvino_model/
11
+ TensorRT | `engine` | yolo11n.engine
12
+ CoreML | `coreml` | yolo11n.mlpackage
13
+ TensorFlow SavedModel | `saved_model` | yolo11n_saved_model/
14
+ TensorFlow GraphDef | `pb` | yolo11n.pb
15
+ TensorFlow Lite | `tflite` | yolo11n.tflite
16
+ TensorFlow Edge TPU | `edgetpu` | yolo11n_edgetpu.tflite
17
+ TensorFlow.js | `tfjs` | yolo11n_web_model/
18
+ PaddlePaddle | `paddle` | yolo11n_paddle_model/
19
+ NCNN | `ncnn` | yolo11n_ncnn_model/
20
20
 
21
21
  Requirements:
22
22
  $ pip install "ultralytics[export]"
23
23
 
24
24
  Python:
25
25
  from ultralytics import YOLO
26
- model = YOLO('yolov8n.pt')
26
+ model = YOLO('yolo11n.pt')
27
27
  results = model.export(format='onnx')
28
28
 
29
29
  CLI:
30
- $ yolo mode=export model=yolov8n.pt format=onnx
30
+ $ yolo mode=export model=yolo11n.pt format=onnx
31
31
 
32
32
  Inference:
33
- $ yolo predict model=yolov8n.pt # PyTorch
34
- yolov8n.torchscript # TorchScript
35
- yolov8n.onnx # ONNX Runtime or OpenCV DNN with dnn=True
36
- yolov8n_openvino_model # OpenVINO
37
- yolov8n.engine # TensorRT
38
- yolov8n.mlpackage # CoreML (macOS-only)
39
- yolov8n_saved_model # TensorFlow SavedModel
40
- yolov8n.pb # TensorFlow GraphDef
41
- yolov8n.tflite # TensorFlow Lite
42
- yolov8n_edgetpu.tflite # TensorFlow Edge TPU
43
- yolov8n_paddle_model # PaddlePaddle
44
- yolov8n_ncnn_model # NCNN
33
+ $ yolo predict model=yolo11n.pt # PyTorch
34
+ yolo11n.torchscript # TorchScript
35
+ yolo11n.onnx # ONNX Runtime or OpenCV DNN with dnn=True
36
+ yolo11n_openvino_model # OpenVINO
37
+ yolo11n.engine # TensorRT
38
+ yolo11n.mlpackage # CoreML (macOS-only)
39
+ yolo11n_saved_model # TensorFlow SavedModel
40
+ yolo11n.pb # TensorFlow GraphDef
41
+ yolo11n.tflite # TensorFlow Lite
42
+ yolo11n_edgetpu.tflite # TensorFlow Edge TPU
43
+ yolo11n_paddle_model # PaddlePaddle
44
+ yolo11n_ncnn_model # NCNN
45
45
 
46
46
  TensorFlow.js:
47
47
  $ cd .. && git clone https://github.com/zldrobit/tfjs-yolov5-example.git && cd tfjs-yolov5-example
48
48
  $ npm install
49
- $ ln -s ../../yolov5/yolov8n_web_model public/yolov8n_web_model
49
+ $ ln -s ../../yolo11n_web_model public/yolo11n_web_model
50
50
  $ npm start
51
51
  """
52
52
 
@@ -124,7 +124,7 @@ def gd_outputs(gd):
124
124
 
125
125
 
126
126
  def try_export(inner_func):
127
- """YOLOv8 export decorator, i.e. @try_export."""
127
+ """YOLO export decorator, i.e. @try_export."""
128
128
  inner_args = get_default_args(inner_func)
129
129
 
130
130
  def outer_func(*args, **kwargs):
@@ -378,7 +378,7 @@ class Exporter:
378
378
 
379
379
  @try_export
380
380
  def export_torchscript(self, prefix=colorstr("TorchScript:")):
381
- """YOLOv8 TorchScript model export."""
381
+ """YOLO TorchScript model export."""
382
382
  LOGGER.info(f"\n{prefix} starting export with torch {torch.__version__}...")
383
383
  f = self.file.with_suffix(".torchscript")
384
384
 
@@ -395,7 +395,7 @@ class Exporter:
395
395
 
396
396
  @try_export
397
397
  def export_onnx(self, prefix=colorstr("ONNX:")):
398
- """YOLOv8 ONNX export."""
398
+ """YOLO ONNX export."""
399
399
  requirements = ["onnx>=1.12.0"]
400
400
  if self.args.simplify:
401
401
  requirements += ["onnxslim==0.1.34", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
@@ -452,7 +452,7 @@ class Exporter:
452
452
 
453
453
  @try_export
454
454
  def export_openvino(self, prefix=colorstr("OpenVINO:")):
455
- """YOLOv8 OpenVINO export."""
455
+ """YOLO OpenVINO export."""
456
456
  check_requirements(f'openvino{"<=2024.0.0" if ARM64 else ">=2024.0.0"}') # fix OpenVINO issue on ARM64
457
457
  import openvino as ov
458
458
 
@@ -466,7 +466,7 @@ class Exporter:
466
466
 
467
467
  def serialize(ov_model, file):
468
468
  """Set RT info, serialize and save metadata YAML."""
469
- ov_model.set_rt_info("YOLOv8", ["model_info", "model_type"])
469
+ ov_model.set_rt_info("YOLO", ["model_info", "model_type"])
470
470
  ov_model.set_rt_info(True, ["model_info", "reverse_input_channels"])
471
471
  ov_model.set_rt_info(114, ["model_info", "pad_value"])
472
472
  ov_model.set_rt_info([255.0], ["model_info", "scale_values"])
@@ -524,7 +524,7 @@ class Exporter:
524
524
 
525
525
  @try_export
526
526
  def export_paddle(self, prefix=colorstr("PaddlePaddle:")):
527
- """YOLOv8 Paddle export."""
527
+ """YOLO Paddle export."""
528
528
  check_requirements(("paddlepaddle", "x2paddle"))
529
529
  import x2paddle # noqa
530
530
  from x2paddle.convert import pytorch2paddle # noqa
@@ -538,7 +538,7 @@ class Exporter:
538
538
 
539
539
  @try_export
540
540
  def export_ncnn(self, prefix=colorstr("NCNN:")):
541
- """YOLOv8 NCNN export using PNNX https://github.com/pnnx/pnnx."""
541
+ """YOLO NCNN export using PNNX https://github.com/pnnx/pnnx."""
542
542
  check_requirements("ncnn")
543
543
  import ncnn # noqa
544
544
 
@@ -606,7 +606,7 @@ class Exporter:
606
606
 
607
607
  @try_export
608
608
  def export_coreml(self, prefix=colorstr("CoreML:")):
609
- """YOLOv8 CoreML export."""
609
+ """YOLO CoreML export."""
610
610
  mlmodel = self.args.format.lower() == "mlmodel" # legacy *.mlmodel export format requested
611
611
  check_requirements("coremltools>=6.0,<=6.2" if mlmodel else "coremltools>=7.0")
612
612
  import coremltools as ct # noqa
@@ -683,7 +683,7 @@ class Exporter:
683
683
 
684
684
  @try_export
685
685
  def export_engine(self, prefix=colorstr("TensorRT:")):
686
- """YOLOv8 TensorRT export https://developer.nvidia.com/tensorrt."""
686
+ """YOLO TensorRT export https://developer.nvidia.com/tensorrt."""
687
687
  assert self.im.device.type != "cpu", "export running on CPU but must be on GPU, i.e. use 'device=0'"
688
688
  f_onnx, _ = self.export_onnx() # run before TRT import https://github.com/ultralytics/ultralytics/issues/7016
689
689
 
@@ -817,7 +817,7 @@ class Exporter:
817
817
 
818
818
  @try_export
819
819
  def export_saved_model(self, prefix=colorstr("TensorFlow SavedModel:")):
820
- """YOLOv8 TensorFlow SavedModel export."""
820
+ """YOLO TensorFlow SavedModel export."""
821
821
  cuda = torch.cuda.is_available()
822
822
  try:
823
823
  import tensorflow as tf # noqa
@@ -869,22 +869,19 @@ class Exporter:
869
869
  np_data = None
870
870
  if self.args.int8:
871
871
  tmp_file = f / "tmp_tflite_int8_calibration_images.npy" # int8 calibration images file
872
- verbosity = "info"
873
872
  if self.args.data:
874
873
  f.mkdir()
875
874
  images = [batch["img"].permute(0, 2, 3, 1) for batch in self.get_int8_calibration_dataloader(prefix)]
876
875
  images = torch.cat(images, 0).float()
877
876
  np.save(str(tmp_file), images.numpy().astype(np.float32)) # BHWC
878
877
  np_data = [["images", tmp_file, [[[[0, 0, 0]]]], [[[[255, 255, 255]]]]]]
879
- else:
880
- verbosity = "error"
881
878
 
882
879
  LOGGER.info(f"{prefix} starting TFLite export with onnx2tf {onnx2tf.__version__}...")
883
- onnx2tf.convert(
880
+ keras_model = onnx2tf.convert(
884
881
  input_onnx_file_path=f_onnx,
885
882
  output_folder_path=str(f),
886
883
  not_use_onnxsim=True,
887
- verbosity=verbosity,
884
+ verbosity="error", # note INT8-FP16 activation bug https://github.com/ultralytics/ultralytics/issues/15873
888
885
  output_integer_quantized_tflite=self.args.int8,
889
886
  quant_type="per-tensor", # "per-tensor" (faster) or "per-channel" (slower but more accurate)
890
887
  custom_input_op_name_np_data_path=np_data,
@@ -905,11 +902,11 @@ class Exporter:
905
902
  for file in f.rglob("*.tflite"):
906
903
  f.unlink() if "quant_with_int16_act.tflite" in str(f) else self._add_tflite_metadata(file)
907
904
 
908
- return str(f), tf.saved_model.load(f, tags=None, options=None) # load saved_model as Keras model
905
+ return str(f), keras_model # or keras_model = tf.saved_model.load(f, tags=None, options=None)
909
906
 
910
907
  @try_export
911
908
  def export_pb(self, keras_model, prefix=colorstr("TensorFlow GraphDef:")):
912
- """YOLOv8 TensorFlow GraphDef *.pb export https://github.com/leimao/Frozen_Graph_TensorFlow."""
909
+ """YOLO TensorFlow GraphDef *.pb export https://github.com/leimao/Frozen_Graph_TensorFlow."""
913
910
  import tensorflow as tf # noqa
914
911
  from tensorflow.python.framework.convert_to_constants import convert_variables_to_constants_v2 # noqa
915
912
 
@@ -925,7 +922,7 @@ class Exporter:
925
922
 
926
923
  @try_export
927
924
  def export_tflite(self, keras_model, nms, agnostic_nms, prefix=colorstr("TensorFlow Lite:")):
928
- """YOLOv8 TensorFlow Lite export."""
925
+ """YOLO TensorFlow Lite export."""
929
926
  # BUG https://github.com/ultralytics/ultralytics/issues/13436
930
927
  import tensorflow as tf # noqa
931
928
 
@@ -941,7 +938,7 @@ class Exporter:
941
938
 
942
939
  @try_export
943
940
  def export_edgetpu(self, tflite_model="", prefix=colorstr("Edge TPU:")):
944
- """YOLOv8 Edge TPU export https://coral.ai/docs/edgetpu/models-intro/."""
941
+ """YOLO Edge TPU export https://coral.ai/docs/edgetpu/models-intro/."""
945
942
  LOGGER.warning(f"{prefix} WARNING ⚠️ Edge TPU known bug https://github.com/ultralytics/ultralytics/issues/1185")
946
943
 
947
944
  cmd = "edgetpu_compiler --version"
@@ -963,7 +960,15 @@ class Exporter:
963
960
  LOGGER.info(f"\n{prefix} starting export with Edge TPU compiler {ver}...")
964
961
  f = str(tflite_model).replace(".tflite", "_edgetpu.tflite") # Edge TPU model
965
962
 
966
- cmd = f'edgetpu_compiler -s -d -k 10 --out_dir "{Path(f).parent}" "{tflite_model}"'
963
+ cmd = (
964
+ "edgetpu_compiler "
965
+ f'--out_dir "{Path(f).parent}" '
966
+ "--show_operations "
967
+ "--search_delegate "
968
+ "--delegate_search_step 3 "
969
+ "--timeout_sec 180 "
970
+ f'"{tflite_model}"'
971
+ )
967
972
  LOGGER.info(f"{prefix} running '{cmd}'")
968
973
  subprocess.run(cmd, shell=True)
969
974
  self._add_tflite_metadata(f)
@@ -971,7 +976,7 @@ class Exporter:
971
976
 
972
977
  @try_export
973
978
  def export_tfjs(self, prefix=colorstr("TensorFlow.js:")):
974
- """YOLOv8 TensorFlow.js export."""
979
+ """YOLO TensorFlow.js export."""
975
980
  check_requirements("tensorflowjs")
976
981
  if ARM64:
977
982
  # Fix error: `np.object` was a deprecated alias for the builtin `object` when exporting to TF.js on ARM64
@@ -1070,7 +1075,7 @@ class Exporter:
1070
1075
  tmp_file.unlink()
1071
1076
 
1072
1077
  def _pipeline_coreml(self, model, weights_dir=None, prefix=colorstr("CoreML Pipeline:")):
1073
- """YOLOv8 CoreML pipeline."""
1078
+ """YOLO CoreML pipeline."""
1074
1079
  import coremltools as ct # noqa
1075
1080
 
1076
1081
  LOGGER.info(f"{prefix} starting pipeline with coremltools {ct.__version__}...")