FaceNet: A Unified Embedding for Face Recognition and Clustering
Metadane
- Autorzy: Florian Schroff, Dmitry Kalenichenko, James Philbin
- Rok: 2015
- Źródło: CVPR 2015
- DOI: 10.1109/CVPR.2015.7298682
- Status: reference
- Cytowania: ~25,000
- Kategoria: Computer Vision / Metric Learning
- Tagi: reference triplet-loss metric-learning embedding face-recognition siamese cvpr high-citations foundational
Streszczenie
FaceNet wprowadza triplet loss jako metodę uczenia metryki dla embeddingów wizualnych. Sieć mapuje obraz na wektor w przestrzeni euklidesowej tak że odległość L₂ bezpośrednio odpowiada podobieństwu twarzy. Triplet: (anchor, positive, negative) — trening wymusza d(a,p) + margin < d(a,n).
Bezpośrednia inspiracja dla VisualPhishNet (Abdelnabi 2020) który zastosował dokładnie tę metodę do logo/phishing similarity. Dla naszego projektu: logo embeddings trenowane z triplet loss = przestrzeń gdzie “PKO BP logo” i “PKO BP logo obcięte” są blisko, a “mBank logo” daleko.
Kluczowe Wnioski
- Triplet loss: L = max(||f(a)-f(p)||² - ||f(a)-f(n)||² + margin, 0)
- Hard negative mining: kluczowe dla konwergencji — wybieraj trudne negatywy (semi-hard)
- 128-dimensional embedding wystarczy dla rozróżniania tysięcy klas
- 99.63% accuracy na Labeled Faces in the Wild (LFW) — SOTA w 2015
- Offline mining (pre-compute embeddings) vs online mining (w każdym batchu)
Zastosowanie w projektu
M2b baseline (przed przejściem na CLIP):
# Triplet loss dla logo embeddings
def triplet_loss(anchor, positive, negative, margin=0.3):
dist_pos = F.pairwise_distance(anchor, positive)
dist_neg = F.pairwise_distance(anchor, negative)
return F.relu(dist_pos - dist_neg + margin).mean()
# Training triplets: (logo_authentic, logo_variant, logo_different_brand)Rola w architekturze: VisualPhishNet używa tego podejścia. Nasz system albo:
- Używa triplet-trained ResNet (jak PhishIntention) → baseline
- Zastępuje CLIP (nasze podejście) → zero-shot extension
Opisz obie opcje, pokaż że CLIP = lepsza generalizacja dla nowych marek.
Powiązane Tematy
- VisualPhishNet (Abdelnabi 2020) — aplikacja triplet loss do phishing
- CLIP (Radford 2021) — supercedes triplet-only approach dla zero-shot
- SimCLR (Chen 2020) — contrastive learning (nowocześniejsza alternatywa)
Notatki
Cytowanie wymagane jako fundament metric learning + jako uzasadnienie historyczne dla VisualPhishNet baseline. “Nasze podejście (CLIP) zastępuje triplet-trained ResNet (Schroff et al. 2015, Abdelnabi et al. 2020) umożliwiając zero-shot brand coverage.”