이미지에 입체감 추가

플랫폼별 가이드

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