3D Point Cloud Semantic Segmentation Overview

지토·2023년 3월 11일
0

Segmentation : 모든 픽셀의 레이블을 예측하는 것.

3D point cloud semantic segmentation은 3차원 점군(point cloud) 데이터에서 각 점(point)들의 의미(class)를 분류하는 문제이다. 예를 들어, 자율주행 자동차의 센서가 수집한 점군 데이터에서 각 점이 도로, 건물, 나무 등의 의미를 구분해내는 것이다.

이 문제는 최근에 Deep Learning 기술을 이용하여 해결하는 방법이 제안되었다. 이 방법은 3차원 점군 데이터를 입력으로 받아서, 각 점 주변의 정보를 분석하여 그 점이 어떤 의미(class)에 속하는지를 판단한다. 이때, Deep Learning 기술 중에서 Convolutional Neural Network(CNN)을 이용하여 분석을 수행한다.

CNN은 입력 데이터에서 feature 을 추출하고 그것을 기반으로 출력을 예측하는 딥러닝 모델이다.

CNN은 일반적으로 Convolutional Layer, Pooling Layer, Fully Connected Layer 로 구성된다.

  • Convolutional Layer : 입력 이미지를 필터로 스캔하고 각 지역에서 특징 맵을 생성하는 데 사용됨
  • Pooling Layer : Convolutional Layer 에서 생성된 특징 맵을 다운샘플링하여 크기를 줄인다.
  • Fully Connected Layer : 이전 레이어에서 추출된 특징을 기반으로 최종 출력을 생성한다.

3D point cloud segmentation 에서도 이와 같은 방식으로 Convolutional Layer 을 사용한다. 다만 3D point cloud 데이터는 3D 좌표로 구성된 벡터로 표현되기 때문에, 3D Convolutional Neural Network 를 사용한다.

3D Convolutional Neural Network 는 3D 데이터에 대한 Convolutional Layer 을 사용해 입력 데이터를 필터로 스캔하고 특징 맵을 생성한다. 이때 3D kernel 이 사용된다. 이 필터는 입력 데이터와 함께 이동하면서 필터와 유사한 영역에서 내적 연산을 수행하여 특징 맵을 생성한다.

3D point cloud segmentation 분야에서 효과적인 방법 중 하나는 PointNet++ 이다. PointNet++ 는 3D point cloud 데이터에 대한 feature 를 추출하기 위해 hierarchical feature learning 구조를 사용한다.

PointNet++ 의 구조는 다음과 같다.

  1. Hierarchical Sampling : 입력 데이터 샘플링
  2. Multi-Scale Grouping : 다양한 scale 로 묶어서 fearue 을 추출
  3. Skip links : hierarchical feature learning 구조에서 추출된 feature 을 결합

RANSAC

RANSAC (RANdom SAmple Consensus) 은 outlier 가 포함된 데이터셋에서 모델을 찾기 위한 방법 중 하나이다. 이 방법은 임의의 일부 데이터를 뽑아내서 모델을 학습하고, 이 모델이 데이터셋 전체에 적용되었을 때 일치하지 않는 데이터들의 수를 계산한다. 이 과정을 여러 번 반복하여, 이전 단계에서 학습한 모델보다 더 적은 outlier 를 포함하는 모델을 찾아낸다.

예를 들어 , 선을 찾는 문제가 있을 때 우리는 데이터셋에서 임의의 두 점을 뽑아서 이를 이용해 선의 방정식을 찾는다. 그리고 이 선의 방정식을 이용해 데이터셋 전체에 대해 일치하지 않는 데이터 ( = outlier ) 들의 수를 계산한다. 이전 단계에서 찾은 outlier 를 제외한 나머지 데이터를 이용해 더 좋은 모델을 찾아낸다.

RANSAC 은 point cloud segmentation 에서도 많이 사용된다. 예를 들어, point cloud 에서 어떤 물체의 모양을 파악하기 위해서는 그 물체의 특성을 설명하는 모델을 만들어야 한다. 이때 RANSAC 은 outlier 가 포함된 point cloud 데이터에서 더욱 정확한 모델을 찾기 위해 사용된다.

예를 들어 자동차의 바퀴를 인식하는 문제를 다룰 때 RANSAC 은 원 모양을 파악하기 위해서 사용된다. 임의의 세 개의 점을 뽑아서 이를 이용해 원의 방정식을 찾는다. 그리고 이 방정식을 사용해 모든 점들이 이 원의 내부에 위치해 있는지를 확인한다. 만약 outlier 가 있다면, 이를 제외한 점들을 이용해 더 좋은 모델을 찾아낸다.


참고 자료:

0개의 댓글