이번 포스트에서는 Face Recognition 관련 이론인 SphereFace, CosFace, ArcFace 이렇게 3 가지 이론을 같이 다루어 보겠습니다. 이 세 이론의 역사를 보면 SphereFace (2017) -> CosFace (2018) -> ArcFace (2018)로 나왔다고 볼 수 있습니다.
xxxFace는 이름에서 보이다시피 얼굴인식 분야에서 얼굴의 특징으로 얼굴을 인식하기 위한 이론입니다. 이중 ArcFace는 특히 좋은 성능을 보이고 있습니다. 해당 순위는 Papers with Code에서 Face Recognition (얼굴 인식) 분야의 Sota모델에 대한 정보이고, 10개의 데이터셋 중에서 FaceNet과 같이 무려 3개의 분야에서 제일 좋은 모델에 사용되는 이론인 만큼 성능면에서는 확실하게 검증됐다고 볼 수 있습니다.
ArcFace 논문을 읽으면서 가장 주목해야할 점은 아래의 두가지 였던것 같습니다.
- Euclidean Space의 학습방식에서 Euler Space의 학습방식 변화
- 각도에대해 일정한 margin을 적용할 수 있도록함
해당 내용을 Softmax와 xxxFace의 3가지 모델을 비교하면서 이해한 내용을 기반으로 설명을 진행하겠습니다.
역시 SphereFace, CosFace와의 Loss 계산식의 차이입니다. 세 논문 모두 기존의 Softmax의 식을 cos에 대한 식으로 변경시켜 image embedding이 각도로 위치하도록 했습니다. 하지만 Loss의 계산에 조금씩의 차이가 있는데 이 미세한 차이가 세 논문의 주된 성능 차이를 이끌어냈다고 생각합니다. Softmax의 계산식과 세 논문에서의 Loss 도출식을 비교해서 보면 쉽게 이해가 될것같습니다.
기존의 Softmax와 xxxFace의 차이점을 보자면, Softmax를 사용하던 기존의 모델들은 Euclidean Space에 Embedding을 배치하던 방식이었습니다. 하지만 이미지 데이터를 학습시키고 이미지 데이터의 feature를 확인해본 결과 이미지 데이터는 각도에 따라 다른 특성을 가지고 있다는 것을 알게 되었고, Euler space에 Embedding을 배치하는 방법을 선택했습니다.. 여기서 xxxFace는 Softmax의 식에서 가중치의 부분을 cos의 값으로 바꾸면서 원래는 Euclidean space에서 Embedding의 거리를 벌어지도록하던 방법에서 Euler space에서 Embedding의 거리가 벌어지도록 만들었습니다. 이러한 방법으로 Euler Space에서 비슷한 이미지의 Embedding끼리 모이도록 학습되게 되었고, 기존의 Softmax를 사용하여 학습하던 방식에 비하여 성능을 올릴 수 있었습니다.
xxxFace의 차이는 그림을 보면 간단하게 이해할 수 있습니다.
- SphereFace : 각도 공간에서 벡터에 의한 학습
- CosFace : cos에 대해서 일정한 margin으로 학습
- ArcFace : 각도에 대해서 일정한 margin으로 학습
margin (m)값의 위치를 보면서 위의 차이를 보겠습니다.
SphereFace는 cos값 앞에 margin (m)값를 위치하여 학습을 유도했고, 결과 Euler Space에서 벡터의 모습으로 image를 분류할 수 있었습니다. 하지만 SphereFace의 margin은 두 임베딩의 차이에 의하여 결정되기 때문에 비슷한 특징을 가지고 있다면 margin이 작아지는 단점이 있었습니다. 이러한 단점을 보완하기 위해서 CosFace과 ArcFace에서는 가중치 s에 대해서 cos값과 m값을 같이 변하도록 수정하였고, 이로 인하여 이미지의 유사도에 상관없이 margin값을 일정하게 유지하도록 하였습니다. 그리고 CosFace와 ArcFace 차이를 보면 CosFace는 cos값에 margin을 줌으로써 Euler Space에서도 특히 cos값에 대하여 일정하게 margin을 적용하였고, ArcFace의 경우에는 각도의 값에 margin을 줌으로써 각도에 대하여 일정하게 margin을 적용하였습니다.
xxxFace는 이미지의 Euler Space에서의 특징을 잘 잡아냈고, ArcFace는 이러한 이론중에서 각도에 표준화되어 학습을 진행했습니다. 이러한 결과 이미지의 크기와 위치에 영향을 받지않게 되었고, Face Recognition에서뿐만 아니라 Open set 학습에서도 강점을 보였습니다. 제가 참여했던 kaggle competition에서도 ArcFace를 활용하여 상위 5%에 들어 은메달을 획득했습니다. 해당 대회에 대한 솔루션 및 진행 과정은 링크로 확인하실 수 있습니다.
참조
- SphereFace 논문
- CosFace 논문
- ArcFace 논문