Paper/Vision

Sub-center ArcFace: Boosting Face Recognitionby Large-scale Noisy Web Faces

룰루랄라룰루랄라 2024. 6. 6. 15:41

paperswithcode : https://paperswithcode.com/paper/sub-center-arcface-boosting-face-recognition

 

Papers with Code - Sub-center ArcFace: Boosting Face Recognition by Large-scale Noisy Web Faces

Implemented in 2 code libraries.

paperswithcode.com

 

오늘은 이전 ArcFace 에서 잠깐 나왔던 내용인 sub-center ArcFace 에 대한 논문을 읽어 보았다

ArcFace 에 대하여 잘 모른다면

https://lululalams.tistory.com/10

 

ArcFace: Additive Angular Margin Loss for DeepFace Recognition

Arxiv :https://arxiv.org/pdf/1801.07698v4.pdf Paperswithcode : https://paperswithcode.com/paper/arcface-additive-angular-margin-loss-for-deep Papers with Code - ArcFace: Additive Angular Margin Loss for Deep Face Recognition 🏆 SOTA for Face Verification

lululalams.tistory.com

위 포스팅을 참고!

 

 

 

Abstract

 

sphereFace, cosFace, ArcFace 와 같은 margin 기반 얼굴 인식 방법들이 많고 좋은 성능들을 보이고 있다

하지만 noise 데이터에 취약하기 때문에 clean 한 데이터를 요구하고, clean 데이터를 만드는 것은 쉽지 않다

이 논문에서는 이러한 점을 해결하기 위해 noise 데이터에 더욱 강건(robust)하게  방식을 제안한다

class 마다 sub-center K 를 도입하고 대부분 clean 한 얼굴들을 포함하는 1개의 dominant sub-class 와

hard 하거나 noisy 한 얼굴들을 포함하는 non-dominant sub-class 를 사용하는 방식인데 뒤에서 자세히 살펴보자

결과적으로 대규모 raw web faces 데이터셋인 Celeb500K 에서 sota 성능을 달성했다고 한다

 

Introduction

 

margin 기반의 DCNN(deep convolutional neural network) embedding 을 이용한 얼굴 표현은 intra-class(클래스내) 의 압축성과 inter-class(클래스간)의 분별력에 있어서 성능이 뛰어나다

특히 margin 기반의 softmax 방식들은 좋은 성능을 보였으나, noise 데이터에 취약해서 clean 한 데이터가 요구된다는 것이 문제 였다

이러한 문제를 해결하기 위해 여러 방법들이 고안되었으나

모델의 initialization 을 중점으로 두었던 해결법은 noise 의 영향이 어느 정도만 완화 되었고,

co-mining 방법은 쌍둥이 네트워크를 훈련해야 하기 때문에 대규모 데이터셋에서 대규모 모델을 훈련하는 것에는 적합하지가 않았다

또한 기존 모델인 ArcFace 는 noisy sample 이 들어오면 큰 잘못된 loss 값을 가졌다

그리하여 이 논문에서는 기존 모델들이 sample 이 하나의 center 에 가까이 가도록 하는 방식과는 달리 K 개의 sub-center들을 두어 그 중 어디에나 가까이 가면 되도록 설계 했다

figure 1

위 이미지(b) 처럼 하나의 dominant 한 center 뿐 아니라 non-dominant 한 center 들을 이용해서 intra-class 의 압축성과 inter-class 의 분별력을 향상 시켰다

 

 

Related work

 

Face Recognition with Margin Penalty

여러 margin 방식 중 좋은 성능을 보였던 triplet loss 는 triplet data 에서 euclidean distance margin 을 이용했던 방식이다

 mini batch 에서 sample to sample 비교를 하여 효과적이었다

하지만 sampling 과 proxy 를 이용한 방식들이 일부 클래스의 embedding 에만 최적화 된다는 단점이 있었기에

이런 점을 해결하고자 softmax 를 통합한 margin based softmax 방법이 등장했고 이것은 sample to class 비교에 중점을 두었다

sample to class 방식은 sample to sample 보다 더 효율적이고 안정적이었다

 

Face Recognition under Noise

대부분 face recognition 데이터셋은 인터넷에서 celeb list 등을 이용해서 다운로드 한 것 이기 때문에 애매하거나 부정확한 경향이 크다

이러한 데이터는 noisy 데이터가 많아서 clean 하게 만들기도 어려웠다

noisy 데이터를 이용하고자 여러 방법들이 고안 되었는데, softmax 의 probability 값을 이용하여 re labels 하는 방법은 

시간도 오래걸리면서 질적으로도 보장될 수 없었다

그 외에 제안된 여러 방식들도 대규모 데이터셋에는 적합하지 않거나 모델의 initialization 에 취약하다는 등 효율적이거나 효과적이지 못했다

 

Face Recognition with Sub-classes

이전 sub class 를 face recognition 에 이용하는 것은 각 클래스의 분포를 근사화하기 위해 Gaussian 을 사용하였고 얼굴 인식 성능 향상을 보였다

하지만 작고 제어가능한 데이터셋 안에서 hand-designed feature 를 이용할때만 적용 되었다

최근에 multi-center 를 도입한 softtriplet 이라는 방법이 제시되었으나, noisy data 가 많은 대규모 데이터셋의 문제는 고려하지 못했다

 

 

The Proposed Approach

 

ArcFace

arcface 는 softmax loss 에 additive angular margin penalty 를 도입한 것이다

포스트 위의 Arcface 논문에 대한 링크가 있으니 참고하길 바라며 ArcFace loss 는 위와 같다

 

Sub-center ArcFace

Arcface 는 비록 성능이 좋으나, clean 데이터셋을 기준으로 했다

그래서 ArcFace 를 어떻게 하면 noise 에 견고하게 할 수 있을까 생각하여 나온것이 sub-center Arcface 이다

각 신원(identity) 마다 sub-classes 를 두는 아이디어로 ArcFace 를 noise 에 더욱 강건하게 만들었다

 

Foster Sub-classes

 

sub-center ArcFace loss 를 이용하여 학습하는 과정을 보여주는 figure 로 이 논문의 하이라이트는 파란 점선 박스 이다

간략히 보자면

1. embedding feature 와 모든 sub centers 에 대해 l2 normalization 에 기반한 matrix multiplication 으로 sub class 별 similarity score 를 얻는다

2. max pooling 을 거쳐 클래스별 similarity socre 를 얻는다

3. 그 후 과정은 기존 ArcFace 와 같다

이때 각 신원을 위해 충분히 큰 K 를 설정 한다

큰 K 값이 주어지면 sub class 들은 학습 데이터의 복잡한 분포를 잘 포착할 수 있다고 한다

 

sub-center ArcFace loss 는 위와 같다

위 식의 θ는 위와 같다는 것을 참고 하자

 

 

Robustness and Strictness Analysis

robustness 와 strictness 에 대한 분석을 위해 max pooling 을 적용하는 것을 제외하고, 또 다른 비교 전략들을 고려해 보았다

각각 다른 전략( 각각 다른 제약, Constraints 을 둠) 에 따른 강인함과 견고함에 대한 분석 테이블이다

Min 은 가장 가까운 것, Max 는 가장 먼 것

intra 는 training sample 과 positive sub-centers K 사이의 비교 ( class 내부 )

inter 는 training sample 과 모든 negative sub-centers((N-1)*K) 사이의 비교 (class 외부)

outlier 는 open-set noise 이고 label flip 은 close-set noise 이다

 

close set : 학습된 class 의 얼굴들이 있을 때 새로운 이미지 이지만 학습 class 에 할당 할 수 있는 데이터

open set : 학습 class 에 할당 할 수 없는, 새로운 신원에 대한 데이터 ( 이러한 경우 기존 class 와 다른 얼굴이라고 인식하는 것이 목표 )

 

위 전략들을 살펴보면

 

(1) 은 제일 가까운 inter class sub center 와 제일 먼 intra class sub center 사이에 angular margin 추가

intra class 비교를 위해 가장 가까운 positive sub-center 를 선택하는 것이 intra-class constraint 를 완화하고 noise 에 대한 강건함을 향상 시켜준다inter class 의 비교를 위해 가장 가까운 negative sub-center 를 선택하는 것은 inter-class constraint 를 향상 시켜 복잡한 기하학적 분포를 더욱 잘 포착하도록 해주지만, 향상된 inter class 비교는 close set noise 에 있어서 덜 강건하다

 

(2) 의 방식으로 학습하면 inter class 사이의 초기 상태가 orthogonal 하면서 inter-class 와 intra-class 비교가 완화되면 inter-class 비교에서 loss 값이 없어 훈련 방향이 흐트러지면서 수렴할 수 없게 된다

 

(3),(4) 는 intra-class 비교를 강화하면 sub centers 가 고차원 feature 공간에서 하나의 점으로 압축되어 noise 에 대한 견고성이 떨어지기 때문에 sub classes 를 적용할 수 없다

 

Dominant and Non-dominant Sub-classes

앞서 보았던 figure 1 의 (b) 그림(Introduction) 은 제안된 sub center ArcFace loss 가 자동적으로 hard 하고 noise 한 샘플에 대해 clean 한 dominant 샘플들과 분리되어 cluster 를 형성한다는 것을 분명하게 보여준다

 

각 신원의 feature center 를 예측하기 위해 pretrained ArcFace 모델을 사용하여 sample 과 feature center 간의 angle 을 계산했다고 한다

위의 figure 3 에서 볼 수 있듯이 대부분 샘플들이 center 에 가깝게 가지만 몇몇 noise 샘플들은 그렇지 못하다

CASIA dataset 위 처럼 테스트 한 것으로 보아 9.3% ~ 13.0% 정도의 노이즈 추정치가 일치하고 이러한 것의 noise tail 을 제거하기 위해 hard threshold 를 적용 했다고 한다

 

Drop Non-dominant Sub-centers and High-confident Noises

sub-classes 를 사용하면 noise 에 대해서는 강건해지지만 위의 figure 3 처럼 hard 샘플(non-dominant)도 멀게 유지되기 때문에 intra-class 의 압축성이 저하되는 문제가 있었다

그래서 MS1M 데이터셋을 이용하여 angle 의 분포에 대해 살펴보았다

K=1 은 Arcface

K=3 은 non-dominant sub-centers 를 drop 하기전 sub center ArcFace

K=3↓1 은 non-dominant sub-centers 를 drop 한 sub center ArcFace

 

(a),(b) 는 위와 같이 sub center ArcFace 모델을 이용한 것으로 이 경우 샘플 분포 경우가 4가지로 나뉜다

1. dominant sub-classes 에 속하는 easy clean 샘플

2. dominant sub-classes 에 속하는 hard noisy 샘플

3. non-dominant sub-classes 에 속하는 hard clean 샘플

4. non-dominant sub-classes 에 속하는 easy noisy 샘플

 

(c) 는 ArcFace 모델을 이용하여 샘플들과 그들의 center 간의 angle 분포를 본 것 인데, (a) 와 비교했을때 noise 비율이 38.47% 에서 12.40% 로 약 1/3 줄어든 것으로 보아 sub-center ArcFace 가 기존 모델에 비해 noise 에 강건하다는 것을 확인 할 수 있다

 

(d) 는 sub-center ArcFace(drop) 가 dominant sub-center 에 대해 non-dominant sample 의 angle 분포를 나타낸 것으로 (a) 와 (d) 를 같이 보았을 때 clean, noisy 데이터가 조금 겹치더라도 angle threshold 를 70도 ~ 80도 사이로 설정하면 쉽게 high confident 한 noisy samples 을 drop 할 수 있다는 것을 알 수 있다

 

이러한 점들을 바탕으로 intra-class 의 압축성을 다시 향상시키기 위한 접근 방식을 제안한다

1. 네트워크가 충분한 분별력을 가지면 non-dominant sub-centers 를 drop

2. high confident 한 noisy data 를 쉽게 drop 하기 위해 일정한 angle threshold 를 도입

3. 그 후 clean 한 데이터를 만들어서 모델을 처음부터 학습

 

Comparison with Re-weighting Methods

여기서 제안한 방식 Re-weighting 방식 사이의 주요한 차이는, sub-center ArcFace 는 확실히 noisy 데이터에 영향을 덜 받는 다는 것!

결과적으로 sub-center ArcFace 가 얼굴 인식 테스크에서 높은 정확도를 달성하고,

단 2개의 hyper parameters( sub center 의 수, drop 을 위한 threshold) 만 추가하면 되기 때문에 단순성 또한 유지 하였다!

 

 

Conclusion

 

sub-centers 를 이용한 sub-center ArcFace 를 제안 하였고, 기존 모델들 보다 intra-class 의 압축성과 inter-class 의 분별력이 좋으며 noisy 데이터에 대하여 더욱 견고한 성능을 보여주며 대규모 raw web face  데이터셋인 Celeb500K 에서 Sota 성능을 달성하였다

이를 이용하여 규모있는 데이터를 clean 하게 만드는데도 간단히 사용가능 하다

 

 

 

 

 

오늘은 이전 ArcFace 를 읽어보면서 추후에 읽어보겠다 다짐했던 sub-center ArcFace 를 드디어 읽어 보았다

얼굴 데이터는 신원 정보가 들어있기 때문에 비싸기도 하고, 오픈 데이터셋은 아무리 refine 했다고 한들 너무나 저화질이거나 잘못된 라벨링이 된 경우를 많이 보았다

sub center ArcFace 에 대한것이 나오기 이전 예전의 ArcFace 는 확실히 데이터셋을 정제하기엔 부족한 면을 보여 아쉬웠는데, 그때 이 논문이 있었다면.. 더 잘 만든 데이터셋을 구성해서 더 좋은 모델을 만들었을텐데 하는 생각이 들었다

다음에 대규모 얼굴 데이터를 만질 일이 있다면, 정제가 필요하다면, 이 방식을 꼭 써보고 싶다

모델이 커짐에 따라 대규모 데이터는 무조건 필요할 수 밖에 없기 때문에 (생성형으로 만들더라도 real 과는 아직 차이가 많다고 본다) 더 좋게 만들 방법은 없을까 고민해봐야 겠다

ArcFace 와 연결된 논문이라 좀 더 쉽게 읽을 수 있었고, 너무 유용한 내용이라 재밌었다!