Giải thích toàn diện công nghệ embedding khuôn mặt — Toán học đằng sau vector 512 chiều
Khi bạn tải ảnh lên để tìm nữ diễn viên khiêu dâm XVideoVietnam, khuôn mặt của bạn được chuyển đổi thành vector 512 số thực dấu phẩy động trong vài mili giây. Bài viết này đi sâu vào toán học và kỹ thuật đằng sau quá trình này.
Từ pixel đến vector
Hình ảnh gốc đầu tiên được xử lý qua bộ phát hiện RetinaFace. Bộ phát hiện định vị tất cả khuôn mặt trong ảnh và đưa ra năm điểm đánh dấu chính cho mỗi khuôn mặt: mắt trái, mắt phải, đỉnh mũi, khóe miệng trái và khóe miệng phải.
Biến đổi Affine
Sử dụng năm điểm đánh dấu này, chúng tôi tính ma trận biến đổi affine để cắt và căn chỉnh khuôn mặt về canvas chuẩn 112×112 pixel. Điều này đảm bảo tất cả khuôn mặt đều ở cùng tư thế và tỷ lệ.
Hàm mất mát ArcFace
Backbone ResNet-100 được huấn luyện bằng ArcFace (Additive Angular Margin Loss). Khác với hàm mất mát softmax truyền thống, ArcFace thêm một hình phạt biên độ trong không gian góc, buộc các embedding của cùng một danh tính phải gần nhau hơn.
Hiểu trực quan về độ tương đồng cosine
- Độ tương đồng cosine của hai vector đo mức độ nhất quán về hướng trong không gian nhiều chiều
- Giá trị 1,0 có nghĩa là cùng hướng hoàn toàn (100% khớp)
- Giá trị 0,0 có nghĩa là trực giao — hoàn toàn không liên quan
- Chúng tôi sử dụng 0,45 (45%) làm ngưỡng "giống nhau có thể nhìn thấy"
Cấu trúc chỉ mục FAISS
Thư viện Facebook AI Similarity Search (FAISS) cho phép chúng tôi tìm kiếm trong hàng triệu vector trong thời gian dưới mili giây. Chúng tôi sử dụng chỉ mục IVF-PQ (Inverted File Quantization), chia không gian tìm kiếm thành các ô Voronoi, mỗi truy vấn chỉ quét các ô gần nhất.
Tìm hiểu thêm về cách XVideoVietnam hoạt động | Thử tìm kiếm khuôn mặt