การแบ่งส่วนภาพด้วย Mask R-CNN ที่ผ่านการเทรนมาแล้ว
ในแบบฝึกหัดนี้ จะใช้โมเดล Mask R-CNN ที่ผ่านการเทรนมาแล้วเพื่อทำ instance segmentation กับภาพแมวสองตัวด้านล่างนี้

โมเดลนี้ถูกเทรนบน COCO dataset ซึ่งประกอบด้วยภาพวัตถุทั่วไป รวมถึงสัตว์ต่าง ๆ ด้วยเหตุนี้ โมเดลจึงสามารถจดจำแมวได้ทันทีโดยไม่ต้องทำ fine-tune เพิ่มเติม
โจทย์คือให้โหลดโมเดลและภาพแมวสองตัว จากนั้นเตรียมภาพ แล้วส่งเข้าโมเดลเพื่อรับผลการทำนาย โดย Image จาก PIL, torch, transforms จาก torchvision และ maskrcnn_resnet50_fpn ได้ถูก import ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning สำหรับภาพด้วย PyTorch
คำแนะนำการฝึกหัด
- โหลด Mask R-CNN แบบ
pretrainedไปยังตัวแปรmodelโดยใช้maskrcnn_resnet50_fpn() - แปลงภาพแมวสองตัวให้เป็น tensor แล้ว unsqueeze
- ทำการ inference โดยส่งภาพเข้าโมเดล จากนั้นกำหนดผลลัพธ์ให้กับตัวแปร
prediction
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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)