ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ARCore Geospatial API #1 기본 이해
    ARcore/Geospatial 2024. 2. 26. 16:11
    ARCore Geospatial API

     

    Google에서는 장치 센서와 GPS 데이터를 사용하여 사용자의 환경을 감지하고 Google의 VPS( Visual Positioning System)에서 제공하는 현지 모델과 일치시켜 사용자의 정확한 위치를 결정한다. 

    Google에서 제공하는 ARCore Geospatial API는 사용자의 로컬 좌표를 VPS의 지리적 좌표와 병합해서 단일 좌표계 내에서 작업할 수 있도록 한다.

     

    < 출처 : https://www.ilovepc.co.kr/news/articleView.html?idxno=8030 >

     

    Google에서는 15년 이상 전세계에서 촬영된 스트리트 뷰 이미지를 VPS 기술의 기반으로 하고 있다. 이렇게 쌓여진 이미지를 기반으로 Deep neural networks(심층 신경망)을 통해 각 부분을 식별하고 수백억개의 이미지를 결합하여 3D Point Cloud를 계산한다.  

     

    사용자의 장치가 Geospatial API를 요청하면 Deep neural networks은 입력된 픽셀을 처리하고 VPS내에 구성된 모델과 일치시켜 사용자에 환경에서 인식이 가능한 부분을 찾는다. 그런 다음 컴퓨터 비전 알고리즘를 활용하여 장치의 위치와 방향을 계산하여 사용자의 정확한 위치를 제공한다.  

    < 출처 : https://developers.google.com/ar/develop/geospatial >

     


     

    Geospatial API의 앵커 배치


    앵커를 배치할 때 ARCore Cloud Anchor 및 ARCore의 API에서는 이미지 맵을 사용하여 장치의 위치를 결정한다. 하지만 이러한 API들로 생성된 맵은 명시적으로 공간을 매핑하고 해야 하기 때문에 로컬 형태로 제공되고 있다.

     

    예로들어 아래 이미지와 같이 ARcore Cloud Anchor에서는 A 사용자가 자신의 디바이스 환경에서 로컬 앵커를 생성하는데 이때, 앵커를 설정하기 위해서 ARCore는 앵커 주변 공간의 3D feature MAP을 사용한다. 3D feature MAP을 얻어내기 위해서는 모바일 디바이스의 후면 카메라를 통해 다양한 시야와 위치를 촬영하여 주변 환경을 매핑한다. 그렇게 하여 3D feature MAP을 생성하고 이를 사용자 환경에 반환한다. 동일한 환경에 주어진 사용자 B는 사용자 A가 매핑하여 둔 3D 맵을 기준으로 비교하여 사용자 B의 위치와 방향 등을 정확히 찾아내게 된다. 

     

    < 출처 :  https://developers.google.com/ar/develop/cloud-anchors >

     

    이렇게 생성된 앵커의 위치는 사용자 환경에서 생성된 3D 맵에 의해서 부여된 로컬 정보로 사용자 A가 구성해둔 동일한 환경에 갖추어져야만 사용이 가능하다.  

     

    Geospatial API에서는 WGS84 (World Geodetic System) 사양에 따라서 위도, 경도, 고도 위치를 제공하며, 이를 통해 사용자가 공간을 수동으로 매핑하여 로컬 정보를 구성하지 않아도 위도, 경도, 고도 값을 기준으로 지리정보 앵커 배치가 가능하다.

     

    Geospatial API에서 제공하는 앵커는 총 3개로 

     

    1. WGS84 anchors

    WGS84 타원체를 기준으로 한 위도, 경도, 고도 위치의 앵커

     

    2. Terrain anchors

    위도와 경도 및 바닥을 기준으로 고도의 위치를 나타내는 앵커

     

    3. Rooftop anchors

    지정된 위치의 건물 상단을 기준으로 고도의 위치를 나타내는 앵커

     


     

    ARCore 지원 장치 

     

    1. Android (에뮬레이터)

    Requires Android 8.1 (API 27) 

     

    2. Android (구글 플레이)

    AR용 Google Play 서비스를 통해 ARCore 지원

    AR Optional의 경우 API Level 19 

    AR Required의 경우 API Level 24

     

    국내에 보편화된 안드로이드 폰인 삼성폰을 확인해 보았을 때

    노트 8 이후 제품부터는 대부분 Depth 기능이 사용가능.

     

    3. iOS

    Cloud Anchors가 iOS 12.0 이상의 모든 ARKit 호환 장치에서 지원

     

    https://developers.google.com/ar/devices#ios

     

    ARCore 지원 기기  |  Google for Developers

    ARCore를 지원하는 Android 및 iOS 기기의 목록을 가져오거나 CSV 파일을 다운로드합니다.

    developers.google.com

     


    지원하는 디바이스의 SDK 

     

    1. Android (kotlin/ 자바)

    2. Android NDK (C)

    3. Unity (AR Foundation)

    4. iOS

    5. Unreal 엔진

     

    SDK는 아래 링크를 통해서 이용이 가능하다.

     

    https://developers.google.com/ar/develop/geospatial?hl=ko#android-kotlinjava

     

    ARCore Geospatial API를 사용하여 세계적인 규모의 몰입형 위치 기반 AR 환경을 구축하세요  |  Google f

    ARCore Geospatial API를 사용하여 Google 스트리트 뷰가 적용되는 지역에 원격으로 콘텐츠를 첨부하고 전 세계를 아우르는 AR 환경을 만드는 방법을 알아보세요.

    developers.google.com

     


     

    참고문헌

    "Build global-scale, immersive, location-based AR experiences with the ARCore Geospatial API", ARCore, accessed Feb 26. 2024, https://wear-studio.com/location-based-ar/https://developers.google.com/ar/develop/geospatial.

    "Cloud Anchors allow different users to share AR experiences", ARCore, accessed Feb 26. 2024, https://developers.google.com/ar/develop/cloud-anchorshttps://developers.google.com/ar/develop/geospatial.

Designed by Tistory.