3D Understanding
우리가 3d 세상에 살고 있기 때문에 앞으로 나올 AI driving agent, robot들도 사람들에게 도움을 주기위해 3d 공간에 대한 이해가 필요하다.
- Triangulation : 2d image들로부터 3d point를 구하는 방법이다.
3d data가 어떻게 computer에 표현되는지를 살펴볼 것이다. 2d image의 경우에는 다음과같이 2d array 구조로 각 pixel이 RGB값을 가져 표현이 된다.
하지만 3d data의 경우 unique하지 않게 다음과 같이 나올 수 있다.
- Multi-view images : 여러 각도에서 사진을 촬영하여 저장한다.
- Volumetric(voxel) : 2d image와 가장 비슷한 방법으로 적당히 격자를 나눠 그 격자가 3d object를 차지하고 있는지 없는지를 나타낸다.
- Part assembly : part를 assemble하는 방법이다.
- Point cloud : 3d 상의 point들의 집합을 사용한 표현 방법이다.
- Mesh (Graph CNN) : 가장 흔히 사용되는 것은 triangle mesh로 triangle로 이루어져있으며 각 point를 vertex, point를 잇는 선을 edge라고 한다.
- Implicit shape : 고차원의 fuction으로 표현하고 0과 교차하는 부분들이 3d 형상으로 나타난다.
3D datasets
- ShapeNet
3d 표현을 이용하여 학습을 할 수 있게 dataset을 만들어야할 것이다. shapenet이 55 category의 51,300개의 3d model들이 있다.
- PartNet
또 다른 dataset으로 partnet이라는 것이 있다. partnet은 fine-grained dataset인데 이 의미는 하나의 object에 대해서 detail들이 annotation되어있다는 것이다. 그래서 26,671개의 3d model에서 573,585개의 part insatance로 구분되어있다.
- SceneNet
500만개의 RGN-Depth 영상 dataset이다.
- ScanNet
RGB-Depth로 표현된 dataset으로 250만개의 view로 구성되어있다. 하지만 실제로 scan된 data이기 때문에 작지않은 dataset이라고 할 수 있다.
3D tasks
- 3D recognition
3D object recognition은 2d cnn을 사용하여 image가 들어왔을 때 단순히 label 정보를 출력하는 형태와 비슷하다. 3d model은 volumetric CNN을 사용할 수 있다.
- 3D object detection
3d object를 localization하는 것인데 image에서도 가능하고 3d space에서도 가능하다. 이런 3D object detection은 무임차 application에서 유용하게 사용된다.
- 3D semantic segmentation
신경촬영과 같은 3d data에 semantic segmentation를 사용할 수 있다.
- Mesh R-CNN
input으로는 2d image로 ouput은 detect된 object의 3d mesh가 나온다. Mask R-CNN의 head를 mesh 형태로 modification함으로서 구현을 할 수 있다.
Mask R-CNN은 최종적으로 box, class, mask로 세 가지 branch가 나누어진다. 각 branch들은 output을 reference할 때 하나의 RoI를 공유하여 그 feature로부터 각각의 출력을 prediction한다.
Mesh R-CNN은 3D branch가 추가된 것으로 3d mesh를 출력해주는 역할을 해준다.
- More complex 3D reconstruction models
3d object를 여러 sub-problem으로 decomposing하여 더 정교한 3d를 구성하는 방법이다. 2d image가 주어지면 CNN을 통해서 multi-task head를 통해 depth를 추정하기도 하고 mask인 silhouette을 추정하기도 하고 surface normal을 추정하기도한다. 이것들을 합성하여 full 3d를 만드는 것이다.
'Boostcamp AI Tech' 카테고리의 다른 글
[Boostcamp Day-35] 특강 - Part 1 (0) | 2021.09.23 |
---|---|
[Boostcamp 7주차] 피어세션과 학습 회고 (0) | 2021.09.17 |
[Boostcamp Day-33] Computer Vision - Image Captioning (0) | 2021.09.17 |
[Boostcamp Day-33] Computer Vision - Multi-modal learning (0) | 2021.09.17 |
[Boostcamp Day-32] Computer Vision - Conditional Generative Model (0) | 2021.09.15 |