เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ตั้งค่า Semantic Mask

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

street image

โจทย์คือการแบ่งส่วนภาพแบบ 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()
แก้ไขและรันโค้ด