AR(Augmented Reality) SDK는 개발자가 자체 증강 현실 앱 또는 플랫폼을 만드는 데 필요한 도구들을 제공하는 소프트웨어 개발 키트를 말한다.
Plane tracking
평면 감지라고도 하는 평면 추적을 통해 사용자는 바닥, 테이블 및 천장과 같은 수평 평면을 감지하는 AR 제품을 개발할 수 있다.
SLAM
SLAM (Simultaneous Localization and Mapping)을 사용하면 카메라가 아무리 많이 움직여도 사용자가 3D 개체를 카메라에 배치하고 공간의 한 지점에 고정할 수 있다.
Face tracking
얼굴 추적 기능을 통해 사용자는 디지털 이미지 또는 라이브 비디오 프레임에서 사람의 얼굴을 식별하고 확인하는 AR 경험을 만들 수 있다.
Object recognition
물체 인식 기능을 통해 사용자는 현실 세계에서 물체를 식별할 수 있는 AR 시스템을 개발할 수 있다. 객체에 대한 디지털 정보를 시야에 오버레이할 수 있다.
Cloud recognition
클라우드 인식 기능이 있는 AR SDK 플랫폼은 마커가 클라우드에 저장되어 공간이 덜 필요하기 때문에 다양한 마커를 인식할 수 있다.
지원되는 플랫폼
Android, iOS, Windows, MacOS 등의 운영 체제 지원 여부 고려
마커 기반 vs 위치 기반
마커 기반 증강 현실 플랫폼은 이미지 인식 기반으로 현실 세계의 사물을 인식할 수 있다.
위치 기반 증강 현실 플랫폼은 지리 기반으로 현실 세계에서 가상 객체를 배치할 위치를 식별하기 위한 특별한 마커가 필요하지 않다.
무료 vs 유료
무료 버전의 경우 많은 대상을 제공하지 않을 수도 있다.
위 그림은 AR SDK 소프트웨어들에 대해 G2가 사용자 커뮤니티에서 수집한 리뷰와 온라인 소스 및 소셜 네트워크에서 집계된 데이터를 기반으로 점수를 매긴 그래프이다.
그래프를 보면 Google의 ARCore와 Apple의 ARKit이 전반적으로 우수한 것을 알 수 있다.
그럼 지금부터 ARCore와 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는 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만큼 우수한 성능을 보여주지 못한다.
앞서 살펴본 것 처럼 두 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
안녕하세요. 안드로이드 스튜디오에서 '안드로이드에서 AR 모드로 주변 장소 표시(https://developers.google.com/codelabs/maps-platform/location-places-arcore-android)'를 해보고 학생입니다. 혹시 질문 드려도 괜찮을까요..!