การค้นหาด้วยใบหน้าไม่ได้เทียบภาพกับภาพ มันแปลงใบหน้าแต่ละใบให้เป็นชุดตัวเลขความยาวคงที่ ซึ่งเรียกว่าเวกเตอร์ แล้วเทียบเวกเตอร์เหล่านั้นกัน ภาพถ่ายสองภาพของคนคนเดียวกัน ถ่ายห่างกันหลายปีคนละห้อง ให้เวกเตอร์ที่อยู่ใกล้กัน แม้ภาพทั้งสองจะแทบไม่มีพิกเซลใดตรงกันเลย
การเข้าใจสี่ขั้นตอนนี้จะบอกคุณได้ตรง ๆ ว่าทำไมภาพหน้าจอบางภาพถึงใช้ได้ทันที ส่วนบางภาพล้มเหลวไม่ว่าคุณจะลองใหม่กี่ครั้ง
ขั้นที่หนึ่ง การตรวจจับ เกิดอะไรขึ้น?
การตรวจจับตอบคำถามที่แคบกว่าที่คนคิด คือ ในภาพนี้ใบหน้าอยู่ตรงไหน และจุดสำคัญห้าจุดของมันอยู่ตรงไหน
ตัวตรวจจับจะกวาดดูทั้งภาพ แล้วคืนกรอบสี่เหลี่ยมพร้อมพิกัดจุดสังเกตห้าจุดสำหรับใบหน้าแต่ละใบที่เจอ ได้แก่ ตาซ้าย ตาขวา ปลายจมูก มุมปากซ้าย และมุมปากขวา เราใช้ YuNet ในขั้นนี้ ถึงตรงนี้ยังไม่มีอะไรเกี่ยวกับตัวตนเกิดขึ้นเลย มันคือเรขาคณิตล้วน ๆ
ถ้าการตรวจจับล้มเหลว ทุกอย่างที่อยู่ถัดไปก็ล้มเหลวตาม และการตรวจจับล้มเหลวด้วยเหตุผลที่ไม่เกี่ยวกับคุณภาพของภาพในความหมายปกติเลย เช่น มีมือบังปาก ใบหน้าหันข้างเต็มที่ หรือใบหน้าเล็กกว่าขนาดต่ำสุดที่ตัวตรวจจับรับได้
ขั้นที่สอง การจัดวางแนว เกิดอะไรขึ้น?
การจัดวางแนวใช้จุดสังเกตห้าจุดนั้นดัดใบหน้าให้เข้าสู่ตำแหน่งมาตรฐาน คือดวงตาอยู่บนเส้นแนวนอน ณ พิกัดที่ตายตัว และมาตราส่วนที่ตายตัว
ขั้นนี้คือเหตุผลที่ศีรษะที่เอียงกับศีรษะที่หันตรงเทียบกันได้ ใบหน้าทุกใบที่เข้าสู่ตัวเข้ารหัสมาถึงในท่าเดียวกัน ขนาดเดียวกัน และถูกครอบตัดในบริเวณเดียวกัน สังเกตว่าการครอบตัดนั้นทิ้งอะไรไปบ้าง ทั้งเส้นผมส่วนใหญ่ เสื้อผ้า ฉากหลัง และห้อง สิ่งเหล่านั้นไม่ใช่ส่วนหนึ่งของสัญญาณตัวตน
มันยังอธิบายความหงุดหงิดที่พบบ่อยด้วย ถ้าจุดสังเกตคลาดเคลื่อนไปนิดหน่อย เช่นเพราะตาข้างหนึ่งถูกบัง การจัดวางแนวจะดัดใบหน้าผิด และเวกเตอร์ที่ได้ก็ผิดในแบบที่ดูเหมือนเป็นคำตอบที่มั่นใจ
ขั้นที่สาม การเข้ารหัส เกิดอะไรขึ้น?
โครงข่ายตัวเข้ารหัสจะเปลี่ยนใบหน้าที่จัดแนวแล้วให้กลายเป็นเวกเตอร์ขนาด 512 ตัวเลข เราใช้ ArcFace ในขั้นนี้ เวกเตอร์นั้นคือคำอธิบายเชิงคณิตศาสตร์ของใบหน้า
สิ่งที่ทำให้มันมีประโยชน์คือเป้าหมายของการฝึก โครงข่ายถูกฝึกให้เวกเตอร์จากตัวตนเดียวกันเกาะกลุ่มกันแน่น และเวกเตอร์จากตัวตนต่างกันผลักออกจากกัน มันไม่ได้ถูกฝึกให้อธิบายว่าใบหน้า หน้าตาเป็นอย่างไร แต่ถูกฝึกให้อธิบายว่า นั่นคือใคร
| ขั้นตอน | สิ่งที่รับเข้า | สิ่งที่ส่งออก | ล้มเหลวเมื่อ |
|---|---|---|---|
| ตรวจจับ (YuNet) | ภาพเต็ม | กรอบ + จุดสังเกต 5 จุด | ใบหน้าถูกบัง เล็กเกินไป หรือมุมสุดโต่ง |
| จัดวางแนว | กรอบ + จุดสังเกต | ภาพครอบใบหน้ามาตรฐาน | จุดสังเกตคลาดเคลื่อน |
| เข้ารหัส (ArcFace) | ภาพครอบที่จัดแนวแล้ว | เวกเตอร์ 512 ตัวเลข | ภาพครอบเสียคุณภาพ เบลอ หรือถูกบีบอัดหนัก |
| เปรียบเทียบ | เวกเตอร์ | รายการที่จัดอันดับพร้อมคะแนน | ไม่มี เพราะมันคืนผลลัพธ์ออกมาเสมอ |
แถวสุดท้ายคือแถวที่สำคัญ และมันสมควรมีหัวข้อเป็นของตัวเอง
ขั้นที่สี่ การเปรียบเทียบ เกิดอะไรขึ้น?
การเปรียบเทียบวัดค่าความคล้ายโคไซน์ระหว่างเวกเตอร์ของคุณกับเวกเตอร์ทุกตัวในดัชนี แล้วคืนตัวที่ใกล้ที่สุดเรียงตามลำดับ
ค่าความคล้ายโคไซน์มีค่าตั้งแต่ 0 ถึง 1 และอธิบายมุมระหว่างเวกเตอร์สองตัว บนข้อมูลของเรา เกณฑ์ที่ปรับเทียบไว้สำหรับภาพนิ่งจากวิดีโอคือ 0.40 สูงกว่านั้นถือว่าคู่นั้นน่าจะเป็นคนเดียวกัน ต่ำกว่านั้นผลลัพธ์คือสัญญาณรบกวนที่บังเอิญอยู่ใกล้ที่สุด
ประเด็นสุดท้ายนั้นคือสิ่งที่คนเข้าใจผิดมากที่สุดเกี่ยวกับการค้นด้วยเวกเตอร์ นั่นคือ มันไม่เคยคืนค่าว่างเปล่า ขอใบหน้าที่ใกล้ที่สุดสิบใบ มันก็ให้คุณสิบใบ แม้คนที่ถูกต้องจะไม่มีอยู่ในดัชนีเลยก็ตาม คะแนนคือสิ่งเดียวที่แยกคำตอบจริงออกจากคนแปลกหน้าที่ใกล้ที่สุดเท่าที่มี รายการที่จัดอันดับแล้วแต่ไม่มีคะแนนกำกับนั้นอ่านไม่ได้เลย
ทำไมดัชนีถึงเป็นตัวกำหนดว่าอะไรค้นเจอได้?
เพราะการเปรียบเทียบจัดอันดับได้แค่สิ่งที่ถูกเข้ารหัสไว้แล้วเท่านั้น ดัชนีไม่ใช่การค้นหาทั่วทั้งเว็บ แต่คือชุดเวกเตอร์ตายตัวที่คำนวณไว้ล่วงหน้า
ของเรามี ใบหน้า 241,792 ใบ ซึ่งในจำนวนนั้นมี 2,333 ใบที่ผูกกับชื่อนักแสดง ดึงมาจากภาพปกและภาพนิ่งจาก 106 เว็บไซต์ (ดัชนีของเรา ข้อมูล ณ 2026-08) มีผลสองอย่างตามมาโดยตรง
- ใบหน้าที่มีอยู่ในดัชนีแต่ไม่เคยถูกผูกกับชื่อ จะถูกคืนกลับมาเป็นตัวตนที่ไม่มีชื่อ ซึ่งพบบ่อยมาก เฉพาะข้อมูลนักแสดงหน้าคล้ายของเราอย่างเดียวก็มี การอ้างอิงถึงตัวตนที่ไม่มีชื่อกำกับ 7,004 รายการ แล้ว
- ใบหน้าที่ไม่เคยถูกทำดัชนีเลย จะไม่มีทางถูกคืนกลับมาไม่ว่าคะแนนเท่าไร แต่เครื่องมือก็ยังจะแสดงตัวเลือกที่ใกล้ที่สุดให้คุณอยู่ดี
ขอบเขตที่ควรพูดให้ชัด แหล่งข้อมูลของเรากระจุกตัว 2,246 จาก 2,333 นักแสดงที่มีชื่อ มีภาพตัวแทนมาจากเว็บเดียว ความครอบคลุมจึงสะท้อนสิ่งที่แหล่งเหล่านั้นเผยแพร่ ไม่ใช่ผลผลิตทั้งหมดของอุตสาหกรรม
ต่างจากการค้นหาภาพย้อนกลับอย่างไร?
การค้นหาภาพย้อนกลับมองหาสำเนาของภาพทั้งภาพของคุณ ส่วนการค้นหาด้วยใบหน้ามองหาตัวตนเดียวกันข้ามภาพที่ต่างกัน ทั้งสองอย่างล้มเหลวและสำเร็จภายใต้เงื่อนไขที่ตรงข้ามกัน
| ค้นหาภาพย้อนกลับ | ค้นหาด้วยใบหน้า | |
|---|---|---|
| เทียบอะไร | ลายนิ้วมือของภาพทั้งภาพ | เวกเตอร์ใบหน้า |
| ต้องมีภาพต้นฉบับอยู่บนเน็ตไหม | ต้องมี | ไม่ต้อง |
| การครอบตัดเฉพาะใบหน้าช่วยไหม | ไม่ช่วย กลับแย่ลง | ช่วย เพราะนั่นคือสิ่งที่มันรับเข้า |
| ทนต่อแสงและท่าทางที่ต่างกันไหม | ทนได้แย่ | ถูกออกแบบมาให้ทน |
| ใช้กับเฟรมที่คุณจับภาพเองได้ไหม | ไม่ได้ | ได้ |
ถ้าเครื่องมือไหนทำงาน แย่ลง เมื่อคุณครอบตัดเหลือแค่ใบหน้า มันไม่ได้กำลังค้นหาด้วยใบหน้า นั่นคือการทดสอบเดียวที่เชื่อถือได้
คำถามที่เกี่ยวข้อง
- ทำไมการค้นหาภาพย้อนกลับของ Google ถึงใช้กับหนังผู้ใหญ่ไม่ได้
- จะหาหนังจากภาพหน้าจอเพียงภาพเดียวได้อย่างไร
- อัปโหลดรูปเข้าเครื่องมือค้นหาปลอดภัยไหม?
- เปรียบเทียบเครื่องมือค้นหาภาพย้อนกลับ
- จะจับภาพหน้าจอแบบไหนให้ระบบค้นหาใบหน้าใช้งานได้จริง
วิธีที่เร็วที่สุดในการเข้าใจกระบวนการนี้คือดูมันทำงานจริง อัปโหลดสักเฟรมที่นี่ การตรวจจับและการจัดวางแนวเกิดขึ้นในเบราว์เซอร์ของคุณ มีเพียงบริเวณใบหน้าที่ครอบตัดแล้วกับจุดสังเกตห้าจุดของมันเท่านั้นที่ถูกส่งไปเปรียบเทียบ และภาพต้นฉบับไม่เคยออกจากเครื่องคุณเลย