[논문리뷰] Zero-shot Learning of 3D Point Cloud Objects

Paper Overview

MVA'19


Abstract

이 논문은 3D point cloud recognition에 처음으로 ZSL을 적용한 논문이다.
따라서 standard protocol (dataset, data split)을 제안한다.

Keywords

Zero-Shot Learning, Point clouds Zero-Shot classification

Introduction

전통적인 3D network는 위 그림과 같이 학습에 사용한 seen 카테고리을 구분할 수 있고, 학습에 사용하지 않은 unseen 카테고리는 인식할 수 없다.

이 문제를 다루는 것이 Zero-Shot Learning이고 저자들은 처음으로 이를 3D domain에 적용하였다.

Our approach

Problem formulation

저자들은 seen 집합을 $\mathbf{Y}^{s} = \left\{ 1, ..., S\right\}$라 하고 unseen 집합을 $\mathbf{Y}^{u} = \left\{ S+1, ..., S+U\right\}$라고 한다. 이때 seen, unseen은 겹치지 않는다.

그리고 semantic class embedding을 $\mathbf{E} \in \mathbb{R}^{d}$라고 한다.

training

저자들의 구조는 다음과 같다.
unordered point set $x_{s} = \left\{ p_{1}, ..., p_{n} \right\}$이 주어지면 set function은 다음과 같이 정의한다.
$f$는 set function, $h$는 feature extraction function, $g$는 pooling function이다.
$\beta $는 $p_{i}$의 arguments다. (아마 color, normal일듯)

저자들은 extractor로 PointNet과 EdgeConv를 사용한다.

이때 pooling layer가 적용된 feature를 $\mathbf{f} \in \mathbb{R}^{m}$라고 한다.

이후 fully-connected layer를 통해 feature vector $f$를 word vector embedding space의 차원으로 transform한다. $f' = \phi ( \mathbf{f}) \in \mathbb{R}^{d}$
이후 다음과 같이 cross entropy로 모델을 학습한다.

Multiple semantic space fusion

저자들은  w2v같은 word vector 하나만 쓰는 것이 아닌 glove word vector도 concat하여 사용할 수 있다.

$E^{s} = conca(E^{s_{w2v}}, E^{s_{glove}})$

Inference

학습과정 동안 classifier $p_{s}$는 seen instance 에 대해 학습되어 3D point cloud가 어느 seen class label에 속하는지 확률을 추정할 수 있다. $p_{s}(s|x_{s})$

주어진 $p_{s}$에 대해 저자들은 testing label을 얻고자 한다.

먼저 point cloud $x$에 대해 $t$번째로 비슷한 seen class를 구한다.
이제 $p_{s}(\hat{s}(x,t)|x)$는 $t$번째로 큰 확률 값이다.

이 중에서 top $T$개의 $p_{s}$를 통해 embedding semantic feature $z(x)$를 구한다.
쉽게 요약하자면 seen class의 확률을 구한 뒤, 확률에 따라 seen embedding vector를 가중평균 낸다는 것이다.
이 벡터 $\mathcal{z}$가 모델의 unseen vector다.

이제 이 값을 사용하여 cosine similarity를 통해 최종 unseen class 예측을 구한다.

An alternative approach to adapt ZSL

사실 PointNet, EdgeConv둘다 일반적인 seen class확률을 구할 수 있다.
따라서 식 (2), (3)이 적용가능하고 이것을 basic approach라 한다.

Experiments

1. Setup

Dataset

ModelNet40, ModelNet10, McGill, SHREC2015

Seen/Unseen split

저자들은 ModelNet40개 중 ModelNet10와 안겹치는 class 30개를 seen이라 한다.
이때 ModelNet seen class의 training set을 학습 데이터로 사용한다.

ModelNet은 test set을 unseen set으로 사용한다.

McGIll은 ModelNet seen class와 겹치지 않는 14개 class만 unseen class로 사용한다. (5개 지움)
그리고 데이터셋의 뒤에서부터 1/3을 test set이라 하고 이것을 unseen set으로 사용한다.

SHREC2015는 ModelNet seen class와 겹치지 않고 word embedding을 만들 수 있고 동일한 이름의 class를 하나로 합쳐서 30개 class만 unseen class로 사용한다. (18개 지움)

모든 데이터셋에서 seen data는 ModelNet30이다.

Semantic features

w2v, glove를 사용하고 각 임베딩은 L2 norm을 적용한 다음 사용한다.

Implementation Details

2. Recognition results

Unseen recognition

Per-class results

Seen recognition

Parameter Dependency

식(2)의 $T$값은 30을 쓰는게 가장 좋았다고 한다.

Conclusion

Traditional recognition systems have achieved superior performance on 3D point cloud objects. However, due to the advancement of 3D depth camera technology, obtaining 3D point cloud representations of scenes has become much more accessible than before. Hence, we will more than likely encounter many unseen objects to which our traditional 3D point cloud recognition gets no training. Therefore, it is time for 3D point cloud recognition systems to adapt zero-shot settings, aiming to recognize those unseen objects. To this end, this paper proposed a new challenge and a useful evaluation testbed/protocol for pushing forward with this new line of investigation. We also modified some established 3D point cloud recognition systems to work in the zero-shot setting in order to report a set of baseline performance results with respect to this problem. Overall, we believe that this research has the potential to motivate numerous further works to create a more robust 3D point cloud recognition system.

댓글