1 อธิบาย
งานซ้ำทุกเฟรมอย่างลบ marker ลบโลโก้ หรือ beauty fix คือจุดที่ CopyCat เด่น: เราซ่อมมือไม่กี่เฟรมเป็น Ground Truth โมเดลเรียนจาก crop เล็ก ๆ ว่า "รอบ ๆ หน้าตาแบบนี้ ตรงกลางควรเป็นค่านี้" แล้วใช้กับทุกเฟรม
ที่นี่โมเดลดูทีละ 5×5 พิกเซล พื้นผิวเลื่อนและสว่างขึ้นตลอดช็อต ลองเทรนจากเฟรมเดียว แล้วเทียบกับเฟรมที่กระจายทั้งช็อต ดูแถว error ของเฟรมที่โมเดลไม่เคยเห็น
2 ลงมือลอง
โจทย์: ให้ marker ในเฟรมที่โมเดลไม่เคยเห็นเหลือต่ำกว่า 25% โดยส่วนอื่นเสียหายไม่เกิน 0.012
แม้ผ่านแล้ว error ใต้ marker ก็ไม่เป็นศูนย์: โมเดลเติมสิ่งที่น่าจะเป็น ไม่ใช่ของจริงที่ถูกบัง
3 เจาะลึก
โมเดลแบบ patch ทำงานยังไง
โมเดลไม่ได้ดูทั้งเฟรมทีเดียว มันดูทีละบริเวณเล็ก ๆ แล้วตอบว่าพิกเซลตรงนั้นควรเป็นค่าอะไร ในบทเรียนคือหน้าต่าง 5×5 พิกเซล CopyCat ดูบริเวณที่ใหญ่กว่ามากและใช้หลายชั้น แต่หลักเดียวกัน: ใช้ "รอบ ๆ" ตัดสิน "ตรงกลาง"
เพราะเห็นแค่บริเวณเล็ก ๆ โมเดลจึงใช้ได้ทุกตำแหน่งในภาพ marker จะเลื่อนไปไหนก็ไม่ต้อง track แต่ถ้าบริเวณรอบ ๆ ไม่มีข้อมูลพอ มันก็ตัดสินผิดได้
- 1crop รอบพิกเซล
- 2โมเดล
- 3ค่าใหม่ของพิกเซลกลาง
- 4ทำซ้ำทุกพิกเซล ทุกเฟรม
ใต้ marker คือการเดาที่น่าเชื่อ
พื้นผิวที่ถูก marker บังไม่มีอยู่ในภาพ โมเดลจึงสร้างสิ่งที่ดูเข้ากับรอบ ๆ ในบทเรียน marker ไม่เคยหายถึง 0% เพราะโมเดลรู้ไม่ได้ว่าข้างใต้จริง ๆ เป็นยังไง งานจริงก็เป็นแบบนี้ จึงต้องดูผลด้วยตาเสมอ
ดูบริเวณที่แก้ตอนเล่นต่อเนื่อง ไม่ใช่แค่ภาพนิ่ง
งานแบบไหนเหมาะ
เหมาะกับงานที่ "หน้าตาปัญหา" ซ้ำเดิมตลอดช็อต และต้องทำทุกเฟรม ไม่เหมาะกับงานที่เกิดแค่ไม่กี่เฟรม หรือที่แต่ละเฟรมต่างกันจนไม่มีรูปแบบให้เรียน
| งาน | เหมาะกับ patch model ไหม |
|---|---|
| ลบ tracking marker บนใบหน้าทั้งช็อต | เหมาะ งานซ้ำ หน้าตาเดิม |
| ลบโลโก้บนเสื้อที่ขยับไปมา | มักเหมาะ ถ้ามีเฟรมตัวอย่างครอบคลุมรอยยับ |
| beauty fix ผิวหน้า | มักเหมาะ ต้องเลือกเฟรมหลายแสงหลายมุม |
| ลบคนเดินผ่านฉากใหญ่ 10 เฟรม | ไม่ค่อยเหมาะ สั้นและต้องสร้างฉากหลังใหม่ |
4 ในงานจริง
ทำใน Nuke
- เลือกเฟรมกระจายทั้งช็อต ใช้ FrameHold แยกออกมา แล้วซ่อมด้วย RotoPaint ให้ดีเท่างานส่ง
- รวมเฟรม plate ต้นฉบับด้วย AppendClip ต่อเข้า Input ของ CopyCat และรวมเฟรมที่ซ่อมแล้วในลำดับเดียวกันต่อเข้า Ground Truth
- เทรน แล้วนำ .cat ไปใช้กับ Inference บน plate เต็มช็อต
- จำกัดผลเฉพาะบริเวณที่ต้องแก้ด้วย Keymix หรือ Merge กับ mask จาก Roto เพื่อไม่ให้ส่วนอื่นของภาพเปลี่ยน
พลาดบ่อย → แก้ยังไง
- ✗ ซ่อมมือแค่เฟรมเดียวหรือเฟรมติดกัน (ดู AI2)✓ เลือกเฟรมที่ต่างกันทั้งแสง ตำแหน่ง และขนาด กระจายทั้งช็อต
- ✗ ใช้ผล Inference ทั้งเฟรมตรง ๆ✓ โมเดลอาจแตะส่วนอื่นนิด ๆ ใช้ mask จำกัดเฉพาะบริเวณที่แก้
- ✗ คาดหวังว่าใต้ marker จะได้รายละเอียดจริง✓ โมเดลแค่เดาให้เข้ากับรอบ ๆ ถ้าต้องตรงจริงต้องใช้ข้อมูลจากเฟรมอื่น (เช่น clean plate) หรือ paint มือ
เช็กก่อนส่งช็อต
- Ground Truth กระจายทั้งช็อตและคุณภาพเท่างานส่ง
- ผลถูกจำกัดเฉพาะบริเวณที่แก้ด้วย mask
- เล่นต่อเนื่องแล้วบริเวณที่แก้ไม่กระพริบ ไม่ไหล
- grain ในบริเวณที่แก้เข้ากับส่วนอื่นของ plate
5 เช็กตัวเอง
ควรเลือกเฟรมไหนมาซ่อมมือเป็น Ground Truth
🔒 ตอบคำถามด้านบนก่อน แล้วการ์ดนี้จะเปิด
1. ทำไมโมเดลแบบ patch ไม่ต้อง track marker
2. ผลลบ marker ดี แต่บริเวณที่แก้ดูนิ่งผิดปกติตอนเล่น สาเหตุน่าจะเป็นอะไร
ตัวเลขมาจากไหน: neural net 25 → 12 → 1 เทรนด้วย Adam จริงบนหน้าต่าง 5×5 (ลบค่าเฉลี่ยออก) จาก 8 เฟรมพื้นผิว procedural ขนาด 64×64 ที่เราสร้าง เกณฑ์ 25% และ 0.012 เป็นค่าที่เราตั้ง CopyCat จริงใช้ network ที่ลึกกว่ามาก บน crop ที่ใหญ่กว่า (ปรับได้ด้วย crop size) และเทรนนานกว่านี้มาก