300x250

NeurIPS 학회의 3D point cloud 데이터에서 object간의 상관 관계를 예측하면서 scene을 이해하는 새로운 방법론을 제시한 논문을 리뷰해보고자 한다.

 

논문 링크는 다음과 같다.

 

https://proceedings.neurips.cc/paper/2021/hash/9a555403384fc12f931656dea910e334-Abstract.html

 

Knowledge-inspired 3D Scene Graph Prediction in Point Cloud

Requests for name changes in the electronic proceedings will be accepted with no questions asked. However name changes may cause bibliographic tracking issues. Authors are asked to consider this carefully and discuss it with their co-authors prior to reque

proceedings.neurips.cc

 

 

목차

     

     

     

     

    Prerequisite

     

    먼저, 논문을 이해하기 앞서 Scene graph, Auto-encoder, GNN에 대한 사전 지식이 필요하다.

    위 개념들을 간단히 정리하고 논문을 리뷰하자.

     

     

     

     

    1) Scene Graph

     

    Scene graph란, 그래픽 장면(graphical scene)의 논리적이고 공간적인 표현을 처리하는 데이터 구조이다.

    graph나 tree 구조의 노드의 집합이며, 대표적으로 관련된 형상과 오브젝트를 단일 오브젝트처럼 쉽게 조작할 수 있는 복합 개체로 grouping하는 기능을 한다.

     

    벡터 기반 그래픽 편집에서 scene graph의 각 node는 document의 작은 단위(타원, Bezier path 등의 형상을 나타내는 object)를 표현한다.

    또한, layer는 여러 형상과 형상 그룹이 위치할 공간의 개념이다. 이러한 layer가 쌓여 document를 이루게 된다.

     

    예를 들어, parent(상위 layer)에 위치한 오브젝트를 공간 상에서 움직이면 그 children(하위 layer)에 위치한 오브젝트들이 따라서 움직이고, 그보다 더 하위에 있는 오브젝트 또한 따라 움직여야 할 것이다.

    이러한 움직임은 변환행렬의 곱셈으로 구현되고, 부모(오브젝트)의 변환행렬을 자식에게 곱해주는 방식으로 자식이 부모를 따라 움직이게 된다.

     

    Array나 linked list 자료 구조를 통해 간단한 scene graph를 구현할 수 있다.

     

     

     

     

    2) Auto-encoder

     

    Auto-encoder는 차원 축소 등을 위해 Representation Learning 또는 Feature Learning을 Unsupervised Learning 형태로 학습하는 신경망을 말한다.

    여기서 representation learning(or feature learning)이란, feature detection 또는 classification을 위해 필요한 feature 값들을 자동으로 발견하는 기법을 말한다.

    Unsupervised Learning이므로, labeling이 포함되지 않은 데이터만 주어지며, 그 data의 pattern이라 볼 수 있는 'latent feature(latent space)'를 학습하는 것이 목적이다.

     

    Auto-encoder의 구조는 다음과 같다.

     

    Structure of Autoencoder

     

    위 예시에서 encoder는 6차원의 데이터를 3차원의 latent feature로 변환해주고, decoder는 3차원의 latent feature를 6차원 데이터로 변환해준다.

     

    • Encoder : 입력으로 \(\mathbf{x}\)를 받아 latent feature(특징 값)를 출력하는 신경망을 말한다.
    • Decoder : 입력으로  latent feature를 받아 출력 값으로 변환하는 신경망을 말한다.
    • Latent feature : 신경망 내부에서 추출된 특징 값들을 말한다.

     

    머신 러닝의 성능은 데이터의 양과 질에 의존적이다.

    양질의 데이터를 얻기 위해서는 충분한 수의 데이터를 모으고, 모은 데이터 간에 어떤 feature가 유용한지 확인하는 과정을 거친다.

    이렇게 feature의 유용성을 확인하는 과정을 feature selection 또는 feature extraction이라 한다. 이는 머신러닝 과정에서 가장 핵심적인 전처리 과정이다.

    또한 고차원의 입력 값에 대해 모든 feature가 필요하지 않은 경우가 많다. 이때 관찰 대상을 잘 설명할 수 있는 latent space는 실제 observation space보다 작을 수 있는데, 이와 같이 observation space 상의 샘플을 기반으로 latent space를 파악하는 것을 차원 축소(dimensionality reduction)라 한다.

     

    위 예시 사진에서 보듯이, encoder에서 dimensionality reduction이 일어나고, 출력으로 차원이 축소된 latent feature값들을 내보낸다.

    Auto-encoder의 목적이 바로 이러한 latent feature를 뽑아내는 것이다.

     

    Decoder는 encoder가 뽑아낸 latent feature 값들이 정말 특징을 잘 포함하고 있는지 확인하기 위한 용도로 사용된다.

     

     

     

     

    3) Graph Neural Network (GNN)

     

    GNN이란, graph 구조를 통해 신경망을 구성하는 인공 신경망 기법을 말한다.

     

     

     

    (1) Graph 자료구조

     

    graph는 node(vertex)와 edge의 연결 구조를 가져, 관계나 상호작용을 나타내는 데이터를 표현할 때 많이 사용한다.

    보통 \(\mathcal{G} = (\mathcal{V}, \mathcal{E}) \)로 정의하며, \(\mathcal{V}\)는 노드의 집합이고, \(\mathcal{E}\)는 두 노드를 잇는 엣지의 집합이다. 예를 들어 아래와 같은 그래프를 \( \mathcal{G} = ( \{1, 2, 3\}, \{ \{1, 2\}, \{2, 3\}, \{1, 3\} \} ) \)와 같이 정의한다.

     

    Graph example

     

    Graph 자료구조는 다음과 같은 상황에 많이 이용된다.

    1. 관계, 상호작용 등과 같은 추상적인 개념을 다룰 때 많이 사용한다.
    2. 복잡한 문제를 간단한 표현으로 단순화하거나 다른 관점으로 표현할 수 있다.

     

    논문 상에서 graph의 노드는 어떤 형상을 나타내고, 노드 사이를 잇는 엣지는 형상 간의 관계 (무엇이 무엇의 왼쪽에 있다, 오른쪽에 있다 등)를 나타내는데 사용된다.

     

     

     

    (2) GNN

     

    GNN은 그래프에 직접적으로 사용할 수 있는 신경망이다. 크게 다음과 같이 세 가지로 나뉜다.

    1. Recurrent Graph Neural Network
    2. Spatial Convolutional Network
    3. Spectral Convolutional Network

     

    GNN의 핵심은 노드가 이웃 노드와의 연결로 정의된다는 것이다.

    만약 어떤 노드의 이웃과 연결을 다 끊게 되면, 그 노드는 의미가 없어진다.

     

    GNN은 주로 연결 관계와 이웃 노드의 상태를 이용하여 각 노드의 상태를 업데이트함으로써 학습(Learning)하고, 마지막 상태를 통해 예측(Prediction)을 진행한다.

     

    본 논문에서 사용되는 GNN은 'Spatial Convolutional Network'로, CNN과 비슷한 개념을 갖는다.

    CNN에서는 Filter를 통해 중심 픽셀과 주변 픽셀을 한꺼번에 학습한다.

    이와 마찬가지로, Spatial Convolution Network에서는 중심 노드와 edge로 연결된 이웃 노드들을 한꺼번에 학습한다.

     

    GNN의 목적은 다음과 같다.

    • Node Classification
      • node embedding을 통해 노드를 분류한다.
    • Link Prediction
      • 그래프 상의 노드 간 관계를 파악하고, 노드 사이의 연관성이 얼마나 있는지 예측한다.
    • Graph Classification
      • 그래프 자체를 여러가지 카테고리로 분류하는 데 사용된다.

     

    GNN의 사용 사례를 보자.

     

    먼저, 본 논문에서는 'Scene Graph Generation by Iterative Message Passing'의 목적으로 사용된다.

    CNN 방법은 이미지에서 object detection을 우수한 성능으로 해내지만, 물체들 사이의 관계까지는 알지 못한다.

    따라서 CNN으로 탐지된 물체를 통해 scene graph를 만들어 관계를 파악할 수 있다.

     

    반대로, Image Generation에 사용될 수도 있다.

    기존에는 이미지 생성을 위해 Generative Adversarial Network(GAN) 또는 Auto-encoder를 사용하였으나, GNN을 사용하여 scene graph로부터 이미지를 생성할 수도 있다.

     

     

     

     

     

     

    0. Abstract, Conclusion

     

     

     

     

    1) 개요

     

    Prior Knowledge Integration 방법은 그래프(graphical representation)를 통해 semantic 정보와 이들 간의 관계를 알아보는 데 도움을 준다.

    하지만 이것의 의미있는 abstraction이나 intervention은 여전히 이루어지지 못하고 있다.

     

    본 논문에서는 오직 point cloud에 기반한 knowledge-inspired 3D scene graph prediction 방법을 사용한다.

     

     

     

     

    2) 수학적 모델링 단계

     

    수학적 모델링 단계에서, task를 두 개의 하위 문제로 나타냈다.

    1. Knowledge Learning
      • Knowledge Embedding Learning : graph auto-encoder를 통해 class-dependent prototypical knowledge를 추출한다.
      • perceptual confusion 없이 오직 semantic category information 기반으로 추출한다.
    2. Scene Graph Prediction
      • 여기서, Scene Graph Prediction은 사전 지식(prior knowledge)으로부터 학습된다.
      • 정확한 object(목적어)와 predicate(서술어) 분류 성능을 위해 scene graph prediction task에 사전 지식 embedding을 통합했다.

     

    기존 방법은 knowledge embedding과 암호화된 시각 정보로부터 전형적인 패턴을 학습했다.

    하지만 새로 제안한 방법은 비슷한 외관 때문에 생긴 misunderstanding과 perceptual confusion을 억제한다(suppress).

     

     

     

     

    3) Network 설계 단계

     

    Network design 단계에서는 one-hot label과 graphical structure를 갖는 graph autoencoder를 사용한다.

    이는  자동으로 class-dependent representation과 topological pattern을 추출해내고, 이를 통해  prior knowledge는 perceptual error (noise)를 피할 수 있게 된다.

     

    또한 Scene Graph Prediction 모델을 통해 관련 prototype 지식과 perceptual 정보를 통합함으로써 relationship triplet을 예측한다.

     

    Knowledge-inspired 3D Scene Graph Prediction 방법은 knowledge embedding 표현을 성공적으로 학습할 수 있고, prior knowledge를 통해 relationship prediction의 정확도를 효과적으로 높일 수 있음을 실험을 통해 확인했다.

     

     

     

     

     

    1. Introduction and Motivation

     

    Scene Graph는 semantic element와 scene에서 그 요소들 간의 복잡한 관계를 암호화하고, 그 결과 scene context 해석에 유용하다.

     

    Scene의 구조를 표현하는 방법이 다양해짐에 따라, scene understanding task를 위한 3D vision 분야, VR/AR scene 상호작용, robot navigation 등의 분야에서 3D data로 얻은 scene graph를 parsing하는 연구가 많이 진행되고 있다.

     

    하지만, 3D 스캔 data는 '카테고리 간 기하학적 유사도' 등 본질적으로 불완전하다.

    이러한 perception error는 시각적 입력값에만 의존하여 물체 및 관계를 인식하는 것을 더 어렵게 한다.

     

    다행히, 인지 심리학에서는 인류가 시각 이외에도 물체와 개념을 어떤 추상적인 class-dependent representation과 scene context의 결합, 즉 지식을 통해 연상한다고 한다.

    하지만 scene graph prediction에서 사전 지식을 사용하는 것은 여전히 어렵다.

     

    Prior-knowledge-incorporated methods는 다음과 같은 한계를 갖는다.

    정적 지식(예를 들어, heuristic co-occurrence statistics, mined triplet facts, 또는 knowledge graph)들은 지식 source와 도메인 지식의 질에 의존하여 불완전하고 부정확할 수 있다.

     

    따라서 몇몇 방법은 graphical structure와 정확한 도메인에서의 규칙적인 combination을 잡아내기 위해 학습 기반 지식을 사용하는 경향이 있다.

    하지만 시각 정보로부터 배운 지식 또한 knowledge embedding과 network의 파라미터에 인지적 혼동(error)를 전달하게 된다.

     

    이를 개선하기 위해 본 논문에서는 새로운 '학습된 사전 지식을 통한 3D scene graph prediction 방법'을 제안한다.

    지식은 벡터, 그래프, 자연어 등 여러 형태로 암호화될 수 있는데, 여기서는 class-dependent prototypical memory에 지식을 저장하여 상기 문제점을 해결한다.

     

    target problem을 다음 두 가지 하위 task로 나눈다.

    1. Knowledge learning
      • 모델로 graph auto-encoder를 사용한다.
        • scene graph 구조의 annotation(주석)인 one-hot class label을 입력으로 받는다.
        • 기하학적 또는 시각적 feature를 포함하지 않으로, latent embedding은 오직 category 관련 규칙적인 구조 패턴만 암호화한다. (perception error의 전달을 막는다.)
        • 이 사전 지식을 기록하기 위해 해당 category의 latent area에 접근하기 위해 prototype의 그룹, 즉 meta-embedding을 시행한다.
        • Meta-embedding
          • 각 semantic class를 prototype의 지식으로 표현할 수 있다. (아래 그림 참조)
    2. Knowledge-inspired scene graph prediction
      • 훈련 후, <주어, 술어, 목적어> 구조의 triplet으로 나타나는 각 element를 예측하기 위해 기하학적 feature와 해당하는 지식 meta-embedding을 합친다

     

    meta-embedding

     

     

    이전 방법과는 달리, 시각적 혼동 없이 지식을 오직 semantic category와 regular structural pattern에만 의존하여 학습한다.

     

    대규모 실험을 통해 knowledge extraction과 meta-embedding 주입이 scene graph prediction 정확도에 어떤 영향을 주었는지 확인한다.

     

    본 논문의 주요 contribution은 다음과 같이 요약할 수 있다.

    1. 3D point cloud 데이터로부터 직접 작동하는 새로운 knowledge-inspired scene graph prediction method 소개
    2. class-dependent prototypical representation 그룹을 학습하는 graph auto-encoder (meta-embedding) 제안
    3. 사전 학습된 지식으로부터 relation triplet을 예측하기 위한 scene graph prediction model 설계

     

     

     

     

     

    2. Related Work

     

     

     

     

    1) Knowledge-based Scene Graph Classification

     

    사전지식은 object detection, relation detection task의 성능을 높이기 위한 효율적인 source이다.

     

    앞선 methods에서는 scene graph 추론을 위해 추가적인 지식으로 통계적 co-occurrence를 사용했다.

    Zellers 등은 술어부(predicate)의 분포는 처음과 끝 카테고리에 매우 의존적임을 발견했다. 이는 마지막 prediction에 사전에 계산된 bias를 사용하고, biased results는 자연스럽게 가장 빈번한 결합을 향상시킨다.

    드물게 샘플링된 것들에 대한 분류 성능을 높이기 위해, KERN(Knowledge-Embedded Routing Network)은 메시지 전달 과정에서 long-tail 현상을 완화시키기 위해 암묵적으로 co-occurence 확률을 가중치로 사용한다.

    그럼에도 불구하고 이 통합된 지식은 사용이나 연구가 어려웠는데, 본질적인 파라미터로 hard-code 되었기 때문이다.

     

    게다가, 몇몇 방법은 scene graph 추론에 외부 지식 기반(knowledge bases)을 사용했다.

    Gu 등은 ConceptNet knowledge bases에서 knowledge triplet을 추출했다.

     

    몇몇 방법은 학습 기반 상식(commonsense)을 scene graph 추론에 포함시키려 했다.

    Zareian 등은 network 파라미터에 규칙적인 pattern을 임베딩하여 마스킹된 scene graph를 완성하기 위해 local-global graph transformer를 제안했다.

     

    더 최근에는 Scharifzadeh 등이 이전의 모든 인지 결과로 학습된 class-level prototypical representation에 귀납적 biases를 암호화했다.

    이 방법에 영감을 받아 knowledge-inspired 3d scene graph prediction 방법에서도 prototypical representation을 사전 지식으로 사용한다. 또한 이 방법은 class-dependent와 graph structure information에 초점을 맞추어 perceptual error로 인한 혼동을 줄이고자 한다.

     

     

     

     

    2) 3D Scene Graph Prediction

     

    3D scene graph는 최근에 3D vision 커뮤니티에서 연구해왔다.

    3D scene graph construction에는 주로 두 가지 접근 방법이 있다.

    1. image-based scene graph technique 방법
      • Armeni 등이 3D scene graph construction framework를 소개했다. 2D-3D projection을 통해 object 인식 정확도를 높이는 'multi-view consistency'를 사용했다.
      • SLAM에 image-based scene graph prediction을 사용했다.
        • Kim 등이 다른 이미지에 같은 node를 사용하여 local graph를 global graph에 합병하는 framework를 제안했다.
        • SPIN 방법에서는 dynamic masking 방법으로 사람과 물체 노드를 구분했다.
    2. 3D data에 직접 접근
      • Wald 등이 SPGN이라는 end-to-end network를 제안했는데, 이는 scene scans를 입력으로 받는다.
      • 본 논문에서도 오직 3D scene data (point cloud)를 사용하는 scene graph prediction method를 확장하는 새로운 모델을 알아볼 것이다.

     

     

     

     

     

     

     

    3. New Method

     

    본격적으로 knowledge-inspired 3d scene graph prediction 방법론이 어떻게 수학적으로 모델링되고, 아키텍쳐의 구조와 기능 등의 개념을 자세히 알아보자.

     

     

     

    Formulation

     

    먼저, scehe graph \(\mathcal{G}\)를 노드 집합 \(\mathcal{V}\), 엣지 집합 \(\mathcal{E}\)에 대한 방향그래프 \(\mathcal{G} = \{ \mathcal{V}, \mathcal{E} \} \)로 정의한다.

    이때 \(\mathcal{V}\)는 scene의 모든 object instance를 포함하고, \(\mathcal{E}\)는 object instance간의 연결, 즉 relation triplet \( <subject, predicate, object >\) 중에서 predicate로 구성된다. 엣지는 subject 노드에서 object 노드로의 방향을 가리킨다.

     

    knowledge-inspired scene graph prediction task는 두 가지 하위 task로 나뉜다.

    3d data로부터 사전 지식(prior knowledge)과 scene graph를 동시에 학습하고자 하는데, 수학적으로 3D scene data \(D\)가 주어졌을 때, 학습 과정의 목적은 수학적으로 다음과 같은 확률을 예측하는 것으로 볼 수 있다.

     

    \(P(\mathcal{G}, K | D) \)

     

    이때 \(K\)는 사전 지식을 말한다.

    여기서 위와 같은 joint probability를 다음과 같이 두 개의 component로 분해할 수 있다.

     

    \( P(\mathcal{G}, K | D) = P(K | D) P(\mathcal{G} | D, K)  \)

     

    이는 조건부 확률의 정의에 따라 다음과 같이 쉽게 증명이 가능하다.

     

    \( P(\mathcal{G}, K | D ) = { P(\mathcal{G}, K, D \over P(D) } \),

    \( P(K|D) = { P(K, D) \over P(D) } \),

    \( P(\mathcal{G} | D, K ) = {P( \mathcal{G}, D, K \over P(D, K)} \)

     

    이렇게 식을 두 개로 분해함으로써, problem을 두 개의 하위 task로 나누었다.

     

     

     

    (1) First Sub-task : Meta-embedding Learning

     

    먼저, 두 개의 요소 중 \(P(K | D) \)는 3D scene 환경으로부터 knowledge를 추출하는 것을 말한다.

     

    본 논문에서, 학습된 지식은 각 object와 predicate 카테고리의 prototypical embedding 형태인데, 이를 meta-embedding \( K = \{ \mathbf{e}_{meta} \} \)라고 명명하였다.

    meta-embedding 집합은 각각의 semantic class를 표현하며, scene graph에서 그 class의 규칙적인 패턴을 encode한다.

     

    이를 위해, perceptual information 없이 one-hot labels만을 입력으로 취하는 graph auto-encoder network를 설계하였다.

    또한, graphical encoder는 각 class의 topological interaction을 추출할 수 있다.

    metric space 상에서 latent output과 그와 관련된 meta-embedding 간의 거리를 가깝게 하여 meta-embedding이 학습 데이터의 사전 지식을 기록하도록 하였다.

     

     

     

    (2) Second Sub-task : Knowledge-inspired Scene Graph Prediction Model

     

    두 번째 요소인 \(P(\mathcal{G} | D, K) \)는 scene graph element를 예측하기 위해 meta-embedding과 perceptual feature를 결합한다. 또한 본 적 없는 3D data를 사용한 evaluation 역할도 수행한다.

     

     

     

     

    1) Meta-embedding and Learning Model

     

    Meta-embedding (and) learning model은 graph auto-encoder를 사용하여 사전 지식, 즉 class-dependent prototypical knowledge embedding을 학습하기 위해 설계된다. 다음 그림을 살펴보자.

     

    Meta-embedding learning model

     

    그림을 통해 Meta-embedding learning의 pipline을 구체적으로 살펴보자.

     

    Auto-encoder는 perceptual information 대신에 class 관련 패턴을 고려하기 때문에, one-hot class labels만을 입력받는다.

    처음 두 개의 multi-layer perceptron(MLP) 블럭에서는 입력으로 받은 one-hot vectors를 같은 차원의 latent space로 변환시킨다.

    이때 각 object pair는 relation을 가진다고 가정할 수 있고, 그 object pair를 predicate가 엣지로 표현된 그래프로 fully connect한다.

    추가로 Graph neural network(GNN)를 사용하여 message passing을 통해 scene graph의 각 노드와 엣지의 graphical pattern을 encode한다.

     

    네트워크 설계 단계에서, directed graph 구조에 message passing mechanism을 적용한다.

    layer \( l\)에서의 모든 nodes \(v \in \mathcal{V}\)에 대한 latent representation \( \{ \boldsymbol{h}_{v}^{n, l} \} \)과 모든 directed edges \( ( u, v ) \in \mathcal{E} \)에 대한 latent representation \( \{ \boldsymbol{h}_{uv}^{e, l} \} \), 즉 노드와 엣지에서의 message passing은 다음과 같이 계산 가능하다.

     

    \( \boldsymbol{h}_{v}^{n, l + 1} = \text{GRU}^{n, l} ( \boldsymbol{h}_{v}^{n, l} , m^{n, l}(v)) \)
    \( \boldsymbol{h}_{uv}^{e, l + 1} = \text{GRU}^{e, l} ( \boldsymbol{h}_{uv}^{e, l}, m^{e, l}(u, v)) \)

     

    여기서 \(m^{n, l}\)과 \(m^{e, l}\)은 layer \(l\)에서 message를 계산하는 parameterized neural network이다.

    Gated recurrent unit (GRU)를 사용하여 initial information을 보존한 상태에서 hidden state를 업데이트한다.

     

    relation triplet \( < subject, predicate, object > \) 에서 node는 subject가 될 수도, object가 될 수도 있다는 점에 주목하자.

     

    node \(v\)와 그 이웃 노드 \(u\)에 대해, subject message \(m^{s, l} (v) \)와 object message \( m^{o, l} ( v) \)는 다음과 같이 계산된다.

     

    \( m^{s, l}(v) = \text{LN} (\phi_p (\boldsymbol{h}_{vu}^{e, l}) + \phi_o(\boldsymbol{h}_{u}^{e, l})) \)
    \( m^{o, l}(v) = \text{LN} (\phi_p (\boldsymbol{h}_{uv}^{e, l}) + \phi_s(\boldsymbol{h}_{u}^{e, l})) \)

     

    수식의 형태를 살펴보면, subject message는 node \(v\)에서 node \(u\) 방향으로 엣지가 이어지는 것을 나타내고, object message는 node \(u\)에서 node \(v\) 방향으로 엣지가 이어질 때를 나타낸다.

    여기서 \(\phi_s, \phi_p\, \phi_o\)는 각각 subject, predicate, object의 non-linear transformation이다.

    recurrent mechanism에서 계산을 안정화하기 위해, feature fusion 이후에 layer normalization (LN)을 적용한다.

     

    node \(v\)의 final message는 subject message와 object message의 평균의 개념으로, 다음과 같이 나타낼 수 있다.

     

    \( m^{n, l}(v) = \frac{1}{ | \mathcal{R}_{v}^{s} | + | \mathcal{R}_{v}^{o} | } \left( \sum\limits_{u \in \mathcal{R}_v^s } (m^{s, l} (u)) + \sum\limits_{u \in \mathcal{R}_v^o } (m^{o, l} (u)) \right) \)

     

    여기서 \( | \cdot | \)는 cardinality(전체 row에 대한 특정 column의 중복도가 낮을수록 값이 높다.)를 나타내고, \(\mathcal{R}_v^s , \mathcal{R}_v^o \)는 각각 node \(v\)가 subject로 연결되는 connection 집합과 object로 연결되는 connection 집합이다.

     

    edge \( (u, v) \)의 message는 다음과 같이 계산한다.

     

    \( m^{e, l}(u, v) = \text{LN}(\phi_s(\boldsymbol{h}_{u}^{n, l}) + \phi_o(\boldsymbol{h}_{v}^{n, l}) ) \)

     

     

    그리고, graph encoder의 출력 모델은 쌓인 hidden state에 sum pooling operation을 사용한 결과이다.

    graph encoder의 latent output embedding의 class labels를 알고 있기 때문에 metric space 상에서 각 label에 해당하는 meta-embedding vector간의 거리를 줄여 업데이트를 진행한다.

    node와 그들의 edge의 latent space가 주어진 상황에서, 그에 해당하는 class vector를 object meta-embedding과 predicate meta-embedding으로부터 선택한다.

    여기서 embedding간의 거리를 loss function으로 정하고, 이를 줄이는 방향으로 학습을 진행한다.

    meta-embedding의 값은 네트워크의 parameter로 초기화되었으므로, backpropagation으로 업데이트를 할 수 있다.

    meta-embedding은 학습 샘플의 개수에 상관 없이 관련된 category가 관찰될 때에만 업데이트가 이루어진다.

    이러한 특성 덕분에 meta-embedding은 덜 등장하는 category에 대해서도 충분히 prototypical representation이 될 수 있다.

     

    마지막 두 개의 MLP 블럭은 latent embedding이 class와 관련이 있도록 one-hot label을 예측하고 auto-encoder의 구조를 완성하도록 한다.

    즉, auto-encoder에서 latent feature가 적절하게 추출되었는지 확인하는 용도로 decoder가 사용되는 것과 같은 맥락이다.

     

     

     

     

    2) Knowledge-inspired Scene Graph Prediction Model

     

    이 모델은 사전 지식, 즉 meta-embedding의 결과를 scene graph prediction task에 사용하기 위한 모델이다.

     

    Overview of the scene graph prediction model with the learned meta-embedding

     

    마찬가지로 그림을 통해 scene graph prediction의 구체적인 pipeline을 살펴보자.

     

    먼저 입력으로 instance mask를 적용한 scene point cloud 데이터를 받아 objects와 object pairs로부터 geometrical feature를 encode한다.

     

    선구적인 point set encoder인 PointNet의 구조를 몇몇 point completion methods를 사용하여 구조를 변형시켜 multi-scale geometric information 캡쳐 성능을 높인다. 이를 modified multi-scale PointNet(MS PointNet)이라 하고, object 노드에 대해 직접적으로 사용한다. (이때 point cloud는 normalized 상태이다.)

    먼저 subject point 집합들과 object point 집합들을 분리하여 object-pair edges로 encode하고, 두 point 집합들의 중심점과 latent feature와 연결한다.

     

    left와 right, lower than과 higher than 등 서로 모순되는 관계를 더 잘 encode하기 위해, 두 feature에 대해 anti-symmetric operation을 사용하여 subtraction을 한다.

    two-layer MLP에 의해 변환한 후, object pairs로부터 initial edge embedding을 얻게 된다.

     

    perception information으로부터의 global context를 알아내기 위해 meta-embedding learning에서와 같은 GNN을 사용한다.

    첫 번째 iteration에서, GNN은 PointNet의 geometric feature만을 입력으로 받는다.

    마지막 두 개의 MLP 블락은 노드와 엣지의 분류 확률을 출력하고, 관련된 categories의 meta-embedding vectors를 선택하는 단서를 제공한다.

    각 노드와 엣지에서 5개의 가장 신뢰성있는 meta-embedding을 선택하고, perception feature에 적용한다.

    이때, 선택하는 embedding의 개수가 많으면 틀린 지식을 제공하고 적은 수를 선택하면 적절한 지식을 제공하지 못할 수 있는데, 실험을 통해 5개가 적당하다는 결론을 얻었다.

    두 번째 iteration에서, perceptaul embedding과 knowledge는 서로 다른 latent space에 존재하기 때문에, 그들을 융합하기 전에 각각 two-layer feed-forward 네트워크인 \(f\), \(g\)로 변환한다.

    선택된 meta-embedding을 \( \{ \boldsymbol{e}_{i=1 \dots k} \} \)라 하고, MS PointNet에 의해 encode된 feature를 \( \boldsymbol{x}\)라 할 때, knowledge와 perceptual information을 다음과 같이 융합할 수 있다.

     

    \( \boldsymbol{z} = \text{LN} \left( f(\boldsymbol{x} + \sum\limits_{i=1}^k g(\boldsymbol{e}_{meta}^i) \right) \)
    \( \hat{\boldsymbol{x}} = \text{LN} ( \boldsymbol{z} + \psi(\boldsymbol{z} ) ) \)

     

    이때 \(psi\)는 two-layer MLP를 나타내고, \(\hat{\boldsymbol{x}}\)는 두 번째 iteration에서 knowledge-embedding된 GNN의 입력을 말한다.

    실험 결과 iteration이 3번 이상일 때 성능이 더 이상 좋아지지 않아 계산 시간을 고려하여 iteration은 두 번까지만 진행했다.

     

     

     

     

    3) Loss Function Design

     

    데이터 분포의 불균형을 고려하여 meta-embedding learning과 scene graph prediction task 둘 다 object 분류와 predicate 분류에 focal loss를 사용했다.

     

    \( \mathcal{L}_{focal} = \alpha (1 - p)^\gamma log(p) \)

     

    여기서 \(p\)는 object나 predicate의 prediction의 logit이며, \(\alpha\)는 object classification에서는 normalized inverse frequency를, predicate classification에서는 edge/no-edge 가중치를 나타낸다. 또한 \(\gamma\)는 hyperparameter이다.

     

    Metric space에서 meta-embedding과 class latent vector의 거리를 줄이기 위해, graph encoder의 출력과 그에 따른 meta-embedding 간의 유클리드 거리 \(d\)를 사용하여 loss function을 다음과 같이 설정하였다.

     

    \( \mathcal{L}_{dist} = \sum\limits_{v \in \mathcal{V}} d(\boldsymbol{h}_v, \boldsymbol{e}_{meta}^v ) + \sum\limits_{e \in \mathcal{E}} d(\boldsymbol{h}_e, \boldsymbol{e}_{meta}^e ) \)

     

    여기서 \(\boldsymbol{e}_{meta}^v\)와 \(\boldsymbol{e}_{meta}^e \)는 각각 node \(v\)와 node \(e\)에 해당하는 카테고리의 meta-embedding이다.

     

    이와 같은 focal loss들을 사용하여 각각의 sub-task에서의 loss function을 설정한다.

     

    meta-embedding learning task에서의 loss function은 다음과 같다.

     

    \( \mathcal{L}_{meta} = \mathcal{L}_{focal}^{obj} + \mathcal{L}_{focal}^{pred} + \mathcal{L}_{dist} \)

     

    meta-embedding learning에서는 별도의 가중치 없이 세 components를 더하는 loss function을 사용한다.

    반면, scene graph prediction task에서의 loss function은 다음과 같다.

     

    \( \mathcal{L}_{sg} = \lambda \mathcal{L}_{focal}^{obj} + \mathcal{L}_{focal}^{pred} \)

     

    \( \lambda\)라는 hyperparameter를 통해 가중치를 부여한 것을 확인할 수 있다.

     

     

     

     

     

    4. Experiments and Evaluations

     

     

     

     

    1) Dataset and Task Description

     

    3RScan 기반의 3D scene graph dataset인 3DSSG dataset에 대해 실험을 진행했다.

    이 dataset은 support, proximity, 일상적인 실내 objects 간의 comparative relationship에 대한 내용을 담고 있다.

     

    평가는 아래와 같은 두 가지 표준 task에서 다른 모델과 비교하며 진행했다.

    1. Scene graph classification (SGCls) task : object와 predicate semantic classes 둘 다 예측하는 task이다.
    2. Predicate classification (PredCls) task : predicate categories만 구분하는 task이다.

     

     

     

     

    2) Implemetation

     

    간단한 내용만 정리하였으며, 구체적인 과정은 논문을 참조하자.

     

    PyTorch에서 구현하였으며, ADAM optimizer를 사용하였다.

    Scene graph prediction 모델에서 같은 dataset으로 사전 학습된 MS PointNet을 사용하여 point cloud를 encode하였다.

    PredCls task에서는 object의 ground truth를 알고 있기 때문에 graph encoder의 입력으로 object meta-embedding 결과를 할당했다.

    표준편차를 계산하기 위해 3번의 학습을 진행했다.

    모든 모델은 같은 random seed와 split을 적용한 3DSSG dataset으로 학습시켰다.

     

     

     

     

    3) Comparison with Related Methods

     

    성능 비교를 위해 아래와 같은 baselines를 사용했다.

    1. Co-Occurrence : 주어진 subject와 object categories에 대해 가장 빈번한 predicate를 출력하는 baseline이다. prediction은 MS PointNet으로 진행했다. Deterministic model이므로 두 task에 대해 모두 표준편차가 0이다.
    2. Knowledge-embedded routing network (KERN) : robust한 knowledge-based 방법으로, co-occurrence probability를 scene graph prediction에 포함시킨다.
    3. Scene graph prediction network (SGPN) : 처음으로 3DSSG dataset에 대한 scene graph prediction model이다.
    4. Schemata : 가장 최근의 scene graph prediction model로, 지식 기반 학습을 사용했다. 본 논문의 방법과 유사하게, 이전에 decoded된 perceptual results로부터 class-dependent prototype을 encode한다.

     

    Quantitative results of the evaluated methods in recall

     

    위 table과 같이, SGCls, PredCls task 모두에서 가장 좋은 relation recall을 보인다. 또한 meta-embedding(ME)를 사용하지 않을 때보다 사용할 때가 더 좋은 성능을 보임을 알 수 있다.

    R@k이란, 관련있는 상위 k set에서의 recall 값을 말한다.

     

    Quantitative results of the evaluated methods in mean recall

     

    추가적으로 위 table에서는 mean recall 또한 가장 좋은 값을 나타낸다는 것을 보여준다.

    이러한 결과는 meta-embedding이 아주 적게 샘플링된 predicate categories에서 예측 성능을 향상시킨다는 것을 입증한다.

     

    예측된 scene graph의 예시는 다음과 같다.

     

    Predicted scene graph examples

     

    Schemata 방법과 비교해서, 본 논문의 방법은 relationship 예측 task에서 더 좋은 성능을 보인다. 그 차이는 meta-embedding의 latent space가 schemata에서보다 더 잘 구별되기 때문일 것이다. latent space의 차이를 아래 사진에서 볼 수 있다.

     

    t-SNE visualization of the object latent space of the Schemata (a) and knowledge-inspired 3d scene graph prediction (b)

     

    latent space가 더 잘 구별되므로, perceptual latent embedding에서 knowledge를 더 잘 추출할 수 있다.

     

     

     

     

    4) Analysis on the Meta-embedding

     

    위 사진의 (b)에서 meta-learning stage에서와 object meta-embedding에서의 graph encoder의 output object embedding을 통해 다음과 같은 두 가지 분석을 해볼 수 있다.

     

    1. 학습된 meta-embedding은 metric space에서 관련된 class(latent features)와 비슷한 곳에 위치한다.
      • 따라서 semantic categories의 prototype이 될 수 있음을 보인다.
    2. perception inference에 지식을 inject한 후에 categories간의 거리를 넓게 할 수 있을 정도로 meta-embedding에 의해 표현된 sub-space는 구별이 용이하다.

     

    아래 사진에서, PredCls task에 대해 meta-embedding을 사용했을 때와 사용하지 않았을 때 latent space를 나타냈다.

    이는 지식의 개입이 있은 후에 (meta-embedding 사용 했을 때) predicate 표현이 더 구분이 잘 된다는 것을 보인다.

     

    t-SNE visualization of the latent spaces in the PredCls task

     

    (a)는 PointNet으로부터의 geometrical feature, (b)는 GNN에 의한 contextualized feature, (c)는 knowledge intervention 이후의 latent space이다.

     

    추가적으로, meta-embedding 개입의 중요성을 이해하기 위해 데이터의 split을 적게하여 scene graph classification 모델을 학습시켜 보았다. 그 결과는 아래와 같다.

     

     

    SGCls task에서 meta embedding을 사용하고, 학습 데이터를 50%만 사용하여도 meta embedding 없이 100%의 학습 데이터를 사용한 모델과 비슷한 성능을 보였다.

    PredCls task에서는 perception information이 전혀 없이 object label과 그에 따른 meta-embedding만 사용한 모델도 meta-embedding 없이 학습 데이터를 100% 사용한 모델과 비슷한 성능을 보였다.

    이러한 결과는 scene generation 분야에 확장하여 적용해볼 수 있을 것이다. 예를 들어, 본 논문에 소개된 방법을 사용하면 학습된 meta-embedding 기반의 graph inference만으로 그럴듯한 scene organization을 출력해낼 수 있다.

     

    또다른 흥미로운 결과는 이러한 설계는 다른 data source로부터의 meta-embedding 학습이 가능하다는 것이다.

    즉, scene graph prediction model에서 사용했던 데이터보다 더 큰 데이터로 meta-embedding을 학습시킬 수 있게 된다.

    이는 두 sub-task의 학습이 독립적으로 이루어지기 때문에 가능하다.

     

    Relative improvement of predicate recalls on R@5 with the intervention of the meta-embedding (a) and the predicates statistical distributions (b)

     

    게다가, 위 사진을 통해 meta-embedding을 사용하면 덜 등장하는 predicate의 recall을 향상시킬 수 있음을 알 수 있다.

    그에 반해 자주 등장하는 categories를 예측하는 성능은 조금 떨어진다.

     

    융합된 meta-embedding은 가장 관련성이 높은 카테고리들의 extra information을 줄 수 있기 때문에, 이것이 자주 나타나는 class에는 noise로, 적게 나타나는 class에는 guidance로 작용할 수 있다.

    다행히 자주 나타나는 predicates의 경우, training data에서 큰 부분을 차지하기 때문에 충분한 recall 값을 나타낸다.

     

     

     

     

     

    5. Future Work

     

    논문에 소개된 새로운 방법은 극복해야 할 한계가 존재한다.

    1. Multi-scale point set encoder는 incompleteness(모든 정답을 찾지 못하는 경우)가 심한 상황에서 초기 class 예측 성능이 나쁠 수 있다.
      • 부정확한 object identification은 relation 예측 성능을 떨어뜨린다.
    2. Knowledge intervention은 가장 빈번히 나타나는 semantic categories에 대해서는 예측 성능에 도움이 되지 않을 수 있다.
      • 고른 지식이 오히려 noise로 작용할 수 있기 때문이다.
    3. 사전에 학습된 지식은 training set의 분산과 completeness(모든 정답을 찾을 수 있음)에 매우 의존적이다.
      • object entities에 대한 부정확한 예측과 relation은 실생활에 적용될 경우 사람을 위협할 수도 있다.

     

    향후에 3D scene 이해와 적용에 대한 다른 관점을 연구해볼 수 있을 것이다.

    예를 들어, dynamic scene graph generation task를 구상하여 비디오 등의 데이터로부터 spatio-temporal cue를 캡쳐할 수 있을 것이다. 이를 통해 dynamic scene graph에서 가상 agent를 처리해보고, 실제와 상호작용하는 AR 분야에 적용해볼 수 있을 것이다.

    728x90
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기