이미지에 입체감 추가

플랫폼별 가이드

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 공간에서의 위치를 추정하기에 충분한 데이터를 수집하지 않았음을 의미합니다.