ArcFace를 활용한 한국인 안면 인식

K-Face 데이터로 미세조정한 ArcFace 기반 임베딩 모델과 이를 활용한 비대면 본인인증 시스템

기간: 2021.03 - 2021.12 · 비고: 학부 졸업 프로젝트 · 2021년 비대면시대의 인공지능 챌린지 대상

개요

COVID-19 확산과 무인화 경향에 힘입어, 딥러닝 기반 얼굴인식을 활용한 본인인증 시스템을 학부 졸업 프로젝트 주제로 개발했습니다.

1. ArcFace를 활용한 안면인식 모델 개발

ArcFace(Deng et al., 2019)는 Metric Learning의 한 종류로, 일반적인 분류 문제와는 활용 방식이 다릅니다. 매우 많은 클래스(사람)를 분류하는 문제를 학습시키면서, 그 과정에서 입력 이미지에 대한 임베딩을 부가적으로 학습합니다. 동일 인물의 이미지는 임베딩 공간에서 서로 가깝게, 다른 인물의 이미지는 멀리 위치하도록 학습되기 때문에, 학습이 끝난 뒤 분류 레이어(Classification layer)를 떼어내고 임베딩 네트워크만 활용하면 두 얼굴 이미지의 임베딩 거리로 동일인 여부를 판별할 수 있습니다.

K-Face 데이터

한국인 얼굴 사진(K-Face) 데이터베이스는 한국정보화진흥원의 “영상분야 지식베이스 구축” 및 “인공지능 학습용 AI데이터 구축” 사업의 일환으로 구축된 데이터로, AI Hub를 통해 제공받았습니다. 데이터는 해상도 3종, 액세서리 6종, 조명 30종, 표정 3종, 촬영 각도 20종의 조합으로 구성되어 있습니다.

전처리

  • 하드웨어 한계와 학습 효율을 고려해 고/중/저화질 중 중화질 이미지를 사용했습니다.
  • 얼굴인식에 적합하도록 조명 4종·표정 3종·액세서리 1종에 대한 이미지만 사용했습니다.
  • 피사체가 확실히 식별되는 조명(L1, L3) 2종만 학습에 사용하고, 매우 어두운 L6·L7은 제외했습니다.
  • 얼굴 정면이 확실히 식별되는 촬영 각도 4종(C6~C9)을 선별했습니다.
  • 최종적으로 400명 × 조명 2종 × 각도 4종 × 표정 3종 = 9,600장을 구성하고, 이 중 390명(9,360장)은 학습, 10명(240장)은 검증 데이터로 분리했습니다.

모델 개발

ArcFace 모델의 소스코드는 peteryuX의 GitHub 구현을 참고했습니다. 이 저장소가 제공하는, 대규모 얼굴인식 데이터셋 MS-Celeb-1M으로 학습된 사전학습 모델을 K-Face 이미지에 맞게 미세조정(Fine-Tuning)하는 방향으로 개발했습니다.

모델 검증

검증 데이터셋 10명, 240장을 대상으로 동일인물 구별 실험을 설계했습니다. 240장 중 랜덤한 두 장을 뽑아 사진쌍을 생성하되, 동일인물 200쌍과 동일인물이 아닌 200쌍, 총 400쌍을 구성했습니다. 모델이 각 사진쌍에서 512차원 임베딩 벡터를 추출하도록 하고, 두 임베딩의 거리가 임계값보다 작으면 동일인물로, 크면 동일인물이 아닌 것으로 분류했습니다. 이 임계값을 일정 범위에서 조금씩 늘려가며 반복 실험했습니다.

검증 결과: 미세조정 이전(MS-Celeb-1M 학습 모델)에도 ROC AUC 0.9891로 충분히 높은 성능을 보였고, K-Face로 미세조정한 후에는 AUC 0.9992로 약 0.1 향상되었습니다.

2. 본인인증 시스템 구축

학습한 ArcFace 모델을 기반으로 기본적인 형태의 본인인증 시스템을 만들었습니다. 입력값은 사용자의 신분증과 실시간으로 촬영한 얼굴 사진입니다.

  1. 사용자가 신분증 이미지를 입력합니다.
  2. 신분증에서 Tesseract 기반 OCR로 생년월일을 추출해 성인 여부를 판별합니다.
  3. 사용자의 실시간 얼굴 사진을 촬영합니다. 이때 사진 도용을 방지하기 위해 특정 모션을 요구하고, 모션을 올바르게 수행했을 때만 다음 단계로 넘어갈 수 있도록 했습니다.
  4. 신분증 이미지와 실시간 얼굴 이미지 각각에서 dlib 오픈소스 라이브러리로 얼굴 영역을 추출합니다.
  5. 추출한 얼굴 영역을 ArcFace 모델에 입력해 두 이미지의 임베딩을 추출합니다.
  6. 두 임베딩의 거리를 계산해 일정 값보다 가까우면 동일인물로, 그렇지 않으면 동일인물이 아닌 것으로 판별합니다.

이 프로젝트는 2021년 비대면시대의 인공지능 챌린지에서 대상을 수상했습니다.