Segmentacja z użyciem wstępnie wytrenowanego Mask R-CNN
W tym ćwiczeniu użyjesz wstępnie wytrenowanego modelu Mask R-CNN do przeprowadzenia segmentacji instancji na poniższym zdjęciu dwóch kotów.

Model, którego użyjesz, został wstępnie wytrenowany na zbiorze danych COCO, zawierającym obrazy popularnych obiektów, w tym zwierząt. Dzięki temu model powinien rozpoznawać koty bez żadnych dodatkowych dostosowań.
Twoim zadaniem jest wczytanie modelu i zdjęcia dwóch kotów, przygotowanie obrazu oraz przekazanie go do modelu w celu uzyskania predykcji. Klasa Image z biblioteki PIL, moduły torch, transforms z torchvision oraz funkcja maskrcnn_resnet50_fpn zostały już zaimportowane.
To ćwiczenie jest częścią kursu
Głębokie uczenie dla obrazów z PyTorch
Instrukcje do ćwiczenia
- Wczytaj wstępnie wytrenowany (
pretrained) Mask R-CNN do zmiennejmodel, używając funkcjimaskrcnn_resnet50_fpn(). - Przekształć zdjęcie dwóch kotów na tensor i zastosuj na nim metodę unsqueeze.
- Przeprowadź wnioskowanie, przekazując obraz do modelu, i przypisz wynik do zmiennej
prediction.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Load a pre-trained Mask R-CNN model
model = ____(____)
model.eval()
# Load an image and convert to a tensor
image = Image.open("two_cats.jpg")
transform = transforms.Compose([transforms.ToTensor()])
image_tensor = transform(image).____
# Perform inference
with torch.no_grad():
prediction = ____
print(prediction)