Dodaj wymiar do obrazów

Przewodniki dotyczące poszczególnych platform

Interfejsy API do obrazów rozszerzonych w ARCore pozwalają tworzyć aplikacje AR, które wykrywają i wzmacniają obrazy 2D w środowisku użytkownika, takie jak plakaty czy opakowania produktów.

Przesyłasz zestaw obrazów referencyjnych. ARCore używa algorytmu rozpoznawania obrazów do wyodrębniania cech z informacji w skali szarości na każdym obrazie i przechowuje te cechy w co najmniej jednej bazie danych obrazu rozszerzonego.

W czasie działania ARCore wyszukuje te funkcje na płaskich powierzchniach w środowisku użytkownika. Dzięki temu ARCore może wykryć takie zdjęcia i oszacować ich położenie, orientację i rozmiar, jeśli nie zostały dostarczone.

Możliwości

ARCore może śledzić do 20 obrazów jednocześnie. ARCore nie wykrywa ani nie śledzi jednocześnie wielu wystąpień tego samego obrazu.

Każda baza danych obrazów rozszerzonych może przechowywać maksymalnie 1000 obrazów referencyjnych. Nie ma limitu liczby baz danych, ale w danym momencie aktywna może być tylko jedna baza danych.

Obrazy można dodawać do bazy danych obrazów rozszerzonych w czasie działania, maksymalnie do 1000 obrazów na bazę danych. Utworzone wcześniej bazy danych można pobrać, korzystając z połączenia sieciowego.

Gdy dodajesz obraz, możesz podać jego fizyczny rozmiar, który będzie wykrywany. Zwiększy to skuteczność wykrywania obrazów.

  • Jeśli nie podasz rozmiaru fizycznego, ARCore szacuje rozmiar i z czasem ulepsza tę wartość.

  • Jeśli podasz rozmiar fizyczny, ARCore użyje podanego rozmiaru i oszacuje położenie i orientację obrazu, ignorując rozbieżności między rozmiarem pozornym lub rzeczywistym a podanym rozmiarem fizycznym.

ARCore może reagować na obrazy, które:

  • obrazy stałe, np. odbitka wisząca na ścianie lub gazeta na stole,

  • Ruchome obrazy, np. reklama przejeżdżającego autobusu lub obraz płaskiego obiektu trzymanego przez użytkownika, gdy porusza on rękami.

Gdy ARCore rozpocznie śledzenie obrazu, podaje szacunkowe dane o położeniu i orientacji obrazu w każdej klatce. ARCore stale ulepsza te szacunki w miarę zbierania kolejnych danych.

Po wykryciu obrazu ARCore kontynuuje „śledzenie” jego pozycji i orientacji, nawet jeśli obraz tymczasowo wychodzi poza widok kamery, ponieważ użytkownik przesunął urządzenie. W takim przypadku ARCore zakłada, że pozycja i orientacja obrazu są statyczne oraz że nie porusza się on w otoczeniu.

Wszystko odbywa się na urządzeniu. Do wykrywania i śledzenia obrazów nie jest wymagane połączenie z internetem.

Wymagania

Obrazy muszą:

  • Wypełnij co najmniej 25% klatki kamery, która ma zostać wykryta po raz pierwszy.

  • Musi być płaska (na przykład nie pomarszczona ani owinięta wokół butelki).

  • Zadbaj o to, aby kamera była dobrze widoczna. Nie powinny być częściowo zasłonięte, oglądane pod bardzo ukośnym kątem ani oglądać, gdy kamera porusza się zbyt szybko z powodu rozmycia spowodowanego ruchem.

Kwestie związane z wykorzystaniem i wydajnością procesora

W zależności od tego, które funkcje ARCore są już włączone, włączenie obrazów rozszerzonych może zwiększyć wykorzystanie procesora ARCore. Rozważ wyłączenie wszystkich nieużywanych funkcji w czasie, gdy nie są one wymagane przez AR. Dzięki temu aplikacja będzie mogła korzystać z dodatkowych cykli procesora, a także podniesie wydajność termiczną i żywotność baterii.

Więcej informacji znajdziesz w artykule o kwestiach związanych ze skutecznością.

Sprawdzone metody

Wskazówki dotyczące wyboru obrazów referencyjnych

  • Rozdzielczość obrazu powinna wynosić co najmniej 300 x 300 pikseli. Użycie obrazów w wysokiej rozdzielczości nie zwiększa skuteczności.
  • Obrazy referencyjne można dostarczyć w formacie pliku PNG lub JPEG.
  • Informacje o kolorach nie są używane. Zarówno obrazy w kolorze, jak i odpowiadające im obrazy w skali szarości mogą być używane jako obrazy referencyjne lub użytkownicy w czasie działania.
  • Unikaj obrazów o mocnej kompresji, ponieważ zakłóca to wyodrębnianie cech.
  • Unikaj zdjęć, które zawierają wiele elementów geometrycznych lub kilka cech (np. kody kreskowe, kody QR, logo i inne grafiki), ponieważ utrudnia to wykrywanie i śledzenie skuteczności.
  • Unikaj obrazów z powtarzającymi się wzorcami, ponieważ może to też powodować problemy z wykrywaniem i śledzeniem.
  • Użyj narzędzia arcoreimg zawartego w pakiecie SDK ARCore, aby uzyskać wynik jakości dla każdego obrazu w przedziale od 0 do 100. Zalecamy wynik jakości na poziomie co najmniej 75. Poniżej przedstawiamy dwa przykłady:

    Przykładowy obraz 1 Przykładowy obraz 2
    Wynik: 0 Wynik: 100
    zawiera powtarzające się obiekty geometryczne wystarczająca rozdzielczość; zawiera wiele unikalnych cech

Wskazówki dotyczące tworzenia bazy danych obrazów

  • Za pomocą narzędzia Arcoreimg na Androida wygeneruj plik bazy danych obrazów. Narzędzie to jest dostępne tylko na potrzeby programowania na Androidzie i Androidzie NDK. Jest wbudowany w pakiet SDK Unity i wtyczkę ARCore Unreal.
  • Baza danych przechowuje skompresowaną reprezentację cech wyodrębnionych z danych w skali szarości na obrazach referencyjnych. Każdy wpis obrazu zajmuje około 6 KB.
  • Dodanie obrazu do bazy danych w czasie działania trwa około 30 ms.
    • Dodaj obrazy w wątku instancji roboczej, aby uniknąć zablokowania wątku interfejsu użytkownika.
    • W miarę możliwości dodawaj obrazy podczas kompilacji za pomocą narzędzia arcoreimg, które wchodzi w skład pakietu SDK ARCore.
  • Jeśli znasz oczekiwany rozmiar fizyczny obrazu, podaj go. Te informacje poprawiają skuteczność wykrywania i śledzenia, zwłaszcza w przypadku dużych obrazów fizycznych (powyżej 75 cm).
  • Unikaj przechowywania w bazie danych wielu nieużywanych obrazów, ponieważ może to mieć lekki wpływ na wydajność systemu z powodu zwiększonego wykorzystania procesora.

Wskazówki dotyczące optymalizacji śledzenia

  • Jeśli obraz nigdy się nie zmieni (np. plakat przyklejony do ściany), możesz dodać do niego kotwice, by zwiększyć stabilność śledzenia.
  • Aby możliwe było wstępne wykrycie, obraz musi zajmować co najmniej 25% obrazu z aparatu. Możesz prosić użytkowników o dopasowanie fizycznego obrazu do ramki aparatu.
  • Nie używaj szacowanej pozycji i rozmiaru obrazu, dopóki stan śledzenia obrazu nie będzie pełny. Gdy ARCore po raz pierwszy wykryje obraz bez określonego oczekiwanego rozmiaru fizycznego, jego stan śledzenia zostanie wstrzymany. Oznacza to, że funkcja ARCore rozpoznała zdjęcie, ale nie zebrała wystarczającej ilości danych, aby oszacować jego lokalizację w przestrzeni 3D.