플랫폼별 가이드
Android (Kotlin/자바)
Android NDK (C)
Unity (AR Foundation)
Unreal 엔진
ARCore의 Augmented Images API를 사용하면 포스터나 제품 포장과 같은 사용자 환경에서 2D 이미지를 감지하고 보강할 수 있는 AR 앱을 빌드할 수 있습니다.
참조 이미지 세트를 제공합니다. ARCore는 컴퓨터 비전 알고리즘을 사용하여 각 이미지의 그레이 스케일 정보에서 특징을 추출하고, 이러한 특징의 표현을 하나 이상의 증강 이미지 데이터베이스에 저장합니다.
런타임 시 ARCore는 사용자 환경의 평평한 표면에서 이러한 기능을 검색합니다. 이를 통해 ARCore는 실제 세계에서 이러한 이미지를 감지하고 위치, 방향, 크기가 제공되지 않을 경우 예상할 수 있습니다.
기능
ARCore는 최대 20개의 이미지를 동시에 추적할 수 있습니다. ARCore는 동일한 이미지의 여러 인스턴스를 동시에 감지하거나 추적하지 않습니다.
각 증강 이미지 데이터베이스는 최대 1,000개의 참조 이미지를 저장할 수 있습니다. 데이터베이스 수에는 제한이 없지만 항상 하나의 데이터베이스만 활성화할 수 있습니다.
런타임 시 증강 이미지 데이터베이스에 이미지를 데이터베이스당 최대 1,000개까지 추가할 수 있습니다. 네트워크 연결을 사용하여 이전에 만든 데이터베이스를 다운로드할 수 있습니다.
이미지를 추가할 때 감지할 이미지의 실제 크기를 제공할 수 있습니다. 이렇게 하면 이미지 감지 성능이 개선됩니다.
실제 크기가 제공되지 않으면 ARCore는 시간 경과에 따라 크기를 추정하고 이 추정치를 조정합니다.
실제 크기가 제공되면 ARCore는 제공된 크기를 사용하여 이미지의 위치와 방향을 추정하며 겉보기 또는 실제 크기와 제공된 실제 크기 간의 불일치를 무시합니다.
ARCore는 다음과 같은 이미지에 응답하고 추적할 수 있습니다.
벽에 걸려 있는 인화나 테이블 위에 놓인 잡지와 같이 제자리에 고정된 이미지
지나가는 버스에 게재된 광고 또는 사용자가 손을 움직일 때 들고 있는 평평한 물체에 있는 이미지 등 움직이는 이미지
ARCore가 이미지 추적을 시작하면 각 프레임의 이미지 위치와 방향에 관한 추정치를 제공합니다. ARCore는 더 많은 데이터를 수집하면서 이러한 추정치를 지속적으로 미세 조정합니다.
이미지가 감지되면 ARCore는 사용자가 기기를 움직여 이미지가 일시적으로 카메라 뷰에서 벗어나더라도 계속해서 이미지의 위치와 방향을 '추적'합니다. 이 경우 ARCore는 이미지의 위치와 방향이 정적이며 이미지 자체가 환경을 통해 이동하지 않는다고 가정합니다.
모든 모니터링은 기기에서 이루어집니다. 이미지를 감지하고 추적하기 위해 인터넷 연결이 필요하지 않습니다.
요구사항
이미지는 다음 요건을 충족해야 합니다.
처음 감지될 카메라 프레임의 25% 이상을 채웁니다.
평평해야 합니다 (예: 구김이 가라앉거나 병에 감겨서는 안 됨).
카메라가 잘 보이는 곳에 있어야 합니다. 부분적으로 가려지거나 매우 비스듬한 각도로 바라보거나 모션 블러로 인해 너무 빠르게 움직일 때 보이면 안 됩니다.
CPU 사용률 및 성능 고려사항
이미 사용 설정된 ARCore 기능에 따라 증강 이미지를 사용 설정하면 ARCore의 CPU 사용률이 증가할 수 있습니다. AR 환경에서 필요하지 않은 시간에는 사용하지 않는 기능을 사용 중지하는 것이 좋습니다. 이렇게 하면 앱에 추가 CPU 주기가 제공되고 열 성능과 배터리 수명이 개선됩니다.
자세한 내용은 성능 고려사항을 참고하세요.
권장사항
참조 이미지 선택 도움말
- 이미지의 해상도는 300x300픽셀 이상이어야 합니다. 고해상도 이미지를 사용해도 성능이 향상되지 않습니다.
- 참조 이미지는 PNG 또는 JPEG 파일 형식으로 제공할 수 있습니다.
- 색상 정보는 사용되지 않습니다. 런타임에 사용자가 참조 이미지로 사용하거나 컬러 이미지와 이에 상응하는 그레이 스케일 이미지를 사용할 수 있습니다.
- 압축이 심한 이미지는 특성 추출을 방해하므로 사용하지 마세요.
- 많은 수의 기하학적 특징이나 아주 적은 수의 특징이 포함된 이미지는 피합니다 (예: 바코드, QR 코드, 로고, 기타 라인 아트). 감지 및 추적 성능이 저하될 수 있습니다.
- 패턴이 반복되는 이미지는 사용하지 않도록 합니다. 이로 인해 감지 및 추적에 문제가 발생할 수도 있습니다.
ARCore SDK에 포함된
arcoreimg
도구를 사용하여 각 이미지의0
~100
사이의 품질평가점수를 확인합니다. 최소 75점의 품질평가점수를 권장합니다. 다음은 두 가지 예입니다.예시 이미지 1 예시 이미지 2 점수: 0
점수: 100
반복되는 기하학적 지형지물을 포함함 해상도가 높고
이미지 데이터베이스를 만들기 위한 팁
- Android용 arcoreimg 도구를 사용하여 이미지 데이터베이스 파일을 생성합니다. 이 도구는 Android 및 Android NDK 개발에만 사용할 수 있습니다. Unity SDK 및 ARCore Unreal 플러그인에 빌드됩니다.
- 데이터베이스는 참조 이미지에 그레이 스케일 데이터에서 추출된 특성의 압축된 표현을 저장합니다. 각 이미지 항목은 약 6KB를 차지합니다.
- 런타임에 이미지를 데이터베이스에 추가하는 데 약 30ms가 걸립니다.
- UI 스레드가 차단되지 않도록 작업자 스레드에 이미지를 추가합니다.
- 또는 가능하면 ARCore SDK에 포함된
arcoreimg
도구를 사용하여 컴파일 시간에 이미지를 추가합니다.
- 이미지의 예상 실제 크기를 알고 있으면 이미지를 지정합니다. 이 정보를 사용하면 특히 큰 실제 이미지 (75cm 초과)의 감지 및 추적 성능이 개선됩니다.
- CPU 사용률 증가로 인해 시스템 성능에 약간의 영향을 미치게 되므로 사용되지 않는 이미지를 데이터베이스에 많이 보관하지 마세요.
추적 최적화를 위한 팁
- 이미지가 초기 위치에서 움직이지 않는 경우 (예: 벽에 고정된 포스터) 추적 안정성을 높이기 위해 이미지에 앵커를 연결할 수 있습니다.
- 실제 이미지는 초기 감지 시 카메라 이미지의 최소 25% 를 차지해야 합니다. 카메라 프레임에 실제 이미지를 맞추라는 메시지를 사용자에게 표시할 수 있습니다.
- 이미지의 추적 상태가 전체 추적이 될 때까지 이미지의 포즈 및 크기 추정치를 사용하지 마세요. ARCore에서 이미지가 처음 감지되고 예상되는 실제 크기가 지정되지 않으면 추적 상태가 일시중지됩니다. 이는 ARCore가 이미지를 인식했지만 3D 공간에서 위치를 추정하기에 충분한 데이터를 수집하지 않았음을 의미합니다.