Point Cloud Features
: Point Feature는 내재적이냐 외재적이냐, 로컬이냐 글로벌이냐로 분류 기준을 삼을 수 있다.
내재적 / 외재적 → 물체의 위치에 상관없이 물체 표면 자체의 기하학적 성질에서 추출하는 특징을 내재적이라고 하고, 외재적은 3D 공간상에서 물체의 위치에 의존하는 특징이다.
로컬 / 글로벌 → 물체의 국소적인 부분이나 일부분들 간의 관계를 나타내는 특징을 로컬이라고 하고, 포인트 클라우드 전체를 max pooling같은것을 해서 요약해서 하나로 표현한 특징을 글로벌로 분류한다.
기존의 연구는 classification이랑 segmentation이랑 별개의 문제로 작동했었다. 그치만 해당 연구에서는 point cloud 처리방식으로 그 두개를 한꺼번에 통합할 수 있음을 보일것이다. 일단 point들의 좌표는 별도의 언급이 없는 한 (x, y, z)로 통일한다. 그리고 첫번째 문제는 object classification이다. 이는 입력으로 하나의 형상이나 장면들에서 세그멘테이션된 물체가 될것이다. 이를 max pooling과 같은 것으로 하나의 점으로 요약을 시켜 이것에 대해서 score를 부여하는 식으로 classification을 한다. 두번째 문제는 semantic segmentation이다. 이는 입력으로 물체를 이루는 것이나 3D 장면의 일부인 점들이 된다. 이 N개의 점들을 각각 M개의 카테고리로 분류를 하여 최종적으로 N x M 행렬로 N개에 대한 분류를 진행을 한다.
Unordered → 이미지 픽셀이나 3D 복셀과 다르게, 포인트 클라우드 점들은 순서가 없이 존재를 하기 때문에 N개의 점에 대해서 N!개의 순열에 대해서 무관해야한다.
Interation among points → 점들간의 국소적인 관계를 포착해야한다. 따라서 점들은 고립되어 있지 않고, 거리메트릭이 정의된 공간에서 존재한다.
Invariance under transformations → 기하학적 변형에 대해서 불변해야하며, 이로인해 세그멘테이션 변경이 되어서는 안된다.
2)PointNet Architecture
그니까 결국 4.2에서 하고자 하는말이 일단 비정렬 입력에 대해서 이를 순서무관하게 하기 위해서 rnn에 넣었지만 썩 그리 좋지 않았을뿐더러 순서에 무관할수 없다 라는 의견도 있어서 이것을 각각의 특징들로 나눈다음에 각각의 특징에 대해서 맥스 풀링을 하여서 f함수를 대신하자라는 방법으로 비정렬 입력을 해결을 하겠다라는것이고 그다음에 말하는게 로컬과 글로벌 정보를 같이 활용한다는것인데 이는 classification에서 나온 global feature을 공유해서 semantic segmentation에서 local feature와 합쳐서 결과를 출력한다라는 말이고 결국에는 이 점의 특징에는 local과 global한 정보를 동시에 가지고 있다고 말하는거 같고 마지막으로는 t-net을 이용해서 특징 추출전에 미리 canonical space로 변환해두자는얘기가 나오는데 이는 아핀 변환 예측을 하여 이를 기존 좌표에 반영을 시켜줌으로써 geometric transformation에 대해서 invariant하게 해준다라는것인거같애. 그리고 이를 특징 공간에서도 활용할수있는데 이는 근데 일반 공간보다 고차원이기 떄문에 이를 소프트맥스 손실함수에 직교행렬이 되도록 근사하도록 학습을 시키는 방법으로 이용이 된다고 한다. 라고 내가 정리를 해본건데 맞는얘기들인지 평가해줘
3)Theoretical Analysis - Universal approximation
연속적인 함수 f에 대해서 g함수로 근사가 가능한 이유는 특징의 개수인 k를 enough large하게 만들면 3D물체의 아주 미세하고 다양한 기하학적 특징을 완벽하게 근사할 수 있기 때무넹 small perturbation에도 오차 생기지 않을 수 있다.
우리는 비교를 하기 위해서 ModelNet40 위에서 평가를 하였고, 비정렬 방법에 대해서 max pooling, average pooling, attention sum 이렇게 3가지 기법을 비교를 한 결과, max pooling 의 기법이 87.1의 accuracy로 최고성능을 나타냈다. 그리고 입력과 특징에 대해서 transformation을 한것과 안한것의 비교에서도 놀랍게도 아무것도 안한 데이터의 accuracy가 87.1로 이미 높은 결과가 나온것을 볼수있고, 고차원의 work에서는 정규화 손실이 필수적이기 때문에 이것과 t-net의 transformation을 결합한 것이 89.2로 최고 성능을 보였다. 그다음에 마지막으로 강건성 테스트에서는 데이터 누락이나, outlier 도입, 데이터 변형에 대해서 강건함을 보였다.
-최종 정리
Max Pooling (비정렬 입력 처리)
• 무엇이 문제였는가 (Problem):
3D 점 구름(Point Cloud)은 '순서가 없는(Unordered)' 데이터입니다. 기존의 일반 신경망이나 RNN에 이 데이터를 넣으면 점들이 입력되는 순서에 따라 결과가 달라지거나 긴 시퀀스를 처리하지 못해 성능이 크게 떨어졌습니다.
• 무엇으로 풀었는가 (Solution):
수학적으로 입력 순서에 전혀 영향을 받지 않는 대칭 함수인 Max Pooling을 도입했습니다. 각 점을 독립적인 고차원 특징으로 변환한 뒤, Max Pooling을 통해 가장 두드러진 최댓값만 뽑아냄으로써 점의 순서가 어떻게 들어오든 항상 동일한 대표 형상(Global Feature)을 캡처해냈습니다.
T-Net (공간 변환에 대한 불변성)
• 무엇이 문제였는가 (Problem):
물체가 회전하거나 기울어지면 점들의 좌표값이 완전히 달라져서, 네트워크가 동일한 물체라도 다른 물체로 착각하기 쉽습니다(기하학적 변환에 취약함).
• 무엇으로 풀었는가 (Solution):
특징을 추출하기 전에 T-Net(Joint Alignment Network) 이라는 미니 네트워크를 통과시켰습니다. T-Net이 스스로 아핀 변환 행렬을 예측하고 이를 입력 좌표(또는 특징)에 곱해주어, 물체가 어떤 각도로 들어오든 항상 똑바른 표준 위치(Canonical Space)로 정렬시킨 후 처리하도록 만들었습니다.
Local + Global Feature (분할 작업의 한계 극복)
• 무엇이 문제였는가 (Problem):
Max Pooling으로 얻은 전체 모양 정보(Global Feature)만 있으면 물체가 '의자'라는 것은 쉽게 맞추지만, 특정 점이 '의자 다리'인지 '등받이'인지 구별해야 하는 분할(Semantic Segmentation) 작업에는 점 개별의 세밀한 공간 정보가 부족했습니다.
• 무엇으로 풀었는가 (Solution):
Max Pooling으로 뽑아낸 '전체 모양 특징(Global Feature)'을 각 점의 '개별 위치 특징(Local Feature)'과 하나로 이어 붙였습니다(Concatenation). 이를 통해 각 점은 자신의 세부 위치뿐만 아니라 전체 형상 내에서의 맥락까지 동시에 파악할 수 있게 되었습니다.