dgenerate-ultralytics-headless 8.3.146__tar.gz → 8.3.147__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 (278) hide show
  1. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/PKG-INFO +1 -1
  2. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/dgenerate_ultralytics_headless.egg-info/PKG-INFO +1 -1
  3. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/tests/test_python.py +14 -7
  4. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/__init__.py +1 -1
  5. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/engine/model.py +1 -1
  6. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/classify/val.py +4 -4
  7. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/detect/val.py +2 -4
  8. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/tasks.py +3 -0
  9. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/__init__.py +1 -1
  10. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/metrics.py +27 -7
  11. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/LICENSE +0 -0
  12. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/README.md +0 -0
  13. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/dgenerate_ultralytics_headless.egg-info/SOURCES.txt +0 -0
  14. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/dgenerate_ultralytics_headless.egg-info/dependency_links.txt +0 -0
  15. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/dgenerate_ultralytics_headless.egg-info/entry_points.txt +0 -0
  16. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/dgenerate_ultralytics_headless.egg-info/requires.txt +0 -0
  17. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/dgenerate_ultralytics_headless.egg-info/top_level.txt +0 -0
  18. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/pyproject.toml +0 -0
  19. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/setup.cfg +0 -0
  20. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/tests/__init__.py +0 -0
  21. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/tests/conftest.py +0 -0
  22. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/tests/test_cli.py +0 -0
  23. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/tests/test_cuda.py +0 -0
  24. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/tests/test_engine.py +0 -0
  25. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/tests/test_exports.py +0 -0
  26. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/tests/test_integrations.py +0 -0
  27. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/tests/test_solutions.py +0 -0
  28. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/assets/bus.jpg +0 -0
  29. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/assets/zidane.jpg +0 -0
  30. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/__init__.py +0 -0
  31. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  32. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  33. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  34. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  35. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/HomeObjects-3K.yaml +0 -0
  36. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  37. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  38. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  39. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  40. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  41. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/african-wildlife.yaml +0 -0
  42. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/brain-tumor.yaml +0 -0
  43. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  44. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  45. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/coco.yaml +0 -0
  46. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  47. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  48. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/coco8-grayscale.yaml +0 -0
  49. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/coco8-multispectral.yaml +0 -0
  50. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  51. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  52. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  53. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  54. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/dog-pose.yaml +0 -0
  55. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/dota8-multispectral.yaml +0 -0
  56. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  57. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/hand-keypoints.yaml +0 -0
  58. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/lvis.yaml +0 -0
  59. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/medical-pills.yaml +0 -0
  60. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  61. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  62. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/signature.yaml +0 -0
  63. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  64. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/datasets/xView.yaml +0 -0
  65. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/default.yaml +0 -0
  66. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/11/yolo11-cls-resnet18.yaml +0 -0
  67. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/11/yolo11-cls.yaml +0 -0
  68. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/11/yolo11-obb.yaml +0 -0
  69. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/11/yolo11-pose.yaml +0 -0
  70. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/11/yolo11-seg.yaml +0 -0
  71. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/11/yolo11.yaml +0 -0
  72. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/11/yoloe-11-seg.yaml +0 -0
  73. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/11/yoloe-11.yaml +0 -0
  74. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/12/yolo12-cls.yaml +0 -0
  75. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/12/yolo12-obb.yaml +0 -0
  76. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/12/yolo12-pose.yaml +0 -0
  77. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/12/yolo12-seg.yaml +0 -0
  78. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/12/yolo12.yaml +0 -0
  79. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  80. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  81. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  82. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  83. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v10/yolov10b.yaml +0 -0
  84. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v10/yolov10l.yaml +0 -0
  85. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v10/yolov10m.yaml +0 -0
  86. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v10/yolov10n.yaml +0 -0
  87. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v10/yolov10s.yaml +0 -0
  88. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v10/yolov10x.yaml +0 -0
  89. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  90. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  91. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  92. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  93. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  94. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  95. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yoloe-v8-seg.yaml +0 -0
  96. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yoloe-v8.yaml +0 -0
  97. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  98. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  99. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  100. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  101. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  102. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  103. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  104. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  105. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  106. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  107. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  108. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  109. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  110. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  111. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  112. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8-worldv2.yaml +0 -0
  113. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  114. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v9/yolov9c-seg.yaml +0 -0
  115. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v9/yolov9c.yaml +0 -0
  116. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v9/yolov9e-seg.yaml +0 -0
  117. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v9/yolov9e.yaml +0 -0
  118. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v9/yolov9m.yaml +0 -0
  119. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v9/yolov9s.yaml +0 -0
  120. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/models/v9/yolov9t.yaml +0 -0
  121. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  122. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  123. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/__init__.py +0 -0
  124. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/annotator.py +0 -0
  125. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/augment.py +0 -0
  126. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/base.py +0 -0
  127. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/build.py +0 -0
  128. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/converter.py +0 -0
  129. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/dataset.py +0 -0
  130. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/loaders.py +0 -0
  131. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/scripts/download_weights.sh +0 -0
  132. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/scripts/get_coco.sh +0 -0
  133. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/scripts/get_coco128.sh +0 -0
  134. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/scripts/get_imagenet.sh +0 -0
  135. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/split.py +0 -0
  136. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/split_dota.py +0 -0
  137. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/data/utils.py +0 -0
  138. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/engine/__init__.py +0 -0
  139. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/engine/exporter.py +0 -0
  140. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/engine/predictor.py +0 -0
  141. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/engine/results.py +0 -0
  142. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/engine/trainer.py +0 -0
  143. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/engine/tuner.py +0 -0
  144. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/engine/validator.py +0 -0
  145. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/hub/__init__.py +0 -0
  146. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/hub/auth.py +0 -0
  147. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/hub/google/__init__.py +0 -0
  148. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/hub/session.py +0 -0
  149. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/hub/utils.py +0 -0
  150. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/__init__.py +0 -0
  151. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/fastsam/__init__.py +0 -0
  152. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/fastsam/model.py +0 -0
  153. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/fastsam/predict.py +0 -0
  154. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/fastsam/utils.py +0 -0
  155. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/fastsam/val.py +0 -0
  156. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/nas/__init__.py +0 -0
  157. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/nas/model.py +0 -0
  158. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/nas/predict.py +0 -0
  159. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/nas/val.py +0 -0
  160. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/rtdetr/__init__.py +0 -0
  161. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/rtdetr/model.py +0 -0
  162. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/rtdetr/predict.py +0 -0
  163. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/rtdetr/train.py +0 -0
  164. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/rtdetr/val.py +0 -0
  165. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/__init__.py +0 -0
  166. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/amg.py +0 -0
  167. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/build.py +0 -0
  168. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/model.py +0 -0
  169. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/modules/__init__.py +0 -0
  170. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/modules/blocks.py +0 -0
  171. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/modules/decoders.py +0 -0
  172. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/modules/encoders.py +0 -0
  173. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/modules/memory_attention.py +0 -0
  174. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/modules/sam.py +0 -0
  175. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  176. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/modules/transformer.py +0 -0
  177. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/modules/utils.py +0 -0
  178. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/sam/predict.py +0 -0
  179. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/utils/__init__.py +0 -0
  180. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/utils/loss.py +0 -0
  181. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/utils/ops.py +0 -0
  182. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/__init__.py +0 -0
  183. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/classify/__init__.py +0 -0
  184. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/classify/predict.py +0 -0
  185. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/classify/train.py +0 -0
  186. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/detect/__init__.py +0 -0
  187. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/detect/predict.py +0 -0
  188. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/detect/train.py +0 -0
  189. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/model.py +0 -0
  190. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/obb/__init__.py +0 -0
  191. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/obb/predict.py +0 -0
  192. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/obb/train.py +0 -0
  193. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/obb/val.py +0 -0
  194. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/pose/__init__.py +0 -0
  195. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/pose/predict.py +0 -0
  196. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/pose/train.py +0 -0
  197. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/pose/val.py +0 -0
  198. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/segment/__init__.py +0 -0
  199. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/segment/predict.py +0 -0
  200. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/segment/train.py +0 -0
  201. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/segment/val.py +0 -0
  202. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/world/__init__.py +0 -0
  203. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/world/train.py +0 -0
  204. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/world/train_world.py +0 -0
  205. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/yoloe/__init__.py +0 -0
  206. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/yoloe/predict.py +0 -0
  207. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/yoloe/train.py +0 -0
  208. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/yoloe/train_seg.py +0 -0
  209. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/models/yolo/yoloe/val.py +0 -0
  210. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/__init__.py +0 -0
  211. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/autobackend.py +0 -0
  212. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/modules/__init__.py +0 -0
  213. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/modules/activation.py +0 -0
  214. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/modules/block.py +0 -0
  215. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/modules/conv.py +0 -0
  216. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/modules/head.py +0 -0
  217. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/modules/transformer.py +0 -0
  218. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/modules/utils.py +0 -0
  219. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/nn/text_model.py +0 -0
  220. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/__init__.py +0 -0
  221. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/ai_gym.py +0 -0
  222. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/analytics.py +0 -0
  223. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/config.py +0 -0
  224. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/distance_calculation.py +0 -0
  225. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/heatmap.py +0 -0
  226. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/instance_segmentation.py +0 -0
  227. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/object_blurrer.py +0 -0
  228. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/object_counter.py +0 -0
  229. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/object_cropper.py +0 -0
  230. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/parking_management.py +0 -0
  231. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/queue_management.py +0 -0
  232. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/region_counter.py +0 -0
  233. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/security_alarm.py +0 -0
  234. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/similarity_search.py +0 -0
  235. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/solutions.py +0 -0
  236. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/speed_estimation.py +0 -0
  237. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/streamlit_inference.py +0 -0
  238. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/templates/similarity-search.html +0 -0
  239. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/trackzone.py +0 -0
  240. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/solutions/vision_eye.py +0 -0
  241. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/trackers/__init__.py +0 -0
  242. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/trackers/basetrack.py +0 -0
  243. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/trackers/bot_sort.py +0 -0
  244. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/trackers/byte_tracker.py +0 -0
  245. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/trackers/track.py +0 -0
  246. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/trackers/utils/__init__.py +0 -0
  247. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/trackers/utils/gmc.py +0 -0
  248. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  249. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/trackers/utils/matching.py +0 -0
  250. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/autobatch.py +0 -0
  251. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/autodevice.py +0 -0
  252. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/benchmarks.py +0 -0
  253. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/__init__.py +0 -0
  254. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/base.py +0 -0
  255. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/clearml.py +0 -0
  256. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/comet.py +0 -0
  257. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/dvc.py +0 -0
  258. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/hub.py +0 -0
  259. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/mlflow.py +0 -0
  260. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/neptune.py +0 -0
  261. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/raytune.py +0 -0
  262. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  263. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/callbacks/wb.py +0 -0
  264. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/checks.py +0 -0
  265. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/dist.py +0 -0
  266. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/downloads.py +0 -0
  267. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/errors.py +0 -0
  268. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/export.py +0 -0
  269. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/files.py +0 -0
  270. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/instance.py +0 -0
  271. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/loss.py +0 -0
  272. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/ops.py +0 -0
  273. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/patches.py +0 -0
  274. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/plotting.py +0 -0
  275. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/tal.py +0 -0
  276. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/torch_utils.py +0 -0
  277. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/triton.py +0 -0
  278. {dgenerate_ultralytics_headless-8.3.146 → dgenerate_ultralytics_headless-8.3.147}/ultralytics/utils/tuner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.146
3
+ Version: 8.3.147
4
4
  Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
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
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.146
3
+ Version: 8.3.147
4
4
  Summary: Automatically built Ultralytics package with python-opencv-headless dependency instead of python-opencv
5
5
  Author-email: Glenn Jocher <glenn.jocher@ultralytics.com>, Jing Qiu <jing.qiu@ultralytics.com>
6
6
  Maintainer-email: Ultralytics <hello@ultralytics.com>
@@ -203,13 +203,20 @@ def test_track_stream(model):
203
203
  @pytest.mark.parametrize("task,model,data", TASK_MODEL_DATA)
204
204
  def test_val(task: str, model: str, data: str) -> None:
205
205
  """Test the validation mode of the YOLO model."""
206
- metrics = YOLO(model).val(data=data, imgsz=32)
207
- metrics.to_df()
208
- metrics.to_csv()
209
- metrics.to_xml()
210
- metrics.to_html()
211
- metrics.to_json()
212
- metrics.to_sql()
206
+ for plots in [True, False]: # Test both cases i.e. plots=True and plots=False
207
+ metrics = YOLO(model).val(data=data, imgsz=32, plots=plots)
208
+ metrics.to_df()
209
+ metrics.to_csv()
210
+ metrics.to_xml()
211
+ metrics.to_html()
212
+ metrics.to_json()
213
+ metrics.to_sql()
214
+ metrics.confusion_matrix.to_df() # Tests for confusion matrix export
215
+ metrics.confusion_matrix.to_csv()
216
+ metrics.confusion_matrix.to_xml()
217
+ metrics.confusion_matrix.to_html()
218
+ metrics.confusion_matrix.to_json()
219
+ metrics.confusion_matrix.to_sql()
213
220
 
214
221
 
215
222
  def test_train_scratch():
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.146"
3
+ __version__ = "8.3.147"
4
4
 
5
5
  import os
6
6
 
@@ -754,7 +754,7 @@ class Model(torch.nn.Module):
754
754
  **kwargs (Any): Arbitrary keyword arguments for training configuration. Common options include:
755
755
  data (str): Path to dataset configuration file.
756
756
  epochs (int): Number of training epochs.
757
- batch_size (int): Batch size for training.
757
+ batch (int): Batch size for training.
758
758
  imgsz (int): Input image size.
759
759
  device (str): Device to run training on (e.g., 'cuda', 'cpu').
760
760
  workers (int): Number of worker threads for data loading.
@@ -79,7 +79,9 @@ class ClassificationValidator(BaseValidator):
79
79
  """Initialize confusion matrix, class names, and tracking containers for predictions and targets."""
80
80
  self.names = model.names
81
81
  self.nc = len(model.names)
82
- self.confusion_matrix = ConfusionMatrix(nc=self.nc, conf=self.args.conf, task="classify")
82
+ self.confusion_matrix = ConfusionMatrix(
83
+ nc=self.nc, conf=self.args.conf, names=self.names.values(), task="classify"
84
+ )
83
85
  self.pred = []
84
86
  self.targets = []
85
87
 
@@ -124,9 +126,7 @@ class ClassificationValidator(BaseValidator):
124
126
  self.confusion_matrix.process_cls_preds(self.pred, self.targets)
125
127
  if self.args.plots:
126
128
  for normalize in True, False:
127
- self.confusion_matrix.plot(
128
- save_dir=self.save_dir, names=self.names.values(), normalize=normalize, on_plot=self.on_plot
129
- )
129
+ self.confusion_matrix.plot(save_dir=self.save_dir, normalize=normalize, on_plot=self.on_plot)
130
130
  self.metrics.speed = self.speed
131
131
  self.metrics.confusion_matrix = self.confusion_matrix
132
132
  self.metrics.save_dir = self.save_dir
@@ -102,7 +102,7 @@ class DetectionValidator(BaseValidator):
102
102
  self.end2end = getattr(model, "end2end", False)
103
103
  self.metrics.names = self.names
104
104
  self.metrics.plot = self.args.plots
105
- self.confusion_matrix = ConfusionMatrix(nc=self.nc, conf=self.args.conf)
105
+ self.confusion_matrix = ConfusionMatrix(nc=self.nc, conf=self.args.conf, names=self.names.values())
106
106
  self.seen = 0
107
107
  self.jdict = []
108
108
  self.stats = dict(tp=[], conf=[], pred_cls=[], target_cls=[], target_img=[])
@@ -231,9 +231,7 @@ class DetectionValidator(BaseValidator):
231
231
  """Set final values for metrics speed and confusion matrix."""
232
232
  if self.args.plots:
233
233
  for normalize in True, False:
234
- self.confusion_matrix.plot(
235
- save_dir=self.save_dir, names=self.names.values(), normalize=normalize, on_plot=self.on_plot
236
- )
234
+ self.confusion_matrix.plot(save_dir=self.save_dir, normalize=normalize, on_plot=self.on_plot)
237
235
  self.metrics.speed = self.speed
238
236
  self.metrics.confusion_matrix = self.confusion_matrix
239
237
 
@@ -411,8 +411,11 @@ class DetectionModel(BaseModel):
411
411
  return self.forward(x)["one2many"]
412
412
  return self.forward(x)[0] if isinstance(m, (Segment, YOLOESegment, Pose, OBB)) else self.forward(x)
413
413
 
414
+ self.model.eval() # Avoid changing batch statistics until training begins
415
+ m.training = True # Setting it to True to properly return strides
414
416
  m.stride = torch.tensor([s / x.shape[-2] for x in _forward(torch.zeros(1, ch, s, s))]) # forward
415
417
  self.stride = m.stride
418
+ self.model.train() # Set model back to training(default) mode
416
419
  m.bias_init() # only run once
417
420
  else:
418
421
  self.stride = torch.Tensor([32]) # default stride for i.e. RTDETR
@@ -205,7 +205,7 @@ class DataExportMixin:
205
205
  to_sql: Export results to an SQLite database.
206
206
 
207
207
  Examples:
208
- >>> model = YOLO("yolov8n.pt")
208
+ >>> model = YOLO("yolo11n.pt")
209
209
  >>> results = model("image.jpg")
210
210
  >>> df = results.to_df()
211
211
  >>> print(df)
@@ -309,7 +309,7 @@ def smooth_bce(eps: float = 0.1) -> Tuple[float, float]:
309
309
  return 1.0 - 0.5 * eps, 0.5 * eps
310
310
 
311
311
 
312
- class ConfusionMatrix:
312
+ class ConfusionMatrix(DataExportMixin):
313
313
  """
314
314
  A class for calculating and updating a confusion matrix for object detection and classification tasks.
315
315
 
@@ -321,7 +321,7 @@ class ConfusionMatrix:
321
321
  iou_thres (float): The Intersection over Union threshold.
322
322
  """
323
323
 
324
- def __init__(self, nc: int, conf: float = 0.25, iou_thres: float = 0.45, task: str = "detect"):
324
+ def __init__(self, nc: int, conf: float = 0.25, iou_thres: float = 0.45, names: tuple = (), task: str = "detect"):
325
325
  """
326
326
  Initialize a ConfusionMatrix instance.
327
327
 
@@ -329,11 +329,13 @@ class ConfusionMatrix:
329
329
  nc (int): Number of classes.
330
330
  conf (float, optional): Confidence threshold for detections.
331
331
  iou_thres (float, optional): IoU threshold for matching detections to ground truth.
332
+ names (tuple, optional): Names of classes, used as labels on the plot.
332
333
  task (str, optional): Type of task, either 'detect' or 'classify'.
333
334
  """
334
335
  self.task = task
335
336
  self.matrix = np.zeros((nc + 1, nc + 1)) if self.task == "detect" else np.zeros((nc, nc))
336
337
  self.nc = nc # number of classes
338
+ self.names = list(names) # name of classes
337
339
  self.conf = 0.25 if conf in {None, 0.001} else conf # apply 0.25 if default val conf is passed
338
340
  self.iou_thres = iou_thres
339
341
 
@@ -426,14 +428,13 @@ class ConfusionMatrix:
426
428
 
427
429
  @TryExcept(msg="ConfusionMatrix plot failure")
428
430
  @plt_settings()
429
- def plot(self, normalize: bool = True, save_dir: str = "", names: tuple = (), on_plot=None):
431
+ def plot(self, normalize: bool = True, save_dir: str = "", on_plot=None):
430
432
  """
431
433
  Plot the confusion matrix using matplotlib and save it to a file.
432
434
 
433
435
  Args:
434
436
  normalize (bool, optional): Whether to normalize the confusion matrix.
435
437
  save_dir (str, optional): Directory where the plot will be saved.
436
- names (tuple, optional): Names of classes, used as labels on the plot.
437
438
  on_plot (callable, optional): An optional callback to pass plots path and data when they are rendered.
438
439
  """
439
440
  import matplotlib.pyplot as plt # scope for faster 'import ultralytics'
@@ -441,18 +442,17 @@ class ConfusionMatrix:
441
442
  array = self.matrix / ((self.matrix.sum(0).reshape(1, -1) + 1e-9) if normalize else 1) # normalize columns
442
443
  array[array < 0.005] = np.nan # don't annotate (would appear as 0.00)
443
444
 
444
- names = list(names)
445
445
  fig, ax = plt.subplots(1, 1, figsize=(12, 9))
446
446
  if self.nc >= 100: # downsample for large class count
447
447
  k = max(2, self.nc // 60) # step size for downsampling, always > 1
448
448
  keep_idx = slice(None, None, k) # create slice instead of array
449
- names = names[keep_idx] # slice class names
449
+ self.names = self.names[keep_idx] # slice class names
450
450
  array = array[keep_idx, :][:, keep_idx] # slice matrix rows and cols
451
451
  n = (self.nc + k - 1) // k # number of retained classes
452
452
  nc = nn = n if self.task == "classify" else n + 1 # adjust for background if needed
453
453
  else:
454
454
  nc = nn = self.nc if self.task == "classify" else self.nc + 1
455
- ticklabels = (names + ["background"]) if (0 < nn < 99) and (nn == nc) else "auto"
455
+ ticklabels = (self.names + ["background"]) if (0 < nn < 99) and (nn == nc) else "auto"
456
456
  xy_ticks = np.arange(len(ticklabels))
457
457
  tick_fontsize = max(6, 15 - 0.1 * nc) # Minimum size is 6
458
458
  label_fontsize = max(6, 12 - 0.1 * nc)
@@ -505,6 +505,26 @@ class ConfusionMatrix:
505
505
  for i in range(self.matrix.shape[0]):
506
506
  LOGGER.info(" ".join(map(str, self.matrix[i])))
507
507
 
508
+ def summary(self, **kwargs):
509
+ """Returns summary of the confusion matrix for export in different formats CSV, XML, HTML."""
510
+ import re
511
+
512
+ names = self.names if self.task == "classify" else self.names + ["background"]
513
+ clean_names, seen = [], set()
514
+ for name in names:
515
+ clean_name = re.sub(r"[^a-zA-Z0-9_]", "_", name)
516
+ original_clean = clean_name
517
+ counter = 1
518
+ while clean_name.lower() in seen:
519
+ clean_name = f"{original_clean}_{counter}"
520
+ counter += 1
521
+ seen.add(clean_name.lower())
522
+ clean_names.append(clean_name)
523
+ return [
524
+ dict({"Predicted": clean_names[i]}, **{clean_names[j]: self.matrix[i, j] for j in range(len(clean_names))})
525
+ for i in range(len(clean_names))
526
+ ]
527
+
508
528
 
509
529
  def smooth(y: np.ndarray, f: float = 0.05) -> np.ndarray:
510
530
  """Box filter of fraction f."""