[Week 5] VoxelNet

Treeboy·2022년 11월 5일
0

3d-vision

목록 보기
4/8

2017년에... 하던 모델로 넘어갔다.

3D 데이터를 voxel화 해서 처리한 VoxelNet을 살펴보자.

Motivation

manual feature engineering 을 해서 3D point cloud 데이터를 처리하는 방식은 information bottleneck 을 생성해서 우리가 원하는 invariance 를 생성하지 못함.

PointNet 에서는 MLP 를 사용해서 invariance 를 도입해 보았는데, 이는 아직도 연산량이 괴랄하다는 문제를 가지고 있음

따라서, pointcloud 데이터를 voxel 로 바꾸는 연산을 사용해 더욱 수월하게 convolution 을 수행하도록 해보자.

Architecture


Figure 2. VoxelNet Architecture

Voxel Partition

우선, (D x H x W) 의 공간을 vD x vH x vW 의 복쉘로 나눔.

Grouping

복쉘 안에 있는 점들을 하나로 묶음.

Random Sampling

복쉘 안에 T 보다 많은 점이 있는 경우, 무작위로 T 개의 점을 뽑음

  • 연산량 감소
  • 불균형 처리로 인한 sampling bias 감소

Stacked Voxel Feature Encoding

각 복쉘 안에서 centroid 를 구한 뒤, pi = [xi, yi, zi, ri] -> phati = [xi, yi, zi, ri, xi−vx, yi−vy, zi−vz] 로 매핑. 이후, 각 복쉘 안에서의 feature 을 FCN 으로 추출하고, element-wise max pooling 으로 그 복쉘의 feature을 만든 뒤 concatenate.

이는 아래의 VFE (Voxel Feature Encoding Layer) 다이어그램에 잘 요약되어 있음.

Sparse Tensor Representation

non-empty voxel features 만 메모리에 저장함으로써 메모리 할당량을 최소화하게 됨.

0개의 댓글