평면 추적과 모션 추적 결합
이 글은 평면 이미지 추적과 기기 모션 추적 기능을 융합하여 복잡한 시나리오에서 추적 안정성과 사용자 경험을 향상시키는 방법을 소개합니다. 핵심 원리, 기대 효과 및 잠재적 문제 분석을 다룹니다.
기본 원리
모션 퓨전(Motion Fusion) 은 평면 이미지 추적의 포즈 데이터와 기기 모션 추적의 포즈 데이터를 결합하여 더 강건한 포즈 추정을 구현합니다. 핵심 프로세스는 다음과 같습니다:
데이터 동기화 및 상호 보완
- 시각적 추적: 이미지 특징점 매칭을 통해 현재 프레임의 포즈(위치+회전)를 계산하지만, 가림, 흐림 또는 빠른 움직임에 취약합니다.
- 모션 추적: IMU 센서의 고주파 출력과 시각적 이미지 출력을 활용해 기기 모션 데이터를 획득하지만 누적 드리프트 오류가 발생합니다.
- 퓨전 메커니즘:
- 시각적 추적 포즈와 기기 모션 추적 포즈를 좌표계 정렬합니다.
- 대상 이미지가 선명하게 보이고 안정적으로 움직일 때: 시각적 추적을 주로 사용합니다. 지속적으로 시각적 추적 포즈를 퓨전 모듈에 전송하여 시스템 전체의 누적 드리프트를 보정합니다.
- 대상 이미지가 사라지거나 화면에서 비율이 너무 작거나 빠르게 움직일 때: 시각적 추적이 실패하여 모션 추적을 주로 사용합니다. 현재 모션 추적 포즈를 기반으로 퓨전 포즈를 예측합니다.
핵심 기술 요소
- 타임스탬프 정렬: 시각적 프레임의 타임스탬프와 모션 추적 데이터를 정렬하여 지연으로 인한 진동을 방지합니다.
- 좌표계 정렬: 시각적 추적 궤적과 모션 추적 궤적을 기반으로 좌표계를 정렬합니다.
- 재위치 설정: 이미지가 다시 나타날 때 시각적 추적이 신속히 누적 오류를 보정하여 가상 객체를 올바른 위치로 "되돌립니다".
적용 시나리오 및 제한 사항
모션 퓨전은 모든 시나리오에 적합하지 않습니다. 다음 중 하나에 해당하는 경우 모션 퓨전 기능을 사용할 수 없습니다:
- 대상 기기가 ARCore/ARKit 등 모션 추적 기능을 지원하지 않는 경우. 지원 기기 목록은 모션 추적 기기 지원을 참조하십시오.
- 대상 이미지/평면 물체가 장면에서 동적인 경우(예: 손에 들고 체험하는 카드).
이 외의 시나리오에서는 모션 퓨전을 사용하면 평면 이미지 추적의 사용자 경험이 크게 향상되며, 다음 사용 사례를 포함합니다:
- 빠른 움직임: 사용자가 기기를 빠르게 움직일 때 모션 블러로 인해 이미지 추적이 실패합니다.
- 대상 사라짐: 화면에서 대상이 벗어나거나 대상이 동적 물체(예: 행인)에 가려져도 가상 콘텐츠가 계속 표시됩니다.
- 대상 이격: 기기를 멀리 떨어뜨려 대상 이미지가 화면에서 비율이 작아져도 안정적으로 지속 추적됩니다.
- 저조도 조건: 시각적 추적 성능이 저하될 때 체험을 유지합니다.
효과 및 기대 결과
적용 가능한 시나리오에서 모션 퓨전은 단순한 평면 이미지 추적보다 더 안정적이고 부드러운 사용자 경험을 제공합니다.
이상적인 효과
- 더 안정적인 추적: 가상 객체가 떨리거나 급변하지 않습니다.
- 부드러운 전환: 시각적 추적이 실패할 때 퓨전 포즈의 변화가 연속적이고 자연스럽습니다.
- 방해 요소 내성: 대상 이미지가 사라지거나 가려지거나 기기가 빠르게 움직이는 상황에서도 가상 객체가 기기 움직임을 따라 지속 추적됩니다.
비이상적 상황 및 대응
| 현상 | 원인 | 사용자 인지 | 해결책 |
|---|---|---|---|
| 초기 미작동 | 모션 추적 초기화에 시간 필요 | 초기 단계에서 콘텐츠 사라짐 | UI 안내로 시스템 모션 추적 초기화 완료 확인 |
| 드리프트 현저 | 시스템 오류 누적 및 장기간 시각적 보정 없음 | 가상 객체가 원위치에서 벗어남 | 사용자에게 가림 시간 단축 유도 또는 시각적 재위치 설정 안내 추가 |
| 성능 저하 | 장기간 두 기능 동시 실행 | 프레임률 저하 및 화면 끊김 | 정상 현상, API로 모션 퓨전 비활성화 가능 |
기대 결과 검증 방법
지원 기기를 사용해 실제 시나리오에서 테스트:
- 이미지를 정렬하고 가상 객체 안정성 확인.
- 이미지를 2초간 손으로 가린 채 기기 이동, 가상 객체의 부드러운 이동 관찰.
- 손을 제거한 후 가상 객체가 빠르게 복귀하며 급변 없음 확인.
요약 및 모범 사례
모션 퓨전은 평면 이미지 추적의 다수 시나리오에서 강건성을 크게 향상시키지만, 기기 하드웨어 지원 및 충분한 성능이 필요합니다. 개발자는 대상 사용자 기기를 고려해 이 기능을 선택적으로 활성화하고, 저성능 기기에서는 성능 저하 대안을 제공해야 합니다.
실시간 모션 퓨전 활성화/비활성화 API 참조:
- 네이티브: setResultPostProcessing
- Unity: EnableMotionFusion