【Paper】 Mask R-CNN 논문리뷰 동영상 공부
Mask R-CNN 논문리뷰 동영상을 보고 정리한 내용입니다.
논문 이름 : Mask R-CNN
동영상 링크 : Mask R-CNN
아래에 이미지가 없다면, 이미지가 Loading 중 입니다. 잠시만 기다려주세요
Mask R-CNN
FCN이 해야하는 역할은 아래의 3개와 같다.
- 하지만 Faster RCNN이 이 대부분을 도와준다.
Mask-RCNN에서 Faster-RCNN을 제외한 Mask Branch (Mask Architecture)은 어떤 모양일지 공부해보자.
- Equivariance : Input이미지 크기에 따라 유동적으로 Output의 크기가 정해진다. Convolution 연산처럼
- Invariant : Input이미지 크기가 뭔지 모르겠고 Fully connected layer에 들어가기 전에, 딱 정해진 사이즈가 되어야 한다.
- Instance Segmentation에서는 Equivariance한 연산이 있는게 좋겠다.
- Mask-RCNN Branch의 모습은 아래의 2가지 같은 것이 될 수 있다. (64번 슬라이드 참조)
Fast-RCNN에서 사용하는 ROI Pooling의 모양은 다음과 같다.
- 반올림을 하는 과정에서 정보손실(?)이 이루어진다.
- 걍 정수로 자르는 과정에서도 정보손실(?)이 이루어진다.
Mask-RCNN에서 사용하는 ROI Align Pooling은 다음과 같다.
- 아래 예시에서는 ROI pooling을 거쳐 2 x 2 X depth(256) 이 만들어져야 한다면…으로 가정한다.
Fater-RCNN에서는 보통 7 x 7 x depth(256) 이 만들어져야 하므로, 위와 비슷하게만 생각하면 충분히 쉽게 이해할 수 있다.PPT 자료에는 “4등분하고 또 4등분”이라고 표현했다. 하지만 만약, 7 * 7 이 최종이 되도록 ROI Pooling이 이뤄진다면, “49등분하고 또 4등분”이 될 것이다.PPT 자료에는 이 짓(2번째 4등분에 대한 weighted sum)을 16번(4x4)이라고 했지만, 실제에서는 196번(49x4)이 되겠다.- 아래 내용 요약 : Input-EachROI. output-7x7(nxn) Pooled Feature. nxn등분->각4등분->Bilinear interpolation->각4등분에 대해 Max Pooling->(nxn) Pooled Feature Map 획득.
- 순서 정리(꼭 이 사이트 그림 참조)
- n x n 이 최종이 되도록 하는 ROI pooling을 하고 싶다.
- n x n 등분하고(등분하고 나온) 하나의 부분을 Cell이라고 하자. Cell에 대해 또, 1/3 2/3 등분을 하여, 일단! 총 4개의 점을 찍는다.
- 4개의 점에 대해서 Weighted Sum을 수행한다. Weighted Sum을 n x n x 4 번 수행한다.
- Weighted Sum을 하는 방법은 Bilinear interpolation 공식을 적용한다. (P : 해당 Point의 픽셀 값)
- (Max Pooling) 4개의 점에 대해서 가장 큰 값을 골라서 n x n 하나의 Cell에 적용한다.
- n x n ROI Align pooling이 적용되었고, 이렇게 만들어진 n x n x depth(256) Feature Map을 Classfication & Box regression + Mask Branch에 넣는다.