본문 바로가기
공허의 유산/표현의 자유

[3DReconstruction] 01.meshroom tutorial review

by 바른생활머시마 2023. 2. 12.
728x90
반응형

3D 프로그램을 만들 때, 관심 있는 3D 오브젝트나 케릭터를 이용해서 만들고 싶을 때가 많은데, 인터넷에서 구할 수 있는 것들 중에는 딱 마음에 드는 것을 찾기가 쉽지 않을 때도 있고, 파일로 구하기는 쉽지 않을 때가 있습니다. 모델링 툴을 쓸 줄 아는 재주가 있다면 또 다른 옵션이 있지만, 그게 또 쉬운 기술도 아니고... 더군다나 내가 만들고 싶은 오브젝트가 실물은 있지만 데이터 형태로는 없다면, 비싼 돈을 들여서 3D Scan을 해야되지만 비용이...

 

iphone에 depth camera가 들어가면서 요런 앱도 생겼다고 하니, 이제 간단히 만들어 낼 수 있는 세상이 된 것은 분명한 것 같습니다.

https://apps.apple.com/us/app/polycam-lidar-3d-scanner/id1532482376

 

‎Polycam - LiDAR & 3D Scanner

‎Polycam is the leading 3D capture application for iPhone and iPad! Create high-quality 3D models from photos with any iPhone or iPad, and rapidly generate scans of spaces with the LiDAR sensor. Edit your 3D captures directly on device, and export them i

apps.apple.com

 

편리한 방법이 만들어지고 있지만, 적당한 수준에서 직접 한번 만들어 보는 것도 관련 된 프로세스를 이해하고, 편리한 방법을 좀 더 잘 이해하는데 도움이 될 것 같습니다. 그런 이유로, 이미지 기반의 3D Reconstruction 프로그램인 meshroom을 이용하여 3D 형상을 만들어 내는 방법을 한번 살펴보겠습니다.

 

 

 

Homepage & Download 

이 프로그램의 홈페이지와 다운로드 받을 수 있는 곳은 아래와 같습니다.

AliceVision | Meshroom - 3D Reconstruction Software

 

AliceVision | Photogrammetric Computer Vision Framework

 

alicevision.org

AliceVision 홈페이지 주소(https://alicevision.org/#)를 보면 알겠지만, org 로 되어 있는데, 이 단체의 소개 내용이 인상 깊네요.

 

The AliceVision project is supported by the ALICEVISION association, a non-profit organization whose ambition is to democratize 3D digitization technologies from photographs. The association has been created in July 2020 by 14 founding members from the European academic and industry sector, who have been collaborating in the field of 3D computer vision for cultural and creative industries since 2010.

 

 그런 취지 때문인지 프로젝트도 github에 공개가 되어 있어요.

https://github.com/alicevision/meshroom

 

GitHub - alicevision/Meshroom: 3D Reconstruction Software

3D Reconstruction Software. Contribute to alicevision/Meshroom development by creating an account on GitHub.

github.com

 제가 저 democratize의 뉘앙스를 제대로 이해 했을지는 의문이지만, 좋은 취지라고 생각 됩니다. 이렇게 같이 하면서 또 기술과 산업이 함께 발전하고, 새로운 문화도 만들어지겠죠. 

 

 

Documents

 

매뉴얼/ 튜토리얼은 물론이고 샘플 데이터도 제공되고 있습니다.

Meshroom Manual — Meshroom v2021.0.1 documentation (meshroom-manual.readthedocs.io)

 

Meshroom Manual — Meshroom v2021.0.1 documentation

© Copyright 2021. This work is licensed under a CC-BY-SA 4.0 International license. Revision 2573dcf1.

meshroom-manual.readthedocs.io

Tutorial

Tutorial: Meshroom for Beginners — Meshroom v2021.0.1 documentation (meshroom-manual.readthedocs.io)

 

Tutorial: Meshroom for Beginners — Meshroom v2021.0.1 documentation

Step 5: Post-processing: Mesh Simplification Let’s now see how the nodal system can be used to add a new process to this default pipeline. The goal of this step will be to create a low-poly version of our model using automatic mesh decimation. Let’s mo

meshroom-manual.readthedocs.io

 

sample data

dataset_monstree/mini6 at master · alicevision/dataset_monstree (github.com)

 

GitHub - alicevision/dataset_monstree: Images dataset for 3D reconstruction

Images dataset for 3D reconstruction. Contribute to alicevision/dataset_monstree development by creating an account on GitHub.

github.com

 

자, 개괄적인 소개는 이 정도로 하고, 입문자용 튜토리얼을 보고 한번 실습을 해보겠습니다. 실습을 하다보면 기능이나 프로그램의 세세한 설명이 필요한, 재미있는 기능들을 소개 할 수 있을 것 입니다.

https://meshroom-manual.readthedocs.io/en/latest/tutorials/sketchfab/sketchfab.html#

 

Tutorial: Meshroom for Beginners — Meshroom v2021.0.1 documentation

Step 5: Post-processing: Mesh Simplification Let’s now see how the nodal system can be used to add a new process to this default pipeline. The goal of this step will be to create a low-poly version of our model using automatic mesh decimation. Let’s mo

meshroom-manual.readthedocs.io

 

 

 

프로그램 설치

 

홈페이지에 공개되어 있는 다운로드를 통해서 프로그램을 받을 수 있습니다.

https://alicevision.org/#meshroom

 

AliceVision | Photogrammetric Computer Vision Framework

 

alicevision.org

요기서 받습니다. (327MB)

Nvidia GPU와 CUDA의 도움을 받으면 좀 더 할 수 있는 것들이 많은 것 같네요.

 

따로 설치 할 것은 없고, 압축을 풀고 그 안의 실행 파일을 실행 시키면 됩니다.

위에서 소개한 샘플 데이터도 함께 받아둡니다. 미리 작업 폴더를 만들어두고 진행하면 좋을 것 같습니다.

거북이처럼 생긴 나무네요.

 

 

프로젝트 시작하기

정말 별로 할 것이 없어요.

Drag & Drop, then Start! (사실, Start 전에 프로젝트 저장을 한번 하긴 해야 합니다.)

화면을 잠깐 설명하자면 사용 하는 이미지 목록과 선택 된 이미지 뷰어, 그리고 그 오른쪽에 3D 화면이 나옵니다. 

DISPLAY 패널은 현재 화면을 설정하는 것이고, 이때 랜더링 모드는 좌측 하단에서 솔리드/Wireframe/텍스쳐 등으로 선택 할 수 있습니다.

 

아래쪽은 처리과정을 작업 단위의 노드로 표시한 그래프인데, 어떤 처리 결과의 입출력을 연결 할 수 있습니다.(Unity3D의 Visual Script/Volt와 비슷하네요) 각 노드 상단에 표시되는 색상은 처리 상태를 나타내는데, 아무런 작업이 없으면 검은색, 작업 대기 중이면 파란색, 작업 중이면 오렌지색, 작업 완료는 초록색입니다.

 

저 윈도우와 함께 콘솔창도 뜨는데 이 콘솔창을 통해서도 자세한 정보가 출력됩니다.

 

장비 사양이나 GPU 관련 환경에 따라 달라지겠지만, 이 샘플은 처리 과정이 그렇게 오래 걸리지는 않습니다.

FeatureExtraction, DepthMap과정이 상대적으로 좀 오래 걸리긴 합니다만, 

 

 

모든 처리가 다 되고 나면 상단의 상대바도 다 초록색이 되고, 각 노드 상단의 상태바도 다 초록색이 됩니다.

 

결과의 확인

결과는 3D 뷰에서 확인 가능한데, 처음 기대한 것은 3D 오브젝트가 짠!!! 하고 보일 것 같지만 그렇지는 않습니다. 텍스쳐링이 된 점들만 보입니다. 초보자 튜토리얼에는 무슨 버튼들이 보인다고 하지만, 위와 같이 별다른 버튼이 나타나지는 않았습니다. 처음에 이 단계에서 더 이상 어떻게 해야 할지 몰라서 좀 고생했는데요, 매우 간단한 사용법인데 튜토리얼에 나와 있지 않았었어요. 

 

DISPLAY에 아래와 같이 표시 되어 있는데, 이는 SfM의 결과가 보여지고 있다는 것입니다.

 여기서 보여지는 이 StructureFromMotion은 기술의 이름이면서 동시에 아래쪽에 있는 노드의 이름이기도 합니다. 그래서, 그 단계의 결과를 보여준다는 뜻으로 쓰이고 있습니다.  이 단계는 전체 과정중의 중간쯤에 해당하는 것이라서 우리가 기대하는 결과는 아닌 것이죠. 그 뒤에 이어지는 단계들을 다 하고 3D mesh로 만들어진 것을 보고 싶은거죠.

 그럼 어떻게 해야 하느냐? 

 즉, 어떤 단계의 결과물을 보고 싶으면 어떻게 해야 하느냐?? 그냥 더블클릭하면 됩니다.

이것을 몰라서 한참 고생을 했었습니다.

우리가 보고 싶은 것은 Texturing이 된 3D  Mesh이니 가장 마지막 단계의 노드인 Texturing을 더블 클릭하면 아래와 같이 기대한 결과가 3D 뷰에 보입니다. 또한, 기존에 있던 SfM의 결과도 목록에 같이 보여지는 것을 볼 수 있습니다. 즉, 이 목록에서 원하는 단계를 표시하거나 잠시 보이지 않게도 할 수 있습니다. 단계별 결과를 비교 해 볼 수 있는 기능인 것이죠. 또 그래프 뷰어 오른쪽에는 해당 노드의 상세 정보도 표시 됩니다. 여기서 파라미터를 변경하여 다시 연산을 할 수 있는데, 그것은 다음에 post processing 과정에서 살펴 보겠습니다.

이렇게 만들어진 3D mesh 파일을 다른 프로그램에서 쓰려면????

Save as는 프로젝트 저장에 사용되는 명령이고, Export는 따로 없습니다. 저 노드 속성 목록을 살펴보면...

Mesh라는 항목에 path와 가장 마지막에 mesh.obj라는 반가운 이름이 보입니다.

저 경로는 프로젝트 파일과 같은 경로에 cache 폴더가 생기는데 그 하위를 가리킵니다.

이 cache 폴더 내부에는 각 노드 단계별 결과물이 저장됩니다. 각 단계별 데이터를 메모리에 가지고 있지 않고 이렇게 저장 해 두면, 어떤 단계의 결과의 파라미터를 변경하여 다시 계산 할 때 전체를 할 필요없고 그 단계부터 할 수 있습니다.(물론, 각 단계를 파일로 저장해야 하는 일이 생기지만...)

최종 결과물인 Texturing 폴더 내부에는 요렇게 기대한 파일들이 들어 있습니다.

이 파일을 Blender에서 열어보면

요렇게 보입니다. 좌표축은 달라지는데 이것은 얼마든지 변경이 가능하니까 별 문제가 아니겠구요.

meshroom을 이용해서 사진들을 가지고 3D reconstruction을 하는 기초적인 방법을 살펴보았습니다. 다음에는 이에 대한 후처리 과정을 살펴보겠습니다.

https://learn-and-give.tistory.com/68

 

[3DReconstruction] 02.meshroom tutorial review(2)

지난 시간에 Meshroom sample data를 이용하여 3D Reconstruction을 해보았습니다. https://learn-and-give.tistory.com/67 [3DReconstruction] 01.meshroom tutorial review 3D 프로그램을 만들 때, 관심 있는 3D 오브젝트나 케릭터를

learn-and-give.tistory.com

 

728x90
반응형

댓글