[ARCore with Android] AR SDK 톺아보기

akim·2022년 11월 9일
0
post-thumbnail

AR SDK란?

AR(Augmented Reality) SDK는 개발자가 자체 증강 현실 앱 또는 플랫폼을 만드는 데 필요한 도구들을 제공하는 소프트웨어 개발 키트를 말한다.

AR SDK의 장점

  • AR 어플리케이션 생성에 필요한 프레임워크를 제공하여 개발 시간 단축
  • 다양한 운영 체제와의 통합 제공
  • 초보자도 간단한 개발 인터페이스를 통해 AR 개발을 익힐 수 있음

AR SDK 기능

Plane tracking
평면 감지라고도 하는 평면 추적을 통해 사용자는 바닥, 테이블 및 천장과 같은 수평 평면을 감지하는 AR 제품을 개발할 수 있다.

SLAM
SLAM (Simultaneous Localization and Mapping)을 사용하면 카메라가 아무리 많이 움직여도 사용자가 3D 개체를 카메라에 배치하고 공간의 한 지점에 고정할 수 있다.

Face tracking
얼굴 추적 기능을 통해 사용자는 디지털 이미지 또는 라이브 비디오 프레임에서 사람의 얼굴을 식별하고 확인하는 AR 경험을 만들 수 있다.

Object recognition
물체 인식 기능을 통해 사용자는 현실 세계에서 물체를 식별할 수 있는 AR 시스템을 개발할 수 있다. 객체에 대한 디지털 정보를 시야에 오버레이할 수 있다.

Cloud recognition
클라우드 인식 기능이 있는 AR SDK 플랫폼은 마커가 클라우드에 저장되어 공간이 덜 필요하기 때문에 다양한 마커를 인식할 수 있다.

AR SDK 선택 시 고려할 요소

  • 지원되는 플랫폼
    Android, iOS, Windows, MacOS 등의 운영 체제 지원 여부 고려

  • 마커 기반 vs 위치 기반
    마커 기반 증강 현실 플랫폼은 이미지 인식 기반으로 현실 세계의 사물을 인식할 수 있다.
    위치 기반 증강 현실 플랫폼은 지리 기반으로 현실 세계에서 가상 객체를 배치할 위치를 식별하기 위한 특별한 마커가 필요하지 않다.

  • 무료 vs 유료
    무료 버전의 경우 많은 대상을 제공하지 않을 수도 있다.

G2 위 그림은 AR SDK 소프트웨어들에 대해 G2가 사용자 커뮤니티에서 수집한 리뷰와 온라인 소스 및 소셜 네트워크에서 집계된 데이터를 기반으로 점수를 매긴 그래프이다.

그래프를 보면 Google의 ARCore와 Apple의 ARKit이 전반적으로 우수한 것을 알 수 있다.

그럼 지금부터 ARCore와 ARKit을 비교해보자.


ARKit

ARKit는 2017년 Apple에서 공개한 SDK이다. iOS의 새로운 세대가 나올 때 마다 업데이트 되고 있으며, 현재는 ARKit 6까지 나와있다.

장점

Apple의 하드웨어와의 완전한 통합
ARKit은 다른 프로세서나 카메라에 대해 걱정할 필요 없이 Apple의 운영 체제 및 iPhone 하드웨어와 함께 작동하도록 설계되었다. 이는 개발 작업을 간소화하여 코더가 가능한 최고의 제품을 만드는 데 집중할 수 있도록 한다. (본인들이 만든 하드웨어에 본인들이 만든 소프트웨어를 얹으니 당연히 최적화가 더 잘 되어 있다.)

Reality Composer 를 사용한 손쉬운 AR 개발
Apple의 Reality Composer 도구를 사용하면 usdz 3D 모델을 완전히 조작 가능한 AR 개체로 쉽게 변환할 수 있다.

향상된 추적
ARKit은 이미지 추적 및 인식 측면에서 ARCore보다 더 나은 성능을 보이는 경향이 있다. 화면 이미지를 조작하기 위해 사용자 제스처를 추적하는 AR 앱을 만들려는 경우 일반적으로 ARKit이 더 효율적인 옵션이다. Google보다 빠르게 움직임을 데이터로 변환한다.

TrueDepth
애플 기기 전면 카메라의 TrueDepth는 30,000개 이상의 적외선 패턴을 쏴서 depth값을 실시간으로 얻어내기 때문에 정확한 얼굴 테이터 수집 및 인식이 가능하다.

LiDAR
애플 기기 후면 카메라의 LiDAR는 사물에 레이저를 쏘고 빛이 반사되어 돌아오는 시간을 통해 사물까지의 거리값(Depth)를 측정할 수 있도록 한다.

단점

iOS만 호환가능
IOS는 전 세계 스마트폰 사용량의 큰 부분을 차지하지만 시장 점유율은 Android보다 낮고 ARCore는 iOS에서도 작동할 수 있다. 이는 사용자 수를 최대화하려고 할 때 고려해야 할 큰 요소이다.

일부 이전 버전과의 호환성 문제
Apple은 이전 버전을 사용하지 않도록 렌더링하는 ARKit 도구를 이전에 업데이트했다. 이에 SceneKit 과 같은 도구 사용자는 AR 앱을 새 ARKit 버전으로 완전히 업데이트해야 했습니다.


ARCore

ARCore는 2018년에 Google에서 공개한 SDK이다. 그러나 2014년에 나왔던 Tango를 기반으로 구축되었기에 사실상 2014년부터 개발되어 온 것이라고 볼 수 있다.

장점

뛰어난 그래픽 기능
ARCore는 색상 강도 및 온도 측면에서 ARKit과 일치하지만 몰입형 증강 현실 경험을 제작할 때 도움이 되는 몇 가지 추가 기능을 제공한다. ARCore를 통해 코더는 셰이더를 사용하고 픽셀 강도를 관리하여 가상 개체에 대한 새로운 시각적 가능성을 열 수 있다.

조명 추정 및 깊이
ARCore는 조명 추정도 처리할 수 있다. 이는 카메라 이미지를 기반으로 주변 조명을 적용하여 가상 항목을 훨씬 더 사실적으로 보이게 해준다. ARCore의 깊이 API는 가상 객체를 실제 공간과 일치시키는 데에도 탁월하다.

향상된 매핑
Google 지도 개발자가 만든 도구에서 기대할 수 있듯이 ARCore는 위치 감지 및 매핑 분야의 선두 주자 이다. 실제 세계를 나타내기 위해 더 큰 매핑 데이터 세트를 사용하므로(여기서 ARKit이 개선되고 있음) 위치별 AR 경험에 약간 더 적합하다.

기기 범용성
ARCore는 Android 및 iOS 모두에서 작동한다.

공식 문서
Unity, Unreal, Android, iOS 별로 각각 기능마다 어떻게 사용하면 되는지 이미지와 함께 쉽게 잘 정리되어 있다.

오픈소스
말할 것도 없는 장점이다.

단점

iOS에서의 부족함
iOS 에서는 ARKit만큼 우수한 성능을 보여주지 못한다.


ARCore vs ARKit

앞서 살펴본 것 처럼 두 SDK 모두 장단점이 있다.

예를 들어 ARKit은 이미지 인식 및 특정 iOS 작업에 더 적합하고 ARCore는 일반 그래픽 조작 및 게임에 더 적합하다.

지원 기능

또한 각 SDK별로 지원하는 기능도 다른데, 지원 기능 목록은 아래와 같다.
대체로.. ARKit이 더 많은 기능을 지원한다..

인식 알고리즘

  • ARKit : 수평, 수직으로 평면을 감지하는 기술이 정확
    -> 보다 정확한 인식

  • ARCore : feature point를 최대한 많이 찾아, 맵핑된 공간 영역을 빠르게 확장
    -> 보다 빠르고, 넓은 인식


결론

범용성 및 (개발자 입장에서의)사용성에서는 ARCore가 우위
정확성 및 하드웨어와의 호환성에서는 ARKit이 우위

본인의 스택과 개발하고자 하는 목적에 부합하게 잘 선택하여 이용하면 좋을 듯 하다.



참고 및 출처
[G2] Best Augmented Reality (AR) SDK Software
[Modelry] ARkit vs ARcore: Which Development Kit Is Best for Building Augmented Reality Apps?
[Unity] About AR Foundation
[Google Devlopers] Overview of ARCore and supported development environments
[Apple Developer] More to explore with ARKit 6
[Youtube] 개발자가 비교하는👉 ARKit vs ARCore

profile
학교 다니는 개발자

2개의 댓글

comment-user-thumbnail
2024년 5월 3일

안녕하세요. 안드로이드 스튜디오에서 '안드로이드에서 AR 모드로 주변 장소 표시(https://developers.google.com/codelabs/maps-platform/location-places-arcore-android)'를 해보고 학생입니다. 혹시 질문 드려도 괜찮을까요..!

1개의 답글