Я просматривал MMDet_InstanceSeg_Tutorial.ipynb и обнаружил много ошибок при реализации его на графическом процессоре.

  1. Сначала у меня возникли проблемы с версией, даже если вы установили необходимые библиотеки, такие как mmdetection, mmcv и mmengine, и если вы не установили правильную версию, она не будет работать. Версии, которые сработали для меня:

версия факела: 1.9.0+cu111

mmdetection: 3.0.0

mmcv: 2.0.0rc4

mmдвижок: 0.8.4

2. Я получал сообщение Ошибка импорта: невозможно импортировать имя «build_dataset» из «mmdet.datasets», когда я продолжал выполнять приведенный ниже фрагмент кода.

from mmdet.datasets import build_dataset
from mmdet.models import build_detector
from mmengine.runner import Runner

# build the runner from config
runner = Runner.from_cfg(cfg)

После поиска решений здесь и там кажется, что build_dataset и build_detector присутствовали в предыдущих версиях, но теперь в более новых версиях они были удалены. Хорошо, так какое решение? Если вы увидите в более поздних кодах, что мы не используем эти два модуля, поэтому мы можем просто пропустить их, закомментировав, или просто удалить эти две строки.

# from mmdet.datasets import build_dataset
# from mmdet.models import build_detector
from mmengine.runner import Runner

# build the runner from config
runner = Runner.from_cfg(cfg)

3. После вывода модели я обнаружил еще одну проблему: ValueError: требуется хотя бы один массив для объединения во время выполнения

# start training
runner.train()

Эту проблему можно решить, изменив строки ниже.

from mmengine.runner import set_random_seed

# Modify dataset classes and color
cfg.metainfo = {
    'CLASSES': ('balloon', ),
    'PALETTE': [
        (220, 20, 60),
    ]
}

to

from mmengine.runner import set_random_seed

# Modify dataset classes and color
cfg.metainfo = {
    'classes': ('balloon', ),
    'palette': [
        (220, 20, 60),
    ]
}

просто измените регистр «КЛАССЫ» и «ПАЛИТРА» с верхнего регистра на нижний, и это должно работать.

Спасибо.

Использованная литература:

  1. https://github.com/open-mmlab/mmdetection/blob/master/demo/MMDet_InstanceSeg_Tutorial.ipynb
  2. https://github.com/open-mmlab/mmdetection/issues/3628#issuecomment-1673739167
  3. https://github.com/open-mmlab/mmdetection/tree/main
  4. https://github.com/open-mmlab/mmdetection/blob/main/resources/mmdet-logo.png