티스토리 뷰

Study/AI

[DL] Types of Computer Vision Models

생각많은 소심남 2020. 1. 8. 00:17

 보통 computer vision에 활용되는 model은 수행 task에 따라서 크게 3가지 형태로 나눠볼 수 있다. 이미지를 분류하는 Classification, 이미지를 인식하는 Detection, 그리고 이미지를 따오는 Segmentation이다.

그림 1. Example of Classification

 Classification은 말 그대로 이미지나 이미지내 특정 object에 대한 class를 결정하는 것이다. 이에 대한 결과는 참/거짓 과 같은 2진으로 나올 수도 있지만, class가 여러 개라면 그 class의 종류만큼 나올 수 있다. (참고로 일반적으로 많이 사용되는 ImageNet Dataset은 약 20000여개의 class로 구성되어 있다고 한다.) 보통은 예측된 class에 대한 확률값으로 표기되어, 사람이 딱 봤을 때 가장 높은 확률을 가진 class가 예측된 결과를 얻게 된다.

그림 2. Example of Detection

 Detection은 이미지내에 놓여져 있는 object를 인식하는 것으로, 인식된 object에 대해서 위와 같이 사각형의 박스(Bounding Box)로 그려지는게 일반적인 예이다. 여기에 Classification이 접목되면, 단순히 object만 인식하는게 아니라, 인식된 object의 class까지도 표현할 수 있다. 추가로 이 Bounding Box 자체는 Confidence Threshold라는 것을 정의할 수 있는데, 이건 인식된 object의 정확성을 나타내는 척도가 된다. 예를 들어 뭔가 좀 애매한 object가 인식되는 것을 방지하고 싶으면(다르게 표현하면 low-confidence detection을 방지하기 위해서는) confidence threshold를 높이면 된다.

그림 3. Example of Segmentation

  Segmentation은 이미지를 구성하는 모든 pixel 상에서 특정 object에 속하는 pixel section을 분류하는 것을 말한다. Classification과 마찬가지로 단순히 object와 object가 아닌 것으로 분류해서 표현할 수도 있고, 아니면 여러 class에 대한 object를 각각 나눠서 분류시킬 수 있다. 참고로 Segmentation도 기법에 따라서 Semantic Segmentation과 Instance Segmentation으로 나눠볼 수 있다. Semantic Segmentation은 같은 class내의 object는 모두 동일한 요소로 간주하고 구분하는 것이다. 예를 들어 차에 대해서 Segmentation이 이뤄진다면, 자동차, 버스, 전차 등은 모두 같은 object로 인지될 것이다. 반대로 자동차, 버스, 전차 등을 각각 분류해서 segmentation을 수행할 경우를 Instance Segmentation이라고 한다. 다시 표현하자면 각각의 object들을 하나의 독립된 instance로 구분짓겠다는 것이다.

댓글