인공지능의 이미지 분류 방식
지난 시간에는 인공지능이 이미지를 인식하는 방식과 그에 따른 도전과제에 대해서 다루었습니다.
오늘 소개해드릴 내용은 그 방식이 어떠한 흐름으로 발전해왔는지, 지금은 주로 어떤 방식을 사용하는지 알아보겠습니다.
1. Classification
초기 이미지 분류는 비교적 단순한 원리를 사용하였습니다. 주어진 이미지와 학습한 데이터들 간의 거리를 비교하여 class를 분류하는 방식이었습니다. 물론 분류하는 방식에 있어서는 여러 복잡한 원리들이 있지만, classification은 인공지능 기술 중 기초적인 것이라고 볼 수 있습니다.
Classification Task
다양한 Classification 방식
위 그림과 같이, 주어진 고양이 이미지를 여러 클래스와 비교하여 어디에 속하는지 판별하는 작업을 예시로 들 수 있습니다.
2. Object Detection, Tracking
객체 인식은 Classification에서 한 단계 더 나아간 기술입니다. Classification은 단순히 이미지의 클래스를 분류하는 것에 그쳤지만, 객체인식은 이미지를 분류할 뿐만 아니라 이미지 안에 있는 객체의 경계나 중앙점의 위치를 탐지합니다.
객체 인식을 통해 이미지를 분류함과 동시에 그 안의 객체를 파악할 수 있다.
초기에는 정적 이미지에 있는 객체에 대해서 인식하는 것으로 시작했으나, 현재는 프레임 단위로 객체를 인식하여 영상에서 바운딩 박스가 객체를 따라가는 형태로 발전하였습니다. 사실 객체 인식은 Detection, Tracking 등의 하위 기술을 모두 포함하고 있습니다. Detection은 특정 범위 내에 객체가 존재하는지 판단하고, 그 위치를 찾아내는 과정입니다. Tracking은 연속된 프레임에서 같은 객체끼리 연결하여 그것을 추적할 수 있도록 하는 개념입니다.
3. Segmentation
마지막으로 다룰 내용은 위에서 다뤘던 객체인식과 Classification을 동시에 할 수 있는 Segmentation입니다. Segmentation은 그림과 같이 이미지에서 픽셀단위로 Class ID를 도식화합니다. 또한 객체인식은 위치 기반으로 데이터를 추측하는 것과는 다르게, 픽셀을 기준으로 데이터를 추측한다는 차이가 있습니다.
Semantic Segmentation과 Instance Segmentation
Segmentation은 크게 Semantic segmentation과 Instance segmentation로 나눌 수 있습니다. Semantic segmenation은 이미지 내에서 객체가 속한 Class가 무엇인지에 대해서만 판단한다는 특징이 있습니다. 반면 Instance segmentation은 객체의 Class와 더불어 그 안의 Instance들 간의 구분이 가능하게 해줍니다.
기술적 측면에서는 Instance 방식이 한 단계 더 고차원적이라고 볼 수 있지만, Semantic 방식에 비해 더 많은 계산 비용이 들어간다는 단점이 있습니다. 따라서 class 안의 Instance 분류가 중요하지 않은 실질적인 상황들을 고려해 볼 때 Semantic 방식이 더 효율적인 경우가 많습니다.
오늘은 인공지능의 이미지 분류 기술이 발전해온 방향에 대해서 알아보았습니다. 그림 (a)~(d) 순서로 발전이 이루어졌다고 정리할 수 있습니다.
다음 포스팅에서는 이미지 분류 방식의 근간이 되는 Convolution Neural Network(CNN)의 개념에 대해서 다루도록 하겠습니다.