본문 바로가기

논문리뷰

Mask R-CNN 논문 리뷰 (1)

이번 리뷰는 Mask R-CNN을 이해하기 위해서 배경과 소개 아키텍처 부분만 살펴보도록 하겠습니다.

 


Abstract


 

1. Mask R-CNN은 Instance segmentation을 위한 프레임워크이다.

2. Mask R-CNN은 Faster R-CNN에서 segmentation mask branch 를 추가한 것이다. 학습은 쉽고 약간의 오버헤드만 추가 된다.

3. Mask R-CNN은 다른 Task에 대해서 일반화하기가 쉽다. 예를들면, Human Pose Estimation Task를 원할 때, 동일한 프레임워크를 사용할 수 있음

4. COCO 데이터 세트에 대해서 각각의 Task 별 최상의 결과를 얻었다.

 


Introduction


 

1. 비전 기술이 빠르게 발달한 데에는 강력한 베이스라인 아키텍처가 있었기 때문이다.

  • Object detection 분야에서는 Fast/Faster R-CNN
  • Segmentation 분야에서는 Fully Convolutional Network(FCN)

2. 이러한 강력한 베이스라인 아키텍처를 이용해서 Instance segmentation이 가능한 프레임워크를 만드는 것이 목표

 

3. Instance segmentation을 위한 해결 과제

  • Object detection : 모든 객체에 대한 정확한 detection이 되어야 함 (classification & localization)
  • Semantic segmentation : 객체에 대한 정교한 segmentation이 되어야 함 (pixel 단위의 classification)

4. 그래서 위의 2가지 베이스라인 아키텍처를 결합함. (Faster R-CNN & FCN)

5. Mask branch는 각 RoI에 대해서 작은 크기의 FCN 이 적용 됨.

6. Faster R-CNN 을 그대로 확장하지만, RoIPool 대신 RoIAlign을 사용함. 이유는 RoIPool은 quantization 과정에서 정보를 많이 소실하게 됨. 애초에 pixel 단위 Task를 고려한 방식이 아니기 때문에 정보를 거의 소실하지 않는 RoIAlign방식을 사용. 이 방식을 통해서 성능향상을 10~50% 까지 얻음

7. Mask와 Class 예측을 서로 분리하여, 각 클래스에 대해서 독립적으로 binary mask를 예측한다. 그래서 클래스 간의 competetion이 없음

8. 반대로 FCN은 픽셀당 multiclass classification을 수행한다. 실험에 따라 인스턴스 세그맨테이션에 대해서 제대로 작동하지 않는다.(어떤 의미인지 지금은 이해가 안됨)

9. Mask R-CNN은 약간의 수정을 통해서 instance-specific poses를 탐지하는데 사용할 수도 있음

 


Related work


1. R-CNN

  • Region based CNN 접근법은 Object detection에 대해서 관리 할 수 있는 수의 후보 객체 영역에 주의를 기울이고, 각 RoI에 대해서 컨볼루션 네트워크를 독립적으로 평가한다.
    •  R-CNN은 feature map에서 RoI가 될 수 있도록 RoIPool 기술을 사용한다. 이 기술은 속도를 빠르게 하고 정확도를 더 좋게 한다.
    • Faster R-CNN은 Region Proposal Network(RPN)으로 어텐션 매커니즘을 학습함으로써 더욱 발전을 이루어 냄

2. Instance segmentation

  • CNN의 효율성으로 인해 많은 Instsance segmentation 접근법은 segment proposal 에 기반을 두고 있음
  • 초기 방법은 bottom-up segment 였다. DeepMask는 Faster R-CNN에 의해 분류되는 segment 후보를 제안하는 방법을 학습한다. 이러한 방법은 세그먼트가 인식보다 우선하기 때문에 느리고 정확도가 떨어짐
  • Mask R-CNN과 유사하게 제안된 바운딩박스로부터 세그멘트 제안을 예측한 후 분류하는 multiple-stage cascade 를 제안함
  • 하지만 Mask R-CNN은 class 분류와 mask 예측이 병렬구조로 이루어진다는 점에서 더 간단하고 유연함
  • 최근에 세그맨트 제안 시스템과 객체 탐지 시스템을 결합하여 fully convolutional instance segmentation (FCIS) 이 나옴
  • 그러나 FCIS는 겹치는 인스턴스에서 오류를 보이고 있고, spurious edge를 만들어 근본적인 어려움을 겪고 있음
  • 또 다른 접근법은 semantic segmentation의 성공을 기반으로 하는 것이 있음. 픽셀별 분류 결과로부터 동일한 범주의 픽셀을 다른 인스턴스로 자르려고 시도하는 방법이다. Mask R-CNN은 이러한 segmentation 우선 전략이 아닌 instance 우선 전략을 취하고 있다. 향후 2가지 전략의 더 깊은 통합이 연구되기를 기대함

 


Mask R-CNN


Faster R-CNN은 각 후보 객체에 대해서 클래스 라벨과 바운딩 박스에 대한 output을 얻는다. 여기서 마스크 output을 가지는 3번째 branch를 추가한다.

마스크 출력은 개체의 훨씬 더 미세한 공간 레이아웃을 추출해야하는 클래스 및 바운딩 박스 출력과 구분이 된다. 

 

1. Faster R-CNN 

  • 첫번째, RPN은 객체의 후보를 제안한다.
  • 두번째, RoIPool을 이용해서 각 후보 바운딩 박스로부터 feature를 추출한다.

2. Mask R-CNN

  • Faster R-CNN과 동일하게 2단계 절차를 가짐
  • 첫번째, RPN을 가지고
  • 두번째, 클래스와 바운딩박스와 함께 병렬로 각 RoI에 대한 바이너리 마스크를 예측함
  •  이것은 클래스 분류가 마스크 예측에 의존하는 최근 시스템과는 대조적임
  • 학습할 때, multi-task loss를 정의함 각 샘플링 된 RoI에 대해서 전체 loss는 다음처럼 구성된다. Loss = classification loss + box regression loss + mask loss
  • Mask branch는 K개의 클래스에 대해서 각각 m x m 해상도의 binary mask를 가진다
  • 픽셀당 시그모이드 적용하기 위해서 mask loss를 average binary cross-entropy loss로 정의함
  • Ground Truth가 k 클래스인 RoI에 대해서 mask loss는 k번째 mask로만 정의한다 (다른 클래스의 mask output은 loss에 관여하지 않음)
  • Mask loss에 대한 정의는 네트워크가 클래스 간의 경쟁없이 모드 클래스에 대한 mask를 생성할 수 있도록 한다.
  • 원래는 클래스 분류예측에 의존하나, Mask R-CNN은 이것을 분리 시켜 예측함
  • 이것은 FCN을 semantic segmentation에 적용할 때, 픽셀당 softmax와 multinomial cross-entropy loss를 적용하는 일반적인 관행과는 다름

3. Mask Representation

  • Mask는 입력 객체의 공간 정보를(FCN으로) 인코딩한다. 그래서 fc layer에 의해 필연적으로 짧은 출력 벡터로 축소되는 클래스 예측이나 바운딩박스 예측과는 달리 마스크 공간 구조 추출은 컨볼루션에 의해 제공되는 pixel-to-pixel 대응으로 잘 처리 될 수 있다.
  • 특히 FCN을 통해서 각 RoI에 대해서 m x m Mask를 예측함
  • 이것을 통해서 Mask branch의 각 레이어는 명시적으로 m x m 객체 공간 레이아웃을 유지하도록 한다. (fc layer 안씀)
  • 이런 fully convolutional representation은 더 적은 매개변수를 필요로 하며, 실험에서 입증된 것 처럼 더 정확함
  • pixel-to-pixel 동작은 작은 feature map들이 명시적인 픽셀당 공간 대응을 충실히 보존하기 위해 잘 정렬되어야 한다. 이것은 RoIAlign 레이어를 개발하도록 동기부여 함

4. RoIAlign

  • RoIPool은 작은 feature map을 추출하는 표준작동방식임
  • RoI를 feature map과 매핑할 때, quantization 이후에 매핑하는 것이 아니라 quantization을 하지 않은채로 매핑함으로써 정보를 잃지않는 방식을 사용함.

5. Network Architecture

  • Mask R-CNN은 multiple architecture를 가지고 있음
  • 첫번째 feature extraction을 수행하는 convolutional backbone architecture
  • 두번째 바운딩박스 인식을 위한 network head (classification & regression)
  • 세번째 각 RoI에 대한 mask 예측 네트워크
  • Backbone 네트워크로 ResNet-FPN을 이용하면 정확도와 속도면에서 모두 탁월함

'논문리뷰' 카테고리의 다른 글