From 042d1345573b59c32310c42a357ba15c6de77fc2 Mon Sep 17 00:00:00 2001 From: copper Date: Mon, 11 Sep 2023 15:45:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=B8=BA=E5=BA=93=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/launch.json | 16 ++++++ isat.yaml | 2 +- main.py | 4 +- {tools => sam_ann}/__init__.py | 0 annotation.py => sam_ann/annotation.py | 0 configs.py => sam_ann/configs.py | 3 +- icons.py => sam_ann/icons.py | 0 icons_rc.py => sam_ann/icons_rc.py | 0 .../mobile_sam}/__init__.py | 0 .../mobile_sam}/automatic_mask_generator.py | 0 .../mobile_sam}/build_sam.py | 0 .../mobile_sam}/modeling/__init__.py | 0 .../mobile_sam}/modeling/common.py | 0 .../mobile_sam}/modeling/image_encoder.py | 0 .../mobile_sam}/modeling/mask_decoder.py | 0 .../mobile_sam}/modeling/prompt_encoder.py | 0 .../mobile_sam}/modeling/sam.py | 0 .../mobile_sam}/modeling/tiny_vit_sam.py | 0 .../mobile_sam}/modeling/transformer.py | 0 .../mobile_sam}/predictor.py | 0 .../mobile_sam}/utils/__init__.py | 0 .../mobile_sam}/utils/amg.py | 0 .../mobile_sam}/utils/onnx.py | 0 .../mobile_sam}/utils/transforms.py | 0 .../segment_any}/gpu_resource.py | 0 .../segment_any}/segment_any.py | 22 ++++---- .../segment_anything}/__init__.py | 0 .../automatic_mask_generator.py | 0 .../segment_anything}/build_sam.py | 0 .../segment_anything}/modeling/__init__.py | 0 .../segment_anything}/modeling/common.py | 0 .../modeling/image_encoder.py | 0 .../modeling/mask_decoder.py | 0 .../modeling/prompt_encoder.py | 0 .../segment_anything}/modeling/sam.py | 0 .../segment_anything}/modeling/transformer.py | 0 .../segment_anything}/predictor.py | 0 .../segment_anything}/utils/__init__.py | 0 .../segment_anything}/utils/amg.py | 0 .../segment_anything}/utils/onnx.py | 0 .../segment_anything}/utils/transforms.py | 0 .../segment_anything_hq}/__init__.py | 0 .../automatic_mask_generator.py | 0 .../segment_anything_hq}/build_sam.py | 0 .../build_sam_baseline.py | 0 .../segment_anything_hq}/modeling/__init__.py | 0 .../segment_anything_hq}/modeling/common.py | 0 .../modeling/image_encoder.py | 0 .../modeling/mask_decoder.py | 0 .../modeling/mask_decoder_hq.py | 0 .../modeling/prompt_encoder.py | 0 .../segment_anything_hq}/modeling/sam.py | 0 .../modeling/tiny_vit_sam.py | 0 .../modeling/transformer.py | 0 .../segment_anything_hq}/predictor.py | 0 .../segment_anything_hq}/utils/__init__.py | 0 .../segment_anything_hq}/utils/amg.py | 0 .../segment_anything_hq}/utils/onnx.py | 0 .../segment_anything_hq}/utils/transforms.py | 0 sam_ann/tools/__init__.py | 0 {tools => sam_ann/tools}/fromCOCO.py | 0 {tools => sam_ann/tools}/toCOCO.py | 0 {tools => sam_ann/tools}/toLABELME.py | 0 {tools => sam_ann/tools}/toVOC.py | 0 {ui => sam_ann/ui}/COCO_to_ISAT_dialog.py | 2 +- {ui => sam_ann/ui}/COCO_to_ISAT_dialog.ui | 0 {ui => sam_ann/ui}/ISAT_to_COCO_dialog.py | 2 +- {ui => sam_ann/ui}/ISAT_to_COCO_dialog.ui | 0 {ui => sam_ann/ui}/ISAT_to_LABELME_dialog.py | 0 {ui => sam_ann/ui}/ISAT_to_LABELME_dialog.ui | 0 {ui => sam_ann/ui}/ISAT_to_VOC_dialog.py | 2 +- {ui => sam_ann/ui}/ISAT_to_VOC_dialog.ui | 0 {ui => sam_ann/ui}/MainWindow.py | 3 +- {ui => sam_ann/ui}/MainWindow.ui | 0 {ui => sam_ann/ui}/about_dialog.py | 2 +- {ui => sam_ann/ui}/about_dialog.ui | 0 {ui => sam_ann/ui}/anno_dock.py | 2 +- {ui => sam_ann/ui}/anno_dock.ui | 0 {ui => sam_ann/ui}/category_choice.py | 2 +- {ui => sam_ann/ui}/category_choice.ui | 0 {ui => sam_ann/ui}/category_dock.py | 0 {ui => sam_ann/ui}/category_dock.ui | 0 {ui => sam_ann/ui}/en.ts | 0 {ui => sam_ann/ui}/file_dock.py | 0 {ui => sam_ann/ui}/file_dock.ui | 0 {ui => sam_ann/ui}/info_dock.py | 0 {ui => sam_ann/ui}/info_dock.ui | 0 {ui => sam_ann/ui}/setting_dialog.py | 1 - {ui => sam_ann/ui}/setting_dialog.ui | 0 {ui => sam_ann/ui}/shortcut_dialog.py | 2 +- {ui => sam_ann/ui}/shortcut_dialog.ui | 0 {ui => sam_ann/ui}/zh_CN.ts | 0 .../widgets}/COCO_to_ISAT_dialog.py | 4 +- .../widgets}/ISAT_to_COCO_dialog.py | 4 +- .../widgets}/ISAT_to_LABELME_dialog.py | 4 +- .../widgets}/ISAT_to_VOC_dialog.py | 6 +-- {widgets => sam_ann/widgets}/about_dialog.py | 2 +- .../widgets}/annos_dock_widget.py | 2 +- {widgets => sam_ann/widgets}/canvas.py | 11 ++-- .../widgets}/category_choice_dialog.py | 4 +- .../widgets}/category_dock_widget.py | 2 +- .../widgets}/category_edit_dialog.py | 4 +- .../widgets}/files_dock_widget.py | 2 +- .../widgets}/info_dock_widget.py | 2 +- {widgets => sam_ann/widgets}/mainwindow.py | 47 +++++++++--------- {widgets => sam_ann/widgets}/polygon.py | 2 +- .../widgets}/right_button_menu.py | 0 .../widgets}/setting_dialog.py | 4 +- .../widgets}/shortcut_dialog.py | 2 +- ui/zh_CN.qm | Bin 11589 -> 0 bytes 110 files changed, 95 insertions(+), 72 deletions(-) create mode 100644 .vscode/launch.json rename {tools => sam_ann}/__init__.py (100%) rename annotation.py => sam_ann/annotation.py (100%) rename configs.py => sam_ann/configs.py (93%) rename icons.py => sam_ann/icons.py (100%) rename icons_rc.py => sam_ann/icons_rc.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/__init__.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/automatic_mask_generator.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/build_sam.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/modeling/__init__.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/modeling/common.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/modeling/image_encoder.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/modeling/mask_decoder.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/modeling/prompt_encoder.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/modeling/sam.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/modeling/tiny_vit_sam.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/modeling/transformer.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/predictor.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/utils/__init__.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/utils/amg.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/utils/onnx.py (100%) rename {mobile_sam => sam_ann/mobile_sam}/utils/transforms.py (100%) rename {segment_any => sam_ann/segment_any}/gpu_resource.py (100%) rename {segment_any => sam_ann/segment_any}/segment_any.py (81%) rename {segment_anything => sam_ann/segment_anything}/__init__.py (100%) rename {segment_anything => sam_ann/segment_anything}/automatic_mask_generator.py (100%) rename {segment_anything => sam_ann/segment_anything}/build_sam.py (100%) rename {segment_anything => sam_ann/segment_anything}/modeling/__init__.py (100%) rename {segment_anything => sam_ann/segment_anything}/modeling/common.py (100%) rename {segment_anything => sam_ann/segment_anything}/modeling/image_encoder.py (100%) rename {segment_anything => sam_ann/segment_anything}/modeling/mask_decoder.py (100%) rename {segment_anything => sam_ann/segment_anything}/modeling/prompt_encoder.py (100%) rename {segment_anything => sam_ann/segment_anything}/modeling/sam.py (100%) rename {segment_anything => sam_ann/segment_anything}/modeling/transformer.py (100%) rename {segment_anything => sam_ann/segment_anything}/predictor.py (100%) rename {segment_anything => sam_ann/segment_anything}/utils/__init__.py (100%) rename {segment_anything => sam_ann/segment_anything}/utils/amg.py (100%) rename {segment_anything => sam_ann/segment_anything}/utils/onnx.py (100%) rename {segment_anything => sam_ann/segment_anything}/utils/transforms.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/__init__.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/automatic_mask_generator.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/build_sam.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/build_sam_baseline.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/modeling/__init__.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/modeling/common.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/modeling/image_encoder.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/modeling/mask_decoder.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/modeling/mask_decoder_hq.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/modeling/prompt_encoder.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/modeling/sam.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/modeling/tiny_vit_sam.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/modeling/transformer.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/predictor.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/utils/__init__.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/utils/amg.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/utils/onnx.py (100%) rename {segment_anything_hq => sam_ann/segment_anything_hq}/utils/transforms.py (100%) create mode 100644 sam_ann/tools/__init__.py rename {tools => sam_ann/tools}/fromCOCO.py (100%) rename {tools => sam_ann/tools}/toCOCO.py (100%) rename {tools => sam_ann/tools}/toLABELME.py (100%) rename {tools => sam_ann/tools}/toVOC.py (100%) rename {ui => sam_ann/ui}/COCO_to_ISAT_dialog.py (99%) rename {ui => sam_ann/ui}/COCO_to_ISAT_dialog.ui (100%) rename {ui => sam_ann/ui}/ISAT_to_COCO_dialog.py (99%) rename {ui => sam_ann/ui}/ISAT_to_COCO_dialog.ui (100%) rename {ui => sam_ann/ui}/ISAT_to_LABELME_dialog.py (100%) rename {ui => sam_ann/ui}/ISAT_to_LABELME_dialog.ui (100%) rename {ui => sam_ann/ui}/ISAT_to_VOC_dialog.py (99%) rename {ui => sam_ann/ui}/ISAT_to_VOC_dialog.ui (100%) rename {ui => sam_ann/ui}/MainWindow.py (99%) rename {ui => sam_ann/ui}/MainWindow.ui (100%) rename {ui => sam_ann/ui}/about_dialog.py (99%) rename {ui => sam_ann/ui}/about_dialog.ui (100%) rename {ui => sam_ann/ui}/anno_dock.py (99%) rename {ui => sam_ann/ui}/anno_dock.ui (100%) rename {ui => sam_ann/ui}/category_choice.py (99%) rename {ui => sam_ann/ui}/category_choice.ui (100%) rename {ui => sam_ann/ui}/category_dock.py (100%) rename {ui => sam_ann/ui}/category_dock.ui (100%) rename {ui => sam_ann/ui}/en.ts (100%) rename {ui => sam_ann/ui}/file_dock.py (100%) rename {ui => sam_ann/ui}/file_dock.ui (100%) rename {ui => sam_ann/ui}/info_dock.py (100%) rename {ui => sam_ann/ui}/info_dock.ui (100%) rename {ui => sam_ann/ui}/setting_dialog.py (99%) rename {ui => sam_ann/ui}/setting_dialog.ui (100%) rename {ui => sam_ann/ui}/shortcut_dialog.py (99%) rename {ui => sam_ann/ui}/shortcut_dialog.ui (100%) rename {ui => sam_ann/ui}/zh_CN.ts (100%) rename {widgets => sam_ann/widgets}/COCO_to_ISAT_dialog.py (96%) rename {widgets => sam_ann/widgets}/ISAT_to_COCO_dialog.py (96%) rename {widgets => sam_ann/widgets}/ISAT_to_LABELME_dialog.py (96%) rename {widgets => sam_ann/widgets}/ISAT_to_VOC_dialog.py (96%) rename {widgets => sam_ann/widgets}/about_dialog.py (87%) rename {widgets => sam_ann/widgets}/annos_dock_widget.py (99%) rename {widgets => sam_ann/widgets}/canvas.py (98%) rename {widgets => sam_ann/widgets}/category_choice_dialog.py (96%) rename {widgets => sam_ann/widgets}/category_dock_widget.py (97%) rename {widgets => sam_ann/widgets}/category_edit_dialog.py (97%) rename {widgets => sam_ann/widgets}/files_dock_widget.py (96%) rename {widgets => sam_ann/widgets}/info_dock_widget.py (95%) rename {widgets => sam_ann/widgets}/mainwindow.py (95%) rename {widgets => sam_ann/widgets}/polygon.py (99%) rename {widgets => sam_ann/widgets}/right_button_menu.py (100%) rename {widgets => sam_ann/widgets}/setting_dialog.py (98%) rename {widgets => sam_ann/widgets}/shortcut_dialog.py (86%) delete mode 100644 ui/zh_CN.qm diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..d0a740d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // 使用 IntelliSense 了解相关属性。 + // 悬停以查看现有属性的描述。 + // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python: main.py", + "type": "python", + "request": "launch", + "program": "main.py", + "console": "integratedTerminal", + "justMyCode": false + } + ] +} \ No newline at end of file diff --git a/isat.yaml b/isat.yaml index 1bf8c69..f033f5f 100644 --- a/isat.yaml +++ b/isat.yaml @@ -21,5 +21,5 @@ label: - color: '#5c3566' name: fence language: en -mask_alpha: 0.4 +mask_alpha: 0.7 vertex_size: 2 diff --git a/main.py b/main.py index 6791910..4398988 100644 --- a/main.py +++ b/main.py @@ -3,7 +3,9 @@ # import os from PyQt5 import QtWidgets -from widgets.mainwindow import MainWindow +import os +os.environ['SAM_ANN_BASE_DIR'] = os.path.dirname(__file__) +from sam_ann.widgets.mainwindow import MainWindow import sys diff --git a/tools/__init__.py b/sam_ann/__init__.py similarity index 100% rename from tools/__init__.py rename to sam_ann/__init__.py diff --git a/annotation.py b/sam_ann/annotation.py similarity index 100% rename from annotation.py rename to sam_ann/annotation.py diff --git a/configs.py b/sam_ann/configs.py similarity index 93% rename from configs.py rename to sam_ann/configs.py index bb3aaea..f51ed17 100644 --- a/configs.py +++ b/sam_ann/configs.py @@ -1,6 +1,7 @@ import yaml from enum import Enum - +import os +BASE_DIR = os.environ['SAM_ANN_BASE_DIR'] DEFAULT_CONFIG_FILE = 'default.yaml' CONFIG_FILE = 'isat.yaml' diff --git a/icons.py b/sam_ann/icons.py similarity index 100% rename from icons.py rename to sam_ann/icons.py diff --git a/icons_rc.py b/sam_ann/icons_rc.py similarity index 100% rename from icons_rc.py rename to sam_ann/icons_rc.py diff --git a/mobile_sam/__init__.py b/sam_ann/mobile_sam/__init__.py similarity index 100% rename from mobile_sam/__init__.py rename to sam_ann/mobile_sam/__init__.py diff --git a/mobile_sam/automatic_mask_generator.py b/sam_ann/mobile_sam/automatic_mask_generator.py similarity index 100% rename from mobile_sam/automatic_mask_generator.py rename to sam_ann/mobile_sam/automatic_mask_generator.py diff --git a/mobile_sam/build_sam.py b/sam_ann/mobile_sam/build_sam.py similarity index 100% rename from mobile_sam/build_sam.py rename to sam_ann/mobile_sam/build_sam.py diff --git a/mobile_sam/modeling/__init__.py b/sam_ann/mobile_sam/modeling/__init__.py similarity index 100% rename from mobile_sam/modeling/__init__.py rename to sam_ann/mobile_sam/modeling/__init__.py diff --git a/mobile_sam/modeling/common.py b/sam_ann/mobile_sam/modeling/common.py similarity index 100% rename from mobile_sam/modeling/common.py rename to sam_ann/mobile_sam/modeling/common.py diff --git a/mobile_sam/modeling/image_encoder.py b/sam_ann/mobile_sam/modeling/image_encoder.py similarity index 100% rename from mobile_sam/modeling/image_encoder.py rename to sam_ann/mobile_sam/modeling/image_encoder.py diff --git a/mobile_sam/modeling/mask_decoder.py b/sam_ann/mobile_sam/modeling/mask_decoder.py similarity index 100% rename from mobile_sam/modeling/mask_decoder.py rename to sam_ann/mobile_sam/modeling/mask_decoder.py diff --git a/mobile_sam/modeling/prompt_encoder.py b/sam_ann/mobile_sam/modeling/prompt_encoder.py similarity index 100% rename from mobile_sam/modeling/prompt_encoder.py rename to sam_ann/mobile_sam/modeling/prompt_encoder.py diff --git a/mobile_sam/modeling/sam.py b/sam_ann/mobile_sam/modeling/sam.py similarity index 100% rename from mobile_sam/modeling/sam.py rename to sam_ann/mobile_sam/modeling/sam.py diff --git a/mobile_sam/modeling/tiny_vit_sam.py b/sam_ann/mobile_sam/modeling/tiny_vit_sam.py similarity index 100% rename from mobile_sam/modeling/tiny_vit_sam.py rename to sam_ann/mobile_sam/modeling/tiny_vit_sam.py diff --git a/mobile_sam/modeling/transformer.py b/sam_ann/mobile_sam/modeling/transformer.py similarity index 100% rename from mobile_sam/modeling/transformer.py rename to sam_ann/mobile_sam/modeling/transformer.py diff --git a/mobile_sam/predictor.py b/sam_ann/mobile_sam/predictor.py similarity index 100% rename from mobile_sam/predictor.py rename to sam_ann/mobile_sam/predictor.py diff --git a/mobile_sam/utils/__init__.py b/sam_ann/mobile_sam/utils/__init__.py similarity index 100% rename from mobile_sam/utils/__init__.py rename to sam_ann/mobile_sam/utils/__init__.py diff --git a/mobile_sam/utils/amg.py b/sam_ann/mobile_sam/utils/amg.py similarity index 100% rename from mobile_sam/utils/amg.py rename to sam_ann/mobile_sam/utils/amg.py diff --git a/mobile_sam/utils/onnx.py b/sam_ann/mobile_sam/utils/onnx.py similarity index 100% rename from mobile_sam/utils/onnx.py rename to sam_ann/mobile_sam/utils/onnx.py diff --git a/mobile_sam/utils/transforms.py b/sam_ann/mobile_sam/utils/transforms.py similarity index 100% rename from mobile_sam/utils/transforms.py rename to sam_ann/mobile_sam/utils/transforms.py diff --git a/segment_any/gpu_resource.py b/sam_ann/segment_any/gpu_resource.py similarity index 100% rename from segment_any/gpu_resource.py rename to sam_ann/segment_any/gpu_resource.py diff --git a/segment_any/segment_any.py b/sam_ann/segment_any/segment_any.py similarity index 81% rename from segment_any/segment_any.py rename to sam_ann/segment_any/segment_any.py index 9b8257e..5c1f7aa 100644 --- a/segment_any/segment_any.py +++ b/sam_ann/segment_any/segment_any.py @@ -7,38 +7,38 @@ import torch import numpy as np import timm - +import os class SegAny: def __init__(self, checkpoint): - if 'mobile_sam' in checkpoint: + if 'mobile_sam' in os.path.basename(checkpoint): # mobile sam from mobile_sam import sam_model_registry, SamPredictor print('- mobile sam!') self.model_type = "vit_t" - elif 'sam_hq_vit' in checkpoint: + elif 'sam_hq_vit' in os.path.basename(checkpoint): # sam hq from segment_anything_hq import sam_model_registry, SamPredictor print('- sam hq!') - if 'vit_b' in checkpoint: + if 'vit_b' in os.path.basename(checkpoint): self.model_type = "vit_b" - elif 'vit_l' in checkpoint: + elif 'vit_l' in os.path.basename(checkpoint): self.model_type = "vit_l" - elif 'vit_h' in checkpoint: + elif 'vit_h' in os.path.basename(checkpoint): self.model_type = "vit_h" - elif 'vit_tiny' in checkpoint: + elif 'vit_tiny' in os.path.basename(checkpoint): self.model_type = "vit_tiny" else: raise ValueError('The checkpoint named {} is not supported.'.format(checkpoint)) - elif 'sam_vit' in checkpoint: + elif 'sam_vit' in os.path.basename(checkpoint): # sam from segment_anything import sam_model_registry, SamPredictor print('- sam!') - if 'vit_b' in checkpoint: + if 'vit_b' in os.path.basename(checkpoint): self.model_type = "vit_b" - elif 'vit_l' in checkpoint: + elif 'vit_l' in os.path.basename(checkpoint): self.model_type = "vit_l" - elif 'vit_h' in checkpoint: + elif 'vit_h' in os.path.basename(checkpoint): self.model_type = "vit_h" else: raise ValueError('The checkpoint named {} is not supported.'.format(checkpoint)) diff --git a/segment_anything/__init__.py b/sam_ann/segment_anything/__init__.py similarity index 100% rename from segment_anything/__init__.py rename to sam_ann/segment_anything/__init__.py diff --git a/segment_anything/automatic_mask_generator.py b/sam_ann/segment_anything/automatic_mask_generator.py similarity index 100% rename from segment_anything/automatic_mask_generator.py rename to sam_ann/segment_anything/automatic_mask_generator.py diff --git a/segment_anything/build_sam.py b/sam_ann/segment_anything/build_sam.py similarity index 100% rename from segment_anything/build_sam.py rename to sam_ann/segment_anything/build_sam.py diff --git a/segment_anything/modeling/__init__.py b/sam_ann/segment_anything/modeling/__init__.py similarity index 100% rename from segment_anything/modeling/__init__.py rename to sam_ann/segment_anything/modeling/__init__.py diff --git a/segment_anything/modeling/common.py b/sam_ann/segment_anything/modeling/common.py similarity index 100% rename from segment_anything/modeling/common.py rename to sam_ann/segment_anything/modeling/common.py diff --git a/segment_anything/modeling/image_encoder.py b/sam_ann/segment_anything/modeling/image_encoder.py similarity index 100% rename from segment_anything/modeling/image_encoder.py rename to sam_ann/segment_anything/modeling/image_encoder.py diff --git a/segment_anything/modeling/mask_decoder.py b/sam_ann/segment_anything/modeling/mask_decoder.py similarity index 100% rename from segment_anything/modeling/mask_decoder.py rename to sam_ann/segment_anything/modeling/mask_decoder.py diff --git a/segment_anything/modeling/prompt_encoder.py b/sam_ann/segment_anything/modeling/prompt_encoder.py similarity index 100% rename from segment_anything/modeling/prompt_encoder.py rename to sam_ann/segment_anything/modeling/prompt_encoder.py diff --git a/segment_anything/modeling/sam.py b/sam_ann/segment_anything/modeling/sam.py similarity index 100% rename from segment_anything/modeling/sam.py rename to sam_ann/segment_anything/modeling/sam.py diff --git a/segment_anything/modeling/transformer.py b/sam_ann/segment_anything/modeling/transformer.py similarity index 100% rename from segment_anything/modeling/transformer.py rename to sam_ann/segment_anything/modeling/transformer.py diff --git a/segment_anything/predictor.py b/sam_ann/segment_anything/predictor.py similarity index 100% rename from segment_anything/predictor.py rename to sam_ann/segment_anything/predictor.py diff --git a/segment_anything/utils/__init__.py b/sam_ann/segment_anything/utils/__init__.py similarity index 100% rename from segment_anything/utils/__init__.py rename to sam_ann/segment_anything/utils/__init__.py diff --git a/segment_anything/utils/amg.py b/sam_ann/segment_anything/utils/amg.py similarity index 100% rename from segment_anything/utils/amg.py rename to sam_ann/segment_anything/utils/amg.py diff --git a/segment_anything/utils/onnx.py b/sam_ann/segment_anything/utils/onnx.py similarity index 100% rename from segment_anything/utils/onnx.py rename to sam_ann/segment_anything/utils/onnx.py diff --git a/segment_anything/utils/transforms.py b/sam_ann/segment_anything/utils/transforms.py similarity index 100% rename from segment_anything/utils/transforms.py rename to sam_ann/segment_anything/utils/transforms.py diff --git a/segment_anything_hq/__init__.py b/sam_ann/segment_anything_hq/__init__.py similarity index 100% rename from segment_anything_hq/__init__.py rename to sam_ann/segment_anything_hq/__init__.py diff --git a/segment_anything_hq/automatic_mask_generator.py b/sam_ann/segment_anything_hq/automatic_mask_generator.py similarity index 100% rename from segment_anything_hq/automatic_mask_generator.py rename to sam_ann/segment_anything_hq/automatic_mask_generator.py diff --git a/segment_anything_hq/build_sam.py b/sam_ann/segment_anything_hq/build_sam.py similarity index 100% rename from segment_anything_hq/build_sam.py rename to sam_ann/segment_anything_hq/build_sam.py diff --git a/segment_anything_hq/build_sam_baseline.py b/sam_ann/segment_anything_hq/build_sam_baseline.py similarity index 100% rename from segment_anything_hq/build_sam_baseline.py rename to sam_ann/segment_anything_hq/build_sam_baseline.py diff --git a/segment_anything_hq/modeling/__init__.py b/sam_ann/segment_anything_hq/modeling/__init__.py similarity index 100% rename from segment_anything_hq/modeling/__init__.py rename to sam_ann/segment_anything_hq/modeling/__init__.py diff --git a/segment_anything_hq/modeling/common.py b/sam_ann/segment_anything_hq/modeling/common.py similarity index 100% rename from segment_anything_hq/modeling/common.py rename to sam_ann/segment_anything_hq/modeling/common.py diff --git a/segment_anything_hq/modeling/image_encoder.py b/sam_ann/segment_anything_hq/modeling/image_encoder.py similarity index 100% rename from segment_anything_hq/modeling/image_encoder.py rename to sam_ann/segment_anything_hq/modeling/image_encoder.py diff --git a/segment_anything_hq/modeling/mask_decoder.py b/sam_ann/segment_anything_hq/modeling/mask_decoder.py similarity index 100% rename from segment_anything_hq/modeling/mask_decoder.py rename to sam_ann/segment_anything_hq/modeling/mask_decoder.py diff --git a/segment_anything_hq/modeling/mask_decoder_hq.py b/sam_ann/segment_anything_hq/modeling/mask_decoder_hq.py similarity index 100% rename from segment_anything_hq/modeling/mask_decoder_hq.py rename to sam_ann/segment_anything_hq/modeling/mask_decoder_hq.py diff --git a/segment_anything_hq/modeling/prompt_encoder.py b/sam_ann/segment_anything_hq/modeling/prompt_encoder.py similarity index 100% rename from segment_anything_hq/modeling/prompt_encoder.py rename to sam_ann/segment_anything_hq/modeling/prompt_encoder.py diff --git a/segment_anything_hq/modeling/sam.py b/sam_ann/segment_anything_hq/modeling/sam.py similarity index 100% rename from segment_anything_hq/modeling/sam.py rename to sam_ann/segment_anything_hq/modeling/sam.py diff --git a/segment_anything_hq/modeling/tiny_vit_sam.py b/sam_ann/segment_anything_hq/modeling/tiny_vit_sam.py similarity index 100% rename from segment_anything_hq/modeling/tiny_vit_sam.py rename to sam_ann/segment_anything_hq/modeling/tiny_vit_sam.py diff --git a/segment_anything_hq/modeling/transformer.py b/sam_ann/segment_anything_hq/modeling/transformer.py similarity index 100% rename from segment_anything_hq/modeling/transformer.py rename to sam_ann/segment_anything_hq/modeling/transformer.py diff --git a/segment_anything_hq/predictor.py b/sam_ann/segment_anything_hq/predictor.py similarity index 100% rename from segment_anything_hq/predictor.py rename to sam_ann/segment_anything_hq/predictor.py diff --git a/segment_anything_hq/utils/__init__.py b/sam_ann/segment_anything_hq/utils/__init__.py similarity index 100% rename from segment_anything_hq/utils/__init__.py rename to sam_ann/segment_anything_hq/utils/__init__.py diff --git a/segment_anything_hq/utils/amg.py b/sam_ann/segment_anything_hq/utils/amg.py similarity index 100% rename from segment_anything_hq/utils/amg.py rename to sam_ann/segment_anything_hq/utils/amg.py diff --git a/segment_anything_hq/utils/onnx.py b/sam_ann/segment_anything_hq/utils/onnx.py similarity index 100% rename from segment_anything_hq/utils/onnx.py rename to sam_ann/segment_anything_hq/utils/onnx.py diff --git a/segment_anything_hq/utils/transforms.py b/sam_ann/segment_anything_hq/utils/transforms.py similarity index 100% rename from segment_anything_hq/utils/transforms.py rename to sam_ann/segment_anything_hq/utils/transforms.py diff --git a/sam_ann/tools/__init__.py b/sam_ann/tools/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tools/fromCOCO.py b/sam_ann/tools/fromCOCO.py similarity index 100% rename from tools/fromCOCO.py rename to sam_ann/tools/fromCOCO.py diff --git a/tools/toCOCO.py b/sam_ann/tools/toCOCO.py similarity index 100% rename from tools/toCOCO.py rename to sam_ann/tools/toCOCO.py diff --git a/tools/toLABELME.py b/sam_ann/tools/toLABELME.py similarity index 100% rename from tools/toLABELME.py rename to sam_ann/tools/toLABELME.py diff --git a/tools/toVOC.py b/sam_ann/tools/toVOC.py similarity index 100% rename from tools/toVOC.py rename to sam_ann/tools/toVOC.py diff --git a/ui/COCO_to_ISAT_dialog.py b/sam_ann/ui/COCO_to_ISAT_dialog.py similarity index 99% rename from ui/COCO_to_ISAT_dialog.py rename to sam_ann/ui/COCO_to_ISAT_dialog.py index 5f1be98..5e0d41c 100644 --- a/ui/COCO_to_ISAT_dialog.py +++ b/sam_ann/ui/COCO_to_ISAT_dialog.py @@ -117,4 +117,4 @@ class Ui_Dialog(object): self.label.setText(_translate("Dialog", "Convert COCO json to ISAT jsons.All layer attr is 1.")) self.pushButton_cancel.setText(_translate("Dialog", "cancel")) self.pushButton_apply.setText(_translate("Dialog", "convert")) -import icons_rc + diff --git a/ui/COCO_to_ISAT_dialog.ui b/sam_ann/ui/COCO_to_ISAT_dialog.ui similarity index 100% rename from ui/COCO_to_ISAT_dialog.ui rename to sam_ann/ui/COCO_to_ISAT_dialog.ui diff --git a/ui/ISAT_to_COCO_dialog.py b/sam_ann/ui/ISAT_to_COCO_dialog.py similarity index 99% rename from ui/ISAT_to_COCO_dialog.py rename to sam_ann/ui/ISAT_to_COCO_dialog.py index bd55b5c..8a849f2 100644 --- a/ui/ISAT_to_COCO_dialog.py +++ b/sam_ann/ui/ISAT_to_COCO_dialog.py @@ -110,4 +110,4 @@ class Ui_Dialog(object): self.label.setText(_translate("Dialog", "Convert ISAT jsons to COCO json.The layer attr will be lost.")) self.pushButton_cancel.setText(_translate("Dialog", "cancel")) self.pushButton_apply.setText(_translate("Dialog", "convert")) -import icons_rc + diff --git a/ui/ISAT_to_COCO_dialog.ui b/sam_ann/ui/ISAT_to_COCO_dialog.ui similarity index 100% rename from ui/ISAT_to_COCO_dialog.ui rename to sam_ann/ui/ISAT_to_COCO_dialog.ui diff --git a/ui/ISAT_to_LABELME_dialog.py b/sam_ann/ui/ISAT_to_LABELME_dialog.py similarity index 100% rename from ui/ISAT_to_LABELME_dialog.py rename to sam_ann/ui/ISAT_to_LABELME_dialog.py diff --git a/ui/ISAT_to_LABELME_dialog.ui b/sam_ann/ui/ISAT_to_LABELME_dialog.ui similarity index 100% rename from ui/ISAT_to_LABELME_dialog.ui rename to sam_ann/ui/ISAT_to_LABELME_dialog.ui diff --git a/ui/ISAT_to_VOC_dialog.py b/sam_ann/ui/ISAT_to_VOC_dialog.py similarity index 99% rename from ui/ISAT_to_VOC_dialog.py rename to sam_ann/ui/ISAT_to_VOC_dialog.py index 02d8a70..f6efd33 100644 --- a/ui/ISAT_to_VOC_dialog.py +++ b/sam_ann/ui/ISAT_to_VOC_dialog.py @@ -124,4 +124,4 @@ class Ui_Dialog(object): self.label.setText(_translate("Dialog", "Convert ISAT annotations to VOC png.")) self.pushButton_cancel.setText(_translate("Dialog", "cancel")) self.pushButton_apply.setText(_translate("Dialog", "convert")) -import icons_rc + diff --git a/ui/ISAT_to_VOC_dialog.ui b/sam_ann/ui/ISAT_to_VOC_dialog.ui similarity index 100% rename from ui/ISAT_to_VOC_dialog.ui rename to sam_ann/ui/ISAT_to_VOC_dialog.ui diff --git a/ui/MainWindow.py b/sam_ann/ui/MainWindow.py similarity index 99% rename from ui/MainWindow.py rename to sam_ann/ui/MainWindow.py index 0930472..12233c9 100644 --- a/ui/MainWindow.py +++ b/sam_ann/ui/MainWindow.py @@ -494,5 +494,4 @@ class Ui_MainWindow(object): self.actionContour_External.setWhatsThis(_translate("MainWindow", "External contour save only.")) self.actionContour_All.setText(_translate("MainWindow", "All")) self.actionContour_All.setStatusTip(_translate("MainWindow", "All contour save.")) - self.actionContour_All.setWhatsThis(_translate("MainWindow", "All contour save.")) -import icons_rc + self.actionContour_All.setWhatsThis(_translate("MainWindow", "All contour save.")) \ No newline at end of file diff --git a/ui/MainWindow.ui b/sam_ann/ui/MainWindow.ui similarity index 100% rename from ui/MainWindow.ui rename to sam_ann/ui/MainWindow.ui diff --git a/ui/about_dialog.py b/sam_ann/ui/about_dialog.py similarity index 99% rename from ui/about_dialog.py rename to sam_ann/ui/about_dialog.py index 62e5a56..721a0e1 100644 --- a/ui/about_dialog.py +++ b/sam_ann/ui/about_dialog.py @@ -74,4 +74,4 @@ class Ui_Dialog(object): self.label_2.setText(_translate("Dialog", "ISAT with Segment anything.")) self.label_4.setText(_translate("Dialog", "ISAT Copyright (C) 2022 yatengLG.\n" "http://www.yatenglg.cn/isat")) -import icons_rc + diff --git a/ui/about_dialog.ui b/sam_ann/ui/about_dialog.ui similarity index 100% rename from ui/about_dialog.ui rename to sam_ann/ui/about_dialog.ui diff --git a/ui/anno_dock.py b/sam_ann/ui/anno_dock.py similarity index 99% rename from ui/anno_dock.py rename to sam_ann/ui/anno_dock.py index cf9be55..d7c79be 100644 --- a/ui/anno_dock.py +++ b/sam_ann/ui/anno_dock.py @@ -68,4 +68,4 @@ class Ui_Form(object): _translate = QtCore.QCoreApplication.translate Form.setWindowTitle(_translate("Form", "Form")) self.checkBox_visible.setText(_translate("Form", "Visible")) -import icons_rc + diff --git a/ui/anno_dock.ui b/sam_ann/ui/anno_dock.ui similarity index 100% rename from ui/anno_dock.ui rename to sam_ann/ui/anno_dock.ui diff --git a/ui/category_choice.py b/sam_ann/ui/category_choice.py similarity index 99% rename from ui/category_choice.py rename to sam_ann/ui/category_choice.py index a9a71e0..98f646e 100644 --- a/ui/category_choice.py +++ b/sam_ann/ui/category_choice.py @@ -125,4 +125,4 @@ class Ui_Dialog(object): self.checkBox_iscrowded.setText(_translate("Dialog", "is crowded")) self.pushButton_cancel.setText(_translate("Dialog", "cancel")) self.pushButton_apply.setText(_translate("Dialog", "apply")) -import icons_rc + diff --git a/ui/category_choice.ui b/sam_ann/ui/category_choice.ui similarity index 100% rename from ui/category_choice.ui rename to sam_ann/ui/category_choice.ui diff --git a/ui/category_dock.py b/sam_ann/ui/category_dock.py similarity index 100% rename from ui/category_dock.py rename to sam_ann/ui/category_dock.py diff --git a/ui/category_dock.ui b/sam_ann/ui/category_dock.ui similarity index 100% rename from ui/category_dock.ui rename to sam_ann/ui/category_dock.ui diff --git a/ui/en.ts b/sam_ann/ui/en.ts similarity index 100% rename from ui/en.ts rename to sam_ann/ui/en.ts diff --git a/ui/file_dock.py b/sam_ann/ui/file_dock.py similarity index 100% rename from ui/file_dock.py rename to sam_ann/ui/file_dock.py diff --git a/ui/file_dock.ui b/sam_ann/ui/file_dock.ui similarity index 100% rename from ui/file_dock.ui rename to sam_ann/ui/file_dock.ui diff --git a/ui/info_dock.py b/sam_ann/ui/info_dock.py similarity index 100% rename from ui/info_dock.py rename to sam_ann/ui/info_dock.py diff --git a/ui/info_dock.ui b/sam_ann/ui/info_dock.ui similarity index 100% rename from ui/info_dock.ui rename to sam_ann/ui/info_dock.ui diff --git a/ui/setting_dialog.py b/sam_ann/ui/setting_dialog.py similarity index 99% rename from ui/setting_dialog.py rename to sam_ann/ui/setting_dialog.py index b59132b..4dee411 100644 --- a/ui/setting_dialog.py +++ b/sam_ann/ui/setting_dialog.py @@ -108,4 +108,3 @@ class Ui_Dialog(object): self.pushButton_export.setText(_translate("Dialog", "Export")) self.cancel_button.setText(_translate("Dialog", "Cancel")) self.apply_button.setText(_translate("Dialog", "Apply")) -import icons_rc diff --git a/ui/setting_dialog.ui b/sam_ann/ui/setting_dialog.ui similarity index 100% rename from ui/setting_dialog.ui rename to sam_ann/ui/setting_dialog.ui diff --git a/ui/shortcut_dialog.py b/sam_ann/ui/shortcut_dialog.py similarity index 99% rename from ui/shortcut_dialog.py rename to sam_ann/ui/shortcut_dialog.py index fe56a62..bd5e76f 100644 --- a/ui/shortcut_dialog.py +++ b/sam_ann/ui/shortcut_dialog.py @@ -289,4 +289,4 @@ class Ui_Dialog(object): self.label_8.setText(_translate("Dialog", "To top")) self.label_28.setText(_translate("Dialog", "Polygons Visible")) self.label_29.setText(_translate("Dialog", "V")) -import icons_rc + diff --git a/ui/shortcut_dialog.ui b/sam_ann/ui/shortcut_dialog.ui similarity index 100% rename from ui/shortcut_dialog.ui rename to sam_ann/ui/shortcut_dialog.ui diff --git a/ui/zh_CN.ts b/sam_ann/ui/zh_CN.ts similarity index 100% rename from ui/zh_CN.ts rename to sam_ann/ui/zh_CN.ts diff --git a/widgets/COCO_to_ISAT_dialog.py b/sam_ann/widgets/COCO_to_ISAT_dialog.py similarity index 96% rename from widgets/COCO_to_ISAT_dialog.py rename to sam_ann/widgets/COCO_to_ISAT_dialog.py index 8fc8d38..e322b56 100644 --- a/widgets/COCO_to_ISAT_dialog.py +++ b/sam_ann/widgets/COCO_to_ISAT_dialog.py @@ -2,8 +2,8 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore -from ui.COCO_to_ISAT_dialog import Ui_Dialog -from tools.fromCOCO import FROMCOCO +from sam_ann.ui.COCO_to_ISAT_dialog import Ui_Dialog +from sam_ann.tools.fromCOCO import FROMCOCO class COCOtoISATDialog(QtWidgets.QDialog, Ui_Dialog): diff --git a/widgets/ISAT_to_COCO_dialog.py b/sam_ann/widgets/ISAT_to_COCO_dialog.py similarity index 96% rename from widgets/ISAT_to_COCO_dialog.py rename to sam_ann/widgets/ISAT_to_COCO_dialog.py index c906e4d..7228adf 100644 --- a/widgets/ISAT_to_COCO_dialog.py +++ b/sam_ann/widgets/ISAT_to_COCO_dialog.py @@ -2,8 +2,8 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore, QtGui -from ui.ISAT_to_COCO_dialog import Ui_Dialog -from tools.toCOCO import TOCOCO +from sam_ann.ui.ISAT_to_COCO_dialog import Ui_Dialog +from sam_ann.tools.toCOCO import TOCOCO class ISATtoCOCODialog(QtWidgets.QDialog, Ui_Dialog): diff --git a/widgets/ISAT_to_LABELME_dialog.py b/sam_ann/widgets/ISAT_to_LABELME_dialog.py similarity index 96% rename from widgets/ISAT_to_LABELME_dialog.py rename to sam_ann/widgets/ISAT_to_LABELME_dialog.py index 9d5e9e2..516b7a9 100644 --- a/widgets/ISAT_to_LABELME_dialog.py +++ b/sam_ann/widgets/ISAT_to_LABELME_dialog.py @@ -2,8 +2,8 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore, QtGui -from ui.ISAT_to_LABELME_dialog import Ui_Dialog -from tools.toLABELME import TOLABELME +from sam_ann.ui.ISAT_to_LABELME_dialog import Ui_Dialog +from sam_ann.tools.toLABELME import TOLABELME import os class ISATtoLabelMeDialog(QtWidgets.QDialog, Ui_Dialog): diff --git a/widgets/ISAT_to_VOC_dialog.py b/sam_ann/widgets/ISAT_to_VOC_dialog.py similarity index 96% rename from widgets/ISAT_to_VOC_dialog.py rename to sam_ann/widgets/ISAT_to_VOC_dialog.py index c46d1aa..e74311d 100644 --- a/widgets/ISAT_to_VOC_dialog.py +++ b/sam_ann/widgets/ISAT_to_VOC_dialog.py @@ -2,9 +2,9 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore, QtGui -from ui.ISAT_to_VOC_dialog import Ui_Dialog -import tools.toVOC as toVOC -from configs import load_config +from sam_ann.ui.ISAT_to_VOC_dialog import Ui_Dialog +import sam_ann.tools.toVOC as toVOC +from sam_ann.configs import load_config import os diff --git a/widgets/about_dialog.py b/sam_ann/widgets/about_dialog.py similarity index 87% rename from widgets/about_dialog.py rename to sam_ann/widgets/about_dialog.py index 8b8b386..30c1ba4 100644 --- a/widgets/about_dialog.py +++ b/sam_ann/widgets/about_dialog.py @@ -2,7 +2,7 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore, QtGui -from ui.about_dialog import Ui_Dialog +from sam_ann.ui.about_dialog import Ui_Dialog class AboutDialog(QtWidgets.QDialog, Ui_Dialog): def __init__(self, parent): diff --git a/widgets/annos_dock_widget.py b/sam_ann/widgets/annos_dock_widget.py similarity index 99% rename from widgets/annos_dock_widget.py rename to sam_ann/widgets/annos_dock_widget.py index ba753a8..d938848 100644 --- a/widgets/annos_dock_widget.py +++ b/sam_ann/widgets/annos_dock_widget.py @@ -2,7 +2,7 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore, QtGui -from ui.anno_dock import Ui_Form +from sam_ann.ui.anno_dock import Ui_Form import functools import re diff --git a/widgets/canvas.py b/sam_ann/widgets/canvas.py similarity index 98% rename from widgets/canvas.py rename to sam_ann/widgets/canvas.py index 7436ecb..ae6bb98 100644 --- a/widgets/canvas.py +++ b/sam_ann/widgets/canvas.py @@ -2,8 +2,8 @@ # @Author : LG from PyQt5 import QtWidgets, QtGui, QtCore -from widgets.polygon import Polygon, Vertex -from configs import STATUSMode, CLICKMode, DRAWMode, CONTOURMode +from sam_ann.widgets.polygon import Polygon, Vertex +from sam_ann.configs import STATUSMode, CLICKMode, DRAWMode, CONTOURMode from PIL import Image import numpy as np import cv2 @@ -39,6 +39,11 @@ class AnnotationScene(QtWidgets.QGraphicsScene): self.clear() self.image_data = np.array(Image.open(image_path)) + if len(self.image_data.shape) == 2: + self.image_data = np.stack([self.image_data] * 3, axis=-1) + if self.image_data.shape[-1] >= 4: + self.image_data = self.image_data[:, :, :3] + self.image_item = QtWidgets.QGraphicsPixmapItem() self.image_item.setZValue(0) @@ -138,7 +143,7 @@ class AnnotationScene(QtWidgets.QGraphicsScene): def start_segment_anything(self): self.draw_mode = DRAWMode.SEGMENTANYTHING - + self.start_draw() def start_draw_polygon(self): diff --git a/widgets/category_choice_dialog.py b/sam_ann/widgets/category_choice_dialog.py similarity index 96% rename from widgets/category_choice_dialog.py rename to sam_ann/widgets/category_choice_dialog.py index 7b67494..408640d 100644 --- a/widgets/category_choice_dialog.py +++ b/sam_ann/widgets/category_choice_dialog.py @@ -2,9 +2,9 @@ # @Author : LG -from ui.category_choice import Ui_Dialog +from sam_ann.ui.category_choice import Ui_Dialog from PyQt5 import QtWidgets, QtGui, QtCore -from configs import load_config, CONFIG_FILE, DEFAULT_CONFIG_FILE +from sam_ann.configs import load_config, CONFIG_FILE, DEFAULT_CONFIG_FILE import os diff --git a/widgets/category_dock_widget.py b/sam_ann/widgets/category_dock_widget.py similarity index 97% rename from widgets/category_dock_widget.py rename to sam_ann/widgets/category_dock_widget.py index fac3498..dd8e9c7 100644 --- a/widgets/category_dock_widget.py +++ b/sam_ann/widgets/category_dock_widget.py @@ -2,7 +2,7 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore -from ui.category_dock import Ui_Form +from sam_ann.ui.category_dock import Ui_Form class CategoriesDockWidget(QtWidgets.QWidget, Ui_Form): diff --git a/widgets/category_edit_dialog.py b/sam_ann/widgets/category_edit_dialog.py similarity index 97% rename from widgets/category_edit_dialog.py rename to sam_ann/widgets/category_edit_dialog.py index 51d6dc1..320d469 100644 --- a/widgets/category_edit_dialog.py +++ b/sam_ann/widgets/category_edit_dialog.py @@ -2,9 +2,9 @@ # @Author : LG -from ui.category_choice import Ui_Dialog +from sam_ann.ui.category_choice import Ui_Dialog from PyQt5 import QtWidgets, QtGui, QtCore -from configs import load_config, CONFIG_FILE, DEFAULT_CONFIG_FILE +from sam_ann.configs import load_config, CONFIG_FILE, DEFAULT_CONFIG_FILE import os diff --git a/widgets/files_dock_widget.py b/sam_ann/widgets/files_dock_widget.py similarity index 96% rename from widgets/files_dock_widget.py rename to sam_ann/widgets/files_dock_widget.py index 81352a0..b9d50bb 100644 --- a/widgets/files_dock_widget.py +++ b/sam_ann/widgets/files_dock_widget.py @@ -2,7 +2,7 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore, QtGui -from ui.file_dock import Ui_Form +from sam_ann.ui.file_dock import Ui_Form import os diff --git a/widgets/info_dock_widget.py b/sam_ann/widgets/info_dock_widget.py similarity index 95% rename from widgets/info_dock_widget.py rename to sam_ann/widgets/info_dock_widget.py index f5b66e5..2ce0b8b 100644 --- a/widgets/info_dock_widget.py +++ b/sam_ann/widgets/info_dock_widget.py @@ -2,7 +2,7 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore, QtGui -from ui.info_dock import Ui_Form +from sam_ann.ui.info_dock import Ui_Form class InfoDockWidget(QtWidgets.QWidget, Ui_Form): def __init__(self, mainwindow): diff --git a/widgets/mainwindow.py b/sam_ann/widgets/mainwindow.py similarity index 95% rename from widgets/mainwindow.py rename to sam_ann/widgets/mainwindow.py index 131441d..c2b53f1 100644 --- a/widgets/mainwindow.py +++ b/sam_ann/widgets/mainwindow.py @@ -2,33 +2,34 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore, QtGui -from ui.MainWindow import Ui_MainWindow -from widgets.setting_dialog import SettingDialog -from widgets.category_choice_dialog import CategoryChoiceDialog -from widgets.category_edit_dialog import CategoryEditDialog -from widgets.category_dock_widget import CategoriesDockWidget -from widgets.annos_dock_widget import AnnosDockWidget -from widgets.files_dock_widget import FilesDockWidget -from widgets.info_dock_widget import InfoDockWidget -from widgets.right_button_menu import RightButtonMenu -from widgets.shortcut_dialog import ShortcutDialog -from widgets.about_dialog import AboutDialog -from widgets.ISAT_to_VOC_dialog import ISATtoVOCDialog -from widgets.ISAT_to_COCO_dialog import ISATtoCOCODialog -from widgets.ISAT_to_LABELME_dialog import ISATtoLabelMeDialog -from widgets.COCO_to_ISAT_dialog import COCOtoISATDialog -from widgets.canvas import AnnotationScene, AnnotationView -from configs import STATUSMode, MAPMode, load_config, save_config, CONFIG_FILE, DEFAULT_CONFIG_FILE -from annotation import Object, Annotation -from widgets.polygon import Polygon +from sam_ann.ui.MainWindow import Ui_MainWindow +from sam_ann.widgets.setting_dialog import SettingDialog +from sam_ann.widgets.category_choice_dialog import CategoryChoiceDialog +from sam_ann.widgets.category_edit_dialog import CategoryEditDialog +from sam_ann.widgets.category_dock_widget import CategoriesDockWidget +from sam_ann.widgets.annos_dock_widget import AnnosDockWidget +from sam_ann.widgets.files_dock_widget import FilesDockWidget +from sam_ann.widgets.info_dock_widget import InfoDockWidget +from sam_ann.widgets.right_button_menu import RightButtonMenu +from sam_ann.widgets.shortcut_dialog import ShortcutDialog +from sam_ann.widgets.about_dialog import AboutDialog +from sam_ann.widgets.ISAT_to_VOC_dialog import ISATtoVOCDialog +from sam_ann.widgets.ISAT_to_COCO_dialog import ISATtoCOCODialog +from sam_ann.widgets.ISAT_to_LABELME_dialog import ISATtoLabelMeDialog +from sam_ann.widgets.COCO_to_ISAT_dialog import COCOtoISATDialog +from sam_ann.widgets.canvas import AnnotationScene, AnnotationView +from sam_ann.configs import STATUSMode, MAPMode, load_config, save_config, CONFIG_FILE, DEFAULT_CONFIG_FILE +from sam_ann.annotation import Object, Annotation +from sam_ann.widgets.polygon import Polygon +from sam_ann.configs import BASE_DIR import os from PIL import Image import functools import imgviz import numpy as np -from segment_any.segment_any import SegAny -from segment_any.gpu_resource import GPUResource_Thread, osplatform -import icons_rc +from sam_ann.segment_any.segment_any import SegAny +from sam_ann.segment_any.gpu_resource import GPUResource_Thread, osplatform +import sam_ann.icons_rc class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): @@ -188,7 +189,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): self.statusbar.addPermanentWidget(self.labelData) # - model_names = sorted([pth for pth in os.listdir('segment_any') if pth.endswith('.pth') or pth.endswith('.pt')]) + model_names = sorted([pth for pth in os.listdir(os.path.join(BASE_DIR, 'checkpoints')) if pth.endswith('.pth') or pth.endswith('.pt')]) self.pths_actions = {} for model_name in model_names: action = QtWidgets.QAction(self) diff --git a/widgets/polygon.py b/sam_ann/widgets/polygon.py similarity index 99% rename from widgets/polygon.py rename to sam_ann/widgets/polygon.py index e3ec7d0..37b46c1 100644 --- a/widgets/polygon.py +++ b/sam_ann/widgets/polygon.py @@ -2,7 +2,7 @@ # @Author : LG from PyQt5 import QtCore, QtWidgets, QtGui -from annotation import Object +from sam_ann.annotation import Object import typing class Vertex(QtWidgets.QGraphicsPathItem): diff --git a/widgets/right_button_menu.py b/sam_ann/widgets/right_button_menu.py similarity index 100% rename from widgets/right_button_menu.py rename to sam_ann/widgets/right_button_menu.py diff --git a/widgets/setting_dialog.py b/sam_ann/widgets/setting_dialog.py similarity index 98% rename from widgets/setting_dialog.py rename to sam_ann/widgets/setting_dialog.py index dd9b3dd..f014563 100644 --- a/widgets/setting_dialog.py +++ b/sam_ann/widgets/setting_dialog.py @@ -2,8 +2,8 @@ # @Author : LG from PyQt5 import QtWidgets, QtCore, QtGui -from ui.setting_dialog import Ui_Dialog -from configs import * +from sam_ann.ui.setting_dialog import Ui_Dialog +from sam_ann.configs import * import os diff --git a/widgets/shortcut_dialog.py b/sam_ann/widgets/shortcut_dialog.py similarity index 86% rename from widgets/shortcut_dialog.py rename to sam_ann/widgets/shortcut_dialog.py index 78d0065..fed75cf 100644 --- a/widgets/shortcut_dialog.py +++ b/sam_ann/widgets/shortcut_dialog.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # @Author : LG -from ui.shortcut_dialog import Ui_Dialog +from sam_ann.ui.shortcut_dialog import Ui_Dialog from PyQt5 import QtGui, QtCore, QtWidgets class ShortcutDialog(QtWidgets.QDialog, Ui_Dialog): diff --git a/ui/zh_CN.qm b/ui/zh_CN.qm deleted file mode 100644 index a2527a3320125e3da1ba52cb2d071337b1ee909c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11589 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 Zs{}FX3>%vr!gl)YCm#O!%vbeh{V&n65Iz6^