11 minute read

Deep Learning for 3D Point Clouds: A Survey




Regularly updated project page : https://github.com/The-Learning-And-Vision-Atelier-LAVA/SoTA-Point-Cloud




1. INTRODUCTION





2. BACKGROUND


2.1 Datasets



2.1.1 Dataset for 3D shape classification

  • 3D Shape Classification Dataset에는 크게 2가지 Type이 있다. Synthetic datasets & Real-world datasets
  • Synthetic dataset에 있는 Object는 겹침이나 배경같은 Data가 없이 깔끔하다
  • 반면에, real-world dataset에 있는 Object들은 다른 층의 Object에 가려지고 일부 Object가 배경으로 오염되어 있기도 하다.

    • McGill Benchmark
    • Sydney Urban Objects
    • ModelNet10
    • ModelNet40
    • ShapeNet
    • ScanNet
    • ScanObjectNN


2.1.2 Dataset for 3D object detection and tracking

  • 3D object detection and tracking Dataset에는 2가지 종류가 있다. indoor scenes and outdoor urban scenes.
  • indoor dataset의 point clouds는 dense depth maps나 sampled from 3D meshes를 변환해서 만듭니다.
  • outdoor urban datasets은 자율주행용으로 만들어졌으며 객체는 공간적으로 잘 분리되어 있으며 이러한 포인트 클라우드는 희소(sparse)합니다.

    • KITTI
    • SUN RGB-D
    • ScanNetV2
    • H3D
    • Argoverse
    • Lyft L5
    • A*3D
    • Waymo Open
    • nuScenes


2.1.3 Dataset for 3D point cloud segmentation

  • 3D point cloud segmentation용 datasets은 다음과 같은 다양한 Sensor로 얻어집니다.
  • 이러한 Dataset들은 오답탐지 , Shape 불완전성 , class imbalance와 같은 어려운 과제를 해결하는데 도움을 줄 수 있다.

    • Oakland
    • ISPRS
    • Paris-rue-Madame
    • IQmulus
    • ScanNet
    • S3DIS
    • Semantic3D
    • Paris-Lille-3D
    • SemanticKITTI
    • Toronto-3D
    • DALES


2.2 Evaluation Metrics


2.2.1 3D shape classification

  • Overall Accuracy (OA) : the mean accuracy for all test instances
  • mean class accuracy (mAcc) : the mean accuracy for all shape classes


2.2.2 3D object detection

  • Average Precision (AP) : the most frequently used criterion. calculated as the area under the precision-recall curve.


2.2.3 3D single object tracker

  • Precision and Success : commonly used to evaluate the overall performance


2.2.4 3D multi-object tracking

  • Average Multi-Object Tracking Accuracy (AMOTA)
  • Average Multi-Object Tracking Precision (AMOTP)


2.2.5 3D point cloud segmentation

  • Overall Accuracy (OA)
  • mean Intersection over Union (mIoU)
  • mean class Accuracy (mAcc)
  • mean Average Precision (mAP) : also used in instance segmentation of 3D point clouds.




3. 3D SHAPE CLASSIFICATION



  • 신경망 입력 Data Type에 따른 분류(According to the data type of input for neural networks)
    • multi-view based
      • project an unstructured point cloud into 2D images
    • volumetric-based
      • convert a point cloud into a 3D volumetric representation
        ⇒ well-established 2D or 3D convolutional networks are leveraged to achieve shape classification
    • point-based methods
      • directly work on raw point clouds without any voxelization or projection
      • do not introduce explicit information loss and become increasingly popular.


3.1 Multi-view based Methods**


  • 이 방법은 먼저 3D Shape을 multiple views로 Project시킨 후에 다양한 Feature를 조합하여 정확한 Shape classification을 수행한다.
  • 다양한 Feature들을 어떻게 조합하여 Shape을 Classification하는지가 이 방법의 중요한 Key이다.

    • MVCNN
    • MHBN


3.2 Volumetric-based Methods


  • 이 방법은 shape classification하기 위해서 point cloud를 3D grids로 voxelization 시킨 후에 3D Convolution Neural Network (CNN)을 적용한다.

  • Voxelization

    ⇒ Pixel의 3D 형태가 Voxel이므로, Voxel은 그래픽을 구성하는 정육면체 모양의 요소라고 생각하면 된다. Pixel과 마찬가지로 모든 Voxel의 모양과 크기는 동일하고. 색상값을 가지며 3D 이미지를 구성하게 된다.



* VoxNet
* ShapeNets
* OctNet
* Octree-based CNN
* PointGrid


3.3 Point-based Methods


  • 각 Point의 Feature 학습에 사용된 Network architecture에 따라서 다음과 같은 방식이 있다.
    • pointwise MLP
    • convolution-based
    • graph-based
    • hierarchical data structure-based
    • Others


3.3.1 Pointwise MLP Methods


  • 이러한 방법은 여러 공유 MLP(Multi-Layer Perceptron)를 사용하여 각 점을 독립적으로 모델링한 다음 아래 그림과 같이 symmetric aggregation function을 사용하여 global feature을 모은다.



* PointNet
* Deep sets
* PointNet++
* Mo-Net
* Point Attention Transformers (PATs)
* PointWeb
* Structural Relational Network (SRN)
* SRINet
* PointASNL


3.3.2 Convolution-based Methods


  • Image에 적용하는 2D Kernel과 비교해서 Point Cloud에 적용하는 3D CNN Kernel은 Point Cloud의 irregularity 한 특성 때문에 Design하기 어렵다.
  • convolutional kernel의 종류에 따라, 3D convolution 방법은 아래 그림과 같이 continuous convolution methods와 discrete convolution methods로 나뉜다.



3.3.2.1 3D Continuous Convolution Methods


  • 이 방법은 continuous space에서 convolutional kernels을 정의합니다. 여기서 neighboring points의 Weight는 center point에 대한 공간 분포와 관련됩니다.
    • RS-CNN
    • DensePoint
    • Kernel Point Convolution (KPConv)
    • ConvPoint
    • PointConv
    • MCCNN
    • SpiderCNN
    • PCNN
    • 3D Spherical CNN
    • Tensor field networks
    • SPHNet
    • Flex-Convolution


3.3.2.2 3D Discrete Convolution Methods


  • 이 방법은 neighboring points의 Weight가 center point에 대한 오프셋과 관련된 일반 그리드에서 convolutional kernels을 정의합니다.
    • GeoConv
    • PointCNN
    • InterpConv
    • RIConv
    • A-CNN
    • SFCNN


3.3.3 Graph-based Methods


  • Graph Based Network은 Point Cloud의 각 점을 Graph의 Vertex로 생각하고 방향이 있는 Graph를 생성한다.
  • Feature Learning은 그 이후에 spatial or spectral domains에서 실행한다.



3.3.3.1 Graph-based Methods in Spatial Domain


  • 공간 Domain에서 convolution & pooling 정의
  • 인접 점들에 MLP를 적용하여 새로운 coarsened graph를 만들고 여기서 Feature를 뽑는다.
  • 각 Vertex의 Feature는 보통 좌표 / Laser 강도 / 색상등으로 정의되고, Edge의 Feature는 각 점들의 연결의 기하학적 특징으로 할당된다.


* EdgeConditioned Convolution (ECC)
* VoxelGrid
* DGCNN
* EdgeConv
* LDGCNN
* FoldingNet
* Dynamic Points Agglomeration Module (DPAM)
* KCNet
* G3D
* ClusterNet
* Grid-GCN


3.3.3.2 Graph-based Methods in Spectral Domain


  • Conv.를 Graph의 신호를 Laplacian matrix 고유 벡터와 곱하는 것으로 정의하는 spectral filtering로 정의하여 구현

    • RGCNN
    • AGCN
    • HGNN
    • LocalSpecGCN
    • PointGCN
    • 3DTI-Net


3.3.4 Hierarchical Data Structure-based Methods


  • 이 방법은 다양한 hierarchical data structures (e.g., octree and kd-tree)를 기초로 해서 구성된다.
  • 이 방법은 각 점들의 Feature를 Tree의 Leaf Node에서 Root Node로 따라 올라가면서 학습하게 된다.
    • OctNet
    • Kd-Net
    • 3DContextNet
    • SO-Net
    • SOM


3.3.5 Other Methods


  • RBFNet
  • 3DPointCapsNet
  • PointDAN
  • ShapeContextNet
  • RCNet
  • RCNet-E
  • Point2Sequences
  • PVNet
  • PVRNet


3.5 Summary


  • Pointwise MLP networks는 다른 종류의 Network의 Basic Building Block으로 자주 사용된다.
  • standard deep learning architecture로써, convolution-based networks는 불규칙한 3D Point Clould에서 우수한 성능을 보여준다.
  • 불규칙한 Data에서 discrete and continuous convolution networks 에 좀 더 많은 관심을 기울일 필요가 있다.
  • 불규칙한 data를 다루는 내재된 훌륭한 성능 덕분에 graph-based networks은 최근 많은 관심을 받고 있다.
  • 하지만 spectral domain에서 다양한 Graph 구조로 확장시키는 것은 여전히 어려운 일이다.






4. 3D OBJECT DETECTION AND TRACKING


4.1 3D Object Detection


  • 일반적인 3D object detector는 Point Cloud의 장면을 입력으로 받아서 각 Object의 oriented 3D bounding를 만들어 냅니다.
  • 2D Image의 object detection과 유사하게, 3D object detection 방법은 크게 region proposal based and single shot methods의 2가지로 나눌 수 있다.



4.1.1 Region Proposal-based Methods


  • 이 방법은 우선 몇개의 Object를 포함하는 Region(Proposals이라고도 불린다)을 제안하고 각 Proposal에서 Feature를 추출하여 분류합니다.
  • 각 방법이 제안하는 Proposal 생성 방법에 따르면, 이 방법도 크게 3가지로 나눌 수 있습니다.


4.1.1.1 Multi-view based Methods


  • 이 방법은 다양한 소스의 Data로 부터 Feature를 얻는다.
  • Computational Cost가 높다



  • 실사용에서 사용하기에는 너무 느리기 때문에 성능 향상을 위한 방안 발전
    • Multi Modality로부터 얻은 Data를 효율적으로 연결하기 위한 방법
    • Robust한 Data를 뽑기 위한 방안
  • MV3D
  • AVOD
  • ContFuse
  • MMF
  • SCANet
  • RT3D


4.1.1.2 Segmentation-based Methods


  • 이 방법은 먼저 기존의 semantic segmentation techniques을 이용하여 대부분의 background points를 제거한 후, 나머지 Point들로부터 large amount of high-quality proposals을 생성하는 방법이다.
  • multi-view methods와 비교하면, 이 방법은 higher object recall rates를 달성할 수 있고, 복잡한 장면에 좀 더 적합하다.



  • IPOD
  • PointRCNN
  • PointRGCN
  • PointPainting
  • STD


4.1.1.3 Frustum-based Methods


  • 이 방법은 기존의 2D object detectors를 이용하여 2D regions candidate 을 먼저 찾아내고, 그 후에 각각의 2D regions candidate에서 3D frustum proposal 을 찾아내는 방법이다.
  • 이 방법이 3D objects의 위치를 효과적으로 찾는다 해도, 2D image detectors의 성능 한계에 영향을 받습니다.



* F-PointNets
* SIFRNet
* PointFusion
* RoarNet
* F-ConvNet
* Patch Refinement


4.1.1.4 Other Methods


  • 3D IoU loss
  • Fast Point R-CNN
  • PV-RCNN
  • VoteNet
  • Feng et al.
  • ImVoteNet
  • Part-A^2


4.1.2 Single Shot Methods


  • 이 방법은 single-stage network을 이용해서 바로 class probabilities를 예측하고 3D bounding boxes를 찾아냅니다.
  • 이 방법은 region proposal generation을 할 필요도 없고 post-processing도 필요하지 않아서, 결과적으로 빠른 속도를 보여줍니다.
  • Input Data의 Type에 따라서 BEV-based, discretizationbased , point-based methods로 나눌 수 있습니다.


4.1.2.1 BEV-based Methods ( BEV : Bird’s Eye View )


이 방법은 입력으로 BEV Data Representation을 받는다.

  • PIXOR
  • HDNET
  • BirdNet


4.1.2.2 Discretization-based Methods


  • 이 방법은 Point Cloud를 일반적인 discrete representation으로 바꾼 후에 CNN을 적용하여 분류하는 방법이다.
    • VeloFCN
    • 3D FCN
    • Vote3Deep
    • 3DBN
    • VoxelNet
    • SECOND
    • MVX-Net
    • PointPillars
    • SA-SSD


4.1.2.3 Point-based Methods


  • 이 방법은 Raw Point Cloud 값을 Direct로 받습니다.
    • 3DSSD


4.1.2.4 Other Methods


  • LaserNet
  • LaserNet++
  • OHS-Dense
  • OHS-Direct
  • Point-GNN



4.2 3D Object Tracking


  • 어떤 객체의 첫번째 Frame에서의 위치가 주어졌을 때 object tracking은 다음 Frame들에서 위치를 추정하는 것이다.
  • 3D object tracking은 Point Cloud의 기하학적 정보를 사용할 수 있기 때문에 이미지 기반 추적이 직면한 여러 단점을 극복할 것으로 예상됩니다.

    • 3D Siamese network
    • STAPLECA
    • SiamFC
    • Point-to-Box (P2B)


4.3 3D Scene Flow Estimation


  • Point Cloud에서 3D Scene Flow Estimation은 주어진 Point Cloud X,Y에서 X에 속한 xi에서 그에 해당하는 Y의 xi’로의 이동을 나타낸다.



* FlowNet3D
* Hierarchical Permutohedral Lattice FlowNet (HPLFlowNet)
* PointRNN , PointGRU , PointLSTM


4.4 Summary


  • Region proposal-based 방법과 single shot 방법 중에 Region proposal-based 방법은 가장 많이 연구되고 있고, single shot 방법은 KITTI test 3D 과 BEV benchmarks에서 더 나은 성능을 보여준다.
  • 현재의 3D object detectors에는 크게 2가지의 한계점이 있다. 먼저, long-range detection 능력이 상대적으로 좋지 않다. 둘째, Image로부터 얻은 정보를 어떻게 하면 최대한으로 활용할지는 아직 연구할 것이 많이 남아 있다.
  • Multi-task learning은 3D object detection 분야가 나아가야할 미래이다. 예를 들어, MMF는 incorporating multiple tasks를 통해서 SOTA를 달성하기 위해서 cross-modality representation을 학습한다.
  • 3D object tracking and scene flow estimation은 research topics으로 떠오르고 있으며, 2019년 이후로 점차 주목을 받고 있다.




5. 3D POINT CLOUD SEGMENTATION


  • 3D point cloud segmentation는 global geometric structure와 각 Point의 fine-grained details에 대한 이해가 필요하다.
  • 3D point cloud segmentation 방법은 segmentation 단위에 따라서 3가지로 나눌 수 있다.

    • semantic segmentation (scene level)
    • instance segmentation (object level)
    • part segmentation (part level)


5.1 3D semantic segmentation


  • semantic segmentation : 인공지능이 이미지에 있는 객체를 픽셀 단위로 분류하는 것
  • Point Cloud가 있을 때, semantic segmentation의 목적은 Point의 semantic meaning에 따라서 여러개의 하위 집합으로 분리하는 것이다.
  • 3D shape classification의 종류를 분류한 것과 비슷하게, semantic segmentation에는 크게 4가지의 paradigms이 있다.

    • projection-based
    • discretizationbased
    • point-based
    • hybrid methods.
  • projection과 discretizationbased 방법의 첫번째 순서는 multi-view, spherical, volumetric, permutohedral lattice , hybrid representations 등과 같은 intermediate regular representation 형태의 Point Cloud 표현 방식으로 변환하는 것이다.



  • 그런 다음에 intermediate segmentation 결과는 Raw point cloud에 다시 투영(Project)됩니다.
  • 반면에, point-based 방법은 irregular point clouds로 바로 동작합니다.



5.1.1 Projection-based Methods


  • 이 방법은 보통 3D point cloud를 2D Image로 Project시킨다


5.1.1.1 Multi-view Representation


  • DeePr3SS
  • SnapNet
  • TangentConv


5.1.1.2 Spherical Representation


  • SqueezeSeg
  • SqueezeSegV2
  • RangeNet++


5.1.2 Discretization-based Methods


  • 이 방법은 보통 point cloud를 volumetric 이나 sparse permutohedral lattices 같은 dense/sparse discrete 표현으로 변환합니다.


5.1.2.1 Volumetric( Dense Discretization Representation )


  • SEGCloud
  • SparseConvNet
  • MinkowskiNet
  • VV-Net


5.1.2.2 Permutohedral lattice( Sparse Discretization Representation )


  • SPLATNet
  • LatticeNet


5.1.3 Hybrid Methods


  • 3DMV
  • UPB
  • MVPNet


5.1.4 Point-based Methods


  • Point-based networks는 irregular한 point clouds를 바로 Data로 사용한다.
  • 하지만, point clouds는 orderless 하고 unstructured하기 때문에 standard CNN에 바로 적용하지 못한다.
  • 이를 극복하기 위해서 선구자적인 연구인 PointNet이 제안되었다. PointNet은 Shared MLP를 사용하여 Point별 Feature를 학습하고 symmetrical pooling function을 이용하여 global feature를 학습한다.



5.1.4.1 Pointwise MLP Methods


  • 이 방법은 기본적으로 high efficiency를 위해서 shared MLP를 basic unit으로 사용한다.
  • 하지만, shared MLP에 의한 Extracted된 point-wise features는 point clouds의 local geometry를 잡아내지 못하고 또한 Point들 간의 상호 작용도 잡지 못한다.
  • 이런 단점을 극복하고 richer local structures와 각 Point들의 wider context를 잡아내기 위해서 neighboring feature pooling, attentionbased aggregation, local-global feature concatenation등을 기본으로 하는 몇몇 Network들이 소개되었다.

    • PointNet
    • PointNet++
    • PointSIFT
    • Engelmann
    • 3DContextNet
    • A-SCN
    • PointWeb
    • PAT
    • LSANet
    • ShellNet
    • RandLA-Net


5.1.4.2 Point Convolution Methods


  • 이 방법은 Point Cloud에 효과적인 convolution operators를 제안하고자 한다.

    • PointCNN
    • PCCN
    • A-CNN
    • ConvPoint
    • KPConv
    • DPC
    • InterpCNN


5.1.4.3 RNN-based Methods


  • Point Cloud에 내재된 context features를 잡아내기 위해 RNN도 사용된다.

    • RSNet
    • G+RCU
    • 3P-RNN


5.1.4.4 Graph-based Methods


  • 3D point clouds의 드러나지 않는 모양과 geometric structure를 잡아내기 위해서 Graph Network을 이용한 몇몇 방법들이 있다.

    • DGCNN
    • SPG
    • SSP+SPG
    • GACNet
    • PAG
    • HDGCN
    • HPEIN
    • SPH3D-GCN
    • DPAM



5.2 Instance Segmentation


  • semantic segmentation에 비교해서 instance segmentation는 Point에 대한 보다 정확하고 세분화된 추론이 필요하기 때문에 더 어렵습니다.
  • 특히, instance segmentation은 각 Point들의 의미론적 구분도 해야할 뿐만 아니라 같은 의미를 가진 Point들을 분리도 해야 합니다.
  • instance segmentation은 크게 proposal-based methods and proposal-free methods로 나눌 수 있다.



5.2.1 Proposal-based Methods


  • 이 방법은 instance segmentation 문제를 3D object detection 과 instance mask prediction 2개의 하위 문제로 변환합니다.
  • 전체적으로, proposal-based methods은 간단하고 직관적이며, 결과는 대체적으로 좋은 물체성 / 대상성(objectness)을 가진다.
  • 하지만, 이 방법은 multi-stage training이 요구되고 중복된 제안 결과를 걸러내야 한다는 단점이 있습니다.
  • 그래서, 대체로 이 방법은 시간이 오래걸리고 많은 계산량이 요구됩니다.

    • GSPN
    • 3D-SIS
    • VDRAE
    • PanopticFusion
    • 3D-BoNe
    • LiDARSeg
    • 3D-MPA


5.2.2 Proposal-free Methods


  • Proposal-free methods 방식은 object detection module이 없다.
  • 대신, 이 방식은 semantic segmentation 후에 subsequent clustering 을 하는 방식으로 진행합니다.
  • 특히, 대부분의 Proposal-free methods는 같은 Instance에 속하는 Point들은 모두 매우 유사한 Feature들을 가지고 있을 것이라는 가정을 합니다.
  • 그러므로, 이 방법은 주로 discriminative feature learning 및 point grouping에 중점을 둡니다.
  • proposal-free methods는 region-proposal와 같은 계산량이 매우 높은 방식이 필요하지 않습니다.
  • 하지만, 이 방법으로 구분된 instance segments의 대상성(objectness)는 보통 명시적인 Object boundaries가 없기 때문에 좋지 않다.

    • SGPN
    • PCAMP
    • PartNet
    • ResNet-Backbone
    • JSIS3D
    • MTML
    • ISPE
    • JSNet
    • PointGroup
    • OccuSeg


5.3 Part Segmentation


  • part segmentation 의 어려움은 다음 2가지이다.
  • 첫째로, 동일한 semantic 레이블을 가진 Part는 기하학적 다양성과 모호성이 크다
  • 둘째로, 동일한 semantic의 객체를 구성하는 part의 수가 다를수가 있다.

    • VoxSegNet
    • Synchronized Spectral CNN (SyncSpecCNN)
    • Shape Fully Convolutional Networks (SFCN)
    • CoSegNet
    • Branched AutoEncoder network (BAE-NET)
    • top-down recursive part decomposition network (PartNet)
    • zero shot 3D part segmentation


5.4 3D POINT CLOUD SEGMENTATION Summary


  • regular data representation덕분에 projection-based methods 과 discretization-based methods 둘 다 2D Image를 network architecture 에 활용할 수 있게 되었다.
  • 하지만, 3D-2D projection에 의해서 야기되는 projection-based methods 의 한계때문에 information loss를 수반하게 되고, discretization-based methods은 해상도의 증가로 인한 계산량이 3제곱으로 증가한다는 것이다.
  • 이를 극복하기 위해 indexing structures를 기반으로 하는 sparse convolution이 실현 가능한 해결책이 될 수 있으며 추가로 연구할 가치가 있다.
  • Point-based networks은 가장 많이 연구되는 방법이다.
  • 하지만, point representation은 기본적으로 명시적으로 주변 Point들의 정보를 가지고 있지 않기 때문에, 현재 나와있는 대부분의 Point-Base 방법은 비용이 많이 드는 neighbor searching mechanisms에 의존하고 있다.
  • 이런 점은 기본적으로 Point-based 방법들의 효율을 제한하고 있다. 최근 제안된 point-voxel joint representation은 이런 제안을 개선할 수 있는 흥미로운 연구이다.
  • point cloud segmentation에 있어서 imbalanced data로 학습하는 것은 여전히 어려운 일이다.
  • 비록 몇개의 접근 방식이 우수한 성능을 보여주기는 했지만, minority class에 대해서는 여전히 성능은 제한적이다.
  • 현재 대부분의 방법들은 small point clouds (e.g.,1m×1m with 4096 points)에 대해서는 잘 동작한다.
  • 실제로 depth sensor로 부터 받은 point cloud data는 대부분 대용량의 Data인 경우가 많다.
  • 그래서 large-scale point clouds의 효과적인 segmentation에 대해서는 좀 더 연구하는 것이 바람직하다
  • dynamic point clouds에서 spatio-temporal information을 학습하기 위한 소수의 연구가 시작되었습니다.
  • spatio-temporal information이 3D object recognition , segmentation , completion등과 같은 부수적인 작업의 성능을 향상시킬 수 있으리라 기대하고 있습니다.