Model Faster R-CNN
Twoim kolejnym zadaniem jest zbudowanie modelu Faster R-CNN, który wykrywa obiekty różnej wielkości na obrazie. W tym celu skorzystasz z wygodnej klasy MultiScaleRoIAlign() z modułu torchvision.ops.
Klasa FasterRCNN została już zaimportowana z torchvision.models.detection. Twój anchor_generator z poprzedniego ćwiczenia jest dostępny w przestrzeni roboczej, a torch, torch.nn jako nn oraz torchvision są już zaimportowane.
To ćwiczenie jest częścią kursu
Głębokie uczenie dla obrazów z PyTorch
Instrukcje do ćwiczenia
- Zaimportuj
MultiScaleRoIAlignztorchvision.ops. - Utwórz instancję puli RoI, używając
MultiScaleRoIAlignz parametremfeatmap_namesustawionym na["0"],output_sizena7orazsampling_rationa2. - Utwórz model Faster R-CNN, przekazując mu
backbone,num_classdla klasyfikacji binarnej,anchor_generatororazroi_pooler.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import MultiScaleRoIAlign
____
# Instantiate RoI pooler
roi_pooler = ____(
____,
____,
____,
)
mobilenet = torchvision.models.mobilenet_v2(weights="DEFAULT")
backbone = nn.Sequential(*list(mobilenet.features.children()))
backbone.out_channels = 1280
# Create Faster R-CNN model
model = ____(
backbone=____
num_classes=____,
anchor_generator=____,
box_roi_pool=____,
)