Abstract & Introduction
- 각각의 얼굴 이미지를 128차원으로 임베딩하여 이미지에 대한 feature를 구한 후 유클리드 공간에서 임베딩 간 거리를 구한다.
- 즉, 각 이미지의 임베딩 결과의 거리를 이미지 간 유사도로 사용하여 Face Recognition과 Clustering을 하는 모델이다.
- 기존 얼굴 인식 접근 방법은 CNN을 사용하여 classification layer를 학습한 후 중간 단계 레이어의 출력값을 사용하였는데, FaceNet은 triplet loss를 통해 임베딩 자체를 다이렉트로 최적화하여 CNN을 훈련한다.
- 임베딩을 계산한 후 다이렉트하게 task를 해결하는데, Face Verification(두 사람이 같냐 다르냐?)은 두 임베딩 사이의 거리에 threshold를 주어 해결하며, Face Recognition(새로 들어온 이 사람이 누구냐?)은 K-NN Classification을, Clustering은 K-means 또는 Agglomerative clustering을 사용하여 해결한다.
Triplet Loss를 이용한 Metric Learning
- Anchor(기준 이미지), Positive(기준과 같은 사람 이미지), Negative(기준과 다른 사람 이미지)를 한 쌍의 데이터로 입력 받는다.
- 동일한 네트워크에 위의 3개의 이미지를 인풋으로 받아 각 이미지의 임베딩을 구한다. 여기서 임베딩의 이미지는 이미지의 특징을 잘 담고 있는 임베딩이다.
- 위의 식에서 앞의 항은 같은 사람의 두 이미지에 대한 임베딩의 거리를 구한 것이며, 뒤의 항은 다른 두 사람의 이미지의 임베딩의 거리를 구한 것이다.
- 여기서 핵심은 같은 사람의 이미지의 임베딩은 가깝게, 다른 사람의 이미지의 임베딩은 멀게 학습시키는 것이다.
- α는 positive와 negative사이의 margin을 의미한다.
- Loss는 위의 식과 같다. 즉 위의 Loss를 최소화하는 방식으로 네트워크를 훈련시킨다.
Triplet Selection
- Triplet 데이터를 잘 뽑는 것은 매우 중요한데, 많은 triplets가 위의 식을 쉽게 만족할 것이며 이는 학습이 제대로 진행되지 않는다는 문제가 발생한다.
- 이를 해결하기 위해 거리가 최대한 먼 positive (hard positive), 거리가 최대한 가까운 negative (hard negative)를 골라 위의 식을 만족하지 않는 triplet을 만들어야 한다.
- 전체 데이터셋에서 argmin과 argmax를 계산하는 것은 불가능하다. 또한, 이런 방식은 hard positive, hard negative로 잘못 라벨링된 이미지나 poor한 이미지가 선택될 가능성이 많기 때문에 좋지 않은 학습 과정이 될 수 있다.
- 이를 해결하기 위해 각 사람마다 40개의 이미지를 수집하여 하나의 mini batch에 담는다. Hard postive는 mini batch내의 모든 anchor-positive을 사용하며, hard negative는 아래의 식을 만족시키는 이미지를 선택한다.
- 위의 식을 만족하여 얻은 negative를 semi-hard라고 부르며, margin α 보다 크지 않은 negative를 선택하는 것이다.
Deep Convolutional Networks
- SGD, AdaGrad, margin α는 0.2를 사용하여 CNN을 학습한다.
- 두 종류의 네트워크를 사용하였는데, 가장 성능이 잘 나온 네트워크(NN2, Inception 224x224)의 구조는 다음과 같다.
Performance on LFW
- 이미지를 얼굴 크기에 맞게 잘라주는 과정만 했을 때 98.87%의 정확도를 보였고, 추가적인 alignment를 했을 때 99.63%의 정확도를 보였다.
- 다음 이미지는 FaceNet이 잘못 맞춘 이미지이다.
- 사람의 육안으로도 쉽게 구분하기 어려운 이미지이며, 이를 통해 FaceNet의 성능이 꽤나 좋은 것을 확인할 수 있다.
Face Clustering
- FaceNet이 동일 인물을 Clustering한 결과이다.
'paper review' 카테고리의 다른 글
[논문 리뷰/컴퓨터비전] Vision Transformer(ViT) (0) | 2022.03.07 |
---|---|
[논문 리뷰/자연어처리] Attention Is All You Need (0) | 2021.10.05 |
[논문 리뷰/강화학습] Playing Atari with Deep Reinforcement Learning (0) | 2021.09.28 |
[논문 리뷰/추천시스템] NCF(Neural Collaborative Filtering) (0) | 2021.09.28 |