Mega와 ARKit/ARCore 기능 비교
EasyAR Mega는 Apple의 ARKit 및 Google의 ARCore와 관련이 있으면서도 차이가 있습니다. 이들의 관계와 각자의 장점을 이해하는 것은 developer가 Mega의 작동 방식을 이해하는 데 매우 중요합니다. 간단히 말해, Mega는 ARKit/ARCore의 motion tracking 능력을 충분히 활용하면서 ARKit/ARCore가 충족할 수 없는 large-scale spatial localization 요구를 확장합니다.
핵심 관계
ARKit/ARCore(기반 계층):
- 이들은 디바이스 운영체제(iOS/Android)가 제공하는 AR development frameworks입니다.
- 핵심 역할은 디바이스 수준의 environment perception 및 tracking입니다. 예를 들어 디바이스 camera와 IMU를 이용해 simultaneous localization and mapping (SLAM), plane detection, lighting estimation, image/object recognition 등을 구현합니다.
- 상위 애플리케이션에 안정적이고 지연 시간이 낮은 6DoF pose data stream을 제공합니다.
EasyAR Mega(애플리케이션/플랫폼 계층):
- 이는 초대형 spatial computing platform입니다.
- 핵심 역할은 사전에 구축된 고정밀 3D 데이터와 advanced visual localization 기술을 결합하여 도시 규모, 센티미터 수준의 persistent localization을 구현하는 것입니다. ARKit/ARCore가 제공하는 하위 6DoF 데이터를 활용해 fused motion tracking을 구현합니다.
- Mega는 ARKit/ARCore를 대체하지 않습니다. 대신 이를 활용하여 물리 세계에서 디바이스의 초기 motion data를 얻고, 이 데이터를 Mega map과 매칭하여 통합된 고정밀 좌표계에 "anchor"합니다.
기능 비교와 Mega의 장점
ARKit/ARCore도 ARKit의 ARWorldMap, ARCore의 Cloud Anchors/Geospatial API와 같은 일정한 spatial recognition 및 localization 능력을 제공합니다. 이러한 기능은 Mega가 제공하는 ultra-large-scale spatial localization 능력과 어느 정도 유사하지만 근본적으로 다릅니다. 다음은 두 가지의 상세 기술 비교입니다.
| 기능 | ARWorldMap | Cloud Anchors/Geospatial API | EasyAR Mega |
|---|---|---|---|
| Localization 범위 | 주변 환경을 스캔하고 localization 가능 | 주변 환경을 스캔하고 localization 가능 | 도시급 공간 환경을 스캔하고 localization 가능 |
| Localization 특성 | 환경 변화에 대응 가능 | 환경 변화에 대응 가능 | 환경 변화와 주야 변화에 대응 가능 |
| Map 구축 | 디바이스 측에서 수집 및 구축하고 local area network를 통해 공유 | 디바이스 측에서 수집 및 구축하고 Google Cloud에 호스팅된 endpoints를 통해 공유 | 전용 디바이스로 수집하고 cloud에서 구축하며, cloud localization services를 통해 임의 디바이스에 공유 |
| Virtual-real occlusion | LiDAR로 스캔한 Mesh를 통한 geometric occlusion | Depth API를 통한 depth 기반 occlusion | LOD와 풍부한 세부 정보를 가진 3D 모델을 제공하여 정확한 geometric occlusion 구현 |
| 크로스 디바이스 경험 | iOS 디바이스 간 공유와 경험만 지원 | Google Cloud endpoints를 통해 Android와 iOS 디바이스 간 공유와 경험 구현 | 통합 cloud localization services 또는 on-device deployment를 통해 거의 모든 디바이스(Android, iOS, XR headsets) 간 공유와 경험 구현 |
| 기술 의존성 | ARKit이 있는 디바이스에서만 실행되며, 일부 기능은 추가 hardware 또는 software 요구 사항(LiDAR 등)이 있음 | ARKit 또는 ARCore가 있는 디바이스에서 실행 | 다양한 디바이스와 폭넓게 호환되며 ARKit 또는 ARCore 보유를 필수로 요구하지 않음 |
ARKit/ARCore와 동시에 사용
EasyAR Mega를 통합할 때 일반적으로 ARKit 또는 ARCore API를 직접 호출할 필요가 없습니다. 이는 매우 중요한 개념입니다.
- Mega 애플리케이션은 실행 중인 단말 디바이스에 따라 사용 가능한 ARKit/ARCore 6DoF data stream을 자동으로 가져옵니다.
- 사용자는 통합
MegaTracker또는MegaGoTrackerAPI만 사용하여 localization services를 관리하고 pose data를 얻으면 됩니다. 내부에서는 ARKit/ARCore의 raw data가 자동으로 융합 계산되어, 최종적으로 통합되고 고정밀이며 지속적으로 tracking되는 spatial localization 결과를 제공합니다. - 이러한 설계는 development 과정을 크게 단순화합니다. 서로 다른 플랫폼을 위해 두 세트의 코드를 작성하고 유지할 필요가 없으며, ARKit/ARCore의 복잡한 API를 깊이 이해할 필요도 없습니다. EasyAR Mega 기능을 사용하여 애플리케이션 로직을 구축하는 데 집중하면 됩니다.
팁
예외: Mega localization을 사용하는 동시에 ARKit의 People Occlusion과 같은 ARKit/ARCore의 특정 기능을 사용하려면, 애플리케이션에서 native API를 혼합 호출해야 할 수 있습니다.
EasyAR Mega는 ARKit/ARCore와 경쟁하거나 대체하는 것이 아니라, 서로 보완하고 협력합니다. ARKit/ARCore는 "디바이스가 환경에서 어떻게 움직이는가"라는 문제를 해결하고, EasyAR Mega는 "모든 디바이스가 같은 거대한 공간에서 어떻게 정확히 localization하는가"라는 문제를 해결합니다. 둘을 결합하면 large-scale spatial sharing 및 persistent localization 능력을 갖춘 전례 없는 AR 애플리케이션을 구축할 수 있습니다.