본문 바로가기

Paper

[논문] Deep Face Recognition + Arcface

 

FR(face recognition) System

Figure from Deep Face Recognition: A Survey paper

얼굴 인식 시스템은 위와 같은 구조로 이뤄진다. 대부분의 사진이 얼굴만 있지 않기에 face detection을 통해 얼굴만 crop하고, face alignmnet로 정면을 보게 위치를 조절해준다. 이후 augumentaion 효과를 주는 Face processing 과정을 거쳐 모델 인풋으로 들어간다. Train 과정에서는 network를 통해 각 얼굴의 feature를 뽑고 taks에 맞는 loss 방향으로 학습한다.  

Figure from Deep Face Recognition: A Survey paper

얼굴 인식은 위 그림처럼 크게 Close-set과 open-set으로 나눠진다. close-set은 train set에 test set label이 포함되어 있는 경우로 특정 회사 직원 얼굴 인식을 생각하면 된다. 이는 딥러닝에서 classification 문제와 동일하게 해결이 가능하다. 반면, open-set은 train set에 없는 label을 가진 얼굴 사진을 맞춰야하는 경우다. 이때는 단순 분류 문제로 해결이 안되므로 이미지를 discriminative한 feature space로 임배딩 시키는 방향으로 학습한다. 즉 얼굴 사진을 feature space로 mapping하기 위한 metric을 학습하며, 서로 다른 얼굴들에 대해 구분을 잘하는(discriminative margin 최대화하는) 방향으로 mapping metric을 학습해야 한다.

Figure from Deep Face Recognition: A Survey paper

위 도표는 얼굴 인식 시스템 연구 발전 동향이다. 이 중 Deepface, FaceNet, VGGface 등을 간단히 알아보고 현재 face identificaition, verification에서 SOTA인 Arcface를 정리해보자!

Term

The Gallery: Target IDs

The Probe: Test ID

Identification: One-to-many, 직원들 중 누구인지?

Verification: One-to-one, 여기 직원인지 아닌지

 

DeepFace(2014)

AlexNet을 fine tuning 해서 이미지 분류 문제로 학습시킨다(softmax loss 사용). 이때 마지막 layer의 임배딩 벡터를 기준으로 새로운 이미지와 chi-square distance를 계산해 verification을 수행한다. 

 

FaceNet(2015)

FaceNet 이전까지는 train 후 joint bayesian, metric learning을 통해 fine-tuning 해야했다. FaceNet은 fine-tuning 없이 metric learning으로 학습한다. 아래와 같은 Triplet loss를 도입했다.

Figure from FaceNet, Triplet Loss

Triplet losss는 anchor, negative(anchor와 다른 label data), positive(anchor와 같은 label data) 3개의 sample을 사용, 기준이 되는 anchor 이미지와 positive의 L2 거리를 최소화, negative와의 거리를 최대화하는 방향으로 loss를 최적화 한다.

Triplet loss function

단점은 anchor-positive-negative의 balance 있는 샘플링을 위해 large batch size가 요구되고 hard positve, hard negative 등 문제가 생길 수 있다.

hard positive : ID는 같은데 구분하기 어려운 sample

hard negative : ID는 다른데 비슷한 sample 

*구글 연구답게 데이터 양과 computer resource가 엄청 크고 데이터 셋이 공개되어 있지 않아 재현 불가능하다.

 

VGGFace(2015)

데이터 셋 공개, FaceNet보다 적은 데이터로 비슷한 성능 

Triplet loss + softmax loss 사용

이때, 이미 99% 정확도 달성했다. 2016년도 이후로는 성능을 올리기 위한 loss에 대한 연구가 진행.

알고리즘보다 데이터 셋과 전처리가 매우 중요하다!

FR 특징

small inter class variations: 사람 얼굴은 구조적으로 비슷해서 variation이 다른 object에 비해 상대적으로 적다

large intra-class variations: 한 사람이라도 기분, 포즈, 나이에 따라 variantion이 크다

 

Arcface(2018)

open-set face recognition에서의 매우 discriminative한 feature embedding을 위한 additive angular Margin Loss (ArcFace)를 제안한다.

본론에 앞서 선행 논문인 SphereFace에서는 마지막 fully connected layer의 weight를 linear transformation matrix로 취급해 angular space로의 mapping과 angular space에서 class의 중심을 나타내는 표현으로 사용될 수 있다는 것을 가정한다. 예를 들어 얼굴 이미지의 최종 feature가  x = [3, 5, 7] 3차원 벡터라고 하자. 이를 두 가지 label을 가진 얼굴 인식 task에 적용하기 위해 최종 FC layer를 3차원 -> 2차원 mapping matrix로 구성한다. 해당 matrix(weight)를 W라고 하면,

 

Figure from Arcface, 4 Geodesic Distance(Gdis) constraint.