Tìm kiếm bằng khuôn mặt không so sánh ảnh. Nó biến mỗi khuôn mặt thành một dãy số có độ dài cố định — một vector — rồi so sánh các vector đó. Hai tấm ảnh của cùng một người, chụp cách nhau nhiều năm ở hai căn phòng khác nhau, cho ra hai vector nằm sát nhau dù hai tấm ảnh gần như không chung một pixel nào.
Hiểu bốn công đoạn này sẽ cho bạn biết chính xác vì sao có ảnh chụp màn hình cho kết quả ngay lập tức, còn có ảnh thì thử lại bao nhiêu lần cũng hỏng.
Công đoạn một, phát hiện, diễn ra thế nào?
Bước phát hiện trả lời một câu hỏi hẹp hơn người ta tưởng: trong tấm ảnh này, khuôn mặt nằm ở đâu, và năm điểm then chốt của nó nằm ở đâu?
Bộ phát hiện quét tấm ảnh và trả về, cho mỗi khuôn mặt nó tìm thấy, một khung bao cùng tọa độ của năm điểm mốc — mắt trái, mắt phải, chóp mũi, khóe miệng trái, khóe miệng phải. Ở công đoạn này chúng tôi dùng YuNet. Chưa có gì liên quan đến danh tính xảy ra cả; đây thuần túy là hình học.
Nếu bước phát hiện hỏng thì mọi thứ phía sau đều hỏng. Và nó hỏng vì những lý do chẳng liên quan gì đến chất lượng ảnh theo nghĩa thông thường: một bàn tay che ngang miệng, một góc nghiêng hoàn toàn, một khuôn mặt nhỏ hơn kích thước tối thiểu của bộ phát hiện.
Công đoạn hai, căn chỉnh, diễn ra thế nào?
Bước căn chỉnh dùng năm điểm mốc đó để nắn khuôn mặt về một tư thế chuẩn — hai mắt nằm trên một đường ngang, ở tọa độ cố định, với tỷ lệ cố định.
Bước này là lý do một cái đầu nghiêng và một cái đầu nhìn thẳng trở nên so sánh được với nhau. Mọi khuôn mặt đi vào bộ mã hóa đều tới trong cùng một tư thế, cùng một kích thước, cắt theo cùng một vùng. Hãy để ý xem khung cắt đó vứt bỏ những gì: phần lớn mái tóc, quần áo, phông nền, căn phòng. Đó không phải là những thứ mang tín hiệu danh tính.
Nó cũng giải thích một nỗi bực quen thuộc. Nếu các điểm mốc lệch một chút — chẳng hạn vì một bên mắt bị che — bước căn chỉnh sẽ nắn khuôn mặt sai, và vector thu được sẽ sai theo kiểu trông y như một câu trả lời đầy tự tin.
Công đoạn ba, mã hóa, diễn ra thế nào?
Một mạng mã hóa biến khuôn mặt đã căn chỉnh thành một vector gồm 512 số. Chúng tôi dùng ArcFace cho việc này. Vector đó chính là bản mô tả toán học của khuôn mặt.
Mục tiêu huấn luyện mới là thứ làm nên giá trị của nó: mạng được huấn luyện sao cho các vector của cùng một danh tính tụm chặt lại với nhau, còn vector của những danh tính khác nhau thì đẩy ra xa. Nó không được huấn luyện để mô tả một khuôn mặt trông thế nào; nó được huấn luyện để mô tả đó là ai.
| Công đoạn | Đầu vào | Đầu ra | Hỏng khi |
|---|---|---|---|
| Phát hiện (YuNet) | Toàn bộ ảnh | Khung bao + 5 điểm mốc | Mặt bị che, quá nhỏ, góc quá nghiêng |
| Căn chỉnh | Khung bao + điểm mốc | Khung mặt đã chuẩn hóa | Điểm mốc không chính xác |
| Mã hóa (ArcFace) | Khung mặt đã căn chỉnh | Vector 512 số | Khung mặt bị suy giảm, nhòe hoặc nén nặng |
| So sánh | Vector | Danh sách xếp hạng kèm điểm | Không bao giờ — nó luôn trả về thứ gì đó |
Hàng cuối cùng mới là hàng quan trọng, và nó xứng đáng có một mục riêng.
Công đoạn bốn, so sánh, diễn ra thế nào?
Bước so sánh đo độ tương đồng cosine giữa vector của bạn và mọi vector trong chỉ mục, rồi trả về những vector gần nhất theo thứ tự.
Độ tương đồng cosine chạy từ 0 đến 1 và mô tả góc giữa hai vector. Trên dữ liệu của chúng tôi, ngưỡng được hiệu chỉnh cho khung hình video là 0.40. Trên ngưỡng, một cặp được coi là nhiều khả năng cùng một người; dưới ngưỡng, kết quả chỉ là nhiễu tình cờ nằm gần nhất.
Điểm cuối đó là thứ bị hiểu sai nhiều nhất về tìm kiếm vector: nó không bao giờ trả về rỗng. Bạn hỏi mười khuôn mặt gần nhất thì nó đưa bạn mười cái, kể cả khi người bạn cần hoàn toàn không có trong chỉ mục. Điểm số là thứ duy nhất phân biệt một câu trả lời thật với người lạ gần nhất hiện có. Một danh sách xếp hạng mà không có điểm số thì không đọc được.
Vì sao chỉ mục mới là thứ quyết định cái gì tìm được?
Vì bước so sánh chỉ xếp hạng được những gì đã được mã hóa từ trước. Chỉ mục không phải một cuộc tìm kiếm trên web; nó là một tập vector cố định đã tính sẵn.
Chỉ mục của chúng tôi chứa 241,792 khuôn mặt, trong đó 2,333 khuôn mặt được gắn với một diễn viên có tên, lấy từ ảnh bìa và khung hình trên 106 trang (chỉ mục của chúng tôi, ảnh chụp 2026-08). Hai hệ quả đến ngay sau đó:
- Một khuôn mặt có trong chỉ mục nhưng chưa bao giờ được gắn tên sẽ trả về dưới dạng một danh tính không tên. Chuyện đó rất phổ biến — riêng dữ liệu diễn viên tương tự của chúng tôi đã chứa 7,004 tham chiếu tới những danh tính không có tên đi kèm.
- Một khuôn mặt chưa từng được lập chỉ mục thì không thể trả về ở bất kỳ mức điểm nào. Công cụ vẫn sẽ đưa ra những phỏng đoán gần nhất của nó.
Một giới hạn đáng nói thẳng: nguồn của chúng tôi rất tập trung. 2,246 trong số 2,333 diễn viên có tên lấy ảnh đại diện từ một trang duy nhất. Vậy nên độ bao phủ phản ánh thứ những nguồn đó đã đăng, không phải toàn bộ sản lượng của ngành.
Cái này khác gì tìm kiếm ảnh ngược?
Tìm kiếm ảnh ngược đi tìm các bản sao của nguyên tấm ảnh của bạn. Tìm kiếm bằng khuôn mặt đi tìm cùng một danh tính trên những tấm ảnh khác nhau. Hai bên hỏng và thành công trong những điều kiện trái ngược nhau.
| Tìm kiếm ảnh ngược | Tìm kiếm bằng khuôn mặt | |
|---|---|---|
| So sánh cái gì | Dấu vân tay của cả tấm ảnh | Vector khuôn mặt |
| Cần đúng tấm ảnh đó phải có trên mạng | Có | Không |
| Cắt sát khuôn mặt có giúp không | Không — còn tệ hơn | Có — đó chính là đầu vào |
| Chịu được ánh sáng và tư thế khác nhau | Kém | Vốn được thiết kế cho việc đó |
| Chạy được với khung hình bạn tự chụp | Không | Có |
Nếu một công cụ tệ đi khi bạn cắt sát khuôn mặt thì nó không làm tìm kiếm bằng khuôn mặt. Đó là một phép thử đơn giản mà đáng tin.
Câu hỏi liên quan
- Vì sao tìm kiếm ảnh ngược của Google không dùng được với phim người lớn
- Cách tìm ra một video chỉ từ một ảnh chụp màn hình
- Tải ảnh lên một công cụ tìm kiếm có an toàn không?
- So sánh các công cụ tìm kiếm ảnh ngược
- Cách chụp màn hình sao cho tìm kiếm bằng khuôn mặt dùng được
Cách nhanh nhất để hiểu quy trình này là xem nó chạy. Hãy tải lên một khung hình ở đây: bước phát hiện và căn chỉnh diễn ra ngay trong trình duyệt của bạn, chỉ vùng khuôn mặt đã cắt cùng năm điểm mốc của nó được gửi đi để so sánh, và ảnh gốc không bao giờ rời khỏi thiết bị của bạn.