study
CS231 11강 Object Detection and Segmantation 본문
11주차 강의에서는 segmentation과 object Detection에 대해 알아보겠습니다
Semantic Segmentation이란
픽셀을 분류하는 것이며 Semantic의 의미는 암소 2마리의 경우 각각의 암소를 구분하지 않고
암소 전체를 하나의 pixel로 간주하는 것이다.
Semantic Segmentation은 Sliding Window 방식을 통해서 픽셀을 분류할 수 있다
이미지를 Window 크기로 자른 후 각각의 이미지를 CNN에 넣어 pixel을 분류한다
Sliding Window란 이미지를 분할하여 자르는 것을 말한다
하지만 Sliding Window는 두 가지 단점이 있다
앞에서 Sliding Window 방식에 대해 알아보았다면 이번에는 Fully Convolutional에 대해 알아볼 것이다
일반적으로 CNN 구조는 ConV, Pooling 반복 후 FC-layer를 통해 분류한다
Fully Convolutional은 FC-layer를 빼고 오로지 Conv-layer만을 가지고 분류하는 것을 말한다
Segmentation의 경우 input과 output의 크기가 동일해야 한다
왜냐하면 Segmention은 픽셀을 분류하는 문제이기 때문에 이미지 크기가 바뀌면 정확하게 픽셀을 분류할 수 없다
그래서 zero-padding을 모든 Conv-layer에 적용하여 원본 이미지의 크기를 보존할 수 있다
하지만 일반적으로 CNN의 경우 feature map의 크기가 줄어드는데 반면 Fully Convolutional은 줄어들지 않는다
이러한 문제를 해결하는 방법으로 Downsampling과 upsampling이 있다
upsampling 중 첫 번째 방법은 Unpooling으로 사진을 참고하시면 될 것 같습니다
두 번째 방법은 Max Unpooling으로 사진을 참고하시기 바랍니다
앞에서 upsampling 방법으로 Unpooling과 Max-Unpooling에 대해 알아보았습니다
두 경우는 Pooling을 통해 output의 크기를 늘렸다면 지금부터는 stride 크기를 통해 output의 크기를 늘리는
Transpose Convolution에 대해 알아보겠습니다
Transpose Convolution은 Input의 가중치 filter를 곱해 Output의 크기를 늘리는 방법입니다
구체적으로 계산하는 방법으로 겹치는 부분은 모두 더해줍니다
다음은 Object Detection(객체 검출)에 대해 알아보겠습니다
Object Detection은 이미지에서 분류 + 위치표시를 하는 것을 말합니다
Region Proposal은 객체가 있을법한 영역을 추출하는 것을 말합니다
Region Proposal의 원리로 Selective Search 방법을 많이 활용하고 있습니다
Selective Search란 인접한 픽셀을 통합하여 비슷한 픽셀을 가지는 영역을 추출합니다
Object Detection의 경우 크게 두 가지로 분류합니다
1. One-statge Detector : 대표적으로 YOLO알고리즘이 있으며 속도는 빠르지만 정확도가 떨어진다
2. Two-stage Detector : 대표적으로 RCNN계열이 있으며 속도는 느리지만 정확도가 높다
RCNN의 경우 약 2000개의 Region Proposal을 모델에 넣기 때문에 속도가 매우 느립니다
Fast-RCNN은 이러한 단점을 보완하기 위해 Conv-layer안에서 Region Proposal을 추천하여 속도적인 부분을 개선합니다
Faster R-CNN는 RPN을 통해 Region proposal과 분류, 위치(좌표값)를 하나의 네트워크 안에 넣습니다
그리고 anchor라는 개념을 도입하는데 anchor는 sliding window의 local window로 생각하시면 됩니다
anchor는 보통 9개로 구성되며 anchor를 통해 배경과 객체 여부를 구분할 수 있습니다
YOLO는 대표적인 One-stage Detector 알고리즘으로 분류와 위치를 한 영역에서 계산하여
실시간 객체 검출에서 가장 많이 사용되고 있는 알고리즘입니다
앞에서 Semantic Segmentation에 대해 알아보았습니다
Instance Segmentation은 각각의 픽셀을 분류하는 것을 말합니다
Instance Segmentation을 Faster R-CNN에서 사용하는 알고리즘과 거의 비슷한 Mask R-CNN을 사용합니다
차이점은 ROI Align으로 객체 검출의 경우 ROI pooling 과정에서 소수점을 반올림하는데
Segmentation의 경우에 문제가 될 수 있어 ROI Align을 통해 정확하게 계산을 할 수 있습니다
'CS231n' 카테고리의 다른 글
CS231 10장 Recurrent Neural Networks (0) | 2020.12.12 |
---|---|
CS231 9장 CNN Architectures (0) | 2020.12.05 |
CS231 7장 training neural networks 2 (0) | 2020.12.05 |
CS231 6강 training neural networks 1 (0) | 2020.12.03 |
CS231n 5강 Convolutional Neural Networks (0) | 2020.12.02 |