หน้าแรก · Lab · AI ในงาน comp: แนวคิด CopyCat

AI4 ลบ marker ด้วยโมเดลแบบ patch

ซ่อมมือไม่กี่เฟรม แล้วให้โมเดลทำที่เหลือ

AI ในงาน comp: แนวคิด CopyCat · ~8 นาที · ฟรี

1 อธิบาย

งานซ้ำทุกเฟรมอย่างลบ marker ลบโลโก้ หรือ beauty fix คือจุดที่ CopyCat เด่น: เราซ่อมมือไม่กี่เฟรมเป็น Ground Truth โมเดลเรียนจาก crop เล็ก ๆ ว่า "รอบ ๆ หน้าตาแบบนี้ ตรงกลางควรเป็นค่านี้" แล้วใช้กับทุกเฟรม

ที่นี่โมเดลดูทีละ 5×5 พิกเซล พื้นผิวเลื่อนและสว่างขึ้นตลอดช็อต ลองเทรนจากเฟรมเดียว แล้วเทียบกับเฟรมที่กระจายทั้งช็อต ดูแถว error ของเฟรมที่โมเดลไม่เคยเห็น

2 ลงมือลอง

โจทย์: ให้ marker ในเฟรมที่โมเดลไม่เคยเห็นเหลือต่ำกว่า 25% โดยส่วนอื่นเสียหายไม่เกิน 0.012

แม้ผ่านแล้ว error ใต้ marker ก็ไม่เป็นศูนย์: โมเดลเติมสิ่งที่น่าจะเป็น ไม่ใช่ของจริงที่ถูกบัง

SkyVFX Lab · AI4interactive · 1001

3 เจาะลึก

โมเดลแบบ patch ทำงานยังไง

โมเดลไม่ได้ดูทั้งเฟรมทีเดียว มันดูทีละบริเวณเล็ก ๆ แล้วตอบว่าพิกเซลตรงนั้นควรเป็นค่าอะไร ในบทเรียนคือหน้าต่าง 5×5 พิกเซล CopyCat ดูบริเวณที่ใหญ่กว่ามากและใช้หลายชั้น แต่หลักเดียวกัน: ใช้ "รอบ ๆ" ตัดสิน "ตรงกลาง"

เพราะเห็นแค่บริเวณเล็ก ๆ โมเดลจึงใช้ได้ทุกตำแหน่งในภาพ marker จะเลื่อนไปไหนก็ไม่ต้อง track แต่ถ้าบริเวณรอบ ๆ ไม่มีข้อมูลพอ มันก็ตัดสินผิดได้

  1. 1crop รอบพิกเซล
  2. 2โมเดล
  3. 3ค่าใหม่ของพิกเซลกลาง
  4. 4ทำซ้ำทุกพิกเซล ทุกเฟรม

ใต้ marker คือการเดาที่น่าเชื่อ

พื้นผิวที่ถูก marker บังไม่มีอยู่ในภาพ โมเดลจึงสร้างสิ่งที่ดูเข้ากับรอบ ๆ ในบทเรียน marker ไม่เคยหายถึง 0% เพราะโมเดลรู้ไม่ได้ว่าข้างใต้จริง ๆ เป็นยังไง งานจริงก็เป็นแบบนี้ จึงต้องดูผลด้วยตาเสมอ

ดูบริเวณที่แก้ตอนเล่นต่อเนื่อง ไม่ใช่แค่ภาพนิ่ง

งานแบบไหนเหมาะ

เหมาะกับงานที่ "หน้าตาปัญหา" ซ้ำเดิมตลอดช็อต และต้องทำทุกเฟรม ไม่เหมาะกับงานที่เกิดแค่ไม่กี่เฟรม หรือที่แต่ละเฟรมต่างกันจนไม่มีรูปแบบให้เรียน

งานเหมาะกับ patch model ไหม
ลบ tracking marker บนใบหน้าทั้งช็อตเหมาะ งานซ้ำ หน้าตาเดิม
ลบโลโก้บนเสื้อที่ขยับไปมามักเหมาะ ถ้ามีเฟรมตัวอย่างครอบคลุมรอยยับ
beauty fix ผิวหน้ามักเหมาะ ต้องเลือกเฟรมหลายแสงหลายมุม
ลบคนเดินผ่านฉากใหญ่ 10 เฟรมไม่ค่อยเหมาะ สั้นและต้องสร้างฉากหลังใหม่

4 ในงานจริง

ทำใน Nuke

  1. เลือกเฟรมกระจายทั้งช็อต ใช้ FrameHold แยกออกมา แล้วซ่อมด้วย RotoPaint ให้ดีเท่างานส่ง
  2. รวมเฟรม plate ต้นฉบับด้วย AppendClip ต่อเข้า Input ของ CopyCat และรวมเฟรมที่ซ่อมแล้วในลำดับเดียวกันต่อเข้า Ground Truth
  3. เทรน แล้วนำ .cat ไปใช้กับ Inference บน plate เต็มช็อต
  4. จำกัดผลเฉพาะบริเวณที่ต้องแก้ด้วย Keymix หรือ Merge กับ mask จาก Roto เพื่อไม่ให้ส่วนอื่นของภาพเปลี่ยน

พลาดบ่อย → แก้ยังไง

  • ✗ ซ่อมมือแค่เฟรมเดียวหรือเฟรมติดกัน (ดู AI2)✓ เลือกเฟรมที่ต่างกันทั้งแสง ตำแหน่ง และขนาด กระจายทั้งช็อต
  • ✗ ใช้ผล Inference ทั้งเฟรมตรง ๆ✓ โมเดลอาจแตะส่วนอื่นนิด ๆ ใช้ mask จำกัดเฉพาะบริเวณที่แก้
  • ✗ คาดหวังว่าใต้ marker จะได้รายละเอียดจริง✓ โมเดลแค่เดาให้เข้ากับรอบ ๆ ถ้าต้องตรงจริงต้องใช้ข้อมูลจากเฟรมอื่น (เช่น clean plate) หรือ paint มือ

เช็กก่อนส่งช็อต

  • Ground Truth กระจายทั้งช็อตและคุณภาพเท่างานส่ง
  • ผลถูกจำกัดเฉพาะบริเวณที่แก้ด้วย mask
  • เล่นต่อเนื่องแล้วบริเวณที่แก้ไม่กระพริบ ไม่ไหล
  • grain ในบริเวณที่แก้เข้ากับส่วนอื่นของ plate

5 เช็กตัวเอง

เช็กตัวเอง 1 ข้อ

ควรเลือกเฟรมไหนมาซ่อมมือเป็น 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) และเทรนนานกว่านี้มาก