Skip to content

标注目标太多时,标注过程卡顿 #244

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
WilliamWang1994 opened this issue Feb 6, 2025 · 18 comments
Open

标注目标太多时,标注过程卡顿 #244

WilliamWang1994 opened this issue Feb 6, 2025 · 18 comments

Comments

@WilliamWang1994
Copy link
Contributor

您好,我在分割任务标注时,一张1024的图上最多大约有2k个标注目标,当标注目标大于700左右,标注开始出现卡顿,卡顿时刻是在描点完成,按‘e’退出标注模式时,请问是需要调正什么参数来改善这种情况吗?

@yatengLG
Copy link
Owner

yatengLG commented Feb 7, 2025

更新了,大量标注情况下,性能有一定提升。可以使用最新代码,进行尝试。

  1. 现在E完成标注、ESC取消标注、以及双击修改类别等操作更快了。
  2. 但切换图片,加载标注还是会延迟。主要是scene需要添加大量的可交互的item,这个无法优化了T.T

如果遇到bug或有其他建议,欢迎提issue。

@yatengLG
Copy link
Owner

yatengLG commented Feb 7, 2025

对了,还有一点。

关闭工具栏中create mode隐藏多边形的功能(新添加的)。可以有效减少卡顿。

这个功能是为了减少标注时,其他标注造成的视觉干扰。但如果存在大量标注目标时,隐藏多边形也需要一定时间。

@258692011
Copy link

cdeb891
这个优化性能的没法使用了,
模型sam2.1_hiera_small.pt,Segment anything标注,再点击完成标注,闪退,而且我添加的快捷键,按了也没生效

    # sam初始化线程,大模型加载较慢
    self.init_segany_thread = InitSegAnyThread(self)
    self.init_segany_thread.tag.connect(self.init_sam_finish)

    self.add_extra_shortcut()

def add_extra_shortcut(self):
    self.extra_shortcut = QtWidgets.QShortcut(QtGui.QKeySequence("W"), self) # 这个W是快捷键,自己可以随便改,别和软件快捷键冲突就行
    self.extra_shortcut.setContext(QtCore.Qt.ApplicationShortcut)
    self.extra_shortcut.activated.connect(self.extra_func)

def extra_func(self):
    self.scene.finish_draw() # E 标注完成
    self.save() # S 保存标注文件
    # self.next_image() # D 下一张图片
    self.scene.start_segment_anything() # Q Segment anything
    self.set_labels_visible(True) # 显示

@yatengLG
Copy link
Owner

yatengLG commented Feb 7, 2025

cdeb891 这个优化性能的没法使用了, 模型sam2.1_hiera_small.pt,Segment anything标注,再点击完成标注,闪退,而且我添加的快捷键,按了也没生效

    # sam初始化线程,大模型加载较慢
    self.init_segany_thread = InitSegAnyThread(self)
    self.init_segany_thread.tag.connect(self.init_sam_finish)

    self.add_extra_shortcut()

def add_extra_shortcut(self):
    self.extra_shortcut = QtWidgets.QShortcut(QtGui.QKeySequence("W"), self) # 这个W是快捷键,自己可以随便改,别和软件快捷键冲突就行
    self.extra_shortcut.setContext(QtCore.Qt.ApplicationShortcut)
    self.extra_shortcut.activated.connect(self.extra_func)

def extra_func(self):
    self.scene.finish_draw() # E 标注完成
    self.save() # S 保存标注文件
    # self.next_image() # D 下一张图片
    self.scene.start_segment_anything() # Q Segment anything
    self.set_labels_visible(True) # 显示

稍等,我看一下

@258692011
Copy link

1.2.9版本也是,添加的快捷键不生效

C:\yolo\ISAT_with_segment_anything-1.2.9>.venv\Scripts\python main.py

  • Init SAM... *
    C:\yolo\ISAT_with_segment_anything-1.2.9\ISAT\segment_any\sam2\modeling\sam\transformer.py:23: UserWarning: Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.
    OLD_GPU, USE_FLASH_ATTN, MATH_KERNEL_ON = get_sdpa_settings()
    • device : cuda
    • dtype : torch.bfloat16
    • loading : C:\yolo\ISAT_with_segment_anything-1.2.9\ISAT\checkpoints\sam2.1_hiera_small.pt
      config_file: sam2.1_hiera_s.yaml
  • Init SAM finished *


  • Init SAM for video... *
    • device : cuda
    • dtype : torch.bfloat16
    • loading : C:\yolo\ISAT_with_segment_anything-1.2.9\ISAT\checkpoints\sam2.1_hiera_small.pt
  • Init SAM for video finished *

sam_tag: True sam_video_tag: True
QAction::event: Ambiguous shortcut overload: W
QAction::event: Ambiguous shortcut overload: W
QAction::event: Ambiguous shortcut overload: W
QAction::event: Ambiguous shortcut overload: W
QAction::event: Ambiguous shortcut overload: W

@yatengLG
Copy link
Owner

yatengLG commented Feb 7, 2025

1.2.9版本也是,添加的快捷键不生效

1.2.9是因为添加了一个 框提示,快捷键是W

@258692011
Copy link

1.2.9版本也是,添加的快捷键不生效

1.2.9是因为添加了一个 框提示,快捷键是W

1.2.7也是一样,那怎么解决,重新改一个快捷键吗

@yatengLG
Copy link
Owner

yatengLG commented Feb 7, 2025

先还原到1.2.9了,后续有空我仔细看一下问题。更新完通知你 @WilliamWang1994

@yatengLG
Copy link
Owner

yatengLG commented Feb 7, 2025

1.2.7也是一样,那怎么解决,重新改一个快捷键吗

是的。现在需要重新改一个其他的。QWERTASDFZCVB12345等应该都不行了。T.T

def add_extra_shortcut(self): self.extra_shortcut = QtWidgets.QShortcut(QtGui.QKeySequence("W"), self) # 这个W是快捷键,自己可以随便改,别和软件快捷键冲突就行

@258692011
Copy link

self.extra_shortcut = QtWidgets.QShortcut(QtGui.QKeySequence("W"), self) # 这个W是快捷键,自己可以随便改,别和软件快捷键冲突就行

1.2.7也是一样,那怎么解决,重新改一个快捷键吗

是的。现在需要重新改一个其他的。QWERTASDFZCVB12345等应该都不行了。T.T

def add_extra_shortcut(self): self.extra_shortcut = QtWidgets.QShortcut(QtGui.QKeySequence("W"), self) # 这个W是快捷键,自己可以随便改,别和软件快捷键冲突就行

那我先回退到1.2.6版本,这个快捷键没问题

@WilliamWang1994
Copy link
Contributor Author

更新了,大量标注情况下,性能有一定提升。可以使用最新代码,进行尝试。

  1. 现在E完成标注、ESC取消标注、以及双击修改类别等操作更快了。
  2. 但切换图片,加载标注还是会延迟。主要是scene需要添加大量的可交互的item,这个无法优化了T.T

如果遇到bug或有其他建议,欢迎提issue。

非常感谢

@258692011
Copy link

1.2.9版本也是,添加的快捷键不生效

1.2.9是因为添加了一个 框提示,快捷键是W

是的,是segment anything box占用了快捷键W,快捷键UI说明又没写上去,我现在改成X当作连招快捷键了

@WilliamWang1994
Copy link
Contributor Author

先还原到1.2.9了,后续有空我仔细看一下问题。更新完通知你 @WilliamWang1994

您好,您代码里有些地方用cv2.imread(image_path)遇到中文路径会报错,建议您可以使用cv2.imdecode(np.fromfile(image_path, dtype=np.uint8),
cv2.IMREAD_COLOR)

@WilliamWang1994
Copy link
Contributor Author

更新了,大量标注情况下,性能有一定提升。可以使用最新代码,进行尝试。

  1. 现在E完成标注、ESC取消标注、以及双击修改类别等操作更快了。
  2. 但切换图片,加载标注还是会延迟。主要是scene需要添加大量的可交互的item,这个无法优化了T.T

如果遇到bug或有其他建议,欢迎提issue。

您好,使用您的最新代码尝试了,但是情况还是一样。

@yatengLG
Copy link
Owner

yatengLG commented Feb 8, 2025

更新了,大量标注情况下,性能有一定提升。可以使用最新代码,进行尝试。

  1. 现在E完成标注、ESC取消标注、以及双击修改类别等操作更快了。
  2. 但切换图片,加载标注还是会延迟。主要是scene需要添加大量的可交互的item,这个无法优化了T.T

如果遇到bug或有其他建议,欢迎提issue。

先还原到1.2.9了,后续有空我仔细看一下问题。更新完通知你 @WilliamWang1994

昨天更新了一版,发现有bug,回退了。稍后更新完通知你@WilliamWang1994

@yatengLG
Copy link
Owner

yatengLG commented Feb 8, 2025

更新了,一定程度上减少了大量标注时的卡顿。可以现在拉取最新代码试一试(pip包还没更新)

  1. 关闭create mode隐藏多边形功能(最新版本工具栏最后一个切换开关),可以减少卡顿现象。
  2. 右侧的注释列表现在使用局部刷新。大量标注情况下由添加、删除、复制多边形等操作带来的卡顿现在基本没有了。
  3. 开启了opengl渲染,稍微缓解了存在大量标注时的交互卡顿。
  4. 主要原因还是目标太多了。后续还可以对渲染过程再进一步优化(现在还没,到时候通知你)。

@yatengLG
Copy link
Owner

yatengLG commented Feb 8, 2025

@258692011 bug修复了,组合键也测试过了,可以正常使用。如果需要使用最新版本,可以拉取刚更新的代码。

@258692011
Copy link

@258692011 bug修复了,组合键也测试过了,可以正常使用。如果需要使用最新版本,可以拉取刚更新的代码。

好的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants