수백만 명 중 같은 인물 찾아내기.. 진화하는 얼굴 인식 알고리즘

입력 2021. 1. 27. 17:04
음성재생 설정
번역beta Translated by kaka i
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 가장 빠른 뉴스가 있고 다양한 정보, 쌍방향 소통이 숨쉬는 다음뉴스를 만나보세요. 다음뉴스는 국내외 주요이슈와 실시간 속보, 문화생활 및 다양한 분야의 뉴스를 입체적으로 전달하고 있습니다.

[AI 이야기]

특징 벡터 추출해 딥러닝 모델로 훈련…촬영 각도·조명 관계없이 인식 정확도 고도화 



[한경비즈니스 칼럼=카카오엔터프라이즈 AI Lab 이수경·김용현·노명철·신종주·카카오 박원표·카카오엔터프라이즈 기술블로그 테크앤(Tech&) ] 얼굴 인식 기술은 지난 수십 년간 컴퓨터 비전(computer vision)의 주요 연구 분야 중 하나로 자리매김하고 있다. [그림1]처럼 시스템에 입력된 두 이미지 속 인물 간의 동일인 여부를 검증하거나 이미지 속 인물이 내부 데이터베이스에 미리 저장된 인물 중 누구와 가장 유사한지를 식별하는 데 이 기술이 널리 활용되고 있다.

다만 얼굴 인식 모델의 훈련 또는 추론 단계에서 사진 속 얼굴 위치가 제각기 다르거나 촬영 각도가 다르면 얼굴 인식 정확도가 낮아질 수 있다.

따라서 사진에서 얼굴 영역을 찾아 동일한 형태의 정면 얼굴을 추출하는 전처리 과정이 선행돼야 한다. 일반적인 전처리 과정은 다음과 같다. ①시스템에 입력된 이미지에서 얼굴 영역을 찾아(face detection : 얼굴 검출) ②눈과 코 등 얼굴의 특징을 나타내는 점을 찾는다(face alignment : 얼굴 정렬). ③이 특징점을 이용해 얼굴 영역을 동일한 형태와 크기로 변경한다(normalization : 정규화).

얼굴 인식 모델은 수만 명에 달하는 인물에게서 획득한 수백만 장의 정규화한 얼굴 이미지에서 인물을 잘 구분하는 함축된 얼굴 표현인 특징 벡터를 학습한다. 그 결과 최종 얼굴 인식 모델은 입력된 이미지의 특징 벡터 간 유사도를 비교하는 방식으로 검증 또는 식별을 수행할 수 있게 된다.


얼굴 인식 모델의 손실 함수 연구 트렌드

딥러닝 모델의 훈련(가중치 업데이트) 과정은 다음과 같다[그림3]. 먼저 순전파(forward propagation : 입력층-은닉층-출력층을 거쳐 예측 값을 내는 방법) 과정에서 데이터를 입력받은 모델은 무작위로 초기화된 가중치를 이용해 예측 값을 출력한다. 그다음 예측 값과 정답 사이의 차이를 정의하는 손실(loss) 함수를 이용해 입력에 대한 손실을 계산한다. 다음으로 출력층에서 입력층으로 거슬러 올라가는 역전파(backward propagation : 출력층-은닉층-입력층으로 거슬러 올라가며 가중치를 업데이트하는 방법) 과정에서 최적화 알고리즘은 기울기 값을 이용해 앞서 구한 손실을 최소화하는 방향으로 모델의 가중치 값을 수정한다. 딥러닝 모델은 이 과정을 여러 번 반복해 데이터를 점진적으로 학습하게 된다.

얼굴 인식을 학습하기 위한 손실 함수는 소프트맥스 손실 함수, 거리 기반 손실 함수, 앵귤러 마진 기반 손실 함수 등 크게 세 종류로 나눠 볼 수 있다. 이제부터 이 손실 함수를 하나씩 알아본다.

1. 소프트맥스 손실 함수

일반 객체 분류 모델인 알렉스넷(AlexNet)과 레스넷(ResNet) 그리고 초창기 얼굴 인식 모델인 딥페이스(DeepFace)와 딥아이디(DeepID)의 마지막 출력층은 전 단계에서 추출된 특징 벡터를 N개의 범주로 분류하기 위해 배치된 완전 연결층과 소프트맥스(softmax) 함수로 구성돼 있다. 이후 교차 엔트로피가 소프트맥스 확률 분포와 정답 분포 사이 오차를 계산한다. 소프트맥스 확률 값을 이용한다는 점에서 이 손실 함수를 소프트맥스 손실 함수라고도 부른다.

소프트맥스 손실 값을 최소화하는 학습을 통해 모델은 특징 공간에 동일인의 두 특징 벡터(intra-class)를 더 가깝게, 비동일인의 두 특징 벡터(inter-class)는 더 멀게 표현할 수 있게 된다. 하지만 단순히 소프트맥스 함수만을 사용한 손실 함수로는 수만 명에 달하는 인물의 특징 공간을 효율적으로 학습하기가 어렵다. 전체적인 최적화를 고려하지 못하고 국부적인 최적 지점으로 쉽게 수렴할 수 있기 때문이다. 이에 따라 추론 단계에서 마주하는 학습하지 않은 새로운 얼굴 이미지의 인식 성능은 낮을 수 있다.

2. 거리 기반 손실 함수

거리 기반의 손실 함수 또한 앞서 설명한 소프트맥스 손실 함수처럼 특징 공간에 동일인의 두 특징 벡터를 더 가깝게, 비동일인의 두 특징 벡터는 더 멀게 표현하는 학습에 활용된다. 차이점은 특징 벡터 간의 거리를 학습에 직접 활용하는 부분이다.

하지만 2017년을 기점으로 얼굴 인식 관련 딥러닝 모델에서는 거리 기반 손실 함수를 잘 사용하지 않는 추세다. 트리플렛(triplet)을 구성하는 방식에 따라 성능이 크게 달라지기 때문이다. 특히 범주 수가 많을수록 효과적인 트리플렛을 구성하기도 쉽지 않다. 많은 방법이 고안됐음에도 불구하고 얼굴 인식처럼 분류해야 할 범주가 많은 상황에서는 효과적인 트리플렛을 구성하는 데 여전히 어려움이 있다.

또한 컴퓨팅 비용도 상대적으로 더 많이 소모된다. 일반적으로 이 손실 함수는 범주의 수가 수십~수백 개 수준일 때 효과적으로 동작하지만 수천 개 이상의 범주가 존재할 때는 잘 동작하지 않는다. 기존 대비 2~4배 이상 배치 크기(batch size)를 키움으로써 성능 저하를 일부 극복할 수 있지만 수만 명에 달하는 인물을 다뤄야 하는 얼굴 인식 모델에서는 그 역시 쉽지 않은 일이다.

3. 앵귤러 마진 기반 손실 함수

스피어페이스(SphereFace)에서 코스페이스(CosFace)와 아크페이스(ArcFace)로 이어지는 최근의 얼굴 인식 연구는 앵귤러 마진을 추가한 소프트맥스 기반 손실 함수를 이용해 서로 다른 인물 간 거리를 충분히 넓히는 방향으로 진행되고 있다.

이처럼 손실 함수가 새롭게 제안되고 있음에도 불구하고 얼굴 인식 모델에게 서로 다른 인물의 얼굴을 구분하는 최적의 특징 공간을 생성하는 방법을 가르치기는 여전히 쉽지 않다. 카카오엔터프라이즈 AI랩은 기존 대부분의 손실 함수에 대한 얼굴 인식 연구로는 수만 명의 얼굴을 구분하는 충분한 효과를 기대하기가 어렵다고 판단했다. 알렛스넷·VGGNet·레스넷처럼 수십에서 수천 개의 범주를 분류하는 데 최적화된 범용 모델을 그대로 사용해서는 수만 명의 얼굴을 효과적으로 처리하는 데 적합하지 않다고 본 것이다. 선행 연구가 최대 수만 개의 범주를 효과적으로 분류하려는 목적에서 새로운 손실 함수를 도입했듯이 AI랩은 이를 위한 특별한 인식 모델 구조를 고민했다.

AI랩은 인간의 얼굴에 각자 고유의 특징이 있으면서도 동시에 공통적인 특징을 가지고 있다는 점을 면밀히 관찰했다. 실제로 얼굴의 공통적인 특징을 모아 보는 그룹화 개념은 현실에서도 누군가를 특정하는 데 유용한 기법으로 활용되고 있다. 예를 들어 검은 머리와 붉은 수염을 가진 남자와 같이 주된 특징을 조합한 몽타주 표현처럼 말이다.

최종적으로 AI랩은 얼굴의 유사성을 그룹화해 표현하는 특징 벡터를 추출하는 새로운 모델 구조인 그룹페이스(GroupFace)를 제안했다. 그룹페이스는 다양한 얼굴 인식 모델에 적용할 수 있다. 얼굴 인식 분야 대표적인 9개 공개 데이터 세트를 대상으로 테스트해 본 결과 그룹페이스는 모든 데이터 세트에 대해 얼굴 인식 성능을 높였다. 특히 IJB 벤치마크에서는 그 정확도를 최대 10%포인트 가까이 끌어올렸다.


[본 기사는 한경비즈니스 제 1313호(2021.01.25 ~ 2021.01.31) 기사입니다.]

Copyright © 한경비즈니스. 무단전재 및 재배포 금지.

이 기사에 대해 어떻게 생각하시나요?