Table of Contents

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 또는 MegaGoTracker API만 사용하여 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 애플리케이션을 구축할 수 있습니다.