งานตัวตรวจจับใบหน้า MediaPipe ช่วยให้คุณตรวจจับใบหน้าในรูปภาพหรือวิดีโอได้ คุณสามารถใช้งานนี้เพื่อค้นหาใบหน้าและลักษณะใบหน้าภายในเฟรม งานนี้ใช้โมเดลแมชชีนเลิร์นนิง (ML) ที่ทำงานกับรูปภาพเดี่ยวหรือสตรีมรูปภาพที่ต่อเนื่อง งานนี้จะแสดงตำแหน่งใบหน้าพร้อมกับจุดสำคัญของใบหน้าต่อไปนี้ ตาซ้าย ตาขวา ปลายจมูก ปาก โหนกแก้มด้านซ้าย และโหนกแก้มด้านขวา
เริ่มต้นใช้งาน
เริ่มใช้แท็บงานนี้โดยทําตามคําแนะนําการใช้งานแพลตฟอร์มเป้าหมายข้อใดข้อหนึ่งต่อไปนี้ คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานพื้นฐานของงานนี้ รวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดพร้อมตัวเลือกการกำหนดค่าที่แนะนำ
- Android - ตัวอย่างโค้ด - คำแนะนำ
- Python - ตัวอย่างโค้ด - คำแนะนำ
- เว็บ - ตัวอย่างโค้ด - คำแนะนำ
- iOS - ตัวอย่างโค้ด - คำแนะนำ
รายละเอียดงาน
ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้
ฟีเจอร์
- การประมวลผลรูปภาพอินพุต - การประมวลผลประกอบด้วยการหมุนรูปภาพ การปรับขนาด การทำให้เป็นมาตรฐาน และการแปลงพื้นที่สี
- เกณฑ์คะแนน - กรองผลลัพธ์ตามคะแนนการคาดการณ์
อินพุตงาน | เอาต์พุตของงาน |
---|---|
ตัวตรวจจับใบหน้ายอมรับอินพุตที่เป็นข้อมูลประเภทใดประเภทหนึ่งต่อไปนี้
|
เครื่องมือตรวจจับใบหน้าจะแสดงผลลัพธ์ต่อไปนี้
|
ตัวเลือกการกําหนดค่า
งานนี้มีตัวเลือกการกำหนดค่าต่อไปนี้
ชื่อตัวเลือก | คำอธิบาย | ช่วงของค่า | ค่าเริ่มต้น |
---|---|---|---|
running_mode |
ตั้งค่าโหมดการทํางานสําหรับงาน โดยโหมดมี 3 แบบ ดังนี้ รูปภาพ: โหมดสำหรับอินพุตรูปภาพเดียว วิดีโอ: โหมดสำหรับเฟรมที่ถอดรหัสของวิดีโอ LIVE_STREAM: โหมดสตรีมแบบสดของข้อมูลอินพุต เช่น จากกล้อง ในโหมดนี้ คุณต้องเรียกใช้ resultListener เพื่อตั้งค่า Listener เพื่อรับผลลัพธ์แบบไม่พร้อมกัน |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
min_detection_confidence |
คะแนนความเชื่อมั่นขั้นต่ำที่ถือว่าการตรวจจับใบหน้าสำเร็จ | Float [0,1] |
0.5 |
min_suppression_threshold |
เกณฑ์ขั้นต่ำที่ไม่ใช่การลบสูงสุดสำหรับการจับภาพใบหน้าที่จะถือว่าซ้อนทับกัน | Float [0,1] |
0.3 |
result_callback |
ตั้งค่าโปรแกรมรับฟังผลลัพธ์ให้รับผลลัพธ์การตรวจจับแบบไม่พร้อมกันเมื่อเครื่องมือตรวจจับใบหน้าอยู่ในโหมดสตรีมแบบสด ใช้ได้เมื่อตั้งค่าโหมดการทํางานเป็น LIVE_STREAM เท่านั้น |
N/A |
Not set |
โมเดล
โมเดลการตรวจจับใบหน้าอาจแตกต่างกันไปตามกรณีการใช้งานที่ต้องการ เช่น การตรวจจับระยะใกล้และระยะไกล นอกจากนี้ โมเดลมักจะมีการแลกเปลี่ยนระหว่างประสิทธิภาพ ความแม่นยำ ความละเอียด และข้อกำหนดด้านทรัพยากร และในบางกรณีอาจมีฟีเจอร์เพิ่มเติม
โมเดลที่แสดงในส่วนนี้คือตัวแปรของ BlazeFace ซึ่งเป็นโปรแกรมตรวจจับใบหน้าที่เบาและแม่นยำซึ่งเพิ่มประสิทธิภาพมาเพื่อการอนุมานด้วย GPU บนอุปกรณ์เคลื่อนที่ โมเดล BlazeFace เหมาะสำหรับแอปพลิเคชันต่างๆ เช่น การประมาณจุดสังเกตบนใบหน้า 3 มิติ การจัดประเภทการแสดงออก และการแบ่งกลุ่มบริเวณใบหน้า BlazeFace ใช้เครือข่ายการดึงข้อมูลฟีเจอร์ที่มีน้ำหนักเบาซึ่งคล้ายกับ MobileNetV1/V2
BlazeFace (ระยะใกล้)
โมเดลขนาดเบาสำหรับตรวจจับใบหน้า 1 หรือหลายใบหน้าในรูปภาพลักษณะเซลฟีจากกล้องสมาร์ทโฟนหรือเว็บแคม โมเดลนี้ได้รับการเพิ่มประสิทธิภาพสำหรับรูปภาพจากกล้องหน้าของโทรศัพท์ในระยะใกล้ สถาปัตยกรรมโมเดลใช้เทคนิคเครือข่าย Convolutive ของ Single Shot Detector (SSD) ที่มีตัวเข้ารหัสที่กำหนดเอง ดูข้อมูลเพิ่มเติมได้ที่บทความวิจัยเรื่องSingle Shot MultiBox Detector
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการแปลงค่าเป็นจำนวนเต็ม | การ์ดโมเดล | เวอร์ชัน |
---|---|---|---|---|
BlazeFace (ระยะใกล้) | 128 x 128 | ลอย 16 | info | ล่าสุด |
BlazeFace (ฟูลเรนจ์)
โมเดลที่ค่อนข้างเบาสําหรับการตรวจจับใบหน้าเดียวหรือหลายใบหน้าภายในรูปภาพจากกล้องสมาร์ทโฟนหรือเว็บแคม โมเดลนี้ได้รับการเพิ่มประสิทธิภาพสำหรับรูปภาพแบบเต็มช่วง เช่น รูปภาพที่ถ่ายด้วยกล้องด้านหลังของโทรศัพท์ สถาปัตยกรรมโมเดลใช้เทคนิคที่คล้ายกับเครือข่าย Convolutive ของ CenterNet ที่มีตัวเข้ารหัสที่กำหนดเอง
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการแปลงค่าเป็นจำนวนเต็ม | การ์ดโมเดล | เวอร์ชัน |
---|---|---|---|---|
BlazeFace (ฟูลเรนจ์) | 128 x 128 | ลอย 16 | ข้อมูล | เร็วๆ นี้ |
BlazeFace แบบเบาบาง (แบบเต็มช่วง)
รุ่น BlazeFace แบบเต็มรูปแบบเวอร์ชันเบากว่าซึ่งมีขนาดเล็กลงประมาณ 60% โมเดลนี้ได้รับการเพิ่มประสิทธิภาพสำหรับรูปภาพแบบเต็มช่วง เช่น รูปภาพที่ถ่ายด้วยกล้องหลังของโทรศัพท์ สถาปัตยกรรมโมเดลใช้เทคนิคที่คล้ายกับเครือข่าย Convolutive ของ CenterNet ที่มีตัวเข้ารหัสที่กำหนดเอง
ชื่อโมเดล | รูปร่างอินพุต | ประเภทการแปลงค่าเป็นจำนวนเต็ม | การ์ดโมเดล | เวอร์ชัน |
---|---|---|---|---|
BlazeFace แบบเบาบาง (แบบเต็มช่วง) | 128 x 128 | ลอย 16 | ข้อมูล | เร็วๆ นี้ |
การเปรียบเทียบงาน
ต่อไปนี้คือการเปรียบเทียบประสิทธิภาพของงานสำหรับทั้งไปป์ไลน์โดยอิงตามโมเดลที่ผ่านการฝึกล่วงหน้าข้างต้น ผลลัพธ์เวลาในการตอบสนองคือเวลาในการตอบสนองโดยเฉลี่ยใน Pixel 6 ที่ใช้ CPU / GPU
ชื่อแบบจำลอง | เวลาในการตอบสนองของ CPU | เวลาในการตอบสนองของ GPU |
---|---|---|
BlazeFace (ระยะใกล้) | 2.94 มิลลิวินาที | 7.41 มิลลิวินาที |