본문 바로가기

Paper Review

[Paper] Learning Shape Abstractions by Assembling Volumetric Primitives

 지금까지 3D Vision 분야 논문들을 꽤 읽어왔기 때문에 그런지 이제 이름들이 조금씩 익숙해지고 있습니다. 특히, 카이스트에서 석사 첫 학기에 수강했던 전산학 특강의 성민혁 교수님의 지도 교수님이신 Guibas 교수님은 이름이 많이 눈에 띕니다. 제자 교수님의 강의도 훌륭하니, 뭐 어떻게 보면 당연하다고 말할 수도 있겠지만, 그 연구실 출신 연구자분들이 정말로 이 3D CV 분야를 확 사로잡고 있다고 말해도 될 정도로 상당히 높은 수준의, 그리고 연구의 원천이 되는 연구들을 다수 수행하고 계십니다. 

 본 논문도 역시 스탠포드 대학과 UC 버클리 학생 및 교수진들이 참여한 연구로 Parsimony of description에 대해서 다루고 있습니다. 전에 3D Vision분야의 논문을 간단히 살펴볼 때에도 관심이 가던 논문이었는데 이번에 때마침 제가 연구를 하고 있는 모델과 깊은 연관을 맺고 있어서 이번에 이 논문을 리뷰하게 되었습니다.

 

Introduction

“Treat nature by means of the cylinder, the sphere, the cone, everything brought into proper perspective” - Paul Cezzane

  CS 분야 논문의 특징이라고 말할 것 같으면, 아무래도 학회 중심의 분야다 보니 굉장히 신선하고 색다른 방식으로 연구주제를 소개하고는 합니다. CS 연구자들은 재미있는 이름으로 모델명과 논문을 작성하거나, 우리에게 익숙한 명사들의 명언들로 논문의 내용을 대신하기도 합니다. 본 논문은 폴 세잔의 말로 본 논문을 소개합니다. 위에 그림에서 알 수 있듯이, 본 논문은 복잡한 3D Shape을 추상화하는 방법론을 제시하였습니다. 1990s 이전에도 이러한 연구들이 진행되고는 했지만, 공수가 많이 드는 문제 등으로 인해 자취를 감췄습니다. 그리고 본 논문은  Unsupervised Learning과 CNN이라는 현대적인 방법론을 통해 각 Shape을 추상화하고자 합니다. 이는 3D Shape의 전만적인 패턴을 학습하는데 도움을 줄 수 있다고 밝히고 있습니다.

 

Learning Object Assembly

 본 논문을 리뷰하기에 앞서, 본 논문은 세 가지 형상을 이야기하고 있습니다. Input Signal I가 M개의 Part들로 Target Object인 O를 구성하도록 합니다. 본 논문은 비지도학습으로 진행되지만, Primitive의 어셈블리가 Target Object와 큰 차이를 지니지 않도록 학습하게 됩니다. 이러한 직관을 사용해 Loss Function을 정의하고 있습니다.

 

### Primitive based Representation

 각 Primitive는 튜플(z,q,t)로 구성되어 있습니다. z는 Frame을 일컫고 q와 t는 각각 Rotation, Translation을 의미합니다. 따라서 NN을 통해 예측된 Shape은 아래와 같이 표현할 수 있습니다.

 이러한 표현 방식은 각 Shape을 Semantically Separate할 수 있다는 데 있습니다. 예를 들어, 의자를 등 받침대와 앉는 부분, 다리 등으로 구분할 수 있습니다. 

 

Loss Function

 무엇보다도 Primitive Assembly와 실제 Target Object간 미분가능한 손실 함수를 구하는 것이 우선입니다. 게다가 GT는 Mesh이고 Pred값은 Paramerized된 형상이기 때문에 그 비교가 더욱 어렵습니다. 이를 극복하고자, 본 논문은 Distance Field of the assembled shape을 계산했습니다. 이를 통해 두 개의 Loss를 정의할 수 있습니다. 

Distance Field는 아래와 같은 수식으로 나타낼 수 있습니다.

- Coverage Loss: Object O가 Primitives에 포함되도록 학습합니다.

 Predicted Shape에 의해 Target Object가 잘 담겨지지 않았다면 이에 대한 페널티를 주고자하는 Loss Term입니다. 이를 만족하는 충분조건은 Assembled Shape의 Distance Field가 모든 Target Shape의 Point와 거리가 0인 경우에 가능합니다.

 

- Consistency Loss: Object O가 Primitives를 포함하도록 합니다. 

Coverage Loss와 반대입니다. 이는 Target Shape 안에 Predicted Shape이 완벽히 들어가지지 않았을 때 페널티를 주는 Loss Term입니다.

Primitive Representation

 Primitive의 개수를 정하는 Term입니다. $p_m$은 Primitive의 존재 가능성을 보여주는 지표입니다. 따라서 z는 두 개의 요소로 구성되어 있습니다. Primitive's Dimensions을 결정하는 $z_m^s$와 Bernoulli Distribution을 따르는 $z_m^e$로 구성되어 있습니다. 실제로 $z_m^e = 0$이라면 m 번째 Primitives는 존재하지 않는 것으로 간주합니다.

 본 논문을 보면서 가장 첫 번째로 드는 의문은 Primitive의 개수입니다. Primitive는 어떻게 보면 원자 하나하나 등으로 표현할 수도 있습니다. 만약 위에 나와있는 의자를 수십만개의 정육면체로 표현하자면 지금 결과값으로 나와있는 것보다 훨씬 낮은 loss값을 가질 수 있습니다. 하지만 그렇게 해서는 어떠한 의미도 가지기 힘듭니다. 왜냐하면 이미 의자는 Input으로 들어갈 때 정육면체로 표현되기 때문이죠. 따라서 적당한 Primitives 개수를 가지고 의자의 일반적인 형상을 표현하는 것이 본 연구의 목표라고 볼 수 있습니다. 하지만 이에 대한 Loss Function은 준비된 게 없습니다. 그리고 사실 Output으로 나오는 Parameter는 모델을 학습하기 전에 정하게 됩니다. 따라서 최대 개수는 정해지겠지만, 그 개수가 적절한지는 논쟁의 여지가 있습니다. 아래 그래프는 Loss 값들입니다. 보면 알 수 있듯이, Iteration 20000이 넘어가는 시점에서 갑자기 튀어오르는 현상을 확인할 수 있습니다. 이 시점부터 Parsimony의 개수를 줄이도록 학습하기 때문입니다. 이는 강화 알고리즘을 적용했다고 밝히고 있는데 사실 Code를 자세히 공개하지도, 논문에서도 자세히 밝히고 있지 않아 어떤 방식으로 적용했는지는 불분명합니다.

Application

 본 연구의 목적은 사실 Primitive를 잘 다루는 것에 있다지만, 그것만으로는 제 시야에 들어올 정도로 높은 영향력을 끼치는 논문이 되지는 않았을 것입니다. 본 연구는 상당히 많은 분야에 적용이 가능합니다. 사실은 3D Shape같은 경우는 표현하는 것도 상당히 까다로워 인공지능이 학습하는데 약간의 어려움이 따릅니다. 실제로 본 논문이 제시된 2017년만 하더라도, 3D CV에 대한 연구는 많은 이들이 관심을 갖고 연구하는 분야는 아니었습니다. 주요 논문들이나 아키텍처만 봐도 2017년 이후 확연히 높은 수준의 연구들이 진행되었으니까요.

 그렇기 때문에 본 연구는 큰 의미를 지닙니다. 본 연구는 세 가지의 주요 특징을 설명하고 있습니다. 세 가지는 각각 Correspondence, Interpretable Shape Similarity 그리고 Manipulation입니다. 이러한 특징들은 아무래도 복잡한 3D 형상이 갖기에는 어려운 특징들이다보니, 추후 여러 연구에 큰 영향을 끼쳤습니다.