[AI 이야기]인간을 넘어선 이미지 인식 기술…객체 탐지에서 분류, 영역 분할까지 자유자재
입력 2020-09-23 11:28:43
수정 2020-09-23 11:28:43
[HELLO AI] LG CNS의 AI 이야기
-이미지 파일은 2차원 픽셀 행렬 데이터로 구성돼…인공신경망 통해 특징 추출하는 연산 수행
[이주열 LG CNS AI빅데이터연구소장
김명지 AI빅데이터연구소 책임]
‘시각’은 동물이 가진 가장 원초적 감각 중 하나다. 동물들은 태어나 눈을 뜬 그 순간부터 잠들지 않는 동안 늘 눈으로 들어오는 각종 시각 정보를 인식해 판단하고 행동한다. 사람은 무의식적으로 아주 빠르게 시각 정보를 처리할 수 있도록 진화했다. 그렇게 해야만 더 잘 살아남을 수 있었기 때문이었다. 예를 들어 초식동물인지 맹수인지, 나무 넝쿨인지 뱀인지, 독버섯인지 식용버섯인지를 구별해야 하는 등 시각은 생존과 직결된 문제였다. 시각이란 사람에게는 매우 익숙한 감각이지만 기계도 과연 시각 정보를 인식할 수 있을까.
이미지와 같은 비정형 데이터를 다루는 데 특화된 딥러닝 모델은 인공 뉴런을 여럿 연결한 인공 신경망을 기반으로 한다. 인공 신경망은 가중합(weighted summation)과 비선형 함수(non-linear function)로 이뤄진 연산을 수행해야 한다. 따라서 입력 데이터로 벡터나 행렬과 같은 형태를 필요로 한다. 그렇다면 색상·곡선·각도·도형·명암이 어우러진 이미지 데이터를 어떻게 처리해야 인공 신경망에 입력할 수 있을까.
기계가 이미지를 인식하는 방법
JPG와 PNG 파일 등으로 구성된 이미지 데이터는 우리의 눈으로 보기에는 하나의 정지된 그림이지만 기계는 이를 연산 가능한 형태로 만들어 인식한다.
예를 들어 은 사람이 보기엔 숫자 6이지만 기계가 보기에는 가로와 세로 28픽셀씩을 갖는 2차원 행렬 데이터다.
이미지를 행렬로 변환했기 때문에 이제는 인공 신경망 연산을 할 수 있게 된다. 이때 가로세로의 공간적 정보를 담고 있는 이미지를 처리하기 위한 특별한 인공신경망 구성 방식이 필요하다.
보통은 CNN(Convolutional Neural Network)이라고 불리는 형태의 인공신경망을 활용해 이미지에서 주요 특징을 추출하는 연산을 수행한다.
CNN은 이미지의 픽셀 값을 가지고 추출한 특징으로부터 그림의 숫자가 무엇인지 인식해야 한다.
특징의 추출은 컨볼루션 필터(또는 커널)가 수행한다.
이 필터는 이미지를 상하좌우로 훑으며 픽셀 값에 대해 가중합 연산을 수행한다.
이렇게 찾아낸 특징은 이미지의 색상이나 테두리, 각도와 같은 정보를 포함한다. 컨볼루션 연산을 여러 번 반복하면 인공신경망은 점차 추상적이고 복합적인 특징을 찾아낼 수 있다. 신경망의 깊이가 깊어질수록 인공지능은 강아지와 고양이를 분류하거나, 사람의 얼굴을 인식하거나, 제품 공정에서의 불량품을 탐지하는 등의 고도화된 역할을 수행할 수 있다.
컨볼루션 필터가 이미지를 상하좌우로 훑으며 특징을 찾아내면 이 결과로부터 정보를 추리는 풀링 연산이 이어진다. 컨볼루션 필터가 추출한 특징을 상하좌우로 훑으며 핵심적인 정보만을 영역별로 샘플링하는데, 주로 영역 내 가장 큰 값만을 남기고 나머지 값을 버리는 맥스풀링(Max Pooling) 방식을 적용한다.
컨볼루션 연산이 이미지의 특징을 찾아낸다면 풀링 연산은 그중 핵심 정보만 남긴다. 대부분의 이미지 처리 모델에서는 컨볼루션과 풀링 연산을 여러 번 반복하면서 데이터의 특징을 추려낸다. 이미지로부터 특징을 배워 나가는 작업이라는 뜻에서 이 과정을 피처러닝(feature learning)이라고 부른다.
대표적인 인공지능 이미지 인식 과제
인공 신경망이 복잡한 연산을 통해 이미지에서 주요 특징을 찾아냈다면 이 정보를 활용해 목표로 하는 태스크를 수행할 수 있다. 오늘날 인공지능(AI)이 이미지 데이터를 처리하는 대표적인 태스크를 몇 가지 소개한다.
1. 이미지 분류(image classification)
입력으로 받은 이미지를 지정된 K개의 클래스(또는 카테고리) 중 하나로 분류하는 과제다. 기계가 사진 속 동물이 강아지나 고양이인지 분류한다거나 공장에서 AI가 카메라로 벨트 컨베이어의 제품을 찍으며 사진을 보고 양호한 상태인지 특징인지 판별하는 업무 등에 쓰일 수 있다.
2. 객체 탐지(object detection)
입력 받은 이미지에서 특정 개체가 어디에 위치하는지 픽셀의 (x, y) 좌표 값을 찾아주는 과제다. 대부분의 스마트폰에는 인물 사진을 찍을 때 자동으로 인물의 얼굴 부근에 네모 박스를 찾아 포커스하는 기능이 있다. 이 경우 얼굴을 탐지하는 기능이 탑재돼 있다고 볼 수 있다.
3. 이미지 영역 분할(image segmentation)
객체 탐지가 네모 박스로 개체의 좌표를 찾아준다면 이미지 분할은 조금 더 정밀하게 픽셀 단위로 영역을 구별하는 과제다. 경계를 잘 찾아야 하는 작업인 만큼 객체 탐지보다 기계가 수행하기 어려운 태스크다.
이 밖에 이미지를 처리하는 다양한 AI 기술이 있고 나날이 기술이 빠르게 발전하고 있다. 특히 대표적인 글로벌 이미지 분류 대회인 국제영상인식대회(ILSVRC : ImageNet Large-Scale Vision Recognition Challenge)에서는 이미 5년 전 AI의 수준이 사람의 인식률을 뛰어넘기도 했다. 이는 2012년 최초의 ‘딥러닝’ 기반 모델이 이 대회에서 우승하며 딥러닝의 전성기를 가져온 지 3년 만의 일이다.
적어도 이미지 분류에서는 이제 AI가 사람보다 인식을 더 잘한다고 볼 수 있다.
아직까지 AI가 사람처럼 복합적인 추론 과제를 수행할 수는 없지만 단순한 수학 연산을 엮은 구조만으로 기계가 이 정도로 이미지를 인식할 수 있다는 것은 놀랍다. 어떤 관점에서는 0과 1의 디지털 데이터만 다루던 기계에 세상을 볼 수 있는 ‘눈’이 생긴 것이라고 볼 수도 있다.
기술이 조금 더 발전한다면 사람처럼 시각 인지를 바탕으로 행동하거나 다양한 사고를 추론하는 것도 가능해지지 않을까.
[본 기사는 한경비즈니스 제 1295호(2020.09.19 ~ 2020.09.25) 기사입니다.]