본문 바로가기

부스트캠프 AI Tech/[Week7] Computer Vision

[Week7] Instance/Panoptic Segmentation and Landmark Localization [Day2]

1.Instance segmentation

Fundamental image recognition tasks

 

1.1 What is instance segmentation?

  • instance들 즉, 개체들까지 구분한 segmentation

 

1.2 Instance segmenters

  • 기존 Faster R-CNN에서 Mask branch가 추가된 형태
  • 기존 7x7x2048에서 14x14로 upsampling함과 동시에 채널수를 낮추고, 최종적으로 클래스의 갯수(80개) 만큼의 binary mask를 생성함
  • class단에서 나눈 정보를 참조하여 각 채널에서의 mask를 분류
  • Summary of the R-CNN family
  • YOLACT (You Only Look At CoefficienTs)
    • Real-time으로 instance segmentation이 가능한 single-stage backbone network
    • Feature pyramid 구조
    • mask의 prototypes 추출
    • prediction head에서 prototype들을 잘 합성하기 위한 coefficient들을 출력
    • 이후 선형결합을 통해 responce map을 만듦
  • YolactEdge
    • YOLACT가 Real-time으로 동작하긴 하지만 소형화 하기엔 아직 부족
    • 이전 frame의 keyframe에 해당하는 frame을 다음 frame으로 전달함으로써 feature map의 연산량을 획기적으로 줄임
    • 기존 성능을 유지한채 연산속도를 향상시킴

 

 

2. Panoptic segmentation

2.1 What is panoptic segmentation?

  • Semantic segmentation vs. panoptic segmentation

    • Semantic segmentation은 instance를 구분할 수 없지만 배경을 구분할 수 있음
    • Instance segmentation은 instance를 구분할 수 있지만 배경을 구분할 수 없음
    • 위 두가지에서 장점을 뽑아 background와 instance를 다 구분할 수 있는 형태가 panoptic segmentation

 

2.2 UPSNet

  • Semantic Head , Instance head를 합쳐 Panoptic head를 만듦

 

  • Semantic head의 Xstuff 배경은 최종출력으로 들어감
  • Semantic head의 Xthing 물체 부분은 masking을 수행하여 Instance response와 결합한다
  • Unknown class를 만들어 출력으로 넣어줌 (기존 instance가 존재하는 부분을 image에서 빼고 나머지를 넣음)

 

2.3 VPSNet (for video)

  • 시간차를 두고 feature map을 뽑아 tracking을 하는 구조
  • 이전 시점의 영상의 feature가 다음 영상의 대응점이 어디로 가는지 motion map을 만듦
  • 현재시점의 feature맵과 이전 시점의 feature맵을 활용하면서 더욱 높은 detection이 가능. 시간연속적으로도 smooth함
  • 이전 roi와 현재 roi feature들을 비교하는 track head가 존재. 각 roi들의 index를 매칭해줌.
  • 나머지 BBox head, Mask head, Semantic head를 하나의 Panoptic map으로 만들어줌

 

 

3. Landmark localization

3.1 What is landmark localization?

 

3.2 Coordinate regression vs. heatmap classification

  • coordinate regression : usually inaccurate and biased -> 각 point의 x,y좌표를 2 dimensions으로 regression
  • heatmap classification : better performance but high computational cost -> 각 keypoint마다 한 채널씩 쌓아 classification하는 형태
  • Landmark location to Gaussian heatmap
    • x,y 좌표와 score가 존재할때 gaussian heatmap 생성하는 방법
    • heatmap -> location은 homework

 

3.3 Hourglass network

  • 영상전체를 작게 만들어서 receptive field를 크게 만들어서 큰 영역을 보고 landmark를 찾는다는 제안
  • skip connection이 있어 low level feature를 정확하게 측정하게끔 유도
    • UNet과 다르게 concat이 아니라 add해줌
    • 또한 skip connection을 할때 Convolution layer를 거침

 

3.4 Extensions

  • DensePose


  • 3D map을 UV map으로 표현 가능
  • UV map과 3D mesh의 관계가 변하지 않는다
  • 따라서 UV map을 통해 3D model을 표현할 수 있음

 

 

  • RetinaFace
    • 다양한 task를 한번에 수행함 (classification, box regression, landmarks regression)
    • task가 많아서 gradient가 많아 좀 더 강력한 학습효과가 있음
    • 따라서 FPN + Target-task branches가 가능함. 즉 어떤 task를 응용해서 활용하는것이 vision task의 디자인패턴중 하나

 

 

4. Detecting objects as keypoints

 

4.1 CornerNet 

  • Bounding box = {Top-left, Bottom-right} corners
    • backbone에서 나온 feature map의 네가지 헤드를 통해 heatmap을 통한 각각의 점들을 detection
    • Embedding head를 둬서 각각의 point들을 표현함으로써 학습
    • Heatmaps에서 point들을 추출을 해주고, Embeddings에서 corner matching을 수행

 

4.2 CenterNet

  • Bounding box = {Top-left, Bottom-right, Center} points
  • Bounding box = {Width, Height, Center} points -> 위 처럼 굳이 Center까지 필요없이 최소한의 정보로 표현
  • Performances