논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

FeatherNets: Convolutional Neural Networks as Light as Feather for Face Anti-spoofing

Problem

  • 얼굴 인식 알고리즘이 모바일 기기나 임베디드 기기에 넣고자 하는 트렌드에 따라 face anti-spoofing 알고리즘 또한 낮은 계산량과 저장 용량을 요구하게 되었다.

Essence

  • 이를 해결하기 위해 가벼운 FeatherNet이라는 CNN 구조를 이용하였다.

    • 이 구조는 얇은 CNN stem을 가진다.
    • Global Average Pooling (GAP) 대신 Streaming Module이라는 새로운 구조를 제안하였다.
  • 또한 multi-modal 데이터로부터 학습된 여러 모델을 cascade구조로 통합하는 통합 분류기 구조를 제안한다.

Detail

  • GAP는 객체 인식 분야의 여러 네트워크에서 사용되고 있지만, 얼굴 인식 분야의 Wu[23]이나 Deng[24]의 연구에서는 GAP를 사용하지 않는 것이 더 나은 정확도를 보임이 발견되었고, MobileFaceNet에서는 GAP 대힌 Global Depthwise Convolution (GDConv) 구조를 사용하기도 하였다.

    • GAP는 모든 영역을 동일한 중요도로 본다는 점이 얼굴 분야에서는 적절하지 않다는 것이다. 얼굴 영역만을 입력으로 가지게 되므로 가장자리 부분보다는 중앙 부분이 더 중요한 영역임을 생각할 수 있다.
  • Streaming Module은 이러한 점에서 Depthwise Convolution (DWConv)를 1보다 큰 stride로 적용시킨 뒤, 다운 샘플링된 출력을 1차원의 벡터로 flatten하여 사용한다.

    • 하지만 여기에 FC layer를 붙이지는 않을 것이다. 이렇게 하면 더 많은 파라미터가 필요하고 오버피팅의 위험이 있기 때문이다.
  • Figure 3에서처럼 FeatherNet A/B에서 사용되는 BlockA/B/C가 있다.
  • BlockA는 MobileNetV2에서 제안한 inverted residual block이다.
  • BlockB는 다운샘플링 모듈이다. Inception에서 2x2 average pooling (AP)을 차용하였고, 두번째 브랜치로 ShuffleNet에서 3x3 stride 2 AP를 차용하여 feature를 통합하였다.
  • BlockC는 FeatherNet A에서 사용할 간소화된 다운샘플링 모듈이다.
  • FeathreNet A/B 모두 각 다운샘플링 단계마다 SE-module, reduce=8을 삽입하였고, fast downsampling strategy[33]을 사용하였다.
  • Block A/B/C를 조합하여 만든 뒤, 마지막 레이어에 Streaming Module를 사용하였다. flatten된 벡터는 4 x 4 x 64 = 1024의 길이를 가지며, 추가적인 FC 레이어를 사용하지 않고 곧바로 prediction에 사용하였다.
  • 이렇게 만들어진 FeatherNet B은 파라미터의 수가 0.35M개를 가지며, 그 주고는 아래 표와 같다. FeatherNet A는 FeatherNet B에서 BlockB를 BlockC로 교체하면 된다.
  • Multi-modal을 위하여 2개의 cascade 구조를 제시하였다.

    • 첫번째 단계는 앙상블 모델로 깊이 영상으로부터 학습된 여러 모델의 결과를 가중치 평균하여 0 혹은 1에 가까운 값이 나오는지 검사하여 0, 1에 가까운 값이 나오면 각각 fake, real로 분류하였다.
    • 0, 1에 가까운 값이 나오지 않으면 두번째 단계로 넘어가 IR데이터로 학습한 모델을 사용하여 fake가 나오면 fake로, real이 나오는 경우에는 첫번째 단계에서도 real에 가까운 경우에만 real로 분류하도록 하였다.

Add a Comment Trackback