본문 바로가기
기술/딥러닝

[Boostcamp AI Tech] 3D Understanding

by 팡팡구리 2021. 9. 17.
반응형

이번 주의 부캠


지난 주가 Image Classification, Semantic Segmentation, Object Detection과 같은

전형적인 CV Task에 대한 얘기를 다뤘다면,

이번 주는 CNN Visualization, Instance/Panoptic Segmentation, Conditional Generative Model 등과 같은 좀 더 발전된 CV Task에 대한 얘기를 다루면서 지난 주에 비해 훨씬 학습이 어려웠던 한 주라고 생각한다.

원리 이해를 위해 복습을 비롯해 좀 더 개인학습을 해봐야겠다.

 

 

3D Understanding


우리의 삶은 3D로 이뤄져있기 때문에 3D space를 이해하는 것은 중요한 일이다.

3D Applications로는 AR/VR, 3D printing, Medical Application 등이 존재한다.

 

우리는 3D를 직접 보지는 못하고, 3D 세계를 2D 공간으로 projection한 이미지를 통해 보게 된다.

빛은 직진성을 띄기 때문에 3D와 2D의 관계는 직진의 관계라 할 수 있다. ( 3D선에 의해, 비율에 의해 결정됨 )

 

카메라는 3D 장면을 하나의 2D 평면으로 projection하는 device라 할 수 있다.

흥미로운 점은 projection한 사진 두 장이 있으면 다시 3D로 추출할 수 있는데,

카메라의 위치 정보를 알고 있고 사진에서 중복된 포인트를 알고 있다면 3D선을 그릴 수 있다.

그렇게 얻은 두 선의 교차점이 3D point가 되는데 이런 방법으로 3D정보를 얻는 걸 Triangulation이라 한다.

 

Triangulation

 

2D 이미지를 표현할 때 2D array sturcture를 multi-channel로 하여 표현을 했다고 한다면,

3D 표현은 Unique하지 않고 다음과 같은 다양한 방법이 존재한다.

 

1. Multi-view images

   - 여러 viewpoint에서 촬영한 사진을 보관하는 방법

2. Volumetric

   - 3D space를 격자로 나눠서 그 해당 격자를 3D object가 차지하고 있는지 여부를 표현하는 방법

3. Part assembly

   - 3D object를 기본적인 도형들의 parametric한 집합으로 표현하는 방법

4. Point cloud

   - 3D상에 있는 포인트들의 집합을 이용해서 표현하는 방법

5. Mesh

   - 가장 흔하게 사용되는 Mesh로는 triangle mesh가 있음, vertex를 삼각형 형태의 edge로 이어서 표현

6. Implicit shape

   - 고차원의 함수로 표현, F(x)=0인 부분이 표면이 되도록 함수를 정의

 

3D를 표현하는 방법은 다양하게 존재한다.

 

3D Tasks로는 3D Recognition, 3D Object Detection,

3D Semantic Segmentation, Conditional 3D Generation 등이 있다.

 

Conditional 3D Generation 방법 중 하나로 Mesh R-CNN이 있는데,

Mesh R-CNN은 input으로 2D image를 받아서 output으로 찾아낸 물체의 3D mesh를 반환한다.

Mesh R-CNN은 Mask R-CNN에 수정을 가하면 수행할 수 있다.

 

Mask R-CNN이 box, classes, 그리고 mask를 예측하는 branch를 가지고

branch들이 각 ROI와 연결되어 shared feature로부터 결과값을 내는 특징을 가졌다면,

Mesh R-CNN은 여기에 3D Branch만 추가해주면 된다.

Mesh R-CNN 구조, Mask R-CNN에 단지 3D Branch만 추가해주면 된다.

 

더 복잡한 3D Reconstruction Model의 방법으로는

3D Object Reconstruction을 위해 여러 sub-ploblems로 분해하는 방법이 있다.

 

sub-plobelms는 각각 물리적으로 의미를 지니는데 아래 사진의 예처럼

입력이 들어올 때 분해되는 Surface normal, depth, silhouette과 같은 의미를 지닌 문제들을 의미한다.

 

최종적으로는 2D 이미지가 입력으로 들어오면 sub-ploblems로 분해하고

그것들을 종합하여 3D Object를 Reconstruction하는 것이 3D Reconstruction Model의 방법이다.

 

2D 이미지를 3D로 재구성하는 방법