2 minute read

Reference

DReg-NeRF: Deep Registration for Neural Radiance Fields

KPConv: Flexible and Deformable Convolution for Point Clouds

KPConv: Flexible and Deformable Convolution for Point Clouds

In this work, we propose KPConv, a convolution that operates on point clouds. KPConv takes radius neighborhoods as input and processes them with weights spatially located by a small set of kernel points.

KPConv also consists of a set of local 3D filters.

… as done in KPConv [36] to obtain the downsampled voxel points $\hat{X}$. The downsample iteration is terminated when the total number of occupied voxels in the current sampled voxel feature grid is less than 1.5K.

3D point cloud segmentation or 3D simultaneous localization and mapping rely on non-grid structured data: point clouds.

A point cloud is a set of points in 3D (or higher-dimensional) space.

In many applications, the points are coupled with corresponding features like colors. In this work, we will always consider a point cloud as those two elements:

  • the points $P \in R^{N \times 3}$
  • the features $F \in R^{N \times D}$

Such a point cloud is a sparse structure that has the property to be unordered, which makes it very different from a grid.

However, it shares a common property with a grid which is essential to the definition of convolutions: it is spatially localized.

  • In a grid, the features are localized by their index in a matrix.
  • In a point cloud, the features are localized by their corresponding point coordinates.

Thus, the points are to be considered as structural elements, and the features as the real data.

Image convolution과 KPConv 차이

image

KPConv에서는 입력 점들이 커널 점들과 정렬되지 않으며, 점의 수가 가변적입니다.

따라서, 각 점의 특성 $f_i$는 모든 커널 가중치 행렬과 곱해지며, 커널 점에 대한 상대적인 위치에 따라 결정되는 상관 계수 $h_{ik}$ 를 적용받습니다.

Kernel Point Network Layers

다중 레이어 스케일 구조를 만들기 위해 점의 수를 점진적으로 줄여야 하며, 이를 위해 그리드 서브샘플링을 사용합니다. 각 풀링 레이어에서는 셀 크기를 두 배로 늘리면서 receptive field을 확장합니다. 새로운 위치에서 풀링된 특징은 최대 풀링(max-pooling)이나 KPConv로 얻을 수 있으며, 여기서는 “strided KPConv” 방식을 사용합니다. 이는 이미지의 스트라이드 컨볼루션과 유사한 개념입니다.

Kernel Point Network Architectures

KP-CNN과 KP-FCNN의 구조는 전통적인 CNN과 유사한 설계 철학을 따르고 있습니다. 다만, 3D 포인트 데이터를 처리하기 위한 몇 가지 차별점이 있습니다. 이를 정리하면 다음과 같습니다:

유사점:

  • 계층적 구조: CNN처럼 layer를 쌓아가며 점진적으로 feature를 추출하고, deeper layer에서는 더 추상적인 feature를 학습합니다.
  • Pooling과 Upsampling:
    • KP-CNN: global average pooling을 통해 feature를 집계.
    • KP-FCNN: nearest upsampling을 사용해 segmentation에서 pointwise prediction을 수행.
  • Activation과 Normalization: Leaky ReLU activation과 batch normalization을 사용해 학습 안정성을 확보.
  • Bottleneck Block: ResNet에서 사용되는 bottleneck 구조를 차용.

차별점:

  • KPConv (Kernel Point Convolution):
    • 전통 CNN의 image convolution 대신, KPConv를 사용해 irregular한 3D point cloud 데이터를 처리합니다.
    • 3D 포인트 간의 상대적 위치를 고려해 weight를 계산하므로, grid 구조가 아닌 데이터에서도 효율적으로 동작.
  • Strided KPConv:
    • Strided convolution과 유사하지만, 3D 데이터에서 포인트 수를 줄이며 receptive field를 확장하기 위한 방식으로 설계됨.
  • Deformable Kernel:
    • Deformable KPConv를 통해 더 복잡한 구조를 처리 가능.
    • KPConv가 특정 위치에서 rigid한 형태로 가중치를 학습하는 것과 달리, deformable kernel은 adaptive하게 포인트 클라우드의 형태에 맞춰 조정.

결론:

KP-CNN과 KP-FCNN은 전통적인 CNN의 기본적인 아이디어(계층적 학습, activation, pooling 등)를 유지하면서,

포인트 클라우드라는 비정형 데이터를 처리하기 위해 KPConv를 도입하고 구조를 변형한 형태라고 볼 수 있습니다.

Leave a comment