플랫폼별 가이드
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
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 공간에서의 위치를 추정하기에 충분한 데이터를 수집하지 않았음을 의미합니다.