dgenerate-ultralytics-headless 8.3.186__py3-none-any.whl → 8.3.189__py3-none-any.whl

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 (28) hide show
  1. {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/METADATA +6 -6
  2. {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/RECORD +28 -28
  3. tests/test_python.py +2 -10
  4. ultralytics/__init__.py +1 -1
  5. ultralytics/cfg/datasets/SKU-110K.yaml +2 -2
  6. ultralytics/engine/exporter.py +4 -4
  7. ultralytics/engine/results.py +1 -4
  8. ultralytics/engine/trainer.py +3 -3
  9. ultralytics/models/rtdetr/val.py +3 -1
  10. ultralytics/models/sam/__init__.py +8 -2
  11. ultralytics/models/sam/modules/sam.py +6 -6
  12. ultralytics/models/sam/predict.py +363 -6
  13. ultralytics/models/yolo/detect/val.py +13 -2
  14. ultralytics/models/yolo/obb/val.py +3 -1
  15. ultralytics/models/yolo/segment/val.py +0 -3
  16. ultralytics/nn/autobackend.py +6 -3
  17. ultralytics/nn/tasks.py +2 -2
  18. ultralytics/utils/__init__.py +39 -94
  19. ultralytics/utils/benchmarks.py +16 -9
  20. ultralytics/utils/callbacks/wb.py +9 -3
  21. ultralytics/utils/downloads.py +44 -38
  22. ultralytics/utils/plotting.py +13 -20
  23. ultralytics/utils/torch_utils.py +50 -47
  24. ultralytics/utils/tqdm.py +25 -37
  25. {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/WHEEL +0 -0
  26. {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/entry_points.txt +0 -0
  27. {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/licenses/LICENSE +0 -0
  28. {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dgenerate-ultralytics-headless
3
- Version: 8.3.186
3
+ Version: 8.3.189
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>
@@ -44,7 +44,7 @@ Requires-Dist: torch!=2.4.0,>=1.8.0; sys_platform == "win32"
44
44
  Requires-Dist: torchvision>=0.9.0
45
45
  Requires-Dist: psutil
46
46
  Requires-Dist: py-cpuinfo
47
- Requires-Dist: pandas>=1.1.4
47
+ Requires-Dist: polars
48
48
  Requires-Dist: ultralytics-thop>=2.0.0
49
49
  Provides-Extra: dev
50
50
  Requires-Dist: ipython; extra == "dev"
@@ -54,11 +54,12 @@ Requires-Dist: coverage[toml]; extra == "dev"
54
54
  Requires-Dist: mkdocs>=1.6.0; extra == "dev"
55
55
  Requires-Dist: mkdocs-material>=9.5.9; extra == "dev"
56
56
  Requires-Dist: mkdocstrings[python]; extra == "dev"
57
- Requires-Dist: mkdocs-ultralytics-plugin>=0.1.28; extra == "dev"
57
+ Requires-Dist: mkdocs-ultralytics-plugin>=0.1.29; extra == "dev"
58
58
  Requires-Dist: mkdocs-macros-plugin>=1.0.5; extra == "dev"
59
59
  Provides-Extra: export
60
60
  Requires-Dist: numpy<2.0.0; extra == "export"
61
- Requires-Dist: onnx<1.18.0,>=1.12.0; extra == "export"
61
+ Requires-Dist: onnx>=1.12.0; platform_system != "Darwin" and extra == "export"
62
+ Requires-Dist: onnx<1.18.0,>=1.12.0; platform_system == "Darwin" and extra == "export"
62
63
  Requires-Dist: coremltools>=8.0; (platform_system != "Windows" and python_version <= "3.13") and extra == "export"
63
64
  Requires-Dist: scikit-learn>=1.3.2; (platform_system != "Windows" and python_version <= "3.13") and extra == "export"
64
65
  Requires-Dist: openvino>=2024.0.0; extra == "export"
@@ -80,7 +81,6 @@ Requires-Dist: ipython; extra == "extra"
80
81
  Requires-Dist: albumentations>=1.4.6; extra == "extra"
81
82
  Requires-Dist: faster-coco-eval>=1.6.7; extra == "extra"
82
83
  Provides-Extra: typing
83
- Requires-Dist: pandas-stubs; extra == "typing"
84
84
  Requires-Dist: scipy-stubs; extra == "typing"
85
85
  Requires-Dist: types-pillow; extra == "typing"
86
86
  Requires-Dist: types-psutil; extra == "typing"
@@ -122,7 +122,7 @@ The workflow runs automatically every day at midnight UTC to check for new Ultra
122
122
 
123
123
  <div align="center">
124
124
  <p>
125
- <a href="https://www.ultralytics.com/blog/ultralytics-yolo11-has-arrived-redefine-whats-possible-in-ai" target="_blank">
125
+ <a href="https://www.ultralytics.com/events/yolovision?utm_source=github&utm_medium=org&utm_campaign=yv25_event" target="_blank">
126
126
  <img width="100%" src="https://raw.githubusercontent.com/ultralytics/assets/main/yolov8/banner-yolov8.png" alt="Ultralytics YOLO banner"></a>
127
127
  </p>
128
128
 
@@ -1,4 +1,4 @@
1
- dgenerate_ultralytics_headless-8.3.186.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
1
+ dgenerate_ultralytics_headless-8.3.189.dist-info/licenses/LICENSE,sha256=DZak_2itbUtvHzD3E7GNUYSRK6jdOJ-GqncQ2weavLA,34523
2
2
  tests/__init__.py,sha256=b4KP5_q-2IO8Br8YHOSLYnn7IwZS81l_vfEF2YPa2lM,894
3
3
  tests/conftest.py,sha256=LXtQJcFNWPGuzauTGkiXgsvVC3llJKfg22WcmhRzuQc,2593
4
4
  tests/test_cli.py,sha256=EMf5gTAopOnIz8VvzaM-Qb044o7D0flnUHYQ-2ffOM4,5670
@@ -6,9 +6,9 @@ tests/test_cuda.py,sha256=7RAMC1DoXpsRvH0Jfyo9cqHkaJZWcWeqniCW5BW87hY,8228
6
6
  tests/test_engine.py,sha256=Jpt2KVrltrEgh2-3Ykouz-2Z_2fza0eymL5ectRXadM,4922
7
7
  tests/test_exports.py,sha256=CY-4xVZlVM16vdyIC0mSR3Ix59aiZm1qjFGIhSNmB20,11007
8
8
  tests/test_integrations.py,sha256=kl_AKmE_Qs1GB0_91iVwbzNxofm_hFTt0zzU6JF-pg4,6323
9
- tests/test_python.py,sha256=JbOB6pbTkoQtPCjkl_idagV0_W2QLWGbsh2IvGmru0M,28274
9
+ tests/test_python.py,sha256=ENUbLIobqCZAxEy9W7gvhmkmW5OJ2oG-3gI8QLiJjzs,28020
10
10
  tests/test_solutions.py,sha256=tuf6n_fsI8KvSdJrnc-cqP2qYdiYqCWuVrx0z9dOz3Q,13213
11
- ultralytics/__init__.py,sha256=CCcYcTlUEFxDB3syD60I3oQ4B2UFVPb4gCZ-jatuAsU,730
11
+ ultralytics/__init__.py,sha256=do7OwLDZuVDuQVLM4bkHUsrGS_kMw-_Eoq4GGUl3zHI,730
12
12
  ultralytics/py.typed,sha256=la67KBlbjXN-_-DfGNcdOcjYumVpKG_Tkw-8n5dnGB4,8
13
13
  ultralytics/assets/bus.jpg,sha256=wCAZxJecGR63Od3ZRERe9Aja1Weayrb9Ug751DS_vGM,137419
14
14
  ultralytics/assets/zidane.jpg,sha256=Ftc4aeMmen1O0A3o6GCDO9FlfBslLpTAw0gnetx7bts,50427
@@ -21,7 +21,7 @@ ultralytics/cfg/datasets/GlobalWheat2020.yaml,sha256=dnr_loeYSE6Eo_f7V1yubILsMRB
21
21
  ultralytics/cfg/datasets/HomeObjects-3K.yaml,sha256=xEtSqEad-rtfGuIrERjjhdISggmPlvaX-315ZzKz50I,934
22
22
  ultralytics/cfg/datasets/ImageNet.yaml,sha256=GvDWypLVG_H3H67Ai8IC1pvK6fwcTtF5FRhzO1OXXDU,42530
23
23
  ultralytics/cfg/datasets/Objects365.yaml,sha256=eMQuA8B4ZGp_GsmMNKFP4CziMSVduyuAK1IANkAZaJw,9367
24
- ultralytics/cfg/datasets/SKU-110K.yaml,sha256=25M1xoJRqw-UEHmeAiyLKCzk0kTLj0FSlwpZ9dRKwIw,2555
24
+ ultralytics/cfg/datasets/SKU-110K.yaml,sha256=PvO0GsM09Bqm9HEWvVA7--bOqJKl31KtT5wZ8LhAMuY,2559
25
25
  ultralytics/cfg/datasets/VOC.yaml,sha256=NhVLvsmLOwMIteW4DPKxetURP5bTaJvYc7w08-HYAUs,3785
26
26
  ultralytics/cfg/datasets/VisDrone.yaml,sha256=RauTGwmGetLjamcPCiBL7FEWwd8mAA1Y4ARlozX6-E8,3613
27
27
  ultralytics/cfg/datasets/african-wildlife.yaml,sha256=SuloMp9WAZBigGC8az-VLACsFhTM76_O29yhTvUqdnU,915
@@ -121,11 +121,11 @@ ultralytics/data/scripts/get_coco.sh,sha256=UuJpJeo3qQpTHVINeOpmP0NYmg8PhEFE3A8J
121
121
  ultralytics/data/scripts/get_coco128.sh,sha256=qmRQl_hOKrsdHrTrnyQuFIH01oDz3lfaz138OgGfLt8,650
122
122
  ultralytics/data/scripts/get_imagenet.sh,sha256=hr42H16bM47iT27rgS7MpEo-GeOZAYUQXgr0B2cwn48,1705
123
123
  ultralytics/engine/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
124
- ultralytics/engine/exporter.py,sha256=-AUku73LwK0l_Gt71evXQIJg3WpC2jr73S-87vw5T6g,75277
124
+ ultralytics/engine/exporter.py,sha256=qHGD5wFmka_o8BNZTiPH8Qfp7-_y7Cz-OREOsfw9vmM,75261
125
125
  ultralytics/engine/model.py,sha256=877u2n0ISz2COOYtEMUqQe0E-HHB4Atb2DuH1XCE98k,53530
126
126
  ultralytics/engine/predictor.py,sha256=iXnUB-tvBHtVpKbB-5EKs1wSREBIerdUxWx39MaFYuk,22485
127
- ultralytics/engine/results.py,sha256=QcHcbPVlLBiy_APwABr-T5K65HR8Bl1rRzxawjjP76E,71873
128
- ultralytics/engine/trainer.py,sha256=JtYRZ9vIB07VM2_Saqn7Jeu9s1W_hqG_um2EwjNckSU,40255
127
+ ultralytics/engine/results.py,sha256=6xagidv6FDJlstAX6tHob_mgfNs3459JVWeyOZgNpko,71686
128
+ ultralytics/engine/trainer.py,sha256=_chaZeS_kkoljG3LWUStksKrDwNpfq5LzANgM3CgjRg,40257
129
129
  ultralytics/engine/tuner.py,sha256=sfQ8_yzgLNcGlKyz9b2vAzyggGZXiQzdZ5tKstyqjHM,12825
130
130
  ultralytics/engine/validator.py,sha256=g0StH6WOn95zBN-hULDAR5Uug1pU2YkaeNH3zzq3SVg,16573
131
131
  ultralytics/hub/__init__.py,sha256=ulPtceI3hqud03mvqoXccBaa1e4nveYwC9cddyuBUlo,6599
@@ -147,18 +147,18 @@ ultralytics/models/rtdetr/__init__.py,sha256=_jEHmOjI_QP_nT3XJXLgYHQ6bXG4EL8Gnvn
147
147
  ultralytics/models/rtdetr/model.py,sha256=e2u6kQEYawRXGGO6HbFDE1uyHfsIqvKk4IpVjjYN41k,2182
148
148
  ultralytics/models/rtdetr/predict.py,sha256=Jqorq8OkGgXCCRS8DmeuGQj3XJxEhz97m22p7VxzXTw,4279
149
149
  ultralytics/models/rtdetr/train.py,sha256=6FA3nDEcH1diFQ8Ky0xENp9cOOYATHxU6f42z9npMvs,3766
150
- ultralytics/models/rtdetr/val.py,sha256=QT7JNKFJmD8dqUVSUBb78t9wGtE7KEw5l92CKJU50TM,8849
151
- ultralytics/models/sam/__init__.py,sha256=iR7B06rAEni21eptg8n4rLOP0Z_qV9y9PL-L93n4_7s,266
150
+ ultralytics/models/rtdetr/val.py,sha256=8WVwlfSa6V8PQdFJIFp2bmKTZ_kBoLEvnXMLf08BbWI,8913
151
+ ultralytics/models/sam/__init__.py,sha256=4VtjxrbrSsqBvteaD_CwA4Nj3DdSUG1MknymtWwRMbc,359
152
152
  ultralytics/models/sam/amg.py,sha256=IpcuIfC5KBRiF4sdrsPl1ecWEJy75axo1yG23r5BFsw,11783
153
153
  ultralytics/models/sam/build.py,sha256=J6n-_QOYLa63jldEZmhRe9D3Is_AJE8xyZLUjzfRyTY,12629
154
154
  ultralytics/models/sam/model.py,sha256=j1TwsLmtxhiXyceU31VPzGVkjRXGylphKrdPSzUJRJc,7231
155
- ultralytics/models/sam/predict.py,sha256=R32JjExRBL5c2zBcDdauhX4UM8E8kMrBLoa0sZ9vk6I,86494
155
+ ultralytics/models/sam/predict.py,sha256=a7G0mLlQmQNg-mxduiSRxLIY7mWw74U0w7WRp5GLO44,105095
156
156
  ultralytics/models/sam/modules/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6DXppv1-QUM,70
157
157
  ultralytics/models/sam/modules/blocks.py,sha256=lnMhnexvXejzhixWRQQyqjrpALoIhuOSwnSGW-c9kZk,46089
158
158
  ultralytics/models/sam/modules/decoders.py,sha256=U9jqFRkD0JmO3eugSmwLD0sQkiGqJJLympWNO83osGM,25638
159
159
  ultralytics/models/sam/modules/encoders.py,sha256=srtxrfy3SfUarkC41L1S8tY4GdFueUuR2qQDFZ6ZPl4,37362
160
160
  ultralytics/models/sam/modules/memory_attention.py,sha256=F1XJAxSwho2-LMlrao_ij0MoALTvhkK-OVghi0D4cU0,13651
161
- ultralytics/models/sam/modules/sam.py,sha256=CjM4M2PfRltQFnHFOp2G6QAdYk9BxWlurx82FSX_TYo,55760
161
+ ultralytics/models/sam/modules/sam.py,sha256=fI0IVElSVUEAomCiQRC6m4g_6cyWcZ0M4bSL1g6OcYQ,55746
162
162
  ultralytics/models/sam/modules/tiny_encoder.py,sha256=lmUIeZ9-3M-C3YmJBs13W6t__dzeJloOl0qFR9Ll8ew,42241
163
163
  ultralytics/models/sam/modules/transformer.py,sha256=xc2g6gb0jvr7cJkHkzIbZOGcTrmsOn2ojvuH-MVIMVs,14953
164
164
  ultralytics/models/sam/modules/utils.py,sha256=-PYSLExtBajbotBdLan9J07aFaeXJ03WzopAv4JcYd4,16022
@@ -174,11 +174,11 @@ ultralytics/models/yolo/classify/val.py,sha256=iQZRS6D3-YQjygBhFpC8VCJMI05L3uUPe
174
174
  ultralytics/models/yolo/detect/__init__.py,sha256=GIRsLYR-kT4JJx7lh4ZZAFGBZj0aebokuU0A7JbjDVA,257
175
175
  ultralytics/models/yolo/detect/predict.py,sha256=ySUsdIf8dw00bzWhcxN1jZwLWKPRT2M7-N7TNL3o4zo,5387
176
176
  ultralytics/models/yolo/detect/train.py,sha256=HlaCoHJ6Y2TpCXXWabMRZApAYqBvjuM_YQJUV5JYCvw,9907
177
- ultralytics/models/yolo/detect/val.py,sha256=q_kpP3eyVQ5zTkqQ-kc5JhWaKGrtIdN076bMtB6wc2g,20968
177
+ ultralytics/models/yolo/detect/val.py,sha256=rHg0lPC0ccGbVF6113-18grCViVgGdXkg-aT-0sWT4U,21318
178
178
  ultralytics/models/yolo/obb/__init__.py,sha256=tQmpG8wVHsajWkZdmD6cjGohJ4ki64iSXQT8JY_dydo,221
179
179
  ultralytics/models/yolo/obb/predict.py,sha256=4r1eSld6TNJlk9JG56e-DX6oPL8uBBqiuztyBpxWlHE,2888
180
180
  ultralytics/models/yolo/obb/train.py,sha256=bnYFAMur7Uvbw5Dc09-S2ge7B05iGX-t37Ksgc0ef6g,3921
181
- ultralytics/models/yolo/obb/val.py,sha256=pSHQZ6YedCqryYbOiNtVCWZRFeKYa8EJzAGA2Heu3r0,14021
181
+ ultralytics/models/yolo/obb/val.py,sha256=I05mwGK620JFBz9yuGPlV9NN1fsWZE0lDqMxL5iG9YA,14085
182
182
  ultralytics/models/yolo/pose/__init__.py,sha256=63xmuHZLNzV8I76HhVXAq4f2W0KTk8Oi9eL-Y204LyQ,227
183
183
  ultralytics/models/yolo/pose/predict.py,sha256=M0C7ZfVXx4QXgv-szjnaXYEPas76ZLGAgDNNh1GG0vI,3743
184
184
  ultralytics/models/yolo/pose/train.py,sha256=GyvNnDPJ3UFq_90HN8_FJ0dbwRkw3JJTVpkMFH0vC0o,5457
@@ -186,7 +186,7 @@ ultralytics/models/yolo/pose/val.py,sha256=4aOTgor8EcWvLEN5wCbk9I7ILFvb1q8_F1LlH
186
186
  ultralytics/models/yolo/segment/__init__.py,sha256=3IThhZ1wlkY9FvmWm9cE-5-ZyE6F1FgzAtQ6jOOFzzw,275
187
187
  ultralytics/models/yolo/segment/predict.py,sha256=qlprQCZn4_bpjpI08U0MU9Q9_1gpHrw_7MXwtXE1l1Y,5377
188
188
  ultralytics/models/yolo/segment/train.py,sha256=XrPkXUiNu1Jvhn8iDew_RaLLjZA3un65rK-QH9mtNIw,3802
189
- ultralytics/models/yolo/segment/val.py,sha256=w0Lvx0JOqj1oHJxmlVhDqYUxZS9yxzLWocOixwNxnKo,11447
189
+ ultralytics/models/yolo/segment/val.py,sha256=GRlHSN75j7M3B5rP5owop5LzG7THIzzCxhNgec3Qi1c,11309
190
190
  ultralytics/models/yolo/world/__init__.py,sha256=nlh8I6t8hMGz_vZg8QSlsUW1R-2eKvn9CGUoPPQEGhA,131
191
191
  ultralytics/models/yolo/world/train.py,sha256=wBKnSC-TvrKWM1Taxqwo13XcwGHwwAXzNYV1tmqcOpc,7845
192
192
  ultralytics/models/yolo/world/train_world.py,sha256=lk9z_INGPSTP_W7Rjh3qrWSmjHaxOJtGngonh1cj2SM,9551
@@ -196,8 +196,8 @@ ultralytics/models/yolo/yoloe/train.py,sha256=XYpQYSnSD8vi_9VSj_S5oIsNUEqm3e66vP
196
196
  ultralytics/models/yolo/yoloe/train_seg.py,sha256=aCV7M8oQOvODFnU4piZdJh3tIrBJYAzZfRVRx1vRgxo,4956
197
197
  ultralytics/models/yolo/yoloe/val.py,sha256=2NuERI3B3WeED658Cat1xL2SVpORUHlCHCWI3L8pJJc,9784
198
198
  ultralytics/nn/__init__.py,sha256=rjociYD9lo_K-d-1s6TbdWklPLjTcEHk7OIlRDJstIE,615
199
- ultralytics/nn/autobackend.py,sha256=UM9ObXeLB0lgak1Q5oSi2IA-R_Owr6NdJNBAsA3mSbo,41790
200
- ultralytics/nn/tasks.py,sha256=vw_TNacAv-RN24rusFzKuYL6qRBD7cve8EpB7gOlU_8,72505
199
+ ultralytics/nn/autobackend.py,sha256=K98yjm1jF6aVFwfyPkS9pG1AWPFuYdQzCD4PNi6MzMY,42029
200
+ ultralytics/nn/tasks.py,sha256=wI15MlEX5FOgAIM1O2ygMxeljthvaUinYcz_jy7CJh0,72485
201
201
  ultralytics/nn/text_model.py,sha256=cYwD-0el4VeToDBP4iPFOQGqyEQatJOBHrVyONL3K_s,15282
202
202
  ultralytics/nn/modules/__init__.py,sha256=2nY0X69Z5DD5SWt6v3CUTZa5gXSzC9TQr3VTVqhyGho,3158
203
203
  ultralytics/nn/modules/activation.py,sha256=75JcIMH2Cu9GTC2Uf55r_5YLpxcrXQDaVoeGQ0hlUAU,2233
@@ -236,13 +236,13 @@ ultralytics/trackers/utils/__init__.py,sha256=lm6MckFYCPTbqIoX7w0s_daxdjNeBeKW6D
236
236
  ultralytics/trackers/utils/gmc.py,sha256=9IvCf5MhBYY9ppVHykN02_oBWHmE98R8EaYFKaykdV0,14032
237
237
  ultralytics/trackers/utils/kalman_filter.py,sha256=PPmM0lwBMdT_hGojvfLoUsBUFMBBMNRAxKbMcQa3wJ0,21619
238
238
  ultralytics/trackers/utils/matching.py,sha256=uSYtywqi1lE_uNN1FwuBFPyISfDQXHMu8K5KH69nrRI,7160
239
- ultralytics/utils/__init__.py,sha256=jI8xbKM4OrRFvYbT7j1qAlRmvKTnVSHyHzY-On3yAjI,56982
239
+ ultralytics/utils/__init__.py,sha256=J4i95DBEP2t6HeNLRqCjbNqz9SwxbOBIk6IFgj11UpI,54472
240
240
  ultralytics/utils/autobatch.py,sha256=33m8YgggLIhltDqMXZ5OE-FGs2QiHrl2-LfgY1mI4cw,5119
241
241
  ultralytics/utils/autodevice.py,sha256=1wwjkO2tmyR5IAYa6t8G9QJgGrm00niPY4bTbTRH0Uk,8861
242
- ultralytics/utils/benchmarks.py,sha256=btsi_B0mfLPfhE8GrsBpi79vl7SRam0YYngNFAsY8Ak,31035
242
+ ultralytics/utils/benchmarks.py,sha256=wqIdUpYLp3Ac-oWX9bgngqOvmGyUiKuI61KBOcCqR6A,31479
243
243
  ultralytics/utils/checks.py,sha256=q64U5wKyejD-2W2fCPqJ0Oiaa4_4vq2pVxV9wp6lMz4,34707
244
244
  ultralytics/utils/dist.py,sha256=A9lDGtGefTjSVvVS38w86GOdbtLzNBDZuDGK0MT4PRI,4170
245
- ultralytics/utils/downloads.py,sha256=5p9X5XN3I4RzZYGv8wP8Iehm3fDR4KXtN7KgGsJ0iAg,22621
245
+ ultralytics/utils/downloads.py,sha256=jtaStUmZiWhJ9-ovubsSJHqnWS891qIZggQHGUC0fJo,23009
246
246
  ultralytics/utils/errors.py,sha256=XT9Ru7ivoBgofK6PlnyigGoa7Fmf5nEhyHtnD-8TRXI,1584
247
247
  ultralytics/utils/export.py,sha256=LK-wlTlyb_zIKtSvOmfmvR70RcUU9Ct9UBDt5wn9_rY,9880
248
248
  ultralytics/utils/files.py,sha256=ZCbLGleiF0f-PqYfaxMFAWop88w7U1hpreHXl8b2ko0,8238
@@ -252,10 +252,10 @@ ultralytics/utils/loss.py,sha256=fbOWc3Iu0QOJiWbi-mXWA9-1otTYlehtmUsI7os7ydM,397
252
252
  ultralytics/utils/metrics.py,sha256=Q0cD4J1_7WRElv_En6YUM94l4SjE7XTF9LdZUMvrGys,68853
253
253
  ultralytics/utils/ops.py,sha256=8d60fbpntrexK3gPoLUS6mWAYGrtrQaQCOYyRJsCjuI,34521
254
254
  ultralytics/utils/patches.py,sha256=PPWiKzwGbCvuawLzDKVR8tWOQAlZbJBi8g_-A6eTCYA,6536
255
- ultralytics/utils/plotting.py,sha256=4TG_J8rz9VVPrOXbdjRHPJZVgJrFYVmEYE0BcVDdolc,47745
255
+ ultralytics/utils/plotting.py,sha256=npFWWIGEdQM3IsSSqoZ29kAFyCN3myeZOFj-gALFT6M,47465
256
256
  ultralytics/utils/tal.py,sha256=aXawOnhn8ni65tJWIW-PYqWr_TRvltbHBjrTo7o6lDQ,20924
257
- ultralytics/utils/torch_utils.py,sha256=D76Pvmw5OKh-vd4aJkOMO0dSLbM5WzGr7Hmds54hPEk,39233
258
- ultralytics/utils/tqdm.py,sha256=cJSzlv6NP72kN7_J0PETA3h4bwGh5a_YHA2gdmZqL8U,16535
257
+ ultralytics/utils/torch_utils.py,sha256=PoqnrVRRgnNw2aTxcSrjZ1PvzEg2iR8XKZYIOKVqy0o,39476
258
+ ultralytics/utils/tqdm.py,sha256=G7V-0Ku_XEKKjA8D2duWD9OToekX2LGLbbOTzd1UrWo,16414
259
259
  ultralytics/utils/triton.py,sha256=M7qe4RztiADBJQEWQKaIQsp94ERFJ_8_DUHDR6TXEOM,5410
260
260
  ultralytics/utils/tuner.py,sha256=bHr09Fz-0-t0ei55gX5wJh-obyiAQoicP7HUVM2I8qA,6826
261
261
  ultralytics/utils/callbacks/__init__.py,sha256=hzL63Rce6VkZhP4Lcim9LKjadixaQG86nKqPhk7IkS0,242
@@ -269,9 +269,9 @@ ultralytics/utils/callbacks/neptune.py,sha256=j8pecmlcsM8FGzLKWoBw5xUsi5t8E5HuxY
269
269
  ultralytics/utils/callbacks/platform.py,sha256=gdbEuedXEs1VjdU0IiedjPFwttZJUiI0dJoImU3G_Gc,1999
270
270
  ultralytics/utils/callbacks/raytune.py,sha256=S6Bq16oQDQ8BQgnZzA0zJHGN_BBr8iAM_WtGoLiEcwg,1283
271
271
  ultralytics/utils/callbacks/tensorboard.py,sha256=MDPBW7aDes-66OE6YqKXXvqA_EocjzEMHWGM-8z9vUQ,5281
272
- ultralytics/utils/callbacks/wb.py,sha256=Tm_-aRr2CN32MJkY9tylpMBJkb007-MSRNSQ7rDJ5QU,7521
273
- dgenerate_ultralytics_headless-8.3.186.dist-info/METADATA,sha256=tc5kxyFm0pFjeLSyNe-BkQrg_2NM5SYxzhi2SLsMbXs,38723
274
- dgenerate_ultralytics_headless-8.3.186.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
275
- dgenerate_ultralytics_headless-8.3.186.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
276
- dgenerate_ultralytics_headless-8.3.186.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
277
- dgenerate_ultralytics_headless-8.3.186.dist-info/RECORD,,
272
+ ultralytics/utils/callbacks/wb.py,sha256=ngQO8EJ1kxJDF1YajScVtzBbm26jGuejA0uWeOyvf5A,7685
273
+ dgenerate_ultralytics_headless-8.3.189.dist-info/METADATA,sha256=WtEdG5rsQrWBMYF3Hi2ha6V9RAeNCIkumcmrba3a5xw,38789
274
+ dgenerate_ultralytics_headless-8.3.189.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
275
+ dgenerate_ultralytics_headless-8.3.189.dist-info/entry_points.txt,sha256=YM_wiKyTe9yRrsEfqvYolNO5ngwfoL4-NwgKzc8_7sI,93
276
+ dgenerate_ultralytics_headless-8.3.189.dist-info/top_level.txt,sha256=XP49TwiMw4QGsvTLSYiJhz1xF_k7ev5mQ8jJXaXi45Q,12
277
+ dgenerate_ultralytics_headless-8.3.189.dist-info/RECORD,,
tests/test_python.py CHANGED
@@ -209,16 +209,11 @@ def test_val(task: str, weight: str, data: str) -> None:
209
209
  metrics = model.val(data=data, imgsz=32, plots=plots)
210
210
  metrics.to_df()
211
211
  metrics.to_csv()
212
- metrics.to_xml()
213
- metrics.to_html()
214
212
  metrics.to_json()
215
- metrics.to_sql()
216
- metrics.confusion_matrix.to_df() # Tests for confusion matrix export
213
+ # Tests for confusion matrix export
214
+ metrics.confusion_matrix.to_df()
217
215
  metrics.confusion_matrix.to_csv()
218
- metrics.confusion_matrix.to_xml()
219
- metrics.confusion_matrix.to_html()
220
216
  metrics.confusion_matrix.to_json()
221
- metrics.confusion_matrix.to_sql()
222
217
 
223
218
 
224
219
  def test_train_scratch():
@@ -304,10 +299,7 @@ def test_results(model: str):
304
299
  r.save_crop(save_dir=TMP / "runs/tests/crops/")
305
300
  r.to_df(decimals=3) # Align to_ methods: https://docs.ultralytics.com/modes/predict/#working-with-results
306
301
  r.to_csv()
307
- r.to_xml()
308
- r.to_html()
309
302
  r.to_json(normalize=True)
310
- r.to_sql()
311
303
  r.plot(pil=True, save=True, filename=TMP / "results_plot_save.jpg")
312
304
  r.plot(conf=True, boxes=True)
313
305
  print(r, len(r), r.path) # print after methods
ultralytics/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
- __version__ = "8.3.186"
3
+ __version__ = "8.3.189"
4
4
 
5
5
  import os
6
6
 
@@ -24,7 +24,7 @@ download: |
24
24
  from pathlib import Path
25
25
 
26
26
  import numpy as np
27
- import pandas as pd
27
+ import polars as pl
28
28
 
29
29
  from ultralytics.utils import TQDM
30
30
  from ultralytics.utils.downloads import download
@@ -45,7 +45,7 @@ download: |
45
45
  # Convert labels
46
46
  names = "image", "x1", "y1", "x2", "y2", "class", "image_width", "image_height" # column names
47
47
  for d in "annotations_train.csv", "annotations_val.csv", "annotations_test.csv":
48
- x = pd.read_csv(dir / "annotations" / d, names=names).values # annotations
48
+ x = pl.read_csv(dir / "annotations" / d, names=names).to_numpy() # annotations
49
49
  images, unique_images = x[:, 0], np.unique(x[:, 0])
50
50
  with open((dir / d).with_suffix(".txt").__str__().replace("annotations_", ""), "w", encoding="utf-8") as f:
51
51
  f.writelines(f"./images/{s}\n" for s in unique_images)
@@ -582,9 +582,9 @@ class Exporter:
582
582
  @try_export
583
583
  def export_onnx(self, prefix=colorstr("ONNX:")):
584
584
  """Export YOLO model to ONNX format."""
585
- requirements = ["onnx>=1.12.0,<1.18.0"]
585
+ requirements = ["onnx>=1.12.0"]
586
586
  if self.args.simplify:
587
- requirements += ["onnxslim>=0.1.59", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
587
+ requirements += ["onnxslim>=0.1.65", "onnxruntime" + ("-gpu" if torch.cuda.is_available() else "")]
588
588
  check_requirements(requirements)
589
589
  import onnx # noqa
590
590
 
@@ -960,9 +960,9 @@ class Exporter:
960
960
  "sng4onnx>=1.0.1", # required by 'onnx2tf' package
961
961
  "onnx_graphsurgeon>=0.3.26", # required by 'onnx2tf' package
962
962
  "ai-edge-litert>=1.2.0,<1.4.0", # required by 'onnx2tf' package
963
- "onnx>=1.12.0,<1.18.0",
963
+ "onnx>=1.12.0",
964
964
  "onnx2tf>=1.26.3",
965
- "onnxslim>=0.1.59",
965
+ "onnxslim>=0.1.65",
966
966
  "onnxruntime-gpu" if cuda else "onnxruntime",
967
967
  "protobuf>=5",
968
968
  ),
@@ -222,12 +222,9 @@ class Results(SimpleClass, DataExportMixin):
222
222
  save_txt: Save detection results to a text file.
223
223
  save_crop: Save cropped detection images to specified directory.
224
224
  summary: Convert inference results to a summarized dictionary.
225
- to_df: Convert detection results to a Pandas Dataframe.
225
+ to_df: Convert detection results to a Polars Dataframe.
226
226
  to_json: Convert detection results to JSON format.
227
227
  to_csv: Convert detection results to a CSV format.
228
- to_xml: Convert detection results to XML format.
229
- to_html: Convert detection results to HTML format.
230
- to_sql: Convert detection results to an SQL-compatible format.
231
228
 
232
229
  Examples:
233
230
  >>> results = model("path/to/image.jpg")
@@ -540,10 +540,10 @@ class BaseTrainer:
540
540
  torch.cuda.empty_cache()
541
541
 
542
542
  def read_results_csv(self):
543
- """Read results.csv into a dictionary using pandas."""
544
- import pandas as pd # scope for faster 'import ultralytics'
543
+ """Read results.csv into a dictionary using polars."""
544
+ import polars as pl # scope for faster 'import ultralytics'
545
545
 
546
- return pd.read_csv(self.csv).to_dict(orient="list")
546
+ return pl.read_csv(self.csv).to_dict(as_series=False)
547
547
 
548
548
  def _model_train(self):
549
549
  """Set model in training mode."""
@@ -196,7 +196,8 @@ class RTDETRValidator(DetectionValidator):
196
196
  with bounding box coordinates, confidence scores, and class predictions.
197
197
  pbatch (Dict[str, Any]): Batch dictionary containing 'imgsz', 'ori_shape', 'ratio_pad', and 'im_file'.
198
198
  """
199
- stem = Path(pbatch["im_file"]).stem
199
+ path = Path(pbatch["im_file"])
200
+ stem = path.stem
200
201
  image_id = int(stem) if stem.isnumeric() else stem
201
202
  box = predn["bboxes"].clone()
202
203
  box[..., [0, 2]] *= pbatch["ori_shape"][1] / self.args.imgsz # native-space pred
@@ -207,6 +208,7 @@ class RTDETRValidator(DetectionValidator):
207
208
  self.jdict.append(
208
209
  {
209
210
  "image_id": image_id,
211
+ "file_name": path.name,
210
212
  "category_id": self.class_map[int(c)],
211
213
  "bbox": [round(x, 3) for x in b],
212
214
  "score": round(s, 5),
@@ -1,6 +1,12 @@
1
1
  # Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
2
2
 
3
3
  from .model import SAM
4
- from .predict import Predictor, SAM2Predictor, SAM2VideoPredictor
4
+ from .predict import Predictor, SAM2DynamicInteractivePredictor, SAM2Predictor, SAM2VideoPredictor
5
5
 
6
- __all__ = "SAM", "Predictor", "SAM2Predictor", "SAM2VideoPredictor" # tuple or list of exportable items
6
+ __all__ = (
7
+ "SAM",
8
+ "Predictor",
9
+ "SAM2Predictor",
10
+ "SAM2VideoPredictor",
11
+ "SAM2DynamicInteractivePredictor",
12
+ ) # tuple or list of exportable items
@@ -574,7 +574,7 @@ class SAM2Model(torch.nn.Module):
574
574
  object_score_logits,
575
575
  )
576
576
 
577
- def _use_mask_as_output(self, backbone_features, high_res_features, mask_inputs):
577
+ def _use_mask_as_output(self, mask_inputs, backbone_features=None, high_res_features=None):
578
578
  """Process mask inputs directly as output, bypassing SAM encoder/decoder."""
579
579
  # Use -10/+10 as logits for neg/pos pixels (very close to 0/1 in prob after sigmoid).
580
580
  out_scale, out_bias = 20.0, -10.0 # sigmoid(-10.0)=4.5398e-05
@@ -589,7 +589,7 @@ class SAM2Model(torch.nn.Module):
589
589
  )
590
590
  # a dummy IoU prediction of all 1's under mask input
591
591
  ious = mask_inputs.new_ones(mask_inputs.size(0), 1).float()
592
- if not self.use_obj_ptrs_in_encoder:
592
+ if not self.use_obj_ptrs_in_encoder or backbone_features is None or high_res_features is None:
593
593
  # all zeros as a dummy object pointer (of shape [B, C])
594
594
  obj_ptr = torch.zeros(mask_inputs.size(0), self.hidden_dim, device=mask_inputs.device)
595
595
  else:
@@ -869,7 +869,6 @@ class SAM2Model(torch.nn.Module):
869
869
  prev_sam_mask_logits,
870
870
  ):
871
871
  """Perform a single tracking step, updating object masks and memory features based on current frame inputs."""
872
- current_out = {"point_inputs": point_inputs, "mask_inputs": mask_inputs}
873
872
  # High-resolution feature maps for the SAM head, reshape (HW)BC => BCHW
874
873
  if len(current_vision_feats) > 1:
875
874
  high_res_features = [
@@ -883,7 +882,7 @@ class SAM2Model(torch.nn.Module):
883
882
  # (see it as a GT mask) without using a SAM prompt encoder + mask decoder.
884
883
  pix_feat = current_vision_feats[-1].permute(1, 2, 0)
885
884
  pix_feat = pix_feat.view(-1, self.hidden_dim, *feat_sizes[-1])
886
- sam_outputs = self._use_mask_as_output(pix_feat, high_res_features, mask_inputs)
885
+ sam_outputs = self._use_mask_as_output(mask_inputs, pix_feat, high_res_features)
887
886
  else:
888
887
  # fused the visual feature with previous memory features in the memory bank
889
888
  pix_feat = self._prepare_memory_conditioned_features(
@@ -911,7 +910,7 @@ class SAM2Model(torch.nn.Module):
911
910
  high_res_features=high_res_features,
912
911
  multimask_output=multimask_output,
913
912
  )
914
- return current_out, sam_outputs, high_res_features, pix_feat
913
+ return sam_outputs, high_res_features, pix_feat
915
914
 
916
915
  def _encode_memory_in_output(
917
916
  self,
@@ -960,7 +959,8 @@ class SAM2Model(torch.nn.Module):
960
959
  prev_sam_mask_logits=None,
961
960
  ):
962
961
  """Perform a single tracking step, updating object masks and memory features based on current frame inputs."""
963
- current_out, sam_outputs, _, _ = self._track_step(
962
+ current_out = {}
963
+ sam_outputs, _, _ = self._track_step(
964
964
  frame_idx,
965
965
  is_init_cond_frame,
966
966
  current_vision_feats,