Ⅴ. 감각과 인지 – 4. 얼굴 인식이란 무엇인가요?

1. 얼굴 인식

얼굴 인식이란 무엇인가요?

오랜만에 만난 친구의 이름이 갑자기 기억나지 않는다면? 반가운 친구의 이름을 불러주고 싶은데 참 난감하겠지요. 하지만 누구나 그럴 수 있죠. 모든 사람을 기억할 수는 없으니까요. 분명히 아는 얼굴인데 이름이 기억나지 않는다면 그 사람이 내가 아는 사람인지 어떻게 알 수 있을까요?

우리는 하루에도 수많은 사람들을 봅니다. 얼굴을 보고 그 사람이 누구인지 알아내기 위해서 여러분은 아마 자기도 모르는 사이에 나름대로의 전략을 사용했을 것입니다. 사람을 알아보기 위한 이 전략은 각자 비슷할 수도 있고 다를 수도 있을 것입니다. 여러분은 사람을 잘 알아보기 위해 주로 무엇을 살펴보나요?

인공지능으로도 사람의 얼굴을 알아맞힐 수 있습니다. 얼굴 인식(Face Recognition) 기술은 컴퓨터에게 사람의 얼굴을 보여주고 가지고 있는 여러 사진과 비교하여 가장 비슷한 사람을 맞추는 것입니다. 그러면 얼굴 인식 기술은 어떻게 사용되고 있을까요?

Sg0201, CC BY-SA 4.0 , via Wikimedia Commons
이미 많은 분야에서 얼굴 인식 기술을 활용하고 있습니다. 스마트폰을 슬쩍 쳐다보는 것만으로 잠금을 해제하는 것은 여러분도 그리 놀랍지는 않을 것입니다. 결제를 위해 사용하기도 합니다. 스마트폰 결제 시스템은 많은 사람들이 이용하고 있습니다. 덕분에 두꺼운 지갑을 들고 다니던 불편함에서 벗어날 수 있게 되었죠.
공공 부문에서도 얼굴 인식 기술이 도입되고 있습니다. 미국 애틀랜타 공항에서는 얼굴 인식 기술을 사용해 비행기를 탈 준비를 빠르게 마칠 수 있게 하였고 중국 선전시에서는 얼굴 스캔으로 지하철을 탈 수 있는 시스템이 있다고 합니다. 국내 대기업에서는 본사 출입문에 얼굴 인식 출입 서비스를 활용하고 있다고 하네요. 그 외에 현상 수배자를 찾기 위해 범죄 용의자의 얼굴을 탐지하기도 하고, 자동차를 운전할 때 운전자의 얼굴을 인식하여 졸음 운전을 방지하는 데 활용할 예정이라고 합니다.

얼굴 인식 기술은 많은 발전을 거듭해 왔고 계속 발전하고 있습니다. 현재 상용화되어 많이 활용하고 있는 기술은 ‘협력 시스템’을 기반으로 합니다. 정해진 거리에서 적절한 밝기를 유지하여 카메라를 똑바로 바라보고 찍은 이미지를 데이터베이스에 저장된 이미지와 대조하는 방식입니다. 이 방식은 출입국 심사 등 보안이 필요한 곳에서 개인의 신원을 확인해야 하는 경우에 유용하게 사용할 수 있습니다.

이와 더불어 아직 상용화 단계는 아니지만 빠르게 발전하고 있는 기술은 ‘비협력 시스템’입니다. 많은 사람들 속에서 특정 얼굴을 인식하는 방식으로 밝기와 얼굴 각도 모두 제각각인 상황에서 안경, 스카프, 모자를 착용했거나 움직이는 사람들을 인식하는 것입니다.

 

얼굴 인식은 이미지를 활용하는 기술이므로 먼저 인식할 사람의 얼굴을 이미지로 입력해야 합니다. 카메라 성능이 좋아져서 얼굴 인식에 사용할 이미지의 화질도 더욱 선명해지고 있습니다. 그렇다면 이 이미지로 어떻게 사람을 구별할 수 있을까요?

촬영한 이미지를 데이터베이스에 저장된 이미지와 단순하게 비교하면 배경, 얼굴의 각도, 주위의 밝기 등 변수가 너무 많이 발생할 것입니다. 같은 장소에서 찍은 사진도 시간, 찍는 위치, 날씨 등에 따라 매번 다른 사진이 되기 마련이죠. 따라서 얼굴 인식을 위해 이미지에서 ‘얼굴’ 데이터를 골라내야 합니다. 또한 얼굴 데이터는 컴퓨터가 이해할 수 있도록 숫자로 변환해 주어야 하지요.

사람의 얼굴을 하나의 복잡한 입체 도형이라고 생각해 봅시다. 여러분의 얼굴에는 다른 사람과는 구별되는 특징이 있겠지요. 예를 들면 얼굴의 모양이나 눈 사이의 거리 같은 것들입니다. 컴퓨터는 이러한 얼굴의 특징을 숫자로 나타내고 계산합니다. 사람의 얼굴이 여러 개의 숫자 값이 되는 것입니다.

People vector created by gstudioimagen - www.freepik.com

특정한 한 사람의 얼굴만 구별할 수 있게 하려면 컴퓨터에 그 사람의 얼굴만 잔뜩 입력해서 학습시켜주면 되겠지요. 이를 기계학습(Machine Learning:머신러닝)이라고 합니다. 기계학습에서는 반복적으로 더 많이 학습시킬수록 더욱 정확하게 그 사람의 얼굴을 찾아낼 수 있습니다.

하지만 우리에게 필요한 얼굴 인식 기술은 많은 사람들 중에서 어떤 사람의 얼굴인지 알아내야 합니다. 이를 위해 딥러닝(Deep Learning)을 활용할 수 있습니다. 얼굴 인식에 어떤 알고리즘을 사용하느냐에 따라 상황별로 정확도가 달라질 수 있는데 여러분이 각각 얼굴을 인식하는 전략이 다른 것과 비슷하다고 생각하면 됩니다. 대표적으로 CNN(Convolutional Neural Network:합성곱신경망)이라고 하는 인공신경망을 통해 이미지에서 주요 특징만을 골라내어 비교하는 OpenCV가 있습니다.

딥러닝 알고리즘으로 얼굴을 인식하기 위해 크게 4단계의 과정을 거칩니다.

 

1. 감지하기(Detection) : 이미지에서 얼굴이 어디 있는지 찾습니다. 배경이나 옷 등 얼굴과 상관없는 부분은 무시하고 얼굴 부분에 초점을 맞추는 단계입니다.

2. 정렬하기(Alignment) : 눈, 코, 입술, 턱선 등 얼굴의 각 특징적인 부분을 찾아내고 표시합니다. 여기서 표시한 부분은 그 사람만의 고유한 데이터로 다른 사람과 구별 됩니다.

3. 일반화하기(Normalization) : 가지고 있는 데이터와 비교하기 위해 이미지를 비슷한 구도로 바꾸는 작업입니다. 예를 들어 비스듬하게 찍은 이미지의 경우 미리 데이터에 저장된 정면을 보는 이미지와 비교할 수 있도록 정면을 보는 구도로 바꿉니다.

4. 인식하기(Recognition) : 이미지에서 찾아낸 특징적인 부분을 알고리즘을 거쳐 숫자 형태로 바꾸고 이를 데이터베이스의 값과 비교하여 어떤 사람의 얼굴인지 확률로 계산합니다.