10. 3D Understanding

ysw2946·2022년 5월 13일
0

10. 3D Understanding

  • 3D가 AI에서 중요한 이유

    • 우리가 3D세상에 살고 있기 때문에, AI를 통해 사람들에게 도움을 주기 위해서는 3D에 대한 이해가 필요하다.
  • 그렇다면 우리는 3D를 어떻게 관찰하고 인지할 수 있을까?

    • 3D를 2D로 변환하여 관찰하는데 이를 projection이라 한다.

      e.g. 에펠탑을 관찰하기 위해 사진을 찍어 2D로 표현

  • 만약 projection 된 2D 사진 두 개가 있다면 다시 3D로 변환할 수 있다.
    • 각 point에서 3D 선을 그어 교차하는 부분을 3D point로 잡을 수 있으며 이러한 작업을 Triangulation이라 한다.

  • 그렇다면 컴퓨터는 3D를 어떻게 표현을 할까?
    • 다음과 같이 2D array에 value를 저장하여 표현하며, 색상은 multi-channel로 표현된다.

  • Multi-view images
    • 여러 각도에서 사진을 찍어 보관
  • Volumnetric
    • 3D space를 적당한 격자로 나누어 3D object가 차지하고 있는지 없는지 volume metric으로 표현
  • Part assembly
    • 기본적인 도형의 parametric한 집합으로 표현
  • Point cloud
    • 3D상에 있는 point들의 집합을 이용해 표현
  • Mesh
    • Point cloud의 점들이 삼각형 형태로 이루어져서 각 점(vertex)과 점들을 잇는 선(edge)으로 표현된다.
  • Implicit shape
    • 고차원의 함수로 표현하여 0과 교차하는 부분들을 따면 3D 형태가 나오는 추상적인 표현

3D datasets


  • ShapeNet

  • 약 51,300개로 large scale dataset으로, 각 object들은 가상으로 만들어졌다.

    • 3D data를 구하기 어렵기 때문에 51,000개 정도면 큰 데이터 셋이라고 할 수 있다.
  • PartNet

  • shapenet의 개선 버전으로 fine-grained dataset이다.

  • 각 object들의 part instance 까지 구분이 되어있어 segmentation에 유용한 데이터셋이다.

  • Scenenet

  • 5백만 개의 RGB-Depth의 실내 영상 데이터 셋이다.

  • ScanNet

  • 마찬가지로 RGB-Depth로 되어있는 데이터 셋으로, 250만 개의 view로 구성되어 있다.

  • Outdoor 3D scene datasets

3D tasks


  • 3D model을 사용하여 Recognition , detection 등을 할 수 있다.

1. 3D object recognition

  • 2D CNN을 사용해서 label정보를 출력하는 형태와 비슷하며, Volumetric CNN을 사용하여 Cat이라는 label하나를 출력한다.

  • 3D object localization은 이미지와 3D에서 모두 진행할 수 있다.

    • 이는 무인차 어플리케이션에 유용하게 사용된다.

2. 3D semantic segmentation

  • 각 3D mesh를 segmentation 할 수 있는 task도 있다.

3. 3D generation

  • Mesh R-CNN

  • input 이미지가 주어지면 image detection을 하고, 이 detection에 대해 3D mesh로 reconstruction할 수 있다.

  • 3D object를 조금 더 정교하게 sub-problems로 분해하여 구성하는 방법

  • 2D image가 주어지면 multi-task head를 통해 바로 depth, silhouette, normal을 출력하고, 이것들을 합성해서 3D를 만들 수 있다.
  • 중간 단계들을 보면 물리적으로 의미있는 sub-problems를 해결하면서 완벽한 3D object를 만들 수 있도록 제약을 걸어주었다.

0개의 댓글