기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자체 비디오에서 3D 가우시안 스플랫팅 훈련
이 자습서에서는 캡처한 비디오에서 자체 3D 가우시안 스플랫팅 포인트 클라우드를 훈련하는 방법을 안내합니다. GitHub의 가우시안 스플랫팅 파이프라인 작업 번들.ply 파일을 출력으로 생성합니다. 작업이 완료되면 SuperSplat
파이프라인은 다음과 같은 단일 작업을 실행합니다.
-
FFmpeg 비디오 처리 도구를 사용하여 비디오
프레임을 추출합니다. -
COLMAP
및 GLOMAP 을 사용하여 Structure-from-Motion을 해결하여 핀홀 모델과 왜곡되지 않은 이미지를 저장합니다. -
NeRF Studio splatfacto
, Splatfacto in the Wild 또는 simple_trainer.py gsplat 라이브러리 예제 를 사용하여 가우시안 스플랫팅을 훈련하고 출력을 지정한 .ply파일에 저장합니다.
다음 동영상은 Deadline Cloud의 Gaussian Splatting 파이프라인 워크플로를 보여줍니다.
예상 시간: 팜 설정을 포함하여 몇 시간. 입력 비디오와 선택한 설정에 따라 작업 자체가 10분 내에 완료되거나 몇 시간이 걸릴 수 있습니다.
이 자습서를 실행하면 작업을 처리하는 GPU 작업자 인스턴스에 대한 요금이 발생합니다. 이 훈련 작업 비용 이해 섹션에서는 이러한 비용을 검토하는 방법을 보여줍니다.
개요
이 자습서를 완료하려면 다음 단계를 따르세요.
-
사전 조건을 충족합니다.
-
팜을 설정합니다.
-
주제의 비디오를 캡처합니다.
-
gsplat_pipeline작업을 제출합니다. -
작업을 모니터링합니다.
-
가우시안 스플랫팅
.ply파일을 다운로드하여 확인합니다. -
리소스를 정리합니다.
사전 조건
시작하기 전에 다음 설정을 완료합니다.
팜 설정
가우시안 스플랫팅 작업을 실행하려면 CUDA GPU 플릿이 있는 Deadline Cloud 팜이 필요합니다. 설정하려면 다음 단계를 완료하세요.
-
CUDA 팜 샘플 CloudFormation 템플릿
지침에 따라 CUDA GPU 플릿이 있고 conda 패키지를 빌드할 수 있는 Deadline Cloud 팜을 생성합니다. -
NeRF Studio 샘플 conda 패키지 레시피
지침에 따라 CUDA 팜의 Amazon S3 채널에 NeRF Studio conda 패키지를 빌드합니다.
참고
기본NERFSTUDIO(스플랫팩토) 트레이너만 필요한 경우 CUDA 팜 CloudFormation 템플릿을 배포하거나 사용자 지정 NeRF Studio conda 패키지를 빌드할 필요가 없습니다. 최소 요구 사항은 GPU 플릿이 있는 Deadline Cloud 팜, conda 채널에 conda-forge 포함된 대기열 환경 및 conda 패키지 입니다ffmpeg colmap glomap nerfstudio cuda. GSPLAT_SIMPLE_TRAINER 및 NERFSTUDIO_SPLATFACTOW 트레이너 옵션은 사용자 지정 빌드 NeRF Studio conda 패키지에서만 사용할 수 있는 명령에 따라 달라집니다.
주제의 비디오 캡처
스마트폰과 같은 비디오 지원 카메라를 사용하여 가우시안 스플랫팅의 주제 비디오를 캡처할 수 있습니다. 다음 팁을 고려하세요.
-
카메라 앱에서 확대/축소 수준 0.5와 같은 넓은 시야를 사용합니다. 시야각이 넓어지면 Structure-from-Motion에서 사용할 이미지 페어 간에 더 많은 객체가 일반적입니다.
-
동영상 안정화를 끕니다. 끄면 모든 프레임 간에 동일한 렌즈 광학이 유지되고 해석 품질이 향상될 수 있습니다.
-
주제에 따라 카메라 모션을 계획합니다. 벤치나 자전거와 같은 객체를 캡처하려면 서로 다른 높이와 거리에서 피사체를 몇 번 궤도화합니다. 방 내부를 캡처하려면 카메라가 안쪽을 향하도록 방 외부를 따라 다른 카메라 높이에서 반복합니다. 지형 외부와 같이 덜 구조화된 공간을 캡처하려면 가우시안 스플랫팅에 원하는 모든 것을 포함하는 방법과 여러 각도에서 모든 공간을 캡처하는 방법을 생각해 보세요.
-
느리고 일정한 동작으로 비디오를 캡처합니다.
-
카메라를 계속 이동합니다. 단일 위치에서 중지하고 이동하지 마세요.
카메라에서 캡처한 비디오를 컴퓨터로 복사하여 팜에 제출합니다.
gsplat_pipeline 작업 제출
가우시안 스플랫팅 작업을 제출하려면
-
deadline-cloud-samples GitHub 리포지토리
의 로컬 복사본이 없는 경우 복제하거나 ZIP으로 다운로드합니다 . git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles -
job_bundles디렉터리에서 다음 명령을 실행합니다.deadline bundle gui-submit gsplat_pipeline -
작업별 설정 탭으로 전환하고 입력 비디오 파일과 출력 Ply 파일 모두에 대한 경로를 선택합니다.
-
제출을 선택하거나 먼저 설정을 사용자 지정합니다. 입력 비디오의 복잡성이 더 높으면 대략적인 이미지 수 값을 늘려야 할 수 있습니다.
사용할 가우시안 스플랫팅 트레이너를 선택하고 CLI 옵션을 사용자 지정할 수도 있습니다. 예를 들어 양자 그리드 옵션과 함께 Monte Carlo Markov 체인(MCMC) 트레이너를 사용하여 최대 2백만 개의 스플랫을 생성하려면 다음과 같이 변경합니다.
-
가우시안 스플랫팅 트레이너를에서
NERFSTUDIO로 전환합니다GSPLAT_SIMPLE_TRAINER. -
GSplat Simple Trainer Options 텍스트를에서
--strategy.cap-max 1000000로 수정--strategy.cap-max 2000000하여 2백만 개의 스플랫을 가져오고,에서 로 수정--no-use-bilateral-grid--use-bilateral-grid하여 양측 그리드 옵션을 활성화합니다.
참고
CUDA 플릿이 제공하는 것보다 더 높은 메모리 사용량이 필요한 입력 비디오 또는 옵션을 선택하는 경우 플릿의 최소 설정을 업데이트해야 합니다. 업데이트된 파라미터 값으로 CloudFormation 템플릿을 재배포하거나 Deadline Cloud 콘솔에서 설정을 편집합니다.
작업 모니터링
작업을 제출한 후 Deadline Cloud Monitor 작업 테이블에서 상태를 모니터링할 수 있습니다. 입력 비디오와 선택한 설정에 따라 작업이 10분 후에 완료되거나 몇 시간이 걸릴 수 있습니다.
작업이 실행 중일 때 작업의 컨텍스트 메뉴를 열고 로그 보기를 선택하여 로그 보기를 엽니다. 파이프라인은 단계를 거치면서 작업 실행 세부 정보에 표시되는 상태 메시지를 업데이트합니다.
오류가 발생하면이 보기의 로그 출력을 통해 원인을 추적할 수 있습니다. 일반적인 원인으로는 메모리 부족 또는 카메라 포즈 해결 실패가 있습니다. 파이프라인은 FFmpeg 프레임 추출, GLOMAP Structure-from-Motion 해석 또는 NeRF Studio 훈련 단계 중 하나에서 실패할 수 있습니다. 오류를 해결하려면 플릿 인프라를 조정하거나 더 낮은 이미지 해상도 또는 이미지 수를 사용합니다.
가우시안 스플랫팅 .ply 다운로드 및 보기
출력을 다운로드하고 보려면
-
작업이 성공적으로 완료되면 Deadline Cloud Monitor의 작업 테이블에서 완료된 작업에 대한 컨텍스트 메뉴를 열고 출력 다운로드를 선택합니다. 설정에 따라 다운로드 진행 상황을 표시하거나 다운로드에 사용할 수 있는 CLI 명령을 표시합니다. Deadline Cloud는 작업을 제출할 때 선택한 위치에
.ply파일을 저장합니다. -
브라우저에서 결과를 보려면 SuperSplat Editor
웹 사이트를 열고 운영 체제의 파일 브라우저에서 SuperSplat 페이지로 파일을 드래그합니다. -
스플랫 표시/숨기기 옵션을 전환한 다음 장면을 회전하고 이동하여 캡처 주제를 찾습니다.
SuperSplat을 사용하면 가우시안 스플랫팅을 편집할 수도 있습니다. 예를 들어 구를 선택하고, 선택을 반전하고, 구 외부의 스플랫을 삭제하여 장면을 잘라낼 수 있습니다. SuperSplat 설명서.ply 파일을 가져올 수 있습니다.
훈련 작업 비용 이해
Deadline Cloud Monitor에는 실행 중인 작업의 비용을 추정하여 각 훈련 비용을 보여주는 사용량 탐색기 기능이 포함되어 있습니다. CUDA 지원 인스턴스를 충분히 낮은 중단율로 사용할 수 있는 사용량이 적은 시간에 테스트를 실행하는 것이 편하다면 스팟 CUDA 플릿의 비용이 온디맨드 플릿보다 저렴합니다. 사용량 탐색기는 유휴 작업자 인스턴스 시간 또는 Amazon S3 버킷의 스토리지와 같이 작업 실행 시간 이외의 비용은 표시하지 않습니다.
정리
지속적인 요금을 방지하려면이 자습서를 위해 생성한 리소스를 정리하십시오.
자습서 리소스를 정리하려면
-
CUDA 팜 CloudFormation 템플릿을 배포한 경우 CloudFormation 콘솔에서 스택을 CloudFormation 삭제합니다.
-
기존 팜을 사용하고이 자습서를 위한 GPU 플릿을 생성한 경우 해당 플릿을 중지하거나 삭제합니다. 기존 공유 플릿을 사용한 경우 그대로 둡니다.
다음 단계
필요에 맞게 gsplat_pipeline 작업 번들을 분리, 편집 및 리믹스할 수 있습니다. 자체 3D 재구성 파이프라인을 사용자 지정하거나 동일한 패턴을 따라 Deadline Cloud CUDA 팜에서 다른 CUDA 워크로드를 실행할 수 있습니다. 샘플 README
-
로컬 또는 Amazon EC2 인스턴스와 같이 팜이 아닌 Open Job Description CLI
를 사용하여 어디서나 작업을 실행합니다. -
GitHub의 작업 개발 진행 샘플의 패턴에 따라 파이프라인의 단일 작업을 종속성별로 연결된 여러 열린 작업 설명 단계로 분해합니다
. 프레임 추출을 위한 CPU 전용 플릿 및 훈련을 위한 GPU 플릿과 같은 다양한 플릿에서 별도의 단계를 실행할 수 있습니다. -
파이프라인을 구조가 다른 여러 작업으로 분할합니다. 예를 들어 Structure-from-Motion을 한 번 해결하는 작업 하나와 가우시안 스플랫팅 훈련 파라미터의 다양한 변형을 반복적으로 시도하는 두 번째 작업이 있습니다.
관련 리소스
다음 리소스는 추가 정보를 제공합니다.