인스턴스 마스크 오버레이
이전 연습 문제에서 세맨틱 마스크를 잘 만드셨어요! 이제 인스턴스 세그멘테이션 모델이 객체를 식별한 위치에 인스턴스 마스크를 덮어써서 갱신해 볼게요.
워크스페이스에 준비된 사전 학습된 MaskRCNN을 사용해 인스턴스 세그멘테이션 마스크를 생성해요. 그런 다음 이 마스크들을 순회하면서, 각 마스크에서 객체가 높은 확신도로 탐지된 부분을 세맨틱 마스크 위에 오버레이합니다.
torch는 이미 임포트되어 있어요.
이 연습은 강의의 일부입니다
PyTorch로 배우는 이미지 딥러닝
연습 안내
semantic_mask를 복제해panoptic_mask를 초기화하세요.- 인스턴스 마스크를 순회하는 for 루프를 정의하고, 이터레이터 변수 이름은
mask로 하세요. - 각 인스턴스 마스크에서 값이
0.5보다 큰 위치에는 현재instance_id로 panoptic 마스크를 덮어쓰세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Instantiate model and produce instance masks
model = MaskRCNN()
with torch.no_grad():
instance_masks = model(image_tensor)[0]["masks"]
# Initialize panoptic mask as semantic_mask
panoptic_mask = ____
# Iterate over instance masks
instance_id = 3
for ____ in ____:
# Set panoptic mask to instance_id where mask > 0.5
panoptic_mask[____] = ____
instance_id += 1
# Display panoptic mask
plt.imshow(panoptic_mask.squeeze(0))
plt.axis("off")
plt.show()