핵심 요약
규칙을 짜는 게 아니라 예시로 배웁니다
"눈이 크면 강아지상" 같은 규칙을 사람이 넣지 않습니다. 예시 사진을 보고 모델이 경계를 스스로 만듭니다.
네 단계 중 첫 단계가 실패하면 끝입니다
얼굴 영역을 못 찾으면 이후 단계가 진행되지 않습니다. 오류의 상당수가 여기서 생깁니다.
이 서비스는 브라우저에서 계산합니다
모델 파일을 내려받아 기기 안에서 돌리므로, 업로드한 사진이 서버로 전송되지 않습니다.
사진 한 장이 거치는 4단계
컴퓨터 비전은 이미지를 사람처럼 이해하도록 만드는 기술 분야입니다. 얼굴 분석은 대체로 아래 순서를 따릅니다.
1. 얼굴 감지 (Face Detection)
이미지 전체에서 얼굴이 있는 영역을 찾아냅니다. 이 단계에서 얼굴을 못 찾으면 이후가 진행되지 않습니다. 마스크나 심한 역광에서 분석이 실패하는 이유가 대부분 여기에 있습니다.
2. 특징점 추출 (Landmark Detection)
눈, 코, 입, 턱선 같은 기준점의 위치와 형태를 잡습니다. 고개가 돌아가 있거나 안경이 눈을 가리면 이 좌표가 흔들립니다.
3. 특징 분석 (Feature Analysis)
추출된 기준점들 사이의 비율과 형태를 수치로 변환합니다. 촬영 거리가 가까우면 이 비율 자체가 왜곡되어 들어갑니다.
4. 분류 (Classification)
수치화된 특징을 학습된 항목들과 비교해 각 항목에 대한 점수를 냅니다. 이 점수를 합이 100%가 되도록 변환한 것이 결과 화면의 확률입니다.
결과가 이상하게 나올 때는 4단계가 아니라 1~2단계를 의심하는 편이 정확합니다. 얼굴을 제대로 못 잡았다면 그 뒤 계산은 모두 어긋난 입력 위에서 이뤄진 것입니다.
왜 딥러닝을 쓰나
예전에는 사람이 직접 "눈과 눈 사이 거리" 같은 특징을 정의해 넣었습니다. 지금은 모델이 예시를 보고 어떤 특징이 중요한지 스스로 찾아냅니다. 이 차이가 정확도를 갈랐습니다.
| 항목 | 전통적 방법 | 딥러닝 방법 |
|---|---|---|
| 특징 정의 | 사람이 수동으로 지정 | 모델이 학습으로 자동 추출 |
| 전처리 | 많은 보정 작업 필요 | 최소한의 정규화 |
| 환경 변화 | 조명·각도에 민감 | 상대적으로 잘 적응 |
| 정확도 | 제한적 | 데이터가 충분하면 높음 |
| 필요한 데이터 | 적어도 동작 | 많을수록 유리 |
| 결과 설명 | 규칙을 따라가면 설명 가능 | 왜 그렇게 분류했는지 설명이 어려움 |
Teachable Machine과 성별별 모델
이 서비스의 분류 모델은 Google Teachable Machine으로 학습시켰습니다. 대규모 연구용 도구는 아니지만, 브라우저에서 바로 돌아가는 가벼운 이미지 분류기를 만들기에는 적합합니다.
- 적은 양의 데이터로도 동작하고, 학습 결과를 웹에서 바로 실행할 수 있습니다.
- 대신 모델을 가볍게 유지해야 하므로 대형 서버 모델만큼의 정확도는 기대하기 어렵습니다.
- 남성과 여성에 각각 별도의 모델을 학습시켜 사용합니다. 하나로 합치는 것보다 분류 경계가 선명해지기 때문입니다.
- 그래서 테스트 시작 전에 성별을 고르는 절차가 있습니다. 잘못 고르면 다른 모델이 적용되어 결과가 달라집니다.
브라우저 안에서 계산한다는 것
이 서비스는 학습된 모델 파일을 브라우저가 내려받은 뒤, 계산을 기기 안에서 수행합니다. 업로드한 이미지는 어디로도 전송되지 않습니다.
이미지가 전송되지 않음
서버에 사진이 저장될 일이 없으므로 보관 기간이나 삭제 요청 같은 문제가 발생하지 않습니다.
네트워크 지연이 없음
모델을 한 번 받고 나면 분석 자체는 통신 없이 진행되어 결과가 빠르게 나옵니다.
첫 로딩이 느림
모델과 가중치 파일을 내려받아야 해서 처음 들어올 때 몇 초가 걸립니다. 온디바이스 방식의 대가입니다.
기기 성능을 탑니다
오래된 기기에서는 분석이 느려질 수 있습니다. 서버에서 계산하는 방식은 이 편차가 없습니다.
현재 기술의 한계
정확도를 높이는 방법은 알려져 있지만, 완전히 해결되지 않은 부분도 분명히 있습니다.
- 조명과 각도에 여전히 민감합니다. 같은 사람이라도 촬영 조건이 바뀌면 결과가 흔들립니다.
- 학습 데이터에 없는 유형의 얼굴이 들어오면 "모르겠다"고 답하지 못하고, 가장 가까운 항목을 고릅니다.
- 학습 데이터의 구성이 치우쳐 있으면 특정 연령대나 인상에서 정확도가 떨어집니다.
- 딥러닝 모델은 왜 그렇게 분류했는지 설명하기 어렵습니다. 결과에 대한 근거를 제시하기 힘든 구조입니다.
이런 한계 때문에 동물상 분류 결과는 재미의 범위 안에서 보시는 편이 맞습니다. 성격이나 능력과는 아무런 관계가 없고, 그렇게 쓰이도록 만들어지지도 않았습니다.
자주 묻는 질문
AI가 얼굴을 못 찾는다고 나오는데 왜 그런가요?
1단계인 얼굴 감지에서 실패한 경우입니다. 얼굴이 화면에서 너무 작거나, 심한 역광이거나, 마스크·선글라스로 가려져 있을 때 자주 발생합니다. 얼굴이 화면의 절반 이상 차지하도록 정면에서 밝게 찍은 사진으로 다시 시도해 보세요.
확률이 100%가 안 나오는 이유는 뭔가요?
분류 모델은 학습된 모든 항목에 점수를 나눠 배분하고, 그 합이 100%가 되도록 변환합니다. 사람 얼굴이 한 유형에만 딱 맞는 경우는 드물어서 대개 두세 항목에 걸쳐 분포합니다.
학습 데이터를 늘리면 정확해지나요?
일반적으로는 그렇습니다. 다만 양보다 구성이 중요합니다. 특정 연령대나 촬영 조건에 치우친 데이터를 많이 넣으면 그 범위 밖에서 오히려 정확도가 떨어질 수 있습니다.
제 사진이 학습에 쓰이나요?
쓰이지 않습니다. 이미지가 서버로 전송되지 않으므로 수집 자체가 이뤄지지 않습니다. 모델은 미리 학습된 상태로 배포되며, 사용 중에 추가 학습되지 않습니다.