유사도 점수는 두 얼굴 벡터, 즉 512개 숫자로 된 두 목록 사이의 코사인 유사도이고 0에서 1 사이의 값을 가집니다. 저희 색인에서 0.40은 두 얼굴을 같은 사람으로 볼 수 있게 되는 경계입니다. 백분율도 아니고, 확신도도 아니고, 확률도 아닙니다. 각도입니다.

이 숫자가 중요한 이유는 대부분의 얼굴 검색 도구가 알려 주지 않는 사실 때문입니다. 밀집 벡터 검색은 결코 아무것도 안 내놓지 않습니다. 결과를 열 개 달라고 하면 열 개를 돌려줍니다. 찾는 사람이 애초에 색인에 있든 없든 그렇습니다. 답과 그저 가장 가까운 남을 갈라 주는 것은 점수뿐입니다.

이 점수는 실제로 무엇을 재는 것인가?

코사인 유사도는 두 벡터의 길이를 무시하고 그 사이의 각도를 잽니다. 512차원 벡터로 변환된 두 얼굴은 두 벡터가 거의 같은 방향을 가리킬 때 "비슷하다"고 판정됩니다.

인코더는 저희 경우 ArcFace인데, 같은 인물의 이미지에서는 같은 방향을 가리키는 벡터가, 다른 인물의 이미지에서는 서로 다른 방향을 가리키는 벡터가 나오도록 학습되어 있습니다. 자세, 조명, 배경, 머리 모양은 인코더가 얼굴을 보기 전 단계인 검출과 정렬에서 대부분 버려집니다.

그래서 이 점수는 눈으로 받는 인상처럼 움직이지 않습니다. 사람 눈에 닮아 보이는 사진 두 장이 낮은 점수를 받을 수 있고, 조명도 시대도 머리 모양도 전혀 다른 사진 두 장이 높은 점수를 받을 수 있습니다.

점수 구간은 어떻게 읽어야 하나?

점수를 판결이 아니라 구간으로 다루세요. 아래는 저희가 저희 데이터에 실제로 쓰는 실무 구간입니다.

점수 읽는 법 어떻게 다룰 것인가
0.70 이상 같은 인물일 가능성이 매우 높음 일치로 다루되 출처 페이지도 확인
0.55 – 0.70 같은 인물일 가능성이 높음 일치로 보되 다른 이미지로 한 번 더 확인
0.40 – 0.55 기준값 위이지만 약함 있을 법함. 나쁜 각도와 닮은 사람 모두 이 구간을 만듦
0.25 – 0.40 기준값 아래 닮음이지 동일 인물이 아님
0.25 미만 색인에서 가장 가까운 벡터 색인이 무언가를 내놓아야 했다는 것 외에 아무 의미 없음

사람들이 잘못 읽는 것은 0.40 아래의 줄들입니다. 0.31이라는 결과는 "31% 확률"이 아닙니다. 찾는 사람이 여기 없고 대신 가진 것을 보여 주고 있다는 시스템의 말입니다.

출처: 저희 색인, 2026-08 스냅숏. 이 구간들은 저희 결과를 읽기 위한 실무 기준이지 공표된 벤치마크가 아닙니다.

기준값이라는 것이 왜 필요한가?

기준값은 연속적인 거리를 예 또는 아니오의 판단으로 바꿔 주는데, 그런 변환은 언제나 한 종류의 오류를 다른 종류의 오류와 맞바꾸기 때문입니다.

기준값을 낮추면 어려운 각도나 심한 압축에서 찍힌 진짜 일치를 더 건져 올리지만, 무관한 얼굴도 더 들어옵니다. 높이면 남는 일치는 더 깨끗해지지만, 측면 사진이나 저비트레이트 스트림에서 나온 진짜 일치가 목록에서 아예 빠져나갑니다.

두 오류를 동시에 없애는 설정값은 없습니다. 0.40이 지금 자리에 있는 이유는 저희에게 들어오는 전형적인 질의가 영상 프레임이기 때문입니다. 압축되어 있고, 움직임으로 흐릿하고, 정면인 경우가 드물고, 대개 작습니다. 깨끗한 스튜디오 인물 사진에 맞춰 조정한 기준값이라면 더 높았을 것이고, 실제 질의의 대부분을 거절했을 것입니다.

같은 사람인데 사진마다 점수가 다른 이유는?

인코더가 자세와 조명을 완벽하게 버리지는 못하고, 카메라와 당신의 스크린샷 사이에서 일어난 모든 열화가 벡터를 움직이기 때문입니다.

조건 점수에 주는 영향
정면, 또렷함, 조명 좋음 가장 높은 점수. 인코더에게 가장 유리한 경우
고개가 대략 4분의 3을 넘겨 돌아간 상태 크게 떨어짐. 얼굴의 일부가 아예 없음
심한 영상 압축, 낮은 비트레이트 떨어짐. 블록 노이즈가 미세한 얼굴 정보를 망침
화면 속 얼굴이 작음 떨어짐. 인코딩 전에 검출부터 실패할 수 있음
가림 — 손, 머리카락, 얼굴을 가로지르는 물체 랜드마크가 어긋나고 정렬이 뒤틀려 벡터가 잘못됨
두 이미지 사이에 흐른 세월 중간 정도로 떨어짐. 신원 신호는 남지만 약해짐
성형 시술, 큰 체중 변화 진짜 일치가 기준값 아래로 떨어질 수 있음
화장, 머리 모양, 머리 색 거의 영향 없음. 정렬 과정에서 대부분 잘려 나감

마지막 줄은 사람들을 놀라게 하고, 그 위의 줄은 실망시킵니다. 머리는 거의 공짜지만 달라진 얼굴은 그렇지 않습니다.

점수를 숨기는 도구를 왜 믿지 말아야 하나?

점수를 숨기면 일치와 짐작의 차이가 함께 숨겨지는데, 결과의 전부가 바로 그 차이이기 때문입니다.

점수 없는 순위 목록은 1위가 0.85든 0.19든 똑같아 보입니다. 둘 다 "이게 가장 비슷한 결과입니다"로 그려집니다. 하지만 의미가 있는 것은 하나뿐입니다. 얼굴 열 개를 보여 주면서 숫자를 하나도 안 보여 주는 도구는 가장 많은 정보를 담은 항목 하나를 골라내어 지운 것이고, 그것도 시스템이 진실과 무관하게 반드시 무언가를 내놓게 되어 있는 바로 그 상황에서 그렇게 한 것입니다.

정직한 얼굴 검색 결과에는 세 가지가 들어 있습니다. 점수, 그 점수를 판정하는 기준값, 그리고 직접 눈으로 확인할 수 있게 해 주는 원본 이미지 링크입니다. 셋 중 하나라도 없으면 그 답을 검증할 수 없습니다.

데이터와 방법

출처. starlikeness가 106개 사이트에서 색인한 표지 이미지와 스틸에서 계산한 얼굴 벡터.

표본. 색인에 든 얼굴 벡터 241,792개, 이름이 붙은 신원 기록 2,333건(저희 색인, 2026-08 스냅숏).

방법. YuNet으로 검출해 경계 상자와 랜드마크 다섯 개를 얻습니다. 그 랜드마크로 표준 자세에 맞춰 정렬합니다. ArcFace로 512차원 벡터로 인코딩합니다. 전체 색인을 상대로 코사인 유사도로 검색합니다. 0.40이라는 기준값은 이 색인에 영상 프레임으로 질의하는 상황에 맞춰 보정한 것입니다.

스냅숏 날짜. 2026-08.

알려진 편향. 커버리지가 심하게 몰려 있습니다. 이름이 붙은 신원 2,333건 중 2,246건이 대표 이미지를 단 하나의 사이트에서 가져오며, 색인된 106개 사이트 중 일본 작품 ID를 다루는 곳은 소수에 불과합니다. 따라서 저희가 재고 있는 것은 작품 출시량이 아니라 애그리게이터 사이트에서의 노출입니다. 저희가 색인하지 않은 사이트에만 작품이 올라오는 배우는 검색되지 않고, 어떤 점수도 그 사실을 알려 주지 않습니다. 검색은 여전히 가장 가까운 낯선 얼굴 열 개를 돌려줄 뿐입니다.

기준값의 한계. 0.40은 이 인코더와 이 색인에 해당합니다. 다른 도구, 다른 모델, 다른 종류의 질의 이미지로 그대로 옮길 수 없습니다. 어떤 점수가 동일 인물일 고정된 확률을 "뜻한다"는 주장은 과장입니다. 같은 숫자라도 질의의 품질에 따라 무게가 달라집니다.

인용.

starlikeness (2026). "유사도 점수 0.40은 무슨 뜻인가?"
얼굴 색인, 2026-08 스냅숏 (n=241,792 얼굴; 이름이 붙은 신원 2,333건).
https://starlikeness.com/ko/articles/what-similarity-score-means

관련 질문


기준값이 일하는 모습을 직접 볼 수 있습니다. 프레임을 올리고 얼굴 옆에 뜨는 점수를 읽어 보세요. 검출은 브라우저 안에서 돌아가고, 대조에는 잘라 낸 얼굴 영역만 전송되며, 원본은 기기를 떠나지 않습니다.