ตั้งค่า Semantic Mask
วิธีหนึ่งที่นิยมใช้ในการทำ panoptic segmentation คือการนำผลลัพธ์จาก semantic segmentation และ instance segmentation มารวมกัน ลองพิจารณาภาพถนนในนิวยอร์กต่อไปนี้

โจทย์คือการแบ่งส่วนภาพแบบ panoptic โดยระบุให้แต่ละแท็กซี่เป็นวัตถุแยกจากกัน พร้อมทั้งแยกแยะพื้นหลังที่เป็นถนนแอสฟัลต์ออกจากอาคาร
ขั้นแรก จะเริ่มด้วยการสร้าง semantic mask โดยใช้ U-Net ที่ผ่านการ pre-trained มาแล้ว ซึ่งเรียกใช้ได้ผ่าน UNet() โมเดลนี้ควรสามารถแยกแยะพื้นหลังทั้งสองประเภทได้ (แต่ยังไม่สามารถแยกแท็กซี่แต่ละคันออกจากกัน)
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning สำหรับภาพด้วย PyTorch
คำแนะนำการฝึกหัด
- สร้าง instance ของโมเดล U-Net โดยกำหนดให้เป็น
model - สร้าง
semantic_masksโดยส่ง tensor ของรูปภาพ input เข้าไปยังโมเดล - สร้าง semantic mask เดี่ยวโดยเลือกคลาสที่มีความน่าจะเป็นสูงสุดสำหรับแต่ละพิกเซล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Instantiate the model
model = ____
# Produce semantic masks for the input image
with torch.no_grad():
semantic_masks = ____
# Choose highest-probability class for each pixel
semantic_mask = ____(____, ____)
# Display the mask
plt.imshow(semantic_mask.squeeze(0))
plt.axis("off")
plt.show()