파이톨치

[BosstCamp AI Tech] 3D 모델 [작성 중] 본문

AI&ML/BoostCamp AI Tech

[BosstCamp AI Tech] 3D 모델 [작성 중]

파이톨치 2024. 9. 6. 14:52
728x90

2D 이미지를 이용해서 3D 형태를 만들 수 있을까? 이 질문에서 시작되는 분야라고 생각된다. 

사진 한번 찍고, 90도 돌아가서 한번 더 찍으면 될거 같다. 

우리가 세상을 인식하는 방식도 사실 비슷하다. 명암을 보고, 이리저리 둘러보고 사물을 파악한다. 

우리의 머리 속에 세상을 이해하는 모델이 있고, 그 모델대로 세상을 이해한다. 

그렇기에 사람마다 세상을 이해하는 방식이 제각각 다르다. 컴퓨터도 동일하다. 

하지만 인간과의 차이점은 융통성이 없다는 점이다. 그래서 수식적으로 세상을 계산한다. 

Structure from Motion(SfM)이라고 하는 방식인 모양인데, 잘 모르겠으니 chatgpt한테 물어보자. 

 

Structure from Motion (SfM)은 컴퓨터 비전과 포토그래메트리 분야에서 사용되는 기술로, 여러 개의 2D 이미지로부터 3D 구조를 추출하는 방법입니다. SfM의 주요 목표는 여러 이미지에서 물체의 3D 구조를 재구성하고, 카메라의 위치와 자세를 추정하는 것입니다. 다음은 SfM의 기본 과정입니다:

  1. 특징 검출 및 매칭: 입력된 이미지들에서 특징점을 검출하고, 서로 다른 이미지들 간에 이들 특징점들을 매칭합니다. 
  2. 카메라 파라미터 추정: 매칭된 특징점을 바탕으로 카메라의 내부 파라미터(예: 초점 거리, 이미지 센서 크기)와 외부 파라미터(예: 위치, 방향)를 추정합니다. 이를 통해 이미지 간의 상대적인 위치와 자세를 계산할 수 있습니다.
  3. 3D 포인트 클라우드 생성: 여러 이미지에서 추출된 2D 특징점의 3D 좌표를 계산하여 3D 포인트 클라우드를 생성합니다. 이는 삼각측량(triangulation) 기법을 통해 이루어집니다.
  4. 세부 조정 (Bundle Adjustment): 초기 추정값을 바탕으로, 3D 포인트와 카메라 파라미터를 동시에 최적화하여 전체 시스템의 일관성을 높이는 과정입니다. 이를 통해 3D 모델의 정확성을 향상시킬 수 있습니다.
  5. 모델 재구성 및 시각화: 최적화된 3D 포인트 클라우드와 카메라 파라미터를 바탕으로 3D 모델을 재구성하고, 이를 시각화합니다.

SfM은 다양한 분야에서 응용될 수 있습니다. 예를 들어, 문화유산 복원, 로봇 내비게이션, 자율주행차의 환경 인식, 가상 현실 및 증강 현실 등에서 활용됩니다.

 

오! 그러니까 2D 이미지에서 카메라 위치등을 고려해서 3D 위치를 매칭 시키는 작업인가보다. 신기하다. 

 

또한 3D는 표현방법이 다양하다. 그 중에서 신기한 방법은 mesh 방법이다. 유니티 같은 곳에서 저런식으로 모델링 하는거 본적이 있는거 같은데 AI로 바로 만들 수 있나보다. 

이제 점점 소드아트 온라인의 시대가 오고 있는 것이다! 

 

NeRF (Neural Radiance Fields)는 3D 재구성 및 이미지 합성을 위한 최신 딥러닝 기술입니다. NeRF는 3D 장면을 재구성하는 데 사용되는 기술로, 다음과 같은 주요 개념을 포함합니다:

NeRF는 3D 장면을 밀도와 색상의 연속적인 장으로 표현합니다. 이는 장면의 모든 점에서 색상과 광선의 방출 특성을 학습하여 3D 장면을 재구성하는 방식입니다.

NeRF는 각 카메라 뷰포인트에서 장면을 렌더링하기 위해 다음과 같은 과정을 사용합니다:

  1. 광선 샘플링: 카메라의 각 픽셀에서 광선을 장면으로 발사합니다.
  2. 3D 포인트 샘플링: 각 광선에서 여러 개의 3D 포인트를 샘플링합니다.
  3. 밀도 및 색상 예측: 각 샘플링된 3D 포인트에서 밀도와 색상 값을 예측합니다.
  4. 볼륨 렌더링: 볼륨 렌더링 기법을 사용하여 샘플링된 포인트의 색상과 밀도를 결합하여 최종 이미지 픽셀 값을 계산합니다.

NeRF는 주어진 다수의 관측 이미지와 카메라 파라미터를 사용하여 네트워크를 학습합니다. 학습 과정에서는 실제 이미지와 NeRF 모델이 생성한 이미지 간의 차이를 최소화하는 방향으로 네트워크 파라미터를 조정합니다. 일반적으로, 차이는 MSE (Mean Squared Error) 손실 함수로 측정됩니다.

 

728x90