글 작성자: 만렙개발자

[ICCV-T] 2019 Object Detection and Instance Segmentation by Ross Girshick(FAIR)

Overview of this Tutorial

  • 객체검출 소개 (Object Detection Intro)
  • 일반화된 R-CNN 프레임워크 (The Generalized R-CNN framework)
  • 현재 객체검출 분야의 도전과제 (Open challenges in object detection)
  • 검출 연구 논문 잘 쓰기 (Writing Good Detection Research Papers)

Intro

  • 객체검출 (Object detection)
    • 무엇이 어디에있는지 찾는 문제
      • 무엇 = label (classification)
      • 어디 = bounding box (localization)
    • Segmentation
      • 러프하게 박스를 잡아 표현하는 것이 아니라, 픽셀단위로 영역을 표현 = Mask
    • DPM(Deformable Part Model) -> Fast R-CNN
      • AP기준 3배의 성능 향상
      • Deep Learning이 Computer Vision을 풀기 위한 과한 도구는 더이상 아니다! 뿐만 아니라 그 크기의 거대함도 더 섬세해지고 정밀해지고 있음
        (이전에는 딥러닝이 컴퓨터 비전 문제를 풀기에 너무 거대한, 과한 방법, 망치로 표현되고, 그러한 인식 있었음.)
      • (Mask를 사용한다는 것은 더 섬세한 결과를 얻고, 전체적인 성능도 좋아짐)
      • Human Keypoints
        • COCO keypoint detection task
        • 사람 신체의 키 포인트들, 얼굴 목, 몸통, 손, 다리 등(관절이 점이 되고, 그 연결하는 선까지 표현됨)을 추가한 데이터셋/문제
      • human surface
        • DensePose
        • RGB 이미지를 3D Surface로 mapping
      • Panoptic Segmentation
        • Instance Segmentation + Semantic Segmentation
        • 중복되는 여러 Class들을 연결!
          • 예를들어, 사람 3명이 어깨동무를 하고 서 있다면, 3명을 하나의 person 영역으로 mask
      • 3D shape
        • Image를 입력 받아서 2D recognition을 하고, 그 결과를 3D Voxels 만들고 3D Meshes로 까지 만드는!Generalized R-CNN FrameworkFAIR(Facebook Artificial Intelligence Research)에서는 detectron이라는 object detection 프레임워크를 개발하고 공개했다. 최근에는 detectron2를 공개했으며, 이에 대해서도 이후의 Tutorial 세션에서 다루었다. 프레임워크에서는 다양한 알고리즘을 포함하고 있기 때문에 일반화된 구조가 필요했고, 이를 detection에서 잘 설계하고, 활용한다. 여기서는 이에 대해서 설명하고, 기초적인 R-CNN이 일반화된 모형에서 어떻게 적용되는지 실제적인 예를 든다.

일반화된 R-CNN 프레임워크

R-CNN은 현대적인 proposal-based detector를 위한 개념적 기준이된다. 일반화된 R-CNN의 구조는 크게 2 부분으로 나눠진다. Per-image computation과 per-region computation 부분이다. 이미지마다 계산하는 부분은 다시 2개의 과정으로 나눠진다. (하나의 과정으로 합쳐진다)

  1. Feature map을 생성 (ConvNet)
  2. ROI(Region Of Interests) 제안
    리전마다 계산하는 부분도 2개의 과정으로 나눠진다. (이 또한 하나의 Attention으로 설계한다)
  3. Classification
  4. Box Regressor

기존의 모델들을 통해 각 부분이 어떻게 매칭되는지 보자.

  • Ex) R-CNN
    • Feature map 생성
      • ConvNet, Selective Search
    • R-CNN은 Attention 부분에서 2개의 헤더를 갖는 것으로 볼 수 있다.
      • linear classifier와 box regressor
    • R-CNN은 ConvNet 부분이 속도가 느린 것에 가장 큰 영향을 미치는 문제가 있었다. 이 부분을 해결하기 위해 등장한 것이 Fast R-CNN
  • Ex2) Fast R-CNN
    • SPP-Net에서부터 가져온 cropping featureized representation 아이디어를 활용하여 위의 문제를 해결한다
    • Fast R-CNN은 4 과정으로 이루어진다
      1. FCN
        • 전체 이미지에 대해서 Fully-Connected Netwrok
        • 여기서 FCN은 보통 standard ConvNet을 (마지막 global pooling 레이어와 FC 레이러를 제외하여) backbone network로 사용한다
        • 좋은 backbone model과 데이터셋을 사용할 수록 좋은 성능이 나타난다. (backbone model이 잘 동작한다는 가정 하에 구조가 설계되었기 때문에, 의존성이 높다)
      2. ROI POOL (SPP-Net의 아이디어를 적용하는 부분, key innovation)
        • FCN은 고정해둔 상태로, FCN을 통해 생성된 featurized image(=variable sized ROI)를
          • Snapped ROI
          • 고정된 크기의 그리드로 나눔
            • ex) 2x2, max pooling
      3. MLP (각 region의 feature에 대해서 연산)
      4. softmax classification & Box Regression
    • Fast R-CNN의 문제점은 region proposal이 recall 성능이 좋지 않음
      • 구체적으로 PASCAL 데이터셋에서는 문제가 없었지만, COCO 데이터셋에서 recall 성능이 좋지 않았음
  • Ex3) Fater R-CNN
    • RPN
      • proposal 하는 부분도 학습!
        • 이미지 네트워크를 계산하는 부분과 통합해서 계산시간을 줄임
        • 즉, 이미지(전체)를 RPN을 연산 것이 아니라, 이미지를 네트워크를 통해 계산한 featurized representation(이미지에 비해 매우 작은)에 RPN을 연산
      • 이미지를 featurized representation으로 만드는 부분에 대해서 자세히 들여자보면,
        • 3x3 sliding window를 사용하여 anchor box(sliding window가 움직이는) 영역을 예측
          • Objectness classifier (0,1)
          • Box regressor predicting (dx, dy, dh, dw)
        • Ex) Objectness score p(object)=0.94
          Anchor Box: 다양한 크기와 종횡비를 가진 K 개의 anchor들을 location 마다!
  • Ex4) Faster-RCNN with Feature Pyramid Network
    • FPN -> multi-scale feature representation
      • Improve Invariance(for Classification) and Equivariance(for Localization)
      • 4 전략의 발전과정을 살펴본다
        1. Image Pyramid
          • 이미지 크기를 다양하게하여 각각에 대하여 예측
          • 따라서 느림
        2. Multi-scale Feature (single-scale map)
          • Fast, suboptimal
        3. Native in-network Pyramid
          • 피라미드 계층 구조의 feature
            • Low resolution -> strong feature
            • High resolution -> weak feature
        4. Feature Pyramid Network
          • top-down enrichment of high-resolution features
          • Light-weight Top-down Refinement Mechanism
          • Unet과 구조적으로 비슷하지만, FPN은 dense 필요가 없고, 대칭적(mirrored, symetric) 구조가 필요하지 않다.
  • ex5) Mask RCNN
    • generalized R-CNN의 관점에서 attention의 head를 추가하는 것!
    • ROI Align
      • ROI POOL과 기본전략은 같지만,
        • 선형보간된 점들의 그리드
        • Average pooling (보간된 값에 대한)
        • 이것을 coordiate quantization된 것이라고 한다.
        • 장점? 서핑보드를 들고 서 있는 사람의 경우, 서핑보드에 가려져 상반신과 하반신이 나눠져 사람으로 디텍트되던 것이 하나로 디텍트됨! (서핑보드가 가리는 영역을 포함하여)LVIS(Large Vocaburary Instance Segmentation)
  • 이렇듯 object detection(Instance Segmentation)은 발전해왔지만, large vocabulary가 필요하다! 천단위의 수준에 오르고 싶어함! 그래서 새로운 데이터셋을 제안함!

현재 객체검출 분야에서의 도전과제 (FAIR에서 만든 dataset)

  • LVIS Dataset
    • 164k images(from COCO)
    • ~1200(BIG) discovered categories
    • ~2M instance segmenation
    • Long-tail(LITTLE) frequency distribtuion
    • -> BIG LITTLE Data
    • Halfway point now (v0.5)
    • Data Driven Category Discovery
      • Image 수가 많은 수록 Category의 수가 증가
    • 장점
      • datasets are mere proxies = evolved beyond COCO
      • Recognition
        • Natural image에 가까운 number of categories per number of images (?)
      • Data Efficient Learning
        • 90% of categoreis have < 20 examples

뜬금, 좋은 Detection 연구 논문을 쓰는 방법

  • 아이디어 구상
    • 논문 리뷰
    • 그리고, 단 하나의 집중된 아이디어 혹은 질문!
    • 그리고 그 아이디어에 관련없던 아이디어 혹은 트릭을 더해서 SOTA! (이상적이다....하핳...)
  • 아이디어의 가장 간단한 버전
    • solid baseline에서 시작!
    • 아이디어를 적용시킨다!
    • 간단한 설정하에 ablation을 수행한다
  • Ablations
    • 융상; 모델이나 알고리즘들의 특징들을 제거하면서 그게 성능에 어떤 영향을 미치는지 연구하는 것. 어떠한 입력 혹은 특징이 성능 향상 혹은 유의미한 결과에 영향을 주었는지 찾기 위함! 딥러닝에서는 레이어, 노드, LSTM의 게이트 등 다양한 것이 될 수 있음.
    • one table, one message
      • 하나의 표는 하나의 메세지만 명확하게 전달할 것!
  • 주장을 지지할 수 있는 것들
    • 인용(citation)
    • 실험(experiment)
      • speed/accuracy claims
        • 속도 성능 향상은 아래의 세 요소들에 의해서 결정되므로, 아이디어 혹은 방법만으로 향상된게 아닐 수 있음을 주의하라!
          • recipe (idea/method)
          • Software
          • Hardware
    • 위의 두 경우로 주장을 지지할 수 없는 경우, intuitively, may를 써야함

 

* Update 2020.03.22

- panoptic segmentation