coralnet-toolbox 0.0.75__tar.gz → 0.0.77__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/PKG-INFO +9 -9
  2. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/README.md +4 -6
  3. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Annotations/QtPolygonAnnotation.py +57 -12
  4. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Annotations/QtRectangleAnnotation.py +44 -14
  5. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Common/QtGraphicsUtility.py +18 -8
  6. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Explorer/transformer_models.py +13 -2
  7. coralnet_toolbox-0.0.77/coralnet_toolbox/IO/QtExportMaskAnnotations.py +766 -0
  8. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtImportImages.py +7 -15
  9. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtOpenProject.py +15 -19
  10. coralnet_toolbox-0.0.77/coralnet_toolbox/Icons/system_monitor.png +0 -0
  11. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ImportDataset/QtBase.py +33 -8
  12. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/QtAnnotationWindow.py +4 -0
  13. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/QtEventFilter.py +5 -5
  14. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/QtImageWindow.py +4 -0
  15. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/QtMainWindow.py +104 -64
  16. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/QtProgressBar.py +1 -0
  17. coralnet_toolbox-0.0.77/coralnet_toolbox/QtSystemMonitor.py +370 -0
  18. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Rasters/RasterManager.py +5 -2
  19. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Results/ConvertResults.py +14 -8
  20. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Results/ResultsProcessor.py +3 -2
  21. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/SAM/QtDeployGenerator.py +1 -1
  22. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/SAM/QtDeployPredictor.py +10 -0
  23. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/SeeAnything/QtDeployGenerator.py +324 -177
  24. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/SeeAnything/QtDeployPredictor.py +10 -6
  25. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tile/QtTileBatchInference.py +4 -4
  26. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtPatchTool.py +6 -2
  27. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtPolygonTool.py +5 -3
  28. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtRectangleTool.py +17 -9
  29. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtSAMTool.py +144 -91
  30. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtSeeAnythingTool.py +4 -0
  31. coralnet_toolbox-0.0.77/coralnet_toolbox/Tools/QtTool.py +156 -0
  32. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtWorkAreaTool.py +4 -0
  33. coralnet_toolbox-0.0.77/coralnet_toolbox/Transformers/Models/GroundingDINO.py +72 -0
  34. coralnet_toolbox-0.0.77/coralnet_toolbox/Transformers/Models/OWLViT.py +72 -0
  35. coralnet_toolbox-0.0.77/coralnet_toolbox/Transformers/Models/OmDetTurbo.py +68 -0
  36. coralnet_toolbox-0.0.77/coralnet_toolbox/Transformers/Models/QtBase.py +121 -0
  37. {coralnet_toolbox-0.0.75/coralnet_toolbox/AutoDistill → coralnet_toolbox-0.0.77/coralnet_toolbox/Transformers}/Models/__init__.py +1 -1
  38. {coralnet_toolbox-0.0.75/coralnet_toolbox/AutoDistill → coralnet_toolbox-0.0.77/coralnet_toolbox/Transformers}/QtBatchInference.py +15 -15
  39. {coralnet_toolbox-0.0.75/coralnet_toolbox/AutoDistill → coralnet_toolbox-0.0.77/coralnet_toolbox/Transformers}/QtDeployModel.py +18 -16
  40. {coralnet_toolbox-0.0.75/coralnet_toolbox/AutoDistill → coralnet_toolbox-0.0.77/coralnet_toolbox/Transformers}/__init__.py +1 -1
  41. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/__init__.py +1 -1
  42. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/utilities.py +0 -15
  43. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox.egg-info/PKG-INFO +9 -9
  44. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox.egg-info/SOURCES.txt +11 -10
  45. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox.egg-info/requires.txt +4 -2
  46. coralnet_toolbox-0.0.77/diagram.svg +1 -0
  47. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/mkdocs.yml +1 -0
  48. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/pyproject.toml +2 -2
  49. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/requirements.txt +4 -2
  50. coralnet_toolbox-0.0.75/coralnet_toolbox/AutoDistill/Models/GroundingDINO.py +0 -81
  51. coralnet_toolbox-0.0.75/coralnet_toolbox/AutoDistill/Models/OWLViT.py +0 -76
  52. coralnet_toolbox-0.0.75/coralnet_toolbox/AutoDistill/Models/OmDetTurbo.py +0 -75
  53. coralnet_toolbox-0.0.75/coralnet_toolbox/AutoDistill/Models/QtBase.py +0 -112
  54. coralnet_toolbox-0.0.75/coralnet_toolbox/IO/QtExportMaskAnnotations.py +0 -592
  55. coralnet_toolbox-0.0.75/coralnet_toolbox/Tools/QtTool.py +0 -80
  56. coralnet_toolbox-0.0.75/diagram.svg +0 -1
  57. coralnet_toolbox-0.0.75/uv.lock +0 -1654
  58. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.editorconfig +0 -0
  59. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.gitallowed +0 -0
  60. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  61. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  62. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  63. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/ISSUE_TEMPLATE/general_question.md +0 -0
  64. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/workflows/diagram.yml +0 -0
  65. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/workflows/docs-build.yml +0 -0
  66. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/workflows/docs.yml +0 -0
  67. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/workflows/installation.yml +0 -0
  68. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/workflows/macos.yml +0 -0
  69. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/workflows/pypi.yml +0 -0
  70. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/workflows/ubuntu.yml +0 -0
  71. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.github/workflows/windows.yml +0 -0
  72. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/.gitignore +0 -0
  73. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/LICENSE.txt +0 -0
  74. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/MANIFEST.in +0 -0
  75. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Annotations/QtAnnotation.py +0 -0
  76. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Annotations/QtMaskAnnotation.py +0 -0
  77. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Annotations/QtMultiPolygonAnnotation.py +0 -0
  78. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Annotations/QtPatchAnnotation.py +0 -0
  79. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Annotations/__init__.py +0 -0
  80. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/BreakTime/QtBreakout.py +0 -0
  81. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/BreakTime/QtSnake.py +0 -0
  82. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/BreakTime/__init__.py +0 -0
  83. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Common/QtMarginInput.py +0 -0
  84. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Common/QtOverlapInput.py +0 -0
  85. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Common/QtTileSizeInput.py +0 -0
  86. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Common/QtUpdateImagePaths.py +0 -0
  87. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/CoralNet/QtAuthenticate.py +0 -0
  88. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/CoralNet/QtDownload.py +0 -0
  89. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/CoralNet/__init__.py +0 -0
  90. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Explorer/QtDataItem.py +0 -0
  91. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Explorer/QtExplorer.py +0 -0
  92. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Explorer/QtFeatureStore.py +0 -0
  93. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Explorer/QtSettingsWidgets.py +0 -0
  94. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Explorer/QtViewers.py +0 -0
  95. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Explorer/__init__.py +0 -0
  96. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Explorer/yolo_models.py +0 -0
  97. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtExportAnnotations.py +0 -0
  98. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtExportCoralNetAnnotations.py +0 -0
  99. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtExportGeoJSONAnnotations.py +0 -0
  100. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtExportLabels.py +0 -0
  101. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtExportTagLabAnnotations.py +0 -0
  102. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtExportTagLabLabels.py +0 -0
  103. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtExportViscoreAnnotations.py +0 -0
  104. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtImportAnnotations.py +0 -0
  105. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtImportCoralNetAnnotations.py +0 -0
  106. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtImportCoralNetLabels.py +0 -0
  107. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtImportFrames.py +0 -0
  108. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtImportLabels.py +0 -0
  109. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtImportTagLabAnnotations.py +0 -0
  110. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtImportTagLabLabels.py +0 -0
  111. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtImportViscoreAnnotations.py +0 -0
  112. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/QtSaveProject.py +0 -0
  113. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/IO/__init__.py +0 -0
  114. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/1.png +0 -0
  115. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/2.png +0 -0
  116. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/3.png +0 -0
  117. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/4.png +0 -0
  118. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/5.png +0 -0
  119. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/__init__.py +0 -0
  120. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/add.png +0 -0
  121. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/all.png +0 -0
  122. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/apple.png +0 -0
  123. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/breakout.png +0 -0
  124. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/coral.png +0 -0
  125. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/edit.png +0 -0
  126. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/eye.png +0 -0
  127. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/hide.png +0 -0
  128. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/home.png +0 -0
  129. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/lock.png +0 -0
  130. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/machine.png +0 -0
  131. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/magic.png +0 -0
  132. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/opaque.png +0 -0
  133. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/parameters.png +0 -0
  134. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/patch.png +0 -0
  135. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/polygon.png +0 -0
  136. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/rabbit.png +0 -0
  137. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/rectangle.png +0 -0
  138. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/remove.png +0 -0
  139. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/rocket.png +0 -0
  140. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/select.png +0 -0
  141. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/settings.png +0 -0
  142. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/snake.png +0 -0
  143. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/target.png +0 -0
  144. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/tile.png +0 -0
  145. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/transparent.png +0 -0
  146. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/turtle.png +0 -0
  147. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/unlock.png +0 -0
  148. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/user.png +0 -0
  149. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/wizard.png +0 -0
  150. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/workarea.png +0 -0
  151. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Icons/www.png +0 -0
  152. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/BatchInference/QtBase.py +0 -0
  153. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/BatchInference/QtClassify.py +0 -0
  154. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/BatchInference/QtDetect.py +0 -0
  155. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/BatchInference/QtSegment.py +0 -0
  156. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/BatchInference/__init__.py +0 -0
  157. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/__init__.py +0 -0
  158. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/classify/convnext_tiny.yaml +0 -0
  159. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/classify/efficientnet_b0.yaml +0 -0
  160. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/classify/mobilenet_v3_large.yaml +0 -0
  161. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/classify/swin_t.yaml +0 -0
  162. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/detect/convnext_tiny.yaml +0 -0
  163. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/detect/mobilenet_v3_large-fpn.yaml +0 -0
  164. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/detect/mobilenet_v3_small-fpn.yaml +0 -0
  165. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/detect/resnet101.yaml +0 -0
  166. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/detect/swin_t-fpn.yaml +0 -0
  167. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/detect/swin_t.yaml +0 -0
  168. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/detect/yolo11-p2.yaml +0 -0
  169. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/detect/yolo11-p6.yaml +0 -0
  170. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/segment/convnext_tiny.yaml +0 -0
  171. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/segment/swin_t-fpn.yaml +0 -0
  172. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/segment/swin_t.yaml +0 -0
  173. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/segment/yolo11-p2.yaml +0 -0
  174. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/Community/cfg/segment/yolo11-p6.yaml +0 -0
  175. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ConfusionMatrix.py +0 -0
  176. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/DeployModel/QtBase.py +0 -0
  177. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/DeployModel/QtClassify.py +0 -0
  178. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/DeployModel/QtDetect.py +0 -0
  179. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/DeployModel/QtSegment.py +0 -0
  180. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/DeployModel/__init__.py +0 -0
  181. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/EvaluateModel/QtBase.py +0 -0
  182. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/EvaluateModel/QtClassify.py +0 -0
  183. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/EvaluateModel/QtDetect.py +0 -0
  184. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/EvaluateModel/QtSegment.py +0 -0
  185. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/EvaluateModel/__init__.py +0 -0
  186. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ExportDataset/QtBase.py +0 -0
  187. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ExportDataset/QtClassify.py +0 -0
  188. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ExportDataset/QtDetect.py +0 -0
  189. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ExportDataset/QtSegment.py +0 -0
  190. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ExportDataset/__init__.py +0 -0
  191. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ImportDataset/QtDetect.py +0 -0
  192. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ImportDataset/QtSegment.py +0 -0
  193. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/ImportDataset/__init__.py +0 -0
  194. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/MergeDatasets/QtBase.py +0 -0
  195. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/MergeDatasets/QtClassify.py +0 -0
  196. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/MergeDatasets/__init__.py +0 -0
  197. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/OptimizeModel/QtBase.py +0 -0
  198. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/OptimizeModel/__init__.py +0 -0
  199. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TrainModel/QtBase.py +0 -0
  200. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TrainModel/QtClassify.py +0 -0
  201. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TrainModel/QtDetect.py +0 -0
  202. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TrainModel/QtSegment.py +0 -0
  203. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TrainModel/__init__.py +0 -0
  204. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TuneModel/QtBase.py +0 -0
  205. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TuneModel/QtClassify.py +0 -0
  206. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TuneModel/QtDetect.py +0 -0
  207. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TuneModel/QtSegment.py +0 -0
  208. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TuneModel/__init__.py +0 -0
  209. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/TuneModel/tuner.py +0 -0
  210. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/QtBase.py +0 -0
  211. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/QtClassify.py +0 -0
  212. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/QtDetect.py +0 -0
  213. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/QtInference.py +0 -0
  214. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/QtSegment.py +0 -0
  215. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/QtVideoWidget.py +0 -0
  216. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/__init__.py +0 -0
  217. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/bbox3d_utils.py +0 -0
  218. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/depth_model.py +0 -0
  219. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/detection_model.py +0 -0
  220. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/load_camera_params.py +0 -0
  221. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/YOLO3D/run.py +0 -0
  222. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/__init__.py +0 -0
  223. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/VideoInference/analytics.py +0 -0
  224. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/WeightedDataset.py +0 -0
  225. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/MachineLearning/__init__.py +0 -0
  226. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/QtConfidenceWindow.py +0 -0
  227. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/QtLabelWindow.py +0 -0
  228. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/QtPatchSampling.py +0 -0
  229. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/QtWorkArea.py +0 -0
  230. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Rasters/ImageFilter.py +0 -0
  231. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Rasters/QtRaster.py +0 -0
  232. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Rasters/RasterTableModel.py +0 -0
  233. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Rasters/__init__.py +0 -0
  234. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Results/CombineResults.py +0 -0
  235. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Results/MapResults.py +0 -0
  236. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Results/Masks.py +0 -0
  237. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Results/__init__.py +0 -0
  238. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/SAM/QtBatchInference.py +0 -0
  239. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/SAM/__init__.py +0 -0
  240. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/SeeAnything/QtBatchInference.py +0 -0
  241. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/SeeAnything/QtTrainModel.py +0 -0
  242. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/SeeAnything/__init__.py +0 -0
  243. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tile/QtTileCreation.py +0 -0
  244. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tile/TileDataset/QtBase.py +0 -0
  245. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tile/TileDataset/QtClassify.py +0 -0
  246. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tile/TileDataset/QtDetect.py +0 -0
  247. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tile/TileDataset/QtSegment.py +0 -0
  248. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tile/TileDataset/__init__.py +0 -0
  249. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tile/__init__.py +0 -0
  250. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtCutSubTool.py +0 -0
  251. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtMoveSubTool.py +0 -0
  252. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtPanTool.py +0 -0
  253. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtResizeSubTool.py +0 -0
  254. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtSelectSubTool.py +0 -0
  255. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtSelectTool.py +0 -0
  256. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtSubTool.py +0 -0
  257. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtSubtractSubTool.py +0 -0
  258. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/QtZoomTool.py +0 -0
  259. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/Tools/__init__.py +0 -0
  260. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox/main.py +0 -0
  261. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox.egg-info/dependency_links.txt +0 -0
  262. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox.egg-info/entry_points.txt +0 -0
  263. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/coralnet_toolbox.egg-info/top_level.txt +0 -0
  264. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/requirements_dev.txt +0 -0
  265. {coralnet_toolbox-0.0.75 → coralnet_toolbox-0.0.77}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: coralnet-toolbox
3
- Version: 0.0.75
3
+ Version: 0.0.77
4
4
  Summary: Tools for annotating and developing ML models for benthic imagery
5
5
  Author-email: Jordan Pierce <jordan.pierce@noaa.gov>
6
6
  License: MIT License
@@ -16,7 +16,7 @@ License-File: LICENSE.txt
16
16
  Requires-Dist: PyQt5>=5.15.11
17
17
  Requires-Dist: pyqtdarktheme
18
18
  Requires-Dist: pyqtgraph
19
- Requires-Dist: ultralytics>=8.3.152
19
+ Requires-Dist: ultralytics>=8.3.191
20
20
  Requires-Dist: lap>=0.5.12
21
21
  Requires-Dist: open-clip-torch>=2.20.0
22
22
  Requires-Dist: supervision>=0.24.0
@@ -27,7 +27,7 @@ Requires-Dist: pycocotools
27
27
  Requires-Dist: ujson
28
28
  Requires-Dist: timm==0.9.2
29
29
  Requires-Dist: autodistill
30
- Requires-Dist: transformers>=4.55.4
30
+ Requires-Dist: transformers>=4.56.0
31
31
  Requires-Dist: hf_xet
32
32
  Requires-Dist: x-segment-anything>=0.0.8
33
33
  Requires-Dist: yolo-tiling>=0.0.19
@@ -39,6 +39,8 @@ Requires-Dist: beautifulsoup4>=4.12.2
39
39
  Requires-Dist: webdriver_manager
40
40
  Requires-Dist: dill
41
41
  Requires-Dist: seaborn
42
+ Requires-Dist: GPUtil
43
+ Requires-Dist: psutil
42
44
  Provides-Extra: all
43
45
  Requires-Dist: coralnet-toolbox[extra]; extra == "all"
44
46
  Dynamic: license-file
@@ -114,6 +116,7 @@ For a complete installation guide (including CUDA setup), see the [Installation
114
116
  | **Overview** | Get the big picture | [📋 Read More](https://jordan-pierce.github.io/CoralNet-Toolbox/overview) |
115
117
  | **Installation** | Detailed setup instructions | [⚙️ Setup Guide](https://jordan-pierce.github.io/CoralNet-Toolbox/installation) |
116
118
  | **Usage** | Learn the tools | [🛠️ User Manual](https://jordan-pierce.github.io/CoralNet-Toolbox/usage) |
119
+ | **Hot Keys** | Keyboard shortcuts | [⌨️ Shortcuts](https://jordan-pierce.github.io/CoralNet-Toolbox/hot-keys) |
117
120
  | **Classification** | Community tutorial | [🧠 AI Tutorial](https://jordan-pierce.github.io/CoralNet-Toolbox/classify) |
118
121
 
119
122
  </div>
@@ -179,7 +182,7 @@ The toolbox integrates state-of-the-art models for efficient annotation workflow
179
182
  | **Framework** | **Models** | **Capability** |
180
183
  |:---:|:---:|:---:|
181
184
  | **YOLOE** | See Anything | Visual prompt detection |
182
- | **AutoDistill** | Grounding DINO • OWLViT • OmDetTurbo | Zero-shot detection |
185
+ | **Transformers** | Grounding DINO • OWLViT • OmDetTurbo | Zero-shot detection |
183
186
 
184
187
  </div>
185
188
 
@@ -277,12 +280,9 @@ uv pip install coralnet-toolbox
277
280
  ### 🚀 **Step 3: GPU Acceleration (Optional)**
278
281
  For CUDA-enabled systems:
279
282
  ```bash
280
- # Example for CUDA 11.8
281
- conda install nvidia/label/cuda-11.8.0::cuda-nvcc -y
282
- conda install nvidia/label/cuda-11.8.0::cuda-toolkit -y
283
-
283
+ # Example for CUDA 12.9
284
284
  # Install PyTorch with CUDA support
285
- uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 --upgrade
285
+ uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu129 --upgrade
286
286
  ```
287
287
 
288
288
  ### 🏃‍♂️ **Step 4: Launch**
@@ -69,6 +69,7 @@ For a complete installation guide (including CUDA setup), see the [Installation
69
69
  | **Overview** | Get the big picture | [📋 Read More](https://jordan-pierce.github.io/CoralNet-Toolbox/overview) |
70
70
  | **Installation** | Detailed setup instructions | [⚙️ Setup Guide](https://jordan-pierce.github.io/CoralNet-Toolbox/installation) |
71
71
  | **Usage** | Learn the tools | [🛠️ User Manual](https://jordan-pierce.github.io/CoralNet-Toolbox/usage) |
72
+ | **Hot Keys** | Keyboard shortcuts | [⌨️ Shortcuts](https://jordan-pierce.github.io/CoralNet-Toolbox/hot-keys) |
72
73
  | **Classification** | Community tutorial | [🧠 AI Tutorial](https://jordan-pierce.github.io/CoralNet-Toolbox/classify) |
73
74
 
74
75
  </div>
@@ -134,7 +135,7 @@ The toolbox integrates state-of-the-art models for efficient annotation workflow
134
135
  | **Framework** | **Models** | **Capability** |
135
136
  |:---:|:---:|:---:|
136
137
  | **YOLOE** | See Anything | Visual prompt detection |
137
- | **AutoDistill** | Grounding DINO • OWLViT • OmDetTurbo | Zero-shot detection |
138
+ | **Transformers** | Grounding DINO • OWLViT • OmDetTurbo | Zero-shot detection |
138
139
 
139
140
  </div>
140
141
 
@@ -232,12 +233,9 @@ uv pip install coralnet-toolbox
232
233
  ### 🚀 **Step 3: GPU Acceleration (Optional)**
233
234
  For CUDA-enabled systems:
234
235
  ```bash
235
- # Example for CUDA 11.8
236
- conda install nvidia/label/cuda-11.8.0::cuda-nvcc -y
237
- conda install nvidia/label/cuda-11.8.0::cuda-toolkit -y
238
-
236
+ # Example for CUDA 12.9
239
237
  # Install PyTorch with CUDA support
240
- uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 --upgrade
238
+ uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu129 --upgrade
241
239
  ```
242
240
 
243
241
  ### 🏃‍♂️ **Step 4: Launch**
@@ -306,20 +306,30 @@ class PolygonAnnotation(Annotation):
306
306
  self.set_cropped_bbox()
307
307
  # Get the bounding box of the polygon
308
308
  min_x, min_y, max_x, max_y = self.cropped_bbox
309
-
309
+
310
+ # Ensure min/max values are correctly ordered
311
+ min_x, max_x = min(min_x, max_x), max(min_x, max_x)
312
+ min_y, max_y = min(min_y, max_y), max(min_y, max_y)
313
+
314
+ # Clamp values to image bounds
315
+ min_x = max(0, min(rasterio_src.width - 1, min_x))
316
+ min_y = max(0, min(rasterio_src.height - 1, min_y))
317
+ max_x = max(min_x + 1, min(rasterio_src.width, max_x))
318
+ max_y = max(min_y + 1, min(rasterio_src.height, max_y))
319
+
310
320
  # Calculate the window for rasterio
311
321
  window = Window(
312
- col_off=max(0, int(min_x)),
313
- row_off=max(0, int(min_y)),
314
- width=min(rasterio_src.width - int(min_x), int(max_x - min_x)),
315
- height=min(rasterio_src.height - int(min_y), int(max_y - min_y))
322
+ col_off=int(min_x),
323
+ row_off=int(min_y),
324
+ width=int(max_x - min_x),
325
+ height=int(max_y - min_y)
316
326
  )
317
-
327
+
318
328
  # Convert rasterio to QImage
319
329
  q_image = rasterio_to_cropped_image(self.rasterio_src, window)
320
330
  # Convert QImage to QPixmap
321
331
  self.cropped_image = QPixmap.fromImage(q_image)
322
-
332
+
323
333
  self.annotationUpdated.emit(self) # Notify update
324
334
 
325
335
  def create_graphics_item(self, scene: QGraphicsScene):
@@ -423,7 +433,7 @@ class PolygonAnnotation(Annotation):
423
433
  self.update_graphics_item()
424
434
  self.annotationUpdated.emit(self) # Notify update
425
435
 
426
- def update_annotation_size(self, delta: float):
436
+ def update_annotation_size(self, scale_factor: float):
427
437
  """
428
438
  Grow/shrink the polygon and its holes by scaling vertices radially from the centroid.
429
439
  """
@@ -433,18 +443,53 @@ class PolygonAnnotation(Annotation):
433
443
  return
434
444
 
435
445
  # 1. Use the true geometric centroid as the pivot for scaling.
436
- # This is correctly calculated by the new set_centroid() method.
437
446
  centroid_x = self.center_xy.x()
438
447
  centroid_y = self.center_xy.y()
439
448
 
440
- # 2. Determine the scale factor (this logic remains the same).
449
+ # 2. Determine the scale factor.
441
450
  step = 0.01 # Adjust for finer or coarser changes
442
- if delta > 1.0:
451
+ if scale_factor > 1.0:
443
452
  scale = 1.0 + step
444
- elif delta < 1.0:
453
+ elif scale_factor < 1.0:
445
454
  scale = 1.0 - step
446
455
  else:
447
456
  scale = 1.0
457
+
458
+ # Check for image boundaries before scaling
459
+ if hasattr(self, 'rasterio_src'):
460
+ # Before scaling, check if any point would go beyond image boundaries
461
+ img_width = self.rasterio_src.width
462
+ img_height = self.rasterio_src.height
463
+ padding = 10 # pixels of padding
464
+
465
+ # Check outer boundary points
466
+ for p in self.points:
467
+ dx = p.x() - centroid_x
468
+ dy = p.y() - centroid_y
469
+ new_x = centroid_x + dx * scale
470
+ new_y = centroid_y + dy * scale
471
+
472
+ if new_x < -padding or \
473
+ new_y < -padding or \
474
+ new_x > img_width + padding or \
475
+ new_y > img_height + padding:
476
+ # Point would be out of bounds, don't scale
477
+ return
478
+
479
+ # Check holes points too
480
+ for hole in self.holes:
481
+ for p in hole:
482
+ dx = p.x() - centroid_x
483
+ dy = p.y() - centroid_y
484
+ new_x = centroid_x + dx * scale
485
+ new_y = centroid_y + dy * scale
486
+
487
+ if new_x < -padding or \
488
+ new_y < -padding or \
489
+ new_x > img_width + padding or \
490
+ new_y > img_height + padding:
491
+ # Point would be out of bounds, don't scale
492
+ return
448
493
 
449
494
  # 3. Scale the outer boundary points.
450
495
  new_points = []
@@ -213,23 +213,29 @@ class RectangleAnnotation(Annotation):
213
213
  # Get the bounding box of the rectangle
214
214
  min_x, min_y, max_x, max_y = self.cropped_bbox
215
215
 
216
- # Ensure min/max values are correctly ordered to avoid negative width/height
216
+ # Ensure min/max values are correctly ordered
217
217
  min_x, max_x = min(min_x, max_x), max(min_x, max_x)
218
218
  min_y, max_y = min(min_y, max_y), max(min_y, max_y)
219
-
219
+
220
+ # Clamp values to image bounds
221
+ min_x = max(0, min(rasterio_src.width - 1, min_x))
222
+ min_y = max(0, min(rasterio_src.height - 1, min_y))
223
+ max_x = max(min_x + 1, min(rasterio_src.width, max_x))
224
+ max_y = max(min_y + 1, min(rasterio_src.height, max_y))
225
+
220
226
  # Calculate the window for rasterio
221
227
  window = Window(
222
- col_off=max(0, int(min_x)),
223
- row_off=max(0, int(min_y)),
224
- width=min(rasterio_src.width - int(min_x), int(max_x - min_x)),
225
- height=min(rasterio_src.height - int(min_y), int(max_y - min_y))
228
+ col_off=int(min_x),
229
+ row_off=int(min_y),
230
+ width=int(max_x - min_x),
231
+ height=int(max_y - min_y)
226
232
  )
227
-
233
+
228
234
  # Convert rasterio to QImage
229
235
  q_image = rasterio_to_cropped_image(self.rasterio_src, window)
230
236
  # Convert QImage to QPixmap
231
237
  self.cropped_image = QPixmap.fromImage(q_image)
232
-
238
+
233
239
  self.annotationUpdated.emit(self) # Notify update
234
240
 
235
241
  def create_graphics_item(self, scene: QGraphicsScene):
@@ -282,13 +288,37 @@ class RectangleAnnotation(Annotation):
282
288
  # Clear the machine confidence
283
289
  self.update_user_confidence(self.label)
284
290
 
285
- # Update the size, graphic
286
- width = (self.bottom_right.x() - self.top_left.x()) * scale_factor
287
- height = (self.bottom_right.y() - self.top_left.y()) * scale_factor
288
- self.top_left = QPointF(self.center_xy.x() - width / 2, self.center_xy.y() - height / 2)
289
- self.bottom_right = QPointF(self.center_xy.x() + width / 2, self.center_xy.y() + height / 2)
291
+ # Calculate new dimensions
292
+ current_width = self.bottom_right.x() - self.top_left.x()
293
+ current_height = self.bottom_right.y() - self.top_left.y()
294
+ new_width = current_width * scale_factor
295
+ new_height = current_height * scale_factor
296
+
297
+ # Calculate tentative new corners
298
+ new_left = self.center_xy.x() - new_width / 2
299
+ new_top = self.center_xy.y() - new_height / 2
300
+ new_right = self.center_xy.x() + new_width / 2
301
+ new_bottom = self.center_xy.y() + new_height / 2
302
+
303
+ # Check if we're within valid image bounds (or use a reasonable padding)
304
+ # Assuming we have access to the image dimensions
305
+ if hasattr(self, 'rasterio_src'):
306
+ img_width = self.rasterio_src.width
307
+ img_height = self.rasterio_src.height
308
+
309
+ # Apply reasonable bounds with some margin
310
+ padding = 10 # pixels
311
+ if new_left < -padding or new_top < -padding or new_right > img_width + padding or new_bottom > img_height + padding:
312
+ # Don't resize beyond these limits
313
+ return
314
+
315
+ # Update the rectangle coordinates
316
+ self.top_left = QPointF(new_left, new_top)
317
+ self.bottom_right = QPointF(new_right, new_bottom)
318
+
319
+ # Update graphics and notify
290
320
  self.update_graphics_item()
291
- self.annotationUpdated.emit(self) # Notify update
321
+ self.annotationUpdated.emit(self)
292
322
 
293
323
  def resize(self, handle: str, new_pos: QPointF):
294
324
  """Resize the annotation based on the handle and new position."""
@@ -1,18 +1,17 @@
1
1
  import warnings
2
2
 
3
- warnings.filterwarnings("ignore", category=DeprecationWarning)
4
- warnings.filterwarnings("ignore", category=UserWarning)
5
-
6
- import os
7
3
 
4
+ from PyQt5.QtCore import Qt
5
+ from PyQt5.QtGui import QPen, QColor
8
6
  from PyQt5.QtWidgets import (QVBoxLayout, QLabel, QGroupBox, QFormLayout,
9
7
  QDoubleSpinBox, QComboBox, QSpinBox, QHBoxLayout,
10
8
  QWidget, QStackedWidget, QGridLayout, QMessageBox,
11
9
  QDialog, QListWidget, QPushButton, QFileDialog,
12
- QGraphicsView)
13
- from PyQt5.QtCore import Qt
10
+ QGraphicsView, QGraphicsLineItem)
11
+
14
12
 
15
- from coralnet_toolbox.Icons import get_icon
13
+ warnings.filterwarnings("ignore", category=DeprecationWarning)
14
+ warnings.filterwarnings("ignore", category=UserWarning)
16
15
 
17
16
 
18
17
  # ----------------------------------------------------------------------------------------------------------------------
@@ -161,4 +160,15 @@ class GraphicsUtility:
161
160
 
162
161
  view_width = round(extent.width())
163
162
  view_height = round(extent.height())
164
- return max(2, min(5, max(view_width, view_height) // 1000))
163
+ return max(2, min(5, max(view_width, view_height) // 1000))
164
+
165
+ @staticmethod
166
+ def create_guide_line(start_point, end_point):
167
+ """Create a semi-transparent guide line for crosshairs."""
168
+ line = QGraphicsLineItem(start_point.x(), start_point.y(), end_point.x(), end_point.y())
169
+ pen = QPen(QColor(255, 255, 255, 180)) # Semi-transparent white
170
+ pen.setWidth(1)
171
+ pen.setStyle(Qt.DashLine)
172
+ line.setPen(pen)
173
+ line.setZValue(1000) # Ensure it's drawn on top of other elements
174
+ return line
@@ -7,12 +7,23 @@ Qt dependencies.
7
7
  """
8
8
 
9
9
  TRANSFORMER_MODELS = {
10
+ 'ResNet-50': 'microsoft/resnet-50',
11
+ 'ResNet-101': 'microsoft/resnet-101',
10
12
  'DINOv2 (Small)': 'facebook/dinov2-small',
11
13
  'DINOv2 (Base)': 'facebook/dinov2-base',
12
14
  'DINOv2 (Large)': 'facebook/dinov2-large',
15
+ 'DINOv2 (Giant)': 'facebook/dinov2-giant',
16
+ 'DINOv2 (Giant ImageNet1k)': 'facebook/dinov2-giant-imagenet1k-1-layer',
13
17
  'DINOv3 ConvNext (Tiny)': 'facebook/dinov3-convnext-tiny-pretrain-lvd1689m',
14
- 'ResNet-50': 'microsoft/resnet-50',
15
- 'ResNet-101': 'microsoft/resnet-101',
18
+ 'DINOv3 ConvNext (Small)': 'facebook/dinov3-convnext-small-pretrain-lvd1689m',
19
+ 'DINOv3 ConvNext (Base)': 'facebook/dinov3-convnext-base-pretrain-lvd1689m',
20
+ 'DINOv3 ConvNext (Large)': 'facebook/dinov3-convnext-large-pretrain-lvd1689m',
21
+ 'DINOv3 ViT (Small/16)': 'facebook/dinov3-vits16-pretrain-lvd1689m',
22
+ 'DINOv3 ViT (Small/16+)': 'facebook/dinov3-vits16plus-pretrain-lvd1689m',
23
+ 'DINOv3 ViT (Base/16)': 'facebook/dinov3-vitb16-pretrain-lvd1689m',
24
+ 'DINOv3 ViT (Large/16)': 'facebook/dinov3-vitl16-pretrain-lvd1689m',
25
+ 'DINOv3 ViT (Huge/16+)': 'facebook/dinov3-vith16plus-pretrain-lvd1689m',
26
+ 'DINOv3 ViT (7B/16)': 'facebook/dinov3-vit7b16-pretrain-lvd1689m',
16
27
  'Swin Transformer (Tiny)': 'microsoft/swin-tiny-patch4-window7-224',
17
28
  'Swin Transformer (Base)': 'microsoft/swin-base-patch4-window7-224',
18
29
  'ViT (Base)': 'google/vit-base-patch16-224',