Công nghệ InsightFace Qdrant AI Vector Search
Công nghệ AI nhận diện khuôn mặt trong LibPix hoạt động như thế nào?
LibPix Team· 19 tháng 6, 2026· 8 phút đọc· 750 lượt xem
Tổng quan kiến trúc
LibPix sử dụng pipeline AI hai giai đoạn: indexing (khi ban tổ chức sync ảnh) và search (khi khách mời tìm kiếm). Cả hai đều dựa trên công nghệ nhận diện khuôn mặt tiên tiến.
Giai đoạn 1: Indexing — Xây dựng "bộ nhớ" khuôn mặt
1.1 Phát hiện khuôn mặt
LibPix dùng model InsightFace buffalo_l — một trong những model nhận diện khuôn mặt mã nguồn mở chính xác nhất hiện nay. Ảnh sự kiện được xử lý ở độ phân giải 2400px để đảm bảo phát hiện được khuôn mặt nhỏ trong ảnh chụp đám đông.
faces = app.get(image) # InsightFace detect + embed
embeddings = [f.embedding for f in faces] # 512-dim vectors
1.2 Vector Embedding là gì?
Mỗi khuôn mặt được biểu diễn bởi 512 con số — mô tả các đặc trưng như khoảng cách hai mắt, hình dạng hàm, góc mũi... Hai ảnh của cùng một người sẽ có vector rất gần nhau trong không gian 512 chiều.
1.3 Lưu vào Qdrant
Các vector được batch-upsert vào Qdrant — vector database hiệu năng cao, hỗ trợ filter kết hợp:
qdrant.upsert(collection="faces", points=[
PointStruct(id=uuid, vector=emb, payload={"file_name": "...", "event_id": "..."})
for emb in embeddings
])
Giai đoạn 2: Search — Tìm ảnh từ selfie
Khi khách mời upload selfie:
- Detect khuôn mặt trong selfie (ngưỡng thấp hơn để xử lý ảnh điện thoại)
- Tạo embedding 512 chiều cho khuôn mặt selfie
- Nearest neighbor search trong Qdrant với filter theo event_id:
results = qdrant.search(
collection="faces",
query_vector=selfie_embedding,
query_filter={"event_id": event_id},
score_threshold=0.45, # Cosine similarity
limit=50
)
- Deduplicate theo tên file → trả về danh sách ảnh
Tại sao chọn InsightFace + Qdrant?
| Tiêu chí | Lý do chọn |
|---|---|
| InsightFace buffalo_l | Open-source, không phí API, chạy offline, ~99.8% trên LFW benchmark |
| Qdrant | Vector DB nhanh, hỗ trợ payload filter kết hợp vector search, chạy local |
| Cosine similarity | Bất biến với độ sáng, góc chụp — phù hợp ảnh sự kiện thực tế |
Bảo mật & Quyền riêng tư
- Selfie của khách không được lưu vào disk — chỉ tồn tại trong RAM trong quá trình xử lý
- Embedding vector không thể tái tạo lại ảnh gốc
- Toàn bộ dữ liệu được xóa khi sự kiện hết hạn
