하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.
Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision
8월 17th, 2020 Posted by 룬룬
- Binary supervision을 통한 deep anti-spoofing에는 두가지 이슈가 있다.
- 한가지는 spoof pattern 따라 이미지 degradation의 정도가 다르다는 점이다.
- 두번째는 binary supervision을 통해 학습 되었기에 어떠한 해석이나 이유 없이 binary decision 결과만 생성한다는 점이다.
- 이러한 문제를 해결하기 위해 binary supervision 대신 spatial, temporal auxiliary 정보를 모두 활용하는 방법을 제안한다.
- Spatial 관점에서는 depth 정보를 supervision 정보로 사용할 것이다.
- Temporal 관점에서는 rPPG 정보를 supervision으로 사용할 것이다.
- 2D 이미지로부터 depth map을 생성하기 위해 기존 제안되었던 DeFA (Dense Face Alignment)를 적용하여 이미지로부터 얼굴의 3D shape을 추정하고, 이를 통해 얼굴의 포즈 파라미터 와 깊이를 계산하였다. 깊이 값 는 [0, 1] 범위의 값을 가지도록 하였다.
- rPPG 정보는 temporal 정보에서 live와 fake를 구분할 수 있는 정보이다. 하지만 표정이나 포즈, 조명 변화에 민감한 문제가 있고, 비디오 재생시에는 fake를 구분할 수 없다는 문제가 있다.
- rPPG를 추정하기 위해 기존 제안된 방법들 보다는 RNN을 이용하여 rPPG를 추정하였다.
- DeFA로부터 추정된 파라미터를 이용하여 얼굴을 추적하고 얼굴 영역의 색상을 이용하여 혈류 흐름 신호를 계산한 뒤, 이에 FFT를 적용한 각 magnitude 값을 추정하도록 네트워크를 구성하였다.
- 네트워크는 ResNet 구조와 비슷하게 구성하였다. CNN은 두개의 브랜치로 나누어진다. 한 브랜치는 L2 loss를 이용하여 depth map을 직접 추정하도록 하엿다.
- 다른 브랜치의 출력은 RNN의 입력에 사용되는데 그 전에 non-rigid registration layer를 거친다.
- RNN 네트워크는 LSTM와 FC layer를 이용한 뒤, FFT layer를 통과시켜 푸리에 도메인에서의 결과를 추정하도록 L2 loss를 적용하엿다.
- CNN의 출력을 RNN에 입력하기 전에 얼굴의 각도나 표정 변화 등에 대한 영향을 적게 하기 위해 non-rigid registration layer를 적용한다. 먼저 추정된 깊이 영상에서 깊이를 가지는 위치를 제외한 나머지는 모두 0으로 만든다. 다음 DeFA로부터 계산되어 나온 파라미터를 이용하여 얼굴의 기본 shape 으로 되돌리는 변환을 계산한 뒤, CNN의 출력 feature map을 에 맞도록 registration 한다.
- CNN, RNN 네트워크에 대한 로스를 이용하여 end-to-end로 학습 시키고, 테스트 시에는 rPPG의 magnitude의 norm과 depth map의 norm을 weighted sum하여 live/fake에 대한 score로 사용한다.
Add a Comment Trackback