coralnet-toolbox 0.0.75__py2.py3-none-any.whl → 0.0.77__py2.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.
- coralnet_toolbox/Annotations/QtPolygonAnnotation.py +57 -12
- coralnet_toolbox/Annotations/QtRectangleAnnotation.py +44 -14
- coralnet_toolbox/Common/QtGraphicsUtility.py +18 -8
- coralnet_toolbox/Explorer/transformer_models.py +13 -2
- coralnet_toolbox/IO/QtExportMaskAnnotations.py +576 -402
- coralnet_toolbox/IO/QtImportImages.py +7 -15
- coralnet_toolbox/IO/QtOpenProject.py +15 -19
- coralnet_toolbox/Icons/system_monitor.png +0 -0
- coralnet_toolbox/MachineLearning/ImportDataset/QtBase.py +33 -8
- coralnet_toolbox/QtAnnotationWindow.py +4 -0
- coralnet_toolbox/QtEventFilter.py +5 -5
- coralnet_toolbox/QtImageWindow.py +4 -0
- coralnet_toolbox/QtMainWindow.py +104 -64
- coralnet_toolbox/QtProgressBar.py +1 -0
- coralnet_toolbox/QtSystemMonitor.py +370 -0
- coralnet_toolbox/Rasters/RasterManager.py +5 -2
- coralnet_toolbox/Results/ConvertResults.py +14 -8
- coralnet_toolbox/Results/ResultsProcessor.py +3 -2
- coralnet_toolbox/SAM/QtDeployGenerator.py +1 -1
- coralnet_toolbox/SAM/QtDeployPredictor.py +10 -0
- coralnet_toolbox/SeeAnything/QtDeployGenerator.py +324 -177
- coralnet_toolbox/SeeAnything/QtDeployPredictor.py +10 -6
- coralnet_toolbox/Tile/QtTileBatchInference.py +4 -4
- coralnet_toolbox/Tools/QtPatchTool.py +6 -2
- coralnet_toolbox/Tools/QtPolygonTool.py +5 -3
- coralnet_toolbox/Tools/QtRectangleTool.py +17 -9
- coralnet_toolbox/Tools/QtSAMTool.py +144 -91
- coralnet_toolbox/Tools/QtSeeAnythingTool.py +4 -0
- coralnet_toolbox/Tools/QtTool.py +79 -3
- coralnet_toolbox/Tools/QtWorkAreaTool.py +4 -0
- coralnet_toolbox/Transformers/Models/GroundingDINO.py +72 -0
- coralnet_toolbox/Transformers/Models/OWLViT.py +72 -0
- coralnet_toolbox/Transformers/Models/OmDetTurbo.py +68 -0
- coralnet_toolbox/Transformers/Models/QtBase.py +121 -0
- coralnet_toolbox/{AutoDistill → Transformers}/Models/__init__.py +1 -1
- coralnet_toolbox/{AutoDistill → Transformers}/QtBatchInference.py +15 -15
- coralnet_toolbox/{AutoDistill → Transformers}/QtDeployModel.py +18 -16
- coralnet_toolbox/{AutoDistill → Transformers}/__init__.py +1 -1
- coralnet_toolbox/__init__.py +1 -1
- coralnet_toolbox/utilities.py +0 -15
- {coralnet_toolbox-0.0.75.dist-info → coralnet_toolbox-0.0.77.dist-info}/METADATA +9 -9
- {coralnet_toolbox-0.0.75.dist-info → coralnet_toolbox-0.0.77.dist-info}/RECORD +46 -44
- coralnet_toolbox/AutoDistill/Models/GroundingDINO.py +0 -81
- coralnet_toolbox/AutoDistill/Models/OWLViT.py +0 -76
- coralnet_toolbox/AutoDistill/Models/OmDetTurbo.py +0 -75
- coralnet_toolbox/AutoDistill/Models/QtBase.py +0 -112
- {coralnet_toolbox-0.0.75.dist-info → coralnet_toolbox-0.0.77.dist-info}/WHEEL +0 -0
- {coralnet_toolbox-0.0.75.dist-info → coralnet_toolbox-0.0.77.dist-info}/entry_points.txt +0 -0
- {coralnet_toolbox-0.0.75.dist-info → coralnet_toolbox-0.0.77.dist-info}/licenses/LICENSE.txt +0 -0
- {coralnet_toolbox-0.0.75.dist-info → coralnet_toolbox-0.0.77.dist-info}/top_level.txt +0 -0
@@ -1,34 +1,27 @@
|
|
1
|
-
coralnet_toolbox/QtAnnotationWindow.py,sha256=
|
1
|
+
coralnet_toolbox/QtAnnotationWindow.py,sha256=Y_8jQVEWGp5cbTg7FWlSM75nn71BezAW3I_Y0KNN1v4,41132
|
2
2
|
coralnet_toolbox/QtConfidenceWindow.py,sha256=L5hR23uW91GpqnsNS9R1XF3zCTe2aU7w0iDoQMV0oyE,16190
|
3
|
-
coralnet_toolbox/QtEventFilter.py,sha256=
|
4
|
-
coralnet_toolbox/QtImageWindow.py,sha256=
|
3
|
+
coralnet_toolbox/QtEventFilter.py,sha256=6JQ6HzWhSeOvV6VVdn18eI-DmtglpRdit1N9NtCfqZk,7712
|
4
|
+
coralnet_toolbox/QtImageWindow.py,sha256=PofY9-7_r90J5X9A5yQK0RjPI_U6AAJJfnQwxUwZLWk,51463
|
5
5
|
coralnet_toolbox/QtLabelWindow.py,sha256=O-mLtE6ycuuGloYYZX0Z9JYZtsBMmspqNeJWslrjfFc,51419
|
6
|
-
coralnet_toolbox/QtMainWindow.py,sha256=
|
6
|
+
coralnet_toolbox/QtMainWindow.py,sha256=4Znd0fezebQ-cWOKHjHTPVfj_DPH45A7tnUfxUEiqOQ,123615
|
7
7
|
coralnet_toolbox/QtPatchSampling.py,sha256=Ehj06auBGfQwIruLNYQjF8eFOCpl8G72p42UXXb2mUo,29013
|
8
|
-
coralnet_toolbox/QtProgressBar.py,sha256=
|
8
|
+
coralnet_toolbox/QtProgressBar.py,sha256=L9V1dD9NQ5K-IK2NhJtESoieWGd1ULLsACEXuUDE4Ck,7922
|
9
|
+
coralnet_toolbox/QtSystemMonitor.py,sha256=KSsUZ11GcHPH0Q7Pl8TUsFSB_jnWzNqGmtnf7IYYXpQ,16567
|
9
10
|
coralnet_toolbox/QtWorkArea.py,sha256=YXRvHQKpWUtWyv_o9lZ8rmxfm28dUOG9pmMUeimDhQ4,13578
|
10
|
-
coralnet_toolbox/__init__.py,sha256=
|
11
|
+
coralnet_toolbox/__init__.py,sha256=IFl5I4PdkaZp2BugeAalSkzd3crH_pMIeSWcuJi3yG0,207
|
11
12
|
coralnet_toolbox/main.py,sha256=6j2B_1reC_KDmqvq1C0fB-UeSEm8eeJOozp2f4XXMLQ,1573
|
12
|
-
coralnet_toolbox/utilities.py,sha256=
|
13
|
+
coralnet_toolbox/utilities.py,sha256=Up6_z0n-8p7KccFLgBvlSnhfgX8B_mVTSmIfajpkkug,31173
|
13
14
|
coralnet_toolbox/Annotations/QtAnnotation.py,sha256=4KxqDe_WPMGK18OYHZ1NqWzV87ARv8MnLAQdHFXo-Yg,27527
|
14
15
|
coralnet_toolbox/Annotations/QtMaskAnnotation.py,sha256=Hs8p-Lxv4OYqcx4Y7dayer1KxTaX-G0kuQe-W2JuGIE,16269
|
15
16
|
coralnet_toolbox/Annotations/QtMultiPolygonAnnotation.py,sha256=u0vPQPeaBCEdw5lMFygpBbjDKDSjvtV7Jkj03MDfj8M,16463
|
16
17
|
coralnet_toolbox/Annotations/QtPatchAnnotation.py,sha256=huoCsPloSA5uCZxG7pwIoO02GcHFDwW8-VohLxbCVnY,16608
|
17
|
-
coralnet_toolbox/Annotations/QtPolygonAnnotation.py,sha256=
|
18
|
-
coralnet_toolbox/Annotations/QtRectangleAnnotation.py,sha256=
|
18
|
+
coralnet_toolbox/Annotations/QtPolygonAnnotation.py,sha256=NYzca916tfZDOxbP9TBC5CaFEoiMiZec8QkwHtpfGLQ,35198
|
19
|
+
coralnet_toolbox/Annotations/QtRectangleAnnotation.py,sha256=F49Cc3MyPPHQp-qhfjsFACE5ZRwT4Hsq0jDi8nt9iVg,22492
|
19
20
|
coralnet_toolbox/Annotations/__init__.py,sha256=bpMldC70tT_lzMrOdBNDkEhG9dCX3tXEBd48IrcUg3E,419
|
20
|
-
coralnet_toolbox/AutoDistill/QtBatchInference.py,sha256=k871aW3XRX8kc4BDaS1aipbPh9WOZxgmilF2c4KOdVA,5646
|
21
|
-
coralnet_toolbox/AutoDistill/QtDeployModel.py,sha256=Fycm7wuydUfr1E2CUy00ridiI2JaNDZqAeoVB_HVydY,25923
|
22
|
-
coralnet_toolbox/AutoDistill/__init__.py,sha256=-cJSCr3HSVcybbkvdSZY_zz9EDLESq9A3gisHu3gIgM,206
|
23
|
-
coralnet_toolbox/AutoDistill/Models/GroundingDINO.py,sha256=xG20nLOrKjtzRhZznIIdwFXxBJ7RCeQ7h1z0V0J6trE,2781
|
24
|
-
coralnet_toolbox/AutoDistill/Models/OWLViT.py,sha256=disVxSQ80sS4SVYdwrQocFP_LN6YDQQhzfeORWe4veU,2572
|
25
|
-
coralnet_toolbox/AutoDistill/Models/OmDetTurbo.py,sha256=i2k9C0U8CzojKvv58CE_4wvquvR_JHUHRCe93Yzb5QQ,2526
|
26
|
-
coralnet_toolbox/AutoDistill/Models/QtBase.py,sha256=P9dzGgzOZJZr-hQltAIswWqUyfaUP40GcXc_X11GOv8,4220
|
27
|
-
coralnet_toolbox/AutoDistill/Models/__init__.py,sha256=3woEIkWjoNLlZhNijnyAwAimsBoy2AGCt_tks3Y4q6M,259
|
28
21
|
coralnet_toolbox/BreakTime/QtBreakout.py,sha256=KYlhLMHF_5HVkjR8JDjbNu8CB6SHsEpECAywXqWVw10,54763
|
29
22
|
coralnet_toolbox/BreakTime/QtSnake.py,sha256=XxmV64A_1avYf1uC_fXQpOZV3kCetz3CqboQsFwSIJk,22398
|
30
23
|
coralnet_toolbox/BreakTime/__init__.py,sha256=7d_CMXp7T872NV-a6xaGU4oq5wjWAWGyrnd-YD3BDJo,150
|
31
|
-
coralnet_toolbox/Common/QtGraphicsUtility.py,sha256=
|
24
|
+
coralnet_toolbox/Common/QtGraphicsUtility.py,sha256=M53aLq2AfHdyHwjz41ecw2tE8QZ6cjSzHHdObDNSFZI,6281
|
32
25
|
coralnet_toolbox/Common/QtMarginInput.py,sha256=RBpz6q_OkZxQH7_r7Gd8U3C8TvnvPzemgfoRxL427B8,7998
|
33
26
|
coralnet_toolbox/Common/QtOverlapInput.py,sha256=O9Dvwe4YmYSmf-W5fhAhl5kOIFsLa3AIuG6cdfxwQc4,5803
|
34
27
|
coralnet_toolbox/Common/QtTileSizeInput.py,sha256=qxts1ufiG6cGFJWEa8DFB9wHV9AVw5dgE5OyLMJMHP8,3164
|
@@ -42,13 +35,13 @@ coralnet_toolbox/Explorer/QtFeatureStore.py,sha256=3VwGezs1stmu65Z4ZQpvY27rGEIJq
|
|
42
35
|
coralnet_toolbox/Explorer/QtSettingsWidgets.py,sha256=wwgMje5hga6GpJsAwFYXqd3G_Hew0oKmtu3tEr061Hs,36042
|
43
36
|
coralnet_toolbox/Explorer/QtViewers.py,sha256=2qtzxSQNsRoHYUdm2t046QCUJd51pKOts5DNtgMRmUY,69408
|
44
37
|
coralnet_toolbox/Explorer/__init__.py,sha256=wZPhf2oaUUyIQ2WK48Aj-4q1ENIZG2dGl1HF_mjhI6w,116
|
45
|
-
coralnet_toolbox/Explorer/transformer_models.py,sha256=
|
38
|
+
coralnet_toolbox/Explorer/transformer_models.py,sha256=yNgGoYEIWcSgCnCOSKdAatG4M6GRbtf4pVmUWGPxvWo,2878
|
46
39
|
coralnet_toolbox/Explorer/yolo_models.py,sha256=GicZrypDE699gut5KEW68Ui_KiTk4Ojt1uRkyDWJVI8,3473
|
47
40
|
coralnet_toolbox/IO/QtExportAnnotations.py,sha256=xeaS0BukC3cpkBIGT9DXRqHmvHhp-vOU47h6EoANpNg,4474
|
48
41
|
coralnet_toolbox/IO/QtExportCoralNetAnnotations.py,sha256=4royhF63EmeOlSIBX389EUjjvE-SF44_maW6qm52mdA,2778
|
49
42
|
coralnet_toolbox/IO/QtExportGeoJSONAnnotations.py,sha256=9HkHjQTRtH4VnYa50c5pyqQz30R_6gIH5i3xFF6kDWI,27759
|
50
43
|
coralnet_toolbox/IO/QtExportLabels.py,sha256=Vsav0wd1EK4g065aEWvxyNuvvM9BFB7UXxz6IJzwVBU,2588
|
51
|
-
coralnet_toolbox/IO/QtExportMaskAnnotations.py,sha256=
|
44
|
+
coralnet_toolbox/IO/QtExportMaskAnnotations.py,sha256=0nWAMdgDq_joI7aCpBIg4isi0sZ3HlLiE7IxiOgh2Wc,34213
|
52
45
|
coralnet_toolbox/IO/QtExportTagLabAnnotations.py,sha256=JL4r1a6_PUjCzWQjMxOzxtkF2gyqIttpD14OxEcW-dA,11330
|
53
46
|
coralnet_toolbox/IO/QtExportTagLabLabels.py,sha256=e6OL8UNtLRAJrovfs1cxVz0k2bHuJXdVmO-A0OVpgSk,3164
|
54
47
|
coralnet_toolbox/IO/QtExportViscoreAnnotations.py,sha256=AUTzVB-N9uwlQPSds74YXyPVZzEHph7HDq01R88OBJY,19166
|
@@ -56,12 +49,12 @@ coralnet_toolbox/IO/QtImportAnnotations.py,sha256=LYFmlsANRTdQqcQsIXfbWiTGNJcaeI
|
|
56
49
|
coralnet_toolbox/IO/QtImportCoralNetAnnotations.py,sha256=N6wQV48r2cs3_KkuxdM0MUQkgTMwv9iT9qAmLGpyCMk,9917
|
57
50
|
coralnet_toolbox/IO/QtImportCoralNetLabels.py,sha256=FKOawTboEEAC7M8KbyEtX7fXOoFKpU51EKNjWXb1DHk,4019
|
58
51
|
coralnet_toolbox/IO/QtImportFrames.py,sha256=7azCV-0dYTeySeXvlcawzwxswXNzxHU3u3nnaA0VoWs,45774
|
59
|
-
coralnet_toolbox/IO/QtImportImages.py,sha256=
|
52
|
+
coralnet_toolbox/IO/QtImportImages.py,sha256=KXl-Tlt_nSNZmhe63fHHkn2WlB15QQP-CXDD7sP6wKo,3911
|
60
53
|
coralnet_toolbox/IO/QtImportLabels.py,sha256=_xzm-TDoFVgAbjdBwvOscVskPcLN_z054P5IkT73ohU,3291
|
61
54
|
coralnet_toolbox/IO/QtImportTagLabAnnotations.py,sha256=AH970q5HYiBLfud8NHxxcfm58pyOX5qwic3x4bF5GlQ,12781
|
62
55
|
coralnet_toolbox/IO/QtImportTagLabLabels.py,sha256=cCqFBOrAlnbiOL0xFY8G_FSTmeVsnYWh-bmVE-rfg0k,3927
|
63
56
|
coralnet_toolbox/IO/QtImportViscoreAnnotations.py,sha256=TYlDzCLMXizoHFRiaofNdE-t9Cr7sJGj5NFsVUi6cjU,11871
|
64
|
-
coralnet_toolbox/IO/QtOpenProject.py,sha256=
|
57
|
+
coralnet_toolbox/IO/QtOpenProject.py,sha256=LVgT2t38MQ4GA4u2mAppTzFJiB3Pz1mynvOv161Q7lQ,14846
|
65
58
|
coralnet_toolbox/IO/QtSaveProject.py,sha256=g7Uydya1Rcvh6GX3NfpQUgyZzs0wUDq1sJnmihx-8cM,10441
|
66
59
|
coralnet_toolbox/IO/__init__.py,sha256=M3KH90zIoOVoPu1nDS-gvoVV3O24S_KM-4CvxXR-nfw,1538
|
67
60
|
coralnet_toolbox/Icons/1.png,sha256=Ygcz3idjoa-RNaPXQXbHfw853DhnpD6iBa3nNFVimJ4,180
|
@@ -93,6 +86,7 @@ coralnet_toolbox/Icons/rocket.png,sha256=iMlRGlrNBS_dNBD2XIpN4RSrphCGbw_Ds1AYJ01
|
|
93
86
|
coralnet_toolbox/Icons/select.png,sha256=twnMIO9ylQYjvyGnAR28V6K3ds6xpArZQTrvf0uxS6g,1896
|
94
87
|
coralnet_toolbox/Icons/settings.png,sha256=rklROt3oKrfEk_qwN9J-JwvKok08iOkZy3OD4oNsLJQ,1376
|
95
88
|
coralnet_toolbox/Icons/snake.png,sha256=cwcekSkXwDi_fhtTU48u7FN4bIybbY53cWK0n7-IN9A,2361
|
89
|
+
coralnet_toolbox/Icons/system_monitor.png,sha256=ui6377kyFMHLnbfSFiE5NAJVnC16tku4RDi7Rv5vJ-0,739
|
96
90
|
coralnet_toolbox/Icons/target.png,sha256=jzb-S_sXWT8MfbvefhDNsuTdAZgV2nGf1ieawaCkByM,1702
|
97
91
|
coralnet_toolbox/Icons/tile.png,sha256=WiXKBpWVBfPv7gC8dnkc_gW3wuLQmLUyxYMWEM-G9ZU,382
|
98
92
|
coralnet_toolbox/Icons/transparent.png,sha256=ZkuGkVzh6zLVNau1Wj166-TtUlbCRqJObGt4vxMxnLk,1098
|
@@ -143,7 +137,7 @@ coralnet_toolbox/MachineLearning/ExportDataset/QtClassify.py,sha256=5LB8m2zJ24hj
|
|
143
137
|
coralnet_toolbox/MachineLearning/ExportDataset/QtDetect.py,sha256=ptZ0rUoZ1Tc0RGjKuXU15ZTM87m3gO8vLu6I7w5PVgs,6669
|
144
138
|
coralnet_toolbox/MachineLearning/ExportDataset/QtSegment.py,sha256=7sDczfciPPbGgMdb6D9pZn27DHs_Spg1bd-bc9_hI7Y,6696
|
145
139
|
coralnet_toolbox/MachineLearning/ExportDataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
146
|
-
coralnet_toolbox/MachineLearning/ImportDataset/QtBase.py,sha256=
|
140
|
+
coralnet_toolbox/MachineLearning/ImportDataset/QtBase.py,sha256=hP-HZwYGV2q6cKYtRZb9_tuHxvYynaaNuvNy9JWGTEg,30600
|
147
141
|
coralnet_toolbox/MachineLearning/ImportDataset/QtDetect.py,sha256=1YQFAgfuPUUZ18fXbvs4GP9Mrp_-9kfeDdmJHEA5e7I,1121
|
148
142
|
coralnet_toolbox/MachineLearning/ImportDataset/QtSegment.py,sha256=D4bef57dCQa4nJWf8cUphrUILvbfT-a34C-rgpxi814,1163
|
149
143
|
coralnet_toolbox/MachineLearning/ImportDataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -179,25 +173,25 @@ coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/load_camera_params.py,sha
|
|
179
173
|
coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/run.py,sha256=eOXf7o9M9OB4T1BpvqBe3cx00VVTscw-YCCCHOOI2X8,26912
|
180
174
|
coralnet_toolbox/Rasters/ImageFilter.py,sha256=EhH1YoVjC29ER4qU4t9xwybeX9E012fLq04iPFfbaz4,7928
|
181
175
|
coralnet_toolbox/Rasters/QtRaster.py,sha256=qWqhKiZbBnv0JnCQvPXx6fQYENgSA7sp3vBUj4fdnhA,18435
|
182
|
-
coralnet_toolbox/Rasters/RasterManager.py,sha256=
|
176
|
+
coralnet_toolbox/Rasters/RasterManager.py,sha256=FH0d7Hj_E6sR2Eesd8sA8AA1Dlqteut9UyNd6WdrCBo,6622
|
183
177
|
coralnet_toolbox/Rasters/RasterTableModel.py,sha256=8ebirBkTUSy5Rdsoq10sqzDQBoYCH_Hu40dPiUhtlzc,15311
|
184
178
|
coralnet_toolbox/Rasters/__init__.py,sha256=Pi88uDQbtWxwHfJFdlsvbkwGNhtlyM_013l8bbJlFfw,428
|
185
179
|
coralnet_toolbox/Results/CombineResults.py,sha256=QrHyKhMrjNDtQ98PQabUflHhyv_8KXTGqU30tw9amV8,4523
|
186
|
-
coralnet_toolbox/Results/ConvertResults.py,sha256=
|
180
|
+
coralnet_toolbox/Results/ConvertResults.py,sha256=f9L1C7JQMVt7x2eSG4CAqpUDRhhc6eQZvTaqCiGUWmk,6310
|
187
181
|
coralnet_toolbox/Results/MapResults.py,sha256=sDieekB93RVKvD-9mW1zRsHOs85shYVIQklt9-kFJZI,8088
|
188
182
|
coralnet_toolbox/Results/Masks.py,sha256=C-zoobRaWXP_QdGcL7ZgSxytHOBdHIBUbQuGnoMZthE,5183
|
189
|
-
coralnet_toolbox/Results/ResultsProcessor.py,sha256=
|
183
|
+
coralnet_toolbox/Results/ResultsProcessor.py,sha256=WPyq4nETrnk9WpMaeFw0rlQRFqZkzAYz_qttT3_jaoA,17332
|
190
184
|
coralnet_toolbox/Results/__init__.py,sha256=WPdlq8aXzjrdQo5T3UqFh7jxge33iNEHiSRAmm0eJuw,630
|
191
185
|
coralnet_toolbox/SAM/QtBatchInference.py,sha256=UyuYLfPF4JrOmmuMOzshbKDEEribV669d9LURmuu6gg,6866
|
192
|
-
coralnet_toolbox/SAM/QtDeployGenerator.py,sha256=
|
193
|
-
coralnet_toolbox/SAM/QtDeployPredictor.py,sha256=
|
186
|
+
coralnet_toolbox/SAM/QtDeployGenerator.py,sha256=UtJH1ZQ9g_Wqa4s09PBMCrmNRpqUZZaTMpE7lfH_Xq0,26491
|
187
|
+
coralnet_toolbox/SAM/QtDeployPredictor.py,sha256=7jOFFnNqY7Ylr1IKjTI_YSrPYgCxHpI4ZBda7Kp806g,24413
|
194
188
|
coralnet_toolbox/SAM/__init__.py,sha256=Zxd75pFMrt5DfSmNNVSsQeCucIQ2rVaEiS0hT_OVIMM,293
|
195
189
|
coralnet_toolbox/SeeAnything/QtBatchInference.py,sha256=k3aftVzva84yATB4Su5DSI0lhkHDggUg3mVAx4AHmjw,7134
|
196
|
-
coralnet_toolbox/SeeAnything/QtDeployGenerator.py,sha256=
|
197
|
-
coralnet_toolbox/SeeAnything/QtDeployPredictor.py,sha256=
|
190
|
+
coralnet_toolbox/SeeAnything/QtDeployGenerator.py,sha256=oF01_J46xm1kGLhT7wtMI9BurzhSsucXs7nsW3917xM,76953
|
191
|
+
coralnet_toolbox/SeeAnything/QtDeployPredictor.py,sha256=sfaaJoDFM2ntdqD0CXsTSHRZIuCRfviVg4vqhG0sGdI,26804
|
198
192
|
coralnet_toolbox/SeeAnything/QtTrainModel.py,sha256=dQ6ZkeIr1migU-edGO-gQMENVP4o7WJsIANlSVhFK8k,28031
|
199
193
|
coralnet_toolbox/SeeAnything/__init__.py,sha256=4OgG9-aQ6_RZ942-Ift_q-kkp14kObMT4lDIIx9YSxQ,366
|
200
|
-
coralnet_toolbox/Tile/QtTileBatchInference.py,sha256=
|
194
|
+
coralnet_toolbox/Tile/QtTileBatchInference.py,sha256=oo7NeqEwwmxMEGBMo5v2SCnyQwJYq9pg-9yj3G_-vaM,10727
|
201
195
|
coralnet_toolbox/Tile/QtTileCreation.py,sha256=Cw6q0ZVXx0hU4uMuXA3OZ3_5bKu6oQgnlMFwaXSZbS0,39963
|
202
196
|
coralnet_toolbox/Tile/__init__.py,sha256=BlV-1bO9u-olfNAIvukUMPRzlw8dx-ayjrjMRQ-bSsk,463
|
203
197
|
coralnet_toolbox/Tile/TileDataset/QtBase.py,sha256=5zWtnNVbril0i3aVFv5q0VyMYcFP0Qb09ylqQ4smBXw,18623
|
@@ -208,23 +202,31 @@ coralnet_toolbox/Tile/TileDataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
208
202
|
coralnet_toolbox/Tools/QtCutSubTool.py,sha256=3mO8VLrS_sKuEukGQljF_gX8PMdf1za-dxudB6lyCGI,6456
|
209
203
|
coralnet_toolbox/Tools/QtMoveSubTool.py,sha256=K5uXEGGl8nwKvGI0DBGZ8ILZsxWf22HVSfyLr0hKhuE,2165
|
210
204
|
coralnet_toolbox/Tools/QtPanTool.py,sha256=q0g5Ryse6mIZ_Ss4qJw5NNwgoLuQQBIyQTXNFL643-s,3062
|
211
|
-
coralnet_toolbox/Tools/QtPatchTool.py,sha256
|
212
|
-
coralnet_toolbox/Tools/QtPolygonTool.py,sha256=
|
213
|
-
coralnet_toolbox/Tools/QtRectangleTool.py,sha256=
|
205
|
+
coralnet_toolbox/Tools/QtPatchTool.py,sha256=-kmuJeGoua8EW5tHzSP4LvzTbPajAYTMOfdSi7oxK84,5742
|
206
|
+
coralnet_toolbox/Tools/QtPolygonTool.py,sha256=P1Csvzu-gAreVRyI0YCB5jNLUK7sPcLY7teX2P9E3Gw,11282
|
207
|
+
coralnet_toolbox/Tools/QtRectangleTool.py,sha256=TduGaouBgphStyr1-gA0RqY6erTZs-qUA5FIr1qaXkQ,8969
|
214
208
|
coralnet_toolbox/Tools/QtResizeSubTool.py,sha256=cWJDx8PEtxoCLQKuyEyZ6ccBzFKau9j1djrSSpDgaq8,6524
|
215
|
-
coralnet_toolbox/Tools/QtSAMTool.py,sha256=
|
216
|
-
coralnet_toolbox/Tools/QtSeeAnythingTool.py,sha256=
|
209
|
+
coralnet_toolbox/Tools/QtSAMTool.py,sha256=fEEif1uah5DxNxS3oCIll4OiGgLETY87ue852MIekIk,36680
|
210
|
+
coralnet_toolbox/Tools/QtSeeAnythingTool.py,sha256=qo8IT8tOs_k7ck2xgMrL_Edc6otv_kQbhdo3yWs65aE,38666
|
217
211
|
coralnet_toolbox/Tools/QtSelectSubTool.py,sha256=_FIjLhnEVY19Q87jhRKXGdghNfMBxxy_sECAIUo0BZA,3294
|
218
212
|
coralnet_toolbox/Tools/QtSelectTool.py,sha256=qAXRIGmjdzWjaH6GwhvlQSodZuFa6OnyckzNVfVDG2w,20983
|
219
213
|
coralnet_toolbox/Tools/QtSubTool.py,sha256=H25FoFqywdi6Bl35MfpEXGrr48ZTgdRRvHMxUy1tqN4,1601
|
220
214
|
coralnet_toolbox/Tools/QtSubtractSubTool.py,sha256=u9zbkila7hJ_AEhWRM6e_z0OgGs5xqO5zbqVetvCAEU,2682
|
221
|
-
coralnet_toolbox/Tools/QtTool.py,sha256=
|
222
|
-
coralnet_toolbox/Tools/QtWorkAreaTool.py,sha256=
|
215
|
+
coralnet_toolbox/Tools/QtTool.py,sha256=Nvf8pqdanf3QMVEvSilFhijXIuj-18jUuVz-tlTuNgY,5677
|
216
|
+
coralnet_toolbox/Tools/QtWorkAreaTool.py,sha256=uncOi2vWanPxrxXQimuAR0wqokHWlsm4VhzV1wC6Q9s,22884
|
223
217
|
coralnet_toolbox/Tools/QtZoomTool.py,sha256=F9CAoABv1jxcUS7dyIh1FYjgjOXYRI1xtBPNIR1g62o,4041
|
224
218
|
coralnet_toolbox/Tools/__init__.py,sha256=UYStZw1eA_yJ07IVli1MYSvk0pSCs1aS169LcQo630s,867
|
225
|
-
coralnet_toolbox
|
226
|
-
coralnet_toolbox
|
227
|
-
coralnet_toolbox
|
228
|
-
coralnet_toolbox
|
229
|
-
coralnet_toolbox
|
230
|
-
coralnet_toolbox
|
219
|
+
coralnet_toolbox/Transformers/QtBatchInference.py,sha256=Adry1H-oIMV6Ppo8yRJRx79oeG1yUthT5jqszj7EJ20,5764
|
220
|
+
coralnet_toolbox/Transformers/QtDeployModel.py,sha256=oH82XtP07f0n6fUhlPADUbFujTJt0ppSvitX15KeuaQ,25669
|
221
|
+
coralnet_toolbox/Transformers/__init__.py,sha256=Oef7mKgwlK_hi5ZtXlRTvpyKhf98JPwBELWE3zjrp9U,207
|
222
|
+
coralnet_toolbox/Transformers/Models/GroundingDINO.py,sha256=V77tapTLsXtTISbqsV9ZSGYgkJQTI1RKsT95QagYhqk,2747
|
223
|
+
coralnet_toolbox/Transformers/Models/OWLViT.py,sha256=l9R9XKN7grw6gF7EC9DWxF5sUsApLfi0WO-zj6pVVHU,2781
|
224
|
+
coralnet_toolbox/Transformers/Models/OmDetTurbo.py,sha256=vaXaQNqBCvnEFcPMt6x_EJI-gf-Wy3eYZPak7a527WY,2592
|
225
|
+
coralnet_toolbox/Transformers/Models/QtBase.py,sha256=nB9a4ZZqo2H4NW-uiPPpZPapSChlEcviq-uw_lxWBUg,4640
|
226
|
+
coralnet_toolbox/Transformers/Models/__init__.py,sha256=icJnQkt2vZksubEJuih0sT0q2vLR_Y-12WuTGquvxt8,260
|
227
|
+
coralnet_toolbox-0.0.77.dist-info/licenses/LICENSE.txt,sha256=AURacZ_G_PZKqqPQ9VB9Sqegblk67RNgWSGAYKwXXMY,521
|
228
|
+
coralnet_toolbox-0.0.77.dist-info/METADATA,sha256=iwt0mxJ10RqbsFrHIrnkIrVYUlGLPUOTNMfPIScR-5Q,15381
|
229
|
+
coralnet_toolbox-0.0.77.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
|
230
|
+
coralnet_toolbox-0.0.77.dist-info/entry_points.txt,sha256=oEeMoDlJ_2lq95quOeDHIx9hZpubUlSo80OLtgbcrbM,63
|
231
|
+
coralnet_toolbox-0.0.77.dist-info/top_level.txt,sha256=SMWPh4_9JfB8zVpPOOvjucV2_B_hvWW7bNWmMjG0LsY,17
|
232
|
+
coralnet_toolbox-0.0.77.dist-info/RECORD,,
|
@@ -1,81 +0,0 @@
|
|
1
|
-
from dataclasses import dataclass
|
2
|
-
|
3
|
-
import cv2
|
4
|
-
import numpy as np
|
5
|
-
|
6
|
-
import supervision as sv
|
7
|
-
|
8
|
-
from transformers import AutoProcessor, AutoModelForZeroShotObjectDetection
|
9
|
-
|
10
|
-
from autodistill.detection import CaptionOntology
|
11
|
-
from autodistill.helpers import load_image
|
12
|
-
|
13
|
-
from coralnet_toolbox.AutoDistill.Models.QtBase import QtBaseModel
|
14
|
-
|
15
|
-
|
16
|
-
# ----------------------------------------------------------------------------------------------------------------------
|
17
|
-
# Classes
|
18
|
-
# ----------------------------------------------------------------------------------------------------------------------
|
19
|
-
|
20
|
-
|
21
|
-
@dataclass
|
22
|
-
class GroundingDINOModel(QtBaseModel):
|
23
|
-
def __init__(self, ontology: CaptionOntology, model="SwinB", device: str = "cpu"):
|
24
|
-
super().__init__(ontology, device)
|
25
|
-
|
26
|
-
if model == "SwinB":
|
27
|
-
model_name = "IDEA-Research/grounding-dino-base"
|
28
|
-
else:
|
29
|
-
model_name = "IDEA-Research/grounding-dino-tiny"
|
30
|
-
|
31
|
-
self.processor = AutoProcessor.from_pretrained(model_name, use_fast=True)
|
32
|
-
self.model = AutoModelForZeroShotObjectDetection.from_pretrained(model_name).to(self.device)
|
33
|
-
|
34
|
-
def _process_predictions(self, image, texts, class_idx_mapper, confidence):
|
35
|
-
"""Process model predictions for a single image."""
|
36
|
-
inputs = self.processor(text=texts, images=image, return_tensors="pt").to(self.device)
|
37
|
-
outputs = self.model(**inputs)
|
38
|
-
|
39
|
-
results = self.processor.post_process_grounded_object_detection(
|
40
|
-
outputs,
|
41
|
-
inputs.input_ids,
|
42
|
-
box_threshold=confidence,
|
43
|
-
text_threshold=confidence,
|
44
|
-
target_sizes=[image.shape[:2]],
|
45
|
-
)[0]
|
46
|
-
|
47
|
-
boxes, scores, labels = (
|
48
|
-
results["boxes"],
|
49
|
-
results["scores"],
|
50
|
-
results["text_labels"],
|
51
|
-
)
|
52
|
-
|
53
|
-
final_boxes, final_scores, final_labels = [], [], []
|
54
|
-
|
55
|
-
for box, score, label in zip(boxes, scores, labels):
|
56
|
-
try:
|
57
|
-
box = box.detach().cpu().numpy().astype(int).tolist()
|
58
|
-
score = score.item()
|
59
|
-
# Grounding Dino issues...
|
60
|
-
label = class_idx_mapper[label.split(" ")[0]]
|
61
|
-
|
62
|
-
# Amplify scores
|
63
|
-
if score < confidence:
|
64
|
-
continue
|
65
|
-
|
66
|
-
final_boxes.append(box)
|
67
|
-
final_scores.append(score)
|
68
|
-
final_labels.append(label)
|
69
|
-
|
70
|
-
except Exception as e:
|
71
|
-
print(f"Error: Issue converting predictions:\n{e}")
|
72
|
-
continue
|
73
|
-
|
74
|
-
if len(final_boxes) == 0:
|
75
|
-
return None
|
76
|
-
|
77
|
-
return sv.Detections(
|
78
|
-
xyxy=np.array(final_boxes),
|
79
|
-
class_id=np.array(final_labels),
|
80
|
-
confidence=np.array(final_scores)
|
81
|
-
)
|
@@ -1,76 +0,0 @@
|
|
1
|
-
from dataclasses import dataclass
|
2
|
-
|
3
|
-
import cv2
|
4
|
-
import numpy as np
|
5
|
-
|
6
|
-
import supervision as sv
|
7
|
-
|
8
|
-
from transformers import OwlViTForObjectDetection, OwlViTProcessor
|
9
|
-
|
10
|
-
from autodistill.detection import CaptionOntology
|
11
|
-
from autodistill.helpers import load_image
|
12
|
-
|
13
|
-
from coralnet_toolbox.AutoDistill.Models.QtBase import QtBaseModel
|
14
|
-
|
15
|
-
|
16
|
-
# ----------------------------------------------------------------------------------------------------------------------
|
17
|
-
# Classes
|
18
|
-
# ----------------------------------------------------------------------------------------------------------------------
|
19
|
-
|
20
|
-
|
21
|
-
@dataclass
|
22
|
-
class OWLViTModel(QtBaseModel):
|
23
|
-
def __init__(self, ontology: CaptionOntology, device: str = "cpu"):
|
24
|
-
super().__init__(ontology, device)
|
25
|
-
|
26
|
-
model_name = "google/owlvit-base-patch32"
|
27
|
-
self.processor = OwlViTProcessor.from_pretrained(model_name, use_fast=True)
|
28
|
-
self.model = OwlViTForObjectDetection.from_pretrained(model_name).to(self.device)
|
29
|
-
|
30
|
-
def _process_predictions(self, image, texts, class_idx_mapper, confidence):
|
31
|
-
"""Process model predictions for a single image."""
|
32
|
-
inputs = self.processor(text=texts, images=image, return_tensors="pt").to(self.device)
|
33
|
-
outputs = self.model(**inputs)
|
34
|
-
|
35
|
-
results = self.processor.post_process_object_detection(
|
36
|
-
outputs,
|
37
|
-
threshold=confidence,
|
38
|
-
target_sizes=[image.shape[:2]]
|
39
|
-
)[0]
|
40
|
-
|
41
|
-
boxes, scores, labels = (
|
42
|
-
results["boxes"],
|
43
|
-
results["scores"],
|
44
|
-
results["labels"],
|
45
|
-
)
|
46
|
-
|
47
|
-
final_boxes, final_scores, final_labels = [], [], []
|
48
|
-
|
49
|
-
for box, score, label in zip(boxes, scores, labels):
|
50
|
-
try:
|
51
|
-
box = box.detach().cpu().numpy().astype(int).tolist()
|
52
|
-
score = score.item()
|
53
|
-
label_index = label.item()
|
54
|
-
class_label = texts[label_index]
|
55
|
-
label = class_idx_mapper[class_label]
|
56
|
-
|
57
|
-
# Filter by confidence
|
58
|
-
if score < confidence:
|
59
|
-
continue
|
60
|
-
|
61
|
-
final_boxes.append(box)
|
62
|
-
final_scores.append(score)
|
63
|
-
final_labels.append(label)
|
64
|
-
|
65
|
-
except Exception as e:
|
66
|
-
print(f"Error: Issue converting predictions:\n{e}")
|
67
|
-
continue
|
68
|
-
|
69
|
-
if len(final_boxes) == 0:
|
70
|
-
return None
|
71
|
-
|
72
|
-
return sv.Detections(
|
73
|
-
xyxy=np.array(final_boxes),
|
74
|
-
class_id=np.array(final_labels),
|
75
|
-
confidence=np.array(final_scores)
|
76
|
-
)
|
@@ -1,75 +0,0 @@
|
|
1
|
-
from dataclasses import dataclass
|
2
|
-
|
3
|
-
import cv2
|
4
|
-
import numpy as np
|
5
|
-
|
6
|
-
import supervision as sv
|
7
|
-
|
8
|
-
from transformers import AutoProcessor, OmDetTurboForObjectDetection
|
9
|
-
|
10
|
-
from autodistill.detection import CaptionOntology
|
11
|
-
from autodistill.helpers import load_image
|
12
|
-
|
13
|
-
from coralnet_toolbox.AutoDistill.Models.QtBase import QtBaseModel
|
14
|
-
|
15
|
-
|
16
|
-
# ----------------------------------------------------------------------------------------------------------------------
|
17
|
-
# Classes
|
18
|
-
# ----------------------------------------------------------------------------------------------------------------------
|
19
|
-
|
20
|
-
|
21
|
-
@dataclass
|
22
|
-
class OmDetTurboModel(QtBaseModel):
|
23
|
-
def __init__(self, ontology: CaptionOntology, device: str = "cpu"):
|
24
|
-
super().__init__(ontology, device)
|
25
|
-
|
26
|
-
model_name = "omlab/omdet-turbo-swin-tiny-hf"
|
27
|
-
self.processor = AutoProcessor.from_pretrained(model_name, use_fast=True)
|
28
|
-
self.model = OmDetTurboForObjectDetection.from_pretrained(model_name).to(self.device)
|
29
|
-
|
30
|
-
def _process_predictions(self, image, texts, class_idx_mapper, confidence):
|
31
|
-
"""Process model predictions for a single image."""
|
32
|
-
inputs = self.processor(text=texts, images=image, return_tensors="pt").to(self.device)
|
33
|
-
outputs = self.model(**inputs)
|
34
|
-
|
35
|
-
results = self.processor.post_process_grounded_object_detection(
|
36
|
-
outputs,
|
37
|
-
threshold=confidence,
|
38
|
-
target_sizes=[image.shape[:2]],
|
39
|
-
text_labels=texts,
|
40
|
-
)[0]
|
41
|
-
|
42
|
-
boxes, scores, labels = (
|
43
|
-
results["boxes"],
|
44
|
-
results["scores"],
|
45
|
-
results["text_labels"],
|
46
|
-
)
|
47
|
-
|
48
|
-
final_boxes, final_scores, final_labels = [], [], []
|
49
|
-
|
50
|
-
for box, score, label in zip(boxes, scores, labels):
|
51
|
-
try:
|
52
|
-
box = box.detach().cpu().numpy().astype(int).tolist()
|
53
|
-
score = score.item()
|
54
|
-
label = class_idx_mapper[label]
|
55
|
-
|
56
|
-
# Amplify scores
|
57
|
-
if score < confidence:
|
58
|
-
continue
|
59
|
-
|
60
|
-
final_boxes.append(box)
|
61
|
-
final_scores.append(score)
|
62
|
-
final_labels.append(label)
|
63
|
-
|
64
|
-
except Exception as e:
|
65
|
-
print(f"Error: Issue converting predictions:\n{e}")
|
66
|
-
continue
|
67
|
-
|
68
|
-
if len(final_boxes) == 0:
|
69
|
-
return None
|
70
|
-
|
71
|
-
return sv.Detections(
|
72
|
-
xyxy=np.array(final_boxes),
|
73
|
-
class_id=np.array(final_labels),
|
74
|
-
confidence=np.array(final_scores)
|
75
|
-
)
|
@@ -1,112 +0,0 @@
|
|
1
|
-
from dataclasses import dataclass
|
2
|
-
from abc import ABC, abstractmethod
|
3
|
-
|
4
|
-
import cv2
|
5
|
-
import numpy as np
|
6
|
-
|
7
|
-
from autodistill.detection import CaptionOntology, DetectionBaseModel
|
8
|
-
from autodistill.helpers import load_image
|
9
|
-
|
10
|
-
|
11
|
-
# ----------------------------------------------------------------------------------------------------------------------
|
12
|
-
# Classes
|
13
|
-
# ----------------------------------------------------------------------------------------------------------------------
|
14
|
-
|
15
|
-
|
16
|
-
@dataclass
|
17
|
-
class QtBaseModel(DetectionBaseModel, ABC):
|
18
|
-
"""
|
19
|
-
Base class for CoralNet foundation models that provides common functionality for
|
20
|
-
handling inputs, processing image data, and formatting detection results.
|
21
|
-
"""
|
22
|
-
ontology: CaptionOntology
|
23
|
-
|
24
|
-
def __init__(self, ontology: CaptionOntology, device: str = "cpu"):
|
25
|
-
"""
|
26
|
-
Initialize the base model with ontology and device.
|
27
|
-
|
28
|
-
Args:
|
29
|
-
ontology: The CaptionOntology containing class labels
|
30
|
-
device: The compute device (cpu, cuda, etc.)
|
31
|
-
"""
|
32
|
-
self.ontology = ontology
|
33
|
-
self.device = device
|
34
|
-
self.processor = None
|
35
|
-
self.model = None
|
36
|
-
|
37
|
-
@abstractmethod
|
38
|
-
def _process_predictions(self, image, texts, class_idx_mapper, confidence):
|
39
|
-
"""
|
40
|
-
Process model predictions for a single image.
|
41
|
-
|
42
|
-
Args:
|
43
|
-
image: The input image
|
44
|
-
texts: The text prompts from the ontology
|
45
|
-
class_idx_mapper: Mapping from text labels to class indices
|
46
|
-
confidence: Confidence threshold
|
47
|
-
|
48
|
-
Returns:
|
49
|
-
sv.Detections object or None if no detections
|
50
|
-
"""
|
51
|
-
pass
|
52
|
-
|
53
|
-
def predict(self, input, confidence=0.01):
|
54
|
-
"""
|
55
|
-
Run inference on input images.
|
56
|
-
|
57
|
-
Args:
|
58
|
-
input: Can be an image path, a list of image paths, a numpy array, or a list of numpy arrays
|
59
|
-
confidence: Detection confidence threshold
|
60
|
-
|
61
|
-
Returns:
|
62
|
-
Either a single sv.Detections object or a list of sv.Detections objects
|
63
|
-
"""
|
64
|
-
# Normalize input into a list of CV2-format images
|
65
|
-
images = []
|
66
|
-
if isinstance(input, str):
|
67
|
-
# Single image path
|
68
|
-
images = [load_image(input, return_format="cv2")]
|
69
|
-
elif isinstance(input, np.ndarray):
|
70
|
-
# Single image numpy array or batch of images
|
71
|
-
if input.ndim == 3:
|
72
|
-
images = [cv2.cvtColor(input, cv2.COLOR_RGB2BGR)]
|
73
|
-
elif input.ndim == 4:
|
74
|
-
for img in input:
|
75
|
-
images.append(cv2.cvtColor(img, cv2.COLOR_RGB2BGR))
|
76
|
-
else:
|
77
|
-
raise ValueError("Unsupported numpy array dimensions.")
|
78
|
-
elif isinstance(input, list):
|
79
|
-
if all(isinstance(i, str) for i in input):
|
80
|
-
# List of image paths
|
81
|
-
for path in input:
|
82
|
-
images.append(load_image(path, return_format="cv2"))
|
83
|
-
elif all(isinstance(i, np.ndarray) for i in input):
|
84
|
-
# List of image arrays
|
85
|
-
for img in input:
|
86
|
-
images.append(cv2.cvtColor(img, cv2.COLOR_RGB2BGR))
|
87
|
-
else:
|
88
|
-
raise ValueError("List must contain all image paths or all numpy arrays.")
|
89
|
-
else:
|
90
|
-
raise ValueError(
|
91
|
-
"Input must be an image path, a list of image paths, a numpy array, or a list/array of numpy arrays."
|
92
|
-
)
|
93
|
-
|
94
|
-
detections_result = []
|
95
|
-
|
96
|
-
# Get text prompts and create class index mapper
|
97
|
-
texts = self.ontology.prompts()
|
98
|
-
class_idx_mapper = {label: idx for idx, label in enumerate(texts)}
|
99
|
-
|
100
|
-
# Loop through images
|
101
|
-
for image in images:
|
102
|
-
# Process predictions for this image
|
103
|
-
detection = self._process_predictions(image, texts, class_idx_mapper, confidence)
|
104
|
-
if detection is not None:
|
105
|
-
detections_result.append(detection)
|
106
|
-
|
107
|
-
# Return detections for a single image directly,
|
108
|
-
# or a list of detections if multiple images were passed
|
109
|
-
if len(detections_result) == 1:
|
110
|
-
return detections_result[0]
|
111
|
-
else:
|
112
|
-
return detections_result
|
File without changes
|
File without changes
|
{coralnet_toolbox-0.0.75.dist-info → coralnet_toolbox-0.0.77.dist-info}/licenses/LICENSE.txt
RENAMED
File without changes
|
File without changes
|