НачатьНачать бесплатно

Создание семантических масок

Один из распространённых подходов к паноптической сегментации — объединить результаты семантической и экземплярной сегментации. Рассмотрим следующий снимок улицы Нью-Йорка.

street image

Ваша задача — выполнить паноптическую сегментацию этого изображения: каждое такси должно быть выделено как отдельный объект, а фоновые области — асфальт и здания — должны различаться между собой.

Для начала вы создадите семантическую маску с помощью предобученной модели U-Net, доступной вам как UNet(). Ожидается, что она сможет различить два типа фона, хотя отдельные такси при этом выделяться не будут.

Это упражнение является частью курса

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

Посмотреть курс

Инструкции к упражнению

  • Создайте экземпляр модели U-Net и сохраните его в переменную model.
  • Получите semantic_masks, передав входной тензор изображения в модель.
  • Создайте единую семантическую маску, выбрав для каждого пикселя класс с наибольшей вероятностью.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Instantiate the model
model = ____

# Produce semantic masks for the input image
with torch.no_grad():
    semantic_masks = ____

# Choose highest-probability class for each pixel
semantic_mask = ____(____, ____)

# Display the mask
plt.imshow(semantic_mask.squeeze(0))
plt.axis("off")
plt.show()
Редактировать и запускать код