EasyAR Surface Tracking
EasyAR Surface Tracking 은 공간에서 선택된 표면 점에 대한 디바이스의 위치와 자세를 지속적으로 tracking 하는 경량 기능을 구현합니다. 소형 AR 인터랙티브 게임, AR 숏비디오 촬영, 제품 배치 전시 등의 시나리오에 사용할 수 있습니다.
EasyAR Surface Tracking 원리
실제 공간과 가상 공간 사이의 대응 관계를 구축하기 위해 Surface Tracking 은 디바이스 카메라와 inertial measurement unit 의 데이터를 사용합니다.
Surface Tracking 은 먼저 카메라 이미지로 환경 표면의 뚜렷한 feature 를 인식합니다. 반드시 평면 위일 필요는 없습니다. 그런 다음 연속 이미지 프레임과 센서 데이터를 사용해 이러한 feature 의 위치를 tracking 합니다. 시작 시 가상 객체는 기본적으로 화면 중앙 근처의 feature point 표면에 배치되며, 가상 객체의 위치를 세계 좌표계의 원점으로 간주합니다.
가상 객체도 해당 feature point 위치에 배치되고 지속적으로 tracking 됩니다. 디바이스 이동 중 카메라 이미지의 feature 깊이가 계속 업데이트되고, 가상 객체는 해당 feature point 표면에 계속 밀착됩니다. 가상 객체에 해당하는 feature point 가 손실되면 시스템은 자동으로 새 feature point 를 선택하고 그 feature point 에 대한 디바이스 위치와 자세를 출력합니다.
참고
Surface Tracking 의 feature 손실은 가상 객체 위치 drift 를 유발할 수 있습니다. 고정 위치를 지속 tracking 해야 한다면 Motion Tracking 사용을 권장합니다.
Surface Tracking 과 Motion Tracking 비교
Motion Tracking 과 비교하면 Surface Tracking 은 디바이스 캘리브레이션이 필요 없고 더 많은 기종을 지원하며 initialization 없이 실행할 수 있습니다. 하지만 Surface Tracking 은 실제 스케일을 제공하지 않고, 하나의 가상 객체만 배치할 수 있으며, 가상 객체의 바닥을 좌표계 원점에 배치해야 합니다.
| 비교 항목 | Surface Tracking | Motion Tracking |
|---|---|---|
| 디바이스 캘리브레이션 요구사항 | 디바이스 캘리브레이션 불필요 | 디바이스 캘리브레이션 필요 |
| 기종 지원 범위 | 더 많은 기종 지원 | 하드웨어 성능 요구가 높고 지원 기종이 상대적으로 제한적 |
| 공간 스케일 | 실제 세계 스케일을 제공하지 않음 | 실제 스케일 pose 제공 |
| initialization 흐름 | initialization 없이 실행 가능 | 일반적으로 initialization 과정 필요 |
| 가상 객체 수 | 하나의 가상 객체 배치만 지원 | 여러 가상 객체 지원 가능 |
| 가상 객체 배치 제약 | 가상 객체 바닥을 좌표계 원점에 배치해야 함 | 가상 객체를 임의의 공간 위치에 배치 가능 |
| 적용 시나리오 | 경량 AR 표시, 빠른 체험 | 고정밀 AR, 공간 상호작용, 내비게이션과 측정 |
참고
Surface Tracking 은 가상 객체가 환경 표면에 최대한 밀착되도록 유지합니다. 이 표면은 울퉁불퉁한 물체 표면이나 평평한 바닥/벽일 수 있지만, 환경에 평면이 존재하는지 감지하지는 않습니다. 환경의 수평면 또는 수직면 감지가 필요하면 Plane Detection을 참조하십시오.