본문 바로가기

공부/Deep Learning

딥러닝 객체 검출 용어 정리 Deep learning Object detection terminology [1]

공부를 하다 보면 용어의 정의에 대해서 정확히 알아야 할 필요가, 그리고 정리해두어야 할 필요를 느끼게 됩니다. 잘 정리해서 저장하고 저와 같은 필요를 느낄 분들의 불편함도 줄이고자 블로그에 정리합니다. 아래 사용되는 이미지들은 포스트 최하단에 출처를 표시하였고, 용어들은 필자가 알고 있던 내용들을 바탕으로 작성하였습니다. 혹시 오류가 있다면 리플로 알려주시기 바랍니다.

모든 용어는 처음 사용시 한글과 영어를 혼용하여 읽는 이를 돕고, 이후 재사용시 한쪽 언어만 사용하였습니다. 다만 한글로 번역을 모르는 경우는 영어로만 표기하였습니다. 이하는 작성의 편의상 반말로 썼습니다.


Classification, Localization, Object Detection, Semantic segmentation[1]



Classification



Example of MNIST data set 


이미지를 다루는 분야의 딥러닝 Deep learning 에서 분류 Classification이란, 입력으로 주어진 이미지 안의 객체 Object 의 종류(이는 Class, Label 혹은 Class label 이라고 불린다.)를 구분하는 행위이다. class 는 MNIST data set의 경우 0 부터 9까지 총 10개의 숫자들을 각각의 class로 구별하며 임의의 숫자 한 개의 이미지 입력에 대하여 학습된 딥러닝 모델은 입력된 이미지의 class 가 0 부터 9까지의 숫자 중 어떤 숫자인지 분류하여 출력하게 된다. [1] 이미지의 첫번째 경우 입력된 고양이 이미지에 대해 모델이 "입력된 이미지의 class 는 CAT" 이라는 출력을 한 셈이다.


Localization


Localization이란 [1] 이미지의 두번째 경우 같이 모델이 주어진 이미지 안의 Object 가 이미지 안의 어느 위치에 있는지 위치 정보를 출력해주는 것으로, 주로 Bounding box 를 많이 사용하며 주로 bounding box 의 네 꼭지점 pixel 좌표가 출력되는 것이 아닌 left top, right bottom 좌표를 출력한다.


Object Detection


객체 검출 Object detection이란 보편적으로 Classification 과 Localization 이 동시에 수행되는 것을 의미한다. 모델의 학습 목적에 따라서 특정 Object 만 Detection 하는 경우(이 경우 학습시 검출하고자 하는 Object 에 대한 학습정보만 입력한다.)도 있고, 여러개의 객체를 검출하는 Multi object detection 모델을 만들기도 한다. 종종 object deteciton 은 localization 의 의미로만 사용되는 경우도 있다. 이 경우는 이미지 위에 모델이 학습한 object 위치만 bounding box 로 표현되고 class 종류는 구분하지 않는 경우이다.


Object Recognition


Object recognition이란 대개의 경우 Object detection 과 같은 의미로 쓰인다. 그러나 detection 은 object 의 존재 유무만 의미하고 recognition 이 object 의 종류를 아는 것이라고 해석하여 object detection 이 object recognition 보다 더 작은 의미로 해석되는 경우도 종종 있다.


Object Segmentation



object segmentation [3]


Object segmentation이란 [3] 이미지와 같이 object detection 을 통해 검출된 object 의 형상을 따라서 object 의 영역을 표시하는 것이다. 보통 이미지의 각 pixel 을 classification 해서 위와 같은 결과 값을 도출한다. 단순히 전경 foreground 와 배경 background 를 구분하는 용도로 쓰이기도 한다.


Image Segmentation



Image segmentation [4]


Image segmentation이란 이미지의 영역을 분할하는 것이다. 이런 분할된 영역들을 적당한 알고리즘을 사용해 합쳐서 object segmentation 을 수행한다.


Examples of segmentation[5]


Semantic Segmentation


Semantic segmentation이란 Object segmentation 을 하되 같은 class 인 object 들은 같은 영역 혹은 색으로 분할하는 것이다.


Instance Segmentation


Instance segmentation이란 semantic segmentation 에서 한발 더 나아가서, 같은 class 이더라도 서로 다른 instance 들을 구분해주는 것이다. [5] 이미지의 네번째 경우와 같이 같은 의자 class 이지만 각각의 의자들이 서로 다른 색으로 segmentation 된 출력을 볼 수 있다.


[1] https://medium.com/comet-app/review-of-deep-learning-algorithms-for-object-detection-c1f3d437b852

[2] https://data.world/nrippner/mnist-handwritten-digits

[3], [4], [5] https://stackoverflow.com/questions/33947823/what-is-semantic-segmentation-compared-to-segmentation-and-scene-labeling


semantic segmentation instance segmenation 차이

object detection object recognition 차이


instance segmenation semantic segmentation 차이

object recognition object detection 차이