(77) 컴퓨터의 물체 인식
[과학과 놀자] 얼굴로 스마트폰 잠금해제…어떻게 감지·구별하나
최근 휴대폰엔 암호나 지문 대신 얼굴을 인식해 잠금을 해제하는 페이스 아이디(Face ID) 기능이 있다. 또 많은 사람이 본인의 모습을 특색 있게 남기기 위해 눈, 코, 입의 위치를 인식하는 앱을 사용하기도 한다. 이러한 작업을 위해서는 컴퓨터, 즉 기계가 이미지 정보를 인식해 얼굴 영역을 파악하고 또 그에 더해 눈, 코, 입의 위치를 파악해야 한다.

컴퓨터는 어떻게 우리 얼굴을 감지하는 것일까? 확실하게 말할 수 있는 것은 사람이 물체를 인식하는 것과 컴퓨터가 물체를 인식하는 방식은 다르다는 것이다.

컴퓨터는 사진이나 이미지를 디지털화된 숫자로 인식한다. 조금 더 구체적으로 말하면, 우리가 가진 디지털 이미지는 이미지의 크기만한 행렬로 표현되며 (여기서 이미지의 크기란 우리가 아는 해상도이다), 각각의 포인트는 픽셀이라고 불린다. 이 픽셀은 총 3개의 RGB(Red, Green, Blue)값을 갖는다. 즉 컴퓨터는 이미지를 3차원 배열(가로×세로×RGB)로 인식한다.

따라서 컴퓨터를 사람이 인식하는 것처럼 픽셀 수준이 아니라 영역 위주로 정보를 인식하게 하려면 추가적인 계산이나 방법을 필요로 하게 되는데, 이렇게 컴퓨터가 물체나 사람을 인식하고 이미지 속 상황을 해석해 내는 것을 컴퓨터 비전이라고 한다. 컴퓨터 비전 세부 태스크들은 크게 객체 분류(image classification), 객체 탐지(object detection), 의미론적 분할(semantic segmentation)로 나눌 수 있다.

객체 분류란 보통 이미지 인식이라고도 불리며, 이미지 속에 있는 객체를 인식하여 그 객체가 어떤 클래스에 포함되는지를 파악하는 기술이다. 컴퓨터 비전 영역에서 가장 기초적인 분야다. 예를 들어 비행기 사진을 입력하였을 때 이것이 비행기 클래스에 포함될 확률이 높다는 결과를 내놓는 것을 말하는데, 그림과 같이 사진 중앙에 물체가 하나만 있을 때 그 물체의 클래스를 알아내는 것이다.

객체 탐지는 앞서 설명한 객체 분류에서 한 단계 더 나아가서 이미지 안에 존재하는 객체가 무엇인지 알아냄과 동시에 그것의 위치도 파악해 내는 것이다. 보통 네모난 경계 상자의 위치 좌표로 물체의 위치를 대략적으로 표시한다. 또 목적에 따라서 특정한 객체만 식별하게 할 수도 있고, 객체 분류와는 다르게 여러 개의 물체를 식별하고 위치를 파악해내게 할 수도 있는 기술을 말한다.

의미론적 분할은 객체 탐지에서 더 나아가 이제는 객체의 위치를 네모난 경계 상자로 대략적으로 파악하는 것이 아니라 정확히 그 객체의 경계를 파악하여 객체의 영역을 확실하게 인식하는 것이다. 이미지의 픽셀들 사이에서 같은 의미를 가진 것들을 묶어서 영역으로 표시하기에 의미론적 분할이라고 부른다.

앞서 설명한 태스크들을 컴퓨터가 할 수 있게 하기 위해 인공지능(딥러닝)을 활용할 수 있다. 딥러닝 네트워크를 각각의 태스크를 해낼 수 있게 하려면 네트워크에 어떻게 해당 태스크를 할 수 있는지 훈련을 시켜야 한다. 이러한 훈련은 보통 다양한 학습 데이터를 네트워크에 보여주고 네트워크의 출력이 점점 더 해당 태스크의 정답과 가까워지게 학습을 시키는 것이다. 따라서 태스크에 따라서 적절한 학습 데이터와 그 정답을 수집하는 것이 중요하다.

객체 분류를 학습시키려면 이미지와 그에 해당되는 정답 객체 정보(사진에 어떤 클래스의 객체가 존재하는지)가 주석으로 달린 100만 개 이상의 이미지와 1000개 객체 클래스가 있는 이미지넷이 많이 쓰이고, 객체 탐지와 의미론적 분할을 학습시키기 위해서는 이미지에 있는 객체 영역의 정답 마스크 정보와 정답 경계상자 정보가 함께 있는 30만 장이 넘는 이미지가 있는 MS COCO 데이터세트가 많이 활용된다.

앞서 말한 활용 사례 외에도 컴퓨터가 물체를 파악하는 기술은 무궁무진한 활용처가 존재한다. 앞으로 미래에는 사람만이 할 수 있었던 각종 산업현장, 의료분야, 생활 속 다양한 태스크들을 컴퓨터가 대체하게 되면서 많은 분야에서 사람의 역할을 충족시키게 될 것으로 전망된다.√ 기억해주세요
김수진 한국과학기술연구원 KIST AI 로봇연구소 박사
김수진 한국과학기술연구원 KIST AI 로봇연구소 박사
컴퓨터는 사진이나 이미지를 디지털화된 숫자로 인식한다. 조금 더 구체적으로 말하면, 우리가 가진 디지털 이미지는 이미지의 크기만한 행렬로 표현되며 (여기서 이미지의 크기란 우리가 아는 해상도이다), 각각의 포인트는 픽셀이라고 불린다. 이 픽셀은 총 3개의 RGB(Red, Green, Blue)값을 갖는다. 즉 컴퓨터는 이미지를 3차원 배열(가로×세로×RGB)로 인식한다.