การค้นหาด้วยใบหน้าไม่ได้เทียบภาพกับภาพ มันแปลงใบหน้าแต่ละใบให้เป็นชุดตัวเลขความยาวคงที่ ซึ่งเรียกว่าเวกเตอร์ แล้วเทียบเวกเตอร์เหล่านั้นกัน ภาพถ่ายสองภาพของคนคนเดียวกัน ถ่ายห่างกันหลายปีคนละห้อง ให้เวกเตอร์ที่อยู่ใกล้กัน แม้ภาพทั้งสองจะแทบไม่มีพิกเซลใดตรงกันเลย

การเข้าใจสี่ขั้นตอนนี้จะบอกคุณได้ตรง ๆ ว่าทำไมภาพหน้าจอบางภาพถึงใช้ได้ทันที ส่วนบางภาพล้มเหลวไม่ว่าคุณจะลองใหม่กี่ครั้ง

ขั้นที่หนึ่ง การตรวจจับ เกิดอะไรขึ้น?

การตรวจจับตอบคำถามที่แคบกว่าที่คนคิด คือ ในภาพนี้ใบหน้าอยู่ตรงไหน และจุดสำคัญห้าจุดของมันอยู่ตรงไหน

ตัวตรวจจับจะกวาดดูทั้งภาพ แล้วคืนกรอบสี่เหลี่ยมพร้อมพิกัดจุดสังเกตห้าจุดสำหรับใบหน้าแต่ละใบที่เจอ ได้แก่ ตาซ้าย ตาขวา ปลายจมูก มุมปากซ้าย และมุมปากขวา เราใช้ YuNet ในขั้นนี้ ถึงตรงนี้ยังไม่มีอะไรเกี่ยวกับตัวตนเกิดขึ้นเลย มันคือเรขาคณิตล้วน ๆ

ถ้าการตรวจจับล้มเหลว ทุกอย่างที่อยู่ถัดไปก็ล้มเหลวตาม และการตรวจจับล้มเหลวด้วยเหตุผลที่ไม่เกี่ยวกับคุณภาพของภาพในความหมายปกติเลย เช่น มีมือบังปาก ใบหน้าหันข้างเต็มที่ หรือใบหน้าเล็กกว่าขนาดต่ำสุดที่ตัวตรวจจับรับได้

ขั้นที่สอง การจัดวางแนว เกิดอะไรขึ้น?

การจัดวางแนวใช้จุดสังเกตห้าจุดนั้นดัดใบหน้าให้เข้าสู่ตำแหน่งมาตรฐาน คือดวงตาอยู่บนเส้นแนวนอน ณ พิกัดที่ตายตัว และมาตราส่วนที่ตายตัว

ขั้นนี้คือเหตุผลที่ศีรษะที่เอียงกับศีรษะที่หันตรงเทียบกันได้ ใบหน้าทุกใบที่เข้าสู่ตัวเข้ารหัสมาถึงในท่าเดียวกัน ขนาดเดียวกัน และถูกครอบตัดในบริเวณเดียวกัน สังเกตว่าการครอบตัดนั้นทิ้งอะไรไปบ้าง ทั้งเส้นผมส่วนใหญ่ เสื้อผ้า ฉากหลัง และห้อง สิ่งเหล่านั้นไม่ใช่ส่วนหนึ่งของสัญญาณตัวตน

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

ขั้นที่สาม การเข้ารหัส เกิดอะไรขึ้น?

โครงข่ายตัวเข้ารหัสจะเปลี่ยนใบหน้าที่จัดแนวแล้วให้กลายเป็นเวกเตอร์ขนาด 512 ตัวเลข เราใช้ ArcFace ในขั้นนี้ เวกเตอร์นั้นคือคำอธิบายเชิงคณิตศาสตร์ของใบหน้า

สิ่งที่ทำให้มันมีประโยชน์คือเป้าหมายของการฝึก โครงข่ายถูกฝึกให้เวกเตอร์จากตัวตนเดียวกันเกาะกลุ่มกันแน่น และเวกเตอร์จากตัวตนต่างกันผลักออกจากกัน มันไม่ได้ถูกฝึกให้อธิบายว่าใบหน้า หน้าตาเป็นอย่างไร แต่ถูกฝึกให้อธิบายว่า นั่นคือใคร

ขั้นตอน สิ่งที่รับเข้า สิ่งที่ส่งออก ล้มเหลวเมื่อ
ตรวจจับ (YuNet) ภาพเต็ม กรอบ + จุดสังเกต 5 จุด ใบหน้าถูกบัง เล็กเกินไป หรือมุมสุดโต่ง
จัดวางแนว กรอบ + จุดสังเกต ภาพครอบใบหน้ามาตรฐาน จุดสังเกตคลาดเคลื่อน
เข้ารหัส (ArcFace) ภาพครอบที่จัดแนวแล้ว เวกเตอร์ 512 ตัวเลข ภาพครอบเสียคุณภาพ เบลอ หรือถูกบีบอัดหนัก
เปรียบเทียบ เวกเตอร์ รายการที่จัดอันดับพร้อมคะแนน ไม่มี เพราะมันคืนผลลัพธ์ออกมาเสมอ

แถวสุดท้ายคือแถวที่สำคัญ และมันสมควรมีหัวข้อเป็นของตัวเอง

ขั้นที่สี่ การเปรียบเทียบ เกิดอะไรขึ้น?

การเปรียบเทียบวัดค่าความคล้ายโคไซน์ระหว่างเวกเตอร์ของคุณกับเวกเตอร์ทุกตัวในดัชนี แล้วคืนตัวที่ใกล้ที่สุดเรียงตามลำดับ

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

ประเด็นสุดท้ายนั้นคือสิ่งที่คนเข้าใจผิดมากที่สุดเกี่ยวกับการค้นด้วยเวกเตอร์ นั่นคือ มันไม่เคยคืนค่าว่างเปล่า ขอใบหน้าที่ใกล้ที่สุดสิบใบ มันก็ให้คุณสิบใบ แม้คนที่ถูกต้องจะไม่มีอยู่ในดัชนีเลยก็ตาม คะแนนคือสิ่งเดียวที่แยกคำตอบจริงออกจากคนแปลกหน้าที่ใกล้ที่สุดเท่าที่มี รายการที่จัดอันดับแล้วแต่ไม่มีคะแนนกำกับนั้นอ่านไม่ได้เลย

ทำไมดัชนีถึงเป็นตัวกำหนดว่าอะไรค้นเจอได้?

เพราะการเปรียบเทียบจัดอันดับได้แค่สิ่งที่ถูกเข้ารหัสไว้แล้วเท่านั้น ดัชนีไม่ใช่การค้นหาทั่วทั้งเว็บ แต่คือชุดเวกเตอร์ตายตัวที่คำนวณไว้ล่วงหน้า

ของเรามี ใบหน้า 241,792 ใบ ซึ่งในจำนวนนั้นมี 2,333 ใบที่ผูกกับชื่อนักแสดง ดึงมาจากภาพปกและภาพนิ่งจาก 106 เว็บไซต์ (ดัชนีของเรา ข้อมูล ณ 2026-08) มีผลสองอย่างตามมาโดยตรง

  • ใบหน้าที่มีอยู่ในดัชนีแต่ไม่เคยถูกผูกกับชื่อ จะถูกคืนกลับมาเป็นตัวตนที่ไม่มีชื่อ ซึ่งพบบ่อยมาก เฉพาะข้อมูลนักแสดงหน้าคล้ายของเราอย่างเดียวก็มี การอ้างอิงถึงตัวตนที่ไม่มีชื่อกำกับ 7,004 รายการ แล้ว
  • ใบหน้าที่ไม่เคยถูกทำดัชนีเลย จะไม่มีทางถูกคืนกลับมาไม่ว่าคะแนนเท่าไร แต่เครื่องมือก็ยังจะแสดงตัวเลือกที่ใกล้ที่สุดให้คุณอยู่ดี

ขอบเขตที่ควรพูดให้ชัด แหล่งข้อมูลของเรากระจุกตัว 2,246 จาก 2,333 นักแสดงที่มีชื่อ มีภาพตัวแทนมาจากเว็บเดียว ความครอบคลุมจึงสะท้อนสิ่งที่แหล่งเหล่านั้นเผยแพร่ ไม่ใช่ผลผลิตทั้งหมดของอุตสาหกรรม

ต่างจากการค้นหาภาพย้อนกลับอย่างไร?

การค้นหาภาพย้อนกลับมองหาสำเนาของภาพทั้งภาพของคุณ ส่วนการค้นหาด้วยใบหน้ามองหาตัวตนเดียวกันข้ามภาพที่ต่างกัน ทั้งสองอย่างล้มเหลวและสำเร็จภายใต้เงื่อนไขที่ตรงข้ามกัน

ค้นหาภาพย้อนกลับ ค้นหาด้วยใบหน้า
เทียบอะไร ลายนิ้วมือของภาพทั้งภาพ เวกเตอร์ใบหน้า
ต้องมีภาพต้นฉบับอยู่บนเน็ตไหม ต้องมี ไม่ต้อง
การครอบตัดเฉพาะใบหน้าช่วยไหม ไม่ช่วย กลับแย่ลง ช่วย เพราะนั่นคือสิ่งที่มันรับเข้า
ทนต่อแสงและท่าทางที่ต่างกันไหม ทนได้แย่ ถูกออกแบบมาให้ทน
ใช้กับเฟรมที่คุณจับภาพเองได้ไหม ไม่ได้ ได้

ถ้าเครื่องมือไหนทำงาน แย่ลง เมื่อคุณครอบตัดเหลือแค่ใบหน้า มันไม่ได้กำลังค้นหาด้วยใบหน้า นั่นคือการทดสอบเดียวที่เชื่อถือได้

คำถามที่เกี่ยวข้อง


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