Faster R-CNN 모델
다음 과제는 이미지에서 크기가 서로 다른 객체를 탐지할 수 있는 Faster R-CNN 모델을 만드는 것입니다. 이를 위해 torchvision.ops의 편리한 클래스인 MultiScaleRoIAlign()을 사용해 볼게요.
FasterRCNN 클래스는 torchvision.models.detection에서 가져와 두었어요. 이전 연습 문제에서 만든 anchor_generator가 작업 공간에 준비되어 있으며, torch, torch.nn(별칭 nn), torchvision도 이미 임포트되어 있어요.
이 연습은 강의의 일부입니다
PyTorch로 배우는 이미지 딥러닝
연습 안내
torchvision.ops에서MultiScaleRoIAlign을 임포트하세요.MultiScaleRoIAlign을 사용해 RoI 풀러를 생성하세요. 이때featmap_names는["0"],output_size는7,sampling_ratio는2로 설정하세요.backbone, 이진 분류용num_class,anchor_generator,roi_pooler를 전달하여 Faster R-CNN 모델을 생성하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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=____,
)