안면 인증 시스템의 필요성
오프라인 매장에서 회원을 확인하는 가장 흔한 방법 중 하나는 전화번호입니다. 그러나 전화번호만으로 회원을 확인하면 타인의 전화번호를 이용해 다른 회원으로 가장하는 Identity Spoofing이 가능합니다.
이를 방지하기 위해 PASS 본인 인증, 인증서, SMS OTP, 전화 ARS, 혹은 얼굴이나 주민등록번호와 같은 개인정보를 이용하여 신원을 인증하곤 합니다. 그러나 본인 인증 절차가 추가될수록 사용자는 번거로움을 느낍니다.
지문 인식은 이러한 문제를 해결할 수 있는 생체인증 수단 중 하나입니다. 공공기관이나 금융기관에서도 지문 인식을 활용합니다. 그러나 일반적인 매장에서 지문 인식을 도입하려면 별도의 지문 인식 장비가 필요합니다.
또 다른 대안은 안면 인증(Face Recognition) 입니다. 매장의 점주가 이미 가지고 있는 대부분의 모바일 기기에는 카메라가 내장되어 있습니다. 기존 모바일 기기의 카메라를 활용할 수 있다는 점에서 안면 인증은 비교적 도입하기 쉬운 생체인증 방식입니다.
회원제 시스템을 운영하는 매장에서 신뢰성있는 안면 인증 시스템을 구축한다면, 회원을 식별하고 본인 여부를 인증하는 과정을 자동화할 수 있습니다. 이는 회원제 매장을 무인으로 운영하기 위한 인증 수단으로 효과적입니다.
저희팀 내에서도 무인 매장 운영 시스템으로서의 경쟁력을 높이기 위해 안면 인식 기능을 구현해보는 것이 어떠냐는 의견이 나왔습니다. 우선 안면 인식 기능을 구현할 수 있을지, 안정적인지, 그리고 사업성이 있는지를 판단하기 위해 안면 인식 기술을 조사했습니다.
안면 인증 시스템 스터디
AWS가 2024년에 공개한 「Face and Liveness Verification for Identity Verification with Amazon Rekognition」 백서를 읽고 기본 개념을 잡았습니다.
1. Key Concepts
얼굴은 Face Vectors 형태로 저장합니다. 그리고 한 사람에 관한 여러개의 Face Vector 는 User Vector 로 저장됩니다.
2. Face Liveness
Liveness 검사는 “실제 사람이 참여하는가” 를 확인합니다. 유저가 타인의 얼굴의 사진이나 영상을 이용하여 부정 사용하는 것을 방지합니다. Face Liveness 는 이미지가 아니라 영상 세션 단위로 이루어지므로 단순 영상처리에 비해 세션 상태를 이용하므로 무겁습니다. (Stateful)
3. 품질확인
품질확인은 “얼굴을 비교할만한 사진인가” 를 판단합니다. 사진에 얼굴이 하나만 있는지, 얼굴의 3축 회전각 (yaw : 좌우 회전, pitch : 상하 회전, roll : 좌우 기울임), 사진의 밝기나 선명도, 크기 등을 확인하고, 기준을 통과하는 이미지만을 활용합니다.
4. 1:1 안면 인증 프로세스
1:1 안면 인증 프로세스는 “기준 사진과 동일한 사람인가” 를 판단하는 것입니다.
1:1 비교 구조는 미리 저장된 사용자의 신원과 현재 촬영되고 있는 얼굴이 일치하는지 확인하는 방식입니다. iOS, AOS 는 기기에서 이루어지는 얼굴 인증 기능이 1:1 구조입니다. 1:1 구조에서는 등록된 회원 한 사람만 인증하면 충분하므로 빠르고 간단합니다. 모바일 신분증 등 모바일에서 이루어지는 여러 안면 인증 기능들은 대부분 1:1 비교 구조입니다.
1:1 안면 인증 프로세스는 얼굴 등록과 얼굴 인증 두 단계로 나뉩니다.
얼굴 등록시, 얼굴 이미지를 여러장 촬영하여 저장합니다.
얼굴 인증시 인식한 얼굴 영상에서 이미지를 추출하고 품질을 확인한 후, 저장된 얼굴 이미지와 비교하여 유사도를 측정합니다. 충분히 유사하다면 얼굴 인증 성공입니다. AWS Rekognition 에서는 CompareFaces API 로 비교합니다. AWS Rekognition 에서는 기준 사진을 저장하고 있지 않습니다. 그렇기에 CompareFaces API 호출시 기준사진과 비교용 사진을 함께 요청에 실어서 호출해야합니다.
영상, 사진 인식 처리 시 Liveness 검사와 품질 검사가 동반됩니다.
5. N:1 안면 인증 프로세스
N:1 기술은 현재 촬영되고 있는 얼굴이 등록된 여러 얼굴들 중 누구인지를 찾아내는 기술입니다. 요즘 종종 보이는 토스의 페이스페이나 네이버의 페이스 사인이 N:1 안면 인식 기능을 활용합니다. N:1 비교와 1:1 비교는 얼핏보면 비슷해 보이지만 꽤 다릅니다. N:1 이 더 복잡하고 어렵습니다.
무인 매장에서는 회원의 얼굴만으로 회원이 맞는지, 맞다면 어떤 회원인지를 밝혀내야 합니다. 저희 팀이 필요로 하는 기능은 N:1 입니다.
AWS Rekognition 을 활용하여 N:1 안면 인증 기능을 구현할 때에도 얼굴 등록과 얼굴 인식 단계로 나뉩니다.
Liveness검사와 품질검사를 거친 후, IndexFaces 를 이용해서 Feature Vector 만 추출하여 저장합니다. 사진 파일은 저장되지 않고 Feature Vector 만 AWS Rekognition 에 저장됩니다.
얼굴 인증 과정도 얼굴 등록 과정과 유사합니다. Liveness 검사와 품질 검사, IndexFaces 를 거친 후 추출된 Feature Vector 를 이용해서 가장 유사한 샘플을 찾아냅니다. 가장 유사한 샘플의 유사도가 특정 이상 높으면 얼굴 인증이 완료됩니다.
6. N:1 안면 인증 프로세스의 생각거리
N:1 얼굴 인증 기능은 가장 유사한 얼굴이 누구인지를 찾고 충분히 유사한지 확인하는 원리입니다. 즉 유사한 얼굴 후보 사진을 뽑아내고, 각각 점수를 매겨 비교하는 것으로 얼굴의 주인을 찾아냅니다.
만약 후보 사진들 모두 유사도 기준을 통과하지 못한다면, 얼굴이 아직 등록되지 않은 사람이라고 판단할 수 있습니다.
또한 많은 유저가 등록되어 있다면 다른 얼굴이 매치될 확률이 선형적으로 증가합니다. 즉 규모의 문제인데요, 한 사람당 얼굴의 사진을 여러 장 저장하는 것으로 최대한 극복할 수 있습니다. 또한 유사도 임계값 설정도 중요합니다. 백서에서는 아래와 같이 정할 것을 권장합니다.
7. 후기
AWS Face Rekognition 은 안면 인식/인증 기능을 처음 개발하는 사람을 위한 기능을 상세히 설명해 두었습니다. 훌륭한 자료입니다. 덕분에 이제 이 백서를 바탕으로 실제 기능을 개발해보겠습니다.
참고
AWS 공식 백서 Face and Liveness Verification for Identity Verification with Amazon Rekognition
