คำแนะนำในการตรวจจับใบหน้า

งาน MediaPipe Face Detector ช่วยให้คุณตรวจจับใบหน้าในรูปภาพหรือวิดีโอได้ คุณสามารถใช้งานนี้เพื่อค้นหาใบหน้าและฟีเจอร์ใบหน้าภายในเฟรมได้ งานนี้ใช้โมเดลแมชชีนเลิร์นนิง (ML) ที่ทำงานร่วมกับรูปภาพเดียวหรือสตรีมรูปภาพแบบต่อเนื่อง งานจะแสดงตำแหน่งใบหน้า ตลอดจนประเด็นสำคัญบนใบหน้า ได้แก่ ตาซ้าย ตาขวา ปลายจมูก ปาก ตาข้างซ้าย และแผลที่ตาขวา

ลองเลย

เริ่มต้นใช้งาน

เริ่มใช้งานนี้โดยทำตามคำแนะนำในการใช้งานสำหรับแพลตฟอร์มเป้าหมาย คำแนะนำเฉพาะแพลตฟอร์มเหล่านี้จะแนะนำการใช้งานเบื้องต้นของงานนี้ ซึ่งรวมถึงโมเดลที่แนะนำและตัวอย่างโค้ดที่มีตัวเลือกการกำหนดค่าที่แนะนำ

รายละเอียดงาน

ส่วนนี้จะอธิบายความสามารถ อินพุต เอาต์พุต และตัวเลือกการกำหนดค่าของงานนี้

ฟีเจอร์

  • การประมวลผลรูปภาพอินพุต - การประมวลผลจะรวมถึงการหมุนรูปภาพ การปรับขนาด การทำให้เป็นมาตรฐาน และการแปลงพื้นที่สี
  • เกณฑ์คะแนน - กรองผลลัพธ์ตามคะแนนการคาดการณ์
ข้อมูลงาน เอาต์พุตของงาน
อุปกรณ์ตรวจจับใบหน้าจะยอมรับอินพุตของประเภทข้อมูลอย่างใดอย่างหนึ่งต่อไปนี้
  • ภาพนิ่ง
  • เฟรมวิดีโอที่ถอดรหัสแล้ว
  • ฟีดวิดีโอสด
ตัวตรวจจับใบหน้าจะแสดงผลลัพธ์ต่อไปนี้
  • กรอบล้อมรอบสำหรับใบหน้าที่ตรวจพบในเฟรมรูปภาพ
  • พิกัดของจุดสังเกตของใบหน้า 6 ใบหน้าของใบหน้าที่ตรวจพบแต่ละรายการ

ตัวเลือกการกำหนดค่า

งานมีตัวเลือกการกำหนดค่าต่อไปนี้

ชื่อตัวเลือก คำอธิบาย ช่วงของค่า ค่าเริ่มต้น
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 มิลลิวินาที