iBetter Books
수정

감정 인식 라이브러리들을 만지기 전에, 그들이 공통으로 깔고 있는 전제를 먼저 알아야 합니다. 대부분의 표정 분류기는 감정을 일곱 가지로 나눕니다. 이 7분류와, 그 바탕이 된 FER2013 데이터셋을 이해하면, 왜 감정 인식의 정확도에 천장이 있는지가 자연스럽게 보입니다.

7가지 기본 표정

표정 분류기들이 쓰는 일곱 가지는 심리학자 폴 에크먼이 제안한 기본 감정에서 왔습니다. 문화와 무관하게 보편적이라고 본 표정들입니다.

분류 영어
분노 angry
혐오 disgust
공포 fear
행복 happy
슬픔 sad
놀람 surprise
무표정 neutral

이 PART에서 다룰 DeepFace는 정확히 이 7가지를 출력합니다. EmotiEffLib는 여기에 경멸(contempt)을 더한 8가지를 쓰기도 합니다. 분류기는 입력 얼굴을 이 정해진 항목 중 하나(또는 각 항목의 확률)로 답합니다.

FER2013 — 표정 분류의 출발점

오늘날 많은 표정 분류기의 뿌리에는 FER2013이라는 데이터셋이 있습니다. 2013년 공개된 이 데이터셋은 약 3만 5천 장의 얼굴 이미지에 위 7가지 표정 라벨을 붙인 것으로, 표정 인식 연구의 표준 벤치마크가 되었습니다.

그런데 FER2013에는 태생적 한계가 있습니다.

  • 저해상도: 이미지가 48×48 픽셀 흑백입니다. 미세한 표정 변화를 담기엔 거칠습니다.
  • 라벨 잡음: 사람이 붙인 라벨이라 같은 사진을 두고도 "슬픔인지 무표정인지" 의견이 갈리는 경우가 많습니다.
  • 불균형: 행복은 사진이 많고 혐오는 적어, 적은 분류는 잘 못 맞힙니다.

이 한계들이 그대로 후속 모델로 이어집니다. 사람조차 헷갈리는 라벨로 학습했으니, 모델의 정확도에도 천장이 생깁니다. 실제로 FER2013에서 사람의 정답률조차 약 65% 수준으로 알려져 있습니다. 이것이 6장에서 다룰 "감정 인식을 과신하면 안 되는" 이유의 출발점입니다.

분류의 본질적 어려움

표정을 일곱 칸에 넣는 일 자체가 본래 어렵습니다. 표정은 연속적이고 미묘한데, 그것을 일곱 개의 상자에 강제로 나눠 담기 때문입니다. 살짝 미소 띤 무표정은 happy일까 neutral일까요. 놀라며 두려워하는 얼굴은 surprise일까 fear일까요. 경계에 걸친 표정이 수두룩합니다.

flowchart LR A[연속적·미묘한 표정] --> B[7개 상자에 강제 분류] B --> C[경계 표정에서 혼동]

그래서 분류 결과는 "확실한 답"이 아니라 "가장 그럴듯한 추정"으로 받아들여야 합니다. 이 점은 다음 장부터 라이브러리를 쓸 때 늘 염두에 두어야 할 태도입니다.

실무 팁. 감정 분류 결과를 쓸 때는 1등 표정만 보지 말고 확률 분포 전체를 보세요. happy 60%·neutral 35%처럼 1·2등이 비등하면, "확실히 행복"이 아니라 "애매하다"는 신호입니다. 단일 표정으로 단정하는 대신, 상위 두세 개의 확률을 함께 보고 애매한 경우를 따로 처리하면 시스템이 훨씬 견고해집니다.

이 장에서 기억할 것

표정 분류기는 보통 에크먼의 7가지 기본 표정(분노·혐오·공포·행복·슬픔·놀람·무표정)으로 답하며, 그 뿌리에는 저해상도·라벨 잡음·불균형이라는 한계를 지닌 FER2013이 있습니다. 표정을 일곱 칸에 강제로 나누는 일 자체가 어려워, 결과는 확정이 아니라 추정입니다. 확률 분포 전체를 보는 태도가 중요합니다. 다음 장에서는 이 7분류를 한 줄로 출력하는 DeepFace analyze부터 실제로 써 봅니다.