Paper/Vision

AdaFace: Quality Adaptive Margin for Face Recognition

룰루랄라룰루랄라 2024. 4. 18. 20:53

paperswithcode : https://paperswithcode.com/paper/adaface-quality-adaptive-margin-for-face

 

Papers with Code - AdaFace: Quality Adaptive Margin for Face Recognition

🏆 SOTA for Surveillance-to-Booking on IJB-S (Rank-1 metric)

paperswithcode.com

 

오늘은 AdaFace 를 읽어보았다

ArcFace 와 비슷한 이름, 하지만 저품질 데이터셋에 대하여 ArcFace 보다 좋은 성능..

어떤 것에서 차이가 있을까 궁금하였다

 

Abstract

저품질의 얼굴 데이터셋을 이용한 인식은 얼굴 속성을 잘 이해하기 힘들기 때문에 계속 도전되고 있는 부분이다

margin 기반의 loss function 들이 발전하면서 embedding 공간에서의 얼굴 식별 가능성을 향상 시켰다

또한, 이전 연구들은 잘못 분류된 (hard) 항목에 대해 더 많은 중요성을 부여하기 위해서 adaptive loss 들의 효과를 연구했다

 

이 논문에서는 이미지 품질을 이용해서 adaptive 한 loss 를 만드는 것을 소개할 것 이다

hard 한 샘플을 강조하는 전략이 이미지 품질에 따라 조정되어야 한다고 주장한다

구체적으로, easy 하거나 hard 한 샘플의 상대적 중요도를 이미지 품질에 기반 해야한다는 것!

이러한 아이디어를 기반으로 만들어진 AdaFace 는 저품질 데이터셋인 IJB-B, IJB-C, IJB-S, TinyFace 에서 SOTA 를 달성했다!

 

 

Introduction

이미지 품질은 이미지가 원본 장면을 얼마나 충실히 포착하고 있는지를 나타내는 속성들의 조합이다

이미지 품질에 영향을 미치는 요소들은 밝기, 대조, 선명도, 노이즈, 해상도 등등이 있다

얼굴 인식에서는 조명, 포즈, 표정 이나 대상의 나이,화장 등등도 영향을 미친다

이러한 요소들이 Face Recognition 모델의 학습을 어렵게 만든다..!

따라서 이렇게 이미지 품질이 낮으면 인식을 하는 것이 거의 불가능해진다...

 

하지만 감시카메라, 드론 영상 등 에서 이러한 저품질 이미지가 많기 때문에, 

저품질 얼굴 이미지를 이용한 얼굴 인식이 점점 더 중요해지고 있다!

 

FR 의 SOTA 모델들도 IJB-B, IJB-C ... 같은 저품질 데이터셋에 대해서는 확실히 고품질인 LFW, CFP-FP 셋에 비해 낮은 성능을 보여주고 있다

또한 유명한 학습 데이터들은 고품질이 많고 저품질이 조금 포함되기 때문에 이러한 것을 잘 이용하는 것이 중요하다

 

앞서 말했듯 저품질 데이터는 인식이 불가할때가 많다

이미지 저하가 클수록 식별정보가 사라지기 때문이다

이러한 식별 불가한 이미지가 학습에 이용되면, training loss 를 낮추기 위해 옷 색상이나 이미지 해상도와 같은 

다른 시각적 특성이 학습에 이용되어 학습에 악영향을 끼치게 된다

그렇게 되면 저품질 데이터에 대해 테스트 했을때 결과가 현저히 떨어질 것이다

 

이러한 부분에 착안하여 "이미지 품질에 따라 다양한 난이도의 샘플들에 다른 중요도를 할당" 하는 loss function 을 디자인했다

고품질 이미지에서는 hard 샘플을 강조하고, 저품질 이미지에서는 easy 샘플을 강조하는 것을 목표로 한다

이미지 품질에 따라 중요도를 다르게 하는 이유는 항상 hard 샘플에 대해 강조하게 된다면, 결국 식별 불가한 이미지들에 대해 강조할 것이고 악영향을 끼치게 될 것 이다

 

그런데 이미지 품질이라는 것이 정량화 하기가 어렵고, 난이도에 따른 샘플 스케일링 하는 것이 어렵다

하지만 feature norm 이 이미지 품질을 나타내는 좋은 지표(proxy)가 된다는 것을 발견 했다!

 

이러한 발견과 아이디어를 이용하여 만든, 이미지 품질에 기반하여 다른 중요도를 할당하기 위한 적응적 margin function 인 AdaFace 를 소개할 것이다

 

이 논문의 contribution 들에 대해 요약을 하자면,

 

1. 이미지 품질에 따른 샘플의 다양한 난이도에 다른 중요도를 할당하는 AdaFace 를 제안하여, 식별 불가한 이미지는 피하고 hard 하고 인식 가능한 이미지에 중점을 맞추도록 함

 

2. angular margin 이 학습 샘플의 난이도에 따라 gradient 를 조정한다는 것을 보여주었고, 이러한 관찰은 이미지 품질이 높으면 hard 샘플 강조, 이미지 품질이 낮으면 식별 불가 샘플은 무시하도록 margin function 을 adaptively 하게 변겨하면 되겠다 는 방향을 잡아줌

 

3. feature norm이 이미지 품질을 나타내는 지표가 된다는 것을 입증하였고, 이에 따라 추가적인 모듈이 필요없기 때문에 adaptive margin fucntion 을 이용하는데 계산 복잡도가 올라가지 않음을 입증함

 

4. 총 9개 데이터셋에 대하여 평가하였고, 저품질 데이터셋에 대해서는 성능이 많이 향상 되고, 고품질 데이터셋에 대해서는 좋은 성능을 잘 유지한것을 보여줌

 

기존 margin based softmax 와 논문에서 제안하는 AdaFace 의 pipeline 을 간단하게 표현하면 아래와 같다

feature를 이용한 이미지 품질 지표를 margin function 과 결합하여 사용하는 것을 볼 수 있다

 

Related Work

Margin Based Loss Function

margin based loss 는 FR 에서 널리 쓰이고 있다

margin 이 없다면 학습된 feature 들이 충분한 분별력을 가지지 못하기 때문에 margin 을 softmax loss 에 추가한다

θj 는 feature vector 와 classfier weight vector j 사이의 각도, yi 는 ground truth label index,

m 은 margin 으로 scalar hyper parameter, f 는 margin fucntion 이

대표적인 maring function 인 sphereface, cosface, arcface 는 서로 다른 형태의 margin fucntion 을 사용한다

 

또한 P2SGrad 에서는 margin m 과 scaling 을 위한 hyper parameter s 가 민감한 hyper parameters 라고 언급하며, m 과 s 가 없이 gradient 를 직접적으로 수정할 것을 제안한다

따라서 이 논문에서는 margin m 을 이미지 품질의 함수로 모델링 하는 것을 목표로 한다

margin function 이 학습동안 어떤 샘플이 더 gradient 에 기여하는지에 영향을 끼치기 때문이다

 

Adaptive Loss Function

 

많은 연구들이 hard sampling mining, scheduling difficulty, 최적의 hyper parameters 찾기 등을 목표로 adaptiveness 의 요소들을 도입하고 있다

CurricularFace 는 curriculum learning 의 아이디어를 loss 에 적용했다

학습 초기에는 easy 샘플을 학습할 수 있게 cosθj 에 대한 margin 을 작게 설정하고, 이후에는 hard 샘플을 학습할 수 있게 margin 을 증가시켜 학습하는 것이다

따라서 CurricularFace 의 margin 의 adaptiveness 는 curriculum 기반이다

 

하지만 이 논문에서는 margin 의 adaptiveness 가 이미지 품질에 따라 결정되어야 한다고 주장한다

고품질 데이터에서는 hard 한 샘플을 학습에 이용하고 저품질 데이터에서는 hard 한 샘플에 식별 정보가 없다면 학습에 쓰지 말아야 한다고 한다

 

MagFace 는 인식가능성(recognizability)를 기반으로 다른 margin 을 적용하는 아이디어에 대해 탐구했다

high norm feature 는 쉽게 인식가능하다 는 전제하에 high norm feature 에는 큰 angular margin 을 적용 했다

큰 margin 은 high norm feature 를 클래스 center 에 더 가깝게 가도록 한다

하지만 이러한 방법은 분별력있는 feature 를 학습하는 것에 중요한 hard training sample 를 강조하지는 못했다

 

Face Recognition with Low Quaility Images

 

최근 FR 모델들은 lfw, cfp-fp 등의 데이터셋에서 높은 성능을 보여주고 있다

고품질 데이터셋, 즉 조명,나이,포즈 등이 불변한 경우에는 분별력 있는 feature 를 뽑는다

하지만 감시카메라나 저화질 비디오 등 저품질 데이터에서는 많은 문제가 있다

따라서 ijb-b, ijb-c, ijb-s 등 데이터셋 에서 성능이 떨어진다

좋은 성능을 가지기 위해서는 

1. 저품질 이미지에 대한 분별력 있는 feature 를 학습 하는 것

2. 식별 정보가 부족한 이미지는 버리도록(ignore) 학습하는 것

이 두가지를 모두 포함해야 한다

 

 

Proposed Approach

샘플 xi 의 cross entropy softmax loss 는 다음과 같다

zi 는 xi 의 feature embedding

xi 는 yi 번째 클래스에 속함

Wj 는 마지막 fc layer weight matrix 의 j 번재 열

bj 는 bias, C 는 클래스의 수 이다

 

테스트 동안 임의의 이미지 쌍 xp, xq 에 대한 cosine similarity 를 "zp*zq / ||zp|| ||zq||" 를 이용해서 가장 가깝게 일치하는 ID 를 찾는다

cosine distance 를 직접 최적화 하도록 하려면 bias 가 0으로 설정되고 feature zi 가 normalization 되고

s 로 rescaled 한 softmax 를 사용해야 한다

이렇게 수정된 결과가 아래와 같다

 

θj 는 zi 와 Wj 사이의 각도이고, arcface,cosface 에서도 사용하며,

클래스 내의 variations 를 감소시키기 위해 margin 을 도입했다고 한다

 

이부분을 좀 더 이해하기 위해 arcface 에 나온 내용을 더 참고하였다

softmax function 을 사용하면 얼굴 인식의 경우 사람들로만 데이터가 구성되기 때문에 intra-class 의 성질을 띈다

이러한 요인으로 인해 성능 저하를 일으킬 수 있다

그래서 bias 를 없애고 vector 간의 각도에 집중하기 위한 방법을 사용한다

W와 z는 normalization 을 하여 1로 제한되고 bias 는 0으로 설정, scale factor s 로 rescale 되도록 하여

모델학습이 "각도"로 분류가 되도록 학습을 진행 하는 것이다

따라서 처음 cross entropy softmax loss 에서 위와 같은 식을 대입하고, bias 0, normalization 을 통해 1로 제한된 부분 생략, scale factor 추가로 수정된 softmax 식이 나온것을 확인할 수 있다

 

 

Margin Form and the Gradient

 

margin based softmax 에 대한 이전 연구들은 margin 이 decision boundary 들을 어떻게 이동시키는지, 기하학적 해석은 어떤지에 대한것이 중점 이었다

이 논문에서는 역전파 동안  margin 으로 인한 gradient 가 샘플의 중요성을 scaling 하는 효과가 있음을 보여준다

즉 angular margin 은 샘플의 난이도에 따라 signal 을 scale 하는 gradient 방정식에 추가적인 term 을 도입할 수 있다는 것이다 -> 이렇게 해서 이미지 퀄리티에 대한 지표를 통합하는 것

 

P(i)j 는 input xi 에 대해 softmax 후 클래스 j 에서의 확률값이다 (softmax)

기울기 방정식을 도출해서 다음과 같은 식을 얻는다

 

첫번째 식에서 두개의 방정식 

이 부분은 scalar 이고, f(cos θyi) (margin function) 를 통해 parameter m 의 영향을 받는 유일한 항이다

그리고 뒤에 따라오는 항은 m 에 대해서 free 하므로 m에 대해 영향을 받는 두 항을 gradient scaling term(항)(GST) 이라고 생각할 수 있다 (margin loss 로 gradient 를 조정하니까)

normalized softmax loss 의 GST 는 아래와 같다

GST 는 θyi 와 m 의 function 이기 때문에, 학습 중 난이도에 따라 샘플의 강조를 컨트롤 하는데 사용할 수 있을 것이다

 

Norm and Image quality

 

이미지 품질이라는 것은 밝기, 대비, 선명도 등의 특성을 포함하는 포괄적인 용어다

이미지 품질 평가 IQA 는 컴퓨터 비전 분야에서 널리 연구되고 있다

SER-FIQ 는 face IQA 를 위한 unsupervised DL 방법이다

BRISQUE 는 blind/비참조 IQA 로 유명한 알고리즘 이다

하지만 이러한 것들은 학습 중에 사용하기에는 계산적으로 expensive 하다

 

따라서 이 논문에서는 이미지 품질 계산을 위해 추가적인 모듈을 도입하는 것은 하지 않으려고 한다

대신 이미지 품질을 feature norm 을 사용하여 나타낸다

 

AdaFace: Adaptive Margin based on Norm

 

식별 불가한 이미지들로 인해 일어나는 문제를 해결하기 위해서, feature norm 을 기반으로 margin function 을 적용하는 것을 제안한다

||zi|| 를 batch statistics (평균, 표준편차) 로 normalize 한다

 

는 normalized ||zi|| 의 batch distribution 을 대략 unit Gaussian 으로 만들기 때문에, -1 ~ 1 사이의 값으로

 

 

cliping 하여 다루기 좋게 만든다고 한다

h 는 강도를 조절하기 위해 도입하였고 경험적으로 가장 좋은 값은 0.33 이라고 한다

이때 batch size 가 작으면 batch statistics 가 불안정할 수 있기 때문에 exponential moving average(EMA) 를 사용해서 안정화 한다

 

Adaptive Margin Function

 

최종적으로 나온 AdaFace 의 margin function 은 아래와 같다

그리고 normalized ||zi|| 를 이용한 gradient 식들은 아래와 같다

 

아래는 feature space 에서 다양한 margin function 과 gradient scaling term 에 대한 그림이다

이 figure 에서 노란색 화살표는 margin m 으로 인한 boundary 이동을 나타내고,

Wyi 쪽으로 잘 분류된 샘플이 가까워지며, Wj 쪽으로는 잘 분류되지 못한 샘플이 가까워 진다

high norm 은 식별하기 좋은 고품질 데이터셋으로 생각하면 되고, low norm 은 식별이 어려운 저품질 셋으로 생각하면 된다

또한 arc 내의 색상은 검붉은 색에 가까울 수록 gradient scale term(GST) 이 큰, 즉 gradient 에 영향을 많이 준다고 생각하면 된다

따라서 AdaFace 를 보았을 때 high norm 에서는 hard 한 샘플을 강조하고 low norm 에서는 easy 한 샘플을 강조하는 것을 볼 수 있다

 

 

Expreiments

학습에는 MS1MV2, MS1MV3, WebFace4M 데이터셋을 사용했으며 테스트에는 9개이 데이터셋을 사용하였고 high quality, mixed quality, low quality 로 나누었다

 

Augmentation 은 cropping, rescaling, jittering 을 사용하였다

보통 FR 에서 이러한 augmentation 의 이점은 없지만, AdaFace 는 식별하기 어려운 이미지는 무시하기 때문에 이점을 얻을 수 있다고 한다

 

여러 테스트 결과 figure 를 보았을때 고품질 테스트셋에 대해서는 비슷하거나 조금 더 좋은 성능 수치를 보여주었고,

저품질 데이터셋에서는 전체적으로 더 높은 성능 수치를 보여주는 것을 확인할 수 있다

Conclusion

이 논문에서는 식별할 수 없는 이미지에 대한 문제를 해결 하는 방식을 보여주었다

 

이미지 품질에 따른 인식 가능성의 차이에 착안하여

1. feature norm 을 이미지 품질의 proxy 로 사용

2. feature norm 을 기반으로 margin function 을 adaptive 하게 변경하여 gradient scale 을 제어함

을 통하여 문제를 해결하였다

 

이것으로 고품질뿐 아니라 저품질 데이터에 대해서도 SOTA 의 성능을 발휘하였다

 

 

 

 

 

Arcface 와 비슷한 부분이 많아서 좀 더 재밌었고 흥미로웠다

아무래도 Loss 의 설계에 대한 논문이라 수식이 많이 나와 어려운 점도 있었고, 아직 수식은.. 완전히 이해를 한것이라 확신하지도 못하겠다

하지만 저품질 데이터에 대한 문제를 해결하기 위해 논문에서 접근한 방식들, 아이디어들이 좋았고 참신해 보였다

아무래도 real 데이터는 고품질 데이터만 얻을 수는 없기 때문에 (오히려 저품질이 너무 많은 것 같기도..) 나중에 아주 유용할 것 같았다

요즘엔 저품질 데이터를 gen 이나 denosing 을 통해 개선을 해서 사용하기도 하지만.. 이건 추가적인 계산량이 들거나 전처리를 미리 하기엔 또 시간이 꽤 소모될 것 이니까.. loss 로 어느정도 극복해보자는 방식이 맘에 든다

검출이나 랜드마크 모델 등 에도 비슷한 아이디어를 적용할 수 있을까.. 이미 적용된 것이 있을까 한번 찾아봐야겠다