Bạn thả một ảnh chụp màn hình vào Google Images và nhận về những tấm ảnh kho chẳng liên quan. Vấn đề không nằm ở chỗ ảnh của bạn nhòe. Nó nằm ở chỗ bạn đang hỏi sai loại công cụ tìm kiếm bằng sai loại câu hỏi.
Tìm kiếm ảnh ngược của Google đi tìm các bản sao và bản gần giống của nguyên tấm ảnh đó trong một chỉ mục nó dựng lên bằng cách thu thập dữ liệu web công khai. Hai điều phá vỡ mô hình ấy khi gặp khung hình phim người lớn: Google không thu thập dữ liệu phần lớn các trang này, và một khung hình video vốn không phải tấm ảnh đã đăng ở đâu cả, nên chẳng có bản sao nào để tìm.
Tìm kiếm ảnh ngược của Google thực ra đang so khớp cái gì?
Nó so khớp cả tấm ảnh — bố cục, cách sắp màu, và những bản trùng đã biết. Nó là một bộ dò trùng lặp gần đúng, không phải một hệ nhận diện khuôn mặt.
Sự phân biệt đó là toàn bộ câu chuyện. Nếu bạn tải lên một khung hình chụp một người trong phòng ngủ, Google đi tìm những tấm ảnh khác có chung cái dấu vân tay thị giác tổng thể ấy. Nó không hỏi "đây là khuôn mặt của ai?" Nó chẳng có lý do gì để tách riêng khuôn mặt ra cả.
Để tìm một con người, phép so sánh hữu ích không phải là ảnh với ảnh. Nó là mặt với mặt: phát hiện khuôn mặt, chuẩn hóa nó về một tư thế chuẩn, biến nó thành một vector số, rồi đem vector đó so với mọi khuôn mặt bạn đã lập chỉ mục từ trước.
Vì sao Google không có những trang này trong chỉ mục của nó?
Nhiều lớp lọc chồng lên nhau, và mỗi lớp cắt đi một mảng của danh mục:
| Rào cản | Ảnh hưởng lên tìm kiếm ảnh ngược |
|---|---|
| Bộ lọc SafeSearch | Hình ảnh người lớn bị chặn ở mặt hiển thị kết quả ngay cả khi đã được lập chỉ mục |
Loại trừ bằng robots.txt |
Nhiều trang người lớn chặn bộ thu thập ở các đường dẫn thư viện ảnh và ảnh nhỏ |
| Tường đăng nhập và tường tuổi | Nội dung nằm sau chúng không bao giờ được bộ thu thập tải về |
| Khung hình do trình phát sinh ra | Đúng khung hình bạn chụp màn hình chưa từng được đăng dưới dạng một tệp |
Hàng cuối cùng là hàng người ta hay đánh giá thấp. Khi bạn tạm dừng video và chụp lại màn hình, bạn đã tạo ra một tấm ảnh chưa bao giờ tồn tại trên web dưới dạng một tệp. Chẳng bộ thu thập nào ở đâu có bản sao của nó. Phép so khớp trùng lặp gần đúng không có gì để mà khớp.
Vì sao cắt còn mỗi khuôn mặt lại tệ đi chứ không tốt lên?
Vì việc cắt lược đi đúng cái tín hiệu mà Google đang dùng.
Phép so khớp toàn ảnh dựa vào phông nền, bố cục và phân bố màu. Cắt còn mỗi khuôn mặt là bạn xóa đi phần lớn những thứ đó, chỉ để lại một vùng nhỏ trông giống hàng triệu khuôn mặt khác ở mức pixel. Bạn đã làm tấm ảnh kém đặc trưng đi đối với một hệ thống vốn ngay từ đầu chẳng nhìn vào danh tính.
Đây là một phép chẩn đoán tốt: nếu một công cụ tệ đi khi bạn cắt sát khuôn mặt thì công cụ đó không làm tìm kiếm bằng khuôn mặt.
Thứ thực sự chạy được: vector khuôn mặt
Tìm kiếm bằng khuôn mặt đảo ngược thứ tự các bước. Thay vì so sánh những tấm ảnh, nó so sánh các mô tả toán học của khuôn mặt.
- Phát hiện khuôn mặt và các điểm mốc của nó — mắt, chóp mũi, khóe miệng
- Căn chỉnh nó bằng các điểm mốc đó, để 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ã hóa khuôn mặt đã căn chỉnh thành một vector — với chúng tôi là 512 số (ArcFace)
- So sánh vector đó với mọi khuôn mặt đã lập chỉ mục bằng độ tương đồng cosine
Vì bước 3 vứt bỏ tư thế, ánh sáng và phông nền, 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 vẫn rơi vào gần nhau trong không gian vector. Đó là điều mà phép so khớp toàn ảnh, xét về cấu trúc, không thể làm được.
Chỉ mục cũng phải được dựng từ đúng loại vật liệu. Chỉ mục của chúng tôi chứa 241,792 khuôn mặt lấy từ ảnh bìa và khung hình phim người lớn trên 106 trang (chỉ mục của chúng tôi, bản chụp 2026-08). Một chỉ mục hình ảnh đa dụng hoàn toàn không chứa loại vật liệu này, và đó là lý do một công cụ đa dụng không thể trả về nó dù thuật toán của nó có giỏi đến đâu.
Giới hạn đáng nói thẳng: độ bao phủ của chúng tôi không trải đều. Một phần lớn ảnh đại diện của chúng tôi đến từ một số ít nguồn, nên một tác phẩm chỉ tồn tại trên trang mà chúng tôi chưa lập chỉ mục thì sẽ không tìm ra được. Không chỉ mục khuôn mặt nào bao phủ được mọi thứ, và công cụ nào tuyên bố khác đi thì đang nói quá.
"Giống đủ" là giống đến mức nào?
Độ tương đồng cosine giữa hai vector khuôn mặt chạy từ 0 đến 1. Trên dữ liệu của chúng tôi, ngưỡng được hiệu chỉnh cho ảnh tĩnh cắt từ video là 0.40 — trên mức đó, hai khuôn mặt được coi là nhiều khả năng cùng một người.
Điều này quan trọng để đọc kết quả một cách trung thực. Tìm kiếm vector dày đặc luôn trả về thứ gì đó, kể cả khi câu trả lời đúng không hề có mặt. Một kết quả ở 0.42 và một kết quả ở 0.85 trông y hệt nhau trong danh sách nhưng mang ý nghĩa rất khác nhau. Công cụ nào cho bạn xem các kết quả khớp mà không cho xem điểm số thì đang giấu đi đúng phần bạn cần.
Câu hỏi liên quan
- Cách tìm ra một video chỉ từ một ảnh chụp màn hình
- Tìm kiếm bằng khuôn mặt hoạt động ra sao, từng bước một
- Tải ảnh lên một công cụ tìm kiếm có an toàn không?
- Vì sao tôi không tìm được tác phẩm mình muốn?
Bạn có thể tự kiểm chứng khác biệt: tải cùng một ảnh chụp màn hình lên đây và lên Google Images. Bước phát hiện chạy trong trình duyệt của bạn — tấm ảnh gốc không bao giờ rời khỏi thiết bị của bạn, và chỉ vùng khuôn mặt đã cắt được gửi đi để so khớp.