요즈음 핫한 자율주행에는 어떤 딥러닝 기술들을 사용하고 있을까요? 최근 테슬라에서 오직 카메라를 이용해서 완전 자율주행이 가능하다라는 뉴스도 본 적이 있습니다. 하지만, 카메라의 성능(이미지센서의 성능)에 의존하고 있어, 정말로 안전성이 보장되는지 의구심이 들 수 밖에 없습니다. 그래서 최근 다른 연구들에서는 카메라가 아닌 라이다를 자동차에 탑재하여 사용하려는 움직임이 있습니다. 라이다란 카메라와 달리 주변환경이나 장애물을 정확하게 측정하기로 유명합니다. 라이다가 측정한 데이터는 일반적으로 Point Clouds형태로 저장됩니다. Point Clounds은 (x,y,z)의 위치좌표로 표현되어집니다 이 데이터를 이용한 Deep learning 연구들도 그만큼 활발히 연구되어 지고 있습니다. 이번에는 그 중 가장 유명한 "PointNet" 논문을 리뷰하려고 합니다.
Introduction
Point Clouds는 위의 그림처럼 3D 데이터입니다. 일반적인 2D 이미지는 행렬로 표현되고 각 픽셀 값이 RGB의 3차원으로 구성됩니다. 하지만, point cloud는 행렬로 이루어져있지 않기 때문에 x,y,z의 3차원만으로 데이터로 표현되어집니다.
이처럼, Point들은 행렬과 같은 regular format로 존재하지 않기 때문에 많은 문제 문제점들이 존재합니다. 이러한 문제를 해결하기 위해 voxel 형태로 변환시키는 방법이 존재하지만 이 또한 많은 문제 (i.e.불필요한 정보 증가)를 야기시킬 수 있습니다.
Properties of Point Sets
- Unordered(순서가 없다)
- Interaction among points
- Invariance under transformations
Symmetry Function for Unordered Input
Symmetry Function는 데이터 입력시 순서가 달라도 같은 출력을 하는 invariant permutation성질을 가지고 있습니다. 예를 들어 더하기나 곱하기의 경우 순서에 불변한 symmetric binary function입니다.
이 논문에서는 Symmetric function으로 "max pooling"을 사용하고 있습니다. max pooling은 집합에서 최대값을 가지는 값을 찾아내는 함수이므로 대표적인 Symmetry Function입니다.
추가적으로 특징 추출에 사용되는 네트워크 또한 아래와 같이 하나의 포인트에 대하여 각 mlp가 특징을 추출합니다. 각 특징들에 대하여 column-wise로 max pooling을 거치게 됩니다. 여기서 사용되는 모든 mlp는 동일한 weight을 sharing합니다.
아래의 그림은 전체적인 모델 그림을 도식화하고 있습니다. nx1024 차원의 특징을 추출하였을때 symmetric function(max pooling)을 이용해서 global feature 1024차원의 특징을 추출할 수 있게됩니다. 이 특징들로 마지막 mlp를 거쳐 classification을 진행합니다. 위에 파란색 부분이 classfication network이고, 아래 노란색 부분이 segmentation network입니다.
가장 큰 요점은 각 포인트에서 뽑은 특징 64차원과 global feature 1024차원을 concat시켜서 각 포인트의 특징을 추출을 합니다. segmentation task의 경우는 local feature와 global feature을 모두 고려해야할 필요가 있기에 다음의 처리를 했다고 합니다. 이 방법으로 interaction among point의 특징을 더욱 고려할 수 있다고 합니다.
Joint Alignment Network
일반적으로 CNN은 인풋 이미지가 transform이 됐을 때도 같은 출력값이 되도록 학습되어집니다. Point 데이터들에 augmentation을 진행해도 같은 결과를 만드는 네트워크가 필요로 합니다. 대표적인 네트워크가 Spatial Transformer Networks(STN)입니다. 아래의 그림처럼 기울어진 이미지를 orthogonal하게 만들기 위해 transform을 적용하여 canonical space로 보냅니다.
이 논문에서는 STN과 동일한 형태의 mini T-net에서는 point data를 canonical space로 보내는 데에 적용되어야하는 transformation matrix를 계산합니다.
Visualizing PointNet
이 결과는 PointNet의 방법의 효과성을 입증하는 결과입니다. 먼저 두번째 열의 결과가 max pooling한 global feature를 가시화 한 결과입니다. 확실히 물체의 골격 부분에 대부분 분포되어 있다는 것을 알 수 있습니다. 그리고 마지막 열의 결과는 비슷한 global feature들이 될만한 값들을 가시화 한것입니다. 이 결과로 부터 PointNet이 굉장히 robust하다는 것과 중요한 몇개의 점만 있어도 충분히 좋은 성능을 낼 수 있다는 것도 보여주었습니다.