AuraFace 얼굴인식 정확도가 이상하게 낮았던 이유 — 서로 무관한 버그 두 개

2 weeks ago 20

얼굴인식 SDK(facekit, Flutter/on-device)에 상업적으로 재배포 가능한 임베딩 모델(AuraFace,fal.ai)을 새로 붙였는데, 분명 본인 얼굴인데 유사도가 0.14~0.37 사이를 오갔습니다.

채널순서(RGB/BGR), 모델 변환 신뢰성, 임베딩 벡터 통계까지 다 정상이었는데도 계속 낮게 나와서 결국 "이론으로 추론 그만하고 실제 데이터를 눈으로 보자"로 방향을 바꿨습니다.

기기에서 정렬된 얼굴 크롭 이미지를 꺼내는 것부터 세 번 실패(클립보드 잘림, 스코프드 스토리지 차단, 로컬 서버 소켓 차단)한 끝에, 결국 이미지를 base64로 쪼개서 로그로
찍고 다시 조립하는 원시적인 방법으로 확인해보니 — 얼굴이 180도 뒤집혀 있거나 찌그러진 채로 모델에 들어가고 있었습니다.

원인은 두 개였습니다:

  1. 카메라 센서 회전을 애초에 보정 안 하고 있던 것 (모델과 무관, 원래부터 있던 결함 —
    최근 전면 카메라 기본값으로 바꾸면서 처음 드러남)

  2. AuraFace가 표준 ArcFace 정규화 (pixel-127.5)/127.5가 아니라 원본 0~255 픽셀을
    그대로 넣어야 하는 모델이었던 것 (변환 과정에서 흡수됐거나 배포판 고유 컨벤션)

둘 다 고치고 나서야 유사도 0.81~0.94로 정상화됐습니다. 하나 고치면 "나아졌지만 여전히 이상한" 상태가 반복됐던 과정, 그리고 기기에서 데이터를 꺼내려다 막힌 시행착오까지
가감 없이 기록했습니다.

Read Entire Article