“혹시 겨울왕국의 엘…, 엘사?”
매끈한 피부, 커다란 눈, 진한 눈썹이 특징인 애니메이션의 주인공처럼 사진을 찍는 게 인기예요. 스마트폰에서 ‘애니메이션 필터’ 기능이 있는 카메라 앱을 켜고 얼굴을 찍으면, 누구나 애니메이션 속 주인공으로 변신할 수 있지요. 그런데 그 원리에는 수학이 숨어 있어요.
수학 탐정, 나와 닮은 캐릭터를 찾아줘!
애니메이션 필터를 장착한 앱은 여러 개 있어요. 앱마다 얼굴을 바꿔주는 캐릭터 스타일이 다르지만, 애니메이션 필터 기술에는 비슷한 원리가 적용돼 요. 바로 사진에서 눈, 코, 입을 찾은 뒤, 그중 한두 개의 특징을 골라 나와 닮은 애니메이션 캐릭터의 특징으로 바꾸는 거예요. 이때 ‘숫자’가 활용돼요.
컴퓨터는 사진을 숫자로 인식해요. 사진은 ‘픽셀’이라고 불리는 작은 정사각형으로 이뤄져 있어요. 사진을 확대해 보면 각각의 정사각형에 색이 칠해져 있어요. 이것들이 모여 우리가 찍은 사진의 모습을 이루는 거예요.
색깔은 숫자로 표현할 수 있어요. 여기서는 사진을 흑백으로 바꾼 뒤, 검정색부터 흰색까지 미세하게 다른 색들을 0부터 255까지 256가지 숫자로 나타낸 것은 이용해요. 사진을 흑백으로 바꾸는 이유는 컴퓨터가 사진을 쉽게 인식하기 위해서예요. 픽셀마다 색이 다르면 각각의 색을 숫자로 나타내기 위해 더 많은 숫자가 필요하겠지요? 하지만 흑백으로 바꾸면 얼마나 어두운지, 밝은지만 판단해 숫자를 보여주면 돼요. 컴퓨터가 인식해야 할 숫자가 그만큼 적어지는 것이지요.
핵심기술1. 눈·코·입은 어디?
이제 본격적으로 눈, 코, 입을 찾아봅시다. 핵심 단서는 ‘숫자’예요! 눈을 찾는다고 생각해 볼까요? 눈 부분을 숫자로 나타내면 눈동자가 있는 가운데는 0, 20처럼 비교적 작은 숫자고, 흰자위 부분인 그 주변은 140, 160 같은 큰 숫자로 둘러싸여 있을 거예요. 컴퓨터는 사진을 숫자로 나타낸 값을 쭉 살펴보며 이런 부분을 찾아요. 그리고 이 영역을 ‘눈’이라고 인식해요.
사실 사람의 얼굴은 크게 보면 다 똑같아요. 이마가 있고 그 아래에 눈이 양쪽에 있어요. 두 눈 가운데 코가 아래 방향으로 이어지고 입이 위치하지요. 모양이나 크기는 사람마다 다르지만 사람의 얼굴이 가진 주요 특성은 비슷해요. 따라서 컴퓨터에 미리 정보를 입력해 놓으면 쉽게 눈, 코, 입을 찾을 수 있지요.
핵심기술2. 점 콕 찍어 생김새 파악하기
다음으로 눈, 코, 입이 어떻게 생겼는지 파악해야 해요. 핵심은 점이에요! 눈, 코, 입의 특징을 나타낼 수 있는 곳에 점을 찍어요.
예를 들어, 길쭉한 콧대는 주변보다 색이 밝아요. 그래서 기다란 모양의 영역이 주변보다 밝으면 해당 영역을 콧대라고 파악하고 그 윤곽선을 따라 점을 찍는 거예요. 일반적으로 얼굴당 수백 개의 점을 찍어요.
핵심기술3. 점 이어 얼굴 특징 나타내기
이제 얼굴에 생기를 불어넣을 차례예요. 이마가 나온 사람, 광대뼈가 튀어나온 사람, 눈이 들어간 사람 등 눈, 코, 입의 모양을 비롯한 다양한 얼굴의 특징이 있어요. 그걸 컴퓨터에게 알려주기 위해 찍은 점을 선으로 이어 그물망 모양으로 그려요. 이 그물망에는 어디가 튀어나왔고 훅 들어갔는지 등의 입체 정보가 담겨 있어요.
얼굴 그물망을 통해 얼굴 주요 부위의 깊이까지 파악할 수 있는 거예요. 즉 얼굴의 특징을 좀 더 자세히 분석할 수 있어요.
핵심기술4. 닮은 얼굴로 바꾸기
앞에서 얻은 정보를 바탕으로 컴퓨터는 나와 가장 닮은 애니메이션 캐릭터 얼굴을 찾아요. 그리고 얼굴의 주요 부위를 그 캐릭터의 것으로 비슷하게 바꾼답니다. 나와 공통점이 많은 캐릭터겠지요?
예를 들어 입꼬리의 끝이 아래 입술의 위치보다 2㎝ 이상 올라가 있다면 입꼬리의 끝이 올라간 캐릭터의 입으로 바꿔줘요. 그런데 얼굴형, 목주름, 머리 스타일, 표정, 눈, 코, 입의 위치 등은 거의 바뀌지 않기 때문에 나와 닮은 점이 더욱 많게 느껴지지요.
나와 가장 닮은 캐릭터를 어떻게 찾냐고요? 앱에 적용된 인공지능이 기존에 수많은 애니메이션 캐릭터들의 얼굴 특징을 학습해 둔 덕분에 쉽게 찾을 수 있어요. 앱마다 캐릭터로 바뀐 나의 얼굴이 조금씩 다른 이유는 학습한 애니메이션 캐릭터들이 다르기 때문이에요.