논문 | Composite Relationship Fields with Transformers for Scene Graph Generation (WACV 2023)
컨셉
SGG task를 위한 네트워크에는 크게 2가지 방식이 있다. object detector를 기반으로 feature를 추출하는 top-down 방식과 object들과 그 사이의 relation을 동시에 탐지하는 bottom-up 방식이 존재한다. (내 생각엔, top-down 방식이 two-stage, bottom-up 방식이 one-stage인 것 같다.)
SGG task는 보통 VQA, Image Captioning과 같은 다른 task를 위한 수단으로 많이 활용된다. 하지만 기존의 top-down 방식은 OD을 먼저 진행해야 하고, OD로 detection된 객체들 사이의 relation을 예측해야하기 때문에 (오브젝트가 N개 존재한다면, N(N-1) 개의 경우를 고려해야함) inference time이 오래걸릴 수 밖에 없다. 그래서 이를 완화하기 위해 bottom-up 방식이 많이 연구되고 있지만, 아직 top-down 방식에 비해서는 성능이 많이 부족하다.
subject와 object를 알면 그 사이에 어떤 관계가 있는지 높은 확률로 예측할 수 있다. 이런 correlation을 top-down 방식에서는 활용할 수 있지만, bottom-up에서는 object들과 relation을 동시에 추론하기 때문에 활용할 수 없다. 대신, bottom-up 방식은 context 정보를 활용할 수 있다. 보통은 이를 위해서 CNN을 활용하는데 이 때 object와 subject 사이의 거리가 멀면 정보를 잘 포착하기 어려워 효과가 떨어진다.
이 논문에서는 bottom-up 방식의 SGG 네트워크를 소개하고 있으며, 모든 오브젝트 사이의 relation을 예측해야하는 top-down과는 다르게 Composite Relationship Fields를 활용해서 object 사이의 relation을 표현한다. 또한 context 정보를 활용하기 위해 CNN이 아닌 Transformer를 활용하여 object와 subject 사이의 거리가 멀더라도 잘 포착할 수 있도록 한다.
Method
모델은 3개의 모듈로 구성되어 있다. 백본 네트워크에 이미지(3 x H x W)가 input으로 들어가고, C x H/s x W/s 차원의 feature map $F$를 만들어낸다. 이 feature map은 각 head에 input으로 들어간다. (C는 채널, s는 stride)
- feature map을 추출하는 backbone network
- object detection head
- relationship detection head
Object Detection
object detection head에서 사용한다. 백본에서 만들어진 $F$를 input으로 받아서 3개의 output을 뱉는다.
- heatmap $\hat{H}^O$: object의 중심과 category를 나타낸다.
- center offset
- object의 높이와 너비
Composite Fields for Relationship Detection
Pifpaf 라는 논문에 기반한 아이디어인 것 같은데 아래 과정을 통해 위의 그림과 같은 CoRF를 생성한다. relationship head의 feature map의 각 cell에 대해서, cell이 subject와 object 사이에 있다면 1) relationship의 존재 여부 2) 연관된 subject와 object의 위치를 예측한다. 이를 위해서 가능한 각 predicate에 대해서 아래 3가지를 output으로 뱉는다.
- confidence score
- 각각 subject와 object를 가리키는 2개의 vector
- subject와 object의 scale
따라서, feature map의 각 location $(i, j)$, channel $p$에 대해서 CoRF를 생성한다.
$$ a^p_{ij} = [c, x_s, y_s, x_o, y_o, s_s, s_o]^p_{ij} $$
$c$는 predicate $p$의 confidence score를 의미하고 $(x_s, y_s), (x_o, y_o)$는 각각 feature map에서의 subject의 상대 위치와 obejct의 상대 위치를 의미한다. $s_s, s_o$ 는 subject와 object의 scale을 의미한다. 결과적으로 relationship head는 $7 \cdot |p|$ 사이즈의 벡터를 만들어낸다.
Feature Refinement with Transformers
더 좋은 feature를 뽑기 위해서, transformer encoder를 활용한다. Multi-head self attention을 통해서 각 cell이 쿼리가 되어 주변 정보를 알 수 있고, 여러 개의 object에 동시에 attend 할 수 있다. 그리고 positional encoding을 통해서 object와 cell 사이의 상대적인 위치 정보도 파악할 수 있다. 또한, 위에서도 언급했듯이 bottom-up 방식에서는 context 정보를 활용하는데 CNN을 이용하는 경우에는 subject와 object 사이의 거리가 멀면 정보를 포착하기 어렵다. 하지만, self-attention은 global 하기 때문에 cell 거리에 상관없이 다 볼 수 있다.
Training Supervision
vectors, offsets, box size and scales는 L1 loss를 통해서 학습한다. confidence heatmap은 modified focal loss로 학습을 한다.
Scene Graph Decoding
- object detection head가 산출한 feature maps를 가지고 object의 위치를 뽑는다. (top 100 peaks)
- 3x3 maxpo 논oling을 진행한 후에 뽑아낸다.
- 각 peak에 해당하는 location은 object의 중심 위치를 의미하고 category, confidence score도 나타낸다.
- 또한 각 peak의 location에서 offset과 bbox size (높이 및 너비를 아니까)도 구할 수 있다.
- relationship detection head가 산출한 CoRF를 가지고 relation을 뽑는다.
- confidence score > threshold 인 relation만 추출
- detected object가 주어졌을 때 $(x_s, y_s), (x_o, y_o)$와 가장 가까운 object가 무엇인지를 알아내서 어떤 것이 subject고, 어떤 것이 object인지 파악한다.
RAF vs. CoRF
RAF는 FCSGG 논문에서 활용한 방식으로 relationship affinity fileds를 의미한다. 물체가 작아지면, hair와 head처럼 두 가지 object center가 겹칠 수 있다. RAF는 특정 cell을 가리키기 때문에 이런 문제가 발생할 수 있지만, CoRF는 real-value point를 가리키기 때문에 이런 문제가 없다.
Experiments
참고 자료
- Adaimi, George, David Mizrahi, and Alexandre Alahi. "Composite Relationship Fields with Transformers for Scene Graph Generation." Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2023.
- Kreiss, Sven, Lorenzo Bertoni, and Alexandre Alahi. "Pifpaf: Composite fields for human pose estimation." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019.