Паноптическая сегментация

Глубокое обучение для работы с изображениями на PyTorch

Michal Oleszak

Machine Learning Engineer

Задача паноптической сегментации

Исходное изображение

Исходное изображение

Семантическая сегментация

Семантическая сегментация

Сегментация по экземплярам

Сегментация по экземплярам

Паноптическая сегментация

Паноптическая сегментация

Глубокое обучение для работы с изображениями на PyTorch

Рабочий процесс паноптической сегментации

  • Совмещение семантической и поэкземплярной сегментации сопряжено со сложностями:

    • Перекрытия
    • Уникальность идентификаторов экземпляров
  • Наш рабочий процесс:

    1. Создаём семантические маски
    2. Объединяем их в единую маску
    3. Инициализируем паноптическую маску как семантическую
    4. Создаём маски экземпляров
    5. Перебираем маски экземпляров и накладываем обнаруженные объекты на семантическую маску
Глубокое обучение для работы с изображениями на PyTorch

Семантические маски

model = UNet()

with torch.no_grad():
    semantic_masks = model(image_tensor) 
    print(semantic_masks.shape)
torch.Size([1, 3, 427, 640])
semantic_mask = torch.argmax(
  semantic_masks, dim=1
)
  • Создаём экземпляр модели
  • Получаем семантические маски для входного изображения
  • Выбираем класс с наибольшей вероятностью для каждого пикселя

Семантическая маска

Глубокое обучение для работы с изображениями на PyTorch

Маски экземпляров

model = MaskRCNN()

with torch.no_grad(): instance_masks = model(image_tensor)[0]["masks"] print(instance_masks.shape)
torch.Size([80, 1, 427, 640])
  • Загружаем модель сегментации по экземплярам
  • Получаем маски экземпляров

Маска экземпляра

Глубокое обучение для работы с изображениями на PyTorch

Паноптические маски

panoptic_mask = torch.clone(semantic_mask)

instance_id = 3 for mask in instance_masks:
panoptic_mask[mask > 0.5] = instance_id
instance_id += 1
  • Инициализируем паноптическую маску как semantic_mask
  • Перебираем маски экземпляров
  • Присваиваем паноптической маске идентификатор экземпляра там, где mask > 0.5
  • Увеличиваем счётчик идентификаторов экземпляров

Паноптическая маска

Глубокое обучение для работы с изображениями на PyTorch

Давайте потренируемся!

Глубокое обучение для работы с изображениями на PyTorch

Preparing Video For Download...