ultralytics 8.1.16__tar.gz → 8.1.18__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ultralytics might be problematic. Click here for more details.

Files changed (206) hide show
  1. {ultralytics-8.1.16/ultralytics.egg-info → ultralytics-8.1.18}/PKG-INFO +2 -2
  2. {ultralytics-8.1.16 → ultralytics-8.1.18}/pyproject.toml +1 -1
  3. {ultralytics-8.1.16 → ultralytics-8.1.18}/tests/test_explorer.py +5 -0
  4. {ultralytics-8.1.16 → ultralytics-8.1.18}/tests/test_python.py +2 -0
  5. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/__init__.py +1 -1
  6. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/dataset.py +22 -15
  7. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/utils.py +2 -1
  8. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/engine/exporter.py +10 -4
  9. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/engine/model.py +4 -5
  10. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/engine/trainer.py +1 -1
  11. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/obb/train.py +1 -1
  12. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/solutions/speed_estimation.py +3 -2
  13. {ultralytics-8.1.16 → ultralytics-8.1.18/ultralytics.egg-info}/PKG-INFO +2 -2
  14. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics.egg-info/requires.txt +1 -1
  15. {ultralytics-8.1.16 → ultralytics-8.1.18}/LICENSE +0 -0
  16. {ultralytics-8.1.16 → ultralytics-8.1.18}/README.md +0 -0
  17. {ultralytics-8.1.16 → ultralytics-8.1.18}/setup.cfg +0 -0
  18. {ultralytics-8.1.16 → ultralytics-8.1.18}/tests/test_cli.py +0 -0
  19. {ultralytics-8.1.16 → ultralytics-8.1.18}/tests/test_cuda.py +0 -0
  20. {ultralytics-8.1.16 → ultralytics-8.1.18}/tests/test_engine.py +0 -0
  21. {ultralytics-8.1.16 → ultralytics-8.1.18}/tests/test_integrations.py +0 -0
  22. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/assets/bus.jpg +0 -0
  23. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/assets/zidane.jpg +0 -0
  24. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/__init__.py +0 -0
  25. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/Argoverse.yaml +0 -0
  26. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/DOTAv1.5.yaml +0 -0
  27. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/DOTAv1.yaml +0 -0
  28. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/GlobalWheat2020.yaml +0 -0
  29. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/ImageNet.yaml +0 -0
  30. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/Objects365.yaml +0 -0
  31. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/SKU-110K.yaml +0 -0
  32. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/VOC.yaml +0 -0
  33. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/VisDrone.yaml +0 -0
  34. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/carparts-seg.yaml +0 -0
  35. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/coco-pose.yaml +0 -0
  36. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/coco.yaml +0 -0
  37. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/coco128-seg.yaml +0 -0
  38. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/coco128.yaml +0 -0
  39. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/coco8-pose.yaml +0 -0
  40. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/coco8-seg.yaml +0 -0
  41. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/coco8.yaml +0 -0
  42. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/crack-seg.yaml +0 -0
  43. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/dota8.yaml +0 -0
  44. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/open-images-v7.yaml +0 -0
  45. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/package-seg.yaml +0 -0
  46. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/tiger-pose.yaml +0 -0
  47. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/datasets/xView.yaml +0 -0
  48. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/default.yaml +0 -0
  49. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/rt-detr/rtdetr-l.yaml +0 -0
  50. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/rt-detr/rtdetr-resnet101.yaml +0 -0
  51. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/rt-detr/rtdetr-resnet50.yaml +0 -0
  52. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/rt-detr/rtdetr-x.yaml +0 -0
  53. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v3/yolov3-spp.yaml +0 -0
  54. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v3/yolov3-tiny.yaml +0 -0
  55. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v3/yolov3.yaml +0 -0
  56. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v5/yolov5-p6.yaml +0 -0
  57. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v5/yolov5.yaml +0 -0
  58. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v6/yolov6.yaml +0 -0
  59. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-cls-resnet101.yaml +0 -0
  60. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-cls-resnet50.yaml +0 -0
  61. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-cls.yaml +0 -0
  62. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-ghost-p2.yaml +0 -0
  63. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-ghost-p6.yaml +0 -0
  64. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-ghost.yaml +0 -0
  65. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-obb.yaml +0 -0
  66. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-p2.yaml +0 -0
  67. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-p6.yaml +0 -0
  68. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-pose-p6.yaml +0 -0
  69. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-pose.yaml +0 -0
  70. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-rtdetr.yaml +0 -0
  71. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-seg-p6.yaml +0 -0
  72. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-seg.yaml +0 -0
  73. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-world-t2i.yaml +0 -0
  74. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8-world.yaml +0 -0
  75. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/models/v8/yolov8.yaml +0 -0
  76. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/trackers/botsort.yaml +0 -0
  77. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/cfg/trackers/bytetrack.yaml +0 -0
  78. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/__init__.py +0 -0
  79. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/annotator.py +0 -0
  80. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/augment.py +0 -0
  81. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/base.py +0 -0
  82. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/build.py +0 -0
  83. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/converter.py +0 -0
  84. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/explorer/__init__.py +0 -0
  85. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/explorer/explorer.py +0 -0
  86. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/explorer/gui/__init__.py +0 -0
  87. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/explorer/gui/dash.py +0 -0
  88. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/explorer/utils.py +0 -0
  89. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/loaders.py +0 -0
  90. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/data/split_dota.py +0 -0
  91. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/engine/__init__.py +0 -0
  92. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/engine/predictor.py +0 -0
  93. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/engine/results.py +0 -0
  94. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/engine/tuner.py +0 -0
  95. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/engine/validator.py +0 -0
  96. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/hub/__init__.py +0 -0
  97. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/hub/auth.py +0 -0
  98. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/hub/session.py +0 -0
  99. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/hub/utils.py +0 -0
  100. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/__init__.py +0 -0
  101. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/fastsam/__init__.py +0 -0
  102. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/fastsam/model.py +0 -0
  103. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/fastsam/predict.py +0 -0
  104. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/fastsam/prompt.py +0 -0
  105. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/fastsam/utils.py +0 -0
  106. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/fastsam/val.py +0 -0
  107. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/nas/__init__.py +0 -0
  108. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/nas/model.py +0 -0
  109. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/nas/predict.py +0 -0
  110. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/nas/val.py +0 -0
  111. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/rtdetr/__init__.py +0 -0
  112. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/rtdetr/model.py +0 -0
  113. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/rtdetr/predict.py +0 -0
  114. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/rtdetr/train.py +0 -0
  115. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/rtdetr/val.py +0 -0
  116. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/__init__.py +0 -0
  117. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/amg.py +0 -0
  118. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/build.py +0 -0
  119. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/model.py +0 -0
  120. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/modules/__init__.py +0 -0
  121. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/modules/decoders.py +0 -0
  122. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/modules/encoders.py +0 -0
  123. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/modules/sam.py +0 -0
  124. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/modules/tiny_encoder.py +0 -0
  125. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/modules/transformer.py +0 -0
  126. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/sam/predict.py +0 -0
  127. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/utils/__init__.py +0 -0
  128. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/utils/loss.py +0 -0
  129. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/utils/ops.py +0 -0
  130. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/__init__.py +0 -0
  131. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/classify/__init__.py +0 -0
  132. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/classify/predict.py +0 -0
  133. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/classify/train.py +0 -0
  134. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/classify/val.py +0 -0
  135. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/detect/__init__.py +0 -0
  136. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/detect/predict.py +0 -0
  137. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/detect/train.py +0 -0
  138. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/detect/val.py +0 -0
  139. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/model.py +0 -0
  140. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/obb/__init__.py +0 -0
  141. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/obb/predict.py +0 -0
  142. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/obb/val.py +0 -0
  143. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/pose/__init__.py +0 -0
  144. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/pose/predict.py +0 -0
  145. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/pose/train.py +0 -0
  146. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/pose/val.py +0 -0
  147. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/segment/__init__.py +0 -0
  148. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/segment/predict.py +0 -0
  149. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/segment/train.py +0 -0
  150. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/models/yolo/segment/val.py +0 -0
  151. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/nn/__init__.py +0 -0
  152. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/nn/autobackend.py +0 -0
  153. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/nn/modules/__init__.py +0 -0
  154. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/nn/modules/block.py +0 -0
  155. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/nn/modules/conv.py +0 -0
  156. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/nn/modules/head.py +0 -0
  157. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/nn/modules/transformer.py +0 -0
  158. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/nn/modules/utils.py +0 -0
  159. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/nn/tasks.py +0 -0
  160. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/solutions/__init__.py +0 -0
  161. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/solutions/ai_gym.py +0 -0
  162. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/solutions/distance_calculation.py +0 -0
  163. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/solutions/heatmap.py +0 -0
  164. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/solutions/object_counter.py +0 -0
  165. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/trackers/__init__.py +0 -0
  166. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/trackers/basetrack.py +0 -0
  167. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/trackers/bot_sort.py +0 -0
  168. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/trackers/byte_tracker.py +0 -0
  169. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/trackers/track.py +0 -0
  170. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/trackers/utils/__init__.py +0 -0
  171. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/trackers/utils/gmc.py +0 -0
  172. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/trackers/utils/kalman_filter.py +0 -0
  173. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/trackers/utils/matching.py +0 -0
  174. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/__init__.py +0 -0
  175. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/autobatch.py +0 -0
  176. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/benchmarks.py +0 -0
  177. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/__init__.py +0 -0
  178. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/base.py +0 -0
  179. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/clearml.py +0 -0
  180. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/comet.py +0 -0
  181. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/dvc.py +0 -0
  182. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/hub.py +0 -0
  183. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/mlflow.py +0 -0
  184. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/neptune.py +0 -0
  185. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/raytune.py +0 -0
  186. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/tensorboard.py +0 -0
  187. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/callbacks/wb.py +0 -0
  188. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/checks.py +0 -0
  189. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/dist.py +0 -0
  190. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/downloads.py +0 -0
  191. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/errors.py +0 -0
  192. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/files.py +0 -0
  193. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/instance.py +0 -0
  194. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/loss.py +0 -0
  195. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/metrics.py +0 -0
  196. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/ops.py +0 -0
  197. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/patches.py +0 -0
  198. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/plotting.py +0 -0
  199. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/tal.py +0 -0
  200. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/torch_utils.py +0 -0
  201. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/triton.py +0 -0
  202. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics/utils/tuner.py +0 -0
  203. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics.egg-info/SOURCES.txt +0 -0
  204. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics.egg-info/dependency_links.txt +0 -0
  205. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics.egg-info/entry_points.txt +0 -0
  206. {ultralytics-8.1.16 → ultralytics-8.1.18}/ultralytics.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.16
3
+ Version: 8.1.18
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -55,7 +55,7 @@ Requires-Dist: mkdocs-material>=9.5.9; extra == "dev"
55
55
  Requires-Dist: mkdocstrings[python]; extra == "dev"
56
56
  Requires-Dist: mkdocs-jupyter; extra == "dev"
57
57
  Requires-Dist: mkdocs-redirects; extra == "dev"
58
- Requires-Dist: mkdocs-ultralytics-plugin>=0.0.43; extra == "dev"
58
+ Requires-Dist: mkdocs-ultralytics-plugin>=0.0.44; extra == "dev"
59
59
  Provides-Extra: export
60
60
  Requires-Dist: onnx>=1.12.0; extra == "export"
61
61
  Requires-Dist: coremltools>=7.0; (platform_system != "Windows" and python_version <= "3.11") and extra == "export"
@@ -93,7 +93,7 @@ dev = [
93
93
  "mkdocstrings[python]",
94
94
  "mkdocs-jupyter", # for notebooks
95
95
  "mkdocs-redirects", # for 301 redirects
96
- "mkdocs-ultralytics-plugin>=0.0.43", # for meta descriptions and images, dates and authors
96
+ "mkdocs-ultralytics-plugin>=0.0.44", # for meta descriptions and images, dates and authors
97
97
  ]
98
98
  export = [
99
99
  "onnx>=1.12.0", # ONNX export
@@ -1,11 +1,13 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
3
  import PIL
4
+ import pytest
4
5
 
5
6
  from ultralytics import Explorer
6
7
  from ultralytics.utils import ASSETS
7
8
 
8
9
 
10
+ @pytest.mark.slow
9
11
  def test_similarity():
10
12
  """Test similarity calculations and SQL queries for correctness and response length."""
11
13
  exp = Explorer()
@@ -22,6 +24,7 @@ def test_similarity():
22
24
  assert len(sql) > 0
23
25
 
24
26
 
27
+ @pytest.mark.slow
25
28
  def test_det():
26
29
  """Test detection functionalities and ensure the embedding table has bounding boxes."""
27
30
  exp = Explorer(data="coco8.yaml", model="yolov8n.pt")
@@ -34,6 +37,7 @@ def test_det():
34
37
  assert isinstance(similar, PIL.Image.Image)
35
38
 
36
39
 
40
+ @pytest.mark.slow
37
41
  def test_seg():
38
42
  """Test segmentation functionalities and verify the embedding table includes masks."""
39
43
  exp = Explorer(data="coco8-seg.yaml", model="yolov8n-seg.pt")
@@ -45,6 +49,7 @@ def test_seg():
45
49
  assert isinstance(similar, PIL.Image.Image)
46
50
 
47
51
 
52
+ @pytest.mark.slow
48
53
  def test_pose():
49
54
  """Test pose estimation functionalities and check the embedding table for keypoints."""
50
55
  exp = Explorer(data="coco8-pose.yaml", model="yolov8n-pose.pt")
@@ -555,6 +555,7 @@ def test_hub():
555
555
 
556
556
  @pytest.fixture
557
557
  def image():
558
+ """Loads an image from a predefined source using OpenCV."""
558
559
  return cv2.imread(str(SOURCE))
559
560
 
560
561
 
@@ -568,6 +569,7 @@ def image():
568
569
  ],
569
570
  )
570
571
  def test_classify_transforms_train(image, auto_augment, erasing, force_color_jitter):
572
+ """Tests classification transforms during training with various augmentation settings."""
571
573
  import torchvision.transforms as T
572
574
 
573
575
  from ultralytics.data.augment import classify_augmentations
@@ -1,6 +1,6 @@
1
1
  # Ultralytics YOLO 🚀, AGPL-3.0 license
2
2
 
3
- __version__ = "8.1.16"
3
+ __version__ = "8.1.18"
4
4
 
5
5
  from ultralytics.data.explorer.explorer import Explorer
6
6
  from ultralytics.models import RTDETR, SAM, YOLO, YOLOWorld
@@ -226,35 +226,42 @@ class YOLODataset(BaseDataset):
226
226
  # Classification dataloaders -------------------------------------------------------------------------------------------
227
227
  class ClassificationDataset(torchvision.datasets.ImageFolder):
228
228
  """
229
- YOLO Classification Dataset.
229
+ Extends torchvision ImageFolder to support YOLO classification tasks, offering functionalities like image
230
+ augmentation, caching, and verification. It's designed to efficiently handle large datasets for training deep
231
+ learning models, with optional image transformations and caching mechanisms to speed up training.
230
232
 
231
- Args:
232
- root (str): Dataset path.
233
+ This class allows for augmentations using both torchvision and Albumentations libraries, and supports caching images
234
+ in RAM or on disk to reduce IO overhead during training. Additionally, it implements a robust verification process
235
+ to ensure data integrity and consistency.
233
236
 
234
237
  Attributes:
235
- cache_ram (bool): True if images should be cached in RAM, False otherwise.
236
- cache_disk (bool): True if images should be cached on disk, False otherwise.
237
- samples (list): List of samples containing file, index, npy, and im.
238
- torch_transforms (callable): torchvision transforms applied to the dataset.
239
- album_transforms (callable, optional): Albumentations transforms applied to the dataset if augment is True.
238
+ cache_ram (bool): Indicates if caching in RAM is enabled.
239
+ cache_disk (bool): Indicates if caching on disk is enabled.
240
+ samples (list): A list of tuples, each containing the path to an image, its class index, path to its .npy cache
241
+ file (if caching on disk), and optionally the loaded image array (if caching in RAM).
242
+ torch_transforms (callable): PyTorch transforms to be applied to the images.
240
243
  """
241
244
 
242
- def __init__(self, root, args, augment=False, cache=False, prefix=""):
245
+ def __init__(self, root, args, augment=False, prefix=""):
243
246
  """
244
247
  Initialize YOLO object with root, image size, augmentations, and cache settings.
245
248
 
246
249
  Args:
247
- root (str): Dataset path.
248
- args (Namespace): Argument parser containing dataset related settings.
249
- augment (bool, optional): True if dataset should be augmented, False otherwise. Defaults to False.
250
- cache (bool | str | optional): Cache setting, can be True, False, 'ram' or 'disk'. Defaults to False.
250
+ root (str): Path to the dataset directory where images are stored in a class-specific folder structure.
251
+ args (Namespace): Configuration containing dataset-related settings such as image size, augmentation
252
+ parameters, and cache settings. It includes attributes like `imgsz` (image size), `fraction` (fraction
253
+ of data to use), `scale`, `fliplr`, `flipud`, `cache` (disk or RAM caching for faster training),
254
+ `auto_augment`, `hsv_h`, `hsv_s`, `hsv_v`, and `crop_fraction`.
255
+ augment (bool, optional): Whether to apply augmentations to the dataset. Default is False.
256
+ prefix (str, optional): Prefix for logging and cache filenames, aiding in dataset identification and
257
+ debugging. Default is an empty string.
251
258
  """
252
259
  super().__init__(root=root)
253
260
  if augment and args.fraction < 1.0: # reduce training fraction
254
261
  self.samples = self.samples[: round(len(self.samples) * args.fraction)]
255
262
  self.prefix = colorstr(f"{prefix}: ") if prefix else ""
256
- self.cache_ram = cache is True or cache == "ram"
257
- self.cache_disk = cache == "disk"
263
+ self.cache_ram = args.cache is True or args.cache == "ram" # cache images into RAM
264
+ self.cache_disk = args.cache == "disk" # cache images on hard drive as uncompressed *.npy files
258
265
  self.samples = self.verify_images() # filter out bad images
259
266
  self.samples = [list(x) + [Path(x[0]).with_suffix(".npy"), None] for x in self.samples] # file, index, npy, im
260
267
  scale = (1.0 - args.scale, 1.0) # (0.08, 1.0)
@@ -467,7 +467,6 @@ class HUBDatasetStats:
467
467
 
468
468
  self.hub_dir = Path(f'{data["path"]}-hub')
469
469
  self.im_dir = self.hub_dir / "images"
470
- self.im_dir.mkdir(parents=True, exist_ok=True) # makes /images
471
470
  self.stats = {"nc": len(data["names"]), "names": list(data["names"].values())} # statistics dictionary
472
471
  self.data = data
473
472
 
@@ -551,6 +550,7 @@ class HUBDatasetStats:
551
550
 
552
551
  # Save, print and return
553
552
  if save:
553
+ self.hub_dir.mkdir(parents=True, exist_ok=True) # makes dataset-hub/
554
554
  stats_path = self.hub_dir / "stats.json"
555
555
  LOGGER.info(f"Saving {stats_path.resolve()}...")
556
556
  with open(stats_path, "w") as f:
@@ -563,6 +563,7 @@ class HUBDatasetStats:
563
563
  """Compress images for Ultralytics HUB."""
564
564
  from ultralytics.data import YOLODataset # ClassificationDataset
565
565
 
566
+ self.im_dir.mkdir(parents=True, exist_ok=True) # makes dataset-hub/images/
566
567
  for split in "train", "val", "test":
567
568
  if self.data.get(split) is None:
568
569
  continue
@@ -343,6 +343,8 @@ class Exporter:
343
343
  requirements = ["onnx>=1.12.0"]
344
344
  if self.args.simplify:
345
345
  requirements += ["onnxsim>=0.4.33", "onnxruntime-gpu" if torch.cuda.is_available() else "onnxruntime"]
346
+ if ARM64:
347
+ check_requirements("cmake") # 'cmake' is needed to build onnxsim on aarch64
346
348
  check_requirements(requirements)
347
349
  import onnx # noqa
348
350
 
@@ -712,16 +714,21 @@ class Exporter:
712
714
  try:
713
715
  import tensorflow as tf # noqa
714
716
  except ImportError:
715
- check_requirements(f"tensorflow{'-macos' if MACOS else '-aarch64' if ARM64 else '' if cuda else '-cpu'}")
717
+ suffix = "-macos" if MACOS else "-aarch64" if ARM64 else "" if cuda else "-cpu"
718
+ version = "" if ARM64 else "<=2.13.1"
719
+ check_requirements(f"tensorflow{suffix}{version}")
716
720
  import tensorflow as tf # noqa
721
+ if ARM64:
722
+ check_requirements("cmake") # 'cmake' is needed to build onnxsim on aarch64
717
723
  check_requirements(
718
724
  (
719
- "onnx",
725
+ "onnx>=1.12.0",
720
726
  "onnx2tf>=1.15.4,<=1.17.5",
721
727
  "sng4onnx>=1.0.1",
722
728
  "onnxsim>=0.4.33",
723
729
  "onnx_graphsurgeon>=0.3.26",
724
730
  "tflite_support",
731
+ "flatbuffers>=23.5.26,<100", # update old 'flatbuffers' included inside tensorflow package
725
732
  "onnxruntime-gpu" if cuda else "onnxruntime",
726
733
  ),
727
734
  cmds="--extra-index-url https://pypi.ngc.nvidia.com",
@@ -860,8 +867,7 @@ class Exporter:
860
867
  @try_export
861
868
  def export_tfjs(self, prefix=colorstr("TensorFlow.js:")):
862
869
  """YOLOv8 TensorFlow.js export."""
863
- # JAX bug requiring install constraints in https://github.com/google/jax/issues/18978
864
- check_requirements(["jax<=0.4.21", "jaxlib<=0.4.21", "tensorflowjs"])
870
+ check_requirements("tensorflowjs")
865
871
  import tensorflow as tf
866
872
  import tensorflowjs as tfjs # noqa
867
873
 
@@ -5,7 +5,6 @@ import sys
5
5
  from pathlib import Path
6
6
  from typing import Union
7
7
 
8
- import PIL
9
8
  import numpy as np
10
9
  import torch
11
10
 
@@ -146,7 +145,7 @@ class Model(nn.Module):
146
145
 
147
146
  def __call__(
148
147
  self,
149
- source: Union[str, Path, int, list, tuple, PIL.Image.Image, np.ndarray, torch.Tensor] = None,
148
+ source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
150
149
  stream: bool = False,
151
150
  **kwargs,
152
151
  ) -> list:
@@ -345,7 +344,7 @@ class Model(nn.Module):
345
344
 
346
345
  def embed(
347
346
  self,
348
- source: Union[str, Path, int, list, tuple, PIL.Image.Image, np.ndarray, torch.Tensor] = None,
347
+ source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
349
348
  stream: bool = False,
350
349
  **kwargs,
351
350
  ) -> list:
@@ -373,7 +372,7 @@ class Model(nn.Module):
373
372
 
374
373
  def predict(
375
374
  self,
376
- source: Union[str, Path, int, list, tuple, PIL.Image.Image, np.ndarray, torch.Tensor] = None,
375
+ source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
377
376
  stream: bool = False,
378
377
  predictor=None,
379
378
  **kwargs,
@@ -431,7 +430,7 @@ class Model(nn.Module):
431
430
 
432
431
  def track(
433
432
  self,
434
- source: Union[str, Path, int, list, tuple, PIL.Image.Image, np.ndarray, torch.Tensor] = None,
433
+ source: Union[str, Path, int, list, tuple, np.ndarray, torch.Tensor] = None,
435
434
  stream: bool = False,
436
435
  persist: bool = False,
437
436
  **kwargs,
@@ -252,7 +252,7 @@ class BaseTrainer:
252
252
  if any(x in k for x in freeze_layer_names):
253
253
  LOGGER.info(f"Freezing layer '{k}'")
254
254
  v.requires_grad = False
255
- elif not v.requires_grad:
255
+ elif not v.requires_grad and v.dtype.is_floating_point: # only floating point Tensor can require gradients
256
256
  LOGGER.info(
257
257
  f"WARNING ⚠️ setting 'requires_grad=True' for frozen layer '{k}'. "
258
258
  "See ultralytics.engine.trainer for customization of frozen layers."
@@ -15,7 +15,7 @@ class OBBTrainer(yolo.detect.DetectionTrainer):
15
15
  ```python
16
16
  from ultralytics.models.yolo.obb import OBBTrainer
17
17
 
18
- args = dict(model='yolov8n-seg.pt', data='coco8-seg.yaml', epochs=3)
18
+ args = dict(model='yolov8n-obb.pt', data='dota8.yaml', epochs=3)
19
19
  trainer = OBBTrainer(overrides=args)
20
20
  trainer.train()
21
21
  ```
@@ -154,13 +154,14 @@ class SpeedEstimator:
154
154
  self.trk_previous_times[trk_id] = time()
155
155
  self.trk_previous_points[trk_id] = track[-1]
156
156
 
157
- def estimate_speed(self, im0, tracks):
157
+ def estimate_speed(self, im0, tracks, region_color=(255, 0, 0)):
158
158
  """
159
159
  Calculate object based on tracking data.
160
160
 
161
161
  Args:
162
162
  im0 (nd array): Image
163
163
  tracks (list): List of tracks obtained from the object tracking process.
164
+ region_color (tuple): Color to use when drawing regions.
164
165
  """
165
166
  self.im0 = im0
166
167
  if tracks[0].boxes.id is None:
@@ -170,7 +171,7 @@ class SpeedEstimator:
170
171
  self.extract_tracks(tracks)
171
172
 
172
173
  self.annotator = Annotator(self.im0, line_width=2)
173
- self.annotator.draw_region(reg_pts=self.reg_pts, color=(255, 0, 0), thickness=self.region_thickness)
174
+ self.annotator.draw_region(reg_pts=self.reg_pts, color=region_color, thickness=self.region_thickness)
174
175
 
175
176
  for box, trk_id, cls in zip(self.boxes, self.trk_ids, self.clss):
176
177
  track = self.store_track_info(trk_id, box)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ultralytics
3
- Version: 8.1.16
3
+ Version: 8.1.18
4
4
  Summary: Ultralytics YOLOv8 for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
5
5
  Author: Glenn Jocher, Ayush Chaurasia, Jing Qiu
6
6
  Maintainer: Glenn Jocher, Ayush Chaurasia, Jing Qiu
@@ -55,7 +55,7 @@ Requires-Dist: mkdocs-material>=9.5.9; extra == "dev"
55
55
  Requires-Dist: mkdocstrings[python]; extra == "dev"
56
56
  Requires-Dist: mkdocs-jupyter; extra == "dev"
57
57
  Requires-Dist: mkdocs-redirects; extra == "dev"
58
- Requires-Dist: mkdocs-ultralytics-plugin>=0.0.43; extra == "dev"
58
+ Requires-Dist: mkdocs-ultralytics-plugin>=0.0.44; extra == "dev"
59
59
  Provides-Extra: export
60
60
  Requires-Dist: onnx>=1.12.0; extra == "export"
61
61
  Requires-Dist: coremltools>=7.0; (platform_system != "Windows" and python_version <= "3.11") and extra == "export"
@@ -24,7 +24,7 @@ mkdocs-material>=9.5.9
24
24
  mkdocstrings[python]
25
25
  mkdocs-jupyter
26
26
  mkdocs-redirects
27
- mkdocs-ultralytics-plugin>=0.0.43
27
+ mkdocs-ultralytics-plugin>=0.0.44
28
28
 
29
29
  [explorer]
30
30
  lancedb
File without changes
File without changes
File without changes