상세 컨텐츠

본문 제목

Open3D

AI/Open3D

by 쑤야. 2024. 8. 12. 16:04

본문

https://www.open3d.org/docs/latest/introduction.html

 

Introduction - Open3D primary (e86fcb3) documentation

Previous Home

www.open3d.org

 

  • 3D 데이터 처리 및 시각화를 위한 오픈 소스 라이브러리로 3D 컴퓨터 비전, 컴퓨터 그래픽스, 로봇 공학 등 다양한 분야에서 사용 가능하다.
  • 특히 포인트 클라우드, 메쉬, 그래프, 이미지 등의 3D 데이터 구조를 쉽게 다룰 수 있도록 다양한 기능을 지원한다. 
  • 사용 가능 언어로는 Python과 C++이 존재한다. 

 

주요 특징으로는 

  1. 포인트 클라우드 처리
    • 포인트 클라우드 데이터를 불러와 시각화 및 다양한 연산 수행 가능
    • 주요 기능으로 다운샘플링, 노이즈 제거, alignment, segmentation, clustering 등이 포함
  2. 3D 메쉬 처리
  3. 시각화 도구
    • 포인트 클라우드, 메쉬, 라인 세그먼트 등을 직관적이고 상호작용적으로 시각화할 수 있음
  4. 기하학적 알고리즘
  5. 물리 기반 렌더링
  6. 딥러닝 지원
    • 'Open3D-ML' 이라는 확장 모듈을 통해 딥러닝 모델과의 통합을 지원
    • PyTorch와 Tensorflow 같은 딥러닝 프레임워크와의 통합도 지원해 GPU 가속 및 텐서 기반 연산을 수행할 수 있음
  7. 고성능 및 멀티 플랫폼 지원
    • Windows, macOS, Linux에서 모두 호환 가능

Open3D 문서에서 Geometry와 Geometry(Tensor)가 구분되며, 하위 요소로 모두 Point Cloud를 포함하고 있다. 

둘의 차이점이 무엇인지 궁금하여 chatGPT에게 물어보니 포인트 클라우드를 포함하여 다양한 3D 데이터를 처리하고 표현하는 기능이라는 점에서는 공통점을 가지지만, 데이터 구조와 연산 방식에서 차이가 존재한다고 답했다.

 

1. geometry

Open3D의 기존 클래스를 나타내며 3D 데이터를 다루는 가장 기본적인 구조

주로 CPU에서 포인트 클라우드를 포함한 3D 기하하적 데이터를 처리한다.

 

주요 특징으로는,

  • 데이터 구조: numpy 배열을 기반으로 3D 데이터 저장 및 처리
  • 연산: CPU 기반의 연산이 수행되며, 다양한 내장 메서드를 통해 데이터 처리 및 변환 가능

 

2. geometry::Tensor

Open3D의 텐서 기반 기하하적 데이터 구조를 나타내며, 특히 GPU 가속이 필요한 작업에 최적화되어 있다. 

딥러닝과 관련된 연산에 적합하며, PyTorch나 TensorFlow와 같은 딥러닝 프레임워크와의 호환성을 염두에 두고 설계

 

주요 특징으로는, 

  • 데이터 구조: 텐서 기반으로 3D 데이터를 저장 및 처리
  • 연산: GPU 가속을 활용한 고성능 연산이 가능하며, 딥러닝 모델과의 통합 및 병렬 처리에 유리

튜토리얼을 하나씩 따라해볼 예정인데, geometry를 먼저 실습하고 이후 tensor를 진행해 볼 계획이다. 

 

관련글 더보기