[2024 CVPR] From Pixels to Graphs: Open-Vocabulary Scene Graph Generation with Vision-Language Models

안녕하세요 이번 리뷰에서는 Scene Graph Generation (SGG) 분야의 논문을 다뤄보고자 합니다. 이전의 SGG 연구들은 주로 closed set 상황에서 발생하는 문제, long-tailed data bias 및 라벨링 부족 문제를 해결하는 데 초점을 맞췄습니다. 하지만 이러한 접근 방식들은 실제 세계에서 사용되는 다양한 라벨을 충분히 반영하지 못해, 이후 비전-언어(VL) 작업에서 도메인 차이가 발생할 수 있습니다. 이를 해결하기 위해, 최근에는 사전 학습된 비전-언어 모델(VLM)을 사용하여 다양한 open-vocabulary 설정에서 SGG 문제를 풀어내려는 시도가 이루어지고 있습니다. 하지만 여전히 제한적인 open-vocabulary 설정만을 다루고 있어, 추가 연구가 필요한 상황입니다.

이번에 소개할 논문은 더 general한 open-vocabulary 설정에서 SGG 문제를 해결하고자 하며, 시퀀스 생성을 기반으로 한 새로운 open-vocabulary SGG 프레임워크를 제안한 논문입니다. 그럼 리뷰 시작하겠습니다.

1. Introduction

Scene Graph Generation (SGG)의 주요 목적은 이미지에서 객체와 그 relation를 설명하는 그래프 표현으로 시각적 장면을 분석하는 것입니다. 이렇게 생성된 장면 그래프는 시각적 장면의 해석 가능한 표현으로 활용될 수 있습니다. 특히, SGG는 Visual Question Answering, image captioning, Referring Expressions, image retrieval같은 다양한 vision-language (VL) task에서 널리 사용됩니다.

하지만 기존 연구들은 주로 Closed-world setting에서 SGG 문제를 다루는 데 중점을 두었습니다. 데이터 불균형 문제와 부족한 라벨링 문제를 해결하기 위해 많은 선행연구들이 진행되어 왔지만, 이러한 방법들은 실제 세계의 다양한 시각적 relation의 일부만을 포함하고 있기 때문에 불완전한 scene representations을 만들고 이러한 제한된 라벨 공간은 vision-language task의 representations으로 사용될 때 domain gaps을 발생시킬 수 있습니다.

이러한 한계를 해결하기 위해 최근 연구들은 사전 학습된 vision-language 모델(Vision-Language Models, VLM)의 이미지-텍스트 매칭을 활용하여 open-vocabulary SGG 문제를 다루기 시작했습니다. 그러나 이러한 시도들은 대부분 open-vocabulary SGG 문제를 단순화하여 새로운 entities만을 허용하거나, 주어진 entities 쌍에 대한 relation를 분류하는 task에만 중점을 둡니다. 아직 일반적인 open-vocabulary 설정에서 end-to-end SGG 모델을 구축하는 문제는 해결되지 않았으며, 기존 방법들은 VLM의 relation 모델링 능력을 강화하기 위해 추가적인 사전 학습 단계를 요구하여 대규모 모델에서는 높은 학습 비용을 발생시킨다고 합니다.

따라서 이 연구에서는 일반적인 open-vocabulary 설정에서 알려진 relation와 새로운 시각적 relation triplets을 모두 생성하는 장면 그래프 생성을 목표로 합니다. 이를 위해, 저자는 사전 학습된 VLM의 이미지-텍스트 생성을 활용한 end-to-end 프레임워크를 제안합니다. 이 프레임워크는 Pixels to Scene Graph Generation with Generative VLM (PGSG)로 저자가 정의하였으며, SGG 문제를 이미지-시퀀스 생성 문제로 정의하고 생성형 VLM을 기반으로 한 fine tuning을 도입합니다. 기존 방법들이 이미지-텍스트를 매칭하는 VLM에 의존하는 것과 달리, 저자의 방법론은 VLM의 시각-언어적 지식을 활용하면서도 추가적인 사전 학습을 필요하지 않습니다.

또한, SGG 문제를 시퀀스 생성 문제로 변환함으로써 다양한 vision-language task을 생성형 프레임워크 내에서 통합하고, visual relation 지식을 다른 VL task으로 원활하게 전이할 수 있습니다. 구체적으로, 저자는 세 가지 주요 구성 요소로 이루어진 이미지-그래프 생성 프레임워크를 개발했습니다.

첫째, Scene Graph Prompts를 도입하여 relation-aware tokens을 포함한 시퀀스 표현으로 장면 그래프를 변환합니다. 둘째, 사전 학습된 VLM을 사용하여 각 입력 이미지에 대해 대응하는 장면 그래프 시퀀스를 생성합니다. 마지막으로, 저자는 relation triplets의 위치와 category를 추출을 쉽게 추가할 수 있는(plug-and play) relation 모듈을 설계하여 최종 장면 그래프를 생성합니다. 이 생성 파이프라인은 target SGG 데이터셋에서만 fine tuning이 필요하며, 이를 통해 VLM의 대용량 모델로 다양한 relation 술어를 포함한 장면 그래프를 생성할 수 있게 됩니다.

2. Preliminary

2.1 Scene Graph Generation

장면 그래프 생성의 목표는 이미지로부터 Gsg = {Ve, R}라는 장면 그래프를 생성하는 것입니다. 이 그래프는 시각적 relation R = {rij}와 Nv개의 객체 V = {vi}으로 구성됩니다. relation triplet rij = (vi, ceij, vj)는 i번째 객체와 j번째 객체 사이의 relation를 나타내며, ceij는 predicate category를 의미합니다. 객체 vi = {cvi, bi}는 객체 category 공간 Ov에서의 category 레이블 cvi와 이미지 내 위치를 나타내는 바운딩 박스 bi로 구성됩니다. predicate category ceij는 predicate category 공간 Oe에 속합니다.

이 연구에서는 open-vocabulary predicate SGG 설정에 중점을 둡니다.  open-vocabulary predicate SGG에서 predicate category 공간 Oe는 이미 학습된 기본 클래스 Oeb와 보지 못한 새로운 클래스 Oen으로 나뉩니다. 이전 연구들은 보지 못한 객체 category Ov로 relation를 탐지하거나, 주어진 GT 객체에서 새로운 predicate를 분류하는 것에 집중했지만, 저자는 보지 못한 predicate 개념을 생성하는데 집중했습니다.

2.2. Vision-language Models

본 연구에서는 detector-free BLIP과 instruct-BLIP를 비전-언어 모델(VLM)의 base로 사용했습니다. 이 모델은 비전 인코더-텍스트 디코더 아키텍처를 통해 이미지에서 시퀀스를 생성하는 작업을 수행합니다. 비전 인코더는 입력된 이미지를 처리하여 시각적 특징을 추출합니다. 그런 다음, 텍스트 디코더는 토큰 predictor를 사용하여 이 시각적 특징을 기반으로 시퀀스를 생성합니다. 시퀀스는 여러 토큰으로 이루어져 있으며, 각 토큰에는 vocabulary space에서의 분류 점수가 할당됩니다.

3. Method

저자가 제안하는 프레임워크는 Fig2에 나와있으며 크게 세 가지 주요 요소로 구성됩니다: 1. scene graph sequence generation, 2. relation triplet construction, 3. adaptation to downstream VL tasks .

먼저, 입력 이미지로부터 VLM의 장면 그래프 시퀀스 프롬프트를 사용하여 장면 그래프 시퀀스(ssg)를 생성합니다. 그 후, relationship construction module이 생성된 시퀀스 ssg에서 관계 정보를 추출하여 장면 그래프(Gsg)를 구성합니다. 이어서, SGG 프레임워크의 learning and inference pipeline을 설명하고 마지막으로, Θsg를 사용하여 VLM 모델을 초기화시키고, scene graph representation knowledgeVL 작업으로 전이합니다. 그럼 이제 각각의 요소들을 더 자세히 알아보겠습니다.

3.1 Scene Graph Sequence Generation

장면 그래프 시퀀스 ssg는 관계 triplets R로 구성됩니다. 이를 구현하기 위해 저자는 다음과 같은 scene graph sequence prompt를 제안합니다: “ Generate the scene graph of [triplet sequence] and [triplet sequence] … ” 이 프롬프트는 두 가지 주요 요소로 구성됩니다: ”Generate the scene graph of”라는 접두사 지시문K개의 관계 triplet 시퀀스로, 이들은 “and” 또는 “,”로 구분됩니다. 구체적으로, 각 트리플릿 시퀀스는 주어-술어-목적어의 자연어 문법에 따라 변환됩니다. 예를 들어, “주어 [ENT] 술어 [REL] 목적어 [ENT]“의 형식으로 표현됩니다. 여기서 주어목적어는 객체 카테고리의 이름을, 술어는 관계를 나타내는 단어입니다. 이러한 관계 구조와 객체의 위치를 명시적으로 표현하기 위해 [ENT][REL]이라는 relation-aware token을 도입합니다.

VLM의 텍스트 디코더는 시각적 특징과 접두사 지시문을 입력으로 받아 ssg를 생성합니다. 이 과정은 이미지 캡션 생성과 유사한데 자연어 기반의 vocabulary space을 사용하여 시각적 관계를 생성하며, 이후의 모듈에서는 relation-aware tokens.을 사용하여 시퀀스에서 spatial 및 categorical 정보를 추출하고, 인스턴스 단위의 관계 triplet을 구성합니다.

3.2 Relationship Construction

일반적으로 visual relation triplet rij는 술어 category label, 객체의 위치, 그리고 객체의 카테고리 정보를 포함합니다. 관계 구성을 위한 목표는 ssg에서 이 공간적 정보와 category label을 추출하여 관계 triplet을 완성하는 것입니다. 이 과정은 두 가지 하위 모듈로 나뉩니다:

  1. Entity Grounding Module: 객체의 위치를 출력하는 역할을 합니다.
  2. Category Convert Module: 언어 모델의 예측을 vocabulary 공간에서 category 공간으로 변환하여 relation triplet을 완성합니다.

3.2.1 Entity Grounding Module

Entity Grounding Module은 생성된 관계를 장면 그래프 시퀀스 내에서 위치시키기 위해 객체의 바운딩 박스를 예측합니다. 이 모듈은 객체 토큰 시퀀스에서 각 객체의 위치를 예측하여 바운딩 박스를 계산합니다

Fig. 3에서 보여지는 것처럼, 각 토큰 시퀀스 “tvi [ENT]“에 대해 hidden states Hi = [ht1, …, h[ENT]Tv] ∈ RTv × d에서 위치 정보 bi를 추출합니다. 이 hidden states는 객체의 특징을 잘 표현한 정보이기 때문에 이를 바탕으로 쿼리 Q를 생성합니다. 그 후, 이 쿼리 벡터와 이미지 특징 사이에 어텐션 메커니즘을 적용하여 객체의 정확한 위치를 찾아냅니다. 이 과정은 다음과 같습니다. 먼저, [ht1, …, h[ENT]Tv]를 쿼리 벡터 qenti ∈ Rdq로 변환합니다.

그 후, 쿼리 QZv(visual feature) 사이의 크로스 어텐션을 통해 2N개의 객체 토큰 시퀀스의 쿼리에서 bi를 디코딩합니다. 이 과정은 트랜스포머 인코더 Fenc(·)와 디코더 Fdec(·)를 사용하여 이루어집니다. 마지막으로, B(바운딩 박스)는 feed-forward network FFN(·)에 의해 예측됩니다.

이 과정을 통해 image-level의 장면 그래프 시퀀스에서 장면 그래프를 생성할 수 있게 됩니다.

3.2.2 Category Conversion Module

Category Conversion Module은 어휘 공간(Cvoc)에서 예측된 토큰 점수를 SGG 벤치마크의 객체 범주(Ov)와 술어 범주(Oe)로 변환합니다. 이를 위해 먼저 대상 범주 집합인 OvOe토크나이징하여 각 객체와 술어 토큰 시퀀스 tectvc를 생성합니다:

여기서 c는 범주 인덱스를, T는 시퀀스 길이를 나타냅니다. 이후, tvctec의 대응 토큰 인덱스를 사용하여 어휘 점수 ps로부터 범주 예측 점수 peijpvi를 구성합니다:

추가적으로, 생성된 토큰 tvte가 주어진 category 이름과 정확히 일치할 경우, 이 category의 점수를 βi로 증폭합니다. 이를 통해 Category Conversion Module은 정의된 category에 대한 SGG 성능의 평가와 분석을 가능하게 합니다.

3.3 Learning and Inference

SGG 훈련을 위해, 저자는 두 가지 손실을 사용하는 멀티태스크 손실 방식을 적용합니다: 1. Language modeling loss (Llm), 2 . entity grounding loss(Lpos). Llm은 VLM 모델에서 다음에 나올 토큰을 예측하는 데 사용하는 elf-regressive language 모델링 손실입니다. 이는 이전에 생성된 토큰들과 이미지에서 추출된 시각적 특징을 기반으로 다음 토큰을 예측하는 방식입니다. 저자는 모델이 주어진 시퀀스에서 각 토큰을 정확하게 예측할 수 있도록 손실을 최소화하여 학습합니다.

Lpos은 entity grounding 모듈에서 객체의 위치를 나타내는 바운딩 박스를 정확하게 예측하기 위한 손실입니다. 예측된 바운딩 박스와 실제 객체 위치 사이의 차이를 계산하는 방식으로, GIOU 및 L1 loss을 사용하여 이 차이를 줄이는 방향으로 학습합니다.

추론 단계에서는, 먼저 VLM을 사용하여 장면 그래프 시퀀스를 생성합니다. 그 후, relation construction 모듈을 통해 시퀀스에서 visual relation를 구성할 수 있도록 category 레이블과 공간 위치 정보를 추출합니다.

Scene Graph Sequence Generation

Scene Graph Sequence Generation은 VLM의 이미지-텍스트 생성 방식을 통해 만들어집니다. 이 과정에서 저자는 더 다양한 relation를 포함하는 시퀀스를 생성하여, 장면에 대한 포괄적이고 정확한 그래프 표현을 목표로 합니다. 이를 위해 nucleus sampling 이라는 방법을 사용하여 한 이미지에 대해 여러 개의 시퀀스를 생성합니다. 이를 통해 모델은 다양한 시각적 객체와 relation를 포착하여 장면 그래프를 예측할 수 있습니다.

Relationship Triplet Construction

생성된 장면 그래프 시퀀스에서 relation triplet을 구성하기 위해, 먼저 주어와 목적어 객체의 토큰 시퀀스 및 술어를 추출합니다. 이를 위해 “주어 [ENT] 술어 [REL] 목적어 [ENT]”와 같은 특정 패턴을 매칭하는 규칙을 사용하여 주어, 술어, 목적어를 식별합니다. 그런 다음, relation 구성 모듈을 통해 객체들의 위치와 술어 점수를 계산하여 최종적으로 relation triplet을 구성합니다.

3.4 Adaptation to Downstream VL Task

Fig. 2의 프레임워크에 나와있는 것처럼 저자는 이미지-텍스트 생성 방식을 통해 관계 모델링에 필요한 지식을 쉽게 전이할 수 있도록 통합된 방식을 사용합니다. 먼저, VLM을 사용하여 비전-언어(VL) task를 더 잘 수행할 수 있도록 모델을 fine-tuning합니다. 이를 위해 SGG 모델에서 사용된 비전 인코더와 텍스트 디코더의 파라미터를 초기화합니다. 이 과정에서 텍스트 디코더의 토큰 예측기는 사전 학습된 가중치를 그대로 유지하여 vocabulary 예측의 정확성을 보장합니다.

또한, SGG 학습에 사용되지 않았던 텍스트 인코더와 같은 VLM의 다른 모듈들은 이전에 학습된 가중치를 유지합니다. 이런 방식으로, SGG 학습을 통해 얻은 지식을 활용하여 비전-언어 작업을 더 잘 수행할 수 있도록 모델을 개선합니다.

4. Experiments

저자는 SGG 작업에서 제안된 방법의 성능을 평가하기 위해 SGDet, PCls, SGCls라는 세 가지 평가 기준을 사용합니다. 이 평가 기준들은 이전 연구에서 제안된 방식입니다. 평가 방법으로는 R@KmR@K를 사용합니다. R@K는 상위 K개의 예측에서 모델이 맞힌 비율을 나타내는 리콜 값이고, mR@K는 클래스 간의 균형을 고려한 리콜 값을 의미합니다. 즉, mR@K는 모든 클래스에서의 성능을 고르게 평가하기 위해 사용됩니다. 또한 새로운 클래스에 대한 mR@K도 따로 계산하여 모델이 보지 못한 관계(새로운 술어)를 얼마나 잘 일반화하는지를 평가합니다.

4.1 Open-vocabulary SGG

저자는 VG, PSG, OIv6 데이터셋에서 CaCao, SVRP, VS3 등의 OV-SGG 방법과 제안된 방법을 비교하여 평가합니다. 저자는 close vocabulary SGG에서 가장 균형 잡힌 성능을 가진 SGTR을 open vocabulary SGG에 맞추어 사용합니다. close SGG 방법을 predicate 오픈 vocabulary 에 적용하기 위해, 저자는 기본 카테고리만으로 모델을 훈련시키고, 추론 시 새로운 카테고리의 classifier기 가중치를 0으로 설정합니다.

VG

저자의 방법은 VG 데이터셋의 PCls, SGCls, SGDet 설정에서 이전 방법들에 비해 가장 좋은 성능을 보여줍니다. 저자의 방법은 SGCls에서 SVRP 대비 base + novel 클래스 mR@100과 R@100에서 각각 6.5 및 5.7 포인트 향상시킵니다. 저자는 이미지-텍스트 생성 방식의 pretrain VLM을 사용하여, 특정 작업을 위해 사전 학습된 SVRP 모델보다 우수한 성능을 보입니다. SGDet 설정에서는 VS3와 SGTR 두 가지 베이스라인과 비교하며, 모든 카테고리에서 각각 2.9 및 0.9 포인트 향상된 mR@100과 R@100을 달성합니다.

PSG

PSG 데이터셋에서 저자의 방법론은 base 클래스와 novel 클래스 모두에서 유의미한 성능 향상을 보입니다. 전체 카테고리 집합에서 SGTR에 비해 각각 mR@100에서 9.4, R@100에서 14.3 포인트 향상을 보였습니다. 새로운 predicate 카테고리의 경우, PGSG는 mR@100에서 SGTR 대비 4.5 포인트 더 높은 성능을 기록했습니다.

OpenImage

저자 방법은 OpenImage V6 벤치마크에서도 우수한 성능을 보입니다(표 1). SGTR 베이스라인과 비교할 때, 저자는 mR@100과 R@100에서 각각 5.3 및 4.9 포인트 더 나은 성능을 달성했습니다.

4.2 Model Analysis

이 섹션에서는 sequence generation-based SGG framework를 분석합니다. 장면 그래프 생성을 위한 다양한 프롬프트 접두사가 미치는 영향을 조사하고, 생성된 장면 그래프 시퀀스의 다양성, 품질, 시간 소비를 평가합니다.

Quality of Scene Graph Sequence

저자는 장면 그래프 프롬프트를 기반으로 triplet 시퀀스를 분석하기 위해 heuristic 규칙을 사용합니다. 저자의 접근 방식의 효과를 보여주기 위해 [REL] 토큰 발생 빈도와 다양한 시퀀스 길이에서 생성된 관계 triplet의 수를 계산합니다. (표 5). 결과는 VLM이 형식화된 장면 그래프 시퀀스를 생성하며, heuristic 규칙이 대부분의 relation triplet 효율적으로 검색함을 보여줍니다.

Time Consumption of Sequence Generation

저자의 프레임워크는 생성된 시퀀스의 길이를 조절하여 성능과 계산 비용 간의 균형을 잘 유지하는데 표 4에서 볼 수 있듯이, 출력 길이를 50% 줄였을 때도 성능이 크게 떨어지지 않으며, 2단계 SGG 방법과 비교하여 유사한 추론 시간을 유지합니다

4.5 Downstream VL-Tasks

저자는 PGSG를 Visual Grounding, Visual Question Answering(VQA), Image Captionin과 같은 VL 작업에 적용했습니다. 이를 통해 초기 사전 학습된 모델과의 비교를 통해, 명시적인 장면 표현 모델링이 비전-언어 추론에 미치는 영향을 평가했습니다.

Visual Question Answering

GQA 벤치마크에서 PGSG는 전체 정확도에서 초기 사전 학습 모델보다 1.7 포인트 더 높은 성능을 보였습니다. 또한, 저자의 통합된 SGG 훈련은 BLIPv2 VLM의 GQA에서의 제로샷 성능을 32.3에서 33.9로 향상시켰으며, 모든 질문 유형에서 성능이 개선되었습니다.

Image Captionin

COCO 에서 Image Captionin 성능을 평가했습니다. 결과는 저자의 프레임워크가 BLIP 및 BLIPv2와 같은 초기 사전 학습 VLM들과 유사한 성능을 달성했음을 보여줍니다.

Visual Grounding

저자의 방법은 RefCOCO의 검증 및 테스트 A/B 세트에서 각각 2.9 및 5.4 포인트, RefCOCO+와 RefCOCOg에서 각각 2.7, 1.2, 2.5 포인트 더 높은 성능을 기록했습니다. 이 결과는 SGG 모델링에서의 지식 전이가 효과적임을 보여주며, 통합된 SGG 훈련이 Visual Grounding에서의 추론 및 위치 결정 성능을 향상시켰다는 것을 나타냅니다.

Author: 정 의철

4 thoughts on “[2024 CVPR] From Pixels to Graphs: Open-Vocabulary Scene Graph Generation with Vision-Language Models

  1. 안녕하세요, 정의철 연구원님. 좋은 리뷰 감사합니다.
    해당 task에 대한 리뷰를 처음 읽어보는데, 상당히 어렵네요.. Open Vocabulary Scene Graph Generation에 대한 데이터 확보가 어려워서 VLM을 활용한 프롬프트로 Scene Graph를 생성하는 방법론으로 이해했습니다.
    평가 방법에 대해 질문이 있는데요, 예측에 대해 모델이 맞힌 비율을 나타낸다고 했는데, 그럼 정답 그래프에 대한 엣지와 노드를 얼마나 많이 맞추었는지를 측정하는 것인가요? 잘 감이 오지 않아 질문 드립니다.
    감사합니다.

    1. 안녕하세요 재연님 질문감사합니다.
      SGG의 평가방식은 크게 세 가지 프로토콜로 나뉩니다
      PredCls (Predicate Classification): 객체 클래스와 위치가 주어지고, 객체 간의 관계만을 예측합니다.

      SGCls (Scene Graph Classification): 객체 위치는 주어지고, 객체의 클래스와 관계를 예측합니다.

      SGDet (Scene Graph Detection): 객체 검출과 관계 예측을 동시에 수행합니다. 모델은 이미지에서 객체를 탐지하고 그 관계까지 예측합니다.

      각 프로토콜에서 모델의 성능은 R@K로 평가되며 R@K는 모델이 예측한 상위 K개의 관계 중에서 정확한 관계가 얼마나 포함되어 있는지를 측정하는 재현율(Recall) 기반 지표입니다
      감사합니다.

  2. 안녕하세요 정의철 연구원님. 좋은 리뷰 감사합니다.

    결국 이 논문의 핵심은 사전 학습된 VLM을 활용해 다양한 Open-vocabulary 설정에서 SGG 문제를 해결하려는 새로운 프레임워크를 제안한 것이라고 이해했습니다.
    한 가지 궁금한 점이 있는데요, 시퀀스 생성 방식으로 Scene Graph를 생성할 때 unseen predicate에 대해 모델이 어떻게 일반화하는 것일까요? 본문에서는 unseen predicate를 생성한다고 했는데, 실제로 학습된 predicate와 unseen predicate를 어떻게 처리하는 지 궁금합니다.

    감사합니다.

    1. 안녕하세요 혜원님 좋은 질문 감사합니다.
      사전 학습된 VLM 모델은 훈련된 predicate뿐만 아니라 언어적으로 연관된 새로운 관계(predict)를 처리할 수 있습니다. 또한 Category Conversion Module은 모델이 예측한 관계를 SGG 벤치마크에서 사용하는 한정된 관계 카테고리로 변환하는데, unseen 관계도 이 변환 과정에서 처리됩니다. 만약 모델이 새로운 관계를 예측하더라도, 이 관계를 기존의 학습된 카테고리와 매핑하여 평가할 수 있도록 도와줍니다
      감사합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다