AI

Segmentation

완달프 2021. 4. 26. 16:06

1. Segmentation이란?

이미지에서 특정 객체를 검출해 내는 것이다.

 

2. Sematic Segmentation vs Instance Segmentation

Sematic Segmentation은 특정 객체가 있는지만 판별하고,

Instance Segmentation은 객각의 객체도 구분해서 판별한다.

 

3.

Image Classification: 이미지 자체가 어떤 이미지인지 분류하는 것

Image Localization: 이미지가 어떤 이미지인지 분류하고 그 위치까지 파악하는 것

Object Detection: 이미지 내에서 객체의 위치를 직사각형으로 표시하는 것

Image Segmentation: 이미지 내의 객체를 더 자세하게 테두리로 표시하는 것

 

4. 어디다쓰나?

자율주행이나 의료영상등에서 어떤 부분을 인식할때 사용하게 된다.

 

5. Fully Convolutional Network

가장 기본적인 형태의 객체 검출 네트워크이다.

VGG 네트워크 백본을 사용하였고,

Fully Connected Layer를 Convolution으로 대체하였고,

Trasposed Convolution을 이용해서 pixel wise prediction을 수행하였다.

 

6. VGG

VGG는 3*3 Convolution을 딥하게 쌓아서 파라미터 수를 줄였지만 효과적으로 Receptive Field를 늘렸다.

Fully Connected Layer를 Convolution으로 변경해서 가능한것인데,

그럼 이렇게 변경한것은 무슨의미일까?

첫번째로는 각 픽셀의 위치정보를 변경하지 않은채로 특징을 추출한다는것이다.

어떤 한 픽셀의 정보는 그 위치에서 압축된다.

만약 Fully Connected Layer를 사용한다면 모든 내용을 일렬로 펼쳐야 할텐데 이는 위치정보를 함축한다고 보기 어렵다.

두번째로는 인풋이 어떤 크기든지간에 파라미터 수정 없이 항상 일정한 출력값이 나오게 된다.

즉, 이미지가 어떤 사이즈인지간에 상관없이 항상 같은 크기의 출력이 나온다는 것이다.

 

7. Transposed Convolution

그렇다면 컨볼루션을 진행해서 차원이 줄어들었을텐데,

마지막에 이미지로 다시 변경하여 확인하려면 어떻게 해야할까?

이렇게 다시 차원을 늘려서 이미지로 복원하는것을 업샘플링이라고 하는데,

Transposed Convolution으로 진행 할 수 있다.

Convolution과는 반대 방향으로 이뤄진다고 생각하면되는데,

인풋값 하나의 스칼라를 커널에 곱해서 출력부분에 그대로 찍어나간다.

그리고 결과가 겹치는 출력 부분은 더해나가면된다.

Upsampling, Deconvolution, Transposed Convolution은 모두 같은 의미이다.

그런데 사실 이렇게 역연산을 한다고 input의 형태가 복원되는것은 아니다.

'AI' 카테고리의 다른 글

210523 프로그래머스 머신러닝 데브매칭  (0) 2021.05.23
PORORO 자연어처리 라이브러리  (0) 2021.04.20