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

Ваша задача — выполнить паноптическую сегментацию этого изображения: каждое такси должно быть выделено как отдельный объект, а фоновые области — асфальт и здания — должны различаться между собой.
Для начала вы создадите семантическую маску с помощью предобученной модели 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()