이번 에피소드에서는 턴테이블 포토그래메트리 기본 시리즈의 일환으로, 사진을 사용하여 기하학적 모델을 복원하는 Meshroom 프로젝트의 기본 기능을 분석하겠습니다.



영상 자막 텍스트

안녕하세요! 이번 에피소드에서는 턴테이블 포토그래메트리 기본 시리즈의 일환으로, 사진을 사용하여 기하학적 모델을 복원하는 Meshroom 프로젝트의 기본 기능을 분석하겠습니다.

먼저 Meshroom의 인터페이스와 워크플로를 개괄적으로 살펴본 후, 실제로 이미지를 로드하는 단계를 설명하겠습니다.

Meshroom을 다운로드하고 설치한 후 실행해 보겠습니다. 두 개의 창이 열립니다. 콘솔 창은 프로그램 실행에 대한 데이터와 정보를 표시하며, 메인 창에서는 프로젝트 작업을 수행합니다. 두 창 중 하나라도 닫으면 프로그램이 종료되므로, 둘 다 열린 상태로 유지해야 합니다.

Meshroom에서는 다양한 유형의 프로젝트를 만들 수 있습니다. File 메뉴에서 New Pipeline을 클릭하면 확인할 수 있습니다. 물론, 여기서는 Photogrammetry 프로젝트를 진행할 것입니다.

첫 번째로 해야 할 일은 프로젝트를 저장하는 것입니다. 프로젝트 파일을 저장할 전용 폴더를 만드는 것이 좋습니다. 포토그래메트리 프로세스를 실행하면 여러 개의 폴더가 생성되는데, 이에 대해서는 곧 살펴보겠습니다.

프로젝트 파일은 MG 확장자를 가지며, 이는 Meshroom Graphs를 의미합니다. Pipeline과 Graphs라는 용어는 Meshroom의 프로세스가 순차적으로, 단계별로 진행된다는 개념을 강조합니다. 이는 하단의 Graph Editor 패널에서 노드와 연결 구조를 시각적으로 확인할 수 있습니다.

이 Pipeline을 살펴보기 전에, 먼저 프로그램의 인터페이스를 간단히 살펴보겠습니다.

Image Gallery 패널에는 복원을 위해 사용할 이미지들이 포함됩니다. 초기에는 비어 있으며, 이 공간에 폴더에서 파일을 드래그 앤 드롭하여 추가할 수 있다는 점이 표시됩니다. 하지만 제가 기억하기로는, Windows에서 관리자 모드로 Meshroom을 실행하면 이 드래그 앤 드롭 기능이 작동하지 않을 수도 있습니다. 어쨌든, File 메뉴의 Import Images 옵션을 사용하여 이미지를 가져올 수도 있습니다.

Image Viewer 패널에서는 로드된 이미지를 한 장씩 확인할 수 있어, 품질이 낮은 이미지를 제외하거나 필요한 데이터를 추출할 수 있습니다. 또한, 이 창은 이후에 설명할 Depth Map과 같은 Meshroom에서 생성된 데이터를 표시하는 역할도 합니다.

3D Viewer 패널은 포인트 클라우드를 표시하는 곳으로, 복원된 장면을 시각적으로 확인할 수 있습니다. 또한, 여기에서 복원할 볼륨을 다시 정의할 수도 있습니다. 이를 Bounding Box라고 하며, 특정 요소에만 초점을 맞출 수 있도록 설정할 수 있습니다.

Graph Editor 패널에서는 처리해야 할 노드들의 순서와 연결 상태를 보여줍니다. 각 노드는 특정한 작업을 나타내며, 입력 포트에서 데이터를 받아 실행한 후, 하나 이상의 결과를 출력 포트를 통해 생성합니다.

새로운 Photogrammetry 프로젝트를 생성하면, 기본적인 Pipeline이 설정되며, 이는 대부분의 프로젝트에서 기본적으로 잘 작동합니다. 프로젝트를 시작하면, Meshroom은 자동으로 Cache라는 하위 폴더를 생성하고, 그 안에 Pipeline에 포함된 각 노드별로 개별적인 서브 폴더를 생성합니다.

Pipeline은 기본 상태로 유지할 필요가 없습니다. 새로운 노드를 추가하거나 노드 간의 연결을 변경하여 수정할 수 있으며, 이 에피소드에서 나중에 자세히 다룰 예정입니다.

어떤 경우든, 노드를 클릭하면 오른쪽의 Node 패널에서 해당 노드의 파라미터 및 설정을 확인할 수 있습니다. 각 노드는 다양한 유형의 정보를 제공하며, 이는 하단의 Attributes, Log 및 기타 탭에서 확인할 수 있습니다.

기본 인터페이스의 마지막 패널은 Task Manager입니다. 초기에는 비어 있지만, 나중에 각 노드의 실행 세부 정보가 이곳에 표시됩니다.

View 메뉴를 보면 Live Reconstruction 패널이 빠져 있다는 점을 알 수 있습니다. 하지만, 이 기본 강의에서는 사용할 일이 없기 때문에 활성화하지 않아도 됩니다.

Fullscreen 옵션을 사용하면 예상대로 프로그램의 메인 창을 전체 화면 모드로 전환할 수 있습니다.

실습 단계로 넘어가기 전에, 노드의 실행 순서를 나타내는 Pipeline을 간단히 소개하겠습니다.

Pipeline은 두 부분으로 나눌 수 있습니다. 첫 번째 부분에서는 Structure From Motion 노드까지의 과정이 포함되며, Meshroom은 이미지를 불러오고 특정 정보를 추출합니다. 이를 Features라고 하며, 여러 사진에서 참조할 수 있는 특정한 기준점을 식별하는 데 사용됩니다.

이러한 Features는 이후 장면의 기하학적 구조를 복원하는 데 사용되지만, 이 과정은 Structure From Motion 노드 이후에 수행됩니다. 구체적으로, 두 번째 단계에서는 Meshroom이 감지된 Features의 깊이 데이터를 계산하여 3D 포인트 클라우드를 생성합니다. 그런 다음, 이 데이터를 기반으로 기하학적 구조를 재구성하며, 이는 Mesh라고 불립니다. Mesh는 꼭짓점들이 엣지로 연결되며, 이들이 삼각형 면을 형성하는 구조로 이루어져 있습니다.

마지막으로, 원본 사진들은 하나의 이미지로 결합되어 Texture가 생성됩니다. Texture는 원본 3D 객체의 각 부분의 색상을 포함하지만, 2D 이미지 형태로 저장됩니다.

사진에서 감지된 Features를 기반으로, 먼저 서로 연결되지 않은 공간상의 점들로 시작합니다. 이후, 이러한 점들이 연결되면서 표면을 형성하고, 여기에 Texture 이미지를 적용하여 원본 객체의 색상을 반영한 복원된 모델을 생성합니다.

Pipeline, 개별 노드 및 전체 실행 과정에 대해 더 자세히 설명할 내용이 많지만, 프로젝트를 진행하면서 차근차근 다루겠습니다.

이제 실습 단계로 넘어가겠습니다. 먼저, 원본 사진을 Image Gallery 패널로 드래그합니다.

Image Gallery 패널에서 추가된 사진의 총 개수와 Meshroom이 인식한 카메라 수를 확인할 수 있습니다. 이 숫자는 이미지에서 추출된 고유 데이터를 기반으로 계산되며, 패널 하단의 셔터 아이콘 옆에 표시됩니다.

각 사진의 메타데이터를 확인하려면, 이미지 미리보기에서 셔터 아이콘 위에 마우스를 올려놓으면 됩니다(메타데이터가 존재하는 경우). 이 경우, 메타데이터가 포함되어 있기 때문에 셔터 아이콘이 녹색으로 표시됩니다. 만약 메타데이터가 없으면 아이콘이 빨간색으로 나타나며, Meshroom은 해당 정보를 사용할 수 없는 상태에서 가능한 최상의 방식으로 복원을 진행하게 됩니다.

턴테이블 포토그래메트리 프로젝트에서는 Feature Matching 노드를 선택한 후, Minimal 2D Motion 파라미터를 2로 설정하는 것이 권장됩니다. 이 설정을 적용한 후, 프로젝트를 저장하겠습니다.

이 프로젝트처럼 사진에 그린 스크린 배경이 포함된 경우, Meshroom이 Features를 추출하기 전에 초록색 배경을 자동으로 제외하도록 시도할 수 있습니다. 이를 위해 Graph Editor에서 빈 공간을 마우스 오른쪽 버튼으로 클릭하고 Image Masking 노드를 추가합니다.

새 노드의 Structure From Motion Data 입력에, Camera Init 노드의 Structure From Motion Data 출력을 연결해야 합니다. 이를 위해 두 포트를 클릭한 후 드래그하여 연결합니다.

그런 다음, 새 노드의 출력을 Feature Extraction 및 Prepare Dense Scene 노드의 Mask Folder 입력에 연결해야 합니다.

이제 Image Masking 노드를 선택하면 Node 패널에서 제외할 색상을 정의하고, 색상의 Hue(색조), Saturation(채도), Intensity(강도) 값을 조정할 수 있습니다. 하지만 이 방법은 실용성이 떨어지는 편입니다. 결과를 직관적으로 확인하기 어렵고, 각 사진별로 맞춤 설정을 할 수 없기 때문입니다. 특히, 이번 프로젝트처럼 배경 천의 조명이 균일하지 않은 경우, 이러한 개별적인 조정 기능이 유용할 수 있습니다.

이러한 이유로 Image Masking 노드를 제거하겠습니다. 이를 위해 마우스 오른쪽 버튼을 클릭한 후 Remove Node를 선택합니다. 참고로, 노드 간의 연결을 삭제하려면 링크를 마우스 오른쪽 버튼으로 클릭하고 Remove를 선택하면 됩니다.

또한, 모든 사진을 삭제하겠습니다. 다음 에피소드에서는 Blender에서 간단한 설정을 사용하여 그린 배경을 보다 쉽게 제거하는 방법뿐만 아니라, Green Spill 현상도 제거하는 방법을 보여드릴 것입니다. 그린 스필은 그린 스크린을 배경으로 촬영할 때 피사체에 남는 초록색 잔영을 의미합니다.

현재 유지하는 유일한 사용자 지정 설정은 Feature Matching 노드에서 Minimal 2D Motion 값을 2로 설정한 것입니다.

이제 이 설정을 적용한 상태로 프로젝트를 저장하고, Meshroom을 종료하겠습니다. 다음 에피소드에서 다시 만나겠습니다!

튜토리얼 검색

검색 문구 또는 여러 개의 키워드를 쉼표로 구분해 입력하세요.

이 웹사이트는 개인 사이트이며 판매 채널이 아닙니다. 3D 모델 관련 페이지는 제 작업 중 일부를 기록하기 위한 것이며, 판매 제안, 가격, 구매 방법 또는 상업적 링크를 포함하지 않습니다. 현재 맞춤형 작업, 컨설팅 또는 기타 전문적인 협업 요청은 받지 않습니다.


확장된 개인정보 및 쿠키 사용 정책