캘리브레이션은 뎁스 데이터를 생성하기 위한 전제 조건이며, 따라서 스테레오 카메라 쌍을 사용하여 메타휴먼 애니메이터에서 애니메이션을 솔브하려면 반드시 필요합니다. 캘리브레이션은 캘리브레이션 보드 또는 체커 보드)영상으로부터 언리얼 엔진에서 직접 생성할 수 있습니다. 이 영상을 캡처하는 방법에 대한 자세한 내용은 캘리브레이션 캡처 가이드라인 페이지를 참고하세요.
전제 조건
라이브 링크 허브를 사용하여 캘리브레이션 보드 영상을 수집합니다. 그러면 캡처 데이터 에셋이 생성됩니다.
캘리브레이션 제너레이터 툴 사용
콘텐츠 브라우저에서 캡처 데이터 에셋을 우클릭하고 메뉴에서 '캘리브레이션 생성(Generate Calibration)' 옵션을 선택합니다.
그러면 캘리브레이션 제너레이터 툴이 열리고 캘리브레이션 테이크의 각 카메라 뷰에서 이미지가 표시됩니다.
캘리브레이션 제너레이터 툴은 다음과 같은 컴포넌트로 구성됩니다.
환경설정(Config): 저장했다가 나중에 다시 열어서 여러 테이크에 걸쳐 반복 캘리브레이션할 수 있습니다.
자동 프레임 선택 실행
캘리브레이션 실행
프로젝트 세팅
두 카메라에서 캡처한 이미지
각 카메라 캡처에 대한 뷰 세팅입니다.
'뷰 리셋(Reset View)'은 선택된 관심 영역을 제거하지 않습니다. 이 함수를 사용하면 줌/패닝이 리셋됩니다.
프레임 선택 슬라이더 및 컨트롤 버튼
+ 프레임 추가: +를 클릭하면 선택한 프레임에서 탐지된 포인트 커버리지의 시각적 표현이 추가됩니다.
- 프레임을 제거합니다.
키보드 스페이스바를 누르면 현재 프레임을 추가하거나 제거(+/-)합니다.
< > 프레임 간에 이동합니다.
키보드의 A 또는 D를 누르면 프레임 간에 1씩 이동합니다.
Shift-A 또는 Shift-D 를 누르면 프레임 레이트만큼 이동합니다.
리셋: 전체 캘리브레이션을 리셋합니다.
'환경설정' 탭
'옵션(Options)' 탭
| 프로퍼티 | 설명 |
|---|---|
| 환경설정 | |
보드 패턴 너비(Board Pattern Width) | 보드 너비 방향에 있는 사각형 수입니다. |
보드 패턴 높이(Board Pattern Height) | 보드 높이 방향에 있는 사각형 수입니다. |
보드 사각형 크기(Board Square Size) | 각 정사각형의 에지 크기(cm)입니다. |
| 옵션 | |
에셋 이름(Asset Name) | 사용 중인 캘리브레이션의 이름입니다. |
패키지 경로 | 프로젝트 내에서 생성된 에셋을 저장할 위치입니다. |
에셋 자동 저장(Auto Save Assets) | 생성된 캘리브레이션 에셋을 자동으로 저장할지 여부입니다. |
선명도 한계치(Sharpness Threshold) | 사용될 프레임의 허용 블러 정도(픽셀)입니다. 추정된 블러 값이 이 한계치를 초과하는 프레임은 무시됩니다. |
카메라 관심 영역(Area of Interests for Cameras) | 이 옵션은 자동 프레임 선택에서 역할을 합니다. 이 프로세스는 체커보드가 지정된 영역 대부분 또는 전부를 덮는 프레임을 우선시합니다. 관심 영역이 지정되지 않은 경우, 프로세스는 체커보드가 프레임의 중앙 부분을 덮는 프레임을 우선시합니다. |
자동 프레임 선택(Automatic Frame Selection)
이 프로세스는 프로젝트 세팅의 '자동 프레임 선택 샘플 레이트(Automatic Frame Selection Sample Rate)'에 의해 결정되는 n번째 프레임마다 진행되며, 포즈 다양성이 가장 높은 프레임을 선택하여 최대한 많은 포인트를 캡처합니다. 따라서 다양한 체커보드 위치가 캘리브레이션 프로세스에서 중요합니다.
포즈 다양성은 해당 프레임의 체커보드 커버리지와 영상 내 다양한 체커보드 위치를 기반으로 합니다. 둘 모두 프레임의 점수를 정의하며, 점수가 가장 높은 프레임만 프로세스 결과의 일부가 됩니다. 체커보드 위치가 변경되지 않은 프레임은 버리고 고유한 체커보드 위치가 있는 프레임만 선택합니다.
이 프로세스를 자체적으로 실행하면 캘리브레이션에 중요한 일부 영역이 제외될 수 있습니다. 캘리브레이션에 이러한 영역이 포함되지 않은 경우, 관심 영역을 선택하고 캘리브레이션을 다시 실행할 수 있습니다.
자동 프레임 선택 실행(Run Auto Frame Selection)을 클릭합니다.
자동 프로세스에서 충분한 프레임을 탐지할 수 없으면 경고가 표시됩니다. 한계치는 프로젝트 세팅에서 환경설정할 수 있습니다.
필요한 경우 추가 프레임을 수동으로 선택할 수 있습니다.
관심 영역 선택하기
디폴트 관심 영역은 체커보드가 주로 프레임 중앙에 있다고 가정하며, 이는 대부분의 스테레오 HMC 하드웨어에서 양호한 결과를 제공하는 것으로 나타났습니다.
하지만 체커보드가 중앙 프레임에 있지 않거나 렌즈 선택으로 인해 프레임의 더 작은 섹션을 차지하는 경우, 필요에 따라 관심 영역을 선택할 수 있습니다. 이렇게 하면 새 관심 영역 내에서 우선순위를 지정하여 이미지에서 다른 영역의 영향을 줄일 수 있습니다.
커버리지 영역을 제한하거나 확장하려면 다음 단계를 따릅니다.
이미지 세팅 버튼을 클릭하고 관심 영역 선택(Select Area of Interest)을 클릭합니다.
커서로 클릭하고 드래그하여 선택 영역 박스를 생성합니다. 각 이미지마다 이 작업을 반복합니다.
'뷰 리셋'은 수동으로 선택된 관심 영역을 제거하지 않습니다. 캘리브레이션 제너레이터 툴을 닫았다가 다시 열거나, 전체 프레임을 통합하는 관심 영역을 줌아웃하고 선택합니다.
수동 프레임 선택
슬라이더와 프레임 선택 버튼을 사용하여 필요한 포인트를 모두 캡처할 수 있을 만큼 프레임을 추가합니다.
최적의 캘리브레이션을 위해서는 흐릿하지 않은 프레임을 선택한 다음 체커보드를 프레임 내에서 다양한 위치에 완전히 배치하고 캘리브레이션을 실행하여 결과를 확인합니다. 커버리지가 충분하지 않은 경우 프레임을 추가하거나 변경하고 캘리브레이션을 다시 실행합니다.
가장 '녹색'인 커버리지를 얻을 때까지 이 과정을 반복합니다.
캘리브레이션 실행하기
프레임이 자동 또는 수동으로 선택되면 뷰가 전체 커버리지 영역의 시각적 표현으로 업데이트됩니다. 색상은 프레임의 특정 블록에 필요한 포인트 수에 따라 정의되며, 숫자는 필요한 커버리지가 충족된 퍼센티지를 나타냅니다.
캘리브레이션 범위가 마음에 들면 캘리브레이션 실행(Run Calibration) 버튼을 클릭하여 캘리브레이션 에셋을 생성합니다. 완료되면 팝업에 평균 제곱근(Root Mean Squared, RMS) 재투영 오차율이 표시되어 캘리브레이션의 퀄리티를 알려줍니다.
RMS 재투영 오차 범위는 아래와 같습니다. 이 범위는 참고용으로만 사용해야 합니다. 프로세스의 수학적 측정값이므로 '양호' 또는 '매우 좋음'으로 보고된 값도 여전히 뎁스 또는 애니메이션 데이터에서 좋지 않은 결과를 낳을 수 있습니다.
0.0px < RMS < 0.3px : 매우 좋음
0.3px < RMS < 0.7px : 양호
0.7px < RMS < 1.0px : 허용 가능
1.0px < RMS < 1.5px : 경계
1.5px < RMS : 나쁨
완료되면 각 카메라에 대해 렌즈 파일 에셋을 레퍼런스하는 카메라 캘리브레이션 에셋이 타깃 폴더에 생성됩니다. 렌즈 파일 에셋은 언리얼 엔진 버추얼 프로덕션 툴키트의 일부입니다.