Introduction
본 딥러닝 글은 "금오공과대학교 컴퓨터공학과 김성영 교수님"의 강의자료를 통해 학습한 내용을 기반으로 작성하였습니다.
여러 활용분야가 있지만, 몇가지 예시만 살펴보도록 하자.
학습된 모델을 기반으로 입력 영상에대해서 영상에 포함된 객체의 종류를 구분할 수 있습니다.
이미지 분류의 경우 주로 CNN방식을 기반으로 학습하게 된다.
1번의 Image Classification
과 같이 어떠한 Input(입력) 데이터에 대해서 이를 분류하는 작업에 localization
을 추가하여 해당 객체를 단순히 분류만 하는 것이 아닌 "위치"까지 찾아 알려줄 수 있게 되었다. 이것이 바로 "객체 검출"이다.
여기서 class
라는 표현을 썼는데, 이는 객체의 종류(class)를 구분하는 것이므로 class
라는 표현을 사용한다.
자 그럼, 아래 새 사진의 Input 예시를 통해 둘의 차이에 대하여 좀 더 직관적으로 알아보자.
Classification(이미지 분류)
Classification에서는 단순하게 해당 사진을 "분류"만을 한다. 새인지, 강아지, 고양이인지..etc Input데이터에 대해서 학습된 모델을 통해 새 or 개 or 고양이등 분류된 결과를 나타낸다.
Object detection(객체 검출)
반면 Object detection(객체 검출)은 Bounding box라는 사각형을 통해 대략적인 object의 위치까지 찾아낸다, Classification과 다르게 새의 위치까지 찾아 낼 수 있게 되었다.
다만, 새의 종류가 만약 다르더라도 똑같은 "Bird"로 분류된다. (새 처럼 생긴 객체를 2개 찾은 것이라고 생각하면 된다.)
자 이렇게 앞서 공부한 2가지 방법의 차이까지 살펴보았다.🎉
이왕 분류에 대해서 알아보는 김에 조금만 더 알아보자!
바로 Image Segmentation 과정이다.
Image Segmentation은 위의 object detection(객체 검출)을 확장한 방법이라고 생각하면 된다. 더 upgrade 된 느낌..
Image Segmentation
영상처리를 배웠다면 들어봤을 단어.
쉽게말해 Image에서 영상을 구성하는 객체들을 각 영역별로 나눠 처라하는 방법이다.
배경은 backgroud, 새 객체는 Bird, 나뭇가지는 Branch로 이미지를 분리한다. 이렇게 영역을 나누게 되면 위의 Bounding Box가 아닌 Object의 형상대로 영역을 구하기에 Object의 실제에 가까운 더 정확한 영역을 찾을 수 있다.
이러한 Image Segmentation방법을 Semantic Segmentation이라고 한다.
Semantic segmentation: the process of linking each pixel in an image to a class label
(이미지의 각 픽셀을 클래스 레이블에 연결)
🧨하지만 새가 2마리임에도 같은 Bird라는 영역으로 취급되므로 마치 1마리의 새처럼 취급된다. 이를 해결하는 방법은? 바로 아래 있다.
Image Segmentation w.instances
위의 Image Segmetation을 좀더 upgrade(?)한 방법이다. 영역을 분리하는 건 똑같으나 동일한 객체라도 다른 Mask(영역)으로 처리한다. 기존 Segmentation은 두 마리의 새 모두 같은 Bird라는 이름을 부여받았으나, Segmentation instances의 경우 서로 다른 이름(ID 값)을 부여받음으로써 각각 다른 객체로 구분된다.
- 2가지 Segmentation에 대한 차이는 아래 사진과 같다.
영상에 소가 2마리이나 전체적으로 1개의 영역으로 segmentation되었기에 Instance Segmentation이 아닌, semantic segementation이다.