얼굴도장 로고얼굴도장
얼굴도장 사용방법블로그문의
기술

얼굴도장의 얼굴 인식 기술: FaceNet에서 온디바이스 AI까지

2026-04-01 • 얼굴도장 기술팀

들어가며

얼굴도장은 학원 출결을 위해 온디바이스 얼굴 인식 기술을 사용합니다. 학생이 태블릿 앞에 서면 카메라가 얼굴을 감지하고, 수십 밀리초 안에 누구인지 판별하여 출석을 기록합니다. 별도의 카드나 비밀번호 없이, 얼굴 하나로 체크인이 완료됩니다.

이 글에서는 이 기술이 어떤 학술적 기반 위에 만들어졌는지, 카메라에 잡힌 얼굴이 어떤 과정을 거쳐 "이 학생이 맞다"는 판단에 이르는지를 상세히 설명합니다. 논문 인용과 함께 각 단계의 원리를 풀어보겠습니다.


1. 얼굴 인식의 핵심 아이디어: 임베딩(Embedding)

얼굴을 숫자로 바꾸다

얼굴 인식의 본질은 고차원 이미지를 저차원 벡터로 압축하는 것입니다. 112×112 픽셀의 얼굴 이미지는 약 37,632개의 숫자(RGB 채널)로 구성되지만, 이 중 "이 사람이 누구인가"를 결정하는 정보는 극히 일부입니다. 조명, 각도, 표정 등 외적 변동 요인을 제거하고 개인의 고유한 특성만 남긴 벡터 — 이것을 임베딩(embedding)이라 부릅니다.

좋은 임베딩은 두 가지 조건을 만족합니다:

  • 같은 사람의 서로 다른 사진에서 추출한 임베딩은 가까워야 합니다
  • 다른 사람의 사진에서 추출한 임베딩은 멀어야 합니다
  • 이 단순한 원리 위에 지난 10년간의 연구가 쌓여 있습니다.

    FaceNet: 트리플렛 손실의 등장 (2015)

    현대 얼굴 인식의 출발점은 구글의 FaceNet 논문입니다.

    Schroff, F., Kalenichenko, D., & Philbin, J. (2015). *"FaceNet: A Unified Embedding for Face Recognition and Clustering."* CVPR 2015.

    FaceNet은 트리플렛 손실(Triplet Loss)이라는 학습 방식을 제안했습니다. 모델에 세 장의 사진을 동시에 보여줍니다:

  • 앵커(Anchor): 기준이 되는 사진
  • 양성(Positive): 같은 사람의 다른 사진
  • 음성(Negative): 다른 사람의 사진
  • 모델은 "앵커-양성 거리 < 앵커-음성 거리"가 되도록 학습합니다. 직관적으로, 같은 사람은 가깝게, 다른 사람은 멀게 배치하는 것입니다.

    FaceNet은 128차원 임베딩을 사용하여 LFW(Labeled Faces in the Wild) 벤치마크에서 99.63% 정확도를 달성했습니다. 이전까지 얼굴 인식에 복잡한 전처리와 수작업 특징 추출이 필요했던 것을, 하나의 딥러닝 모델로 end-to-end 학습이 가능하다는 것을 증명한 획기적인 연구였습니다.

    하지만 트리플렛 손실에는 한계가 있었습니다. 학습 데이터에서 적절한 (앵커, 양성, 음성) 조합을 선택하는 마이닝(mining) 전략이 학습 품질을 좌우하는데, 너무 쉬운 조합은 학습에 도움이 안 되고, 너무 어려운 조합은 학습을 불안정하게 만들었습니다.

    ArcFace: 각도 마진 손실의 완성 (2019)

    트리플렛 손실의 한계를 극복한 것이 ArcFace입니다.

    Deng, J., Guo, J., Xue, N., & Zafeiriou, S. (2019). *"ArcFace: Additive Angular Margin Loss for Deep Face Recognition."* CVPR 2019.

    ArcFace는 분류 문제로 접근합니다. 학습 데이터의 각 인물을 하나의 클래스로 보고, 모델이 "이 얼굴은 어떤 인물인가"를 분류하도록 학습시킵니다. 핵심 아이디어는 초구면(hypersphere) 위에서 클래스 간 경계를 더 엄격하게 만드는 것입니다.

    일반적인 소프트맥스 분류기는 특징 벡터와 클래스 중심 벡터 사이의 코사인 유사도를 기반으로 확률을 계산합니다. ArcFace는 여기에 각도 마진(angular margin) *m*을 추가합니다:

    L = -log( e^(s · cos(θ + m)) / (e^(s · cos(θ + m)) + Σ e^(s · cos(θ_j))) )

    θ는 특징 벡터와 해당 클래스 중심 벡터 사이의 각도입니다. 여기에 m을 더함으로써, 모델이 "맞는 클래스"에 대해서도 더 큰 각도 차이를 만들어야 높은 점수를 받게 됩니다. 결과적으로 클래스 간 경계가 더 선명해지고, 임베딩의 판별력이 향상됩니다.

    이전 연구들과의 차이를 정리하면:

    방법마진 적용 방식특징
    SphereFace (2017)각도 곱셈 (multiplicative)학습 불안정, 수렴 어려움
    CosFace (2018)코사인 값 뺄셈 (additive cosine)안정적이나 균일성 부족
    ArcFace (2019)각도 덧셈 (additive angular)모든 각도에서 균일한 마진

    ArcFace는 LFW에서 99.83%, 정면-측면 교차 데이터셋(CFP-FP)에서 98.27%, 연령 변화 데이터셋(AgeDB-30)에서 98.28%를 달성했습니다. 이후 사실상 모든 주요 얼굴 인식 모델의 표준 학습 손실 함수가 되었으며, 얼굴도장이 사용하는 모델 역시 ArcFace 손실로 학습되었습니다.


    2. 모바일을 위한 경량 모델: EdgeFace

    서버가 아닌 기기에서 추론하기

    데이터센터의 GPU에서 동작하는 대형 모델(ResNet-100 등, 수십 MB)은 LFW 99.85% 이상의 정확도를 보여줍니다. 하지만 학원 현장의 태블릿에서는 이런 모델을 실시간으로 돌릴 수 없습니다. 또한 생체 정보를 서버로 전송하는 것은 개인정보 보호 측면에서 바람직하지 않습니다.

    이 문제를 해결하기 위해 등장한 것이 경량 얼굴 인식 모델입니다.

    George, A., & Marcel, S. (2023). *"EdgeFace: Efficient Face Recognition Model for Edge Devices."* IJCB 2023 (International Joint Conference on Biometrics).

    EdgeFace는 모바일/임베디드 기기에서의 추론을 목표로 설계된 모델입니다. 효율적인 합성곱 블록과 경량 어텐션 메커니즘을 결합한 하이브리드 아키텍처를 사용합니다.

    모델파라미터 수모델 크기임베딩 차원LFW 정확도
    ResNet-100 (서버급)~65M~250MB51299.85%+
    MobileFaceNet (2018)~1M~4MB12899.28%
    EdgeFace-XS (2023)~1.77M~7MB51299.73%

    EdgeFace-XS는 서버급 모델 대비 약 35배 작으면서도 정확도 차이는 0.12%p에 불과합니다. 이전 경량 모델인 MobileFaceNet과 비교하면, 비슷한 크기에서 더 높은 차원(512차원)의 임베딩을 생성하여 더 풍부한 얼굴 특징을 담아냅니다. 특히 측면 얼굴(cross-pose)이나 연령 변화(cross-age) 같은 어려운 조건에서 MobileFaceNet을 크게 앞섭니다.

    얼굴도장은 이 EdgeFace-XS 모델을 TensorFlow Lite 형태로 변환하여 태블릿에서 직접 추론합니다. GPU 가속이 가능한 기기에서는 GPU 델리게이트를 사용하고, 그렇지 않은 기기에서는 CPU(XNNPACK)로 자동 전환됩니다. 단일 얼굴 추론 시간은 기기에 따라 15~40ms 수준입니다.

    ArcFace 손실로 학습된 모델

    EdgeFace-XS는 WebFace 데이터셋으로 학습되었으며, 앞서 설명한 ArcFace 손실 함수를 사용합니다. 즉, FaceNet이 제안한 "얼굴을 벡터로" 아이디어를 ArcFace가 더 정교한 학습 방법으로 발전시키고, EdgeFace가 이를 모바일에서 실행 가능한 크기로 압축한 것입니다.


    3. 인식 파이프라인: 카메라에서 출석까지

    얼굴도장의 인식 파이프라인은 다음 6단계로 구성됩니다. 각 단계는 수십 년간 축적된 컴퓨터 비전 연구에 기반합니다.

    3-1. 얼굴 감지 (Face Detection)

    카메라 프레임에서 "어디에 얼굴이 있는가"를 찾는 첫 번째 단계입니다. 얼굴도장은 구글의 ML Kit Face Detection을 사용합니다. ML Kit는 BlazeFace 기반의 경량 감지 모델로, 얼굴의 바운딩 박스(위치와 크기)와 함께 롤(Roll), 요(Yaw), 피치(Pitch) 각도를 실시간으로 반환합니다.

    이 단계에서 얼굴의 포즈(자세)를 확인합니다. 정면에 가까운 얼굴만 다음 단계로 넘기는데, 이는 측면 얼굴에서 추출한 임베딩은 정면 임베딩과의 유사도가 크게 떨어지기 때문입니다. ArcFace 논문에서도 정면-측면 교차 인식(CFP-FP)은 정면-정면(LFW)보다 약 1.5%p 낮은 정확도를 보고하고 있습니다.

    3-2. 얼굴 크롭 (Face Cropping)

    감지된 얼굴 영역을 1.5배 여유를 두고 잘라냅니다. 이마, 턱선, 귀 주변의 맥락 정보가 인식 정확도에 기여하기 때문입니다. 바운딩 박스를 그대로 사용하면 머리카락이나 턱선이 잘려 임베딩 품질이 저하됩니다.

    3-3. 랜드마크 추출 (Landmark Detection)

    크롭된 얼굴에서 핵심 특징점(랜드마크)을 찾습니다. 얼굴도장은 구글의 MediaPipe Face Mesh 모델을 사용합니다.

    Kartynnik, Y., et al. (2019). *"Real-time Facial Surface Geometry from Monocular Video on Mobile GPUs."* CVPR Workshop on Computer Vision for AR/VR.

    MediaPipe는 단일 카메라 프레임에서 468개의 3D 얼굴 랜드마크를 실시간으로 추출합니다. 모델 크기는 약 1.2MB이며, 모바일 기기에서 30FPS 이상의 속도를 보여줍니다. 468개 랜드마크는 눈, 코, 입, 턱선, 이마, 홍채까지 얼굴 전체 표면을 촘촘하게 덮습니다.

    얼굴 인식에 필요한 것은 이 중 5개의 기준점입니다:

    기준점역할
    왼쪽 눈 중심얼굴 정렬의 수평 기준
    오른쪽 눈 중심얼굴 정렬의 수평 기준
    코끝얼굴 중심 기준
    왼쪽 입꼬리얼굴 하단 기준
    오른쪽 입꼬리얼굴 하단 기준

    468개 중 관련 랜드마크들을 조합하여 이 5개 기준점의 좌표를 정밀하게 계산합니다. 예를 들어 "눈 중심"은 눈 주변의 여러 랜드마크를 평균하여 더 안정적인 좌표를 얻습니다.

    왜 468개나 필요한가? 단순한 얼굴 감지기(ML Kit 등)도 눈, 코, 입의 대략적 위치를 제공합니다. 하지만 이런 희소(sparse) 랜드마크는 프레임 간 수십 픽셀의 좌표 흔들림(jitter)이 발생할 수 있습니다. 이 흔들림은 다음 단계의 정렬에 직접 영향을 미쳐, 동일인의 임베딩 일관성을 떨어뜨립니다. MediaPipe의 밀집(dense) 랜드마크는 여러 점의 평균을 통해 프레임 간 안정성을 확보합니다.

    3-4. 얼굴 정렬 (Face Alignment)

    5개 랜드마크를 사용하여 얼굴을 표준 위치로 정렬합니다. 이 단계는 얼굴 인식 정확도에 결정적인 영향을 미칩니다.

    얼굴 인식 모델은 학습 시 "눈이 이 위치에, 코가 이 위치에 있는" 정규화된 이미지를 입력받았습니다. 추론 시에도 동일한 정규화를 적용해야 모델이 기대하는 입력 형태를 만족시킵니다. 이를 위해 유사 변환(Similarity Transform)을 적용합니다.

    유사 변환은 회전 + 균일 스케일 + 이동 (4개의 자유도)으로 구성됩니다. 검출된 5개 랜드마크 좌표를 ArcFace 학습 파이프라인에서 정의된 고정 참조 좌표에 맞추는 변환 행렬을 계산하고, 이 행렬로 원본 이미지를 워프(warp)하여 112×112 픽셀의 정렬된 얼굴 이미지를 생성합니다.

    정렬의 효과는 극적입니다. 학술 연구에 따르면, 5도의 얼굴 회전만으로도 코사인 유사도가 0.05~0.15 감소할 수 있습니다. 0.05의 유사도 차이는 "같은 사람"과 "다른 사람"의 경계를 넘을 수 있는 크기입니다. 정렬은 이러한 기하학적 변동을 제거하여 임베딩이 순수하게 "누구인가"만 반영하도록 만듭니다.

    주의: 유사 변환은 평면 내 회전(in-plane rotation)과 스케일만 보정합니다. 좌우 고개 돌림(yaw)이나 위아래 기울임(pitch) 같은 3D 회전은 보정할 수 없습니다. 이것이 앞서 3-1 단계에서 포즈를 제한하는 이유입니다.

    3-5. 임베딩 추출 (Embedding Extraction)

    정렬된 112×112 이미지를 EdgeFace-XS 모델에 입력하여 512차원 임베딩 벡터를 얻습니다.

    입력 전처리는 간결합니다:

    정규화된 값 = (픽셀값 - 127.5) / 128

    각 RGB 픽셀 값(0~255)을 [-1, 1] 범위로 변환합니다. 이는 EdgeFace 학습 시 사용된 동일한 전처리입니다. 별도의 색상 보정(화이트 밸런스, 감마 보정 등)은 적용하지 않습니다 — 모델이 대규모 데이터셋에서 다양한 조명 조건을 이미 학습했기 때문입니다.

    모델 출력은 512개의 실수(float32)로 구성된 벡터입니다. 이 벡터는 L2 정규화를 거쳐 단위 초구면(unit hypersphere) 위의 한 점으로 변환됩니다. 이후 두 얼굴의 비교는 벡터 간 코사인 유사도로 이루어집니다:

    코사인 유사도 = (A · B) / (|A| × |B|)

    두 벡터가 L2 정규화되어 있으므로, 코사인 유사도는 단순한 내적(dot product)과 동일합니다. 값의 범위는 -1(완전 반대)에서 1(완전 동일)까지이며, 같은 사람의 임베딩은 일반적으로 0.4~0.8 범위의 높은 유사도를 보입니다.

    3-6. 매칭 및 점수 정규화 (Score Normalization)

    추출된 임베딩을 등록된 학생들의 임베딩과 비교하여 가장 유사한 학생을 찾고, 그 유사도가 신뢰할 수 있는 수준인지 판단합니다.

    단순한 접근은 고정 임계값(threshold)을 사용하는 것입니다. "코사인 유사도가 X 이상이면 같은 사람으로 판정." 하지만 이 방식에는 근본적인 한계가 있습니다.

    절대 점수의 문제

    실제 환경에서 코사인 유사도의 분포는 사람마다 다릅니다. 어떤 학생은 모든 사람과의 유사도가 상대적으로 높게 나오고(얼굴 특징이 일반적인 경우), 어떤 학생은 전반적으로 낮게 나옵니다. 고정 임계값은 이런 개인차를 반영하지 못합니다:

  • 얼굴 특징이 일반적인 학생 A: 다른 사람과의 유사도도 높아서, 오인식(false accept) 위험
  • 얼굴 특징이 독특한 학생 B: 본인과의 유사도도 상대적으로 낮아서, 미인식(false reject) 위험
  • 이 문제는 화자 인식(Speaker Verification) 분야에서 먼저 연구되었습니다.

    Auckenthaler, R., Carey, M., & Lloyd-Thomas, H. (2000). *"Score Normalization for Text-Independent Speaker Verification Systems."* Digital Signal Processing.

    점수 정규화: 통계적 접근

    얼굴도장은 점수 정규화(Score Normalization) 기법을 적용하여 이 문제를 해결합니다. 핵심 아이디어는 절대적인 유사도 대신, "이 점수가 통계적으로 얼마나 특별한가"를 판단하는 것입니다.

    등록된 학생들의 임베딩을 코호트(cohort)로 사용하여 점수 분포를 사전에 계산합니다. 각 학생이 다른 학생들과 비교했을 때의 평균 유사도와 표준편차를 구합니다. 이후 새로운 얼굴이 들어왔을 때, 특정 학생과의 raw 유사도를 그 학생의 코호트 통계로 정규화합니다:

    정규화 점수 = (raw 유사도 - 평균) / 표준편차

    이 정규화된 점수는 z-score로, "이 유사도가 해당 학생의 일반적인 유사도 분포에서 몇 표준편차만큼 벗어나 있는가"를 나타냅니다. z-score가 높을수록 우연이 아닌 진짜 매칭일 가능성이 높습니다.

    정규화의 효과

    항목고정 임계값 방식점수 정규화 방식
    점수 단위절대값 (0~1)상대값 (z-score)
    개인차 반영불가자동 보정
    의미"유사도가 X 이상인가?""통계적으로 유의미한 매칭인가?"

    학술 문헌에 따르면, 점수 정규화는 개방 집합(open-set) 검증 벤치마크에서 동일 오류율(EER)을 10~30% 개선하는 것으로 보고되어 있습니다. 특히 등록 인원이 적거나 조명 조건이 일관되지 않은 환경에서 효과가 두드러집니다 — 학원 현장이 정확히 이런 환경입니다.


    4. 온디바이스 처리: 프라이버시와 성능

    생체 정보는 기기를 떠나지 않습니다

    얼굴도장의 가장 중요한 설계 원칙은 모든 얼굴 인식 처리가 기기 위에서 완결된다는 것입니다. 구체적으로:

  • 얼굴 이미지: 서버로 전송되지 않습니다. 카메라 프레임은 임베딩 추출 후 즉시 폐기됩니다.
  • 임베딩 벡터: 기기의 암호화된 저장소(SecureStore)에만 보관됩니다. 서버에는 "이 학생이 얼굴을 등록했는지" 여부만 불리언(true/false)으로 저장됩니다.
  • 매칭 연산: 코사인 유사도 계산과 점수 정규화 모두 기기에서 수행됩니다.
  • 이 아키텍처는 설계상 GDPR, BIPA 등 생체정보 보호 규정의 핵심 요구사항 — 생체 데이터의 최소 수집 및 안전한 보관 — 을 자연스럽게 충족합니다. 서버에 생체 데이터베이스가 존재하지 않으므로, 서버가 해킹되더라도 얼굴 정보가 유출될 수 없습니다.

    TFLite 추론 성능

    구글의 TensorFlow Lite(TFLite)는 온디바이스 ML 추론을 위한 런타임입니다. 학습된 모델을 .tflite 형식으로 변환하면, 모바일 기기의 CPU 또는 GPU에서 최적화된 추론이 가능합니다.

    얼굴도장의 전체 파이프라인 지연 시간은 기기 성능에 따라 다르지만, 일반적으로:

    단계소요 시간
    얼굴 감지 (ML Kit)~10ms
    랜드마크 추출 (MediaPipe)~15ms
    정렬 + 전처리~5ms
    임베딩 추론 (EdgeFace-XS)15~40ms
    매칭 + 정규화~5ms
    전체 파이프라인~50~75ms

    사람이 체감하기 어려운 속도입니다. 카메라 프레임 속도(30FPS, 프레임당 33ms) 내에서 충분히 처리가 완료되므로, 학생이 카메라 앞에 서는 순간 거의 즉시 인식이 이루어집니다.


    5. 얼굴 등록: 양질의 임베딩 확보

    한 장이 아닌 여러 장

    얼굴 등록 시 단일 사진에서 임베딩을 추출하면, 그 사진의 조명/각도/표정이 임베딩에 강하게 반영됩니다. 이후 다른 조건에서 체크인할 때 유사도가 떨어질 수 있습니다.

    얼굴도장은 등록 시 여러 장의 정면 사진을 연속 촬영하고, 각각에서 임베딩을 추출합니다. 이 중 가장 대표성이 높은(다른 임베딩들과의 평균 유사도가 가장 높은) 임베딩을 최종 등록 임베딩으로 선택합니다.

    이 "중심성(centrality)" 기반 선택은 이상치(눈을 감은 순간, 흔들린 사진 등)를 자연스럽게 배제하고, 해당 학생의 평균적인 얼굴 특징을 가장 잘 대표하는 임베딩을 확보합니다.

    촬영 조건 통제

    등록 품질을 보장하기 위해 다음 조건을 실시간으로 확인합니다:

  • 포즈 제한: 좌우 돌림(yaw)과 상하 기울임(pitch)이 일정 범위 내에 있어야 합니다
  • 안정성: 얼굴이 프레임 중앙에 고정되어 움직이지 않는 상태에서만 촬영합니다
  • 얼굴 크기: 너무 작거나 너무 큰 얼굴은 촬영하지 않습니다
  • 이 조건들은 화면의 가이드 UI를 통해 학생에게 실시간으로 안내됩니다. "얼굴을 원 안에 맞춰주세요", "정면을 바라봐주세요" 등의 메시지가 표시됩니다.


    6. 기술의 한계: 논문과 현실 사이

    벤치마크 정확도 ≠ 현장 정확도

    앞서 인용한 정확도 수치들 — FaceNet 99.63%, ArcFace 99.83%, EdgeFace-XS 99.73% — 은 모두 LFW(Labeled Faces in the Wild) 벤치마크 기준입니다. LFW는 얼굴 인식 연구의 표준 평가 데이터셋이지만, 다음과 같은 조건에서 측정됩니다:

  • 성인 위주: 데이터셋의 대부분이 성인(주로 유명인) 사진입니다
  • 고해상도: 웹에서 수집한 비교적 고품질 이미지입니다
  • 1:1 검증: "이 두 사진이 같은 사람인가?"의 단순 비교입니다
  • 제한된 인종 다양성: 서양인 중심의 데이터 구성입니다
  • 학원 현장은 이와 다릅니다:

    벤치마크 조건학원 현장
    성인 위주어린이/청소년 중심
    고해상도 사진태블릿 전면 카메라
    통제된 조명형광등, 역광, 그림자 등 다양
    1:1 검증1:N 식별 (등록된 학생 중 매칭)
    정적 이미지움직이는 실시간 영상

    특히 어린이의 얼굴은 성인보다 개인 간 변별력이 낮은 것으로 알려져 있습니다. 아이들의 얼굴은 성인에 비해 이목구비의 비율 차이가 작고, 성장에 따라 얼굴 형태가 빠르게 변합니다. 이는 FaceNet, ArcFace 등의 논문에서 다루지 않는 영역입니다.

    기기별 차이

    동일한 모델이라도 실행되는 기기에 따라 결과에 미세한 차이가 생길 수 있습니다:

  • 카메라 품질: 전면 카메라의 해상도, 렌즈 왜곡, 노이즈 수준이 기기마다 다릅니다
  • ISP(이미지 신호 처리): 스마트폰/태블릿 제조사마다 자동 노출, 화이트 밸런스, HDR 처리 방식이 다릅니다. 같은 얼굴도 기기에 따라 밝기, 색감, 대비가 달라집니다
  • GPU 연산 정밀도: TFLite GPU 델리게이트의 float16 연산은 CPU float32와 미세한 수치 차이를 만들 수 있습니다
  • 센서 좌표계: Android와 iOS는 카메라 센서의 좌표 체계가 다르며, 제조사별로도 차이가 있을 수 있습니다
  • 이러한 변수들은 통제된 벤치마크에서는 발생하지 않지만, 실제 제품에서는 반드시 대응해야 하는 요소들입니다. 얼굴도장은 다양한 기기에서 테스트를 거치며 이런 차이를 최소화하기 위해 지속적으로 파이프라인을 개선하고 있습니다.

    정확도와 안전성의 균형

    얼굴 인식 시스템의 오류는 두 가지 방향으로 발생합니다:

  • 미인식(False Rejection): 등록된 학생인데 인식하지 못함 → 불편함
  • 오인식(False Accept): 다른 사람으로 잘못 인식 → 잘못된 출석 기록
  • 얼굴도장은 오인식 방지를 미인식 방지보다 우선합니다. 학생이 한 번 더 시도해야 하는 불편함보다, 다른 학생의 이름으로 출석이 기록되는 것이 훨씬 더 심각한 문제이기 때문입니다. 이것은 보안 시스템의 기본 원칙이기도 합니다.

    인식이 잘 되지 않을 경우, 조명이 밝은 환경에서 정면을 바라보며 재시도하면 대부분 해결됩니다. 그래도 반복적으로 인식이 안 된다면 앱 내에서 얼굴 재등록을 하면 됩니다.

    기술 스택 요약

    구성 요소기술출처
    얼굴 감지ML Kit Face DetectionGoogle
    랜드마크 추출MediaPipe Face Mesh (468점)Google, CVPR 2019
    얼굴 정렬ArcFace Similarity TransformDeng et al., CVPR 2019
    인식 모델EdgeFace-XS (512차원, ~7MB)George & Marcel, IJCB 2023
    학습 손실ArcFace (Additive Angular Margin)Deng et al., CVPR 2019
    점수 정규화코호트 기반 통계 정규화Auckenthaler et al., 2000
    추론 엔진TensorFlow Lite (GPU/CPU)Google
    생체 저장기기 암호화 저장소 (SecureStore)온디바이스

    마치며

    이 글에서 다룬 기술들은 10년 이상의 학술 연구 위에 세워져 있습니다. FaceNet이 "얼굴을 벡터로" 변환하는 아이디어를 열었고, ArcFace가 학습 방법을 정교화했으며, EdgeFace가 이를 모바일에서 실행 가능하게 만들었습니다. MediaPipe가 정밀한 랜드마크를 제공하고, 점수 정규화가 통계적 신뢰성을 더합니다.

    다만, 논문에서 보고하는 99%대 정확도는 통제된 벤치마크 환경에서의 수치라는 점을 명확히 하고 싶습니다. 실제 학원 현장의 다양한 조명, 어린이 얼굴의 특성, 기기별 카메라 차이, 실시간 영상의 모션 블러 등은 논문의 이상적 조건과 다릅니다. 이 간극을 좁히기 위해 얼굴도장 기술팀은 실제 사용 데이터를 기반으로 파이프라인의 각 단계를 지속적으로 개선하고 있습니다.

    기술은 도구입니다. 완벽한 도구는 없지만, 원리를 이해하고 한계를 인지하면서 꾸준히 발전시켜 나가는 것 — 그것이 얼굴도장이 기술을 대하는 자세입니다.


    참고 문헌

    1. Schroff, F., Kalenichenko, D., & Philbin, J. (2015). *FaceNet: A Unified Embedding for Face Recognition and Clustering.* CVPR 2015.

    2. Deng, J., Guo, J., Xue, N., & Zafeiriou, S. (2019). *ArcFace: Additive Angular Margin Loss for Deep Face Recognition.* CVPR 2019.

    3. George, A., & Marcel, S. (2023). *EdgeFace: Efficient Face Recognition Model for Edge Devices.* IJCB 2023.

    4. Kartynnik, Y., et al. (2019). *Real-time Facial Surface Geometry from Monocular Video on Mobile GPUs.* CVPR Workshop.

    5. Auckenthaler, R., Carey, M., & Lloyd-Thomas, H. (2000). *Score Normalization for Text-Independent Speaker Verification Systems.* Digital Signal Processing.

    6. Liu, W., Wen, Y., Yu, Z., & Yang, M. (2017). *SphereFace: Deep Hypersphere Embedding for Face Recognition.* CVPR 2017.

    7. Wang, H., et al. (2018). *CosFace: Large Margin Cosine Loss for Deep Face Recognition.* CVPR 2018.

    작성 주체

    얼굴도장 기술팀

    얼굴도장 사이트의 공개 콘텐츠는 학원 운영 현장에서 자주 묻는 질문과 서비스 도입 시 실제로 확인해야 하는 이슈를 정리해 제공합니다. 지원 채널과 사업 정보는 문의 페이지에서 확인하실 수 있습니다.

    문의하기
    ← 목록으로 돌아가기
    궁금한 점이 있으신가요?
    얼굴도장 로고얼굴도장
    얼굴도장 사용방법블로그문의이용약관개인정보처리방침

    상호명: 엘하우징대표자: 최가희사업자등록번호: 165-08-01016

    통신판매업 신고번호: 2026-경기광주-0168대표번호: 070-8098-8729

    주소: 경기도 광주시 오포로 430-1, 1층 103호

    이메일: eoldo.contact@gmail.com개인정보보호책임자: 최가희

    © All Rights Reserved.