ultralytics 8.3.165__tar.gz → 8.3.167__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. {ultralytics-8.3.165/ultralytics.egg-info → ultralytics-8.3.167}/PKG-INFO +1 -1
  2. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/__init__.py +1 -1
  3. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/Argoverse.yaml +1 -1
  4. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/DOTAv1.5.yaml +1 -1
  5. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/DOTAv1.yaml +1 -1
  6. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +1 -1
  7. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +1 -1
  8. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/ImageNet.yaml +1 -1
  9. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/Objects365.yaml +1 -1
  10. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/SKU-110K.yaml +4 -4
  11. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/VOC.yaml +3 -3
  12. ultralytics-8.3.167/ultralytics/cfg/datasets/VisDrone.yaml +87 -0
  13. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/african-wildlife.yaml +1 -1
  14. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/brain-tumor.yaml +1 -1
  15. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/carparts-seg.yaml +1 -1
  16. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco-pose.yaml +1 -1
  17. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco.yaml +1 -1
  18. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco128-seg.yaml +1 -1
  19. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco128.yaml +1 -1
  20. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8-grayscale.yaml +1 -1
  21. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8-multispectral.yaml +1 -1
  22. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8-pose.yaml +1 -1
  23. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8-seg.yaml +1 -1
  24. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/coco8.yaml +1 -1
  25. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/crack-seg.yaml +1 -1
  26. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/dog-pose.yaml +1 -1
  27. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/dota8-multispectral.yaml +1 -1
  28. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/dota8.yaml +1 -1
  29. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/hand-keypoints.yaml +1 -1
  30. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/lvis.yaml +1 -1
  31. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/medical-pills.yaml +1 -1
  32. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/open-images-v7.yaml +1 -1
  33. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/package-seg.yaml +1 -1
  34. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/signature.yaml +1 -1
  35. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/tiger-pose.yaml +1 -1
  36. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/datasets/xView.yaml +1 -1
  37. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/exporter.py +37 -18
  38. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/model.py +1 -5
  39. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/autobackend.py +7 -8
  40. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/head.py +4 -6
  41. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/metrics.py +8 -9
  42. {ultralytics-8.3.165 → ultralytics-8.3.167/ultralytics.egg-info}/PKG-INFO +1 -1
  43. ultralytics-8.3.165/ultralytics/cfg/datasets/VisDrone.yaml +0 -80
  44. {ultralytics-8.3.165 → ultralytics-8.3.167}/LICENSE +0 -0
  45. {ultralytics-8.3.165 → ultralytics-8.3.167}/README.md +0 -0
  46. {ultralytics-8.3.165 → ultralytics-8.3.167}/pyproject.toml +0 -0
  47. {ultralytics-8.3.165 → ultralytics-8.3.167}/setup.cfg +0 -0
  48. {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/__init__.py +0 -0
  49. {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/conftest.py +0 -0
  50. {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_cli.py +0 -0
  51. {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_cuda.py +0 -0
  52. {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_engine.py +0 -0
  53. {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_exports.py +0 -0
  54. {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_integrations.py +0 -0
  55. {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_python.py +0 -0
  56. {ultralytics-8.3.165 → ultralytics-8.3.167}/tests/test_solutions.py +0 -0
  57. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/assets/bus.jpg +0 -0
  58. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/assets/zidane.jpg +0 -0
  59. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/__init__.py +0 -0
  60. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/default.yaml +0 -0
  61. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  62. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  63. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  64. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  65. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  66. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  67. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  68. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  69. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  70. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  71. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  72. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  73. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  74. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  75. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  76. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  77. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  78. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  79. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  80. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  81. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  82. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  83. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  84. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  85. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  86. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  87. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  88. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  89. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  90. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  91. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  92. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  93. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  94. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  95. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  96. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  97. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  98. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  99. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  100. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  101. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  102. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  103. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  104. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  105. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  106. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  107. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  108. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  109. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  110. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  111. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  112. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  113. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  114. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  115. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  116. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  117. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  118. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/__init__.py +0 -0
  119. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/annotator.py +0 -0
  120. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/augment.py +0 -0
  121. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/base.py +0 -0
  122. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/build.py +0 -0
  123. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/converter.py +0 -0
  124. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/dataset.py +0 -0
  125. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/loaders.py +0 -0
  126. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/scripts/download_weights.sh +0 -0
  127. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/scripts/get_coco.sh +0 -0
  128. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/scripts/get_coco128.sh +0 -0
  129. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  130. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/split.py +0 -0
  131. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/split_dota.py +0 -0
  132. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/data/utils.py +0 -0
  133. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/__init__.py +0 -0
  134. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/model.py +0 -0
  135. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/predictor.py +0 -0
  136. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/results.py +0 -0
  137. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/trainer.py +0 -0
  138. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/tuner.py +0 -0
  139. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/engine/validator.py +0 -0
  140. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/__init__.py +0 -0
  141. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/auth.py +0 -0
  142. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/google/__init__.py +0 -0
  143. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/session.py +0 -0
  144. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/hub/utils.py +0 -0
  145. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/__init__.py +0 -0
  146. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/__init__.py +0 -0
  147. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/model.py +0 -0
  148. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/predict.py +0 -0
  149. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/utils.py +0 -0
  150. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/fastsam/val.py +0 -0
  151. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/nas/__init__.py +0 -0
  152. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/nas/model.py +0 -0
  153. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/nas/predict.py +0 -0
  154. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/nas/val.py +0 -0
  155. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/__init__.py +0 -0
  156. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/model.py +0 -0
  157. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/predict.py +0 -0
  158. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/train.py +0 -0
  159. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/rtdetr/val.py +0 -0
  160. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/__init__.py +0 -0
  161. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/amg.py +0 -0
  162. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/build.py +0 -0
  163. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/model.py +0 -0
  164. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/__init__.py +0 -0
  165. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/blocks.py +0 -0
  166. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/decoders.py +0 -0
  167. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/encoders.py +0 -0
  168. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  169. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/sam.py +0 -0
  170. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  171. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/transformer.py +0 -0
  172. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/modules/utils.py +0 -0
  173. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/sam/predict.py +0 -0
  174. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/utils/__init__.py +0 -0
  175. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/utils/loss.py +0 -0
  176. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/utils/ops.py +0 -0
  177. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/__init__.py +0 -0
  178. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/classify/__init__.py +0 -0
  179. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/classify/predict.py +0 -0
  180. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/classify/train.py +0 -0
  181. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/classify/val.py +0 -0
  182. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/detect/__init__.py +0 -0
  183. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/detect/predict.py +0 -0
  184. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/detect/train.py +0 -0
  185. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/detect/val.py +0 -0
  186. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/obb/__init__.py +0 -0
  187. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/obb/predict.py +0 -0
  188. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/obb/train.py +0 -0
  189. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/obb/val.py +0 -0
  190. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/pose/__init__.py +0 -0
  191. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/pose/predict.py +0 -0
  192. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/pose/train.py +0 -0
  193. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/pose/val.py +0 -0
  194. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/segment/__init__.py +0 -0
  195. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/segment/predict.py +0 -0
  196. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/segment/train.py +0 -0
  197. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/segment/val.py +0 -0
  198. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/world/__init__.py +0 -0
  199. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/world/train.py +0 -0
  200. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/world/train_world.py +0 -0
  201. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  202. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  203. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/train.py +0 -0
  204. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  205. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/models/yolo/yoloe/val.py +0 -0
  206. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/__init__.py +0 -0
  207. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/__init__.py +0 -0
  208. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/activation.py +0 -0
  209. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/block.py +0 -0
  210. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/conv.py +0 -0
  211. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/transformer.py +0 -0
  212. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/modules/utils.py +0 -0
  213. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/tasks.py +0 -0
  214. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/nn/text_model.py +0 -0
  215. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/__init__.py +0 -0
  216. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/ai_gym.py +0 -0
  217. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/analytics.py +0 -0
  218. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/config.py +0 -0
  219. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/distance_calculation.py +0 -0
  220. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/heatmap.py +0 -0
  221. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/instance_segmentation.py +0 -0
  222. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/object_blurrer.py +0 -0
  223. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/object_counter.py +0 -0
  224. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/object_cropper.py +0 -0
  225. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/parking_management.py +0 -0
  226. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/queue_management.py +0 -0
  227. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/region_counter.py +0 -0
  228. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/security_alarm.py +0 -0
  229. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/similarity_search.py +0 -0
  230. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/solutions.py +0 -0
  231. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/speed_estimation.py +0 -0
  232. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/streamlit_inference.py +0 -0
  233. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/templates/similarity-search.html +0 -0
  234. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/trackzone.py +0 -0
  235. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/solutions/vision_eye.py +0 -0
  236. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/__init__.py +0 -0
  237. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/basetrack.py +0 -0
  238. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/bot_sort.py +0 -0
  239. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/byte_tracker.py +0 -0
  240. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/track.py +0 -0
  241. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/utils/__init__.py +0 -0
  242. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/utils/gmc.py +0 -0
  243. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  244. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/trackers/utils/matching.py +0 -0
  245. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/__init__.py +0 -0
  246. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/autobatch.py +0 -0
  247. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/autodevice.py +0 -0
  248. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/benchmarks.py +0 -0
  249. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/__init__.py +0 -0
  250. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/base.py +0 -0
  251. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/clearml.py +0 -0
  252. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/comet.py +0 -0
  253. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/dvc.py +0 -0
  254. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/hub.py +0 -0
  255. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/mlflow.py +0 -0
  256. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/neptune.py +0 -0
  257. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/raytune.py +0 -0
  258. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  259. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/callbacks/wb.py +0 -0
  260. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/checks.py +0 -0
  261. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/dist.py +0 -0
  262. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/downloads.py +0 -0
  263. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/errors.py +0 -0
  264. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/export.py +0 -0
  265. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/files.py +0 -0
  266. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/instance.py +0 -0
  267. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/loss.py +0 -0
  268. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/ops.py +0 -0
  269. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/patches.py +0 -0
  270. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/plotting.py +0 -0
  271. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/tal.py +0 -0
  272. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/torch_utils.py +0 -0
  273. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/triton.py +0 -0
  274. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics/utils/tuner.py +0 -0
  275. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics.egg-info/SOURCES.txt +0 -0
  276. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics.egg-info/dependency_links.txt +0 -0
  277. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics.egg-info/entry_points.txt +0 -0
  278. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics.egg-info/requires.txt +0 -0
  279. {ultralytics-8.3.165 → ultralytics-8.3.167}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ultralytics
3
- Version: 8.3.165
3
+ Version: 8.3.167
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>
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.165"
3
+ __version__ = "8.3.167"
4
4
 
5
5
  import os
6
6
 
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── Argoverse ← downloads here (31.5 GB)
9
+ # └── Argoverse ← downloads here (31.5 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: Argoverse # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dota1.5 ← downloads here (2GB)
9
+ # └── dota1.5 ← downloads here (2GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: DOTAv1.5 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dota1 ← downloads here (2GB)
9
+ # └── dota1 ← downloads here (2GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: DOTAv1 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── GlobalWheat2020 ← downloads here (7.0 GB)
9
+ # └── GlobalWheat2020 ← downloads here (7.0 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: GlobalWheat2020 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── homeobjects-3K ← downloads here (390 MB)
9
+ # └── homeobjects-3K ← downloads here (390 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: homeobjects-3K # dataset root dir
@@ -7,7 +7,7 @@
7
7
  # parent
8
8
  # ├── ultralytics
9
9
  # └── datasets
10
- # └── imagenet ← downloads here (144 GB)
10
+ # └── imagenet ← downloads here (144 GB)
11
11
 
12
12
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
13
13
  path: imagenet # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── Objects365 ← downloads here (712 GB = 367G data + 345G zips)
9
+ # └── Objects365 ← downloads here (712 GB = 367G data + 345G zips)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: Objects365 # dataset root dir
@@ -6,13 +6,13 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── SKU-110K ← downloads here (13.6 GB)
9
+ # └── SKU-110K ← downloads here (13.6 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: SKU-110K # dataset root dir
13
- train: train.txt # train images (relative to 'path') 8219 images
14
- val: val.txt # val images (relative to 'path') 588 images
15
- test: test.txt # test images (optional) 2936 images
13
+ train: train.txt # train images (relative to 'path') 8219 images
14
+ val: val.txt # val images (relative to 'path') 588 images
15
+ test: test.txt # test images (optional) 2936 images
16
16
 
17
17
  # Classes
18
18
  names:
@@ -6,16 +6,16 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── VOC ← downloads here (2.8 GB)
9
+ # └── VOC ← downloads here (2.8 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: VOC
13
- train: # train images (relative to 'path') 16551 images
13
+ train: # train images (relative to 'path') 16551 images
14
14
  - images/train2012
15
15
  - images/train2007
16
16
  - images/val2012
17
17
  - images/val2007
18
- val: # val images (relative to 'path') 4952 images
18
+ val: # val images (relative to 'path') 4952 images
19
19
  - images/test2007
20
20
  test: # test images (optional)
21
21
  - images/test2007
@@ -0,0 +1,87 @@
1
+ # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
+
3
+ # VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
4
+ # Documentation: https://docs.ultralytics.com/datasets/detect/visdrone/
5
+ # Example usage: yolo train data=VisDrone.yaml
6
+ # parent
7
+ # ├── ultralytics
8
+ # └── datasets
9
+ # └── VisDrone ← downloads here (2.3 GB)
10
+
11
+ # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
+ path: VisDrone # dataset root dir
13
+ train: images/train # train images (relative to 'path') 6471 images
14
+ val: images/val # val images (relative to 'path') 548 images
15
+ test: images/test # test-dev images (optional) 1610 images
16
+
17
+ # Classes
18
+ names:
19
+ 0: pedestrian
20
+ 1: people
21
+ 2: bicycle
22
+ 3: car
23
+ 4: van
24
+ 5: truck
25
+ 6: tricycle
26
+ 7: awning-tricycle
27
+ 8: bus
28
+ 9: motor
29
+
30
+ # Download script/URL (optional) ---------------------------------------------------------------------------------------
31
+ download: |
32
+ import os
33
+ from pathlib import Path
34
+ import shutil
35
+
36
+ from ultralytics.utils.downloads import download
37
+
38
+
39
+ def visdrone2yolo(dir, split, source_name=None):
40
+ """Convert VisDrone annotations to YOLO format with images/{split} and labels/{split} structure."""
41
+ from PIL import Image
42
+ from tqdm import tqdm
43
+
44
+ source_dir = dir / (source_name or f"VisDrone2019-DET-{split}")
45
+ images_dir = dir / "images" / split
46
+ labels_dir = dir / "labels" / split
47
+ labels_dir.mkdir(parents=True, exist_ok=True)
48
+
49
+ # Move images to new structure
50
+ if (source_images_dir := source_dir / "images").exists():
51
+ images_dir.mkdir(parents=True, exist_ok=True)
52
+ for img in source_images_dir.glob("*.jpg"):
53
+ img.rename(images_dir / img.name)
54
+
55
+ for f in tqdm((source_dir / "annotations").glob("*.txt"), desc=f"Converting {split}"):
56
+ img_size = Image.open(images_dir / f.with_suffix(".jpg").name).size
57
+ dw, dh = 1.0 / img_size[0], 1.0 / img_size[1]
58
+ lines = []
59
+
60
+ with open(f, encoding="utf-8") as file:
61
+ for row in [x.split(",") for x in file.read().strip().splitlines()]:
62
+ if row[4] != "0": # Skip ignored regions
63
+ x, y, w, h = map(int, row[:4])
64
+ cls = int(row[5]) - 1
65
+ # Convert to YOLO format
66
+ x_center, y_center = (x + w / 2) * dw, (y + h / 2) * dh
67
+ w_norm, h_norm = w * dw, h * dh
68
+ lines.append(f"{cls} {x_center:.6f} {y_center:.6f} {w_norm:.6f} {h_norm:.6f}\n")
69
+
70
+ (labels_dir / f.name).write_text("".join(lines), encoding="utf-8")
71
+
72
+
73
+ # Download (ignores test-challenge split)
74
+ dir = Path(yaml["path"]) # dataset root dir
75
+ urls = [
76
+ "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-train.zip",
77
+ "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-val.zip",
78
+ "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip",
79
+ # "https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip",
80
+ ]
81
+ download(urls, dir=dir, curl=True, threads=4)
82
+
83
+ # Convert
84
+ splits = {"VisDrone2019-DET-train": "train", "VisDrone2019-DET-val": "val", "VisDrone2019-DET-test-dev": "test"}
85
+ for folder, split in splits.items():
86
+ visdrone2yolo(dir, split, folder) # convert VisDrone annotations to YOLO labels
87
+ shutil.rmtree(dir / folder) # cleanup original directory
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── african-wildlife ← downloads here (100 MB)
9
+ # └── african-wildlife ← downloads here (100 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: african-wildlife # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── brain-tumor ← downloads here (4.21 MB)
9
+ # └── brain-tumor ← downloads here (4.21 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: brain-tumor # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── carparts-seg ← downloads here (133 MB)
9
+ # └── carparts-seg ← downloads here (133 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: carparts-seg # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco-pose ← downloads here (20.1 GB)
9
+ # └── coco-pose ← downloads here (20.1 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco-pose # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco ← downloads here (20.1 GB)
9
+ # └── coco ← downloads here (20.1 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco128-seg ← downloads here (7 MB)
9
+ # └── coco128-seg ← downloads here (7 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco128-seg # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco128 ← downloads here (7 MB)
9
+ # └── coco128 ← downloads here (7 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco128 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8-grayscale ← downloads here (1 MB)
9
+ # └── coco8-grayscale ← downloads here (1 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8-grayscale # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8-multispectral ← downloads here (20.2 MB)
9
+ # └── coco8-multispectral ← downloads here (20.2 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8-multispectral # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8-pose ← downloads here (1 MB)
9
+ # └── coco8-pose ← downloads here (1 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8-pose # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8-seg ← downloads here (1 MB)
9
+ # └── coco8-seg ← downloads here (1 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8-seg # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── coco8 ← downloads here (1 MB)
9
+ # └── coco8 ← downloads here (1 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: coco8 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── crack-seg ← downloads here (91.6 MB)
9
+ # └── crack-seg ← downloads here (91.6 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: crack-seg # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dog-pose ← downloads here (337 MB)
9
+ # └── dog-pose ← downloads here (337 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: dog-pose # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dota8-multispectral ← downloads here (37.3MB)
9
+ # └── dota8-multispectral ← downloads here (37.3MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: dota8-multispectral # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── dota8 ← downloads here (1MB)
9
+ # └── dota8 ← downloads here (1MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: dota8 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── hand-keypoints ← downloads here (369 MB)
9
+ # └── hand-keypoints ← downloads here (369 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: hand-keypoints # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── lvis ← downloads here (20.1 GB)
9
+ # └── lvis ← downloads here (20.1 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: lvis # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── medical-pills ← downloads here (8.19 MB)
9
+ # └── medical-pills ← downloads here (8.19 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: medical-pills # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── open-images-v7 ← downloads here (561 GB)
9
+ # └── open-images-v7 ← downloads here (561 GB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: open-images-v7 # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── package-seg ← downloads here (103 MB)
9
+ # └── package-seg ← downloads here (103 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: package-seg # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── signature ← downloads here (11.3 MB)
9
+ # └── signature ← downloads here (11.3 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: signature # dataset root dir
@@ -6,7 +6,7 @@
6
6
  # parent
7
7
  # ├── ultralytics
8
8
  # └── datasets
9
- # └── tiger-pose ← downloads here (22.8 MB)
9
+ # └── tiger-pose ← downloads here (49.8 MB)
10
10
 
11
11
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
12
12
  path: tiger-pose # dataset root dir
@@ -7,7 +7,7 @@
7
7
  # parent
8
8
  # ├── ultralytics
9
9
  # └── datasets
10
- # └── xView ← downloads here (20.7 GB)
10
+ # └── xView ← downloads here (20.7 GB)
11
11
 
12
12
  # Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
13
13
  path: xView # dataset root dir
@@ -142,7 +142,7 @@ def export_formats():
142
142
  ["PaddlePaddle", "paddle", "_paddle_model", True, True, ["batch"]],
143
143
  ["MNN", "mnn", ".mnn", True, True, ["batch", "half", "int8"]],
144
144
  ["NCNN", "ncnn", "_ncnn_model", True, True, ["batch", "half"]],
145
- ["IMX", "imx", "_imx_model", True, True, ["int8", "fraction"]],
145
+ ["IMX", "imx", "_imx_model", True, True, ["int8", "fraction", "nms"]],
146
146
  ["RKNN", "rknn", "_rknn_model", False, False, ["batch", "name"]],
147
147
  ]
148
148
  return dict(zip(["Format", "Argument", "Suffix", "CPU", "GPU", "Arguments"], zip(*x)))
@@ -313,8 +313,11 @@ class Exporter:
313
313
  if not self.args.int8:
314
314
  LOGGER.warning("IMX export requires int8=True, setting int8=True.")
315
315
  self.args.int8 = True
316
- if model.task != "detect":
317
- raise ValueError("IMX export only supported for detection models.")
316
+ if not self.args.nms:
317
+ LOGGER.warning("IMX export requires nms=True, setting nms=True.")
318
+ self.args.nms = True
319
+ if model.task not in {"detect", "pose"}:
320
+ raise ValueError("IMX export only supported for detection and pose estimation models.")
318
321
  if not hasattr(model, "names"):
319
322
  model.names = default_class_names()
320
323
  model.names = check_class_names(model.names)
@@ -428,7 +431,7 @@ class Exporter:
428
431
 
429
432
  y = None
430
433
  for _ in range(2): # dry runs
431
- y = NMSModel(model, self.args)(im) if self.args.nms and not coreml else model(im)
434
+ y = NMSModel(model, self.args)(im) if self.args.nms and not (coreml or imx) else model(im)
432
435
  if self.args.half and onnx and self.device.type != "cpu":
433
436
  im, model = im.half(), model.half() # to FP16
434
437
 
@@ -1166,15 +1169,14 @@ class Exporter:
1166
1169
  )
1167
1170
  if getattr(self.model, "end2end", False):
1168
1171
  raise ValueError("IMX export is not supported for end2end models.")
1169
- check_requirements(
1170
- ("model-compression-toolkit>=2.3.0,<2.4.1", "sony-custom-layers>=0.3.0", "edge-mdt-tpc>=1.1.0")
1171
- )
1172
+ check_requirements(("model-compression-toolkit>=2.4.1", "sony-custom-layers>=0.3.0", "edge-mdt-tpc>=1.1.0"))
1172
1173
  check_requirements("imx500-converter[pt]>=3.16.1") # Separate requirements for imx500-converter
1174
+ check_requirements("mct-quantizers>=1.6.0") # Separate for compatibility with model-compression-toolkit
1173
1175
 
1174
1176
  import model_compression_toolkit as mct
1175
1177
  import onnx
1176
1178
  from edgemdt_tpc import get_target_platform_capabilities
1177
- from sony_custom_layers.pytorch import multiclass_nms
1179
+ from sony_custom_layers.pytorch import multiclass_nms_with_indices
1178
1180
 
1179
1181
  LOGGER.info(f"\n{prefix} starting export with model_compression_toolkit {mct.__version__}...")
1180
1182
 
@@ -1198,13 +1200,23 @@ class Exporter:
1198
1200
 
1199
1201
  bit_cfg = mct.core.BitWidthConfig()
1200
1202
  if "C2PSA" in self.model.__str__(): # YOLO11
1201
- layer_names = ["sub", "mul_2", "add_14", "cat_21"]
1202
- weights_memory = 2585350.2439
1203
- n_layers = 238 # 238 layers for fused YOLO11n
1203
+ if self.model.task == "detect":
1204
+ layer_names = ["sub", "mul_2", "add_14", "cat_21"]
1205
+ weights_memory = 2585350.2439
1206
+ n_layers = 238 # 238 layers for fused YOLO11n
1207
+ elif self.model.task == "pose":
1208
+ layer_names = ["sub", "mul_2", "add_14", "cat_22", "cat_23", "mul_4", "add_15"]
1209
+ weights_memory = 2437771.67
1210
+ n_layers = 257 # 257 layers for fused YOLO11n-pose
1204
1211
  else: # YOLOv8
1205
- layer_names = ["sub", "mul", "add_6", "cat_17"]
1206
- weights_memory = 2550540.8
1207
- n_layers = 168 # 168 layers for fused YOLOv8n
1212
+ if self.model.task == "detect":
1213
+ layer_names = ["sub", "mul", "add_6", "cat_17"]
1214
+ weights_memory = 2550540.8
1215
+ n_layers = 168 # 168 layers for fused YOLOv8n
1216
+ elif self.model.task == "pose":
1217
+ layer_names = ["add_7", "mul_2", "cat_19", "mul", "sub", "add_6", "cat_18"]
1218
+ weights_memory = 2482451.85
1219
+ n_layers = 187 # 187 layers for fused YOLO11n-pose
1208
1220
 
1209
1221
  # Check if the model has the expected number of layers
1210
1222
  if len(list(self.model.modules())) != n_layers:
@@ -1251,6 +1263,7 @@ class Exporter:
1251
1263
  score_threshold: float = 0.001,
1252
1264
  iou_threshold: float = 0.7,
1253
1265
  max_detections: int = 300,
1266
+ task: str = "detect",
1254
1267
  ):
1255
1268
  """
1256
1269
  Initialize NMSWrapper with PyTorch Module and NMS parameters.
@@ -1260,34 +1273,40 @@ class Exporter:
1260
1273
  score_threshold (float): Score threshold for non-maximum suppression.
1261
1274
  iou_threshold (float): Intersection over union threshold for non-maximum suppression.
1262
1275
  max_detections (int): The number of detections to return.
1276
+ task (str): Task type, either 'detect' or 'pose'.
1263
1277
  """
1264
1278
  super().__init__()
1265
1279
  self.model = model
1266
1280
  self.score_threshold = score_threshold
1267
1281
  self.iou_threshold = iou_threshold
1268
1282
  self.max_detections = max_detections
1283
+ self.task = task
1269
1284
 
1270
1285
  def forward(self, images):
1271
1286
  """Forward pass with model inference and NMS post-processing."""
1272
1287
  # model inference
1273
1288
  outputs = self.model(images)
1274
1289
 
1275
- boxes = outputs[0]
1276
- scores = outputs[1]
1277
- nms = multiclass_nms(
1290
+ boxes, scores = outputs[0], outputs[1]
1291
+ nms_outputs = multiclass_nms_with_indices(
1278
1292
  boxes=boxes,
1279
1293
  scores=scores,
1280
1294
  score_threshold=self.score_threshold,
1281
1295
  iou_threshold=self.iou_threshold,
1282
1296
  max_detections=self.max_detections,
1283
1297
  )
1284
- return nms
1298
+ if self.task == "pose":
1299
+ kpts = outputs[2] # (bs, max_detections, kpts 17*3)
1300
+ out_kpts = torch.gather(kpts, 1, nms_outputs.indices.unsqueeze(-1).expand(-1, -1, kpts.size(-1)))
1301
+ return nms_outputs.boxes, nms_outputs.scores, nms_outputs.labels, out_kpts
1302
+ return nms_outputs
1285
1303
 
1286
1304
  quant_model = NMSWrapper(
1287
1305
  model=quant_model,
1288
1306
  score_threshold=self.args.conf or 0.001,
1289
1307
  iou_threshold=self.args.iou,
1290
1308
  max_detections=self.args.max_det,
1309
+ task=self.model.task,
1291
1310
  ).to(self.device)
1292
1311
 
1293
1312
  f = Path(str(self.file).replace(self.file.suffix, "_imx_model"))
@@ -243,10 +243,6 @@ class YOLOE(Model):
243
243
  """
244
244
  super().__init__(model=model, task=task, verbose=verbose)
245
245
 
246
- # Assign default COCO class names when there are no custom names
247
- if not hasattr(self.model, "names"):
248
- self.model.names = YAML.load(ROOT / "cfg/datasets/coco8.yaml").get("names")
249
-
250
246
  @property
251
247
  def task_map(self) -> Dict[str, Dict[str, Any]]:
252
248
  """Map head to model, validator, and predictor classes."""
@@ -287,7 +283,7 @@ class YOLOE(Model):
287
283
  Examples:
288
284
  >>> model = YOLOE("yoloe-11s-seg.pt")
289
285
  >>> img = torch.rand(1, 3, 640, 640)
290
- >>> visual_features = model.model.backbone(img)
286
+ >>> visual_features = torch.rand(1, 1, 80, 80)
291
287
  >>> pe = model.get_visual_pe(img, visual_features)
292
288
  """
293
289
  assert isinstance(self.model, YOLOEModel)