측량 구역을 삼각형으로 분할해서 각 지점의 위치를 결정하는 측량법이다. 이를 활용하면 물체의 3D 이미지를 생성할 수 있다.
삼각 측량과 카메라의 포즈의 추정을 같이하는 모델이다.
임의의 두 위치의 페어 정보를 기반으로 카메라의 matrices를 계산하고 그를 바탕으로 3D point를 계산한다.
= 2D image point, = camera matrix, = 3D world point
대상을 여러 각도에서 촬영한 이미지를 준비해서 구분성이 좋은 포인트들을 추출한다. (→ feature extraction) 그리고 이미지들을 짝지어서 각 페어에서 대응하는 포인트가 어디인지 매칭하는 작업을 한다. 그 후 2-view SfM을 통해 카메라 포즈를 모델링하고, 점차 view를 더해가면서 더 정교하게 3D를 구성하게 된다.
SfM 작업을 할 수 있는 대표적인 툴에는 COLMAP이 있다.
3D reconstruction을 하는 모델이다.
기본적인 구조는 물체의 위치()와 물체를 바라보고 있는 방향(, )을 입력으로 주고, fully-connected neural network를 통과시킨다. 그러면 output으로 해당 3D 지점의 색깔(R,G,B)과 output density (; 투명도 정도로 생각하면 됨)를 낸다.
그러나 2D와 3D 사이의 gap 때문에, 이미지의 표현 형태와 모델 출력이 호환되지 않는다. 따라서 volumetric rendering이라고 하는 과정을 통해 2D와 3D를 연결시켜 주면서 학습을 시킬 수 있게 된다. 특정 viewepoint에서, 3D를 표현하고 있는 neural network를 렌더링을 통해 이미지 도메인으로 옮겨서 주어진 input 이미지와 비교를 하는 식으로 학습을 한다.
렌더링 방정식은 viewpoint 선을 따라 accumulated transmittance, volume density (or occupancy), color를 곱하는 식으로 계산한다.
그러나 neural network의 저차원 좌표를 그대로 사용하게 되면 렌더링이 제대로 되지 않을 수 있다. 이 때 positional encoding을 이용하면 이러한 문제를 보완할 수 있다.
overfitting을 기반으로 한 모델이라서 장면마다 새로운 이미지가 필요하다.
NeRF는 성능이 좋은 대신 학습 속도나 렌더링 속도가 매우 느리다. 이를 보완하고자 real-time으로 렌더링이 되는 모델을 개발하게 되었는데 그것이 3DGS이다.
국부적인 공간을 하나의 3D Gaussian으로 표현한다.
mean, covariance, opacity, RGB, spherical harmonics coefficients (view에 따라 달라지는 컬러를 적용하고 싶으면 RGB 대신 spherical harmonics coefficients를 사용한다고 이해하면 된다.)
mask-RCNN에서 3D mesh branch가 추가된 구조이다. 이미지가 주어지면 한정된 클래스에 대해 mesh output이 나오는 형태로 학습된다.
이미지와 그에 대응하는 3D가 align된 데이터셋 없이도 텍스트가 주어지면 그것을 바탕으로 3D를 생성해내는 모델이다.
SDS loss
text로부터 3D texture map을 만드는 모델이다.
최근 기술 발달에 따라 인간의 동작을 3D로 구현하려는 시도가 늘고 있다.
인간의 신체를 3D로 구현하는 모델이다.
M(, , , )
= pose, = shape, = dynamics, A = texture
이들을 입력으로 받아서 신체를 3D mesh로 나타낸다.
그러나 mesh와 실제 신체 부위 사이의 물리적인 연관성이 없기 때문에 자세나 형상을 제어하기 어렵다.
우선 pose와 shape를 형성하는데 참고하는 parameter에는 template, shape blend shape matrix, pose blend shape matrix, blend weights matrix, joint regressor matrix가 있다. 이들 parameter는 데이터로부터 학습하게 된다.
그러나 얼굴 표정과 손가락 등을 자세히 표현하지 못한다는 단점이 있다. 이를 보완하기 위해 SMPL의 확장 모델인 SMPL-X는 FLAME face model, MANO hand model과 합성하여 표정과 손 동작까지도 잘 표현하고자 하였다.
SMPL을 활용해서 이미지에서 3D human mesh를 추출하는 방법. 포즈와 shape parameter를 추정하는 최적화 방법이다.
이미지에서 featuere를 추출하고 3D body model을 카메라 matrix를 통해 2D domain으로 projection시킨다. 그리고 이미지에서 구한 feature와 2D projection 사이의 차이를 구해서 최적화를 한다.
objective function은 (, , , ) ( = shape, = pose, = camera, = 2D points)와 같다.
그러나 depth ambiguity (이미지와 다른 각도에서 살펴봤을 때 물리적으로 불가능한 자세가 나오는 등), interpenetration (팔이 몸을 관통) 등의 문제가 생기기 때문에 여러 term을 추가하여 보정하게 된다. 그래서 최종적으로 objective function은 data term, prior on unnatural joint bending, prior on pose, prior on shape, interpenetratoin term을 포함한다.