680 likes | 835 Views
เฟรมเวิร์กของส่วนต่อประสานกับผู้ใช้ผ่านศีรษะมนุษย์เสมือนโดยใช้โมโนสโกปิกฟิชแทงก์วีอาร์. นำเสนอโดย นาย อรรถกร พูนศิลป์ อาจารย์ที่ปรึกษาวิทยานิพนธ์ อ.ดร.อรรถวิทย์ สุดแสง ภาควิชาวิศวกรรมคอมพิวเตอร์ จุฬาลงกรณ์มหาวิทยาลัย. Outline. ความเป็นมาและความสำคัญของปัญหา งานวิจัยและทฤษฎีที่เกี่ยวข้อง
E N D
เฟรมเวิร์กของส่วนต่อประสานกับผู้ใช้ผ่านศีรษะมนุษย์เสมือนโดยใช้โมโนสโกปิกฟิชแทงก์วีอาร์เฟรมเวิร์กของส่วนต่อประสานกับผู้ใช้ผ่านศีรษะมนุษย์เสมือนโดยใช้โมโนสโกปิกฟิชแทงก์วีอาร์ นำเสนอโดย นาย อรรถกร พูนศิลป์ อาจารย์ที่ปรึกษาวิทยานิพนธ์ อ.ดร.อรรถวิทย์ สุดแสง ภาควิชาวิศวกรรมคอมพิวเตอร์ จุฬาลงกรณ์มหาวิทยาลัย
Outline • ความเป็นมาและความสำคัญของปัญหา • งานวิจัยและทฤษฎีที่เกี่ยวข้อง • รายละเอียดในการพัฒนา • การทดลองและผลการทดลอง • สรุป
ความเป็นมาและความสำคัญของปัญหาความเป็นมาและความสำคัญของปัญหา
ความเป็นมาและความสำคัญของปัญหาความเป็นมาและความสำคัญของปัญหา • User Interface ที่ใช้กันทั่วไปตั้งแต่อดีตถึงปัจจุบัน • ส่วนใหญ่จำกัดแค่แป้นพิมพ์และเมาส์ • ไม่เป็นธรรมชาติต้องใช้เวลาศึกษาเรียนรู้ • การนำเสนอขาดความน่าสนใจ • User Interface ที่นำเสนอ • ใช้ภาษาพูด และภาษาท่าทางประกอบ • เป็นธรรมชาติ คนที่ไม่เคยใช้มาก่อนก็สามารถใช้งานได้ทันที • ดึงดูดความสนใจได้มากกว่า
ความเป็นมาและความสำคัญของปัญหาความเป็นมาและความสำคัญของปัญหา • แนวคิดของงานวิจัยนี้ • พูดคุย และมีปฏิกิริยาต่างๆ ไปยังผู้ใช้งานได้
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง • Jun Rekimoto, A Vision-Based Head Tracker for Fish Tank Vitual Reality - VR without Head Gear.Proceedings of VRAIS'95 ,1995, Pages 94-100 • ตรวจจับตำแหน่งผู้ใช้งาน • นำตำแหน่งไปปรับมุมมองแบบฟิชแทงก์วีอาร์ของโมเดลสามมิติ
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง • ข้อจำกัด • ผู้ใช้ต้องอยู่ห่างจากกล้องเป็นระยะที่คงที่ • ต้องเก็บภาพต้นแบบใบหน้าไว้ก่อน และไม่ทนทานต่อสภาพแสงที่เปลี่ยน
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง • Paula Salgado Lucena, Marcelo Gattass, and Luiz Velho. Expressive Talking Heads: A Study on Speech and Facial Expression in Virtual Characters.Revista SCIENTIA, 2002. • Talking Head ที่สามารถพูดตามสคริปต์ และขยับปากสอดคล้องกับเสียงพูด • กรอกลูกตาไปมา และ แสดงอารมณ์ได้
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง • ตัวอย่างใบหน้าที่ใช้
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง • ข้อจำกัด • พูดตามข้อความที่ป้อนโดยผู้ใช้เท่านั้น • ไม่สามารถรับรู้ความเป็นไปของผู้ใช้งาน
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง • Cynthia Breazeal, Brian Scassellati, How to build robots that make friends and influence people., IROS99, Kyonjiu, Korea, 1999. • มีลักษณะเป็นหุ่นยนต์ที่มีเฉพาะส่วนของศีรษะ • แสดงออกทางอารมณ์ได้ และพูดคุยง่ายๆ ได้ • รับรู้ปฏิกิริยาของผู้ใช้งานได้ • เป็นเพื่อนเล่นกับเด็กๆ ได้
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง
งานวิจัยที่เกี่ยวข้องงานวิจัยที่เกี่ยวข้อง • ข้อจำกัด • มีต้นทุนในการสร้างที่สูง • ลักษณะภายนอกเป็นหุ่นยนต์ที่ไม่เหมือนหน้าคนจริง
รายละเอียดในการพัฒนา • ความสามารถของระบบ • แสดงโมเดลสามมิติของศีรษะมนุษย์เสมือนจริง • สามารถมองไปยังผู้ใช้ได้ • สนทนาพูดคุยกับผู้ใช้ได้ • แสดงอารมณ์ ได้แก่ ปกติ ยิ้ม เศร้า ประหลาดใจ หวาดกลัว โกรธ และสะอิดสะเอียน • สามารถปรับมุมมองให้สอดคล้องกับตำแหน่งของผู้ใช้โดยใช้ฟิชแทงก์วีอาร์
INPUT Text Input Speech Recognition Engine Pattern Tracker Main Process 3D Reconstructor A.L.I.C.E Bot Fish Tank VR AIML (ALICE Brain) Text Filter Text-to-speech Engine Lip Eyes Camera Perspective 3D Head Model OUTPUT โครงสร้างการทำงาน
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • ผู้ใช้ต้องสวมหมวกที่ติดรูปแบบตรวจจับ เพื่อให้กล้องรับภาพเข้ามาประมวลผลหาตำแหน่ง
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • เหตุผลที่ใช้รูปแบบตรวจจับแบบที่กล่าวมา • ประมวลผลหาตำแหน่งได้อย่างรวดเร็วกว่าการตรวจจับใบหน้าโดยตรง • ไม่จำเป็นต้องเทรนระบบให้รู้จำใบหน้าผู้ใช้แต่ละคน • การตรวจจับสี่เหลี่ยมสีดำบนพื้นขาวทำได้อย่างแม่นยำและคงทน (Robust) กว่ารูปแบบอื่นๆ • หากรูปสี่เหลี่ยมมีจำนวนมากกว่าสอง จะมีโอกาสเกิดความผิดพลาดมากขึ้น เพราะจุดมีจำนวนมากขึ้น • หากรูปสี่เหลี่ยมมีเพียงรูปเดียว อาจมีรูปร่างซ้ำกับวัตถุอื่นๆ เช่น จอมอนิเตอร์ทำให้การตรวจจับผิดพลาดง่าย
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • เมื่อรับภาพมาจากกล้อง ขั้นตอนแรกคือการปรับแก้การบิดเบี้ยวในแนวรัศมีของภาพ (Undistortion)
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • ตัวอย่างภาพที่ปรับแก้การบิดเบี้ยวในแนวรัศมีแล้ว
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • แปลงจากภาพสีให้เป็นภาพระดับเทา (Gray Scale)
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • ขยายขนาดจุดสว่าง (Dilation)
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • แปลงให้เป็นภาพไบนารี โดยใช้ค่าเทรชโฮล (Threshold) จากค่าเฉลี่ยของความสว่างทั่วทั้งภาพ
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • หาเส้นรอบรูป (Contour)
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • ตัดเส้นที่ล้อมรอบของจุดสว่าง ให้เหลือแต่เส้นที่ล้อมรอบกลุ่มของจุดมืด • ตัดเส้นรอบรูปที่มีพื้นที่น้อยกว่าที่กำหนดออก
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • เลือกเฉพาะเส้นที่คล้ายสี่เหลี่ยม • เลือกเฉพาะเส้นที่มีลักษณะนูนโค้ง (Convex)
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • ในขั้นตอนนี้ อาจมีกรณีที่มีเส้นรอบรูปจากวัตถุอื่นที่ไม่ใช่รูปแบบตรวจจับก็ได้ แก้โดยการเลือกเอาเฉพาะเส้นสี่เหลี่ยมสองรูปที่มีมุมติดกัน
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • เฉลี่ยค่าตำแหน่งจุดมุมทุกจุดจาก 4 เฟรมล่าสุดเพื่อลดการกระตุกและกระโดดของตำแหน่งที่ตรวจจับได้
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • ภาพผลลัพธ์
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • ตรวจจับตำแหน่งผู้ใช้ (x,y,z) จากตำแหน่ง (x,y) ของจุดมุมทั้ง 7 จุด • ใช้เทคนิค Camera Calibration • Intrinsic Camera Parameters • ความยาวโฟกัส (Focal length) • ตำแหน่งของจุดกึ่งกลางภาพ (Principal point) • ขนาดของแต่ละจุดภาพ (Effective pixel size) • สัมประสิทธิ์การบิดเบี้ยวในแนวรัศมีของเลนส์ (Radial distortion coefficient) • Extrinsic Camera Parameters • เมตริกซ์การหมุน (Rotation matrix) • เวกเตอร์การเคลื่อนที่ (Translation vector)
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • จุดในพิกัดสามมิติ M และจุดที่ปรากฏบนภาพ m เป็นไปตามความสัมพันธ์ • ต้องการหา [Rt] เพื่อนำไปใช้งาน • m คือตำแหน่งในภาพของจุดมุมทั้งเจ็ด • M คือตำแหน่งจริงที่ได้จากการวัดแบบ Relative ของจุดมุมทั้งเจ็ด • A (Intrinsic parameters) หาได้จากการทำ Camera calibration โดยต้องหาให้เสร็จสิ้นก่อนที่ระบบจะเริ่มทำงาน
การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพการตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ • Translation Vector ที่ได้คือตำแหน่ง (x,y,z) ของรูปแบบตรวจจับเทียบกับกล้อง • สามารถหาตำแหน่งของตาเทียบกับกล้อง (รูปแบบตรวจจับมีตำแหน่งที่คงที่เทียบกับตา) • สามารถหาตำแหน่งของตาเทียบกับกึ่งกลางจอภาพ • ตำแหน่งพิกัดสามมิติที่ได้มีหน่วยเป็นเซนติเมตร (cm)
คำนวณหาพารามิเตอร์แบบภายในคำนวณหาพารามิเตอร์แบบภายใน รับภาพจากกล้อง ปรับแก้การบิดเบี้ยวตามแนวรัศมี ตรวจจับจุดมุมทั้ง 7 จุด คำนวณหาพารามิเตอร์แบบภายนอก คำนวณหาตำแหน่งตาผู้ใช้เทียบกับจอภาพ แล้วนำไปใช้งาน การตรวจหาตำแหน่งของผู้ใช้เทียบกับจอภาพ
การปรับมุมมองให้สัมพันธ์กับตำแหน่งของผู้ใช้การปรับมุมมองให้สัมพันธ์กับตำแหน่งของผู้ใช้ • ใช้เทคนิค Fish-Tank VR • แสดงภาพกราฟฟิกผ่านจอมอนิเตอร์ธรรมดา • ใช้ระบบการติดตามตำแหน่งของศีรษะผู้ใช้ (Head Tracking) • ปรับมุมมองหรือเพอสเปกทีฟให้สัมพันธ์กับตำแหน่งดวงตาผู้ใช้ในขณะนั้น • ถ้าใช้ร่วมกับแว่นตาสามมิติจะเป็นแบบ stereoscopic แต่ถ้าไม่ได้ใช้ร่วมกับแว่น ก็จะเป็นแบบ monoscopic
การปรับมุมมองให้สัมพันธ์กับตำแหน่งของผู้ใช้การปรับมุมมองให้สัมพันธ์กับตำแหน่งของผู้ใช้ • Fish-Tank VR
การปรับมุมมองให้สัมพันธ์กับตำแหน่งของผู้ใช้การปรับมุมมองให้สัมพันธ์กับตำแหน่งของผู้ใช้ • กล้องในโลกสามมิติและการกำหนดเพอสเปกทีฟ
+y Entire Screen Area (xmax, ymax, 0) (0,0,0) +x (xmin, ymin, 0) Camera Direction (trans[0], trans[1], trans[2]) การปรับมุมมองให้สัมพันธ์กับตำแหน่งของผู้ใช้ Window Area
การทำให้โมเดลสบตาผู้ใช้การทำให้โมเดลสบตาผู้ใช้ • แยกชิ้นโมเดลระหว่างใบหน้าและดวงตาทั้งสองข้าง
การทำให้โมเดลสบตาผู้ใช้การทำให้โมเดลสบตาผู้ใช้
การพูดคุยโต้ตอบ • ใช้ A.L.I.C.E Bot • ติดต่อผ่านพอร์ต 2001 • ฐานข้อมูลประโยคสนทนาเก็บไว้ในไฟล์ AIML
การพูดคุยโต้ตอบ • รูปแบบการติดต่อกับ A.L.I.C.E Bot • “text = ข้อความที่อยากจะพูดคุย” ส่งไปที่พอร์ต 2001 • จะได้รับการตอบกลับเป็นข้อความเช่นเดียวกัน • เมื่อได้ Output จาก A.L.I.C.E Bot ออกมาแล้ว ก็จำเป็นต้องนำเข้าสู่กระบวนการกรองข้อความก่อนที่จะสังเคราะห์เป็นเสียง
ระบบกล้ามเนื้อบนใบหน้าระบบกล้ามเนื้อบนใบหน้า • แสดงจุดยอด, โพลีกอนและเส้นไวร์เฟรม
ระบบกล้ามเนื้อบนใบหน้าระบบกล้ามเนื้อบนใบหน้า • จำลองระบบกล้ามเนื้อจากคนจริง • มีสองสถานะคือ ยืด (Relax) และ หด (Contract)
V1 V2 V1 V2 V3 V3 ระบบกล้ามเนื้อบนใบหน้า
ระบบกล้ามเนื้อบนใบหน้าระบบกล้ามเนื้อบนใบหน้า • ปรับกล้ามเนื้อเพื่อให้มีลักษณะการยิ้ม
ระบบกล้ามเนื้อบนใบหน้าระบบกล้ามเนื้อบนใบหน้า • ปรับกล้ามเนื้อเพื่อให้มีลักษณะหน้าบึ้ง
ระบบกล้ามเนื้อบนใบหน้าระบบกล้ามเนื้อบนใบหน้า • การปรับขากรรไกรเพื่อให้อ้าปาก
การขยับปากให้สอดคล้องกับเสียงพูดการขยับปากให้สอดคล้องกับเสียงพูด • Text-to-speech จะส่ง “Viseme” ออกมาขณะทำงาน • Viseme คือรูปแบบปากที่สัมพันธ์กับหน่วยเสียงหนึ่งๆ • เก็บรูปแบบปากทั้งหมดไว้ในไฟล์ก่อน • ค่าการยืดหดกล้ามเนื้อแต่ละเส้น • ค่าองศาขากรรไกร • เรียกใช้รูปแบบปากที่ต้องการจากไฟล์