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 를 이용해서 만든다.
PFH (Point Feature Histogram)
이것은 Point Cloud Descriptor 중의 원조격이라고 할 수 있는 알고리즘입니다. 이 알고리즘은 점과 그 점 주변에 있는 포인트들 간의 기하학적 관계를 통해서 정보를 취득합니다.
이때 주변 포인트와의 관계를 통해서 얻을 수 있는 정보는 Normal 정보 (법선 벡터)입니다.
포인트들 마다 normal 벡터의 방향이 조금씩 다르기 때문에, 이 normal 방향의 차이점을 분석해서 어떤 점에 대한 Descriptor 를 만드는 것이 PFH 입니다.
PFH analyze the difference between the directions of the normals in the vicinity.
PFH 알고리즘은 Vicinity (일정 반경 내에 있는, 이웃하는 점들) 내의 모든 점을 pair 로 구해서, normal 의 차이점을 (3가지 각도에 관련한 값) + (포인트들 간의 Euclidean 거리) 로 나타냅니다. 이를 Quadreplet 이라고 합니다.
그리고 이렇게 얻은 Quadreplet 에 대한 Histogram 을 만듭니다.
위 내용은경희대학교 소프트웨어융합학과 황효석교수님의 2023년 <3D데이터처리> 수업 내용을 요약한 것입니다.