플랫폼별 가이드
Android (Kotlin/자바)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
ARCore의 증강 이미지 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 공간에서 이미지의 위치를 추정할 만큼 충분한 데이터를 수집하지 못했습니다.