메뉴바로가기본문바로가기

동아사이언스

[주말N수학] 아기 얼굴로 바꿔주는 스냅챗, 알고 보면 '數냅챗'

통합검색

[주말N수학] 아기 얼굴로 바꿔주는 스냅챗, 알고 보면 '數냅챗'

2019.08.10 06:00
카메라에 미친 얼굴을 아기처럼 바꿔주는 ′아기필터′를 사용한 모습. 수학동아
카메라에 미친 얼굴을 아기처럼 바꿔주는 '아기필터'를 사용한 모습. 수학동아

스마트폰 카메라에 비친 얼굴을 아기처럼 바꿔주는 ‘아기 필터’가 화제입니다. 무척 신기해 보이지만, 알고 보면 새로운 기술이 아니라는 아기 필터. 내 얼굴을 귀여운 아기로 바꾸는 원리에도 '수학'이 들어 있습니다.

 

스냅챗에 관한 두 가지 오해

 

아기 필터로 유명해진 스냅챗은 페이스북 메신저처럼 사진이나 영상을 메시지와 함께 주고받는 메신저 앱(응용프로그램)으로, 2011년 미국 스탠퍼드대 학생이었던 에반 스피겔과 바비 머피, 레지 브라운이 만들었습니다.


이 셋은 ‘속마음을 터놓고 대화할 수 있는 메신저’를 만들기 위해 특별한 기능을 추가했습니다. 사용자의 설정에 따라 1~10초가 지나면 주고받은 메시지가 저절로 사라지는 ‘자동 삭제’ 기능입니다. 내용이 남아있지 않으니까 은밀한 이야기도 마음놓고 할 수 있어서 ‘제2의 페이스북’이라고 불릴 정도로 인기를 끌었습니다.


기왕이면 예쁘고 재밌는 사진이나 영상을 보낼 수 있도록 사진을 꾸미는 ‘필터’에도 신경을 썼습니다. 머리띠와 강아지 귀 같은 장식을 얹는 필터를 비롯해 수많은 필터가 있습니다. 그 중에서도 국내에서 화제가 됐던 것은 아기 필터입니다.

 

얼굴 각 부위의 위치를 찾으면 장식 스티커를 붙일 수 있고, 얼굴의 나이와 성별도 바꿀 수 있다. 김우현 기자 mnchoo@donga.com
얼굴 각 부위의 위치를 찾으면 장식 스티커를 붙일 수 있고, 얼굴의 나이와 성별도 바꿀 수 있다. 김우현 기자 mnchoo@donga.com

아기 필터는 얼굴 찾는 기술 활용의 좋은 예


얼굴을 순식간에 아기로 바꿔주는 아기 필터는 다른 필터에 없는 특별한 기술이 숨어있을 것 같지만, 사실 모든 필터에는 똑같은 기술이 쓰입니다. 바로 사진 또는 영상 속에서 얼굴의 윤곽선과 눈, 눈썹, 코, 입의 위치를 찾는 기술입니다. 얼굴의 각 부위를 찾을 수 있으면 장식을 적정한 위치에 얹거나 특정 부위의 크기와 그 부위 사이의 거리를 조정해 아기 얼굴처럼 보이게 만드는 것도 가능합니다. 


스냅챗뿐 아니라 ‘롤리캠’과 ‘스노우’ 등 우리가 아는 여러 앱들이 이 기술을 이용해 사진을 보정하고 재밌는 스티커를 붙일 수 있도록 서비스하고 있습니다. 롤리캠을 개발한 김은석 시어스랩 수석 개발자는 “방법의 차이는 있지만, 얼굴을 찾는 기술은 이미 잘 알려져 있다”며 “아기 필터는 그 기술을 다르게 활용한 것 뿐”이라고 말했습니다.


얼굴을 예쁘게 보정하려면 사람들이 어떤 얼굴을 예쁘다고 생각하는지 알아야 합니다. 그래서 예쁜 얼굴이나 어려보이는 얼굴의 특징도 분석합니다. 김 수석 개발자는 “설문조사를 하거나 SNS에서 추천을 많이 받은 얼굴 사진을 모아 이목구비의 비율을 분석한다”며 “이 비율의 평균을 구하면 요즘 사람들이 생각하는 예쁜 얼굴의 특징을 파악할 수 있다”고 말했습니다.  


얼굴을 찾는 기술은 계속 발전합니다. 계산양을 줄여야 스마트폰의 배터리가 덜 소모되고, 필터를 잘 적용하려면 얼굴의 위치를 최대한 정확하게 찾아야 하기 때문입니다. 

 

얼굴을 찾는 과정은 ‘인식’과 ‘지각’ 두 단계로 나뉩니다. 인식은 사진에서 얼굴의 구성 요소인 눈, 코, 입의 영역을 구분해 얼굴 영역을 찾는 과정이고, ‘지각’은 인식 단계에서 찾은 각 영역의 정확한 윤곽선을 찾는 과정입니다. 인식 또는 지각을 하는 알고리듬은 여러 가지가 있지만, 큰 원리는 비슷합니다. 


얼굴을 인식하는 방법 중 가장 잘 알려진 건 ‘비올라-존스 알고리듬’입니다. 이 알고리듬은 2001년 폴 비올라 매사추세츠공과대학교 컴퓨터과학과 교수와 마이클 존스 미쓰비시전기연구소 연구원이 만든 방법으로, 얼굴에서 특정 부위와 주변 영역의 밝기 차이를 이용해 얼굴의 구성 요소를 찾아냅니다. 예를 들어 눈 주위는 대부분 움푹 들어가 있어 눈의 위아래 영역보다 어둡고, 툭 튀어나온 코는 좌우의 세로 영역보다 밝습니다. 이런 특징을 토대로 4단계를 거쳐 얼굴의 각 부위를 찾아냅니다.

 

얼굴의 위치를 정확하게 찾으려면 되도록 많은 하르로 검증해야 합니다. 그런데 하르가 많고, 화질이 좋아 사진의 픽셀 수가 많으면 계산이 오래 걸립니다. 비올라와 존스는 계산양을 줄이기 위한 방법을 고민했는데, 그중 하나가 ‘인테그랄 이미지’입니다. 인테그랄 이미지는 특정 영역의 밝기 값의 합을 쉽게 구하기 위한 방법입니다. 픽셀의 첫 번째 칸부터 시작해 특정 크기의 사각형 영역을 잡았을 때 맨 오른쪽 아래 칸에 그 영역에 있는 수들의 합을 미리 계산(①)해서 써놓은 숫자표입니다. 인테그랄 이미지를 이용하면 하르가 돌아다니며 계산할 때 계산양을 줄일 수 있습니다(②).

 

 

얼굴 찾는 기술, 발전 가능성도 무궁무진 


이 같은 과정을 거쳐 얼굴을 지각하면 쉽게 필터를 적용할 수 있습니다. 예를 들어 안경을 씌우는 필터는 미리 만들어 놓은 안경을 눈의 위치에 맞춰 조정한 뒤 얹기만 하면 됩니다. 아기 필터도 비슷합니다. 윤곽선의 점들을 이으면 얼굴은 몇 개의 영역으로 나눠집니다.

 

아기 필터는 아기 얼굴의 특징에 맞게 각 점의 위치를 조정해 사진을 바꿉니다. 보통 아기 얼굴은 둥글고 이마가 얼굴의 반을 차지하며 눈이 크고 입술과 턱 길이가 짧다는 특징이 있습니다.이에 맞게 어떤 얼굴 사진이든 바꾸는 겁니다.


얼굴을 찾는 기술은 필터뿐 아니라 더 많은 곳에 활용될 예정입니다. 김 수석개발자는 “PC에서는 이목구비 뿐 아니라 피부의 질감까지 포착할 수 있고 3차원 정보도 지각할 수 있다”며 “성형 수술하면 얼굴이 어떻게 변할지 미리 확인하는 것도 가능하다”고 말했습니다. 

 

수학동아
수학동아

관련기사 

수학동아 8월호, 스냅챗? 알고 보면 ‘數’냅챗! 아기 얼굴 만드는 비결 

 

도움 김은섭(시어스랩 수석 개발자)

 

참고 엘레나 샤부로바 ‘Method for real-time video processing involving changing features of an object in the video’, 쯔이 커 ‘A Computational Approach to Finding Facial Patterns of a Babyface’

이 기사가 괜찮으셨나요? 메일로 더 많은 기사를 받아보세요!

댓글 0

2 + 4 = 새로고침
###
    과학기술과 관련된 분야에서 소개할 만한 재미있는 이야기, 고발 소재 등이 있으면 주저하지 마시고, 알려주세요. 제보하기

    관련 태그 뉴스