IT/AI\ML

[논문] point cloud 와 딥러닝(PointNet 간단 해설)

개발자 두더지 2022. 1. 21. 23:50
728x90

 이번 포스팅에서는 point cloud 데이터관련해서 주류 모델인 PointNet에 대해 알아보고자 한다. 참고로 PointNet은 2017년에 제안된 모델로, 그 이후에 발표된 정밀도가 높은 모델이 다수 제안됐다. 그러한 모델에 관련된 정보를 살펴보고 싶다면 여기를 참고하길 바란다. 그리고 포스팅에서 사용된 이미지는 이 논문에서 인용됐다.

 

 

기존의 방법 : 3차원 합성곱 신경망(Convolution neural Network)


 Volumetric CNN이라는 이름의 모델로 point cloud 를 voxel화하여 한층 한층을 이미지로써 다루며 그 이미지는 합성곱 신경망에 입력되게 된다. 각 voxel은 2개의 숫자로 표현되어, 메쉬로부터 voxel로 변환할 때 voxel 안에 데이터가 있는지 아닌지를 0혹은 1의 값으로 결정해 표현한다. 

 Volumetric CNN의 단점은 voxel화할때 point cloud 데이터의 공간 특성이 필연적으로 변화하며, 물체의 요철 표현이 결손된다는 것이다.

 

 

 

PointNet


 PointNet은 클래스 분류, 세그먼테이션, 검출 등 활용범위가 넓고, 전달된 point cloud 전체에 대해서 클래스 분류를 하는 것도 가능하고, point cloud를 세그먼테이션으로 분할하고 각각의 세그먼트에 대해서 라벨을 붙이는 것도 가능하다.

 앞서 언급했던 Volumetric CNN에서 발생하던 문제에 대해 PointNet은 point cloud의 공간 특성을 최대한 남겨두는 독자적인 point cloud 방식을 도입했다.  이로인해, 기존의 방법을 훨씬 능가하는 퍼포먼스롤 보여줬다.

 PointNet에서 제안된 point cloud 처리 방법의 특징은 아래의 두 가지이다.

  • 꼭지점 인덱스의 순서에 대한 영향을 없앤다.
  • 회전에의한 영향을 없앤다.

 이번 포스팅에서 PointNet은 어떻게 그러한 영향을 해결했는지를 설명하도록 하겠다.

 

 

PointNet의 구조


 먼저 네트워크 구조에 대해서 살펴보자. 상세한 설명은 생략하겟지만, 상단에서 클래스 분류를 실시하고, 하단에스는 semantic segmentation이나 part segmentation을 실시한다.

 

꼭지점 인덱스의 순서에 대한 영향을 없앤다.

 위 그림과 같이 point cloud는 꼭지점 인덱스를 바꿔도 본질적으로는 아무것도 변하지 않기 때문에, 데이터의 순서에 좌우되지 않는 모델을 구축할 필요가 있다. 이를 위해서는 세 가지 방법을 들 수 있다.

  • 일정한 규정에 따라 꼭지점을 재정렬한다.

      ⇒ 고차원 공간에서 정렬은 제대로 되지 않으므로 불가능한 방법이다.

  • Data aumentation(데이터 확장)를 통해, 꼭지점의 순서에 영향을 받기 힘들도록 모델을 만든다.

     ⇒ 데이터가 폭발적으로 증가하여 현실적으로 힘들다(꼭지점이 N개 있다면, 전부 N!가 된다).

  • 대칭함수를 사용해 모델을 구성한다.

     ⇒ 그렇다면 대칭함수(symmetric funtion)란?

대칭함수란?

 대칭함수란 변수의 순서를 바꿔도 값이 변하지 않는 함수를 의미한다. 예를 들면 아래와 같은 함수가 있다.

 예를 들어 x1와 x2의 순서를 바꿔도 결과값이 바뀌지 않으므로 대칭함수라고 할 수 있다. PointNet에는 이러한 대칭함수의 아이디어를 응요하여 모든 꼭지점에 대해서 같은 가중치의 다층 퍼셉트론을 걸거나, 풀링 레이어에서는 Max Pooling을 실행하는 것으로 모든 꼭지점을 평등하게 다룰 수 있다. 

 

회전에의한 영향을 없앤다.

"T-Net"이라고 불리는 네트워크를 사용하는 것으로 아판 변환 행렬을 추정하고, 그 변환 행렬을 거는 것으로 회전에 의한 영향을 없앨 수 있었다.

 

 

정리


 point cloud처리에 자주 사용되는 심층 학습 모델 PointNet에 대해서 간략하게 해설하였다. 대칭함수나 어핀 변환 행렬을 이용한 point cloud 처리 모델 특유의 특징에 대해서 설명했다. 

 PointNet은 공간의 상세한 정보가 점민도를 균일하게 하면 정밀도가 떨어지는 결점이 있지만, 그것을 해결하기 위해 PointNet++도 제안됐다. 흥미가 있다면 논문을 읽어보길 바란다.


참고자료

https://qiita.com/KYoshiyama/items/802506ec397559725a1c

728x90