Computer Vision Applications
이번 강에서는 Computer Vision의 주요 Task라고 할 수 있는 Semantic Segmentation, Object Detection에서 활용되는 기본적인 Applications에 대하여 학습을 진행했다.
00. 학습 내용
- Semantic Segmentation에 대하여 학습
- Object Detection에 대하여 학습
01. Semantic Segmentation
- Semantic Segmentation은 위 그림처럼 이미지의 각 픽셀이 무엇을 의미하는지를 예측하는 Task라고 할 수 있다.
- Semantic Segmentation Applications의 핵심은 convolutionalization이라고 할 수 있다. convolutionalization은 분류 문제에서 Dense Layer로 이루어졌던 Fully connected Layer가 위처럼 convolution Layer로 바뀌는 것이다.
- convolutionalization 덕분에 output이 heat map 형태로 표현될 수 있다고 한다. heat map 형태로 표현될 수 있으니 당연히 각 픽셀이 무엇을 의미하는지도 알아낼 수 있을 것이다.
- 기본적인 CNN의 output은 일반적으로 매우 감소된 차원을 가지게 된다. 따라서 우리는 transpose convolution Layer로 통해서 upsampling을 해서 조금더 적절한 heat map을 얻을 수 있다.
02. Object Detection
- Object Detection은 이미지 안에 바운딩 박스를 그려서 해당하는 위치에 어떠한 이미지가 존재하는지를 찾는 Task로, 어떻게 보면 Semantic Segmentation의 연장선이라고 볼 수 있다.
- 가장 초창기에 나왔던 Object Detection 모델로는 R-CNN이 있는데, 본 모델은 input의 이미지를 바운딩 박스의 크기로 적절하게 짤라서(crop/warp) 여러 개의 바운빙 박스 크기 만큼의 이미지를 분류하는 방식으로 학습을 했다. 따라서 매우 속도가 느렸다고 할 수 있다.
-
최근에는 Region Proposal Network 등을 통해서 바운딩 박스가 존재할만한 위치를 찾고(분류하고자 하는 이미지가 있을 법한 위치), 찾은 바운딩 박스를 적절히 늘려가면서 바운딩 박스안에 이미지가 무엇을 의미하는지를 찾는 방식으로 발전하고 있다.
-
이부분의 경우 강의에 나온 관련 논문들을 한번 다 읽고 그 후에 또 정리할 예정