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