새소식

Point Cloud

Point Cloud Descriptor (1) : PFH

  • -

Registration (정합) 을 수행할 때 ICP (Iterative Closest Point) 를 사용하는 경우에는 "포인트들간의 매칭 정보를 알 필요가 없다" 라는 장점이 있었습니다. 

하지만 이 방법은 초기 포즈가 어느 정도 정확하지 않으면 Registration 이 잘 되지 않는다는 단점이 있습니다. 

 

이때 Point Cloud 에서 대응점을 구하기 위해서 사용하는 것이 Descriptor 입니다. 

 

이미지도 Descriptor 가 있듯이 Point cloud 에도 Feature Point 와 Descriptor (기술자) 가 있습니다. 

 

3D Feature Matching 을 통해서 할 수 있는 것

 

  • Classification
  • Registration
  • Pose Estimation

 

2D Feature 와 3D Feature 의 차이점

 

3D point cloud 는 2D 이미지와 다르게 Feature point 를 정의하기가 어렵습니다. 

 

3D point cloud 를 다룰 때는 Feature Point 를 추출하지 않습니다.  이미지에는 Harris Corner, DOG, FAST 등으로 Feature 를 추출하는데, 3D point cloud 에서는 왜 Feature Point 를 추출하지 않는 것일까요 ?

 

이미지는 어떤 값으로든 2차원 행렬이 가득 차있고, 따라서 이미지들은 Texture 가 풍부하다고 할 수 있습니다. 

2차원 이미지에서는 Feature 를 찾기가 쉽고, Feature 들이 많이 나옵니다. 따라서 2차원 이미지에서는 Feature 를 뽑는 것이 유의미한 행위입니다. 

 

하지만 Point Cloud 에서는 컬러값이 없기 때문에 Feature 를 뽑는 것이 매우 어려울 뿐 아니라 충분할 만큼 많은 양의 Feature 가 뽑히지도 않습니다. 

 

따라서 대부분의 알고리즘들은 3D point cloud 에서 특징점을 뽑기보다는 포인트들의 Descriptor 를 만드는 것에 집중되어 있습니다. 

그런데, Descriptor 라는 것은 "어떤 포인트가 기준으로 주어졌을 때 , 주어진 포인트들에 대해 Descriptor" 를 만드는 것이기 때문에 "특징점을 뽑지 않으면 어떻게 Descriptor 를 만드는 것일까 ? " 라는 생각을 할 수 있습니다. 

대답은 다음과 같습니다. 

모든 Point 들에 대해서 Descriptor 를 다 만듭니다. 

 

3D Descriptor 의 조건

  • Robust to transformations
    • Point Cloud 가 Rotation / Translation 되어도 같은 위치에서 Feature 가 뽑혀야 합니다. 
    • 가까이서 찍던 멀리서 찍던 같은 점에 대해서는 늘 같은 Descriptor 가 나와야 합니다. 
  • Robust to noise
  • Resolution invariant
    • Point Cloud 는 보통 Downsampling 을 해서 많이 사용하는데, Downsampling 을 하여도 동일한 Descriptor 가 나와야 합니다. 

 

포인트 클라우드의 경우, 가지고 있는 정보는 "어떤 포인트와 다른 포인트 간의 기하학적 관계" 뿐입니다. 

따라서 요약하자면 다음과 같습니다. 

 

1. Point Cloud Descriptor 를 다룰 때, Feature Extraction 은 하지 않는다. 
2. 모든 포인트들에 대해서 Descriptor 를 만든다.
3. Descriptor 는 Point 들 간의 Geometry 를 이용해서 만든다. 

 

  1.  

PFH (Point Feature Histogram)

 

이것은 Point Cloud Descriptor 중의 원조격이라고 할 수 있는 알고리즘입니다. 이 알고리즘은 점과 그 점 주변에 있는 포인트들 간의 기하학적 관계를 통해서 정보를 취득합니다. 

이때 주변 포인트와의 관계를 통해서 얻을 수 있는 정보는 Normal 정보 (법선 벡터)입니다. 

점이 세 개만 있어도 평면이 생성되고, 평면에는 normal 이 있다.

 

포인트들 마다 normal 벡터의 방향이 조금씩 다르기 때문에, 이 normal 방향의 차이점을 분석해서 어떤 점에 대한 Descriptor 를 만드는 것이 PFH 입니다. 

PFH analyze the difference between the directions of the normals in the vicinity. 

 

모든 점들에 대해서 normal vector 를 구한 것

 

PFH 알고리즘은 Vicinity (일정 반경 내에 있는, 이웃하는 점들) 내의 모든 점을 pair 로 구해서, normal 의 차이점을
(3가지 각도에 관련한 값) + (포인트들 간의 Euclidean 거리)
로 나타냅니다. 이를 Quadreplet 이라고 합니다. 

 

 

그리고 이렇게 얻은 Quadreplet 에 대한 Histogram 을 만듭니다. 

 


위 내용은 경희대학교 소프트웨어융합학과 황효석 교수님의 2023년 <3D데이터처리> 수업 내용을 요약한 것입니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.