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.
- {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/METADATA +6 -6
- {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/RECORD +28 -28
- tests/test_python.py +2 -10
- ultralytics/__init__.py +1 -1
- ultralytics/cfg/datasets/SKU-110K.yaml +2 -2
- ultralytics/engine/exporter.py +4 -4
- ultralytics/engine/results.py +1 -4
- ultralytics/engine/trainer.py +3 -3
- ultralytics/models/rtdetr/val.py +3 -1
- ultralytics/models/sam/__init__.py +8 -2
- ultralytics/models/sam/modules/sam.py +6 -6
- ultralytics/models/sam/predict.py +363 -6
- ultralytics/models/yolo/detect/val.py +13 -2
- ultralytics/models/yolo/obb/val.py +3 -1
- ultralytics/models/yolo/segment/val.py +0 -3
- ultralytics/nn/autobackend.py +6 -3
- ultralytics/nn/tasks.py +2 -2
- ultralytics/utils/__init__.py +39 -94
- ultralytics/utils/benchmarks.py +16 -9
- ultralytics/utils/callbacks/wb.py +9 -3
- ultralytics/utils/downloads.py +44 -38
- ultralytics/utils/plotting.py +13 -20
- ultralytics/utils/torch_utils.py +50 -47
- ultralytics/utils/tqdm.py +25 -37
- {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/WHEEL +0 -0
- {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/entry_points.txt +0 -0
- {dgenerate_ultralytics_headless-8.3.186.dist-info → dgenerate_ultralytics_headless-8.3.189.dist-info}/licenses/LICENSE +0 -0
- {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.
|
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:
|
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.
|
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
|
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/
|
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.
|
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=
|
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=
|
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=
|
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
|
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=
|
128
|
-
ultralytics/engine/trainer.py,sha256=
|
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=
|
151
|
-
ultralytics/models/sam/__init__.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
200
|
-
ultralytics/nn/tasks.py,sha256=
|
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=
|
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=
|
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=
|
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=
|
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=
|
258
|
-
ultralytics/utils/tqdm.py,sha256=
|
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=
|
273
|
-
dgenerate_ultralytics_headless-8.3.
|
274
|
-
dgenerate_ultralytics_headless-8.3.
|
275
|
-
dgenerate_ultralytics_headless-8.3.
|
276
|
-
dgenerate_ultralytics_headless-8.3.
|
277
|
-
dgenerate_ultralytics_headless-8.3.
|
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
|
-
|
216
|
-
metrics.confusion_matrix.to_df()
|
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
@@ -24,7 +24,7 @@ download: |
|
|
24
24
|
from pathlib import Path
|
25
25
|
|
26
26
|
import numpy as np
|
27
|
-
import
|
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 =
|
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)
|
ultralytics/engine/exporter.py
CHANGED
@@ -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
|
585
|
+
requirements = ["onnx>=1.12.0"]
|
586
586
|
if self.args.simplify:
|
587
|
-
requirements += ["onnxslim>=0.1.
|
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
|
963
|
+
"onnx>=1.12.0",
|
964
964
|
"onnx2tf>=1.26.3",
|
965
|
-
"onnxslim>=0.1.
|
965
|
+
"onnxslim>=0.1.65",
|
966
966
|
"onnxruntime-gpu" if cuda else "onnxruntime",
|
967
967
|
"protobuf>=5",
|
968
968
|
),
|
ultralytics/engine/results.py
CHANGED
@@ -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
|
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")
|
ultralytics/engine/trainer.py
CHANGED
@@ -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
|
544
|
-
import
|
543
|
+
"""Read results.csv into a dictionary using polars."""
|
544
|
+
import polars as pl # scope for faster 'import ultralytics'
|
545
545
|
|
546
|
-
return
|
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."""
|
ultralytics/models/rtdetr/val.py
CHANGED
@@ -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
|
-
|
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__ =
|
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
|
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
|
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
|
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
|
962
|
+
current_out = {}
|
963
|
+
sam_outputs, _, _ = self._track_step(
|
964
964
|
frame_idx,
|
965
965
|
is_init_cond_frame,
|
966
966
|
current_vision_feats,
|