การแสดงออกทางสีหน้าเป็นขั้นตอนที่สำคัญในการเดินขบวนของ Roblox ในการทำให้ metaverse เป็นส่วนหนึ่งของชีวิตประจำวันของผู้คนผ่านการโต้ตอบกับอวาตาร์ที่เป็นธรรมชาติและน่าเชื่อถือ อย่างไรก็ตาม การแสดงภาพเคลื่อนไหวของตัวละคร 3 มิติเสมือนจริงในแบบเรียลไทม์นั้นเป็นความท้าทายด้านเทคนิคอย่างมาก แม้จะมีความก้าวหน้าทางการวิจัยมากมาย แต่ก็มีตัวอย่างเชิงพาณิชย์ที่จำกัดของแอปพลิเคชั่นแอนิเมชั่นใบหน้าแบบเรียลไทม์ นี่เป็นความท้าทายอย่างยิ่งที่ Roblox ซึ่งเราสนับสนุนอุปกรณ์ผู้ใช้ที่หลากหลาย สภาพในโลกแห่งความเป็นจริง และกรณีการใช้งานที่สร้างสรรค์อย่างดุเดือดจากนักพัฒนาของเรา
ในโพสต์นี้ เราจะอธิบายกรอบการเรียนรู้เชิงลึกสำหรับการถดถอยการควบคุมภาพเคลื่อนไหวบนใบหน้าจากวิดีโอที่ทั้งสองจัดการกับความท้าทายเหล่านี้และเปิดโอกาสให้เรามีโอกาสมากมายในอนาคต กรอบงานที่อธิบายไว้ในโพสต์บล็อกนี้ยังนำเสนอเป็น คุย at SIGGRAPH 2021.
แอนิเมชั่นใบหน้า
มีตัวเลือกมากมายในการควบคุมและสร้างภาพเคลื่อนไหวให้กับอุปกรณ์ใบหน้า 3 มิติ ที่เราใช้เรียกว่า Facial Action Coding System หรือ มาซึ่งซึ่งกำหนดชุดการควบคุม (ตามการจัดวางกล้ามเนื้อใบหน้า) เพื่อทำให้โครงหน้า 3 มิติบิดเบี้ยว แม้จะมีอายุมากกว่า 40 ปี FACS ยังคงเป็นมาตรฐานโดยพฤตินัย เนื่องจากการควบคุม FACS นั้นใช้งานง่ายและสามารถถ่ายโอนระหว่างแท่นขุดเจาะต่างๆ ได้อย่างง่ายดาย ตัวอย่างของแท่นขุดเจาะ FACS ที่กำลังดำเนินการอยู่สามารถดูได้ที่ด้านล่าง
วิธี
แนวคิดนี้มีไว้สำหรับวิธีการเรียนรู้เชิงลึกของเราในการถ่ายวิดีโอเป็นอินพุตและเอาต์พุตชุด FACS สำหรับแต่ละเฟรม เพื่อให้บรรลุสิ่งนี้ เราใช้สถาปัตยกรรมสองขั้นตอน: การตรวจจับใบหน้าและการถดถอย FACS
การตรวจจับใบหน้า
เพื่อให้ได้ประสิทธิภาพที่ดีที่สุด เราใช้ตัวแปรที่รวดเร็วของอัลกอริธึมการตรวจจับใบหน้า MTCNN ที่เป็นที่รู้จักค่อนข้างดี อัลกอริธึม MTCNN ดั้งเดิมค่อนข้างแม่นยำและรวดเร็ว แต่ไม่เร็วพอที่จะรองรับการตรวจจับใบหน้าแบบเรียลไทม์บนอุปกรณ์จำนวนมากที่ผู้ใช้ของเราใช้ ดังนั้น เพื่อแก้ปัญหานี้ เราได้ปรับแต่งอัลกอริทึมสำหรับกรณีการใช้งานเฉพาะของเรา ซึ่งเมื่อตรวจพบใบหน้าแล้ว การใช้งาน MTCNN ของเราจะรันเฉพาะสเตจ O-Net สุดท้ายในเฟรมที่ต่อเนื่องกัน ส่งผลให้ความเร็วเพิ่มขึ้นเฉลี่ย 10 เท่า เรายังใช้จุดสังเกตบนใบหน้า (ตำแหน่งของตา จมูก และมุมปาก) ที่ MTCNN คาดการณ์ไว้สำหรับการจัดแนวกล่องใส่กรอบหน้าก่อนขั้นตอนการถดถอยที่ตามมา การจัดแนวนี้ช่วยให้สามารถครอบตัดรูปภาพอินพุตได้แน่น ช่วยลดการคำนวณของเครือข่ายการถดถอย FACS
FACS การถดถอย
สถาปัตยกรรมการถดถอย FACS ของเราใช้การตั้งค่ามัลติทาสก์ซึ่งร่วมฝึกอบรมสถานที่สำคัญและตุ้มน้ำหนัก FACS โดยใช้แกนหลักที่ใช้ร่วมกัน (เรียกว่าตัวเข้ารหัส) เป็นตัวแยกคุณลักษณะ
การตั้งค่านี้ช่วยให้เราเพิ่มน้ำหนัก FACS ที่เรียนรู้จากลำดับแอนิเมชั่นสังเคราะห์ด้วยภาพจริงที่จับภาพรายละเอียดปลีกย่อยของการแสดงออกทางสีหน้า เครือข่ายย่อยการถดถอย FACS ที่ได้รับการฝึกอบรมควบคู่ไปกับการใช้ตัวถดถอยสถานที่สำคัญ สาเหตุ; การโน้มน้าวใจเหล่านี้ทำงานบนคุณลักษณะต่างๆ เมื่อเวลาผ่านไป ซึ่งต่างจากการโน้มน้าวใจที่ทำงานเฉพาะกับคุณลักษณะเชิงพื้นที่เท่านั้นที่สามารถพบได้ในเอ็นโค้ดเดอร์ ซึ่งช่วยให้โมเดลเรียนรู้ลักษณะชั่วขณะของแอนิเมชั่นใบหน้า และทำให้มีความไวต่อความไม่สอดคล้องกัน เช่น ความกระวนกระวายใจน้อยลง
การฝึกอบรม
เริ่มแรกเราฝึกแบบจำลองสำหรับการถดถอยจุดสังเกตเท่านั้นโดยใช้ทั้งภาพจริงและภาพสังเคราะห์ หลังจากจำนวนขั้นตอนที่กำหนด เราเริ่มเพิ่มลำดับสังเคราะห์เพื่อเรียนรู้น้ำหนักสำหรับเครือข่ายย่อยการถดถอย FACS ชั่วคราว ลำดับแอนิเมชั่นสังเคราะห์ถูกสร้างขึ้นโดยทีมสหวิทยาการของศิลปินและวิศวกร แท่นขุดเจาะมาตรฐานที่ใช้สำหรับข้อมูลประจำตัวที่แตกต่างกันทั้งหมด (face meshes) ถูกตั้งค่าโดยศิลปินของเรา ซึ่งได้ออกกำลังกายและแสดงผลโดยอัตโนมัติโดยใช้ไฟล์แอนิเมชั่นที่มีตุ้มน้ำหนัก FACS ไฟล์แอนิเมชั่นเหล่านี้สร้างขึ้นโดยใช้อัลกอริธึมคอมพิวเตอร์วิชันซิสเต็มแบบคลาสสิกที่ทำงานบนซีเควนซ์วิดีโอการเพาะกายสำหรับใบหน้า และเสริมด้วยลำดับภาพเคลื่อนไหวด้วยมือเพื่อการแสดงออกทางสีหน้าที่รุนแรงซึ่งหายไปจากวิดีโอการเพาะกาย
การสูญเสีย
ในการฝึกเครือข่ายการเรียนรู้เชิงลึก เราได้รวมคำศัพท์การสูญเสียที่แตกต่างกันหลายคำเป็นเส้นตรงเพื่อถดถอยจุดสังเกตและตุ้มน้ำหนัก FACS:
- การสูญเสียตำแหน่ง สำหรับจุดสังเกต RMSE ของตำแหน่งถดถอย (Lอืม ) และสำหรับตุ้มน้ำหนัก FACS MSE (Lข้อเท็จจริง ).
- การสูญเสียชั่วคราว สำหรับตุ้มน้ำหนัก FACS เราลดความกระวนกระวายใจโดยใช้การสูญเสียชั่วขณะเหนือลำดับแอนิเมชั่นสังเคราะห์ การสูญเสียความเร็ว (Lv ) ได้รับแรงบันดาลใจจาก [คูเดโร และคณะ 2019] คือ MSE ระหว่างเป้าหมายกับความเร็วที่คาดการณ์ไว้ ส่งเสริมความราบรื่นโดยรวมของการแสดงออกแบบไดนามิก นอกจากนี้ เงื่อนไขการทำให้เป็นมาตรฐานในการเร่งความเร็ว (Lแม็ก ) ถูกเพิ่มเพื่อลดการกระวนกระวายใจของน้ำหนัก FACS (น้ำหนักของมันให้ต่ำเพื่อรักษาการตอบสนอง)
- การสูญเสียความสม่ำเสมอ เราใช้ภาพจริงโดยไม่มีคำอธิบายประกอบในการสูญเสียความสอดคล้องที่ไม่มีผู้ดูแล (Lc ), คล้ายกับ [Honari และคณะ 2018]. สิ่งนี้สนับสนุนการคาดคะเนจุดสังเกตให้มีความเท่าเทียมกันภายใต้การแปลงภาพที่แตกต่างกัน ปรับปรุงความสอดคล้องของตำแหน่งจุดสังเกตระหว่างเฟรมโดยไม่ต้องใช้ป้ายกำกับจุดสังเกตสำหรับชุดย่อยของรูปภาพการฝึก
ประสิทธิภาพ
เพื่อปรับปรุงประสิทธิภาพของตัวเข้ารหัสโดยไม่ลดความแม่นยำหรือเพิ่มความกระวนกระวายใจ เราเลือกใช้การบิดแบบไม่มีแพ็ดเพื่อลดขนาดแผนที่ของสถานที่ สิ่งนี้ทำให้เราควบคุมขนาดแผนที่คุณลักษณะได้มากกว่าการบิดแบบก้าวกระโดด เพื่อรักษาส่วนที่เหลือ เราแบ่งแผนที่คุณลักษณะก่อนที่จะเพิ่มไปยังผลลัพธ์ของการบิดที่ไม่ได้เสริม นอกจากนี้ เราตั้งค่าความลึกของแมปคุณลักษณะเป็นทวีคูณของ 8 เพื่อการใช้หน่วยความจำอย่างมีประสิทธิภาพด้วยชุดคำสั่งเวกเตอร์ เช่น AVX และ Neon FP16 และส่งผลให้ประสิทธิภาพเพิ่มขึ้น 1.5 เท่า
โมเดลสุดท้ายของเรามี 1.1 ล้านพารามิเตอร์ และต้องใช้ 28.1 ล้านคูณสะสมเพื่อดำเนินการ วานิลลา โมบายเน็ต V2 (ซึ่งสถาปัตยกรรมของเรายึดตาม) ต้องการ 300 ล้านคูณสะสมเพื่อดำเนินการ เราใช้ คสช เฟรมเวิร์กสำหรับการอนุมานโมเดลบนอุปกรณ์และเวลาดำเนินการแบบเธรดเดียว (รวมถึงการตรวจหาใบหน้า) สำหรับเฟรมของวิดีโอแสดงอยู่ในตารางด้านล่าง โปรดทราบว่าเวลาดำเนินการ 16ms จะรองรับการประมวลผล 60 เฟรมต่อวินาที (FPS)
อะไรต่อไป
ไปป์ไลน์ข้อมูลสังเคราะห์ของเราช่วยให้เราสามารถปรับปรุงการแสดงออกและความทนทานของแบบจำลองที่ผ่านการฝึกอบรมซ้ำแล้วซ้ำอีก เราได้เพิ่มลำดับการสังเคราะห์เพื่อปรับปรุงการตอบสนองต่อการแสดงออกที่ไม่ได้รับ และยังทำให้การฝึกสมดุลตามอัตลักษณ์ใบหน้าที่หลากหลาย เราบรรลุแอนิเมชั่นคุณภาพสูงด้วยการคำนวณที่น้อยที่สุด เนื่องจากการกำหนดชั่วคราวของสถาปัตยกรรมและความสูญเสีย แบ็คโบนที่ปรับให้เหมาะสมที่สุด และความจริงที่ปราศจากข้อผิดพลาดจากข้อมูลสังเคราะห์ การกรองชั่วคราวในเครือข่ายย่อยตุ้มน้ำหนัก FACS ช่วยให้เราลดจำนวนและขนาดของเลเยอร์ในแกนหลักโดยไม่เพิ่มความกระวนกระวายใจ การสูญเสียความสม่ำเสมอโดยไม่ได้รับการดูแลทำให้เราฝึกกับชุดข้อมูลจริงจำนวนมาก ปรับปรุงลักษณะทั่วไปและความแข็งแกร่งของแบบจำลองของเรา เรายังคงทำงานเพื่อปรับแต่งและปรับปรุงโมเดลของเราต่อไป เพื่อให้ได้ผลลัพธ์ที่ชัดเจนยิ่งขึ้น ปราศจากความกระวนกระวายใจ และแข็งแกร่ง
หากคุณสนใจที่จะทำงานกับความท้าทายที่คล้ายคลึงกันในระดับแนวหน้าของการติดตามใบหน้าแบบเรียลไทม์และแมชชีนเลิร์นนิง โปรดดูบางส่วนของเรา ตำแหน่งที่เปิด กับทีมงานของเรา
โพสต์ แอนิเมชั่นใบหน้าแบบเรียลไทม์สำหรับอวตาร ปรากฏตัวครั้งแรกเมื่อ บล็อก Roblox.
- "
- 3d
- ถูกต้อง
- ข้าม
- การกระทำ
- ขั้นตอนวิธี
- อัลกอริทึม
- ทั้งหมด
- แอนิเมชั่น
- นิเมชั่น
- การใช้งาน
- สถาปัตยกรรม
- ศิลปิน
- ศิลปิน
- อัตโนมัติ
- Avatar
- เฉลี่ย
- ก่อน
- ที่ดีที่สุด
- บล็อก
- กล่อง
- กรณี
- กรณี
- ท้าทาย
- ความท้าทาย
- ท้าทาย
- การเข้ารหัส
- เชิงพาณิชย์
- คอมพิวเตอร์
- วิสัยทัศน์คอมพิวเตอร์
- ต่อ
- ความคิดสร้างสรรค์
- วิกฤติ
- พืชผล
- ข้อมูล
- การเรียนรู้ลึก ๆ
- แม้จะมี
- การตรวจพบ
- นักพัฒนา
- อุปกรณ์
- ต่าง
- ที่มีประสิทธิภาพ
- วิศวกร
- ใบหน้า
- ใบหน้า
- FAST
- ลักษณะ
- คุณสมบัติ
- ชื่อจริง
- FPS
- กรอบ
- ฟรี
- ต่อไป
- อนาคต
- GIF
- HTTPS
- ความคิด
- ภาพ
- การดำเนินงาน
- ปรับปรุง
- รวมทั้ง
- ที่เพิ่มขึ้น
- IT
- ป้ายกำกับ
- ใหญ่
- เรียนรู้
- ได้เรียนรู้
- การเรียนรู้
- ถูก จำกัด
- ที่ตั้ง
- เครื่อง
- เรียนรู้เครื่อง
- ทำให้
- การทำ
- แผนที่
- แผนที่
- มีนาคม
- metaverse
- ล้าน
- แบบ
- โมเดล
- ข้อมูลเพิ่มเติม
- ธาตุนีอ็อน
- เครือข่าย
- จมูก
- เปิด
- เปิด
- โอกาส
- การปรับให้เหมาะสม
- Options
- เป็นต้นฉบับ
- รูปแบบไฟล์ PDF
- การปฏิบัติ
- การคาดการณ์
- เรียลไทม์
- ลด
- ลด
- ต้อง
- การวิจัย
- ผลสอบ
- เสกสรร
- Roblox
- วิ่ง
- s
- มีความละเอียดอ่อน
- ชุด
- ที่ใช้ร่วมกัน
- ขนาด
- แก้
- เกี่ยวกับอวกาศ
- ระยะ
- เริ่มต้น
- ภายหลัง
- สนับสนุน
- ระบบ
- เป้า
- วิชาการ
- พื้นที่
- Metaverse
- ตลอด
- เวลา
- ไปทาง
- การติดตาม
- การฝึกอบรม
- us
- ผู้ใช้
- ความเร็ว
- วีดีโอ
- วิดีโอ
- เสมือน
- วิสัยทัศน์
- วิกิพีเดีย
- งาน
- การทำงาน
- ปี