image

paper

TL;DR

  • task : one-stage scene graph generation
  • problem : object 뽑고 그걸 기반으로 relation을 뽑는 factorization이 한계가 있다. relation이 주어졌을 때 subject, object를 더 잘 뽑을 수 있다.
  • idea : 1) subject가 주어졌을 때 object를 조건부로, subject, object가 주어졌을 때 predicate를 조건부로 모델링 2) t개의 레이어가 각각 sub, obj, predicate를 output하고 이게 다음 레이어에도 전파됨.
  • architecture : CNN backbone + 3개({s, p, o})의 transformer decoder. positional encoding이 subject는 learned PE, object는 subject의 PE와 object PE MHSA한 거, predicate는 subject와 object를 합한것과 MHSA 하는 식으로 conditional PE를 만듦. {s, p, o} 각각의 query도 이전 레이어의 {s, p, o}에 대한 query들을 가져와서 MHSA 해줌.
  • objective : ce loss + bbox loss for subject / object / predicate + loss re-weighting for tail
  • baseline : MOTIF, HOTR, SGTR
  • data : Visual Genome, Action Genome
  • result : SOTA. mR 성능이 매우 좋넹
  • contribution : transformer 구조만으로 좋은 성능!
  • limitation or 이해 안되는 부분 : object detection은 그냥 쌩깠음. 그래서 Detr Decoder 없음.

Details

image

Architecture

image

Conditional Positional Encodings

image
  • $\tilde q^t_{x,i} =q^t_{x,i} +p^t_{x,i}$ ; x는 {s, o, p} 중 하나.

Conditional Queries

image
  • $q^t_{x,i}$는 t번째 레이어의 i번째 인덱스의 feature representation

Result

image

harmonic Recall은 얘네가 제시한 evaluation metric인데 recall, mR 섞은거 AP는 평가를 안했네! 사나이다!

bipartite matching

ground truth relation을 no relation으로 padding하고 전체 joint matching cost를 최소화하는 그래프를 찾는 것으로 함. (굳이? 흠..) image

image

우리의 loss! image

Implementation Details

  • ResNet-101
  • 6 layers, feature size 256
  • 300 queries
  • bs = 12, lr=10e-4 gradually decaying
  • NMS 사용
    • class 마다 각각 NMS가 붙었고, IoU overlap을 체크하면서 post-NMS bbox랑 붙었다.
  • 50 epochs. T4 4장.

Ablation

number of queries

image

생각보다 num_queries 크다고 달라지는게 없네

refinement의 효과

image