ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Mask R-CNN 논문 리뷰 (2)
    Computer Vision & AI/논문리뷰 2023. 12. 5. 16:59

     

     

    Mask R-CNN = Faster R-CNN + mask branch

     

     

    🔹모델의 주요 특징

    • Instance Segmentation
    • Segmentation mask prediction
    • RoI Align

     

    🔹 3가지 branch

    • Classification branch
    • Bbox Regression branch
    • Mask branch

    mask branch

    segmentation mask를 예측

     

     


    1. RoI Align

     

     

    Faster R-CNN : RoI pooling 사용 ⇒ object detection

    Mask R-CNN : RoI Align 사용 ⇒ segmentation

     

     

    💭Faster R-CNN의 RoI Pooling

    feature map에서 region proposal에 해당하는 RoI를 지정한 크기의 grid로 나눈 후 max pooling을 수행하는 방법

     

     

    we predict a binary mask for each class independently, without competition among classes, and rely on the network’s RoI classification branch to predict the category

     

    To address this, we propose an RoIAlign layer that removes the harsh quantization of RoIPool, properly aligning the extracted features with the input. Our proposed change is simple: we avoid any quantization of the RoI boundaries 3 or bins.
    We use bilinear interpolation [22] to compute the exact values of the input features at four regularly sampled locations in each RoI bin, and aggregate the result (using max or average), see Figure 3 for details.

     

    기존 RoI pooling은 quantization과정으로 인해 정보가 손실된다.

    이를 해결하여 segmentation을 하기 위해 RoI Align을 도입한다.

     

     

    RoIAlign은 quantization을 하지 않고 픽셀 값을 float로 사용한다.

    Fig3.에서 점선은 feature map이고, 실선은 RoI를 의미한다.

    RoI 셀 내부에 4개의 sampling points가 있다.

     

    feature map의 꼭지점과 RoI의 sampling point를

    bilinear interpolation하여 샘플링 point value를 계산한다.

     

    (격자가 픽셀의 위치인데 RoI 출력이 픽셀에 딱 맞지 않게 출력될 수 있다. 

    RoI가 소수점으로 나올 수 있음.

    기존의 RoI pooling은 integer로, 오차를 유발)

     


    2. Loss

     

     

     

     

    각각 classification loss / bbox loss / mask loss를 의미한다.

     

    The mask branch has a Km^2-dimensional output for each RoI, which encodes K binary masks of resolution m × m, one for each of the K classes.

     

    L_mask는 각각의 RoI에 대해 Km^2차원의 output을 출력한다.

    (m*m 해상도를 가진 이미지에 대해 binary mask class가 K개 있다는 의미)

     

    K개의 binary mask가 픽셀당 sigmoid를 적용하고

    L_mask는 average binary cross entropy loss를 적용한다.

     

    기존의 segmentation 모델이 픽셀별로 서로 다른 class를 softmax loss function을 사용하였다.

    그러나 Mask R-CNN은 class branch와 mask branch를 분리하여 class별로 mask를 생성한 후 binary loss를 구한다.

     

     

     


    3. Implementation

     

    기존의 Faster RCNN의 헤드를 확장하여 mask branch를 추가하였다.

     

    RoI feature가 입력으로 왔을 때 with ResNet은 7x7x1024 컨볼루션을 통과한다.

     

    conv 3x3, output conv는 1x1, deconvs는 2x2(stride = 2)

    res5는 ResNet의 다섯번째 stage를 의미함.

    (14x14대신 stride=2로 해상도를 늘림)

     

     

     

    +)어떤 분이 질문을 주셔서, 위 그림에서 7x7x..만 있는데 왜 3x3, 1x1인지 여쭤보셨는데 

    그에 대한 답이 이 블로그에 잘 설명되어 있었다.

    https://blahblahlab.tistory.com/139

     

    MASK RCNN 논문 리뷰

    Instance segmentation task를 다룬 논문인 MASK-RCNN 차례입니다. MASK RCNN은 기존 object detection task에서 사용되던 FASTER RCNN에 Mask branch를 추가해 classification , bbox regression , predicting object mask를 동시에 처리하

    blahblahlab.tistory.com

     

    위 그림에 적혀있는 사이즈들은 feature map의 사이즈이고,

    각각의 컨볼루션 필터를 통과하며 사이즈가 변하고 있다.

    면접에서 갑자기 이런 질문을 받는다면...

    당황하지 말고 잘 생각해서 답변해야지..!


    4. Results

     

     

     

     

    다른 논문과의 비교

     

    이전 논문과의 비교결과도 Mask R-CNN이 더 우수하고 

    Backbone network도 영향을 미치고 있다.

    특히 small object에 대해 성능 차이가 크다.

     

     

     

    Ablation study

     

    Backbone network,

    mask (softmax or sigmoid)

     

     

     

     

     

    ref.

    패스트캠퍼스 <33개 프로젝트로 완성하는 컴퓨터비전 딥러닝 심화 과정>

    https://herbwood.tistory.com/8?category=856250

    https://blog.kubwa.co.kr/논문리뷰-mask-r-cnn-2018-mask-r-cnn-실습-w-pytorch-cd525ea9e157

    댓글

Designed by Tistory.