진단 및 수정: 콘텐츠 jitter
이 문서는 planar image tracking에서 가상 콘텐츠가 jitter, drifting 또는 튀는 문제를 다루며, 개발자가 정상 jitter와 비정상 jitter를 구분하고 체계적인 troubleshooting 및 개선 방법을 제공합니다.
"정상 jitter" 구분
다음 상황을 이해하면 과도한 최적화나 오판을 피하는 데 도움이 됩니다.
가벼운 변위(정상)
- 동작: 가상 콘텐츠가 몇 픽셀 정도 가볍게 떠 있거나 천천히 회전합니다.
- 시나리오:
- 실내의 빛과 그림자 변화처럼 조명이 고르지 않음
- 카메라 auto focus 또는 exposure 조정 시
- 삼각대 고정 없이 장치가 약간 손떨림
- 예상: 이러한 상황은 피하기 어렵고 특별한 처리가 필요하지 않습니다.
짧은 jitter(정상)
- 동작: 장치나 target image를 빠르게 움직일 때 가상 콘텐츠가 0.5-1초 jitter 후 안정됩니다.
- 시나리오:
- 정적 상태에서 동적 상태로 전환되는 과정
- target image가 시야에 들어오는 초기 인식 단계
- 예상: 알고리즘 수렴 과정에 속하며 짧은 시간 내 복구되면 정상입니다.
가장자리 jitter(정상)
- 동작: image가 카메라 field of view 가장자리에 있거나 거의 잃어버릴 때, 가상 콘텐츠가 약간 튑니다.
- 시나리오:
- 손가락이 가장자리를 가리는 등 image가 부분적으로 가려짐
- 카메라 field of view가 image 밖으로 이동할 때
- 예상: tracking information 일부 손실로 인한 알고리즘 경계입니다. 사용자가 image를 field of view 중앙에 유지하도록 안내하는 것을 권장합니다.
비정상 jitter의 일반적인 원인과 개선
다음 jitter는 문제이며 대상별 해결이 필요합니다.
target image 품질이 좋지 않음
증상: 가상 콘텐츠가 지속적으로 높은 빈도로 jitter하거나, 불규칙하게 튀거나, 자주 사라집니다. Troubleshooting 방법:
- recognition score 검사: target image detection tool을 사용하여 recognition score를 확인합니다.
개선 제안:
- image 최적화:
- 국부 대비를 높입니다.
- 단색 영역을 피하고 미세한 texture를 추가합니다.
- 반복 texture를 피합니다.
hardware 성능 부족
증상: 저사양 장치에서 중고사양 장치보다 jitter가 명확하거나 tracking을 더 쉽게 잃습니다. Troubleshooting 방법:
- CPU 사용량 확인: Profiler tool을 사용해 애플리케이션의 CPU 사용률을 모니터링합니다.
개선 제안:
- performance mode 활성화:
ImageTrackerMode를PreferPerformance로 설정하여 약간의 정확도를 희생하고 부드러움을 얻습니다. - tracking 수 줄이기: 다중 target 동시 tracking이 활성화된 경우
Simultaneous Number를 적절히 줄입니다. - 플랫폼별 적용: 저사양 장치에 단순화된 scene을 제공합니다.
환경 간섭
증상: 특정 조명이나 background에서 jitter가 발생하고 환경을 바꾸면 정상입니다. Troubleshooting 방법:
- 조명 테스트: 흐린 날처럼 균일한 조명과 강한 빛/그림자 대비 환경에서 각각 테스트합니다.
- background 간섭: 많은 사람이 이동하는 등 카메라 background가 지나치게 복잡한지 확인합니다.
- 반사 간섭: target image의 물리 표면이 유리나 금속처럼 반사되는지 확인합니다.
개선 제안:
- 조명 제어: 사용자에게 균일한 조명 환경에서 사용하고 직사광이나 강한 그림자를 피하도록 권장합니다.
- 물리적 최적화: image가 반사 표면에 있다면 무광 필름을 덮거나 인쇄 방식으로 물리 객체를 만듭니다.
콘텐츠의 국부 jitter가 명확함
증상: 가상 콘텐츠 scene이 크고, target image의 물리적 entity에 가까운 가상 콘텐츠의 jitter는 작지만 target entity에서 멀리 떨어진 가상 콘텐츠의 jitter가 명확합니다. Troubleshooting 방법:
- 콘텐츠 축소: scene의 가상 콘텐츠
Scale을 일괄적으로 줄인 뒤 같은 환경과 조건에서 다시 테스트합니다.
개선 제안:
- 콘텐츠를 적절히 조정: 너무 큰 가상 콘텐츠는 target entity에서 멀어지는 방향의 각도 오차를 확대합니다. 예를 들어 0.1°의 각도 오차는 가까운 곳에서는 0.1cm의 virtual-real alignment error로 보이지만, 먼 곳에서는 10cm로 확대됩니다. 가상 콘텐츠를 설계할 때 target image 대비 가상 콘텐츠의 물리 크기를 적절히 조정해야 합니다.
요약 및 모범 사례
콘텐츠 jitter는 정상 jitter와 비정상 jitter를 구분해야 합니다. 정상 jitter, 예를 들어 가벼운 변위나 짧은 시간 내 복구 등은 특별한 처리가 필요하지 않습니다. 비정상 jitter, 예를 들어 고빈도 튐이나 잦은 손실 등은 사용자 경험에 영향을 주므로 추가적인 주의가 필요합니다. 다음 순서로 troubleshooting하는 것을 권장합니다.
- target image 품질 확인;
- 특정 장치 성능으로 인한 고유 현상인지 확인;
- 조명, 동적 scenes, 반사 표면 등 환경 요인 제거;
- 가상 콘텐츠 자체가 너무 큰지 확인.
문제가 계속되면 EasyAR 공식 포럼 또는 기술 지원을 통해 log files, 화면 녹화 등 자료를 제공하여 추가 분석을 진행할 수 있습니다.