Zacznij terazZacznij za darmo

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.

two cats image

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Wczytaj wstępnie wytrenowany (pretrained) Mask R-CNN do zmiennej model, używając funkcji maskrcnn_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)
Edytuj i uruchom kod