ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 📸 Instance/Panoptic segmentation + Landmark localization
    CS 공부/AI 2023. 4. 4. 22:29

    Instance segmentation


    Segmantic segmantation + 각각의 물체 구분 가능(id 부여)

     

    Mask R-CNN

    • RoIAlign이라는 새로운 Pooling layer 제안 (RoI Pooling 업그레이드 버전)
    • Faster R-CNN + Mask branch (모든 클래스에 대한 mask를 생성하고 분류 결과에 따라 참조)

    YOLOACT

    • real-time semantic segmatation 가능, one-stage
    • mask의 프로토타입을 추출해서 사용 (mask를 합성해낼 수 있는 component를 생성해냄)
      • 추후 mask로 합성될 수 있는 component 제공
    • component를 선형결합하여 다양한 mask 생성 (모든 클래스 x)

    component 선형 결합

    YoloactEdge

    • YOLOACT를 영상으로 확장
    • 실시간 segmentation 속도 향상

     

     

    Panoptic segmentation


    셀 수 있는 클래스에 대해서는 Instance Segmentation,
    셀 수 없는 클래스에 대해서는 Semantic segmentation을 수행

    UPSNet

    • Backbone으로 FPN 사용
    • Semantic Head: semantic logit 추출(Mask R-CNN 사용)
    • Instance Head: 객체 탐지, Box regression, mask logit 추출
    • Panoptic head: semantic head와 instance head의 결과를 합쳐서 출력해줌

      •  X: semantic head에서 구한 logits, X_thing과 X_stuff로 나누어짐
      • Y_mask: mask logits Y_i에 zero padding을 가하고 X_mask와 동일한 사이즈로 resize 
      • Instance head 최종=Y_mask + X_mask

     

    VPSNet

    1. 시간 차이를 가지는 두 영상에 대해서 t-τ 시간에서의 모든 픽셀에 대한 t 시간에서의 대응점을 추적하고 위치를 찾음
    2.  tτ에서 뽑힌 feature도 target frame인 t에서 찍은 것과 마찬가지로 tracking을 해준다
    3. 기존의 RoI(m gt-roi feats)와 현재 RoI(n roi feats)의 연관성을 찾아서 mxn obj match learning을 가능하게 해주는 matrix 생성
    4. 각각의 frame에서 object의 id를 추적해줌
    5. 이후는 UPSNet과 동일

     

     

    Landmark localization


    • 얼굴이나 pose estimation에 주로 사용
    • keypoint 좌표 예측/추적
    • Coordinate regression: 정확도가 떨어지고 편향됨
    • Heatmap classification: coordinate regression보다 성능이 좋지만 계산 속도가 느림
    • Landmark의 위치 (x,y)를 Gaussian heatmap으로 변환
    size=6*sigma+1 #출력 해상도의 크기
    x=np.arrange(0,size,1,float) 
    y=x[:,np.newaxis] # x:1xn y:nx1 정사각형으로
    x0=y0=size//2 # x0,y0 = center값
    if type=='Gaussian':
    	g=np.exp(-((x-x0)**2 + (y-y0)**2) / (2*sigma**2))  
    elif type='Cauchy':
    	g=sigma / (((x-x0)**2 + (y-y0)**2) + sigma**2)**1.5)

     

    Hourglass network

    • Stacked Hourglass Networks: 여러 hourglass module을 연속하여 잇는 방식
    • 여러 scale들에 대해 반복적인 차원축소, 차원 증가의 단계를 거침
    • 하나의 Hourglass는 UNet보다는 FPN의 구조와 비슷함
    • 기존의 몇몇 방식들이 여러 크기에 대한 feature를 뽑아내기 위해 분리된 다수의 파이프라인을 사용한 반면,
    • Stacked Hourglass network는 skip layer를 이용하여 하나의 파이프라인 만으로 spatial information을 유지

     

    DensePose

    • 모든 pixel의 Landmark를 알게되면 3D를 아는 것과 비슷함
    • UV map: 표준 3D 모델의 각 부위를 2D로 flatten하여 이미지 형태로 만들어 놓은 좌표 표기법
    • UV map을 출력해주는 DensePose는 3D mesh를 출력하는 것과 같음
    • DensePose R-CNN = Faster R-CNN + 3D surface regression branch (2D구조로 3D 예측)

     

    RetinaFace

    • FPN + Multi-task branches
      • 얼굴 판별, box regression, 5개의 landmark detection, 3d mesh regression 등 다양한 task를 한번에 해결
      • 장점: 성능향상 폭이 크다
      • backbone 네트워크에 원한느 task의 head만 만들어주면 다양한 응용이 가능!

     

     

    Keypoint 형태의 Detection 방법


    CornerNet

    • bounding box={Top-left, Bottom-right} corners
      • 왼쪽위, 오른쪽 아래 corner point만 가지고 bounding box 추출
    • 성능보다는 속도 강조

     

    CenterNet1,2

    • bounding box={Top-left, Bottom-right,Center} points
      • cornernet에서 center 포인트를 추가
    • bounding box={Width,Height,Center} points
      • 폭, 높이, 중심 포인트

     

    성능은 CenterNet=Faster R-CNN > RetinaNet > YOLOv3

     

     

    +

    (1) Mask R-CNN과 Faster R-CNN은 어떤 차이점이 있을까요? (ex. 풀고자 하는 task, 네트워크 구성 등)
    Mask R-CNN 은 기존 object detection task에서 사용되던 Faster R-CNN에 Mask branch를 추가해 classification , bbox regression , predicting object mask를 동시에 처리하는 모델이다.

    Faster R-CNN: RoI pooling을 사용, object detection을 위한 모델
    Mask R-CNN: 조금 더 업그레이드된 RoI Align을 사용, instance segmentation을 위한 모델

    (2) Panoptic segmentation과 instance segmentation은 어떤 차이점이 있을까요?
    Instance segmentation: 배경에는 관심이 없고, 움직이는 작업 물체에 대해서만 segmentation을 진행
    panoptic segmentation:이미지 내 모든 부분에 대하여 segmentation을 진행하는 구조

    (3) Landmark localization은 human pose estimation 이외의 어떤 도메인에 적용될 수 있을까요?
    게임분야, 증강현실/가상현실, 마케팅 등..
Designed by Tistory.